[dev] How to do a proper release

Jan Schneider jan at horde.org
Thu May 2 16:10:25 UTC 2019

Zitat von Ralf Lang <lang at b1-systems.de>:

> Hallo,
> as the composer effort slowly reaches "usability for early birds", I
> noticed the components release tool still holds mysteries and some horde
> server side magic.  I don't see through yet.
> Either there is some undocumented process around using the tool or it
> does not really support a "downstream release" independent of the
> horde.org services.
> Here are my guesses. Please show me where I am wrong or missing something.
> Assuming I have added a bug fix or feature to the horde master branch,
> it contains a neat commit message, checks pass, upstream has reviewed,
> what would need handling
> -- Formal creation of a next version (what a downstream release also
> would need to do)
> - The patch or feature needs porting to the maintained branches
> (typically one) or a new maint branch (new significant version) needs to
> be forked from master


> - The maintained branches each need a minor or patch version bump.

Usually not necessary, because this happens at the end of a release.

> - CHANGES, horde yaml file, composer file, pear package manifesto all
> need updated changelog, version bump

Yes,but most of it done automatically now.

> - The hardcoded version inside the Application.php needs bumping (apps only)

No, this is done by the release script too.

> - Something with sentinels and template files?

No, see above.

> - Commit to the maintained branch, tag with the new version

No, see above.

> - Possibly create a real tgz from the pear manifesto?

No, see above.

So all of this actually yes, but done automatically.

> --- Actual release (what a real upstream release does)
> - Push pear package to pear.horde.org


> - Send out some mail from templates and package metadata


> - push to packagist?

No, we only maintain PEAR repos at this time.

> - Update website?


> - Update horde bug tracker menu options


> -- Mystery: Versions
> I don't get it right how versions are handled.
> In Applications:
> - The tagged releases have proper versions -public $version = 'H5 (5.0.7)';
> - Master and maint branch have -git versionspublic $version = 'H5
> (5.0.8-git)';  public $version = 'H5 (6.0.0-git)';


> In CHANGES file, there is no distinction in libraries but in apps?

I don't understand?

> changelog.yml seems to have no -git versions

Yes, true.

> package.xml has no -dev
> https://github.com/horde/base/blob/master/package.xml

Correct. This may be inconsistent, but probably because we only add  
-git suffixes where necessary, i.e. where publically visible.

Jan Schneider
The Horde Project

More information about the dev mailing list