standard / standard

🌟 JavaScript Style Guide, with linter & automatic code fixer
https://standardjs.com
MIT License
29.06k stars 2.33k forks source link

RFC: eslint-config-standard-with-typescript to depart from standard #1957

Open mightyiam opened 9 months ago

mightyiam commented 9 months ago

Background

eslint-config-standard-with-typescript (-with-typescript) was first published September 2017. Two years later, August 2019, the repository was transferred into the standard organization. We have enjoyed and appreciate the contributions by various members of the community, yet, I and later @rostislav-simonik and @jay-bulk have been the regular contributors since.

Popularity of -with-typescript has been on the rise since the beginning of 2020, with a significant increase in adoption rate since July 2022, which is about the time the mob was formed.

Policy discrepancy

Standard always had a certain approach with regards to the scope and impact of rules and the frequency of releases. And -with-typescript always had quite a different approach. For example, -with-typescript wasn't shy in making frequent major releases that introduced new rules. The reasoning has been that of continuous delivery, semantic commits/releases and the idea that users would be able to bump the version at their own pace.

Suggested solution

-with-typescript will depart from its dependency on eslint-config-standard and therefore depart from its relationship with Standard. This would permit -with-typescript the freedom to introduce such changes that would currently be incompatible with standard. For example, new core ESLint (non-TypeScript) rule.

Of course, We will continue to welcome asynchronous contributions from outside the regular mob sessions.

Co-authored-by: @rostislav-simonik

wesleytodd commented 9 months ago

This makes sense to me. As I have been following things lately I have noticed this is the central tension in the project so I am glad to see there is a way everyone can get what they need/want out of it.

voxpelli commented 9 months ago

I'm 👍 on this, thanks for suggesting 🙏 There are some practicalities to it I guess, so lets sync up on those so that we are all on the same page as to what this would entail.

This is what I'm personally thinking of, from the top of my mind:

Any other practicalities I'm missing? Any other modules or npm-packages that would need to be moved?

Also: Would the new org still rely on eslint-config-standard or become a self-contained module which copies the current rules over but after that keeps its own maintenance of those? (I think personally this would give the most freedom to the new org)

mightyiam commented 9 months ago

Also: Would the new org still rely on eslint-config-standard or become a self-contained module which copies the current rules over but after that keeps its own maintenance of those? (I think personally this would give the most freedom to the new org)

The latter.

Otherwise, sounds good.

mightyiam commented 8 months ago

@rostislav-simonik and I would like to implement this RFC (depart eslint-config-standard-with-typescript from @standard). We find it reasonable at this point to announce our intention to implement this RFC after a certain future date: 2024-01-12. DMs will be sent to @feross and @mcollina.

mcollina commented 8 months ago

I'm ok with it, +1.

mightyiam commented 8 months ago

The new home is https://github.com/mightyiam/eslint-config-standard-with-typescript .

mightyiam commented 8 months ago

Could someone please make me owner of the eslint-config-standard-with-typescript npm package? @voxpelli perhaps?

mightyiam commented 8 months ago

My npm username is mightyiam.

voxpelli commented 8 months ago

I'm not an admin / owner on npm it seems, ping @LinusU, @bcomnes, @feross

bcomnes commented 8 months ago

Sorry for the delay here. Ok I removed the package eslint-config-standard-with-typescript from the standardjs developers team, and mightyiam and rostislav-simonik remain as maintainers.

Does that look right to everyone?

mightyiam commented 6 months ago

@bcomnes thank you. If the 'maintainer' role means full control, then that seems complete. Could you, perhaps do the same for ts-standard?

bcomnes commented 6 months ago

@mightyiam I tried adding you as a maintainer/collaborator on that package on npm but get a forbidden error. As an admin I am unable to invite you back to the org.

mightyiam commented 6 months ago

@feross perhaps you could? @bcomnes could you perhaps ping some who do have permission to do this?

voxpelli commented 6 months ago

@bcomnes Essentially we should do the same thing with ts-standard as we did with eslint-config-standard-with-typescript and simply give it over to @mightyiam and remove it form the standard organization – on both npm and on GitHub

bcomnes commented 6 months ago

The difference here's that he's no longer on the package as a collaborator, and I'm unable to add outside collaborators as an admin. I think only owners can do this.

voxpelli commented 6 months ago

@bcomnes a problem on both npm and GitHub or just npm?

bcomnes commented 6 months ago

Npm

voxpelli commented 5 months ago

@mightyiam Is this still of interest to solve? If so: Reminder @feross. Else we can close this?

mightyiam commented 5 months ago

ts-standard probably belongs together with eslint-config-standard-with-typescript. I've been making progress there. So, I would say, yes.