Skip to content

The MPS project is hosted in Ravenbrook's Perforce repo, making it hard to sustain #98

@rptb1

Description

@rptb1

The true home of the MPS and all its history is currently Ravenbrook's Perforce SCM repository, hosted on Ravenbrook's servers, and only accessible to Ravenbrook staff. The Git repositories of the MPS (such as the one at GitHub) are mirrors maintained by Ravenbrook using a combination of Perforce Git Fusion and a bit of automation.

Perforce is an excellent system, but the open source world now expects to collaborate using Git. And in any case, Perforce requires per-seat licensing that we can't extend to the world.

Git Fusion is an amazing piece of work that allows for two-way synchronisation between Perforce and Git, but it is no longer maintained by Perforce, and it was never designed to maintain a permanent two-way mirror. It still introduces friction in collaborating in Git, and has maintenance costs. Git Fusion is open source, but one day it will break and those costs will increase dramatically.

So, we plan to migrate the MPS to Git. Initially, we will also be using GitHub as the hosting platform.

The first step will involve switching the "home" of the MPS to Git. This means treating the Git repo as the "source of truth" and Perforce as the mirror. Work will primarily take place using Git (and via GitHub). We have to update our procedures and infrastructure to use Git. And we should, as far as possible, make all of it accessible and usable by anyone, not just Ravenbrook staff. Then we will truly have opened up the MPS to FOSS collaboration.

Git Fusion has created a complete mirror of the history of the MPS codeline, including changes going back to 1994. There is other material that hasn't made it into the Git repo (see #95 for some of it) but that can also be migrated. There is other very important material, such as the issues data (stored in Perforce jobs), that has no home in Git, but might be mirrored to GitHub issues. We must be very cautious about that dependency.

In the short term, we are likely to keep using Git Fusion to keep Perforce up-to-date. It may be possible to do this indefinitely with little overhead, but it should not be necessary to the future of the MPS. But it's likely that the MPS in Perforce will suffer a divorce with Git, and be mothballed.

This issue exists for discussing and tracking the migration.

Metadata

Metadata

Assignees

Labels

adaptabilityAffecs the cost of developing the MPS to meet changing requirements.criticalWill cause failure of the entire projectgit-migrationProject migration from Ravenbrook internal Perforce infrastructure to public git repomaintainabilityAffects the cost of maintaining the MPS to meet current requirements.

Type

No type

Projects

Status

In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions