Skip to content

Release Cycle

Andi edited this page Apr 27, 2020 · 3 revisions

HAP-NodeJS follows Semantic Versioning.

For every major or minor version a new beta is started on the beta branch.

You may also want to have a look at the CONTRIBUTING page.

GitHub Projects

We use GitHub projects to track planned features and changes.

Every major or minor version bump will get its own project named according to the planned version number ('vmajor.minor.patch' while patch will always have a value of 0).
The projects page must contain only one open project, which describes an upcoming release. The open project represents what currently is worked on at the beta branch.

Any version project will have the following columns:

  • backlog: The backlog describes the whole catalog of planned features for HAP-NodeJS.
    Any card must be move to the todo column, if it was decided that the feature will be included in the current release.
    Cards must not be moved to any other column.
  • todo: This column describes any features planned for the current release described by the project.
    Cards in this column must be move into the in progress column, if the task is actively worked on. A card may also be moved directly to done if the feature was fast to implement.
    If it was decided, that one of the features originally planned for the current release will be shipped in a later version, the associated card must be move to postponed.
  • in progress: Any feature currently in this column is actively worked on.
    If work for a card was finished, it must be moved into the done column. If work on the feature was cancelled the card must be move back into the todo column.
  • done: Any feature in this column was successfully incorporated into the current beta release.
    Cards in this column can't be moved anywhere.
  • postponed: Any card in this column was postponed to be shipped in a later release. A card in this column may be moved back to the todo column if decisions are reverted.

A project can be considered finished, when both the todo and the in progress column is empty.
When the associated release is published to the public the project must be closed.

Creating a new project

To create a new project for the next scheduled release follow the following steps:

  • Copy the last finished version project (this is the basis for the new project).
  • Name the project accordingly to the scheduled version number.
  • All cards in the done column need to be deleted.
  • Any card in the postponed column will be moved back into the backlog column.
  • Start planning features for the next release by moving cards from the backlog into the todo column.

Submitting features

If you want to add features to the backlog or the current todo feel free to open an issue.

Git Workflow

HAP-NodeJS's git workflow consist of two branches:

  • master: The master branch is considered stable in any state. Only patch changes are pushed directly onto the master branch. npm version tagged commits will get released to the public.
  • beta: The beta branch is used to prepare the current release. It may not be stable all the time. Every commit pushed onto the beta branch is release as an incremental beta release.
    Once development for the planned release is finished and once the beta branch became stable it gets merge into the master branch and will be release under the planned version.

If a feature requires to be worked on over a longer time period, consider creating a designated feature branch to increase the stability of the beta branch.

Creating Pull Requests

Any pull request containing major or minor changes MUST only use the beta branch as base branch.

Only pull requests containing patch changes MAY use the master branch as base branch.