-
Notifications
You must be signed in to change notification settings - Fork 22
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
Proposal: Integrate Opam CI Lint Functionality into opam-publish
#165
Comments
opam-publish
opam-publish
We've wrapped up the refactor of the API to make it easy to extract the lint functionality as a separate library. I have an initial implementation of the linting here. |
Thanks for the proposal. That was something that we have in mind since a long time. We discussed it in last dev meeting, there are some things to keep in mind while implementing this feature.
Also, it is necessary to keep synchronisation between linting used by Please open the WIP PR, we'll be able to discuss that in it, and the code itself. |
Thank you for taking the time to discuss this proposal in the dev meeting, @rjbou ! Both the suggestions for consideration are great and I agree that it would be nice to keep them in mind while implementing this feature. The current WIP branch I have allows the linting to be done only on opam-repository, but doesn't take into account the version being used in CI. (opam-repository CI currently uses an unpublished version of opam-ci-check for the linting). I'll open a draft PR and close the proposal issue to move the discussion closer to the code. Thanks again for your time! |
Hello! Just circling back to try to move this forward, as it would be a real benefit to us opam repo maintainers to get #166 merged. I have one remark re:
IMO, this is ideal but not necessary, and I think its probably not worth spending a lot of time at this point to try to achieve such a tight coupling on versions. It would be a great help to our maintenance efforts if we could ensure that packages published with In other words, I think this is a case where we get like 95% benefit without waiting for a perfect solution to version synchronization, and I think it will only make things better for our maintenance situation (and to the packaging experience). |
We will naturally release it. We were trying to get an OK on the design proposed in the PR before cutting the release, to avoid unnecessary rework. I think we didn't make that clear. If the maintainers here are happy with the design, we are ready to cut a release. |
The API design is minimal so there isn't much to say, i'm fine with it. Once fixed, could you show us which commands we have to run to test this PR? |
Thanks for taking the time to look at the API!
Yes, we do not intend to have all these dependencies for the linting lib that we propose to integrate with We'll clean this up and get back to you. |
Yep, thanks for confirming that the API looks OK! We'll prep a release with the reduced dependency cone and update shortly :) 🙏 |
Proposal
Recently, the
opam-repository
maintainers have been discussing incorporating the lint checks run as part of theopam-repository
CI into the package publication tools. Running these lints locally before submitting pull requests to theopam-repository
could smoothen the workflow of package authors, while also reducing the workload of the repository maintainers as well as the infrastructure.Would the
opam-publish
maintainers be open to integrating this functionality and exploring how best to implement it?Current Work
As a part of our work to improve package author-ing workflows, we have extracted some of the functionality/logic from the
opam-repository
CI code into a CLI sub-project,opam-ci-check
, that can be used locally to run some of the CI steps, including linting.We are currently working on extracting the lint functionality from
opam-ci-check
as a library with a minimal dependency cone to help ease the integration into package publication tools likeopam-publish
/dune-release
.Next Steps
If the maintainers are open to this idea, we would be happy to share a draft PR with an initial implementation for further discussion. We are happy to hear any advice, suggestions or concerns regarding this. Also, let us know if you'd like us to proceed differently here.
/cc @shonfeder
The text was updated successfully, but these errors were encountered: