Skip to content

Make a release

Pierre Martinon edited this page Dec 6, 2024 · 16 revisions

Semantic Versioning

See Semantic Versioning.

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backwards compatible manner
  3. PATCH version when you make backwards compatible bug fixes

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

In Julia, the version is written is the Project.toml file at the root of the package.

In case you want to start from a previous release instead of an active branch, for instance for a patch:

  • find the corresponding commit Id in the Releases page
  • retrieve this code version with git checkout commit_id; you will see a 'detached head' warning from git.
  • switch to a new branch with git switch -c patch_branch
  • make you modifications (including the version number !), commit and push your new branch normally
  • trigger the release by commenting on the commit with @JuliaRegistrator register()
  • note that a few days may pass before the new version is available

Register in the General registry and tag

We assume here that your package is in the General registry.

Once the version is updated in the Project.toml, simply add the following in a comment of an issue, a PR or a commit.

@JuliaRegistrator register()

To make automatically a new tag in the Github repo, please add TagBot.yml in your workflow.

Register with LocalRegistry.jl and tag

We assume that we use a personal registry such as ct-registry to manage the current package. This personal registry being managed by the package LocalRegistry. The first time you want to register your package, follow the following guidelines.

Step 1. To register a new version of your package, go to the main branch (the Project.toml must be updated) and do

pkg> activate .
using LocalRegistry
using MyPackage
register()

Remarks.

  • When adding a new version of a package, the registry can be omitted.
  • The new version number is obtained from the version field of the package's Project.toml file.

Step 2. Then, to make the release visible on the Github repo, make a new "release" with a tag of the form vx.y.z.

Clone this wiki locally