Difference between revisions of "ReleaseProcess"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
(Création)
 
m (Added prefix to comments)
Line 3: Line 3:
 
This document is a draft trying to understand what is going on to release dolibarr.
 
This document is a draft trying to understand what is going on to release dolibarr.
 
   
 
   
''I intend to use it as a base to revamp the whole releasing process.''
+
RD: ''I intend to use it as a base to revamp the whole releasing process.''
 
   
 
   
 
== Officialy maintained ==
 
== Officialy maintained ==
Line 19: Line 19:
 
* Zipped archive
 
* Zipped archive
 
   
 
   
''I'd build it from the tarball''
+
RD: ''I'd build it from the tarball''
 
   
 
   
 
=== Distribution packages ===
 
=== Distribution packages ===
 
   
 
   
''I'd make these from the release tarball.''
+
RD: ''I'd make these from the release tarball.''
 
   
 
   
 
==== RPM ====
 
==== RPM ====
 
   
 
   
''Can't all of these be unified?''
+
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
 
* Generic
 
* Fedora
 
* Fedora
 
   
 
   
''RedHat?''
+
RD: ''RedHat?''
 
   
 
   
 
* Mandriva
 
* Mandriva
 
   
 
   
''Is this really needed? I mean who still uses mandriva these days?''
+
RD: ''Is this really needed? I mean who still uses mandriva these days?''
 
   
 
   
 
* OpenSuse
 
* OpenSuse
Line 44: Line 50:
 
* Debian
 
* Debian
 
   
 
   
''Ubuntu?''
+
RD: ''Ubuntu?''
 
   
 
   
 
=== Installers ===
 
=== Installers ===
Line 50: Line 56:
 
* Windows (DoliWamp, exe)
 
* Windows (DoliWamp, exe)
 
   
 
   
''This one is the most involved. We need a better spec of the process.''
+
RD: ''This one is the most involved. We need a better spec of the process.''
 
   
 
   
 
== '''Not''' officially maintained ==
 
== '''Not''' officially maintained ==
 
   
 
   
''Need volunteers?''
+
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.
 
These packages are not officially maintained but are in the source tree. Maybe we'd want to have them work one day or another.
Line 62: Line 68:
 
