RJWadley / stylelint-no-unsupported-browser-features

Disallow features that aren't supported by your target browser audience.
426 stars 20 forks source link

Alternative for doiuse? #267

Closed sidx1024 closed 1 year ago

sidx1024 commented 1 year ago

I see that doiuse (https://github.com/anandthakker/doiuse/issues/110) is no longer maintained (since 2021). Do we plan to have an alternative?

anandthakker commented 1 year ago

I'd be happy to transfer ownership of doiuse. @ismay as the owner of this related project, do you want it?

ismay commented 1 year ago

I'd be happy to transfer ownership of doiuse. @ismay as the owner of this related project, do you want it?

Hi @anandthakker, thanks for the offer! That does sound interesting. I was wondering, what do you think doiuse needs at this stage? Does it just need some care and maintenance, or would you overhaul certain parts? Wondering what your perspective is on the needs of the lib at this stage.

clshortfuse commented 1 year ago

I've forked it a couple of months ago and did a bit of a rewrite. I don't actively maintain it, but it's a bit further along:

https://github.com/clshortfuse/doiuse2

ismay commented 1 year ago

I've forked it a couple of months ago and did a bit of a rewrite. I don't actively maintain it, but it's a bit further along:

https://github.com/clshortfuse/doiuse2

Anything that would be worth contributing back to doiuse? Or was it more just exploration?

clshortfuse commented 1 year ago

I think I originally forked it because I write in only ESM and couldn't import doiuse.

https://github.com/clshortfuse/doiuse2/compare/b4685e99507b22bebb638d36dea92e5a09782ca3...master

The rewrite makes it a bit harder to do a direct comparison against upstream. Things meant to be exported are in /lib where as internal utilities are in /utils.

I don't think I broke any APIs, but there wasn't an API test. The /exports is meant to replicate CommonJS imports. One for the default export as a function (doiuse()) and one for doiuse/stream.

I also forked this repository, but that's just to change one line (import doiuse2 instead of doiuse) and it seems to work fine. It could definitely benefit from some extra tests.

clshortfuse commented 1 year ago

It seems the last (internal) state of the library was adding @mdn/browser-compat-data support to double check feature support.

Edit: Updated to 6.0.0. Added the newer features in caniuse-lite and dropped Node 12.

ismay commented 1 year ago

@clshortfuse Sounds like you've done quite a bit of work on it. Thanks for the explanation 🙏

@anandthakker To be honest, after thinking about it I'm not sure if I have the time to properly maintain doiuse. I'd like to, and I've thought about it in the past. But I think if I'm honest with myself I probably just don't have the time to give it the attention it deserves.

I'm not sure if this fits both of your goals @clshortfuse & @anandthakker, but would you be interested in the job @clshortfuse? It depends on whether this works for @anandthakker of course, I can't speak on his behalf.

anandthakker commented 1 year ago

I'd be happy to transfer owneship to @clshortfuse if you want it

clshortfuse commented 1 year ago

Sorry, I lost track of the discussion!

@anandthakker I'm not sure what that entails. Are we talking github or npm? Regardless, I'm fine with continuing maintenance on doiuse.

ismay commented 1 year ago

Hey @anandthakker I was wondering how it's going with adding @clshortfuse as a doiuse maintainer? I believe this is his npm account: https://www.npmjs.com/~shortfuse (correct me if I'm wrong @clshortfuse).

I think both github and npm rights would be useful to have for him. Or transferring entirely, whichever you'd prefer. Is that ok with you as well @clshortfuse?

anandthakker commented 1 year ago

Sorry for the delay. Invited @clshortfuse to the GH repo and shortfuse to the NPM package

clshortfuse commented 1 year ago

@ismay 6.0.0 is out.

I've switched my projects back to this repo with an override in package.json

"overrides": {
  "stylelint-no-unsupported-browser-features": {
    "doiuse": "^6.0.0"
  }
},

So far, all is good, but you might want to double-check. 😄 It's supposed to be backwards compatible with the exception of dropping support for EOL Node versions.

ismay commented 1 year ago

@ismay 6.0.0 is out.

I've switched my projects back to this repo with an override in package.json

"overrides": {
  "stylelint-no-unsupported-browser-features": {
    "doiuse": "^6.0.0"
  }
},

So far, all is good, but you might want to double-check. 😄 It's supposed to be backwards compatible with the exception of dropping support for EOL Node versions.

@clshortfuse Thanks for the heads up! I've got a PR here for the update to doiuse 6: https://github.com/ismay/stylelint-no-unsupported-browser-features/pull/277, but I'm getting a linting error that makes me suspect there's an issue with doiuse 6's commonjs export. See here: https://github.com/ismay/stylelint-no-unsupported-browser-features/actions/runs/5456893877/jobs/9930302119?pr=277. We can continue the chat in the PR, let me know what you think. On master of this repo module resolution works fine, so I'm suspecting it's the update to doiuse.

ismay commented 1 year ago

:tada: This issue has been resolved in version 7.0.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

ismay commented 1 year ago

All right, that should do it. Thanks to everyone for helping out 🙏!