Git development
 help / color / mirror / Atom feed
* [PATCH] ci: fix missing Ruby dependency in "documentation" job
@ 2026-09-01  8:16 Patrick Steinhardt
  2026-09-01  8:24 ` Toon Claes
  2026-09-01  8:47 ` Jeff King
  0 siblings, 2 replies; 21+ messages in thread
From: Patrick Steinhardt @ 2026-09-01  8:16 UTC (permalink / raw)
  To: git

Our "documentation" job has recently stopped working with the following
error:

  + sudo gem install --version 1.5.8 asciidoctor
  + gem install --version 1.5.8 asciidoctor
  ./ci/install-dependencies.sh: 23: gem: not found

The root cause of this is that we never explicitly install Ruby, and
consequently gem(1) isn't explicitly pulled inus, either. This used to
work alright because we transitively pulled in Ruby via asciidoc. But
due to an update it seems that we stopped pulling in the transitive
dependency, and consequently we don't have gem(1) available anymore.

Fix this by explicitly installing Ruby.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
Hi,

I spotted the failure yesterday. You can see that this fixes the
pipeline at [1]. Thanks!

Patrick

[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/660
---
 ci/install-dependencies.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 10c3530d1a..502e518077 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -164,7 +164,7 @@ sparse)
 		libexpat-dev gettext zlib1g-dev sparse
 	;;
 Documentation)
-	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make
+	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
 
 	test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
 	sudo gem install --version 1.5.8 asciidoctor

---
base-commit: 1630431f326e15fcde608827b5ff38422528eb59
change-id: 20260901-b4-pks-ci-fix-documentation-job-e971e10fbc94


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH] ci: fix missing Ruby dependency in "documentation" job
  2026-09-01  8:16 [PATCH] ci: fix missing Ruby dependency in "documentation" job Patrick Steinhardt
@ 2026-09-01  8:24 ` Toon Claes
  2026-09-01  8:36   ` Patrick Steinhardt
  2026-09-01  8:47 ` Jeff King
  1 sibling, 1 reply; 21+ messages in thread
From: Toon Claes @ 2026-09-01  8:24 UTC (permalink / raw)
  To: Patrick Steinhardt, git

Patrick Steinhardt <ps@pks.im> writes:

> Our "documentation" job has recently stopped working with the following
> error:
>
>   + sudo gem install --version 1.5.8 asciidoctor
>   + gem install --version 1.5.8 asciidoctor
>   ./ci/install-dependencies.sh: 23: gem: not found
>
> The root cause of this is that we never explicitly install Ruby, and
> consequently gem(1) isn't explicitly pulled inus, either. This used to

"inus"?

> work alright because we transitively pulled in Ruby via asciidoc. But
> due to an update it seems that we stopped pulling in the transitive
> dependency, and consequently we don't have gem(1) available anymore.
>
> Fix this by explicitly installing Ruby.

Thanks for this fix, I was just looking at it as well, although I wasn't
sure it started failing recently.


> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> Hi,
>
> I spotted the failure yesterday. You can see that this fixes the
> pipeline at [1]. Thanks!
>
> Patrick
>
> [1]: https://gitlab.com/gitlab-org/git/-/merge_requests/660
> ---
>  ci/install-dependencies.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 10c3530d1a..502e518077 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -164,7 +164,7 @@ sparse)
>  		libexpat-dev gettext zlib1g-dev sparse
>  	;;
>  Documentation)
> -	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make
> +	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby

Good!

>  
>  	test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
>  	sudo gem install --version 1.5.8 asciidoctor
>
> ---
> base-commit: 1630431f326e15fcde608827b5ff38422528eb59
> change-id: 20260901-b4-pks-ci-fix-documentation-job-e971e10fbc94

Thanks!

-- 
Laters,
Toon

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ci: fix missing Ruby dependency in "documentation" job
  2026-09-01  8:24 ` Toon Claes
@ 2026-09-01  8:36   ` Patrick Steinhardt
  0 siblings, 0 replies; 21+ messages in thread
From: Patrick Steinhardt @ 2026-09-01  8:36 UTC (permalink / raw)
  To: Toon Claes; +Cc: git

On Tue, Sep 01, 2026 at 10:24:32AM +0200, Toon Claes wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > Our "documentation" job has recently stopped working with the following
> > error:
> >
> >   + sudo gem install --version 1.5.8 asciidoctor
> >   + gem install --version 1.5.8 asciidoctor
> >   ./ci/install-dependencies.sh: 23: gem: not found
> >
> > The root cause of this is that we never explicitly install Ruby, and
> > consequently gem(1) isn't explicitly pulled inus, either. This used to
> 
> "inus"?

Huh. I guess this was supposed to just say "in"? Fixed locally, but I'll
refrain from sending out a new version just to fix this. Thanks!

Patrick

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ci: fix missing Ruby dependency in "documentation" job
  2026-09-01  8:16 [PATCH] ci: fix missing Ruby dependency in "documentation" job Patrick Steinhardt
  2026-09-01  8:24 ` Toon Claes
@ 2026-09-01  8:47 ` Jeff King
  2026-09-01  8:51   ` Jeff King
                     ` (2 more replies)
  1 sibling, 3 replies; 21+ messages in thread
From: Jeff King @ 2026-09-01  8:47 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: git

On Tue, Sep 01, 2026 at 10:16:11AM +0200, Patrick Steinhardt wrote:

> Our "documentation" job has recently stopped working with the following
> error:
> 
>   + sudo gem install --version 1.5.8 asciidoctor
>   + gem install --version 1.5.8 asciidoctor
>   ./ci/install-dependencies.sh: 23: gem: not found

Not directly related to your patch but... asciidoctor 1.5.8, really?
That version is 8 years old. Looks like we set that version in
615a6c37e1 (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29)
due to some issues with the then-new-ish v2.0.0.

But these days I'd guess everybody is using v2.0.x (which seems to work
fine) for local builds. We probably ought to do the same in CI. If we
have to catch issues in one, I'd rather it be the one people are likely
to actually use.

It's possible that we could benefit from building with both in order to
support the older version. But given its age I doubt it's worth it. We
can still take bug fixes if somebody finds a problem, but we don't
necessarily need to spend cycles building every commit with 1.5.8.

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ci: fix missing Ruby dependency in "documentation" job
  2026-09-01  8:47 ` Jeff King
@ 2026-09-01  8:51   ` Jeff King
  2026-09-01 10:41   ` Patrick Steinhardt
  2026-09-01 17:58   ` [PATCH] ci: fix missing Ruby dependency in "documentation" job Junio C Hamano
  2 siblings, 0 replies; 21+ messages in thread
From: Jeff King @ 2026-09-01  8:51 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: git

On Tue, Sep 01, 2026 at 04:47:38AM -0400, Jeff King wrote:

> Not directly related to your patch but... asciidoctor 1.5.8, really?
> That version is 8 years old. Looks like we set that version in
> 615a6c37e1 (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29)
> due to some issues with the then-new-ish v2.0.0.
> 
> But these days I'd guess everybody is using v2.0.x (which seems to work
> fine) for local builds. We probably ought to do the same in CI. If we
> have to catch issues in one, I'd rather it be the one people are likely
> to actually use.

Ah, indeed. It was fixed in f6461b82b9 (Documentation: fix build with
Asciidoctor 2, 2019-09-15). The thread here:

  https://lore.kernel.org/git/20190915212621.GV11334@genre.crustytoothpaste.net

suggests that it could be removed, but was just waiting on a few more
fixes for the v2 series. I guess nobody ever circled back around to it.

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ci: fix missing Ruby dependency in "documentation" job
  2026-09-01  8:47 ` Jeff King
  2026-09-01  8:51   ` Jeff King
@ 2026-09-01 10:41   ` Patrick Steinhardt
  2026-09-02  7:11     ` [PATCH 0/2] bump ci asciidoctor version Jeff King
  2026-09-01 17:58   ` [PATCH] ci: fix missing Ruby dependency in "documentation" job Junio C Hamano
  2 siblings, 1 reply; 21+ messages in thread
From: Patrick Steinhardt @ 2026-09-01 10:41 UTC (permalink / raw)
  To: Jeff King; +Cc: git

On Tue, Sep 01, 2026 at 04:47:37AM -0400, Jeff King wrote:
> On Tue, Sep 01, 2026 at 10:16:11AM +0200, Patrick Steinhardt wrote:
> 
> > Our "documentation" job has recently stopped working with the following
> > error:
> > 
> >   + sudo gem install --version 1.5.8 asciidoctor
> >   + gem install --version 1.5.8 asciidoctor
> >   ./ci/install-dependencies.sh: 23: gem: not found
> 
> Not directly related to your patch but... asciidoctor 1.5.8, really?
> That version is 8 years old. Looks like we set that version in
> 615a6c37e1 (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29)
> due to some issues with the then-new-ish v2.0.0.
> 
> But these days I'd guess everybody is using v2.0.x (which seems to work
> fine) for local builds. We probably ought to do the same in CI. If we
> have to catch issues in one, I'd rather it be the one people are likely
> to actually use.

