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-creation. 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 procedure 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 itself $ 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… In the meanwhile, comments are very welcomed, as usual Cheers, -- Georges Racinet, http://www.racinet.fr Zope/CPS/Plone expertise, assistance & development GPG: 0x4862FFF7
signature.asc
Description: OpenPGP digital signature
_______________________________________________ cps-devel mailing list http://lists.nuxeo.com/mailman/listinfo/cps-devel
