Dear Siesta developers,

For three years now we have been using the Launchpad platform to centralize the task of Siesta development. We can say that it has worked quite well, and for sure it has been a huge improvement in visibility and ease of monitoring over the old semi-closed development system.

However, times are changing, and to remain in the Launchpad platform would mean missing out on some extra opportunities for collaboration with other projects and shared best practices. Also, the future of bzr and Launchpad is not clear in view of the end of support for Python 2.

So we have decided to switch development to the GitLab platform, and hence also to switch to git as the underlying distributed version control system.

There is a rough one-to-one correspondence between the features of git and bzr, on the one hand, and between GitLab and Launchpad on the other, so it will not be overly difficult for developers to do the switch. However, there are enough differences to provide you with a set of pointers for tutorial information and best practices. This will be forthcoming in a wiki page.

The most important issue is to convert all the existing bzr branches of Siesta development, both the ‘core’ branches such as 4.0, 4.1, trunk, etc, and personal developers’ branches. The conversion itself is not difficult, but some organization is needed if we want to preserve properly the history and relationships of all relevant branches.

Currently, the page: https://code.launchpad.net/siesta lists the public branches that have been ‘pushed’ to Launchpad. There might be others that developers keep on their own machines and have not been pushed yet. And even for the branches which are publicly listed, it might be that they are not up-to-date with the local copies on the developers’ computers. Last but not least, private branches may exist on Launchpad which are only visible to their owners.

It is thus important that you update and push your branches as soon as possible. Do not be afraid to commit code that is not complete, or that it does not even compile yet! What matters is that your changes are recorded and properly registered in bzr. This is a good opportunity for you to review your existing working directories and bzr branches, and consolidate your development work. Please commit your changes and push any relevant branches to Launchpad at your earliest convenience, but not later than Sept. 30.

To get started with GitLab, create an account if you do not have one, and send us the username. You can do that now without waiting for the conversion. You can experiment in your own personal account in Gitlab: create projects, try forking other projects, create issues, etc. Just do not create a ‘siesta’ project yet, we will provide you with it.

The outline of the migration plan is as follows:

With this infrastructure in place, development can continue on Launchpad for a short transitional period (a few weeks). We encourage developers to switch to git/GitLab as early as possible to minimize headaches. The procedure is simply:

After the switch, developers will commit locally, as usual, and push to their git repo. They will be able to see any updates to the core branches in the new official repository on Gitlab as well. Any development on Launchpad should stop. All history and relevant branch relationships will be preserved.

Eventually we will announce the end of contributions to the Launchpad platform, the “legacy” repository will be made read-only, and the bridge stopped. From then on, all developments, commits, and merge requests, will have to be done using the GitLab platform.

We expect the whole process to be completed before the end of October, in any case before mid-November 2019, which is when the bridge between Launchpad and Gitlab will be switched off.

This document and any other pointers of relevance to documentation and plans will be made available at the project’s wiki: https://gitlab.com/siesta-project/siesta/wikis/home.