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

Replace NPMS with something that works at least most of the time. #1

Open
glennsl opened this issue Sep 28, 2019 · 2 comments
Open

Comments

@glennsl
Copy link
Member

glennsl commented Sep 28, 2019

NPMS seems to be more down than up these days, and since it's an integral part of the data gathering process is blocking site updates.

NPMS is used because it gathers data from multiple sources, normalizes it and runs an analyzer which calculates quality, popularity and maintenance scores. These scores are useful for ranking packages, and gives at-a-glance information that makes it much easier to choose one package among the many alternatives that occasionally exist for a certain use-case.

Consider replacing it with the NPM API if it's improved, a homegrown analyzer, or just give up on these features entirely.

cc @ryyppy in case you have plans for redex, or something like it

@glennsl
Copy link
Member Author

glennsl commented Oct 19, 2019

Short term we can at least unbreak redex by using the NPM API (see documentation linked above) instead of the NPMS API. That basically means replacing the NPMS module with an NPM module that either produces an NPMS.t that can then be processed by Package.fromPublished, or a custom type along with a separate function converting it to a Package.t.

Then all the scripts in the root of src need to be updated to use the new API instead. lint_remote is a good script to test with, since it also validates the data fetched. As long as that works, the rest should as well. Or should at least be trivial to get to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant