On Sat, Jun 22, 2024 at 9:20 AM Marc Schink <d...@zapb.de> wrote:

> A more general question: what is the reason for integrating jimtcl as a
> submodule in the first place? According to repology it seems to be
> widespread. We deprecated the libjaylink submodule, what is the reason
> to keep jimtcl?
>

I'm not aware of the reason for this; I was not contributing to OpenOCD at
that time.
I can imagine it was 'comfortable' to build OpenOCD without relying on
installed dependencies.
Git log show that:
- 2009-10-28 added tools/git2cl
- 2010-10-29 added jimtcl
- 2015-11-26 added src/jtag/drivers/libjaylink (your commit dated
2014-10-20)

Personally, I use a lot 'git worktree', which unfortunately is not well
integrated with 'git submodule'.
Each worktree has to keep an independent out-of-sync clone of each
submodule, which is completely crap! (it's also a waste of disk space).

I'm aware of few ACI that don't use OpenOCD submodules in order to prevent
the build server from accessing the network.

Then:
- libjaylink is already present as an independent package in several Linux
distributions. I have no concern about keeping it as an external dependency.

- jimtcl package instead is not so popular. In Arch Linux it is in AUR
only. But this would change if we force it as an external dependency.

- git2cl is only used for OpenOCD releases. We could keep it as a submodule
and change the default of bootstrap to no-submodule.
  git2cl is apparently not maintained anymore, so it could even be copied
in our code, but since it's GPL2.0-only I prefer keeping it outside!

I would suggest to progressively drop the submodules to see what the
feedback is.
- libjaylink submodule would be deprecated in v0.13.0. Would it be dropped
in v0.14.0?
- jimtcl submodule could be deprecated in v0.14.0 and dropped later on.
- git2cl submodule could remain, but with bootstrap defaulting to
no-submodule already in v0.14.0.
Or, we could be more aggressive by also deprecating jimtcl submodule in
v0.13.0!

Regards
Antonio


Reply via email to