> It's possible that we could benefit from building with both in order to
> support the older version. But given its age I doubt it's worth it. We
> can still take bug fixes if somebody finds a problem, but we don't
> necessarily need to spend cycles building every commit with 1.5.8.

I was wondering about whether I should bump its version while at it. In
fact, we could just install it from the Ubuntu sources nowadays, too. I
ultimately decided to not do that though and just fix the failing CI
pipeline for now, but I agree that it's something we might want to
follow up on.

Patrick

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] ci: fix missing Ruby dependency in "documentation" job
  2026-09-01  8:47 ` Jeff King
  2026-09-01  8:51   ` Jeff King
  2026-09-01 10:41   ` Patrick Steinhardt
@ 2026-09-01 17:58   ` Junio C Hamano
  2 siblings, 0 replies; 21+ messages in thread
From: Junio C Hamano @ 2026-09-01 17:58 UTC (permalink / raw)
  To: Jeff King; +Cc: Patrick Steinhardt, git

Jeff King <peff@peff.net> writes:

> But these days I'd guess everybody is using v2.0.x (which seems to work
> fine) for local builds. We probably ought to do the same in CI. If we
> have to catch issues in one, I'd rather it be the one people are likely
> to actually use.
>
> It's possible that we could benefit from building with both in order to
> support the older version. But given its age I doubt it's worth it. We
> can still take bug fixes if somebody finds a problem, but we don't
> necessarily need to spend cycles building every commit with 1.5.8.

Yup, thanks for a dose of sanity.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 0/2] bump ci asciidoctor version
  2026-09-01 10:41   ` Patrick Steinhardt
@ 2026-09-02  7:11     ` Jeff King
  2026-09-02  7:14       ` [PATCH 1/2] ci: drop ALREADY_HAVE_ASCIIDOCTOR variable Jeff King
                         ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Jeff King @ 2026-09-02  7:11 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: Junio C Hamano, Jean-Noël Avila, git

On Tue, Sep 01, 2026 at 12:41:12PM +0200, Patrick Steinhardt wrote:

> > But these days I'd guess everybody is using v2.0.x (which seems to work
> > fine) for local builds. We probably ought to do the same in CI. If we
> > have to catch issues in one, I'd rather it be the one people are likely
> > to actually use.
> 
> > It's possible that we could benefit from building with both in order to
> > support the older version. But given its age I doubt it's worth it. We
> > can still take bug fixes if somebody finds a problem, but we don't
> > necessarily need to spend cycles building every commit with 1.5.8.
> 
> I was wondering about whether I should bump its version while at it. In
> fact, we could just install it from the Ubuntu sources nowadays, too. I
> ultimately decided to not do that though and just fix the failing CI
> pipeline for now, but I agree that it's something we might want to
> follow up on.

I think your fix kept to the minimum, which is good. I agree we should
just install it from the system package manager. I _thought_ that might
make your fix here obsolete, but we also install the concurrent-ruby
gem. That comes from 974cdca345 (doc: introduce a synopsis typesetting,
2024-09-24) which also introduced some custom ruby code in asciidoctor
extensions. But it's not clear to me why it's necessary (and I build the
docs happily on my local system without it installed). +cc Jean-Noël for
any wisdom.

I guess installing asciidoctor from Ubuntu would also bring in ruby as a
dependency. So I suppose it does make your patch obsolete, but it also
doesn't hurt to be explicit that we expect "gem install" to work.

Anyway, here is a fix for the version which can be applied on top of
ps/ci-depends-on-ruby.

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 1/2] ci: drop ALREADY_HAVE_ASCIIDOCTOR variable
  2026-09-02  7:11     ` [PATCH 0/2] bump ci asciidoctor version Jeff King
@ 2026-09-02  7:14       ` Jeff King
  2026-09-02  7:16       ` [PATCH 2/2] ci: use system asciidoctor Jeff King
  2026-09-11 19:52       ` [PATCH (RESEND)] " Tuomas Ahola
  2 siblings, 0 replies; 21+ messages in thread
From: Jeff King @ 2026-09-02  7:14 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: Junio C Hamano, Jean-Noël Avila, git

Our install-dependencies script avoids installing asciidoctor if the
CI environment claims to have it already. But the only environment which
made use of this was Azure Pipelines, which went away in 6081d3898f (ci:
retire the Azure Pipelines definition, 2020-04-11). So this conditional
was effectively doing nothing. Let's clean it up.

Signed-off-by: Jeff King <peff@peff.net>
---
 ci/install-dependencies.sh | 1 -
 1 file changed, 1 deletion(-)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 502e518077..2f61fbb07c 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -166,7 +166,6 @@ sparse)
 Documentation)
 	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
 
-	test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
 	sudo gem install --version 1.5.8 asciidoctor
 	sudo gem install concurrent-ruby
 	;;
-- 
2.55.0.1074.gcd259ea853


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 2/2] ci: use system asciidoctor
  2026-09-02  7:11     ` [PATCH 0/2] bump ci asciidoctor version Jeff King
  2026-09-02  7:14       ` [PATCH 1/2] ci: drop ALREADY_HAVE_ASCIIDOCTOR variable Jeff King
@ 2026-09-02  7:16       ` Jeff King
  2026-09-02  7:55         ` Patrick Steinhardt
  2026-09-11 19:52       ` [PATCH (RESEND)] " Tuomas Ahola
  2 siblings, 1 reply; 21+ messages in thread
From: Jeff King @ 2026-09-02  7:16 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: Junio C Hamano, Jean-Noël Avila, git

Our CI Documentation builds have pinned asciidoctor since 615a6c37e1
(ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29). Back then a few
changes were needed to build with the then-new v2.0.0.

We've since made those changes, in f6461b82b9 (Documentation: fix build
with Asciidoctor 2, 2019-09-15) and other commits. So it is not only
safe to use newer versions of asciidoctor, but preferable: it's what
people are likely to use for actually building the documentation in
practice!

I don't think there's any need to pin to a specific version. We can just
use what ships in our Ubuntu image, which should give us an arbitrary
representative version (and if it changes and something breaks, we'd
want to know).

Signed-off-by: Jeff King <peff@peff.net>
---
Confirmed that this successfully ran CI via GitHub Actions. Looks like
the image there uses asciidoctor 2.0.20, which seems reasonable (it's
from 2023, but stable images tend to lag about that much).

 ci/install-dependencies.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 2f61fbb07c..d57dce5663 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -164,9 +164,9 @@ sparse)
 		libexpat-dev gettext zlib1g-dev sparse
 	;;
 Documentation)
-	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
+	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \
+		asciidoctor
 
-	sudo gem install --version 1.5.8 asciidoctor
 	sudo gem install concurrent-ruby
 	;;
 esac
-- 
2.55.0.1074.gcd259ea853

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/2] ci: use system asciidoctor
  2026-09-02  7:16       ` [PATCH 2/2] ci: use system asciidoctor Jeff King
@ 2026-09-02  7:55         ` Patrick Steinhardt
  2026-09-02  9:01           ` Jeff King
  0 siblings, 1 reply; 21+ messages in thread
From: Patrick Steinhardt @ 2026-09-02  7:55 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, Jean-Noël Avila, git

On Wed, Sep 02, 2026 at 03:16:13AM -0400, Jeff King wrote:
> Our CI Documentation builds have pinned asciidoctor since 615a6c37e1
> (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29). Back then a few
> changes were needed to build with the then-new v2.0.0.
> 
> We've since made those changes, in f6461b82b9 (Documentation: fix build
> with Asciidoctor 2, 2019-09-15) and other commits. So it is not only
> safe to use newer versions of asciidoctor, but preferable: it's what
> people are likely to use for actually building the documentation in
> practice!
> 
> I don't think there's any need to pin to a specific version. We can just
> use what ships in our Ubuntu image, which should give us an arbitrary
> representative version (and if it changes and something breaks, we'd
> want to know).

Makes sense.

One thing that we might have to worry about is compatibility with _old_
versions of asciidoctor. Now that we're using a more modern version of
it we might start relying on features that weren't available in older
versions, and we wouldn't notice anymore. So we kind of have the reverse
problem now.

The best-case scenario would be if asciidoctor had something like a
compatibility mode where you can ask it to complain about features that
aren't available in a specific cutoff version. But I have no idea
whether such a thing even exists.

Also, I'm not sure though whether this concern is something that we
really have to care about, I may be overthinking this quite a bit. So
please don't read this as a "Let's not use a modern version", but rather
as me writing down my unfiltered thoughts.

>  ci/install-dependencies.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 2f61fbb07c..d57dce5663 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -164,9 +164,9 @@ sparse)
>  		libexpat-dev gettext zlib1g-dev sparse
>  	;;
>  Documentation)
> -	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
> +	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \
> +		asciidoctor
>  
> -	sudo gem install --version 1.5.8 asciidoctor
>  	sudo gem install concurrent-ruby

Huh. I was wondering whether we can now stop installing Ruby altogether,
but we still install the "concurrent-ruby" Gem. But what even is that,
and what do we use it for?

It's originally been introduced via 974cdca345 (doc: introduce a
synopsis typesetting, 2024-09-24), but unfortunately the commit message
does not document why we have to install that Gem now. I couldn't find
any reasoning in the mailing list thread, either.

Patrick

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/2] ci: use system asciidoctor
  2026-09-02  7:55         ` Patrick Steinhardt
