Fork me on GitHub
#boot
<
2017-05-12
>
ska08:05:50

Hi Booters! Living in the commercial software development and using boot there, I occasionally have to provide information on my dependencies and the licenses used. Is there already a boot task out there that could help with this and that I just did not find, yet? If not, how would I best go about this?

ska08:05:10

I am aware of boot-deps by @martinklepsch and looked at its code. AFAICS, the ancient-clj lib used under the hoods does only deliver version and artefact ID information, but not the license.

dominicm08:05:54

There's a lein plugin that does this somehow

dominicm08:05:11

It seems to inspect the jar & pull out the pom.xml, then check the license field there 🙂

dominicm08:05:19

I would love to have this as a boot plugin!

martinklepsch08:05:25

Alternatively you could use the APIs of http://libraries.io or versioneye

martinklepsch08:05:34

but I guess looking at the jars is easiest

martinklepsch08:05:10

@ska also be aware that nowadays boot show --updates does pretty much the same as boot-deps

ska08:05:15

boot show --updates feels like downloading the rest of the internet I did not yet cache locally.

ska08:05:09

Hm, the result is hard to understand. E.g. it says [environ "1.0.2"] but I already have 1.1.0 in my deps. :thinking_face:

ska08:05:16

@dominicm Yes, I just stumbled over lein-licenses, too. Does not rely on 3rd party libs for the heavy lifting so probably not easy to port to boot. Wasn't there an incantation to create a profile.clj from boot?

ska09:05:55

Thanks, @dominicm. I could get lein-licenses to work. I did not like reading its implementation, though. For a correct attribution, one would also have to try to extract the copyright information. Just imagine being able to run ./boot deps-about and get an about-file with all the information in it.... sigh 😉

martinklepsch13:05:55

@ska is all the information you need generally provided in a library’s pom.xml?

ska13:05:41

@martinklepsch POM allows it, but people do not really maintain it. A nice POM is (obviously) found in the Maven attribution plug-in: https://github.com/jinnovations/attribution-maven-plugin/blob/master/pom.xml

martinklepsch13:05:18

Yeah thought it might not be sufficient

dominicm15:05:25

curious to know if that could pair with the defedntask @pesterhazy proposed for a fully static boot file

richiardiandrea15:05:18

that was .....someone else I know @dominicm 👼 but I am sure @pesterhazy has had the same 😄 😄

borkdude16:05:31

Why don’t we write all clojure programs in edn

richiardiandrea16:05:42

@borkdude aren't we already 😄

borkdude16:05:00

Kind of…

pesterhazy18:05:10

Roughly, .clj = .edn + regex syntax + anonymous functions

dominicm19:05:04

I think over time, as a domain becomes clearer and patterns emerge, you can move towards a more declarative/config based system that's an abstraction above your recurring primitives.

toomstoxx22:05:17

Hi hoping someone might be able to help me out with this. I've got a boot cljs project (lets call it foo) that creates a generic webapp that can take some config files. I'd like to make another project, say bar that loads foo from our private maven repo and mixes in the config files. I'm deploying via lein --- using lein deploy private. The app itself comes in and runs fine in my bar project, but I'm having trouble getting the less task (from boot-less) to find the main.main.less resource from foo. I'm not exactly sure how to align the :resource-paths in foo's project.clj file and the :resource-paths in bar's build.boot task. serve seems to be finding the index.html fine, but less is not finding .less files.

toomstoxx22:05:38

Sorry for too much code formatting

richiardiandrea22:05:47

@toomstoxx difficult to say like this, but a (show :fileset true) in the right place in the pipeline has saved my life many times.

flyboarder23:05:35

@toomstoxx you are essentially looking to merge two filesets between tasks, when you package foo into a jar and load it in bar it is no longer a part of the fileset, it is however on the classpath, usually I use a custom task to fetch the classpath things, spit them to a temp folder and add that to the fileset.

flyboarder23:05:21

bar would then have the files you are looking for, I believe there may be a community task already available to do this