depstar

Discussion around https://github.com/seancorfield/depstar
mccraigmccraig 2021-03-09T17:00:20.026200Z

is there something like lein release on top of depstar ?

2021-03-09T17:09:03.027700Z

depstar can build your jar and pom, deps-deploy can be used to deploy/install it. I am not currently aware of anything that can auto-bump/add/commit versions numbers, but I am new to the deps world, and there is a lot I don't know yet.

seancorfield 2021-03-09T17:15:01.029100Z

@mccraigmccraig You can update the <version> (and <tag>) fields in pom.xml using the :version exec arg, but there's currently no automated "next release" type calculation. Feel free to open a GH issue (but also bear in mind my thoughts on SemVer 🙂 )

mccraigmccraig 2021-03-09T17:18:58.031200Z

haha, i'm guessing you are not overly fond of semver @seancorfield... (not that i have much choice about it - apple uses a version of semver for ios, so i'm kinda stuck with it)

mccraigmccraig 2021-03-09T17:20:06.032600Z

but i recently used lein release on a library project, and it took a bunch of tedium away very effectively, so i'm a fan now. whatever lein release does with version numbers, it's quite flexible with versions - it was fine dealing with versions like 5.0.0-alpha4

dharrigan 2021-03-09T17:20:09.032700Z

I use these two scripts to deploy sentry-clj

dharrigan 2021-03-09T17:20:18.032900Z

<https://github.com/getsentry/sentry-clj/blob/master/bin/build>

dharrigan 2021-03-09T17:20:28.033100Z

<https://github.com/getsentry/sentry-clj/blob/master/bin/deploy>

dharrigan 2021-03-09T17:21:11.033500Z

Feel free to borrow/ignore 🙂

mccraigmccraig 2021-03-09T17:21:36.033600Z

oh, dyu work for sentry @dharrigan ? if so, i've been very much enjoying your product recently 🙂

dharrigan 2021-03-09T17:22:03.033800Z

Nope. I've sorta ended up taking over maintainership for the library

dharrigan 2021-03-09T17:22:20.034Z

however, anyone can contribute, as it's a community library and semi-official

dharrigan 2021-03-09T17:22:23.034200Z

not really official

dharrigan 2021-03-09T17:22:38.034400Z

if you know what I mean 😄

mccraigmccraig 2021-03-09T17:22:59.034700Z

not official, but official 😃

seancorfield 2021-03-09T17:24:12.035700Z

@mccraigmccraig I don't know what lein release does but I'd be happy to look at implementing some version update rules in depstar if you can explain what you'd like in a ticket.

seancorfield 2021-03-09T17:24:47.036400Z

I would like to be able to automate the major.minor.commits calculation, for example, since I use that for all my projects.

seancorfield 2021-03-09T17:25:31.037300Z

Although, frankly, the vast majority of the "work" associated with cutting a new release tends to be documentation updates, change log writing, and so on. Updating the pom.xml file is the least of my worries.

dharrigan 2021-03-09T17:26:43.037700Z

I use that too. Makes sense - major, minor, commits 🙂

mccraigmccraig 2021-03-09T17:41:45.039800Z

here's the list of lein release tasks we use on mpenet/alia @seancorfield - https://github.com/mpenet/alia/blob/master/project.clj#L87 - it does version-bumps, vcs commits, tags, pushes, and clojars deploys all the submodules as well as the top-level module... i've had my eye on a changelog plugin which automates the ##unreleased -> ##version section update too 🙂

mccraigmccraig 2021-03-09T17:42:18.040600Z

obvs this is a lot of stuff, but none of it is actually done by lein release - that just sequences a bunch of regular lein tasks

mccraigmccraig 2021-03-09T17:42:47.041300Z

but i'm a tools-deps n00b, so i'm not really sure what this sort of thing should look like in this new world

seancorfield 2021-03-09T17:45:43.043500Z

Ah, so it's more at the task-pipeline level than part of the "JAR building" process. A lot of that doesn't belong in depstar (which probably already does too much). I would hope that tools.build might address some of this since I'm sure that Cognitect/Nubank have similar "task pipeline" needs and to their idea of a "build" tool will probably make that sort of thing easier.

seancorfield 2021-03-09T17:46:01.044Z

So "please wait" is probably the order of the day right now 🙂

mccraigmccraig 2021-03-09T17:50:08.046900Z

lol, well that answers my background question then (i want to automate most of our release artefact deployment procedures and add them to the end of CI, 'cos it's a lot of manual work for a project with multiple backend containers, web, ios and android front-end apps - so i was wondering whether i should move our big monorepo from lein over to tools-deps at the same time... "please wait" 😃)

mccraigmccraig 2021-03-09T17:52:26.047400Z

is tools.build soon to be a thing @seancorfield ? i've not heard of it before

seancorfield 2021-03-09T17:55:17.048100Z

Alex Miller has mentioned it on his Inside Clojure blog and it's been brought up in various channels here in Slack over the last year.

seancorfield 2021-03-09T17:55:47.048700Z

There are no details available, other than the name, and some hints from Alex that it addresses "builds".

seancorfield 2021-03-09T17:58:32.050500Z

Back in mid-November, Alex responded to a question about why -X:deps mvn-pom doesn't expose the ability to set the version in pom.xml by saying "Slack: alexmiller: no real reason - the internals have been refactored to make this feasible but really I expect this to probably go away in favor of doing this via tools.build (which uses most of this same code)"

seancorfield 2021-03-09T17:58:48.050900Z

(I'm just searching the Zulip chat history for mentions of tools.build)

mccraigmccraig 2021-03-09T17:59:56.051500Z

mysterious! well i hope it turns out as nifty as gulpjs/gulp , which is my favourite of the build tools i've used recently

mccraigmccraig 2021-03-09T18:00:12.051900Z

thank you for the pointers @seancorfield !

seancorfield 2021-03-09T18:02:29.052500Z

Back in mid-October, in response to questions about compiling Java code in the CLI/`deps.edn` world, Alex said "alexmiller: support for this is coming in the upcoming tools.build"