Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create the initial repository index #85

Closed
Tracked by #63
Angelmmiguel opened this issue Feb 8, 2023 · 1 comment · Fixed by #88
Closed
Tracked by #63

Create the initial repository index #85

Angelmmiguel opened this issue Feb 8, 2023 · 1 comment · Fixed by #88
Assignees
Labels
🚀 enhancement New feature or request
Milestone

Comments

@Angelmmiguel
Copy link
Contributor

Angelmmiguel commented Feb 8, 2023

From v1.0.0, wws relies on external repositories to fetch the available language runtimes. By default, this project will host the initial metadata:

  • Index
  • Polyfills
  • Wrappers

We will host it as a static assets, while relying on GitHub releases for the different artifacts. Initially, we will generate the index manually based on the WebAssembly Language Runtimes project. We will automate this process in the future by adding several automations in both Language Runtimes and Wasm Workers Server projects.

For the URLs, we plan to segment it by version even it's included in the index spec. This will allow in the future to add redirections and any required change to maintain a better backward compatibility in case we need to change it. So, the final URL will be:

wws will use this metadata unless the user specify a different repository. The name of this repo will be wasmlabs.

Versioning

In the repository metadata we have to version both runtimes and also other files such as polyfills and wrappers. These files have two different, but related versions. In general, a polyfill will work for the major version of a language runtime. However, we may add new features that requires to update these polyfills.

Since the runtime metadata is stored locally in the .wws.toml file, updating a related file (polyfill or wrapper) and the index.toml entries will break developer environments that have references to the previous file version. For this reason, we musn't change polyfills and wrappers after releasing them.

If we need to do so, we will:

  • Create the new files under a different revision (for example, /repository/v1/files/ruby/3-1/poly.rb)
  • Create a new release pointing to the new files
  • Mark the previous one as yanked

This will ensure new installation gets the latest version and existing ones work properly. We will add a warning message asking the users to update to the latest version if this happens.

@Angelmmiguel
Copy link
Contributor Author

@vmware-labs/wasm-languages-maintainers I added a new section called Versioning explaining how runtimes and relates files versions are tight but are independent. Please, left here or in the PR any comment or suggestion around this topic 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🚀 enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant