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