#pragma section-numbers 2 <> = Official Packaging Plan = A plan to move to "official" packaging. <> == 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 == Plan == The plan is to move each package build towards "official" status by moving through the following steps: === Use latest.dat === See [[Packaging]] for details. === Centrally hosted === Talk to [[mpm]] for ssh access or give him a URL to mirror. === Automatically built === Get your build automated to the point where the package is created and uploaded with a single command. === 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). === Nightly or continuous builds === Automate builds to upload nightly packages for both continuously testing the build process and allowing users to test changes. === Sign your builds === To be decided. This will probably involve generating a SHA1 fingerprint and signing it with a single-purpose key. == 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 == 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 ||[[mpm]] || (./) || || (./) || {X} || {X} || ||[[HackableMercurial|Win32 Hackable]] ||[[mpm]] || (./) || (./) || {X} || {X} || {X} || ||Win32 MSI ||Steve Borho || (./) ||? ||? || {X} || {X} || ||Win64 MSI ||Steve Borho || (./) ||? ||? || {X} || {X} || ||Win32 EXE ||Pascal Quantin || (./) || {X} || {X} || {X} || {X} || ||Win64 EXE ||Pascal Quantin || (./) || {X} || {X} || {X} || {X} || ||OS X 10.8 ||Lee Cantey || (./) ||? || {X} || {X} || {X} || ||OS X 10.7 ||Lee Cantey || (./) ||? || {X} || {X} || {X} || ||OS X 10.6 ||Lee Cantey || (./) ||? || {X} || {X} || {X} || ||OS X Fink ||Brendan Cully || ||? || {X} || {X} || {X} || ||OS X [[https://trac.macports.org/browser/trunk/dports/devel/mercurial/Portfile|MacPorts]] ||Sean Farley || {X} || {X} || (./) || (./) || {X} || ||Debian unstable ||Javi Merino? || {X} || (./) || {X} || {X} || {X} || ||Debian stable ||? || {X} || (./) || {X} || {X} || {X} || ||Debian oldstable ||? || {X} || (./) || {X} || {X} || {X} || ||Ubuntu ||Max Bowsher || {X} || (./) || (./) || (./) || (./) || ||Fedora ||? || {X} || (./) || (./) || {X} || {X} || ||Centos 5 || [[Pierre-YvesDavid]] || (./) || (./) || (./) || (./) || {X} || ||Centos 6 || [[Pierre-YvesDavid]] || (./) || (./) || (./) || (./) || {X} || ||Centos 7 || [[Pierre-YvesDavid]] || (./) || (./) || (./) || (./) || {X} || ||Solaris ||? || {X} ||? ||? || {X} || {X} || ||AIX ||Jim Hague || {X} ||? ||? || {X} || {X} || == To do list == * configure SSL cert * decide on tree structure for releases and nightlies * automate trimming of nightlies * decide on make target schema ---- ## list categories here