diff --git a/docs/install.md b/docs/install.md index a547b4ad..b3fb54b9 100644 --- a/docs/install.md +++ b/docs/install.md @@ -3,25 +3,26 @@ Install `hsd` `hsd` requires Node.js v12 or higher. - - Table of contents ----------------- -- [Install `hsd`](#install-hsd) - * [Verifying keys](#verifying-keys) - * [Building From Source (git and npm)](#building-from-source-git-and-npm) - + [Verifying](#verifying) - * [npm](#npm) - + [Verifying](#verifying-1) - * [macOS](#macos) - + [Verifying](#verifying-2) - * [Docker](#docker) - + [Building an image](#building-an-image) - + [Running a container](#running-a-container) - + [Stopping a container](#stopping-a-container) + - + + +- [Verifying keys](#verifying-keys) +- [Building From Source (git and npm)](#building-from-source-git-and-npm) + * [Verifying](#verifying) +- [npm](#npm) + * [Verifying](#verifying-1) +- [macOS](#macos) + * [Verifying](#verifying-2) +- [Docker](#docker) + * [Building an image](#building-an-image) + * [Running a container](#running-a-container) + * [Stopping a container](#stopping-a-container) + + ## Verifying keys Every verifying process described below will need project maintainer diff --git a/docs/release-files.md b/docs/release-files.md index 5b83aad0..1af0387d 100644 --- a/docs/release-files.md +++ b/docs/release-files.md @@ -3,3 +3,73 @@ Releasing hsd This document contains information about bundling, signing and distributing the files. + +`hsd` is distributed through several platforms: `github`, `npm`, `brew`. + + + + + +- [Deploying to github (tag)](#deploying-to-github-tag) + * [Major, minor and patches](#major-minor-and-patches) +- [Deploying to npm](#deploying-to-npm) + * [Deploying latest version, minor and patches included](#deploying-latest-version-minor-and-patches-included) + * [Deploying support versions (previous and life-support)](#deploying-support-versions-previous-and-life-support) +- [Deploying to homebrew](#deploying-to-homebrew) + + + +## Deploying to github (tag) + + This does not need many additional actions as we use github as our primary +git platform. After each release we need to update INSTALL.md versions. Tags +MUST to be signed. + +### Major, minor and patches +After you are [ready](./release-process.md) to publish files +(for example `v4.0.0`) + - `git checkout 4.x` - switch to proper branch `4.x`. + - `git tag -s v4.0.0` - tag and sign the release. + - `git push origin v4.0.0` - publish the tag. (origin is the main repo) + +## Deploying to npm + Maintainer needs access rights to the npm repository. Releasing +on npm by default tags the release with `latest`, so releasing latest +and supporting older versions is different. + +NOTE: You can use `npm publish --dry-run` to see the details before actual +release. + +### Deploying latest version, minor and patches included +Major, minor and patch of the latest version deployment (for example v4.1.0): + - `git checkout v4.1.0` - switch to the tag containing `4.1.0` updates. + - `npm publish` - this is will be tagged as `latest`. + +NOTE: `package.json` should have been updated in `v4.1.0` tag to `4.1.0`. + +### Deploying support versions (previous and life-support) +Older versions can have additional tags for `previous` and `life-support`: + - `git checkout v3.1.0` - switch to the tag for the `previous` version. + - `npm publish --tag previous` - update appropriate npm tag for the release. +or + - `git checkout v2.4.1` - switch to the tag for the `life-support` version. + - `npm publish --tag life-support` - update appropriate npm tag for the + release. + +NOTE: `package.json` should have been updated in `v3.1.0` tag to `3.1.0`. + +## Deploying to homebrew + To deploy to the popular MacOS package manager [brew][homebrew], you will +need to create Pull request to the [Hombrew Core repository][homebrew-repo]. +Formula for the `hsd` can be found at `homebrew-core/Formula/hsd.rb` + - Update `homebrew-core/Formula/hsd.rb`. (e.g. [hsd 3.0.1][homebrew-update]) + - You can check the steps when formula was introduced + [hsd formula][homebrew-new-formula] or review the + [Guidelines][homebrew-guidelines]. + - Additionally double check if `nodejs` version needs update. + +[homebrew]: https://brew.sh/ +[homebrew-repo]: https://github.com/Homebrew/homebrew-core +[homebrew-new-formula]: https://github.com/Homebrew/homebrew-core/pull/51014 +[homebrew-update]: https://github.com/Homebrew/homebrew-core/pull/87779/files +[homebrew-guidelines]: https://github.com/Homebrew/homebrew-core/blob/master/CONTRIBUTING.md diff --git a/docs/release-process.md b/docs/release-process.md index e1513713..d7c2fb41 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -1,23 +1,25 @@ # Versioning and branching strategy - - Table of Contents ----------------- - * [Release schedule and release candidates](#release-schedule-and-release-candidates) - * [Versioning (Semver)](#versioning-semver) - * [Support period](#support-period) - * [Changelog and release notes](#changelog-and-release-notes) - * [Branching strategy](#branching-strategy) - + [General](#general) - + [master branch and package.json version](#master-branch-and-packagejson-version) - + [Release candidate and major release](#release-candidate-and-major-release) - - [Next release candidate](#next-release-candidate) - - [Release the major version](#release-the-major-version) - + [Release minor and patches](#release-minor-and-patches) + - + + +- [Release schedule and release candidates](#release-schedule-and-release-candidates) +- [Versioning (Semver)](#versioning-semver) +- [Support period](#support-period) +- [Changelog and release notes](#changelog-and-release-notes) +- [Branching strategy](#branching-strategy) + * [General](#general) + * [master branch and package.json version](#master-branch-and-packagejson-version) + * [Release candidate and major release](#release-candidate-and-major-release) + + [Next release candidate](#next-release-candidate) + + [Release the major version](#release-the-major-version) + * [Release minor and patches](#release-minor-and-patches) + + This document describes the release process and branching strategy for the handshake.