~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to doc/dev/packaging.rst

  • Committer: William Grant
  • Date: 2009-12-14 04:17:46 UTC
  • Revision ID: me@williamgrant.id.au-20091214041746-eurw04xssf4cvszc
Add ivle-dev-setup, a script to do most of the heavy lifting when setting up a new dev installation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
   along with this program; if not, write to the Free Software
16
16
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
17
 
18
 
********
19
 
Releases
20
 
********
21
 
 
22
 
To release IVLE, both generic source tarballs and Ubuntu packages should
23
 
be published.
24
 
 
25
 
These instructions expect to be run on a Debian-derived system with a
26
 
working IVLE installation. You also need to have your system set up with
27
 
write access to Launchpad branches.
28
 
 
29
 
 
30
 
Update the internal version strings
31
 
===================================
32
 
 
33
 
Change the two version strings in ``doc/conf.py`` and the one in
34
 
``ivle/__init__.py``. Make sure you commit this change now.
35
 
 
36
 
 
37
 
Tag the release in Bazaar
38
 
=========================
39
 
 
40
 
To note down the release's revision in the Bazaar trunk, run ``bzr tag
41
 
-d lp:ivle VERSION``.
42
 
 
43
 
 
44
 
Generate a source tarball
45
 
=========================
46
 
 
47
 
To generate a tarball of the current state of trunk, run ``bzr export 
48
 
ivle-VERSION.tar.gz lp:ivle``.
49
 
 
50
 
 
51
 
Release it on Launchpad
52
 
=======================
53
 
 
54
 
As a member of the `IVLE Developers <https://launchpad.net/~ivle-dev>`_ team,
55
 
visit the `IVLE project page <https://launchpad.net/ivle>`_. There you'll see
56
 
a graph of IVLE's series, milestones and releases.
57
 
 
58
 
Clicking on the series in which this release should be created will present
59
 
a list of existing milestones and releases. If a milestone for this release
60
 
already exists, click "Release now". If not, click "Create release". Enter
61
 
the release date on the following form, and confirm the creation.
62
 
 
63
 
To upload the release tarball for the world to see, hit "Add download file" on
64
 
the release page. Give a meaningful description like "IVLE 1.0 source", select
65
 
the file, and ensure that the type is "Code Release Tarball".
66
 
 
67
 
 
68
 
.. seealso::
69
 
 
70
 
   `Launchpad release documentation <https://help.launchpad.net/Projects/SeriesMilestonesReleases>`_
71
 
      All you could ever want to know about Launchpad's series, milestones and
72
 
      releases model.
73
 
 
74
 
 
75
 
Publish an Ubuntu package
76
 
=========================
77
 
 
78
 
An Ubuntu package is kept in the `PPA for production environments
79
 
<https://launchpad.net/~unimelb-ivle/+archive/production>`_. Releases should
80
 
be pushed out to there if destined for production systems. The packaging is
81
 
kept in a separate branch: `lp:~ivle-dev/ivle/debian-packaging
82
 
<https://code.launchpad.net/~ivle-dev/ivle/debian-packaging>`_.
83
 
 
84
 
You will need to be a member of the `University of Melbourne IVLE developers
85
 
<https://launchpad.net/~unimelb-ivle>`_ team, have an OpenPGP key assigned to
86
 
your account, and have signed the Ubuntu Code of Conduct. See the PPA
87
 
documentation linked below for instructions. You should be able to build
88
 
the package on any Debian-derived operating system that uses ``dpkg``.
89
 
You also need to have an SSH key `associated with your account
90
 
<https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair>`_ so you can
91
 
commit to the branch on Launchpad.
92
 
 
93
 
When performing a release, you should merge trunk into a checkout of the
94
 
packaging branch. Then run ``dch -i`` to add a new Debian changelog entry.
95
 
For the Debian version string, append ``-0ppa1`` to the IVLE version (eg.
96
 
``1.0-0ppa1``). Make sure that you target to the correct Ubuntu series
97
 
(currently ``hardy``). Also ensure that your name and email address are set
98
 
correctly at the bottom of the new entry.
99
 
 
100
 
Next ensure that you have a copy of the release tarball in the parent
101
 
directory, named ``ivle_VERSION.orig.tar.gz``. Once that's there, run
102
 
``debuild -S -sa -i`` inside the checkout to build the source package and
103
 
have the results placed in the parent directory.
104
 
 
105
 
``dput ppa:unimelb-ivle/production ivle_VERSION_source.changes`` will now
106
 
upload the package to the production PPA. You should receive an acknowledgement
107
 
email from Launchpad within five minutes, at which point Launchpad will begin
108
 
building binaries from the source package. You can check the build progress
109
 
on the `PPA detail page
110
 
<https://launchpad.net/~unimelb-ivle/+archive/production/+packages>`_.
111
 
 
112
 
Remember to commit to and push the ``debian-packaging`` branch when done.
113
 
 
114
 
.. seealso::
115
 
 
116
 
   `Launchpad PPA documentation <https://help.launchpad.net/Packaging/PPA>`_
117
 
      All you could ever want to know about using Launchpad's PPA
118
 
      functionality.
119
 
 
120
 
   `Ubuntu Packaging Guide <https://wiki.ubuntu.com/PackagingGuide/Basic>`_
121
 
      All you could ever want to know about Ubuntu packaging.
 
18
*********
 
19
Packaging
 
20
*********
 
21
 
 
22
Source package
 
23
==============
 
24
 
 
25
The latest copy of trunk can be fetched by running :command:`bzr export 
 
26
ivle-latest.tgz lp:ivle`.
 
27
 
 
28
Debian Package
 
29
==============
 
30
 
 
31
A Debian package is currently under development in the 
 
32
``lp:~ivle-dev/ivle/debian-packaging`` branch.
 
33
 
 
34
William Grant currently maintains a :abbr:`PPA (Personal Package Archive)` of 
 
35
IVLE and its dependencies at https://launchpad.net/~wgrant/+archive/ivle.
 
36
 
 
37
.. TODO: Are we using this for releases?
 
38
 
 
39
Package split
 
40
-------------
 
41
 
 
42
IVLE will be split into a few packages:
 
43
 
 
44
* ``ivle`` will be the all-in-one package, which users can install to get a 
 
45
  working IVLE with all tasks on a single node. It will depend on 
 
46
  ``ivle-app-server``, ``ivle-usrmgt-server``, *PostgreSQL*, and perform extra 
 
47
  automated configuration for the Subversion service.
 
48
* ``ivle-app-server`` will contain the web code, trampoline, timount and co., 
 
49
  depend upon the packages necessary for an appserver, and perform just the 
 
50
  configuration for an appserver (generating config files, scheduling timount 
 
51
  runs, etc.)
 
52
* ``ivle-usrmgt-server`` will contain and configure the usrmgt-server.
 
53
* ``ivle-server-common`` will contain those bits common to the server tasks, 
 
54
  but not in the ivle Python package, and not needed in the jail.
 
55
* ``ivle-jail`` might not be in the archive, instead being built by 
 
56
  ivle-create-jail - it will contain the extra jail scripts.
 
57
* ``python-ivle`` will contain the ivle Python package.