Note:
This page is primarily intended for developers of Mercurial.
Official Packaging Plan
A plan to move to "official" packaging.
Contents
1. Motivation
We've got a few long-standing problems with our current packaging:
- lag official source release
- not automated
- not easily reproduced by third parties
- not signed
- not centrally hosted
- not built continuously/nightly
- not built for all platforms
2. Plan
The plan is to move each package build towards "official" status by moving through the following steps:
2.1. Use latest.dat
See Packaging for details.
2.2. Centrally hosted
Talk to mpm for ssh access or give him a URL to mirror.
2.3. Automatically built
Get your build automated to the point where the package is created and uploaded with a single command.
2.4. Build rules in repository
Once you're confident your build is properly automated, integrate it into our makefile, for instance "make win32-msi" or "make deb". At this point, consider having us host the building on our servers where possible (we currently have Linux/Mac/Windows).
2.5. Nightly or continuous builds
Automate builds to upload nightly packages for both continuously testing the build process and allowing users to test changes.
2.6. Sign your builds
To be decided. This will probably involve generating a SHA1 fingerprint and signing it with a single-purpose key.
3. What about existing distros?
We expect most users of Linux distributions like Debian to continue to install through the existing channels, but we still consider it valuable to have:
- immediately available release builds as distro packages
- continuous builds for testing purposes
- knowledge of how to build packages in our source tree
4. Progress matrix
Is the 'versioned' column intended to mean 'in any version control system' or 'in an official Mercurial repository' ? --MaxBowsher
Target |
Maintainer |
hosted |
automated |
versioned |
nightly |
signed |
tarball |
|
|
|
|
|
|
|
|
|
|
|
||
Win32 MSI |
Steve Borho |
|
? |
? |
|
|
Win64 MSI |
Steve Borho |
|
? |
? |
|
|
Win32 EXE |
Pascal Quantin |
|
|
|
|
|
Win64 EXE |
Pascal Quantin |
|
|
|
|
|
OS X 10.8 |
Lee Cantey |
|
? |
|
|
|
OS X 10.7 |
Lee Cantey |
|
? |
|
|
|
OS X 10.6 |
Lee Cantey |
|
? |
|
|
|
OS X Fink |
Brendan Cully |
|
? |
|
|
|
OS X MacPorts |
Sean Farley |
|
|
|
|
|
Debian unstable |
Javi Merino? |
|
|
|
|
|
Debian stable |
? |
|
|
|
|
|
Debian oldstable |
? |
|
|
|
|
|
Ubuntu |
Max Bowsher |
|
|
|
|
|
Fedora |
? |
|
|
|
|
|
Centos 5 |
|
|
|
|
|
|
Centos 6 |
|
|
|
|
|
|
Centos 7 |
|
|
|
|
|
|
Solaris |
? |
|
? |
? |
|
|
AIX |
Jim Hague |
|
? |
? |
|
|
5. To do list
- configure SSL cert
- decide on tree structure for releases and nightlies
- automate trimming of nightlies
- decide on make target schema