You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Implement libraries.io support for pre-commit #345
can likely use all-repos.json and maybe(?) take some inspiration from the go implementation for libraries.io (since the distribution mechanism is similar)
have a look at this commit, i used the all-repos.json file and parsed all attributes of the hooks (fallback are the default values listed on pre-commit.com).
let me know if this is what you've imagined and if you have comments on it.
looks like a good start! I imagine the version information would be useful as well -- is there a second mechanism for parsing .pre-commit-config.yaml from consuming repositories? to be honest I can't remember why this was useful (I think it was so a third party could integrate with showing packaging mappings / use)
the reason why i commented out the self.version method is because libraries.io then automatic gets the latest tag (either you define your one version or it uses git tags. this can also be seen in the compatibility matrix). this is similar to the emacs-packages.
not sure if i understood you correct regarding consuming repositories: do you mean parsing the additional_dependencies-field? i can add this for all languages that are listed in libraries.io (node, python via pypi, go). Here's an example of what i mean:
ah no not additional_dependencies (though maybe that's worth doing too? idk?) -- I was thinking more like if you looked at https://github.com/asottile/t for example it would have dependencies on github.com/pre-commit/pre-commit-hooks, ... based on its consuming .pre-commit-config.yaml
I don't know how that gets represented in libraries.io though 🤔
oh ok, if i understood the documentation correct, this is done by bibliothecary (if you log in to libraries.io, this will check your repositories for dependencies). i added pre-commit to bibliothecary here.
i just tried adding the parsing of additional_dependencies, but encountered two problems:
most languages have multiple package managers in libraries.io, but we are required to specify which one the dependency uses. it would be possible to search for the corresponding package manager in libraries.io, but this would be quite expensive and might cause errors if the same name is specified in multiple package managers
the dependencies wouldn't be consistent, as not all additional_dependencies can be found on libraries.io, which kind of ruins the purpose imo
let me know what you think about adding this or if you have any suggestions
Activity
paulhfischer commentedon Dec 19, 2020
have a look at this commit, i used the
all-repos.jsonfile and parsed all attributes of the hooks (fallback are the default values listed on pre-commit.com).let me know if this is what you've imagined and if you have comments on it.
asottile commentedon Dec 22, 2020
looks like a good start! I imagine the version information would be useful as well -- is there a second mechanism for parsing
.pre-commit-config.yamlfrom consuming repositories? to be honest I can't remember why this was useful (I think it was so a third party could integrate with showing packaging mappings / use)paulhfischer commentedon Dec 22, 2020
the reason why i commented out the
self.versionmethod is because libraries.io then automatic gets the latest tag (either you define your one version or it uses git tags. this can also be seen in the compatibility matrix). this is similar to the emacs-packages.not sure if i understood you correct regarding consuming repositories: do you mean parsing the
additional_dependencies-field? i can add this for all languages that are listed in libraries.io (node, python via pypi, go). Here's an example of what i mean:{ "https://github.com/pre-commit/mirrors-coffeelint": [ { "id": "coffeelint", "name": "coffeelint", "entry": "coffeelint", "language": "node", "files": "\\.(js|coffee)$", "args": [], "additional_dependencies": ["coffeelint@2.1.0"], "minimum_pre_commit_version": "0.7.0" } ] }would return the following in
self.dependencies:asottile commentedon Dec 22, 2020
ah no not additional_dependencies (though maybe that's worth doing too? idk?) -- I was thinking more like if you looked at https://github.com/asottile/t for example it would have dependencies on github.com/pre-commit/pre-commit-hooks, ... based on its consuming
.pre-commit-config.yamlI don't know how that gets represented in libraries.io though 🤔
paulhfischer commentedon Dec 22, 2020
oh ok, if i understood the documentation correct, this is done by bibliothecary (if you log in to libraries.io, this will check your repositories for dependencies). i added pre-commit to bibliothecary here.
asottile commentedon Dec 22, 2020
neat, that looks good -- though you'll want to skip
repo: metaandrepo: localpaulhfischer commentedon Dec 22, 2020
yeah thanks, i'm going to to change this.
paulhfischer commentedon Dec 22, 2020
i just tried adding the parsing of
additional_dependencies, but encountered two problems:additional_dependenciescan be found on libraries.io, which kind of ruins the purpose imolet me know what you think about adding this or if you have any suggestions
asottile commentedon Dec 22, 2020
feel free to skip additional_dependencies 👍