@ 2026-09-02  9:01           ` Jeff King
  2026-09-02  9:59             ` Patrick Steinhardt
  0 siblings, 1 reply; 21+ messages in thread
From: Jeff King @ 2026-09-02  9:01 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: Junio C Hamano, Jean-Noël Avila, git

On Wed, Sep 02, 2026 at 09:55:49AM +0200, Patrick Steinhardt wrote:

> One thing that we might have to worry about is compatibility with _old_
> versions of asciidoctor. Now that we're using a more modern version of
> it we might start relying on features that weren't available in older
> versions, and we wouldn't notice anymore. So we kind of have the reverse
> problem now.

Right, this is the "we could in theory check both" path I mentioned
earlier.

v1.5.8 is sufficiently old that I don't think we need to care anymore.
We can still take bug reports if somebody happens to use it and finds a
problem. Checking other older versions isn't likely to be that
interesting (the next version after 1.5.8 is 2.0.0, which had a higher
than usual chance of breaking things).

> >  Documentation)
> > -	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
> > +	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \
> > +		asciidoctor
> >  
> > -	sudo gem install --version 1.5.8 asciidoctor
> >  	sudo gem install concurrent-ruby
> 
> Huh. I was wondering whether we can now stop installing Ruby altogether,
> but we still install the "concurrent-ruby" Gem. But what even is that,
> and what do we use it for?
> 
> It's originally been introduced via 974cdca345 (doc: introduce a
> synopsis typesetting, 2024-09-24), but unfortunately the commit message
> does not document why we have to install that Gem now. I couldn't find
> any reasoning in the mailing list thread, either.

Er, yeah, see my cover letter. :)

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/2] ci: use system asciidoctor
  2026-09-02  9:01           ` Jeff King
@ 2026-09-02  9:59             ` Patrick Steinhardt
  2026-09-05 14:02               ` Jeff King
  0 siblings, 1 reply; 21+ messages in thread
From: Patrick Steinhardt @ 2026-09-02  9:59 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, Jean-Noël Avila, git

On Wed, Sep 02, 2026 at 05:01:46AM -0400, Jeff King wrote:
> On Wed, Sep 02, 2026 at 09:55:49AM +0200, Patrick Steinhardt wrote:
> 
> > One thing that we might have to worry about is compatibility with _old_
> > versions of asciidoctor. Now that we're using a more modern version of
> > it we might start relying on features that weren't available in older
> > versions, and we wouldn't notice anymore. So we kind of have the reverse
> > problem now.
> 
> Right, this is the "we could in theory check both" path I mentioned
> earlier.
> 
> v1.5.8 is sufficiently old that I don't think we need to care anymore.
> We can still take bug reports if somebody happens to use it and finds a
> problem. Checking other older versions isn't likely to be that
> interesting (the next version after 1.5.8 is 2.0.0, which had a higher
> than usual chance of breaking things).

Yeah, I agree. We can still reconsider if we ever hit a scenario where
it caused problems after all.

> > >  Documentation)
> > > -	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
> > > +	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \
> > > +		asciidoctor
> > >  
> > > -	sudo gem install --version 1.5.8 asciidoctor
> > >  	sudo gem install concurrent-ruby
> > 
> > Huh. I was wondering whether we can now stop installing Ruby altogether,
> > but we still install the "concurrent-ruby" Gem. But what even is that,
> > and what do we use it for?
> > 
> > It's originally been introduced via 974cdca345 (doc: introduce a
> > synopsis typesetting, 2024-09-24), but unfortunately the commit message
> > does not document why we have to install that Gem now. I couldn't find
> > any reasoning in the mailing list thread, either.
> 
> Er, yeah, see my cover letter. :)

D'oh, yeah. I somehow skipped reading the cover letter altogether,
sorry.

Patrick

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/2] ci: use system asciidoctor
  2026-09-02  9:59             ` Patrick Steinhardt
@ 2026-09-05 14:02               ` Jeff King
  2026-09-05 15:23                 ` Todd Zullinger
  0 siblings, 1 reply; 21+ messages in thread
From: Jeff King @ 2026-09-05 14:02 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: Junio C Hamano, Jean-Noël Avila, git

On Wed, Sep 02, 2026 at 11:59:38AM +0200, Patrick Steinhardt wrote:

