Skip to content
This repository has been archived by the owner on Sep 17, 2024. It is now read-only.

Latest commit

 

History

History
70 lines (54 loc) · 2.49 KB

MAINTAINING.md

File metadata and controls

70 lines (54 loc) · 2.49 KB

Maintaining Sorcery-Argon2

This will eventually be fleshed out so that anyone should be able to pick up and maintain Sorcery-Argon2 by following this guide. It will provide step-by-step guides for common tasks such as releasing new versions, as well as explain how to triage issues and keep the CHANGELOG up-to-date.

Table of Contents

  1. Merging Pull Requests
  2. Versioning
    1. Version Naming
    2. Releasing a New Version

Merging Pull Requests

TODO

Versioning

Version Naming

Sorcery-Argon2 uses semantic versioning which can be found at: https://semver.org/

All versions of Sorcery-Argon2 should follow this format: MAJOR.MINOR.PATCH

Where:

  • MAJOR - Includes backwards incompatible changes.
  • MINOR - Introduces new functionality but is fully backwards compatible.
  • PATCH - Fixes errors in existing functionality (must be backwards compatible).

The changelog and git tags should use vMAJOR.MINOR.PATCH to indicate that the number represents a version of Sorcery-Argon2. For example, 1.0.0 would become v1.0.0.

Releasing a New Version

When it's time to release a new version, you'll want to ensure all the changes you need are on the master branch and that there is a passing build. Then follow this checklist and prepare a release commit:

NOTE: X.Y.Z and vX.Y.Z are given as examples, and should be replaced with whatever version you are releasing. See: Version Naming

  1. Update CHANGELOG.md
    1. Check for any changes that have been included since the last release that are not reflected in the changelog. Add any missing entries to the HEAD section.
    2. Check the changes in HEAD to determine what version increment is appropriate. See Version Naming if unsure.
    3. Replace ## HEAD with ## vX.Y.Z and create a new ## HEAD section above the latest version.
  2. Update Gem Version
    1. Update ./lib/argon2/version.rb Argon2::VERSION to 'X.Y.Z'
  3. Stage your changes and create a commit
    1. git add -A
    2. git commit -m "Release vX.Y.Z"
  4. Ensure all tests are passing
    1. ./bin/setup
    2. ./bin/test (you may need to install clang, e.g. sudo apt install clang)
    3. rake default
  5. Build the Gem
    1. gem build
    2. Test installation: gem install sorcery-argon2-X.Y.Z.gem
  6. Push the new release
    1. git push
    2. gem push <filename>
    3. Release new version via github interface