Clone bundles in Heptapod sponsored by Logilab


Published:
By Georges Racinet

This is a good opportunity to write a bit about sponsorable issues, Logilab and clone-bundles.

About sponsorable issues

Of course, it's always been possible to hire the makers of Heptapod, in order to push a particular subject. However, we realized recently that it lacked visibility and information about the required effort: people were free to contact us, yes, but they had no clue whether their wanted features were even considered, yet alone if they were deemed ready for implementation.

So, we added a simple system of labels in our issue tracker: if an issue is tagged, for example as "Sponsorable 2", it means that it can be implemented for €2000. You can be thus assured that we thought about it, that we deem it to be doable, and besides, for the corresponding amount of money (which takes also future maintenance into account). All you have to do is send us an email.

We even intend to make them an item that can be purchased on the Orbeet website.

Also, by sponsoring a feature, you get an opportunity to present yourself in the acknowledgement that follows, of which the present article is an example.

The fine details of the process are available on our dedicated page.

Check out the current list of sponsorable features on Heptapod's issue tracker. Who knows, maybe you will find there this old itch of yours. Otherwise, still have a look at all issues or just create one – as the sponsorable issues program is fairly recent, we are probably missing a few.

About Logilab

Logilab has been delivering software and trainings to its clients for the past 25 years, using FLOSS and agile methods, and focusing its expertise on the Semantic Web and scientific computing.

Logilab chose Mercurial in 2007 and supported its development ever since, by hosting hackathons, making major contributions to the phase/evolve features, then sponsoring heptapod.

Mercurial clone-bundles

Clone-bundles are a way to make initial clonings faster, while reducing the load on the Mercurial server. A fixed large file (a so-called bundle) is prepared with most of the changesets and handed over for separate hosting. The typical cloning then boils down to:

  • retrieve the clone bundle
  • apply changesets from the clone bundle
  • perform a (hopefully) small hg pull to retrieve the remaining changesets.

The client does not need to activate any extension to do so, as applying clone bundles is a Mercurial core feature.

To stay efficient, clone bundles still need to be updated from time to time. Mercurial provides the required tools for this, percisely with hosting platforms like Heptapod in mind.

Our integration in Heptapod relies entirely on the availability of a S3-compatible object storage, which provides both the API to store the clone bundles and the static website to serve them.

To start using clone bundles with Heptapod, read the builtin documentation. If you are running Heptapod 17.8 or greater, you may also find it in your own instance.