loopback/3.0-DEVELOPING.md

39 lines
1.6 KiB
Markdown
Raw Normal View History

# How to develop LoopBack 3.0
## Keeping track of major and breaking changes
We will need a detailed release notes for 3.0. To make our life easier, we
should build them incrementally in a file called `3.0-RELEASE-NOTES.md`.
Each pull request containing a major change must include an update
of this file describing the change for a user upgrading from 2.x to 3.0.
## Branch setup
Most patches should be landed on the master branch, the new 3.0 release
will be eventually released from master too.
It is up to the discretion of reviewers to decide which changes to
back-port from master to 2.x. Initially, we should probably land all bug fixes
and most backwards-compatible enhancements. This rule should be revisited
once 3.0.0 was released.
## Publishing pre-release versions
To make it easy for LB developers to test out the upcoming 3.0 version, we
should regularly publish pre-release versions to npmjs. However, extra care
must be taken to ensure "npm install" keeps downloading the current 2.x series.
When 2.x branch was created, we have changed package.json on the *master*
branch and
1. changed the version string to `"3.0.0-alpha.1"`
2. added the following bit: `"publishConfig": { "tag": "next" }`
Whenever making a new pre-release version, increment the latest number:
`3.0.0-alpha.2`, `3.0.0-alpha.3`, etc. Once get closer to the release date,
we can release `3.0.0-beta.1`, possibly also `3.0.0-rc.1`.
The benefit of this version scheme is that module consumers can use carrot
operator to get automatic updates: `"^3.0.0-alpha.1"` matches all versions
from the previous paragraph.