In order to perform a release, one will need to have publish access to
Publishing a release requires proper access to the external repositories as well as your development environment pre-configured to publish to these repositories without prompting for password:
PyPI package managers will look for repository credentials in a ~/.pypirc
file. The example file below could
be used as a template for configuring your environment:
[distutils] # this tells distutils what package indexes you can push to
index-servers =
pypi
[pypi]
repository: https://upload.pypi.org/legacy/
username: <USERNAME>
password: <PASSWORD>
We use twine for uploading packages to PyPI, and another option to setup your credentials is to use twine's keyring support.
When publishing npm packages, user credentials are configured in the ~/.npmrc
file, where your e-mail and access token
should be available:
email=<USER EMAIL>
//registry.npmjs.org/:_authToken=<AUTH TOKEN>
Follow these steps to create your authorization token.
During publishing, the packages will be signed and that will require you to have support for pgp and a valid signing key
Note: Although this is probably not recommended, the release script expects a signing key that would work without prompting the user for a passphrase.
Elyra depends on a few different packages that are under the control of the Elyra community and used mostly to abstract integration with other runtimes and components.
Currently, these packages are:
Before you begin creating a new Elyra release, verify if there is a need to release any of these packages, and if necessary, update Elyra to use the new release.
Building an Elyra release consists of the following steps:
Most of the steps required to prepare and publish a release have been automated through the create-release.sh
script,
which exposes three goals:
prepare-changelog
goal traverse the recent commits to update the changelog.md for a given release.create release prepare-changelog --version 2.3.0
prepare
goal create the release artifacts and make them available locally for validation.create release prepare --version 2.3.0 --dev-version 2.4.0
-- The 'publish' goal get a previous prepared release and publish the artifacts to respective repositories.
create release publish --version 2.3.0
In the case of creating minor/patch releases from a branch, one will need to modify the release script so that it
perform a checkout of the given branch
after cloning the Elyra repository:
Update the checkout_code
function in the create-release script and add the following at the end of that function:
check_run(['git', 'checkout', '<BRANCH NAME>'], cwd=config.source_dir)
check_run(['git', 'status'], cwd=config.source_dir)
create release prepare-changelog --version 2.3.0
./build/release/elyra
as a git commit
create-release.py prepare --version 2.0.0 --dev-version 2.1.0 [--rc 0][--beta 0]
The artifacts for the new release will then be available at ./build/release/
The other folders, are the individual extensions packaged as standalone packages
elyra
elyra-code-snippet-extension
elyra-code-viewer-extension
elyra-pipeline-editor-extension
elyra-python-editor-extension
elyra-r-editor-extension
create-release.py publish --version 2.0.0 [--rc 0] [--beta 0]
Build and publish container images based on release tag
git pull --rebase
git checkout tags/v2.0.0
make container-images publish-container-images
docker tag elyra/airflow:2.0.0 elyra/airflow:dev && docker push elyra/airflow:dev docker tag elyra/airflow:2.0.0 elyra/airflow:latest && docker push elyra/airflow:latest docker tag quay.io/elyra/airflow:2.0.0 quay.io/elyra/airflow:dev && docker push quay.io/elyra/airflow:dev docker tag quay.io/elyra/airflow:2.0.0 quay.io/elyra/airflow:latest && docker push quay.io/elyra/airflow:latest
docker tag elyra/kf-notebook:2.0.0 elyra/kf-notebook:dev && docker push elyra/kf-notebook:dev docker tag elyra/kf-notebook:2.0.0 elyra/kf-notebook:latest && docker push elyra/kf-notebook:latest docker tag quay.io/elyra/kf-notebook:2.0.0 quay.io/elyra/kf-notebook:dev && docker push quay.io/elyra/kf-notebook:dev docker tag quay.io/elyra/kf-notebook:2.0.0 quay.io/elyra/kf-notebook:latest && docker push quay.io/elyra/kf-notebook:latest ```
Merge changes for conda-forge