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

Move standard library to separate repository #9029

Closed
bartlomieju opened this issue Jan 6, 2021 · 6 comments
Closed

Move standard library to separate repository #9029

bartlomieju opened this issue Jan 6, 2021 · 6 comments
Assignees

Comments

@bartlomieju
Copy link
Member

Historically standard library was developed in a separate repository (https://github.com/denoland/deno_std) but given rapid pace of changes to Deno public APIs (the TypeScript APIs available on Deno global) it was decided that std should be developed in tree of the main repo to ensure std works with the latests changes in Deno. All of that led to the archival of deno_std repository.

Given that public APIs are not changing rapidly anymore and are mostly stable it is high time we move standard library back to a separate repo.

Doing so has a number of advantages:

  • independent testing of std with multiple versions of Deno (using Github Actions matrix)
  • as a by-product CI in main repo will run faster
  • allow contributors to std to focus on a single purpose repository written in TypeScript; avoiding the noise of main repo

Before we can move std to deno_std we need to do following:

  • copy-paste std code to a new test repo
  • set up CI script that will test std the way it's currently tested in this repo (by rewriting std_tests integration test into a CI step)
  • for starters it should use latest version of Deno
  • additionally we should add a step to test against canary version of Deno (but failures in that stage shouldn't fail whole CI run)
  • set up linting and formatting for the repo by using dprint and dlint from deno_third_party repo and tools/lint.js and tools/format.js scripts respectively; and "check" step in the CI

Once above points are addressed we need to:

  • unarchive deno_std repository
  • carefully migrate the code retaining its Git history (and thus attributions) to deno_std repo
  • bring CI setup from above to deno_std repo

This is a rather complex undertaking and will take a few weeks to complete.

The core team is working on this task.

@caspervonb
Copy link
Contributor

set up linting and formatting for the repo by using dprint and dlint from deno_third_party repo and tools/lint.js and tools/format.js scripts respectively; and "check" step in the CI

Out of curiosity, any particular reason we can't migrate over to linting and formatting with stable deno?

@nayeemrmn
Copy link
Collaborator

I agree with @caspervonb, deno_std should be maintained as a model userspace library.

@bartlomieju
Copy link
Member Author

Actually that's a pretty good idea, should simplify setup a bit.

@bartlomieju
Copy link
Member Author

Thanks to @caspervonb and @piscisaureus hard work we are ready to move standard library to a separate repository (https://github.com/denoland/deno_std).

We plan to do that on Monday, February 1st, 2021.

I will try to land as many currently open PRs before that date, but the ones that won't make will need to be reopened manually in the new repository. These PRs will be labeled with std_migration

@bartlomieju
Copy link
Member Author

bartlomieju commented Jan 31, 2021

Standard library migration is currently in-progress; we expect to move all code to https://github.com/denoland/deno_std tonight.

All PRs touching std/ directory have been marked with std_migration label.

After successful code migration I will start migrating issues with std label to the separate repository as well as remove std/ directory from this repo.

@bartlomieju
Copy link
Member Author

And the migration is done! Deno's standard library is now available at denoland/deno_std.

We'll be transferring all issues in the coming days so I'll keep this issue open until it's fully done.

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

No branches or pull requests

4 participants