Note: This is for internal use within Elastic. Only Elastic members can release the connector service.
The version scheme we use is MAJOR.MINOR.PATCH.BUILD and stored in the VERSION file at the root of this repository.
When releasing Gems, you will be asked for an Email and Password. Look into the Vault in the ent-search-team/rubygem
secret.
MAJOR.MINOR.PATCH should match the Elastic and Enterprise Search version it targets and the BUILD number should be set to 0 the day the Connector service release is created to be included with the Enterprise Search distribution.
For example, when shipping for 8.1.2
, the version is 8.1.2.0
.
To release the connector service:
- Make sure all tests and linter pass with
make lint test
- Run
make release_service release_utility
- Set the VERSION file to the new/incremented version on the release branch
- PR these changes to the appropriate connector service release branch
Two Gems will be published to RubyGems: connectors_service and connectors_utility
Note: you should be logged into rubygems (your_gem_account_name is the ent-search email from vault under
ent-search-team/rubygem
)
curl -u {your_gem_account_name} https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials
Enter host password for user '{your_gem_account_name}': {your_password}
Take care of the branching (minor releases only):
- Increment the VERSION on main to match the next minor release
- Create a new maintenance branch
- Make sure the
.backportrc.json
is updated. The previous minor is added totargetBranchChoices
and the new minor is used inbranchLabelMapping
After the Elastic unified release is complete
- Update the BUILD version (example PR). Note that the Connectors project does not immediately bump to the next PATCH version. That won't happen until that patch release's FF date.
Sometimes, we need to release connector service independently from Enterprise Search. For instance, if someone wants to use the project as an HTTP Service and we have a bug fix we want them to have as soon as possible.
In that case, we increment the BUILD number, and follow the same release process than for the unified release.
So 8.1.2.1
, 8.1.2.2
etc. On the next unified release, the version will be bumped to the next PATCH value, and BUILD set to 0
In-Between releases should never introduce new features since they will eventually be merged into the next PATCH release. New features are always done in Developer previews
For developer previews, we are adding a pre
tag using an ISO8601 date. You can use make build_service build_utility
, and the gems will be generated in directory .gems/