This week was devoted to design and development of the new package manager, another flagship feature for the Launcher's upcoming release.

New Package Manager API

After a lot of discussion on the launcher's slack, we've made a fairly concrete roadmap for the Package Manager's design. Here is a list of notable features it'll have by the end:

  • Functionality for downloading, installing and removing game packages
  • A locally cached list of all game versions available online
  • Support for all four types of game builds:
  • Support for different types of package providers, including our Jenkins server, GitHub Package Registry or any custom provider
  • Easy support for 3rd-party package sources, on simply adding them by pasting their URL into the launcher

At the time of writing this post, only syncing and caching of game versions has been implemented for all four types of game jobs present on our old Jenkins. The online tasks make use of Jenkin's REST API, along with GSON for parsing the results. Have a look at this PR for the code.

Be sure to check out this post on my weekly GSoC forum thread.