Table of Contents

Release process

Overview

  • How to build a release without forgetting anything.
  • Target: administrators

Communication

(release 0.7 announcement)

Subversion operations and metainfo updates

First of all you've got to put your computer in release mode. Click for instructions.

First of all you've got to put your computer in release mode. Click for instructions.

First of all you've got to put your computer in release mode. Click for instructions.

Edit the ~/.pydistutils.cfg (or %HOME%\pydistutils.cfg on Windows) to include the following lines:
# pydistutils configuration file example
[egg_info]
tag_build = .linux_fedora_fc14 #For unixes and non-pure-python packages only! Leave empty otherwise
tag_svn_revision = 0           # no revision until release is done
 
[egg_upload]
login=yyyyyyyyy    # put your gforge login name here
password=xxxxxxxxx # put your gforge password here
verbose=True

Some explanation about the tag: all bdist_egg and sdist egg files will have the tag “linux_fedora” in this example. This is not the expected behaviour for pure python package. So pure python package must have this line in their setup.cfg file:

  [egg_info]
  tag_build = 
  

so that they are multiplatform.

Create the release branches

Pre-requisites

These instruction suppose a release for a 1.1 version and require prior installation of openalea 1.0
    alea_branch --not-dry-run openalea 1.1
    alea_branch --not-dry-run vplants 1.1
    alea_branch --not-dry-run alinea 1.1
 
    svn co https://scm.gforge.inria.fr/svn/openalea/branches/release_1_0 openalea_1_1
    svn co https://scm.gforge.inria.fr/svn/vplants/vplants/branches/release_1_0 vplants_1_1
    svn co https://scm.gforge.inria.fr/svn/openaleapkg/branches/release_1_0 alinea_1_1
 
    cd openalea_1_1
    python multisetup.py --update-version 1.0 1.1
    cd vplants_1_1
    python multisetup.py --update-version 1.0 1.1
    cd alinea_1_1
    python multisetup.py --update-version 1.0 1.1
    

Meta info updates

 svn commit -m 'Add contributors to Authors.txt.'

During the release period

The instructions are given for openalea, but they are the same for vplants and alinea
    cd openalea_1_1
    svn update
    python multisetup.py clean -a install    
    
     alea_branch --not-dry-run -u core openalea 1.1
     #... test changes etc...
     svn ci -m "merge core from trunk"
 
 svn commit -m 'BUGFIX : fixing this bug in this package.'
    python multisetup.py build_sphinx -b html
    python multisetup.py build_sphinx -b latex
    python multisetup.py upload_sphinx -r #might be asked for login and password
 
    python multisetup.py install bdist_egg
 
    python multisetup.py egg_upload
 
    alea_branch --not-dry-run -w openalea_1_1 -x openalea 1.1
 

When the release is finished

    alea_branch --not-dry-run --tag openalea 1.1
 
[egg_info]
tag_build = .dev
tag_svn_revision = 1 # include a revision tag in egg name.

Build package distributions

This is probably obsolete

This is probably obsolete

This is probably obsolete

To specify the *dev* revision tag, change the .pydistutils.cfg (in your HOME directory) instead of all the setup.cfg files.

  • Export your SVN to an other directory (svn export)
  • On Windows
  python setup.py clean -a
  del dist
  python setup.py sdist
  python setup.py bdist_wininst --with-remote-config
  • On Linux
  python setup.py clean -a
  rm -rf dist
  python setup.py sdist
  python setup.py bdist_rpm 

Distribute Package

This is probably obsolete

This is probably obsolete

This is probably obsolete

  • Create Release + notes + Changes (same as Changelog.txt)
  • Upload Files
  • Create news
  • Send mail on openalea-devlp + openalea-users

Web Site

This is probably obsolete

This is probably obsolete

This is probably obsolete

update this section to include sphinx

  • API documentation : launch gendoc.py in module/core (e.g., ./core/doc/gendoc.py) that will scp the APIs to the gforge.
  • Upgrade link in download page
  • Update package page + API Link for documentation / Download
  • Send Technical Doc on openalea.gforge.inria.fr/doc/pkgname/version/python

Quick Linux release under Fedora

Click to show Linux fedora instructions

Click to show Linux fedora instructions

Click to show Linux fedora instructions

Assuming that you are happy with the code available in the repository, then the following procedure should work:

edit the file .pydistutils.cfg in your home directory and add this if not already present:

  # pydistutils configuration file example
  [egg_info]
  tag_build = .linux_fedora_fc14
  [upload_dist]
  release = 0.9  # replace by the proper release number,
  login=yyyyyyyyy   # put your gforge login name here
  password=xxxxxxxxx # put your gforge password here
  verbose=
  

Then, create a virtual environment

  virtualenv ./release
  cd release
  

activate it

  source bin/activate

checkout SVN and upload openalea

  svn checkout --username xxxxxxxx https://scm.gforge.inria.fr/svn/openalea/trunk
  cd openalea
  # rename the openalea_meta distribution egg file by adding the linux-i686 tag
  python multisetup install sdist bdist_egg
  python multisetup gforge_upload

checkout SVN and upload vplants

  # change the tag_build = .dev to .dev.fc10 if under fedora 
  svn checkout --username xxxxxxxx https://scm.gforge.inria.fr/svn/vplants/vplants/trunk vplants
  cd vplants
  python multisetup install sdist bdist_egg
  # rename the vplants_meta distribution egg file by adding the linux-i686 tag
  python multisetup gforge_upload

Windows release

The full windows release process, from downloading the sources to compiling and packaging is documented on this page.

MacOsX release

The full MacOsX release process, from downloading the sources to compiling and packaging is documented on this page