-
Notifications
You must be signed in to change notification settings - Fork 35
releasesAndContributions
We gladly accept contributions. The procedure for this is to make a branch in which you make your changes. In the case of a large change (lots of changes, architectural change, or a new feature), make a proposal. When the change is done, make a Pull Request, and - optionally - contact the mailinglist. All changes must be via separate branches, because we have a separate branch from which we release a stable version. The master branch is protected, so no changes can be automatically be pushed unto master and we have to manually cherry-pick each commit. Each Pull Request must pass the automatic build tests and must be reviewed by a committer, before it can be merged unto master (and later the stable branches).
There are 2 main branches:
- master: this is not guaranteed to be stable, but has the most up-to-date features
- stable: this is guaranteed to be stable, but it's not cutting edge
Feature- and bugfixbranches must not be removed after merging into master. Only after being merged into stable, a feature- of bugfixbranche can be removed.
We release community releases from the master branch.
For a stable release, we make a separate branch. For example, current master is version 5.1.5. To make the stable release:
- Make branch 5.2.x from master. This will be the base branch for this stable release.
- Make a release candidate: 5.2.0-rc1. We will test this RC.
- Fix all found bugs from rc1 and make pull request against 5.2.x and master
- Merge all PR's against 5.2.x (not master, as these are unconfirmed fixes)
- Make a second release candidate: 5.2.0-rc2
- Test this release (everything works now: yay!)
- Release 5.2.0
- Merge all PR's against master
One month after the stable release, a community release is done, and master will now be on version 5.3.0-SNAPSHOT
Two times per year, B3Partners will release a stable version of flamingo. This release will be thoroughly tested, and only after all tests pass, it will be released. The master/development version - which until now was released almost montly - will be released upon request, or when a developer will feel like it.
It's good to note that new features will only appear in the stable release two times a year.
The procedure for a stable release is:
- Determine features/bugs to be included in the release
- Featurefreeze at T - 14 days
- Testing of release candidate from T - 14 to T - 10
- Bugfixes from T - 9 to T - 5
- Test the bugfixes from T - 4 to T -3
- Last bugfixing
- Release!
When blocking issues are found after a stable release, a bugfix release will be made.
<MainVersion>.<Minor>.<Sub>
MainVersion: Only increases with very large changes.
Minor: This will be even numbered for stable versions, and odd numbered for development versions.
Sub: Will be increased every subrelease.