[commits] [Wiki] changed: Doc/Dev/Downstream

Ralf Lang (B1 Systems GmbH) lang at b1-systems.de
Thu Nov 28 19:54:48 UTC 2019


rlang  Thu, 28 Nov 2019 19:54:48 +0000

Modified page: https://wiki.horde.org/Doc/Dev/Downstream
New Revision:  5
Change log:   A little blabla on how horde releases work

@@ -29,15 +29,42 @@

  +++ composer.json
  A composer manifesto (all recent packages)

-++ Maintaining the Changelog
+++ Release Management Workflow

-++ Bugfix releases (a.b.x -> a.b.y)
+In Horde's release management workflow, releases are done from  
maintenance branches.
+Each release has a git tag for its version. The maintenance branch is  
always ahead of the latest release tag. If the latest public release  
was 5.2.21, the maint. branch for the Framework 5.2 series would have  
metadata for version 5.2.22.

-++ Feature Releases (a.x.c -> a.y.0)
+Releases have a stability (git/development, alpha, beta, rc, stable)  
and an API version.

-++ snapshot pear tarballs
+The API version typically only changes with feature releases (5.1.x  
to 5.2.0) or major releases (5.x.y to 6.0.0).
+Backward compatibility breaks always mean a new major version.

-++ Private Composer Infrastructure
+Downstream apps do not need to coordinate their releases with Horde  
but they should target a framework feature version.
+The current framework feature version as of writing is 5.2 - hence  
any officially released horde app or library has a maint. branch  
called FRAMEWORK_5_2.
+This is however not the application's or library's version. Librarys  
and apps must bump major version if they are released for a new major  
framework release (even though technically they might not change at  
all). This is not required for framework feature releases unless the  
library/app *has* new features.
+
+A library or app which had its version 1.x in Horde 4 would go into  
version 2.0 with the release of horde 5. Your downstream app should  
use semantic versioning, bumping feature version (middle number) when  
new features or APIs are added, bumping bugfix (right, third) number  
when bugs are fixed, bumping major release (left, first) number when  
backwards compatibility is broken.
+
+A developer would create feature branches or forks to build new  
features, then merge-request or manually rebase them into master.
+Individual commits from master branch (like bug fixes) can be picked  
into the maint. branch.
+The yaml changelog file accumulates change notes over time (see  
Maintaining the Changelog).
+
+Once a release is due, the current version in the maint branch gets  
release and a new changelog for a next version is created. By default,  
the next version for a stable release is the next bugfix number while  
the next version for an unstable (alpha, beta, rc) release is an  
increased index (alpha1 released  with a tag, alpha2 is in the branch).
+
+The developer can tell the release tool that he wants to change  
maturity (alpha, beta, rc, stable) or that the next version should be  
a feature release.
+However, you can also redesignate the current version before release  
to become a feature release rather than a bugfix release. This is done  
using additional switches for the "update" command.
+
++++ Maintaining the Changelog
+
++++ Changing the currently developed version before release
+
++++ Bugfix releases (a.b.x -> a.b.y)
+
++++ Feature Releases (a.x.c -> a.y.0)
+
++++ snapshot pear tarballs
+
++++ Private Composer Infrastructure

  See https://github.com/maintaina-com/horde-satis.maintaina.com for  
an example.



More information about the commits mailing list