Skip to content

Latest commit

 

History

History
89 lines (71 loc) · 3.13 KB

PUBLISH.md

File metadata and controls

89 lines (71 loc) · 3.13 KB

Version management

For the latest version of the conodes, please use https://github.com/c4dt/byzcoin, which provides a continuous release of valid conodes for all use cases apart from e-voting.

For e-voting, we provide a tagged release with built binaries for Linux, Windows MacOS and FreeBSD.

For the @dedis/kyber and @dedis/cothority npm libraries, we provide a development and a somewhat stable build. The development build is always up-to-date with the latest commit and can be used with a reference to @dedis/cothority@dev:

npm i -s @dedis/cothority@dev

This pins the library to the latest available development version.

Releasing a new version for e-voting conode

Tag the release using

git tag -s vX.Y.Z -m "Cothority Release vX.Y.Z"

and push it to main with git push origin vX.Y.Z. A tag push triggers the release action workflow which releases new binaries in https://github.com/dedis/cothority/releases/tag/vX.Y.Z. Please make sure to add the release description by editing that page.

Releasing a new version for npm @dedis/*

The npm-packages should follow semantic versioning. As we don't plan to have any big changes, the major-version is probably stuck at 3, except if we go the linux path and reach 3.9, a 4.0 could follow , but more to avoid 3.10 than because anything else - or not. A minor-version increase should be done for a new stable functionality that will be kept backward-compatible. A patch-version is mostly an irregular release whenever somebody thinks it's important to have the latest code available (use npm version patch).

It is good to announce a release on the DEDIS/engineer slack channel. This allows others to know that a new release is about to happen and propose eventual changes.

@dedis/kyber and @dedis/cothority can evolve independently, and they consequently each have their own version and are published separately. However, since cothority depends on kyber, kyber has to be published first if they are both to be updated.

To publish a new release of @dedis/kyber:

  1. update the kyber-version in kyber/package.json, commit and push to main
  2. publish the new kyber-npm using kyber/publish.sh
  3. create a signed and annotated tag on the latest commit (adjust with the updated version):
git tag -s kyber-js-v3.4.6
git push --tags origin

To publish a new release of @dedis/cothority:

  1. update the cothority-version and (if needed) the kyber dependency version in cothority/package.json, commit and push to main
  2. publish the new cothority-npm using cothority/publish.sh
  3. create a signed and annotated tag on the latest commit (adjust with the updated version):
git tag -s cothority-js-v3.4.6
git push --tags origin

Development releases

Every merged PR will create development releases, which are named:

@dedis/kyber-major.minor.patch+1-pYYMM.DDHH.MMSS.0

and:

@dedis/cothority-major.minor.patch+1-pYYMM.DDHH.MMSS.0

Releasing a binary

Up to 3.4.5, we released binaries for the conodes. This was the last binary release of a conode. For byzcoin-nodes, please use https://github.com/c4dt/byzcoin