ReleaseProcess

= Dolibarr release process = This document is a draft.

The intention is to document what needs to be done to release Dolibarr. RD: I intend to use it as a base to revamp the whole releasing process.

Descriptor

 * Portable Application Description

Archives
Actually uses the .tgz extension, I'd prefer the more common .tar.gz RD: I'd build it from the tarball
 * Gziped tar archive
 * Zipped archive

Distribution packages
RD: I'd make these from the release tarball.

RPM
RD: Can't all of these be unified?

LD: This is what Generic below is for but specific versions are needed for distro integration

RD: I think that Debian integration is ongoing, what about other distros?

Isn't this the distribution package maintainer responsibility, not the release managers?

RD: RedHat? RD: ''Is this really needed? I mean who still uses mandriva these days?''
 * Generic
 * Fedora
 * Mandriva
 * OpenSuse

DEB
RD: Ubuntu?
 * Debian

Installers
RD: ''This one is the most involved. We need a better spec of the process.''
 * Windows (DoliWamp, exe)

Not officially maintained
RD: Need volunteers? These packages are not officially maintained but are in the source tree. Maybe we'd want to have them work one day or another. RD: Is this even a package format? RD: Again, not a package format, but this should certainly be published somewhere for each released version RD: Ubuntu packages and build system? RD: ''Really? What for? Demos? Looks overkill'' RD: ''This one is pretty cool. Looks like we could leverage its capabilities to automate the builds of our Linux distribution packages. Credentials needed''
 * APS
 * MacOS X installer (DoliMamp, dmg)
 * DOAP
 * Doxygen (Developer documentation)
 * Launchpad (https://launchpad.net/dolibarr)
 * Live CD
 * OpenSuse build system
 * Virtualmin installer
 * Proxmox Appliance

Early announcement

 * 1) Post to dolibarr-dev intention to package. Ask testers to test. Ask translators to update their translations. Fix release date allowing at least one week for people to do their tasks.

Building
RD: Better be a signed tag   Checkout tag to a test directory   Play unit tests   Play UI tests  If all is OK   Checkout tag to a build directory   Clean build directory (i.e. remove stuff that won't go into release. Includes devolopment tools, samples, test results, git repo itself, etc.)   Fix rights   TAR reference release </li></ol> RD: We should also generate checksums RD: Add a GPG signature? <ol start="10" style="list-style-type: decimal;">  ZIP release </li>  RPM releases </li>  DEB realease </li>  Windows installer release </li></ol>
 * 1) Update version numbers in source code, ChangeLog and PAD files
 * 2) Commit and Tag version

Pushing
RD: ''Credentials needed. This won't get along with a pull request!'' <ol start="2" style="list-style-type: decimal;"> Packages, Artifacts (Checksum(s), signature(s)…), ChangeLog and PAD files to dolibarr.org (/home/dolibarr/wwwroot/files)</li></ol> RD: Credentials needed <ol start="3" style="list-style-type: decimal;"> Packages to Sourceforge.net</li></ol> RD: Credentials needed RD: Can be automated: doc
 * 1) Tag to central repository

Verifiing
RD: This is where checksums comes in handy

Releasing
RD: The message template should be in the repo <ol start="2" style="list-style-type: decimal;"> Post announcement as a news on dolibarr.org</li></ol> RD: Credentials needed <ol start="2" style="list-style-type: decimal;"> Send announcement on Social Networks</li></ol> RD: Credentials needed RD: Should all be automated through their respective APIs <ol start="3" style="list-style-type: decimal;"> Send announcement on Mailing lists</li></ol> dolibarr-user, dolibarr-dev, dolibarr-foundation <ol start="4" style="list-style-type: decimal;"> Send announcement on Forum</li></ol> RD: This should be a sticky in the appropriate category (which?) RD: Credentials needed
 * 1) Craft announcement message
 * Google+
 * Twitter
 * Facebook

<ol start="5" style="list-style-type: decimal;"> Create version on this wiki</li></ol>

RD: Credentials needed

<ol start="5" style="list-style-type: decimal;"> Create version in Doliforge</li></ol>

RD: Credentials needed

RD
LD: More then 80% of users prefer to use installer, and 60% of dowload are for wamp installer, so we must keep native distribution packages. LD: No, it would be better to have only php tools.
 * More projects are moving to tar.xz releases, shan't we join the boat?
 * Shouldn't we use native environments to build distribution packages and windows installer? Vagrant maintained virtual build and test machines would be neet.
 * Arch Linux package could be adopted and made up to par with other distro's
 * Shouldn't we publish also on GitHub since it's one of our homes now? This can be fully automated with the API
 * Is there other announcements to be made?
 * Release script is in Perl now, I'd like to rewrite it with Phing. Any objections ?

Misc. Notes
. ├── generic ├── package_aps ├── package_debian-ubuntu ├── package_mac ├── package_rpm_generic ├── package_rpm_mandriva ├── package_rpm_opensuse ├── package_rpm_redhat-fedora └── package_windows
 * Directory structure for resulting binaries should be:
 * We need to define the versionning and naming conventions as well as the branching system