> On Wed, Sep 02, 2026 at 05:01:46AM -0400, Jeff King wrote:
> > On Wed, Sep 02, 2026 at 09:55:49AM +0200, Patrick Steinhardt wrote:
> > 
> > > One thing that we might have to worry about is compatibility with _old_
> > > versions of asciidoctor. Now that we're using a more modern version of
> > > it we might start relying on features that weren't available in older
> > > versions, and we wouldn't notice anymore. So we kind of have the reverse
> > > problem now.
> > 
> > Right, this is the "we could in theory check both" path I mentioned
> > earlier.
> > 
> > v1.5.8 is sufficiently old that I don't think we need to care anymore.
> > We can still take bug reports if somebody happens to use it and finds a
> > problem. Checking other older versions isn't likely to be that
> > interesting (the next version after 1.5.8 is 2.0.0, which had a higher
> > than usual chance of breaking things).
> 
> Yeah, I agree. We can still reconsider if we ever hit a scenario where
> it caused problems after all.

BTW, after having dug into Debian versioning for another patch this
morning, I bothered to look at which asciidoctors they ship. Even Debian
11, which just went out of LTS, was on asciidoctor 2.x. Ditto for RHEL8,
which has a 10-year cycle (it hasn't been 10 years since asciidoctor
2.0.0, but it luckily was released in the right part of the cycle).

I don't think that changes our conclusions. Just adding a little bit of
research for posterity.

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/2] ci: use system asciidoctor
  2026-09-05 14:02               ` Jeff King
@ 2026-09-05 15:23                 ` Todd Zullinger
  2026-09-11 20:42                   ` Jeff King
  0 siblings, 1 reply; 21+ messages in thread
From: Todd Zullinger @ 2026-09-05 15:23 UTC (permalink / raw)
  To: Jeff King; +Cc: Patrick Steinhardt, Junio C Hamano, Jean-Noël Avila, git

Jeff King wrote:
> BTW, after having dug into Debian versioning for another
> patch this morning, I bothered to look at which
> asciidoctors they ship. Even Debian 11, which just went
> out of LTS, was on asciidoctor 2.x. Ditto for RHEL8, which
> has a 10-year cycle (it hasn't been 10 years since
> asciidoctor 2.0.0, but it luckily was released in the
> right part of the cycle).

FWIW, asciidoctor in RHEL and clones is part of the add-on
EPEL repo from the Fedora project.

Being part of EPEL rather than the base RHEL is largely why
the version bumps happen in what is otherwise a relatively
static base OS -- EPEL is run by volunteers and allows for
pushing breaking changes a bit more liberally than RHEL
itself.

(Asking free laborers to be on the hook for backporting bug
and security fixes for 10 years doesn't go down all that
well, unsurprisingly.)

Looking at the Fedora/EPEL asciidoctor commit history¹, it
looks like I pushed commits to bring it up to 2.0.20 for
EL-9² before I stopped contributing.  Those changes have
never been pushed out though, so it doesn't look like
anyone's really minding the ascidoctor packages in EPEL
these days.

¹ https://src.fedoraproject.org/rpms/rubygem-asciidoctor
² https://src.fedoraproject.org/rpms/rubygem-asciidoctor/commits/epel9

As none of the CI jobs are installing documentation against
any RHEL-like targets, this doesn't matter much.  But if we
were, we'd need to install the 'epel-release' package before
installing asciidoctor, perhaps something like this:

  diff --git i/ci/install-dependencies.sh w/ci/install-dependencies.sh
  index 10c3530d1a..119e12041d 100755
  --- i/ci/install-dependencies.sh
  +++ w/ci/install-dependencies.sh
  @@ -32,6 +32,10 @@ alpine-*)
   		bash cvs gnupg perl-cgi perl-dbd-sqlite perl-io-tty cargo >/dev/null
   	;;
   fedora-*|almalinux-*)
  +	case "$distro" in
  +	almalinux-*)
  +		dnf -yq install epel-release >/dev/null
  +	esac
   	case "$jobname" in
   	*-meson)
   		MESON_DEPS="meson ninja";;

> I don't think that changes our conclusions. Just adding a
> little bit of research for posterity.

Ditto. ;)

I'm happy to see more Asciidoctor support.  It seems to
produce moderately better output than Asciidoc, in my
experience.  Though I admit I haven't looked closely at
Asciidoc after development picked back up a little to add
Python 3 support and keep the project going.

-- 
Todd

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH (RESEND)] ci: use system asciidoctor
  2026-09-02  7:11     ` [PATCH 0/2] bump ci asciidoctor version Jeff King
  2026-09-02  7:14       ` [PATCH 1/2] ci: drop ALREADY_HAVE_ASCIIDOCTOR variable Jeff King
  2026-09-02  7:16       ` [PATCH 2/2] ci: use system asciidoctor Jeff King
