{"thread":{"id":"66245","subject":"[PATCH] ci: fix missing Ruby dependency in \"documentation\" job","startedAt":"2026-09-01T08:16:21Z","lastAt":"2026-09-11T21:50:50Z","messageCount":21,"participants":["Patrick Steinhardt","Toon Claes","Jeff King","Junio C Hamano","Todd Zullinger","Tuomas Ahola"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"551626","messageId":"20260901-b4-pks-ci-fix-documentation-job-v1-1-a8257ee2a9a4@pks.im","threadId":"66245","inReplyTo":null,"subject":"[PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-01T08:16:11Z","receivedAt":"2026-09-01T08:16:21Z","isPatch":true,"body":"Our \"documentation\" job has recently stopped working with the following\nerror:\n\n  + sudo gem install --version 1.5.8 asciidoctor\n  + gem install --version 1.5.8 asciidoctor\n  ./ci/install-dependencies.sh: 23: gem: not found\n\nThe root cause of this is that we never explicitly install Ruby, and\nconsequently gem(1) isn't explicitly pulled inus, either. This used to\nwork alright because we transitively pulled in Ruby via asciidoc. But\ndue to an update it seems that we stopped pulling in the transitive\ndependency, and consequently we don't have gem(1) available anymore.\n\nFix this by explicitly installing Ruby.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\nHi,\n\nI spotted the failure yesterday. You can see that this fixes the\npipeline at [1]. Thanks!\n\nPatrick\n\n[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/660\n---\n ci/install-dependencies.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 10c3530d1a..502e518077 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -164,7 +164,7 @@ sparse)\n \t\tlibexpat-dev gettext zlib1g-dev sparse\n \t;;\n Documentation)\n-\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make\n+\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n \n \ttest -n \"$ALREADY_HAVE_ASCIIDOCTOR\" ||\n \tsudo gem install --version 1.5.8 asciidoctor\n\n---\nbase-commit: 1630431f326e15fcde608827b5ff38422528eb59\nchange-id: 20260901-b4-pks-ci-fix-documentation-job-e971e10fbc94\n\n"},{"id":"551627","messageId":"87pkyxwf9b.fsf@emacs.iotcl.com","threadId":"66245","inReplyTo":"20260901-b4-pks-ci-fix-documentation-job-v1-1-a8257ee2a9a4@pks.im","subject":"Re: [PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2026-09-01T08:24:32Z","receivedAt":"2026-09-01T08:24:53Z","isPatch":true,"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> Our \"documentation\" job has recently stopped working with the following\n> error:\n>\n>   + sudo gem install --version 1.5.8 asciidoctor\n>   + gem install --version 1.5.8 asciidoctor\n>   ./ci/install-dependencies.sh: 23: gem: not found\n>\n> The root cause of this is that we never explicitly install Ruby, and\n> consequently gem(1) isn't explicitly pulled inus, either. This used to\n\n\"inus\"?\n\n> work alright because we transitively pulled in Ruby via asciidoc. But\n> due to an update it seems that we stopped pulling in the transitive\n> dependency, and consequently we don't have gem(1) available anymore.\n>\n> Fix this by explicitly installing Ruby.\n\nThanks for this fix, I was just looking at it as well, although I wasn't\nsure it started failing recently.\n\n\n> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n> ---\n> Hi,\n>\n> I spotted the failure yesterday. You can see that this fixes the\n> pipeline at [1]. Thanks!\n>\n> Patrick\n>\n> [1]: https://gitlab.com/gitlab-org/git/-/merge_requests/660\n> ---\n>  ci/install-dependencies.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\n> index 10c3530d1a..502e518077 100755\n> --- a/ci/install-dependencies.sh\n> +++ b/ci/install-dependencies.sh\n> @@ -164,7 +164,7 @@ sparse)\n>  \t\tlibexpat-dev gettext zlib1g-dev sparse\n>  \t;;\n>  Documentation)\n> -\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make\n> +\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n\nGood!\n\n>  \n>  \ttest -n \"$ALREADY_HAVE_ASCIIDOCTOR\" ||\n>  \tsudo gem install --version 1.5.8 asciidoctor\n>\n> ---\n> base-commit: 1630431f326e15fcde608827b5ff38422528eb59\n> change-id: 20260901-b4-pks-ci-fix-documentation-job-e971e10fbc94\n\nThanks!\n\n-- \nLaters,\nToon\n"},{"id":"551628","messageId":"apaOk-4f9du1tQSE@pks.im","threadId":"66245","inReplyTo":"87pkyxwf9b.fsf@emacs.iotcl.com","subject":"Re: [PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-01T08:36:35Z","receivedAt":"2026-09-01T08:36:46Z","isPatch":true,"body":"On Tue, Sep 01, 2026 at 10:24:32AM +0200, Toon Claes wrote:\n> Patrick Steinhardt <ps@pks.im> writes:\n> \n> > Our \"documentation\" job has recently stopped working with the following\n> > error:\n> >\n> >   + sudo gem install --version 1.5.8 asciidoctor\n> >   + gem install --version 1.5.8 asciidoctor\n> >   ./ci/install-dependencies.sh: 23: gem: not found\n> >\n> > The root cause of this is that we never explicitly install Ruby, and\n> > consequently gem(1) isn't explicitly pulled inus, either. This used to\n> \n> \"inus\"?\n\nHuh. I guess this was supposed to just say \"in\"? Fixed locally, but I'll\nrefrain from sending out a new version just to fix this. Thanks!\n\nPatrick\n"},{"id":"551629","messageId":"20260901084737.GA2973751@coredump.intra.peff.net","threadId":"66245","inReplyTo":"20260901-b4-pks-ci-fix-documentation-job-v1-1-a8257ee2a9a4@pks.im","subject":"Re: [PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-01T08:47:37Z","receivedAt":"2026-09-01T08:47:39Z","isPatch":true,"body":"On Tue, Sep 01, 2026 at 10:16:11AM +0200, Patrick Steinhardt wrote:\n\n> Our \"documentation\" job has recently stopped working with the following\n> error:\n> \n>   + sudo gem install --version 1.5.8 asciidoctor\n>   + gem install --version 1.5.8 asciidoctor\n>   ./ci/install-dependencies.sh: 23: gem: not found\n\nNot directly related to your patch but... asciidoctor 1.5.8, really?\nThat version is 8 years old. Looks like we set that version in\n615a6c37e1 (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29)\ndue to some issues with the then-new-ish v2.0.0.\n\nBut these days I'd guess everybody is using v2.0.x (which seems to work\nfine) for local builds. We probably ought to do the same in CI. If we\nhave to catch issues in one, I'd rather it be the one people are likely\nto actually use.\n\nIt's possible that we could benefit from building with both in order to\nsupport the older version. But given its age I doubt it's worth it. We\ncan still take bug fixes if somebody finds a problem, but we don't\nnecessarily need to spend cycles building every commit with 1.5.8.\n\n-Peff\n"},{"id":"551631","messageId":"20260901085138.GA2974806@coredump.intra.peff.net","threadId":"66245","inReplyTo":"20260901084737.GA2973751@coredump.intra.peff.net","subject":"Re: [PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-01T08:51:38Z","receivedAt":"2026-09-01T08:51:40Z","isPatch":true,"body":"On Tue, Sep 01, 2026 at 04:47:38AM -0400, Jeff King wrote:\n\n> Not directly related to your patch but... asciidoctor 1.5.8, really?\n> That version is 8 years old. Looks like we set that version in\n> 615a6c37e1 (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29)\n> due to some issues with the then-new-ish v2.0.0.\n> \n> But these days I'd guess everybody is using v2.0.x (which seems to work\n> fine) for local builds. We probably ought to do the same in CI. If we\n> have to catch issues in one, I'd rather it be the one people are likely\n> to actually use.\n\nAh, indeed. It was fixed in f6461b82b9 (Documentation: fix build with\nAsciidoctor 2, 2019-09-15). The thread here:\n\n  https://lore.kernel.org/git/20190915212621.GV11334@genre.crustytoothpaste.net\n\nsuggests that it could be removed, but was just waiting on a few more\nfixes for the v2 series. I guess nobody ever circled back around to it.\n\n-Peff\n"},{"id":"551643","messageId":"aparyEbGiiFZpiCZ@pks.im","threadId":"66245","inReplyTo":"20260901084737.GA2973751@coredump.intra.peff.net","subject":"Re: [PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-01T10:41:12Z","receivedAt":"2026-09-01T10:41:22Z","isPatch":true,"body":"On Tue, Sep 01, 2026 at 04:47:37AM -0400, Jeff King wrote:\n> On Tue, Sep 01, 2026 at 10:16:11AM +0200, Patrick Steinhardt wrote:\n> \n> > Our \"documentation\" job has recently stopped working with the following\n> > error:\n> > \n> >   + sudo gem install --version 1.5.8 asciidoctor\n> >   + gem install --version 1.5.8 asciidoctor\n> >   ./ci/install-dependencies.sh: 23: gem: not found\n> \n> Not directly related to your patch but... asciidoctor 1.5.8, really?\n> That version is 8 years old. Looks like we set that version in\n> 615a6c37e1 (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29)\n> due to some issues with the then-new-ish v2.0.0.\n> \n> But these days I'd guess everybody is using v2.0.x (which seems to work\n> fine) for local builds. We probably ought to do the same in CI. If we\n> have to catch issues in one, I'd rather it be the one people are likely\n> to actually use.\n\n> It's possible that we could benefit from building with both in order to\n> support the older version. But given its age I doubt it's worth it. We\n> can still take bug fixes if somebody finds a problem, but we don't\n> necessarily need to spend cycles building every commit with 1.5.8.\n\nI was wondering about whether I should bump its version while at it. In\nfact, we could just install it from the Ubuntu sources nowadays, too. I\nultimately decided to not do that though and just fix the failing CI\npipeline for now, but I agree that it's something we might want to\nfollow up on.\n\nPatrick\n"},{"id":"551694","messageId":"xmqqcxuwsvjr.fsf@gitster.g","threadId":"66245","inReplyTo":"20260901084737.GA2973751@coredump.intra.peff.net","subject":"Re: [PATCH] ci: fix missing Ruby dependency in \"documentation\" job","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-09-01T17:58:32Z","receivedAt":"2026-09-01T17:58:34Z","isPatch":true,"body":"Jeff King <peff@peff.net> writes:\n\n> But these days I'd guess everybody is using v2.0.x (which seems to work\n> fine) for local builds. We probably ought to do the same in CI. If we\n> have to catch issues in one, I'd rather it be the one people are likely\n> to actually use.\n>\n> It's possible that we could benefit from building with both in order to\n> support the older version. But given its age I doubt it's worth it. We\n> can still take bug fixes if somebody finds a problem, but we don't\n> necessarily need to spend cycles building every commit with 1.5.8.\n\nYup, thanks for a dose of sanity.\n"},{"id":"551728","messageId":"20260902071113.GA70165@coredump.intra.peff.net","threadId":"66245","inReplyTo":"aparyEbGiiFZpiCZ@pks.im","subject":"[PATCH 0/2] bump ci asciidoctor version","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-02T07:11:13Z","receivedAt":"2026-09-02T07:11:14Z","isPatch":true,"body":"On Tue, Sep 01, 2026 at 12:41:12PM +0200, Patrick Steinhardt wrote:\n\n> > But these days I'd guess everybody is using v2.0.x (which seems to work\n> > fine) for local builds. We probably ought to do the same in CI. If we\n> > have to catch issues in one, I'd rather it be the one people are likely\n> > to actually use.\n> \n> > It's possible that we could benefit from building with both in order to\n> > support the older version. But given its age I doubt it's worth it. We\n> > can still take bug fixes if somebody finds a problem, but we don't\n> > necessarily need to spend cycles building every commit with 1.5.8.\n> \n> I was wondering about whether I should bump its version while at it. In\n> fact, we could just install it from the Ubuntu sources nowadays, too. I\n> ultimately decided to not do that though and just fix the failing CI\n> pipeline for now, but I agree that it's something we might want to\n> follow up on.\n\nI think your fix kept to the minimum, which is good. I agree we should\njust install it from the system package manager. I _thought_ that might\nmake your fix here obsolete, but we also install the concurrent-ruby\ngem. That comes from 974cdca345 (doc: introduce a synopsis typesetting,\n2024-09-24) which also introduced some custom ruby code in asciidoctor\nextensions. But it's not clear to me why it's necessary (and I build the\ndocs happily on my local system without it installed). +cc Jean-Noël for\nany wisdom.\n\nI guess installing asciidoctor from Ubuntu would also bring in ruby as a\ndependency. So I suppose it does make your patch obsolete, but it also\ndoesn't hurt to be explicit that we expect \"gem install\" to work.\n\nAnyway, here is a fix for the version which can be applied on top of\nps/ci-depends-on-ruby.\n\n-Peff\n"},{"id":"551729","messageId":"20260902071409.GA641414@coredump.intra.peff.net","threadId":"66245","inReplyTo":"20260902071113.GA70165@coredump.intra.peff.net","subject":"[PATCH 1/2] ci: drop ALREADY_HAVE_ASCIIDOCTOR variable","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-02T07:14:09Z","receivedAt":"2026-09-02T07:14:11Z","isPatch":true,"body":"Our install-dependencies script avoids installing asciidoctor if the\nCI environment claims to have it already. But the only environment which\nmade use of this was Azure Pipelines, which went away in 6081d3898f (ci:\nretire the Azure Pipelines definition, 2020-04-11). So this conditional\nwas effectively doing nothing. Let's clean it up.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n ci/install-dependencies.sh | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 502e518077..2f61fbb07c 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -166,7 +166,6 @@ sparse)\n Documentation)\n \tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n \n-\ttest -n \"$ALREADY_HAVE_ASCIIDOCTOR\" ||\n \tsudo gem install --version 1.5.8 asciidoctor\n \tsudo gem install concurrent-ruby\n \t;;\n-- \n2.55.0.1074.gcd259ea853\n\n"},{"id":"551730","messageId":"20260902071613.GB641414@coredump.intra.peff.net","threadId":"66245","inReplyTo":"20260902071113.GA70165@coredump.intra.peff.net","subject":"[PATCH 2/2] ci: use system asciidoctor","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-02T07:16:13Z","receivedAt":"2026-09-02T07:16:15Z","isPatch":true,"body":"Our CI Documentation builds have pinned asciidoctor since 615a6c37e1\n(ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29). Back then a few\nchanges were needed to build with the then-new v2.0.0.\n\nWe've since made those changes, in f6461b82b9 (Documentation: fix build\nwith Asciidoctor 2, 2019-09-15) and other commits. So it is not only\nsafe to use newer versions of asciidoctor, but preferable: it's what\npeople are likely to use for actually building the documentation in\npractice!\n\nI don't think there's any need to pin to a specific version. We can just\nuse what ships in our Ubuntu image, which should give us an arbitrary\nrepresentative version (and if it changes and something breaks, we'd\nwant to know).\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\nConfirmed that this successfully ran CI via GitHub Actions. Looks like\nthe image there uses asciidoctor 2.0.20, which seems reasonable (it's\nfrom 2023, but stable images tend to lag about that much).\n\n ci/install-dependencies.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 2f61fbb07c..d57dce5663 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -164,9 +164,9 @@ sparse)\n \t\tlibexpat-dev gettext zlib1g-dev sparse\n \t;;\n Documentation)\n-\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n+\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \\\n+\t\tasciidoctor\n \n-\tsudo gem install --version 1.5.8 asciidoctor\n \tsudo gem install concurrent-ruby\n \t;;\n esac\n-- \n2.55.0.1074.gcd259ea853\n"},{"id":"551733","messageId":"apfWhYF6nmcFGKE3@pks.im","threadId":"66245","inReplyTo":"20260902071613.GB641414@coredump.intra.peff.net","subject":"Re: [PATCH 2/2] ci: use system asciidoctor","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-02T07:55:49Z","receivedAt":"2026-09-02T07:56:01Z","isPatch":true,"body":"On Wed, Sep 02, 2026 at 03:16:13AM -0400, Jeff King wrote:\n> Our CI Documentation builds have pinned asciidoctor since 615a6c37e1\n> (ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29). Back then a few\n> changes were needed to build with the then-new v2.0.0.\n> \n> We've since made those changes, in f6461b82b9 (Documentation: fix build\n> with Asciidoctor 2, 2019-09-15) and other commits. So it is not only\n> safe to use newer versions of asciidoctor, but preferable: it's what\n> people are likely to use for actually building the documentation in\n> practice!\n> \n> I don't think there's any need to pin to a specific version. We can just\n> use what ships in our Ubuntu image, which should give us an arbitrary\n> representative version (and if it changes and something breaks, we'd\n> want to know).\n\nMakes sense.\n\nOne thing that we might have to worry about is compatibility with _old_\nversions of asciidoctor. Now that we're using a more modern version of\nit we might start relying on features that weren't available in older\nversions, and we wouldn't notice anymore. So we kind of have the reverse\nproblem now.\n\nThe best-case scenario would be if asciidoctor had something like a\ncompatibility mode where you can ask it to complain about features that\naren't available in a specific cutoff version. But I have no idea\nwhether such a thing even exists.\n\nAlso, I'm not sure though whether this concern is something that we\nreally have to care about, I may be overthinking this quite a bit. So\nplease don't read this as a \"Let's not use a modern version\", but rather\nas me writing down my unfiltered thoughts.\n\n>  ci/install-dependencies.sh | 4 ++--\n>  1 file changed, 2 insertions(+), 2 deletions(-)\n> \n> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\n> index 2f61fbb07c..d57dce5663 100755\n> --- a/ci/install-dependencies.sh\n> +++ b/ci/install-dependencies.sh\n> @@ -164,9 +164,9 @@ sparse)\n>  \t\tlibexpat-dev gettext zlib1g-dev sparse\n>  \t;;\n>  Documentation)\n> -\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n> +\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \\\n> +\t\tasciidoctor\n>  \n> -\tsudo gem install --version 1.5.8 asciidoctor\n>  \tsudo gem install concurrent-ruby\n\nHuh. I was wondering whether we can now stop installing Ruby altogether,\nbut we still install the \"concurrent-ruby\" Gem. But what even is that,\nand what do we use it for?\n\nIt's originally been introduced via 974cdca345 (doc: introduce a\nsynopsis typesetting, 2024-09-24), but unfortunately the commit message\ndoes not document why we have to install that Gem now. I couldn't find\nany reasoning in the mailing list thread, either.\n\nPatrick\n"},{"id":"551735","messageId":"20260902090146.GA1791728@coredump.intra.peff.net","threadId":"66245","inReplyTo":"apfWhYF6nmcFGKE3@pks.im","subject":"Re: [PATCH 2/2] ci: use system asciidoctor","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-02T09:01:46Z","receivedAt":"2026-09-02T09:01:48Z","isPatch":true,"body":"On Wed, Sep 02, 2026 at 09:55:49AM +0200, Patrick Steinhardt wrote:\n\n> One thing that we might have to worry about is compatibility with _old_\n> versions of asciidoctor. Now that we're using a more modern version of\n> it we might start relying on features that weren't available in older\n> versions, and we wouldn't notice anymore. So we kind of have the reverse\n> problem now.\n\nRight, this is the \"we could in theory check both\" path I mentioned\nearlier.\n\nv1.5.8 is sufficiently old that I don't think we need to care anymore.\nWe can still take bug reports if somebody happens to use it and finds a\nproblem. Checking other older versions isn't likely to be that\ninteresting (the next version after 1.5.8 is 2.0.0, which had a higher\nthan usual chance of breaking things).\n\n> >  Documentation)\n> > -\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n> > +\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \\\n> > +\t\tasciidoctor\n> >  \n> > -\tsudo gem install --version 1.5.8 asciidoctor\n> >  \tsudo gem install concurrent-ruby\n> \n> Huh. I was wondering whether we can now stop installing Ruby altogether,\n> but we still install the \"concurrent-ruby\" Gem. But what even is that,\n> and what do we use it for?\n> \n> It's originally been introduced via 974cdca345 (doc: introduce a\n> synopsis typesetting, 2024-09-24), but unfortunately the commit message\n> does not document why we have to install that Gem now. I couldn't find\n> any reasoning in the mailing list thread, either.\n\nEr, yeah, see my cover letter. :)\n\n-Peff\n"},{"id":"551738","messageId":"apfzihj-1YAhn5lT@pks.im","threadId":"66245","inReplyTo":"20260902090146.GA1791728@coredump.intra.peff.net","subject":"Re: [PATCH 2/2] ci: use system asciidoctor","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-09-02T09:59:38Z","receivedAt":"2026-09-02T09:59:50Z","isPatch":true,"body":"On Wed, Sep 02, 2026 at 05:01:46AM -0400, Jeff King wrote:\n> On Wed, Sep 02, 2026 at 09:55:49AM +0200, Patrick Steinhardt wrote:\n> \n> > One thing that we might have to worry about is compatibility with _old_\n> > versions of asciidoctor. Now that we're using a more modern version of\n> > it we might start relying on features that weren't available in older\n> > versions, and we wouldn't notice anymore. So we kind of have the reverse\n> > problem now.\n> \n> Right, this is the \"we could in theory check both\" path I mentioned\n> earlier.\n> \n> v1.5.8 is sufficiently old that I don't think we need to care anymore.\n> We can still take bug reports if somebody happens to use it and finds a\n> problem. Checking other older versions isn't likely to be that\n> interesting (the next version after 1.5.8 is 2.0.0, which had a higher\n> than usual chance of breaking things).\n\nYeah, I agree. We can still reconsider if we ever hit a scenario where\nit caused problems after all.\n\n> > >  Documentation)\n> > > -\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n> > > +\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \\\n> > > +\t\tasciidoctor\n> > >  \n> > > -\tsudo gem install --version 1.5.8 asciidoctor\n> > >  \tsudo gem install concurrent-ruby\n> > \n> > Huh. I was wondering whether we can now stop installing Ruby altogether,\n> > but we still install the \"concurrent-ruby\" Gem. But what even is that,\n> > and what do we use it for?\n> > \n> > It's originally been introduced via 974cdca345 (doc: introduce a\n> > synopsis typesetting, 2024-09-24), but unfortunately the commit message\n> > does not document why we have to install that Gem now. I couldn't find\n> > any reasoning in the mailing list thread, either.\n> \n> Er, yeah, see my cover letter. :)\n\nD'oh, yeah. I somehow skipped reading the cover letter altogether,\nsorry.\n\nPatrick\n"},{"id":"552030","messageId":"20260905140217.GA3914642@coredump.intra.peff.net","threadId":"66245","inReplyTo":"apfzihj-1YAhn5lT@pks.im","subject":"Re: [PATCH 2/2] ci: use system asciidoctor","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-05T14:02:17Z","receivedAt":"2026-09-05T14:02:20Z","isPatch":true,"body":"On Wed, Sep 02, 2026 at 11:59:38AM +0200, Patrick Steinhardt wrote:\n\n> On Wed, Sep 02, 2026 at 05:01:46AM -0400, Jeff King wrote:\n> > On Wed, Sep 02, 2026 at 09:55:49AM +0200, Patrick Steinhardt wrote:\n> > \n> > > One thing that we might have to worry about is compatibility with _old_\n> > > versions of asciidoctor. Now that we're using a more modern version of\n> > > it we might start relying on features that weren't available in older\n> > > versions, and we wouldn't notice anymore. So we kind of have the reverse\n> > > problem now.\n> > \n> > Right, this is the \"we could in theory check both\" path I mentioned\n> > earlier.\n> > \n> > v1.5.8 is sufficiently old that I don't think we need to care anymore.\n> > We can still take bug reports if somebody happens to use it and finds a\n> > problem. Checking other older versions isn't likely to be that\n> > interesting (the next version after 1.5.8 is 2.0.0, which had a higher\n> > than usual chance of breaking things).\n> \n> Yeah, I agree. We can still reconsider if we ever hit a scenario where\n> it caused problems after all.\n\nBTW, after having dug into Debian versioning for another patch this\nmorning, I bothered to look at which asciidoctors they ship. Even Debian\n11, which just went out of LTS, was on asciidoctor 2.x. Ditto for RHEL8,\nwhich has a 10-year cycle (it hasn't been 10 years since asciidoctor\n2.0.0, but it luckily was released in the right part of the cycle).\n\nI don't think that changes our conclusions. Just adding a little bit of\nresearch for posterity.\n\n-Peff\n"},{"id":"552031","messageId":"20260905152300.Zo2Zl39n@teonanacatl.net","threadId":"66245","inReplyTo":"20260905140217.GA3914642@coredump.intra.peff.net","subject":"Re: [PATCH 2/2] ci: use system asciidoctor","fromName":"Todd Zullinger","fromEmail":"tmz@pobox.com","sentAt":"2026-09-05T15:23:00Z","receivedAt":"2026-09-05T15:23:03Z","isPatch":true,"body":"Jeff King wrote:\n> BTW, after having dug into Debian versioning for another\n> patch this morning, I bothered to look at which\n> asciidoctors they ship. Even Debian 11, which just went\n> out of LTS, was on asciidoctor 2.x. Ditto for RHEL8, which\n> has a 10-year cycle (it hasn't been 10 years since\n> asciidoctor 2.0.0, but it luckily was released in the\n> right part of the cycle).\n\nFWIW, asciidoctor in RHEL and clones is part of the add-on\nEPEL repo from the Fedora project.\n\nBeing part of EPEL rather than the base RHEL is largely why\nthe version bumps happen in what is otherwise a relatively\nstatic base OS -- EPEL is run by volunteers and allows for\npushing breaking changes a bit more liberally than RHEL\nitself.\n\n(Asking free laborers to be on the hook for backporting bug\nand security fixes for 10 years doesn't go down all that\nwell, unsurprisingly.)\n\nLooking at the Fedora/EPEL asciidoctor commit history¹, it\nlooks like I pushed commits to bring it up to 2.0.20 for\nEL-9² before I stopped contributing.  Those changes have\nnever been pushed out though, so it doesn't look like\nanyone's really minding the ascidoctor packages in EPEL\nthese days.\n\n¹ https://src.fedoraproject.org/rpms/rubygem-asciidoctor\n² https://src.fedoraproject.org/rpms/rubygem-asciidoctor/commits/epel9\n\nAs none of the CI jobs are installing documentation against\nany RHEL-like targets, this doesn't matter much.  But if we\nwere, we'd need to install the 'epel-release' package before\ninstalling asciidoctor, perhaps something like this:\n\n  diff --git i/ci/install-dependencies.sh w/ci/install-dependencies.sh\n  index 10c3530d1a..119e12041d 100755\n  --- i/ci/install-dependencies.sh\n  +++ w/ci/install-dependencies.sh\n  @@ -32,6 +32,10 @@ alpine-*)\n   \t\tbash cvs gnupg perl-cgi perl-dbd-sqlite perl-io-tty cargo >/dev/null\n   \t;;\n   fedora-*|almalinux-*)\n  +\tcase \"$distro\" in\n  +\talmalinux-*)\n  +\t\tdnf -yq install epel-release >/dev/null\n  +\tesac\n   \tcase \"$jobname\" in\n   \t*-meson)\n   \t\tMESON_DEPS=\"meson ninja\";;\n\n> I don't think that changes our conclusions. Just adding a\n> little bit of research for posterity.\n\nDitto. ;)\n\nI'm happy to see more Asciidoctor support.  It seems to\nproduce moderately better output than Asciidoc, in my\nexperience.  Though I admit I haven't looked closely at\nAsciidoc after development picked back up a little to add\nPython 3 support and keep the project going.\n\n-- \nTodd\n"},{"id":"552590","messageId":"20260911195250.31201-1-taahol@utu.fi","threadId":"66245","inReplyTo":"20260902071113.GA70165@coredump.intra.peff.net","subject":"[PATCH (RESEND)] ci: use system asciidoctor","fromName":"Tuomas Ahola","fromEmail":"taahol@utu.fi","sentAt":"2026-09-11T19:52:50Z","receivedAt":"2026-09-11T19:53:10Z","isPatch":true,"body":"From: Jeff King <peff@peff.net>\n\nOur CI Documentation builds have pinned asciidoctor since 615a6c37e1\n(ci: stick with Asciidoctor v1.5.8 for now, 2019-03-29). Back then a few\nchanges were needed to build with the then-new v2.0.0.\n\nWe've since made those changes, in f6461b82b9 (Documentation: fix build\nwith Asciidoctor 2, 2019-09-15) and other commits. So it is not only\nsafe to use newer versions of asciidoctor, but preferable: it's what\npeople are likely to use for actually building the documentation in\npractice!\n\nI don't think there's any need to pin to a specific version. We can just\nuse what ships in our Ubuntu image, which should give us an arbitrary\nrepresentative version (and if it changes and something breaks, we'd\nwant to know).\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Tuomas Ahola <taahol@utu.fi>\n---\n\nNotes:\n    The release notes draft for v2.56.0 already claims that asciidoctor\n    has been updated to be installed via the system package manager.\n    Clearly it refers to this patch which isn't, however, anywhere near\n    the master branch.\n\n ci/install-dependencies.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 2f61fbb07c..d57dce5663 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -164,9 +164,9 @@ sparse)\n \t\tlibexpat-dev gettext zlib1g-dev sparse\n \t;;\n Documentation)\n-\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby\n+\tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make ruby \\\n+\t\tasciidoctor\n \n-\tsudo gem install --version 1.5.8 asciidoctor\n \tsudo gem install concurrent-ruby\n \t;;\n esac\n-- \njk/ci-use-system-asciidoctor-for-real\n\n"},{"id":"552592","messageId":"20260911203807.GA1622087@coredump.intra.peff.net","threadId":"66245","inReplyTo":"20260911195250.31201-1-taahol@utu.fi","subject":"Re: [PATCH (RESEND)] ci: use system asciidoctor","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-11T20:38:07Z","receivedAt":"2026-09-11T20:38:08Z","isPatch":true,"body":"On Fri, Sep 11, 2026 at 10:52:50PM +0300, Tuomas Ahola wrote:\n\n>     The release notes draft for v2.56.0 already claims that asciidoctor\n>     has been updated to be installed via the system package manager.\n>     Clearly it refers to this patch which isn't, however, anywhere near\n>     the master branch.\n\nI was confused about what was going on from this description, and why\npatch 1/2 is not mentioned here. But reading the \"What's cooking\"\nconversation, I think it is simply: this patch was missed when picking\nup the jk/ci-use-system-asciidoctor topic.\n\nPossibly because the lead-in patch from Patrick got duplicated (I notice\nthat jk/ci-use-system-asciidoctor is not based on ps/ci-depends-on-ruby).\nBut whatever the reason, this was supposed to go on top of the jk/\ntopic branch.\n\nThanks for noticing.\n\n-Peff\n"},{"id":"552593","messageId":"20260911204254.GB1622087@coredump.intra.peff.net","threadId":"66245","inReplyTo":"20260905152300.Zo2Zl39n@teonanacatl.net","subject":"Re: [PATCH 2/2] ci: use system asciidoctor","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-09-11T20:42:54Z","receivedAt":"2026-09-11T20:42:57Z","isPatch":true,"body":"On Sat, Sep 05, 2026 at 11:23:00AM -0400, Todd Zullinger wrote:\n\n> As none of the CI jobs are installing documentation against\n> any RHEL-like targets, this doesn't matter much.  But if we\n> were, we'd need to install the 'epel-release' package before\n> installing asciidoctor, perhaps something like this:\n\nThanks, that's good to know, though I hope we'll never need to use it\nthe information. :)\n\n> I'm happy to see more Asciidoctor support.  It seems to\n> produce moderately better output than Asciidoc, in my\n> experience.  Though I admit I haven't looked closely at\n> Asciidoc after development picked back up a little to add\n> Python 3 support and keep the project going.\n\nYeah, I think we were ready (mentally at least) to transition when it\nlooked like asciidoc was unmaintained. The dual-tool system does\noccasionally introduce extra work, but I don't know if there would be\ndownsides to dropping support for asciidoc now. Presumably the biggest\nrisk would be losing support for some platforms, though in general it's\nnot the end of the world to pull in pre-formatted pages on such systems.\n\nI'll leave exploring that for another day.\n\n-Peff\n"},{"id":"552595","messageId":"xmqqeceza4k9.fsf@gitster.g","threadId":"66245","inReplyTo":"20260911195250.31201-1-taahol@utu.fi","subject":"Re: [PATCH (RESEND)] ci: use system asciidoctor","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-09-11T20:58:14Z","receivedAt":"2026-09-11T20:58:17Z","isPatch":true,"body":"Tuomas Ahola <taahol@utu.fi> writes:\n\n> Notes:\n>     The release notes draft for v2.56.0 already claims that asciidoctor\n>     has been updated to be installed via the system package manager.\n>     Clearly it refers to this patch which isn't, however, anywhere near\n>     the master branch.\n\nI think the description was added to the release notes in 47ce80527c\n(A bit more for -rc1, 2026-09-11), one integration cycle after the\n2.56-rc0 was tagged.  This patch and Patrick's \"gem\" patch were\nmerged between 2.56-rc0 and 47ce80527c (aka \"today's master\").\n\nSo there is nothing to see here, I think.\n\n"},{"id":"552604","messageId":"20260911213338.kLh69%taahol@utu.fi","threadId":"66245","inReplyTo":"xmqqeceza4k9.fsf@gitster.g","subject":"Re: [PATCH (RESEND)] ci: use system asciidoctor","fromName":"Tuomas Ahola","fromEmail":"taahol@utu.fi","sentAt":"2026-09-11T21:33:38Z","receivedAt":"2026-09-11T21:33:48Z","isPatch":true,"body":"Junio C Hamano <gitster@pobox.com> wrote:\n\n> Tuomas Ahola <taahol@utu.fi> writes:\n> \n> > Notes:\n> >     The release notes draft for v2.56.0 already claims that asciidoctor\n> >     has been updated to be installed via the system package manager.\n> >     Clearly it refers to this patch which isn't, however, anywhere near\n> >     the master branch.\n> \n> I think the description was added to the release notes in 47ce80527c\n> (A bit more for -rc1, 2026-09-11), one integration cycle after the\n> 2.56-rc0 was tagged.  This patch and Patrick's \"gem\" patch were\n> merged between 2.56-rc0 and 47ce80527c (aka \"today's master\").\n> \n> So there is nothing to see here, I think.\n\nThese two were indeed merged:\n\n* 4340a709bf (ci: fix missing Ruby dependency in \"documentation\" job, 2026-09-01)\n* 1c1eed13bd (ci: drop ALREADY_HAVE_ASCIIDOCTOR variable, 2026-09-02)\n\nBut this is a third one (ci: use system asciidoctor)---it seems it was never\npicked up.\n"},{"id":"552606","messageId":"xmqqy0d78nk8.fsf@gitster.g","threadId":"66245","inReplyTo":"20260911213338.kLh69%taahol@utu.fi","subject":"Re: [PATCH (RESEND)] ci: use system asciidoctor","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-09-11T21:50:47Z","receivedAt":"2026-09-11T21:50:50Z","isPatch":true,"body":"Tuomas Ahola <taahol@utu.fi> writes:\n\n> These two were indeed merged:\n>\n> * 4340a709bf (ci: fix missing Ruby dependency in \"documentation\" job, 2026-09-01)\n> * 1c1eed13bd (ci: drop ALREADY_HAVE_ASCIIDOCTOR variable, 2026-09-02)\n>\n> But this is a third one (ci: use system asciidoctor)---it seems it was never\n> picked up.\n\nAhh, that was originally 3 patch series.  I see where it went wrong.\n\nLet's queue it on top.\n\nThanks.\n"}]}