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

feat: create eslint-community GitHub organization #91

Merged
merged 10 commits into from
Aug 24, 2022

Conversation

MichaelDeBoey
Copy link
Contributor

@MichaelDeBoey MichaelDeBoey commented May 31, 2022

Summary

Facilitate a GitHub organization (eg. @eslint-community) where community members can help ensure widely depended upon ESLint related packages stay up to date with newer ESLint releases and doesn't hold the wider community back.

Related Issues

This was originally put together in eslint/eslint#15929 (reply in thread)

Related discussions


Rendered version: https://github.com/eslint/rfcs/blob/main/designs/2022-community-eslint-org

designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
@ota-meshi
Copy link
Member

This may be off topic, but I received a reply from @mysticatea only once in April. What I found out was that he was so busy with his work right now that he couldn't do it even if he wanted to maintain OSS.
I think it may be possible to take over the maintenance of @mysticatea's package by presenting him a reliable transfer destination.

Copy link

@munierujp munierujp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check my comments.

designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
@MichaelDeBoey MichaelDeBoey changed the title feat: create "@eslint-community GitHub organisation" RFC feat: create "@eslint-community GitHub organization" RFC May 31, 2022
@nzakas nzakas added Initial Commenting This RFC is in the initial feedback stage and removed triage labels Jun 1, 2022
@bradzacher
Copy link

Question - what would be the the policy for things like typescript-specific plugins/rulesets?

Copy link
Member

@nzakas nzakas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together. From what I gather, you are envision the eslint-community org as being completely separate from the eslint org and run by a different team? So the ESLint team would be completely hands off?

My thought was that the ESLint team should curate and manage the org, but you make a compelling case that it can be run independently.

If that’s the case, and there’s interest, we can just transfer the eslint-community org to you and you can do what you’d like with it. :)

Let me know what you think.

designs/2022-community-eslint-org/README.md Show resolved Hide resolved
designs/2022-community-eslint-org/README.md Outdated Show resolved Hide resolved
@voxpelli
Copy link

voxpelli commented Jun 2, 2022

My thought was that the ESLint team should curate and manage the org, but you make a compelling case that it can be run independently.

@nzakas I think the idea is that the ESLint team is the ultimate caretakers, the assign a core team of people to take care of the effort and they ran the day to day business so that the ESLint team rarely have to involve themselves.

@voxpelli
Copy link

voxpelli commented Jun 2, 2022

Question - what would be the the policy for things like typescript-specific plugins/rulesets?

@bradzacher They would be as eligible as everything else I think?

@MichaelDeBoey
Copy link
Contributor Author

What would be the the policy for things like typescript-specific plugins/rulesets?

@bradzacher I agree with @voxpelli that TypeScript-specific ESLint related packages would also be welcome in the new org.
Having a separate @typescript-eslint-community org would only fragmentize the community more without any benefit I think.

@MichaelDeBoey MichaelDeBoey requested review from nzakas and removed request for aladdin-add June 2, 2022 13:34
Copy link
Member

@nzakas nzakas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the general direction here is clear, so Im comfortable moving forward.

@nzakas nzakas added the tsc agenda Topic for discussion at next TSC meeting label Aug 9, 2022
@nzakas
Copy link
Member

nzakas commented Aug 9, 2022

@eslint/eslint-tsc please review this so we can discuss at the meeting.

TSC Summary: This RFC proposes an eslint-community org managed by a separate team but overseen by the TSC. This org would be a repository for important ESLint ecosystem projects and would be able to step on to maintain those projects I’d they fall out of maintenance.

TSC Question: Do we want to proceed with this proposal?

@nzakas
Copy link
Member

nzakas commented Aug 11, 2022

Moving to final commenting 🎉

@nzakas nzakas changed the title feat: create "@eslint-community GitHub organization" RFC feat: create eslint-community GitHub organization RFC Aug 11, 2022
@nzakas nzakas changed the title feat: create eslint-community GitHub organization RFC feat: create eslint-community GitHub organization Aug 11, 2022
@nzakas nzakas added Final Commenting This RFC is in the final week of commenting and removed Initial Commenting This RFC is in the initial feedback stage labels Aug 11, 2022
Comment on lines +55 to +56
Node/ESLint versions, if we want to release all "rescued" packages under the
`@eslint-community` `npm` scope or not, ...
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like there's ambiguity around when we should move an NPM package to the @eslint-community NPM scope.

On the one hand, it would be nice to keep the existing NPM package name whenever possible to avoid churn so the thousands or millions of users of the package don't have to manually switch from the old name to the new name (the majority of users might never even get around to doing this, resulting in substantial fragmentation). This is my preference.

On the other, there might be organizational benefits to moving packages to scopes?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there's much benefit to moving an npm package name. I agree whenever possible we'd want to avoid churn, so the only use case there would be when the original name was somehow unrecoverable.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was about to write the same as @ljharb 👍 Only move when it needs to move

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should aim to get the original repo/npm package, if that's not possible, we should go with a fork and/or publish it under the org namespace

If a package is meeting these criteria, but we can't get into contact with the
owner of the repo to transfer ownership over to the new org, we could
temporarily fork the repo into the new org. However, the ultimate goal would
always be to transfer the original repo to the new org.
If we had a temporary fork and are able to transfer the original repo to the new
org, we should first create PRs to the original repo to bring it up to date with
the fork before continuing with other tasks.

@nzakas
Copy link
Member

nzakas commented Aug 16, 2022

One last note: for security purposes, we should set up a separate npm account for ESLint community projects. It's probably not a good idea to share credentials for ESLint core with community projects.

@ljharb
Copy link

ljharb commented Aug 16, 2022

Credentials shouldn't need to be shared at all - there's automation tokens for CI, and individual accounts can be added to appropriate org teams as needed.

@nzakas
Copy link
Member

nzakas commented Aug 16, 2022

@ljharb there is still a vector of attack where a secret token is shared to a repo and the name in package.json is changed to “eslint” to publish a malicious package. With a different account, that would fail; if it uses the same account then it would succeed.

@ljharb
Copy link

ljharb commented Aug 16, 2022

Totally agree, and fair point on the risks of sharing a token :-) I wouldn't expect credentials tho to ever be shared, and separate accounts seems like a great idea.

(Soon npm will hopefully have the ability to make package-specific automation tokens, but that doesn't entirely fix the scenario you describe)

@nzakas
Copy link
Member

nzakas commented Aug 24, 2022

We are good to go here! @MichaelDeBoey I'll get you set up with the org in the coming days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Final Commenting This RFC is in the final week of commenting
Projects
None yet
Development

Successfully merging this pull request may close these issues.