@ 2026-09-11 19:52       ` Tuomas Ahola
  2026-09-11 20:38         ` Jeff King
  2026-09-11 20:58         ` Junio C Hamano
  2 siblings, 2 replies; 21+ messages in thread
From: Tuomas Ahola @ 2026-09-11 19:52 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Jean-Noël Avila, Jeff King, Tuomas Ahola

From: Jeff King <peff@peff.net>

Our CI Documentation builds have pinned asciidoctor since 615a6c37e1
(ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29). Back then a few
changes were needed to build with the then-new v2.0.0.

We've since made those changes, in f6461b82b9 (Documentation: fix build
with Asciidoctor 2, 2019-09-15) and other commits. So it is not only
safe to use newer versions of asciidoctor, but preferable: it's what
people are likely to use for actually building the documentation in
practice!

I don't think there's any need to pin to a specific version. We can just
use what ships in our Ubuntu image, which should give us an arbitrary
representative version (and if it changes and something breaks, we'd
want to know).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Tuomas Ahola <taahol@utu.fi>
---

Notes:
    The release notes draft for v2.56.0 already claims that asciidoctor
    has been updated to be installed via the system package manager.
    Clearly it refers to this patch which isn't, however, anywhere near
    the master branch.

 ci/install-dependencies.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 2f61fbb07c..d57dce5663 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -164,9 +164,9 @@ sparse)
 		libexpat-dev gettext zlib1g-dev sparse
 	;;
 Documentation)
-	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby
+	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \
+		asciidoctor
 
-	sudo gem install --version 1.5.8 asciidoctor
 	sudo gem install concurrent-ruby
 	;;
 esac
-- 
jk/ci-use-system-asciidoctor-for-real


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH (RESEND)] ci: use system asciidoctor
  2026-09-11 19:52       ` [PATCH (RESEND)] " Tuomas Ahola
@ 2026-09-11 20:38         ` Jeff King
  2026-09-11 20:58         ` Junio C Hamano
  1 sibling, 0 replies; 21+ messages in thread
From: Jeff King @ 2026-09-11 20:38 UTC (permalink / raw)
  To: Tuomas Ahola; +Cc: git, Junio C Hamano, Jean-Noël Avila

On Fri, Sep 11, 2026 at 10:52:50PM +0300, Tuomas Ahola wrote:

>     The release notes draft for v2.56.0 already claims that asciidoctor
>     has been updated to be installed via the system package manager.
>     Clearly it refers to this patch which isn't, however, anywhere near
>     the master branch.

I was confused about what was going on from this description, and why
patch 1/2 is not mentioned here. But reading the "What's cooking"
conversation, I think it is simply: this patch was missed when picking
up the jk/ci-use-system-asciidoctor topic.

Possibly because the lead-in patch from Patrick got duplicated (I notice
that jk/ci-use-system-asciidoctor is not based on ps/ci-depends-on-ruby).
But whatever the reason, this was supposed to go on top of the jk/
topic branch.

Thanks for noticing.

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/2] ci: use system asciidoctor
  2026-09-05 15:23                 ` Todd Zullinger
@ 2026-09-11 20:42                   ` Jeff King
  0 siblings, 0 replies; 21+ messages in thread
From: Jeff King @ 2026-09-11 20:42 UTC (permalink / raw)
  To: Todd Zullinger
  Cc: Patrick Steinhardt, Junio C Hamano, Jean-Noël Avila, git

On Sat, Sep 05, 2026 at 11:23:00AM -0400, Todd Zullinger wrote:

> As none of the CI jobs are installing documentation against
> any RHEL-like targets, this doesn't matter much.  But if we
> were, we'd need to install the 'epel-release' package before
> installing asciidoctor, perhaps something like this:

Thanks, that's good to know, though I hope we'll never need to use it
the information. :)

> I'm happy to see more Asciidoctor support.  It seems to
> produce moderately better output than Asciidoc, in my
> experience.  Though I admit I haven't looked closely at
> Asciidoc after development picked back up a little to add
> Python 3 support and keep the project going.

Yeah, I think we were ready (mentally at least) to transition when it
looked like asciidoc was unmaintained. The dual-tool system does
occasionally introduce extra work, but I don't know if there would be
downsides to dropping support for asciidoc now. Presumably the biggest
risk would be losing support for some platforms, though in general it's
not the end of the world to pull in pre-formatted pages on such systems.

I'll leave exploring that for another day.

-Peff

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH (RESEND)] ci: use system asciidoctor
  2026-09-11 19:52       ` [PATCH (RESEND)] " Tuomas Ahola
  2026-09-11 20:38         ` Jeff King
@ 2026-09-11 20:58         ` Junio C Hamano
  2026-09-11 21:33           ` Tuomas Ahola
  1 sibling, 1 reply; 21+ messages in thread
From: Junio C Hamano @ 2026-09-11 20:58 UTC (permalink / raw)
  To: Tuomas Ahola; +Cc: git, Jean-Noël Avila, Jeff King

Tuomas Ahola <taahol@utu.fi> writes:

> Notes:
>     The release notes draft for v2.56.0 already claims that asciidoctor
>     has been updated to be installed via the system package manager.
>     Clearly it refers to this patch which isn't, however, anywhere near
>     the master branch.

I think the description was added to the release notes in 47ce80527c
(A bit more for -rc1, 2026-09-11), one integration cycle after the
2.56-rc0 was tagged.  This patch and Patrick's "gem" patch were
merged between 2.56-rc0 and 47ce80527c (aka "today's master").

So there is nothing to see here, I think.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH (RESEND)] ci: use system asciidoctor
  2026-09-11 20:58         ` Junio C Hamano
@ 2026-09-11 21:33           ` Tuomas Ahola
  2026-09-11 21:50             ` Junio C Hamano
  0 siblings, 1 reply; 21+ messages in thread
From: Tuomas Ahola @ 2026-09-11 21:33 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Jean-Noël Avila, Jeff King

Junio C Hamano <gitster@pobox.com> wrote:

> Tuomas Ahola <taahol@utu.fi> writes:
> 
> > Notes:
> >     The release notes draft for v2.56.0 already claims that asciidoctor
> >     has been updated to be installed via the system package manager.
> >     Clearly it refers to this patch which isn't, however, anywhere near
> >     the master branch.
> 
> I think the description was added to the release notes in 47ce80527c
> (A bit more for -rc1, 2026-09-11), one integration cycle after the
> 2.56-rc0 was tagged.  This patch and Patrick's "gem" patch were
> merged between 2.56-rc0 and 47ce80527c (aka "today's master").
> 
> So there is nothing to see here, I think.

These two were indeed merged:

* 4340a709bf (ci: fix missing Ruby dependency in "documentation" job, 2026-09-01)
* 1c1eed13bd (ci: drop ALREADY_HAVE_ASCIIDOCTOR variable, 2026-09-02)

But this is a third one (ci: use system asciidoctor)---it seems it was never
picked up.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH (RESEND)] ci: use system asciidoctor
  2026-09-11 21:33           ` Tuomas Ahola
@ 2026-09-11 21:50             ` Junio C Hamano
  0 siblings, 0 replies; 21+ messages in thread
From: Junio C Hamano @ 2026-09-11 21:50 UTC (permalink / raw)
  To: Tuomas Ahola; +Cc: git, Jean-Noël Avila, Jeff King

Tuomas Ahola <taahol@utu.fi> writes:

> These two were indeed merged:
>
> * 4340a709bf (ci: fix missing Ruby dependency in "documentation" job, 2026-09-01)
> * 1c1eed13bd (ci: drop ALREADY_HAVE_ASCIIDOCTOR variable, 2026-09-02)
>
> But this is a third one (ci: use system asciidoctor)---it seems it was never
> picked up.

Ahh, that was originally 3 patch series.  I see where it went wrong.

Let's queue it on top.

Thanks.

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2026-09-11 21:50 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-01  8:16 [PATCH] ci: fix missing Ruby dependency in "documentation" job Patrick Steinhardt
2026-09-01  8:24 ` Toon Claes
2026-09-01  8:36   ` Patrick Steinhardt
2026-09-01  8:47 ` Jeff King
2026-09-01  8:51   ` Jeff King
2026-09-01 10:41   ` Patrick Steinhardt
2026-09-02  7:11     ` [PATCH 0/2] bump ci asciidoctor version Jeff King
2026-09-02  7:14       ` [PATCH 1/2] ci: drop ALREADY_HAVE_ASCIIDOCTOR variable Jeff King
2026-09-02  7:16       ` [PATCH 2/2] ci: use system asciidoctor Jeff King
2026-09-02  7:55         ` Patrick Steinhardt
2026-09-02  9:01           ` Jeff King
2026-09-02  9:59             ` Patrick Steinhardt
2026-09-05 14:02               ` Jeff King
2026-09-05 15:23                 ` Todd Zullinger
2026-09-11 20:42                   ` Jeff King
2026-09-11 19:52       ` [PATCH (RESEND)] " Tuomas Ahola
2026-09-11 20:38         ` Jeff King
2026-09-11 20:58         ` Junio C Hamano
2026-09-11 21:33           ` Tuomas Ahola
2026-09-11 21:50             ` Junio C Hamano
2026-09-01 17:58   ` [PATCH] ci: fix missing Ruby dependency in "documentation" job Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox