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

Re: How to go about `clj`?



I assume the existing `clojure` is just a simple wrapper that calls clojure.main. The clj/clojure from the brew-install clojure tools do much more than that and are extensively documented as the official Clojure CLI tools. So, I think it's very confusing to users to get the former when they expect the latter (as almost everything they'd want to do won't work). We do see people pop up in various Clojure forums with this confusion sometimes.

At the very least, it would be helpful to use a different name for the thing that's not the official CLI tools.

On Mon, Aug 16, 2021 at 2:40 AM Leandro Doctors <ldoctors@gmail.com> wrote:
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: