2014-01-10

Make document status m

New page

= 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.''

== Officialy maintained ==

=== Descriptor ===

* [http://pad.asp-software.org Portable Application Description]

=== Archives ===

* Gziped tar archive

''Actually uses the .tgz extension, I'd prefer the more common .tar.gz''

* Zipped archive

RD: ''I'd build it from the tarball''

=== 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?''

* Generic

* Fedora

RD: ''RedHat?''

* Mandriva

RD: ''Is this really needed? I mean who still uses mandriva these days?''

* OpenSuse

==== DEB ====

* Debian

RD: ''Ubuntu?''

=== Installers ===

* Windows (DoliWamp, exe)

RD: ''This one is the most involved. We need a better spec of the process.''

== '''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.

* [http://www.apsstandard.org APS]

* MacOS X installer (DoliMamp, dmg)

* [https://github.com/edumbill/doap/wiki DOAP]

RD: ''Is this even a package format?''

* Doxygen (Developer documentation)

RD: ''Again, not a package format, but this should certainly be published somewhere for each released version''

* Launchpad (https://launchpad.net/dolibarr)

RD: ''Ubuntu packages and build system?''

* Live CD

RD: ''Really? What for? Demos? Looks overkill''

* [https://build.opensuse.org/project/show/Application:ERP:Dolibarr OpenSuse build system]

RD: ''This one is pretty cool. Looks like we could leverage its capabilities to automate the builds of our Linux distribution packages.'' ''Credentials needed''

* Virtualmin installer

* Proxmox Appliance

== Tentative process ==

=== Early announcement ===

# 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 ===

# Update version numbers in source code, ChangeLog and PAD files

# Commit and Tag version

RD: ''Better be a [http://git-scm.com/book/en/Git-Basics-Tagging#Signed-Tags signed tag]''

<ol start="3" style="list-style-type: decimal;">

<li><p>Checkout tag to a test directory</p></li>

<li><p>Play unit tests</p></li>

<li><p>Play UI tests</p></li></ol>

If all is OK

<ol start="6" style="list-style-type: decimal;">

<li><p>Checkout tag to a build directory</p></li>

<li><p>Clean build directory (i.e. remove stuff that won't go into release. Includes devolopment tools, samples, test results, git repo itself, etc.)</p></li>

<li><p>Fix rights</p></li>

<li><p>TAR reference release</p></li></ol>

RD: ''We should also generate checksums''

RD: ''Add a GPG signature?''

<ol start="10" style="list-style-type: decimal;">

<li><p>ZIP release</p></li>

<li><p>RPM releases</p></li>

<li><p>DEB realease</p></li>

<li><p>Windows installer release</p></li></ol>

=== Testing ===

* ?

=== Pushing ===

# Tag to central repository

RD: ''Credentials needed. This won't get along with a pull request!''

<ol start="2" style="list-style-type: decimal;">

<li>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;">

<li>Packages to [http://sourceforge.net/projects/dolibarr/ Sourceforge.net]</li></ol>

RD: ''Credentials needed''

RD: ''Can be automated: [https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download doc]''

=== Verifiing ===

* ?

RD: ''This is where checksums comes in handy''

=== Releasing ===

# Craft announcement message

RD: ''The message template should be in the repo''

<ol start="2" style="list-style-type: decimal;">

<li>Post announcement as a news on dolibarr.org</li></ol>

RD: ''Credentials needed''

<ol start="2" style="list-style-type: decimal;">

<li>Send announcement on Social Networks</li></ol>

* [https://plus.google.com/+DolibarrOrg Google+]

* [http://www.twitter.com/dolibarr Twitter]

* [http://www.facebook.com/dolibarr Facebook]

RD: ''Credentials needed''

RD: ''Should all be automated through their respective APIs''

<ol start="3" style="list-style-type: decimal;">

<li>Send announcement on Mailing lists</li></ol>

dolibarr-user, dolibarr-dev, dolibarr-foundation

<ol start="4" style="list-style-type: decimal;">

<li>Send announcement on Forum</li></ol>

RD: ''This should be a sticky in the appropriate category (which?)''

RD: ''Credentials needed''

<ol start="5" style="list-style-type: decimal;">

<li>Create version on this wiki</li></ol>

RD: ''Credentials needed''

<ol start="5" style="list-style-type: decimal;">

<li>Create version in [http://doliforge.org Doliforge]</li></ol>

RD: ''Credentials needed''

== Misc. Questions ==

===RD===

* 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.

* [https://aur.archlinux.org/packages/dolibarr 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 [http://developer.github.com/v3/repos/releases/ API]

* Is there other announcements to be made?

* Release script is in Perl now, I'd like to rewrite it with [http://www.phing.info Phing]. Any objections ?

== Misc. Notes ==

* Directory structure for resulting binaries should be:

<pre>.

├── generic

├── package_aps

├── package_debian-ubuntu

├── package_mac

├── package_rpm_generic

├── package_rpm_mandriva

├── package_rpm_opensuse

├── package_rpm_redhat-fedora

└── package_windows

</pre>

* We need to define the versionning and naming conventions as well as the branching system

Show more