-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add a pom generation option to the release task #11
Comments
Hey Jérémie, As I told you before I was playing with the idea of using metav to drive build tasks. I have made some experiments and one way to do it would be using badigeon. I created a branch in which I started adding a pom generation & update operation. I added the function We could drive the creation of jars, wars,... with the naming of artefact based on metav's naming scheme this way. Cheers, Jeremy. |
Hey great! didn't expect a code contribution as soon :) |
Hi, I agree it's a trade-off pulling badigeon in as a dependency. I am not impartial however, I like the project and a lot of the code we might want dealing with tools deps is already there. Pom.xml generation is there, as are jar/uberjar/war generation. It also has the necessary code for maven install & deploy. It handles classpath generation with deps aliases which could be useful for native images compilations. It depends on what we want the scope of metav to be. If adding a pom file is the end of it, pulling badigeon in is overkill and opens the disadvantages of having another dependency. If we'd like the release operation to propose maven install&deploy on top of git pushes, not including badigeon would mean redoing work that's already done. Another way of doing it might also be to have metav's context api being closed in the way that an hypothetical metav-core project would concern itself only with providing project naming, versioning and version bumping based git state. Spitting metadata, generating a pom, tagging a commit with a new version, pushing that commit or generating a jar and deploying it on a maven repo could be done in different projects all using that core. That idea however also has its own set of trade-offs attached to it... I hope you don't mind me throwing out ideas, It comes back to what scope is metav to have. I clearly wanna base a build process on it, but it may be a very bad idea to have all that functionnality in metav itself. Cheers, Jeremy |
Hi Jeremy, I would say that the purpose of Metav is to handle git and version related metadata.
I like the idea of a build tool using pure Clojure code and So I prefer Metav to stay a narrow tool focused on version management and to shift all other build related features to another project (Badigeon or something else). |
For open source project it is useful to have a
pom.xml
file along thedeps.edn
to facilitate the upload to maven repository like clojars. Generating the pom with the proper version and commit it during the release process would be a useful option.The task can rely on the code from clojure.tools.deps.alpha.gen.pom namespace in tools.deps.alpha.
The text was updated successfully, but these errors were encountered: