Skip to content

Conversation

@NotNite
Copy link
Member

@NotNite NotNite commented Apr 13, 2025

  • Everything is in TypeScript.
  • pnpm and Node.js versions are now pinned (pnpm 10 and Node.js 22).
  • Extensions are now built without network access. Dependencies are fetched into the store beforehand with pnpm fetch.
  • The runner is now a single Docker container and entrypoint. The runner determines what to do via an environment variable. Because of this, the runner is distributed as a Docker container itself, and we pass the Docker socket in to let the container create containers (Docker in Docker).
  • The same combination of repository and commit is "grouped" together, which makes bulk updates of multiple extensions faster. It'll only build that commit once, and then it'll save all of the relevant extensions from that commit.
  • Extensions no longer provide a built .asar, the runner creates it from a directory. This means people can get rid of repo.mjs if they aren't going to use it.
  • Build manifests now implicitly have the scripts and output path set, which means you only have to set the repository URL and commit.
  • The extension manifest is now parsed to check the required fields being present and to check the version.

This should be ready to merge, I'm just not doing it until later. Currently testing in two personal repositories, moonlight-test and moonlight-test-dist.

Things that need to be done before merge:

  • Write a tool to migrate state.json and the build manifests to the new format
  • Test build every extension locally to make sure nothing breaks

Things that need to be done after merge:

  • In extensions-dist, commit the updated state.json and update the workflow (bump pnpm/Node.js version and set a concurrency group)
  • In extensions, commit the updated build manifests and replace the workflows
  • Document the new runner behavior on the github.io site
  • Create a workflow here to publish the runner onto a container registry, then use that published container in the workflows

@NotNite NotNite self-assigned this Apr 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants