[Pkg-puppet-devel] packaging puppet and clojure ITPs

Elana Hashman ehashman at debian.org
Mon Jul 6 06:41:40 BST 2020


On Sun, Jul 05, 2020 at 07:13:45PM +0200, Thomas Goirand wrote:
> 
> Hopefully that's what you are talking about:
> https://wiki.debian.org/Clojure/PackagingTutorial
> 
> I've read this. I very much like to use upstream's Git, I also think
> it's a way more convenient than working with tarballs. However, I do
> have a few things to tell about what I read, I hope you don't mind,
> hoping this is constructive.
> 
> I don't understand why you are doing *both* git tag based packaging,
> *and* use pristine-tar.

Because when when I began packaging in ~2017, I was told (by upload
sponsors, etc.) that I should always prefer to check in upstream's
original byte-for-byte identical tarballs rather than generate my own
from the git tags, even if I was just pulling things down from GitHub.

I don't know how common that is now.

> Now, to stop the blabla, and move a little bit forward, I tried to go
> ahead and package libtrapperkeeper-comidi-metrics-clojure as a first try
> (from upstream
> https://github.com/puppetlabs/trapperkeeper-comidi-metrics). I went up
> to pushing the upstream and pristine-tar branch, but then the wiki
> suggests using clj-helper. Though this utility isn't in Debian. Did you
> consider uploading it? What's suggested in the repository (ie: lein
> uberjar) downloads from random locations, which doesn't feel safe. I
> very much would prefer something packaged in /usr/bin/clj-helper, ready
> to be used. :)

It is an extremely janky tool that IMO is not worthy of being uploaded
to Debian, as the templates only go so far and are not very
battle-tested ^_^;

> However, it was nice to use, and I appreciate the interactive thingy. Is
> there anything I should review once that utility does everything for me?
> In other words: what does this utility does *NOT* do for me?
> 
> First mistake I did was to add "lib" and postfix with "clojure" in my
> package name which lead to liblibFOO-clojure-clojure, so I had to rename
> a few things to make it work. Though ignoring my stupidity for not
> reading well enough, I believe it went well.

Yes, it is not very smart. I just use it as a basic starting point for
when I have to package a lot of libraries. There was a Python tool
someone wrote years ago that this little script replaced.

> Anyways, since it looks like I can't create new repositories in the
> clojure team just yet, I've pushed my work here:
> https://salsa.debian.org/puppet-team/libtrapperkeeper-comidi-metrics-clojure/

Oops, you should have access now.

> Would you be so kind as to review it and let me know if I did any
> mistake? I haven't filled any ITP for it yet, but could...
> 
> Your thoughts?

At a very brief glance, this looks ok. I would add an autopkgtest that
invokes the code in some way to ensure it can build properly with the
given classpath, since Clojure libraries in Debian typically are not
actually built into binaries for distribution (long story, has to do
with bytecode compatibility). 

Here's an example of how this might look, including a whitebox test of
the library functionality where the value of a constant is evaluated and
tested:
https://salsa.debian.org/clojure-team/pomegranate-clojure/-/blob/master/debian/tests/build-aether

Honestly the autopkgtest templating would be easy enough to build into
clj-helper but I haven't bothered.

> Thanks a lot for your help, this is very much appreciated.  BTW, have
> you ever used puppet yourself? :)

I have not. Back when I was doing more config management I used Ansible
since I never had a homogenous fleet.

- e
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-puppet-devel/attachments/20200705/01aca2fe/attachment.sig>


More information about the Pkg-puppet-devel mailing list