The team at SFTPPlus is delighted to have helped the Twisted open source project with the migration of the ticket management system from Trac to GitHub Issues.

We use Twisted as an important component of SFTPPlus, for its efficient and flexible handling of network communication.

It allows us to share common network handling code with other companies, while focusing on creating value in the field of managed file transfers.

Preparation

There was a lot of preparation required, including:

  • Handling attachments: we stored them in a GitHub repository
  • Mapping Trac features to GitHub ones, such as users, ticket status, labels, milestones, and projects
  • Keeping track of the created ticket IDs, in order to preserve the ones from Trac as much as possible
  • Preserving text formatting as much as possible (which required conversion from TracWiki syntax to GitHub Flavored Markdown)
  • Preserving links to tickets (including with changed IDs), PRs, and comments

Workflow

Each feature was developed together with unit tests and integration tests were added as necessary.

We performed a few trial migrations to temporary repositories, to see that we were satisfied with the output.

We used an experimental issue import API. This allowed us to import around 11000 tickets in less than 18 hours.

Final migration

After the last trial import required no changes during or after execution, we performed the final migration.

It was an exciting event, scheduled on a weekend to reduce disruption. It proceeded as planned, fortunately.

See the imported tickets here.

Impact

Once the migration completed, the workflow around a ticket became easier, since both the ticket and the code are now on GitHub.

In the 4-month period ending 2022-06-24, the date of the last Trac ticket, there have been 40 tickets created.

But in the 4 months after the migration, we've seen 91 new tickets, and if created tickets are any indication of ease of collaboration, then it has more than doubled.

Clearly, reducing friction is valuable for an open source project and we are glad we could leverage GitHub's network effects for improving the development experience.

In case you know of a project using Trac, and the community thinks it is worth migrating, our tools and workflow are freely available and might help you.

Conclusion

We have seen a great impact on the community. We warmly recommend that your enterprise should also give back to any free software it is using.

We believe increasing industry-wide collaboration through software reuse reduces costs and improves quality, which can only result in more satisfied customers in the long run.

We also hope other projects decide to migrate, in order to take advantage of the social network aspects of larger code hosting services.