* [https://github.com/edumbill/doap/wiki DOAP]
 
* [https://github.com/edumbill/doap/wiki DOAP]
 
   
 
   
''Is this even a package format?''
+
RD: ''Is this even a package format?''
 
   
 
   
 
* Doxygen (Developer documentation)
 
* Doxygen (Developer documentation)
 
   
 
   
''Again, not a package format, but this should certainly be published somewhere for each released version''
+
RD: ''Again, not a package format, but this should certainly be published somewhere for each released version''
 
   
 
   
 
* Launchpad (https://launchpad.net/dolibarr)
 
* Launchpad (https://launchpad.net/dolibarr)
 
   
 
   
''Ubuntu packages and build system?''
+
RD: ''Ubuntu packages and build system?''
 
   
 
   
 
* Live CD
 
* Live CD
 
   
 
   
''Really? What for? Demos? Looks overkill''
+
RD: ''Really? What for? Demos? Looks overkill''
 
   
 
   
 
* [https://build.opensuse.org/project/show/Application:ERP:Dolibarr OpenSuse build system]
 
* [https://build.opensuse.org/project/show/Application:ERP:Dolibarr OpenSuse build system]
 
   
 
   
''This one is pretty cool. Looks like we could leverage its capabilities to automate the builds of our Linux distribution packages.'' ''Credentials needed''
+
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
 
* Virtualmin installer
Line 94: Line 100:
 
# Commit and Tag version
 
# Commit and Tag version
 
   
 
   
''Better be a [http://git-scm.com/book/en/Git-Basics-Tagging#Signed-Tags signed tag]''
+
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;">
 
<ol start="3" style="list-style-type: decimal;">
Line 109: Line 115:
 
<li><p>TAR reference release</p></li></ol>
 
<li><p>TAR reference release</p></li></ol>
 
   
 
   
''We should also generate checksums''
+
RD: ''We should also generate checksums''
 
   
 
   
''Add a GPG signature?''
+
RD: ''Add a GPG signature?''
 
   
 
   
 
<ol start="10" style="list-style-type: decimal;">
 
<ol start="10" style="list-style-type: decimal;">
Line 127: Line 133:
 
# Tag to central repository
 
# Tag to central repository
 
   
 
   
''Credentials needed. This won't get along with a pull request!''
+
RD: ''Credentials needed. This won't get along with a pull request!''
 
   
 
   
 
<ol start="2" style="list-style-type: decimal;">
 
<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>
 
<li>Packages, Artifacts (Checksum(s), signature(s)…), ChangeLog and PAD files to dolibarr.org (/home/dolibarr/wwwroot/files)</li></ol>
 
   
 
   
''Credentials needed''
+
RD: ''Credentials needed''
 
   
 
   
 
<ol start="3" style="list-style-type: decimal;">
 
<ol start="3" style="list-style-type: decimal;">
 
<li>Packages to [http://sourceforge.net/projects/dolibarr/ Sourceforge.net]</li></ol>
 
<li>Packages to [http://sourceforge.net/projects/dolibarr/ Sourceforge.net]</li></ol>
 
   
 
   
''Credentials needed''
+
RD: ''Credentials needed''
 
   
 
   
''Can be automated: [https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download doc]''
+
RD: ''Can be automated: [https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download doc]''
 
   
 
   
 
=== Verifiing ===
 
=== Verifiing ===
Line 145: Line 151:
 
* ?
 
* ?
 
   
 
   
''This is where checksums comes in handy''
+
RD: ''This is where checksums comes in handy''
 
   
 
   
 
=== Releasing ===
 
=== Releasing ===
Line 151: Line 157:
 
# Craft announcement message
 
# Craft announcement message
 
   
 
   
''The message template should be in the repo''
+
RD: ''The message template should be in the repo''
 
   
 
   
 
<ol start="2" style="list-style-type: decimal;">
 
<ol start="2" style="list-style-type: decimal;">
 
<li>Post announcement as a news on dolibarr.org</li></ol>
 
<li>Post announcement as a news on dolibarr.org</li></ol>
 
   
 
   
''Credentials needed''
+
RD: ''Credentials needed''
 
   
 
   
 
<ol start="2" style="list-style-type: decimal;">
 
<ol start="2" style="list-style-type: decimal;">
Line 165: Line 171:
 
* [http://www.facebook.com/dolibarr Facebook]
 
* [http://www.facebook.com/dolibarr Facebook]
 
   
 
   
''Credentials needed''
+
RD: ''Credentials needed''
 
   
 
   
''Should all be automated through their respective APIs''
+
RD: ''Should all be automated through their respective APIs''
 
   
 
   
 
<ol start="3" style="list-style-type: decimal;">
 
<ol start="3" style="list-style-type: decimal;">
Line 177: Line 183:
 
<li>Send announcement on Forum</li></ol>
 
<li>Send announcement on Forum</li></ol>
 
   
 
   
''This should be a sticky in the appropriate category (which?)''
+
RD: ''This should be a sticky in the appropriate category (which?)''
 
   
 
   
''Credentials needed''
+
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 ==
 
== Misc. Questions ==
+
 
 +
===RD===
 
* More projects are moving to tar.xz releases, shan't we join the boat?
 
* 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.
 
* Shouldn't we use native environments to build distribution packages and windows installer? Vagrant maintained virtual build and test machines would be neet.
Line 188: Line 205:
 
* 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]
 
* 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?
 
* Is there other announcements to be made?
* Wiki!
 
* Doliforge (release number)!
 
 
''Credentials needed''
 
 
 
* Release script is in Perl now, I'd like to rewrite it with [http://www.phing.info Phing]. Any objections ?
 
* Release script is in Perl now, I'd like to rewrite it with [http://www.phing.info Phing]. Any objections ?
+
 
 
== Misc. Notes ==
 
== Misc. Notes ==
 
   
 
   
* Directory structure for resulting binaries should be :
+
* Directory structure for resulting binaries should be:
 
 
<pre>.
 
<pre>.
 
├── generic
 
├── generic
Line 208: Line 219:
 
├── package_rpm_opensuse
 
├── package_rpm_opensuse
 
├── package_rpm_redhat-fedora
 
├── package_rpm_redhat-fedora
└── package_windows</pre>
+
└── package_windows
* We need to define the versioning and naming conventions as well as the branching system
+
</pre>
 +
* We need to define the versionning and naming conventions as well as the branching system

Revision as of 13:39, 10 January 2014

Dolibarr release process

This document is a draft trying to understand what is going on to release dolibarr.

RD: I intend to use it as a base to revamp the whole releasing process.

Officialy maintained

Descriptor

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.

  • APS
  • MacOS X installer (DoliMamp, dmg)
  • 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

RD: Ubuntu packages and build system?

  • Live CD

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

  • Virtualmin installer
  • Proxmox Appliance

Tentative process

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

  1. Update version numbers in source code, ChangeLog and PAD files
  2. Commit and Tag version

RD: Better be a signed tag

  1. Checkout tag to a test directory

  2. Play unit tests

  3. Play UI tests

If all is OK

  1. Checkout tag to a build directory

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

  3. Fix rights

  4. TAR reference release

RD: We should also generate checksums

RD: Add a GPG signature?

  1. ZIP release

  2. RPM releases

  3. DEB realease

  4. Windows installer release

Testing

  • ?

Pushing

  1. Tag to central repository

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

  1. Packages, Artifacts (Checksum(s), signature(s)…), ChangeLog and PAD files to dolibarr.org (/home/dolibarr/wwwroot/files)

RD: Credentials needed

  1. Packages to Sourceforge.net

RD: Credentials needed

RD: Can be automated: doc

Verifiing

  • ?

RD: This is where checksums comes in handy

Releasing

  1. Craft announcement message

RD: The message template should be in the repo

  1. Post announcement as a news on dolibarr.org

RD: Credentials needed

  1. Send announcement on Social Networks

RD: Credentials needed

RD: Should all be automated through their respective APIs

  1. Send announcement on Mailing lists

dolibarr-user, dolibarr-dev, dolibarr-foundation

  1. Send announcement on Forum

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

RD: Credentials needed

  1. Create version on this wiki

RD: Credentials needed

  1. Create version in Doliforge

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

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