CPS on Mercurial and hgbundler
Georges Racinet <[email protected]> Thu, 18 Mar 2010 13:26:07 +0100
| Newsgroups | gmane.comp.web.zope.cps.devel |
|---|---|
| Message-ID | <[email protected]> |
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --===============1559738998== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig0666039CBD3C4AAB57B03A06" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig0666039CBD3C4AAB57B03A06 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello everybody, as you know, right after the 3.5.0 release, CPS development has switched from Subversion to Mercurial. Around that time also started the development of an utility to replace bundleman (see http://public.dev.nuxeo.com/~ben/bundleman/). This is called hgbundler, and its purpose is to help managing automatically a bunch of independent mercurial repositories, which is exactly what we got after the conversion process : since each CPS product had its own trunk/tags/branches substructure in svn, the most natural conversion was to make a mercurial repository of each product. This goes well with the tradition of having independent version numbers for each of them. In the Subversion days, bundles of CPS products were created by means of svn externals, a builtin Subversion feature. Bundleman used that information to automatically perform releases of such bundles. The release process involved releasing each product (version number incrementation, tag, management of changelogs), creating a tag bundle pointing to all products tags and finally tarball creation, or re-creatio= n. Hgbundler replaces both the externals system and bundleman. In theory, it can be used to manage and release together any bunch of mercurial repositories, although the release part is less relevant if one can use zc.buildout (or maven for the java crowd). The release features are quite fresh, but working enough to have released CPS-3-full (not pushed, that was a test) and a client project of mine this week. In other words, the packaging preparatiom of CPS 3.5.1 is ready. Since the long term perspective for CPS would certainly be end up using zc.buildout (requires Zope 2.10), there are a few secondary bundleman features that probably won't get implemented (e.g, automatic changelog diff between bundle releases, md5sums). how to get hgbundler: $ hg clone https://hgcps.nuxeo.org/hgutils $ less hgutils/INSTALL.txt # learn about dependencies and install procedu= re User prerequisites : you have to understand mercurial well, and also what hgbundler actually does, which is nothing but automation of hg calls. This is fully documented in the README.txt file. You really need to read it ;-) SOME EXAMPLES: Here's how to get the CPS-3-full bundle from the Nuxeo server : $ hg clone https://hgcps.nuxeo.org/bundles $ cd bundles/CPS-3-full $ hgbundler.py make-clones As people reading trac tickets may have noticed, I don't push directly on hgcps.nuxeo.org (the reference server), using instead mercurial.racinet.org as an intermediate bleeding edge server. Here's how to switch to that from the previously made bundle : $ hg up racinet # changes the references to server URLs in the bundle its= elf $ hgbundler.py clones-refresh-url # updates paths in .hg/hgrc $ hgbundler.py make-clones # grap new repos if any $ hgmap pull # grab changesets $ cd .hgbundler; hgmap pull; cd .. # again for repos from which only a subdirectory is part of the bundle $ hgbundler.py update-clones # update all the repos to head of correct branch Here's now for instance how to switch to the unicode branch that's available on this server: $ hg up unicode $ less BUNDLE_MANIFEST.xml # time to be curious $ hgbundler.py update-clones # update all repos to the unicode branch More about this branch later=E2=80=A6 In the meanwhile, comments are very= welcomed, as usual Cheers, --=20 Georges Racinet, http://www.racinet.fr Zope/CPS/Plone expertise, assistance & development GPG: 0x4862FFF7 --------------enig0666039CBD3C4AAB57B03A06 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJLohvnAAoJEOAffZJiF+Z4cFAH/R7UjGZ9HrF4fheHxEF5Oj2b DQxYdFKzHaUD10IvAE0efhXglgEN3jAnJaOsQGkq3JLj3BqnvnB29h90V83/HFGh Qb0YvGNyO0XRjWBrA6ijrFlKjO6o5w8O8LsLCaq6ZsU18s3nsMhyg5RAU3vTtm8S 0uL+hshH6womka4Vf8l0yAIflyoLX+WJhE2ha4x89u75vuQXWzidtGCiYEtUCLb2 kSL/omfABYdTxt09SV3jgnI5JEYqb+0vjISU09CL32z4SPG8GInB5qjPSpsl+Ijq 4HhFpJkcXlVD8iwAoXoHC1ykb895DJJIvHr9ChWtmdU6aU2oSMU9iPfK5fdVW6Q= =SRCX -----END PGP SIGNATURE----- --------------enig0666039CBD3C4AAB57B03A06-- --===============1559738998== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ cps-devel mailing list http://lists.nuxeo.com/mailman/listinfo/cps-devel --===============1559738998==--