[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

How to go about `clj`?



Dear all,

On Saturday, I classified the last identified dependency for `clj`
(`tools.deps.alpha`, debianized as `tools-deps-alpha-clojure`) as
"good enough" so Louis-Philippe (pollo) could review it. This means it
is Lintian clean[*], runs (most of) its tests as build tests, and
all[**] of them as autopkgtests. (Why the difference? Because, whereas
build tests have no Internet access, autopkgtests do.)

[*]: the only bug lintian reports is that is it currently "unreleased".
[**]: except the ones for S3 support, code that was patched out due to
its dependency on specific libraries we don't intend to package in
Debian, at least for now [1].

[1]: https://lists.debian.org/debian-clojure/2021/06/msg00013.html

As you have seen in the previous mail to this list, Louis-Philippe has
already reviewed the package. I have to say I really like him being so
thorough in his reviews. Louis-Philippe really sets high standards -
delighted with (trying to :-) going along with that!

So (oh, surprise!), there are still a few things I have to adjust
before he gives his blessing so the package can start its journey
towards "experimental". Considering all the ticked checkboxes I
mentioned in my first paragraph, it doesn't look like I have to fix
much.


Which brings us to the next step: `clj`.

As #891141[2] states, the upstream `clj` repo [3] is, in fact, the
repo of the upstream Clojure installer. In fact, if one looks at the
upstream Clojure repo [4], there is no `clojure` wrapper to be found
at all!

[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891141
[3] https://github.com/clojure/brew-install
[4] https://github.com/clojure/clojure


Which now brings us back to the `clojure` Debian package.

After a discussion with Elana (ehashman) on #debian-clojure, I
realized that what I thought was provided by upstream was, in fact,
provided by... well, Debian.

So, it seems we have the following situation:

Timeframe | Upstream repo | Debian source | Debian binaries
------------ | ------------- | ----------- | -----------
Until 2017 | clojure/clojure (library), [nor installer or wraper (?)]
| clojure | libclojure-java (library), clojure (`clojure` wrapper)
Since 2017 | clojure/clojure (library), clojure/brew-install
(`clojure` and `clj` wrappers) | clojure | libclojure-java (library),
clojure ("clojure" wrapper), [no `clj` wrapper]


As we can see, it seems there used to be a functionality mismatch
between what was provided upstream and what was provided by Debian.
Moreover, am I wrong, or it seems that Debian introduced the `clojure`
wrapper even before upstream did?

In any case, if we look at the upstream `clj` code [3], we realize it
simply bundles its own `clojure` wrapper and `rlwrap`. So, there's no
actual `clj`...

[3] https://github.com/clojure/brew-install


So... how should we integrate `clj`'s functionalily into Debian?

- Should we simply make sure Debian's `clojure` is compatible with the
upstream `clojure` wrapper, and replace its rlwrap-driven
functionalily with `clj`?
- Should we define a migration path from Debian's `clojure` wrapper to
upstream's, and add their `clj`?
- Or am I completely missing something here, and there are other
possible options?

I would love to hear your feedback on this!
-Elana: as the current maintainer of `clojure`. What are your thoughts
about this?
-What does the rest of the Debian Clojure Team think about this?
-Finally... What do Alex and other subscribers to this list think of this?

Looking forward to your replies,
Leandro


Reply to: