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

Convert into monorepo #609

Closed
7 tasks done
nzakas opened this issue Jun 14, 2024 · 16 comments
Closed
7 tasks done

Convert into monorepo #609

nzakas opened this issue Jun 14, 2024 · 16 comments
Assignees
Labels

Comments

@nzakas
Copy link
Member

nzakas commented Jun 14, 2024

In our discussion of how to move forward with incorporating all of the JS-related packages into a single repo the vote was clear: people prefer a monorepo with individual packages.

Rather than creating a new repo and moving everything into that, I propose that we repurpose the Espree repo as a monorepo containing all of the JS-related packages. Because Espree is the one where we do the most work and have the most history, this seems like a good way to retain the package history while still moving us forward.

Here are the transition steps I have in mind.

Steps

  • Move all Espree-specific files into packages/espree
  • Update release-please configuration to be a monorepo setup (like `eslint/rewrite)
  • Update root README so it's not Espree-specific
  • Update issue templates to indicate which package an issue is for
  • Move eslint-scope from its own repo into packages/eslint-scope and update release-please
  • Move eslint-visitor-keys from its own repo into packages/eslint-visitor-keys and update release-please
  • rename the repo to eslint/js, and update all links

Later Steps

After that, it would be nice to get the packages transitioned to ESM and type checking, but that can be done incrementally.

Note: I'm looking for volunteers to do this as I already have too much on my plate.

@github-project-automation github-project-automation bot moved this to Needs Triage in Triage Jun 14, 2024
@snitin315
Copy link
Contributor

I'll work on it.

@snitin315 snitin315 self-assigned this Jun 15, 2024
@nzakas
Copy link
Member Author

nzakas commented Jun 17, 2024

@snitin315 we still need this accepted by the TSC, so please hold off for now.

@nzakas nzakas moved this from Needs Triage to Ready for Dev Team in Triage Jun 17, 2024
@nzakas
Copy link
Member Author

nzakas commented Jun 18, 2024

@eslint/eslint-tsc still looking for feedback here.

@nzakas nzakas added the tsc waiting Issues that require feedback from a TSC member label Jun 18, 2024
@fasttime
Copy link
Member

Sounds good to me 👍🏻 This will allow all three packages to share the same tooling so it should simplify maintenance.

@fasttime fasttime moved this from Ready for Dev Team to Feedback Needed in Triage Jun 19, 2024
@mdjermanovic
Copy link
Member

Sounds good to me too 👍

@mdjermanovic mdjermanovic added accepted and removed tsc waiting Issues that require feedback from a TSC member labels Jun 19, 2024
@mdjermanovic
Copy link
Member

it would be nice to get the packages transitioned to ESM

All three packages are already ESM. In that regard, a difference between these and eslint/rewrite packages is only that in these packages we're publishing ESM source code as-is (all files), whereas in eslint/rewrite packages we're publishing an ESM bundle.

@nzakas
Copy link
Member Author

nzakas commented Jun 19, 2024

All three packages are already ESM. In that regard, a difference between these and eslint/rewrite packages is only that in these packages we're publishing ESM source code as-is (all files), whereas in eslint/rewrite packages we're publishing an ESM bundle.

Ah, didn't realize everything was in ESM already.

In rewrite, I'm bundling first to avoid tsc creating a new .d.ts file for every file in src (which just seems like a better way to do things). We can do that in this repo as a follow-on step.

@snitin315 this is ready for you. 🎉

@nzakas nzakas moved this from Feedback Needed to Ready to Implement in Triage Jun 19, 2024
@nzakas
Copy link
Member Author

nzakas commented Jul 2, 2024

@snitin315 are you still planning on working on this?

@snitin315
Copy link
Contributor

@nzakas yes, I've made some progress locally will open a PR soon.

@aladdin-add
Copy link
Member

We also need to rename the repo to something like eslint/js, but there is already an npm package called @eslint/js which can be confusing.😖

does it make sense to also moving @eslint/js to here?

@nzakas
Copy link
Member Author

nzakas commented Aug 6, 2024

does it make sense to also moving @eslint/js to here?

Eventually, yes, but that will be a lot of work. So we'll have to live with the confusion for a while.

@aladdin-add
Copy link
Member

@nzakas I've added a new step: "rename the repo to eslint/js, and update all links", just in case we forget about it. :)

@nzakas nzakas moved this from Ready to Implement to Implementing in Triage Aug 15, 2024
@nzakas
Copy link
Member Author

nzakas commented Aug 15, 2024

Renamed 👍

@snitin315
Copy link
Contributor

Is there anything remaining for this issue?

@aladdin-add
Copy link
Member

I think no. but want @nzakas to verify.

@nzakas
Copy link
Member Author

nzakas commented Aug 26, 2024

Looks like we got it all. Thanks @snitin315! 🙏

@nzakas nzakas closed this as completed Aug 26, 2024
@github-project-automation github-project-automation bot moved this from Implementing to Complete in Triage Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

No branches or pull requests

5 participants