Release Guide
All releases are done on main.
Note: version numbers should follow Semantic Versioning.
Mono-Repo Structure
This repository contains multiple packages:
ADRIA/— main packageADRIAviz/— visualization packageADRIAanalysis/— analysis package
Each package has its own Project.toml and version. Releases are coordinated per-package.
Public "Final" Releases
- Increase the version number (manually) following SemVer in the appropriate
Project.tomlfile:
For ADRIA:
ADRIA/Project.tomlFor ADRIAviz:
ADRIAviz/Project.tomlFor ADRIAanalysis:
ADRIAanalysis/Project.toml
- Update the environment and run tests locally to ensure all pass:
cd ADRIA && julia --project=. -e 'using Pkg; Pkg.test()'
cd ADRIAviz && julia --project=. -e 'using Pkg; Pkg.test()'
cd ADRIAanalysis && julia --project=. -e 'using Pkg; Pkg.test()'See Testing for more details.
Submit a PR with the updated version number(s). Wait for approval.
Once approved, go to the releases page and click the "Draft a new release" button at the top right.
Under "Choose a tag" on the left, enter the new version number with a package prefix (e.g., "ADRIA-v0.99.0", "ADRIAviz-v1.0.0", or "ADRIAanalysis-v2.0.0") and then select "Create new tag: <TAG-NAME> on publish".
At the top-right of the textbox, select the last full release then click the "Generate release notes" button (at the top-right of the textbox).
Under "What's Changed" add a short description of the major changes. Explicitly note any major breaking changes (i.e., anything that results obtained with previous versions of ADRIA incompatible) Copy the release notes (for step 8). Click "Publish release".
Register the updated package by opening a new issue in the General registry with the title "Register [package] [version number]" e.g.,
Register ADRIA v1.0,Register ADRIAviz v2.1.0, orRegister ADRIAanalysis v1.5.0State in the comment:
@JuliaRegistrator register subdir=ADRIAPaste in the generated text from step 6 (an example is shown below)Submit the issue. The JuliaRegistrator bot should take care of the rest.
@JuliaRegistrator register subdir=ADRIA
Release notes:
Paste the generated release notes here.For other packages, use:
@JuliaRegistrator register subdir=ADRIAviz@JuliaRegistrator register subdir=ADRIAanalysis
See Julia Registrator usage notes here for more details.
Issues can block release
The JuliaRegistrator bot submits a corresponding Pull Request with the Julia package registry. Registration may be blocked for a number of reasons. Keep an eye on the auto-submitted Pull Request and resolve any issues reported there. Otherwise the package version will never be released.
Development Release
Development releases provide users with the most recent "working" version and may still have some known bugs. It provides users a chance to try new features and/or provide feedback before a public release.
Deploying a Development Release follows the same steps as "Public" releases, except:
Add "-dev.x" to the version number with package prefix. e.g.,
ADRIA-v1.2.3-dev.1,ADRIAviz-v1.2.3-dev.1,ADRIAanalysis-v1.2.3-dev.1, etc.Untick "Set as the latest release" and tick the "Set as a pre-release" option.
Ignore Step 8 through 10; DO NOT trigger the
JuliaRegistratorbot.
Release Candidates
Release candidates are releases that are not yet "final" but are close to it. Release candidates provide a "last chance" opportunity for users to report bugs prior to a "final" release.
Deploying a Release Candidate follows the same steps as "Public" releases, except:
Add "-rc.x" to the version number with package prefix. e.g.,
ADRIA-v1.2.3-rc.1,ADRIAviz-v1.2.3-rc.2,ADRIAanalysis-v1.0.0-rc.1, etc.Untick "Set as the latest release" and tick the "Set as a pre-release" option.
Ignore Step 8 through 10; DO NOT trigger the
JuliaRegistratorbot.