{"thread":{"id":"56942","subject":"[PATCH 1/2] CI: use shorter names that fit in UX tooltips","startedAt":"2021-11-19T13:56:20Z","lastAt":"2021-11-23T16:29:46Z","messageCount":38,"participants":["Ævar Arnfjörð Bjarmason","Jeff King","Johannes Schindelin","Victoria Dye","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"441729","messageId":"patch-1.2-26f80c87c8d-20211119T135343Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com","subject":"[PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-19T13:56:06Z","receivedAt":"2021-11-19T13:56:20Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the names used for the GitHub CI workflows to be short enough\nto (mostly) fit in the pop-up tool-tips that GitHub shows in the\ncommit view. I.e. when mouse-clicking on the passing or failing\ncheck-mark next to the commit subject.\n\nThat description is truncated to 24 characters, with the 3 at the end\nbeing placed by \"...\".\n\nE.g. the full job name (visible at [1]):\n\n    \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n\nWill, when shown in the tool-tip be truncated to:\n\n    \"CI/PR / regular (linu...\"\n\nThere's then a further limit in the expanded view where the job names\nare observably truncated to 44 characters (including \"...\"). I.e.:\n\n    \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n\nWith this change we shorten both the job names, and change the\ntop-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\nprefix in the tooltips. We also remove redundant or superfluous\ninformation from the name, e.g. \"ubuntu-latest\" isn't really needed\nfor \"linux-leaks\", it'll suffice to say linux. For discovering what\nimage runs that specifically we can consult main.yml itself.\n\nThe above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\nthen becomes a 1=1 match to the \"$jobname\" used in\n\"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\nadded implicitly as before (from the top-level \"on\" parameter in\n\"main.yml\"). In the tooltip we'll now show:\n\n    \"CI / linux-leaks (pu...\"\n\nWe then have no truncation in the expanded view. See [2] for a\ncurrently visible CI run using this commit, and [3] for the GitHub\nworkflow syntax involved being changed here.\n\nWe could avoid even more truncation with more compact names,\ne.g. changing \"linux\" to \"lin\" or \"lnx\", but I didn't do that since\nany additional shortening seemed counterproductive, i.e. \"w32\" is a\nwell-known way of referring to \"Windows\", but \"lin\" isn't). We could\nalso shorten e.g. \"::build\" and \"::test\" to \"+bld\" and \"+tst\", but\nthose seem similarly to be overly obtuse.\n\n1. https://github.com/git/git/tree/master/\n2. https://github.com/avar/git/tree/avar/ci-shorter-names\n3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml | 13 ++++++++++++-\n README.md                  |  2 +-\n 2 files changed, 13 insertions(+), 2 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 6ed6a9e8076..8f4caa8f040 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -1,4 +1,4 @@\n-name: CI/PR\n+name: CI\n \n on: [push, pull_request]\n \n@@ -7,6 +7,7 @@ env:\n \n jobs:\n   ci-config:\n+    name: config\n     runs-on: ubuntu-latest\n     outputs:\n       enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n@@ -77,6 +78,7 @@ jobs:\n             }\n \n   windows-build:\n+    name: w32::build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     runs-on: windows-latest\n@@ -97,6 +99,7 @@ jobs:\n         name: windows-artifacts\n         path: artifacts\n   windows-test:\n+    name: w32::test\n     runs-on: windows-latest\n     needs: [windows-build]\n     strategy:\n@@ -127,6 +130,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   vs-build:\n+    name: w32/VS::build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\n@@ -178,6 +182,7 @@ jobs:\n         name: vs-artifacts\n         path: artifacts\n   vs-test:\n+    name: w32/VS::test\n     runs-on: windows-latest\n     needs: vs-build\n     strategy:\n@@ -210,6 +215,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   regular:\n+    name: ${{matrix.vector.jobname}}\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -251,6 +257,7 @@ jobs:\n         name: failed-tests-${{matrix.vector.jobname}}\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   dockerized:\n+    name: ${{matrix.vector.jobname}} (docker)\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -258,10 +265,13 @@ jobs:\n       matrix:\n         vector:\n         - jobname: linux-musl\n+          os: alpine\n           image: alpine\n         - jobname: Linux32\n+          os: ubuntu32\n           image: daald/ubuntu32:xenial\n         - jobname: pedantic\n+          os: fedora\n           image: fedora\n     env:\n       jobname: ${{matrix.vector.jobname}}\n@@ -310,6 +320,7 @@ jobs:\n       run: ci/install-dependencies.sh\n     - run: make sparse\n   documentation:\n+    name: documentation\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\ndiff --git a/README.md b/README.md\nindex eb8115e6b04..f6f43e78deb 100644\n--- a/README.md\n+++ b/README.md\n@@ -1,4 +1,4 @@\n-[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n+[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n \n Git - fast, scalable, distributed revision control system\n =========================================================\n-- \n2.34.0.823.g5753b56b5c1\n\n"},{"id":"441730","messageId":"cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com","threadId":"56942","inReplyTo":null,"subject":"[PATCH 0/2] CI: use shorter names for CI jobs, less truncation","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-19T13:56:05Z","receivedAt":"2021-11-19T13:56:21Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"This changes the names used in GitHub CI to be shorter, because the\ncurrent ones are so long that they overflow the pop-up tooltips in the\nGitHub UI.\n\nNew pop-up visible at: https://github.com/avar/git/tree/avar/ci-shorter-names\n\nFull CI run at (currently pending, I had a trivial last-minute\nupdate):\nhttps://github.com/avar/git/runs/4264929546?check_suite_focus=true\n\nÆvar Arnfjörð Bjarmason (2):\n  CI: use shorter names that fit in UX tooltips\n  CI: rename the \"Linux32\" job to lower-case \"linux32\"\n\n .github/workflows/main.yml        | 15 +++++++++++++--\n .travis.yml                       |  2 +-\n README.md                         |  2 +-\n ci/install-docker-dependencies.sh |  2 +-\n ci/lib.sh                         |  2 +-\n ci/run-docker-build.sh            |  2 +-\n ci/run-docker.sh                  |  2 +-\n 7 files changed, 19 insertions(+), 8 deletions(-)\n\n-- \n2.34.0.823.g5753b56b5c1\n\n"},{"id":"441731","messageId":"patch-2.2-9b8a3f0cdc4-20211119T135343Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com","subject":"[PATCH 2/2] CI: rename the \"Linux32\" job to lower-case \"linux32\"","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-19T13:56:07Z","receivedAt":"2021-11-19T13:56:22Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"As a follow-up to the preceding commit's shortening of CI job names,\nrename the only job that starts with an upper-case letter to be\nconsistent with the rest. It was added in 88dedd5e72c (Travis: also\ntest on 32-bit Linux, 2017-03-05).\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml        | 2 +-\n .travis.yml                       | 2 +-\n ci/install-docker-dependencies.sh | 2 +-\n ci/lib.sh                         | 2 +-\n ci/run-docker-build.sh            | 2 +-\n ci/run-docker.sh                  | 2 +-\n 6 files changed, 6 insertions(+), 6 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 8f4caa8f040..9c4af979559 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -267,7 +267,7 @@ jobs:\n         - jobname: linux-musl\n           os: alpine\n           image: alpine\n-        - jobname: Linux32\n+        - jobname: linux32\n           os: ubuntu32\n           image: daald/ubuntu32:xenial\n         - jobname: pedantic\ndiff --git a/.travis.yml b/.travis.yml\nindex 908330a0a3d..73f983776c7 100644\n--- a/.travis.yml\n+++ b/.travis.yml\n@@ -25,7 +25,7 @@ matrix:\n       os: linux\n       dist: trusty\n       compiler:\n-    - env: jobname=Linux32\n+    - env: jobname=linux32\n       os: linux\n       compiler:\n       addons:\ndiff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh\nindex 07a8c6b199d..78b7e326da6 100755\n--- a/ci/install-docker-dependencies.sh\n+++ b/ci/install-docker-dependencies.sh\n@@ -4,7 +4,7 @@\n #\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tlinux32 --32bit i386 sh -c '\n \t\tapt update >/dev/null &&\n \t\tapt install -y build-essential libcurl4-openssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 82cb17f8eea..83c2e08be79 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -222,7 +222,7 @@ osx-clang|osx-gcc)\n \t;;\n linux-gcc-default)\n \t;;\n-Linux32)\n+linux32)\n \tCC=gcc\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 8d47a5fda3b..886fa33e148 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -15,7 +15,7 @@ then\n fi\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tswitch_cmd=\"linux32 --32bit i386\"\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex 37fa372052d..6663d56ade6 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -6,7 +6,7 @@\n . ${0%/*}/lib.sh\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tCI_CONTAINER=\"daald/ubuntu32:xenial\"\n \t;;\n linux-musl)\n-- \n2.34.0.823.g5753b56b5c1\n\n"},{"id":"441742","messageId":"YZe7ZhGbLIh4I18e@coredump.intra.peff.net","threadId":"56942","inReplyTo":"patch-2.2-9b8a3f0cdc4-20211119T135343Z-avarab@gmail.com","subject":"Re: [PATCH 2/2] CI: rename the \"Linux32\" job to lower-case \"linux32\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2021-11-19T14:57:42Z","receivedAt":"2021-11-19T14:57:45Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Nov 19, 2021 at 02:56:07PM +0100, Ævar Arnfjörð Bjarmason wrote:\n\n> As a follow-up to the preceding commit's shortening of CI job names,\n> rename the only job that starts with an upper-case letter to be\n> consistent with the rest. It was added in 88dedd5e72c (Travis: also\n> test on 32-bit Linux, 2017-03-05).\n\nThis makes sense, though I had to wonder...\n\n>  .travis.yml                       | 2 +-\n\nIs this travis file even still useful? With travis-ci.org shutting down\nlast summer, I would think nobody is triggering these builds anymore.\n\nNot a blocker, obviously, but maybe a possible cleanup on top.\n\n-Peff\n"},{"id":"441743","messageId":"nycvar.QRO.7.76.6.2111191556001.63@tvgsbejvaqbjf.bet","threadId":"56942","inReplyTo":"patch-1.2-26f80c87c8d-20211119T135343Z-avarab@gmail.com","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2021-11-19T14:58:28Z","receivedAt":"2021-11-19T14:58:38Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 19 Nov 2021, Ævar Arnfjörð Bjarmason wrote:\n\n> Change the names used for the GitHub CI workflows to be short enough\n> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n> commit view. I.e. when mouse-clicking on the passing or failing\n> check-mark next to the commit subject.\n>\n> That description is truncated to 24 characters, with the 3 at the end\n> being placed by \"...\".\n>\n> E.g. the full job name (visible at [1]):\n>\n>     \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n>\n> Will, when shown in the tool-tip be truncated to:\n>\n>     \"CI/PR / regular (linu...\"\n>\n> There's then a further limit in the expanded view where the job names\n> are observably truncated to 44 characters (including \"...\"). I.e.:\n>\n>     \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n>\n> With this change we shorten both the job names, and change the\n> top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n> prefix in the tooltips. We also remove redundant or superfluous\n> information from the name, e.g. \"ubuntu-latest\" isn't really needed\n> for \"linux-leaks\", it'll suffice to say linux. For discovering what\n> image runs that specifically we can consult main.yml itself.\n>\n> The above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\n> then becomes a 1=1 match to the \"$jobname\" used in\n> \"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\n> added implicitly as before (from the top-level \"on\" parameter in\n> \"main.yml\"). In the tooltip we'll now show:\n>\n>     \"CI / linux-leaks (pu...\"\n>\n> We then have no truncation in the expanded view. See [2] for a\n> currently visible CI run using this commit, and [3] for the GitHub\n> workflow syntax involved being changed here.\n>\n> We could avoid even more truncation with more compact names,\n> e.g. changing \"linux\" to \"lin\" or \"lnx\", but I didn't do that since\n> any additional shortening seemed counterproductive, i.e. \"w32\" is a\n> well-known way of referring to \"Windows\", but \"lin\" isn't). We could\n> also shorten e.g. \"::build\" and \"::test\" to \"+bld\" and \"+tst\", but\n> those seem similarly to be overly obtuse.\n>\n> 1. https://github.com/git/git/tree/master/\n> 2. https://github.com/avar/git/tree/avar/ci-shorter-names\n> 3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n>\n> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n\nMy vote is to drop this patch: it does a lot of things, but I do not see\nany benefit. Names that are too long in one person's setup are not too\nlong in another one's.\n\nAlso, it drops the \"PR\" as if we would not do PR builds at all anymore\n(\"CI\" is for \"Continuous Integration\", i.e. the testing of the current\n`main` branch).\n\nAnd `w32`? Really? *Really*?\n\nCiao,\nJohannes\n\n> ---\n>  .github/workflows/main.yml | 13 ++++++++++++-\n>  README.md                  |  2 +-\n>  2 files changed, 13 insertions(+), 2 deletions(-)\n>\n> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> index 6ed6a9e8076..8f4caa8f040 100644\n> --- a/.github/workflows/main.yml\n> +++ b/.github/workflows/main.yml\n> @@ -1,4 +1,4 @@\n> -name: CI/PR\n> +name: CI\n>\n>  on: [push, pull_request]\n>\n> @@ -7,6 +7,7 @@ env:\n>\n>  jobs:\n>    ci-config:\n> +    name: config\n>      runs-on: ubuntu-latest\n>      outputs:\n>        enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n> @@ -77,6 +78,7 @@ jobs:\n>              }\n>\n>    windows-build:\n> +    name: w32::build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      runs-on: windows-latest\n> @@ -97,6 +99,7 @@ jobs:\n>          name: windows-artifacts\n>          path: artifacts\n>    windows-test:\n> +    name: w32::test\n>      runs-on: windows-latest\n>      needs: [windows-build]\n>      strategy:\n> @@ -127,6 +130,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    vs-build:\n> +    name: w32/VS::build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> @@ -178,6 +182,7 @@ jobs:\n>          name: vs-artifacts\n>          path: artifacts\n>    vs-test:\n> +    name: w32/VS::test\n>      runs-on: windows-latest\n>      needs: vs-build\n>      strategy:\n> @@ -210,6 +215,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    regular:\n> +    name: ${{matrix.vector.jobname}}\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -251,6 +257,7 @@ jobs:\n>          name: failed-tests-${{matrix.vector.jobname}}\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    dockerized:\n> +    name: ${{matrix.vector.jobname}} (docker)\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -258,10 +265,13 @@ jobs:\n>        matrix:\n>          vector:\n>          - jobname: linux-musl\n> +          os: alpine\n>            image: alpine\n>          - jobname: Linux32\n> +          os: ubuntu32\n>            image: daald/ubuntu32:xenial\n>          - jobname: pedantic\n> +          os: fedora\n>            image: fedora\n>      env:\n>        jobname: ${{matrix.vector.jobname}}\n> @@ -310,6 +320,7 @@ jobs:\n>        run: ci/install-dependencies.sh\n>      - run: make sparse\n>    documentation:\n> +    name: documentation\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> diff --git a/README.md b/README.md\n> index eb8115e6b04..f6f43e78deb 100644\n> --- a/README.md\n> +++ b/README.md\n> @@ -1,4 +1,4 @@\n> -[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n> +[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n>\n>  Git - fast, scalable, distributed revision control system\n>  =========================================================\n> --\n> 2.34.0.823.g5753b56b5c1\n>\n>\n>\n"},{"id":"441744","messageId":"YZe8tXc3rT18KF1M@coredump.intra.peff.net","threadId":"56942","inReplyTo":"cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com","subject":"Re: [PATCH 0/2] CI: use shorter names for CI jobs, less truncation","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2021-11-19T15:03:17Z","receivedAt":"2021-11-19T15:03:26Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Nov 19, 2021 at 02:56:05PM +0100, Ævar Arnfjörð Bjarmason wrote:\n\n> This changes the names used in GitHub CI to be shorter, because the\n> current ones are so long that they overflow the pop-up tooltips in the\n> GitHub UI.\n> \n> New pop-up visible at: https://github.com/avar/git/tree/avar/ci-shorter-names\n> \n> Full CI run at (currently pending, I had a trivial last-minute\n> update):\n> https://github.com/avar/git/runs/4264929546?check_suite_focus=true\n\nThanks for giving examples. I don't have a strong opinion on the first\npatch, as I never look at those pop-ups anyway. ;) It does also shorten\nthe names in the main \"runs\" page, where we had room to show them fully.\n\nTo my mind, \"linux-gcc\", etc, are more readable than \"regular\n(linux-gcc, gcc, ubuntu-latest)\", and that's a strict improvement. \"w32\"\nversus \"windows\" is less obviously good, but I'm OK with it if the\nshortness is important in some contexts.\n\n-Peff\n"},{"id":"441752","messageId":"b9da6658-2b00-cc13-e1ae-124d8222dab8@github.com","threadId":"56942","inReplyTo":"patch-1.2-26f80c87c8d-20211119T135343Z-avarab@gmail.com","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Victoria Dye","fromEmail":"vdye@github.com","sentAt":"2021-11-19T16:02:53Z","receivedAt":"2021-11-19T16:03:00Z","isPatch":true,"sender":{"key":"vdye@github.com","avatar":"https://avatars.githubusercontent.com/u/3619353?v=4"},"body":"Ævar Arnfjörð Bjarmason wrote:\n> Change the names used for the GitHub CI workflows to be short enough\n> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n> commit view. I.e. when mouse-clicking on the passing or failing\n> check-mark next to the commit subject.\n> \n> That description is truncated to 24 characters, with the 3 at the end\n> being placed by \"...\".\n> \n> E.g. the full job name (visible at [1]):\n> \n>     \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n> \n> Will, when shown in the tool-tip be truncated to:\n> \n>     \"CI/PR / regular (linu...\"\n> \n> There's then a further limit in the expanded view where the job names\n> are observably truncated to 44 characters (including \"...\"). I.e.:\n> \n>     \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n> \n\nTooltips like the ones you've pointed out here appear intended to be an \"at\na glance\" view of the jobs (mostly for showing pass/fail/skip status) - each\njob in the tooltip has a \"Details\" link that takes you to the job summary\nand logs. In the current state, although the names of the are truncated in\nthe tooltip, the information is still easily accessible in the full workflow\ndetails (one click away). For example, the details for the \"linux-leaks\" job\n[1] tell me the image, compiler, and job name right at the top of the page.\n\n[1] https://github.com/git/git/runs/4214606314?check_suite_focus=true\n\n> With this change we shorten both the job names, and change the\n> top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n> prefix in the tooltips. We also remove redundant or superfluous\n> information from the name, e.g. \"ubuntu-latest\" isn't really needed\n> for \"linux-leaks\", it'll suffice to say linux. For discovering what\n> image runs that specifically we can consult main.yml itself.\n> \n\nBy optimizing for the tooltip, this patch shortens names to the point that\nthey're more difficult to interpret (w32 vs. w32/VS) and/or removes valuable\ncontext about platform/image/etc. When a user *does* want more information\non the job, they now have to: \n\n1) know that the \"CI/PR\" job definition is in \".github/workflows/main.yml\"\n2) parse through the file to find the job they want\n3) correlate that back to the job in the workflow details they're\n   investigating. \n\nThat's a strictly worse experience for an extremely common use-case. What\nuse-case is this patch attempting to improve?\n\n> The above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\n> then becomes a 1=1 match to the \"$jobname\" used in\n> \"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\n> added implicitly as before (from the top-level \"on\" parameter in\n> \"main.yml\"). In the tooltip we'll now show:\n> \n>     \"CI / linux-leaks (pu...\"\n> \n> We then have no truncation in the expanded view. See [2] for a\n> currently visible CI run using this commit, and [3] for the GitHub\n> workflow syntax involved being changed here.\n> \n\nIf the only problem this patch really \"solves\" is making some job names fit\na bit better into the tooltip and, I think the costs (namely the loss of\naccessible contextual info) outweigh any potential benefits you gain. \n\n> We could avoid even more truncation with more compact names,\n> e.g. changing \"linux\" to \"lin\" or \"lnx\", but I didn't do that since\n> any additional shortening seemed counterproductive, i.e. \"w32\" is a\n> well-known way of referring to \"Windows\", but \"lin\" isn't). We could\n> also shorten e.g. \"::build\" and \"::test\" to \"+bld\" and \"+tst\", but\n> those seem similarly to be overly obtuse.\n> \n> 1. https://github.com/git/git/tree/master/\n> 2. https://github.com/avar/git/tree/avar/ci-shorter-names\n> 3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n> \n> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>> ---\n>  .github/workflows/main.yml | 13 ++++++++++++-\n>  README.md                  |  2 +-\n>  2 files changed, 13 insertions(+), 2 deletions(-)\n> \n> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> index 6ed6a9e8076..8f4caa8f040 100644\n> --- a/.github/workflows/main.yml\n> +++ b/.github/workflows/main.yml\n> @@ -1,4 +1,4 @@\n> -name: CI/PR\n> +name: CI\n>  \n>  on: [push, pull_request]\n>  \n> @@ -7,6 +7,7 @@ env:\n>  \n>  jobs:\n>    ci-config:\n> +    name: config\n>      runs-on: ubuntu-latest\n>      outputs:\n>        enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n> @@ -77,6 +78,7 @@ jobs:\n>              }\n>  \n>    windows-build:\n> +    name: w32::build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      runs-on: windows-latest\n> @@ -97,6 +99,7 @@ jobs:\n>          name: windows-artifacts\n>          path: artifacts\n>    windows-test:\n> +    name: w32::test\n>      runs-on: windows-latest\n>      needs: [windows-build]\n>      strategy:\n> @@ -127,6 +130,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    vs-build:\n> +    name: w32/VS::build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> @@ -178,6 +182,7 @@ jobs:\n>          name: vs-artifacts\n>          path: artifacts\n>    vs-test:\n> +    name: w32/VS::test\n>      runs-on: windows-latest\n>      needs: vs-build\n>      strategy:\n> @@ -210,6 +215,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    regular:\n> +    name: ${{matrix.vector.jobname}}\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -251,6 +257,7 @@ jobs:\n>          name: failed-tests-${{matrix.vector.jobname}}\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    dockerized:\n> +    name: ${{matrix.vector.jobname}} (docker)\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -258,10 +265,13 @@ jobs:\n>        matrix:\n>          vector:\n>          - jobname: linux-musl\n> +          os: alpine\n>            image: alpine\n>          - jobname: Linux32\n> +          os: ubuntu32\n>            image: daald/ubuntu32:xenial\n>          - jobname: pedantic\n> +          os: fedora\n>            image: fedora\n>      env:\n>        jobname: ${{matrix.vector.jobname}}\n> @@ -310,6 +320,7 @@ jobs:\n>        run: ci/install-dependencies.sh\n>      - run: make sparse\n>    documentation:\n> +    name: documentation\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> diff --git a/README.md b/README.md\n> index eb8115e6b04..f6f43e78deb 100644\n> --- a/README.md\n> +++ b/README.md\n> @@ -1,4 +1,4 @@\n> -[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n> +[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n>  \n>  Git - fast, scalable, distributed revision control system\n>  =========================================================\n> \n\n"},{"id":"441778","messageId":"xmqqbl2fq5oa.fsf@gitster.g","threadId":"56942","inReplyTo":"cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com","subject":"Re: [PATCH 0/2] CI: use shorter names for CI jobs, less truncation","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-11-19T19:57:57Z","receivedAt":"2021-11-19T19:58:05Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n\n> This changes the names used in GitHub CI to be shorter, because the\n> current ones are so long that they overflow the pop-up tooltips in the\n> GitHub UI.\n>\n> New pop-up visible at: https://github.com/avar/git/tree/avar/ci-shorter-names\n>\n> Full CI run at (currently pending, I had a trivial last-minute\n> update):\n> https://github.com/avar/git/runs/4264929546?check_suite_focus=true\n\nI have found the labels on \"Jobs\" on the left hand side pane\nirritatingly unhelpful.  For example, \"regular (linux-gcc-default,\ngcc...\"  does not tell me much about how it is different from\n\"regular (linux-gcc, gcc, ubunt...\".\n\nThe question I ask most often is \"which one of these ones is the job\nthat runs tests twice, the second time with nonstandard settings?\",\nor \"Only windows-test(4) is failing, but not vs-test(4); what area\ndid we break?  What is in (4)?\".\n\nI do not think relabelling \"windows\" -> \"w32\" (why not \"win\", by the\nway?), \"vs\" -> \"w32/VS\", or \"regular (\\(.*\\))\" -> \"\\1\" helps me very\nmuch in these questions.  I however think the blame for it lies\nmostly on the original naming, not your effort in this series.\n\nThe job that is now called \"linux-leaks\" used to be \"regular\n(linux-leaks, gcc, ubu...\", and there definitely is an improvement,\nso \"regular (\\(.*\\))\" -> \"\\1\" could help if the original was named\nproperly.  It is easier to spot what the job is about for that\nparticular one.\n\nI find this of mixed value, ranging from \"Meh\" to \"Hmm...nice?\".\n"},{"id":"441787","messageId":"211119.86czmv3mow.gmgdl@evledraar.gmail.com","threadId":"56942","inReplyTo":"b9da6658-2b00-cc13-e1ae-124d8222dab8@github.com","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-19T20:33:40Z","receivedAt":"2021-11-19T20:39:01Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Nov 19 2021, Victoria Dye wrote:\n\n> Ævar Arnfjörð Bjarmason wrote:\n>> Change the names used for the GitHub CI workflows to be short enough\n>> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n>> commit view. I.e. when mouse-clicking on the passing or failing\n>> check-mark next to the commit subject.\n>> \n>> That description is truncated to 24 characters, with the 3 at the end\n>> being placed by \"...\".\n>> \n>> E.g. the full job name (visible at [1]):\n>> \n>>     \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n>> \n>> Will, when shown in the tool-tip be truncated to:\n>> \n>>     \"CI/PR / regular (linu...\"\n>> \n>> There's then a further limit in the expanded view where the job names\n>> are observably truncated to 44 characters (including \"...\"). I.e.:\n>> \n>>     \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n>> \n>\n> Tooltips like the ones you've pointed out here appear intended to be an \"at\n> a glance\" view of the jobs (mostly for showing pass/fail/skip status) - each\n> job in the tooltip has a \"Details\" link that takes you to the job summary\n> and logs. In the current state, although the names of the are truncated in\n> the tooltip, the information is still easily accessible in the full workflow\n> details (one click away). For example, the details for the \"linux-leaks\" job\n> [1] tell me the image, compiler, and job name right at the top of the page.\n>\n> [1] https://github.com/git/git/runs/4214606314?check_suite_focus=true\n>\n>> With this change we shorten both the job names, and change the\n>> top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n>> prefix in the tooltips. We also remove redundant or superfluous\n>> information from the name, e.g. \"ubuntu-latest\" isn't really needed\n>> for \"linux-leaks\", it'll suffice to say linux. For discovering what\n>> image runs that specifically we can consult main.yml itself.\n>> \n>\n> By optimizing for the tooltip, this patch shortens names to the point that\n> they're more difficult to interpret (w32 vs. w32/VS) and/or removes valuable\n> context about platform/image/etc. When a user *does* want more information\n> on the job, they now have to: \n>\n> 1) know that the \"CI/PR\" job definition is in \".github/workflows/main.yml\"\n> 2) parse through the file to find the job they want\n> 3) correlate that back to the job in the workflow details they're\n>    investigating. \n>\n> That's a strictly worse experience for an extremely common use-case. What\n> use-case is this patch attempting to improve?\n\nThat I can click on the button that your co-workers implemented and see\nthe relevant information about the job :)\n\nGiven that it's truncated we need to pick and choose what we display if\nwe're not going to force the user to have to go to the full view every\ntime.\n\nI'll change s/w32/win/ etc, and there's room to move stuff around here,\nbut I think it's fine to just not display that it's e.g. \"ubuntu\" or\n\"fedora\" at all. That's almost never been relevant.\n\nIf we were trying to do the opposite and lengthen the names to shove\nevery bit of useful information in there at a glance I can think of 5-10\nthings we'd put there before \"fedora\". libc/version, compiler/version,\nkernel/version etc.\n\nWhether it's a recent Gentoo or Ubuntu is something that's OK to omit.\n\nBut maybe I'm wrong, are there cases you can think of where we really\nneed \"ubuntu\" or \"fedora\" etc.?\n\n>> The above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\n>> then becomes a 1=1 match to the \"$jobname\" used in\n>> \"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\n>> added implicitly as before (from the top-level \"on\" parameter in\n>> \"main.yml\"). In the tooltip we'll now show:\n>> \n>>     \"CI / linux-leaks (pu...\"\n>> \n>> We then have no truncation in the expanded view. See [2] for a\n>> currently visible CI run using this commit, and [3] for the GitHub\n>> workflow syntax involved being changed here.\n>> \n>\n> If the only problem this patch really \"solves\" is making some job names fit\n> a bit better into the tooltip and, I think the costs (namely the loss of\n> accessible contextual info) outweigh any potential benefits you gain. \n\nYeah it's a trade-off for sure, but now you can't see some of the\nrelevant information at all in some views, so it's a gain for\naccessibility too.\n"},{"id":"441788","messageId":"211119.868rxj3mc9.gmgdl@evledraar.gmail.com","threadId":"56942","inReplyTo":"nycvar.QRO.7.76.6.2111191556001.63@tvgsbejvaqbjf.bet","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-19T20:39:03Z","receivedAt":"2021-11-19T20:46:37Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Nov 19 2021, Johannes Schindelin wrote:\n\n> On Fri, 19 Nov 2021, Ævar Arnfjörð Bjarmason wrote:\n>\n>> Change the names used for the GitHub CI workflows to be short enough\n>> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n>> commit view. I.e. when mouse-clicking on the passing or failing\n>> check-mark next to the commit subject.\n>>\n>> That description is truncated to 24 characters, with the 3 at the end\n>> being placed by \"...\".\n>>\n>> E.g. the full job name (visible at [1]):\n>>\n>>     \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n>>\n>> Will, when shown in the tool-tip be truncated to:\n>>\n>>     \"CI/PR / regular (linu...\"\n>>\n>> There's then a further limit in the expanded view where the job names\n>> are observably truncated to 44 characters (including \"...\"). I.e.:\n>>\n>>     \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n>>\n>> With this change we shorten both the job names, and change the\n>> top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n>> prefix in the tooltips. We also remove redundant or superfluous\n>> information from the name, e.g. \"ubuntu-latest\" isn't really needed\n>> for \"linux-leaks\", it'll suffice to say linux. For discovering what\n>> image runs that specifically we can consult main.yml itself.\n>>\n>> The above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\n>> then becomes a 1=1 match to the \"$jobname\" used in\n>> \"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\n>> added implicitly as before (from the top-level \"on\" parameter in\n>> \"main.yml\"). In the tooltip we'll now show:\n>>\n>>     \"CI / linux-leaks (pu...\"\n>>\n>> We then have no truncation in the expanded view. See [2] for a\n>> currently visible CI run using this commit, and [3] for the GitHub\n>> workflow syntax involved being changed here.\n>>\n>> We could avoid even more truncation with more compact names,\n>> e.g. changing \"linux\" to \"lin\" or \"lnx\", but I didn't do that since\n>> any additional shortening seemed counterproductive, i.e. \"w32\" is a\n>> well-known way of referring to \"Windows\", but \"lin\" isn't). We could\n>> also shorten e.g. \"::build\" and \"::test\" to \"+bld\" and \"+tst\", but\n>> those seem similarly to be overly obtuse.\n>>\n>> 1. https://github.com/git/git/tree/master/\n>> 2. https://github.com/avar/git/tree/avar/ci-shorter-names\n>> 3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n>>\n>> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n>\n> My vote is to drop this patch: it does a lot of things, but I do not see\n> any benefit. Names that are too long in one person's setup are not too\n> long in another one's.\n\nWhat person's setup are we talking about here? Satya Nadella's? :)\n\nThis isn't a terminal I resized, it's your employer's website.\n\nFrom the browsers I've tried (Firefox, Chrome, logged in & out) it's the\nsame for everyone. \n\nDo you not see the existing labels truncated in the same way?\n\n> Also, it drops the \"PR\" as if we would not do PR builds at all anymore\n> (\"CI\" is for \"Continuous Integration\", i.e. the testing of the current\n> `main` branch).\n\nI think \"CI\" is commonly understood to not mean that these days. It's\njust \"the test thing that runs on push\" to most people. Is anyone\nconfused that CI is running in their topic branch without a merge back\nto mainline?\n\nWhat's the potential for confusion here? Do you really need to see \"CI /\nPR\" there to be assured that the thing you're looking at running is\nactually running?\n\nI dropped it because omitting the \" / PR\" is worth it not truncate the\nactual meaningful info that comes after, e.g. showing both of\n\"linux-gcc\"and \"linux-leaks\" as \"linu...\" or whatever.\n\n> And `w32`? Really? *Really*?\n\nI didn't know what to pick there, \"win\" was suggested in a side-thread.\n\nFWIW I just ran \"find\" on some repos that I've got checked out locally\nof various software, many of which had something-w32.c, or a w32\ndirectory, even if that software is obviously targeting Windows 64 bit\nthese days.\n\nI thought it was like how my kernel says I'm running an \"amd64\", even\nthough it's an Intel :)\n"},{"id":"441789","messageId":"211119.864k873lv8.gmgdl@evledraar.gmail.com","threadId":"56942","inReplyTo":"xmqqbl2fq5oa.fsf@gitster.g","subject":"Re: [PATCH 0/2] CI: use shorter names for CI jobs, less truncation","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-19T20:48:07Z","receivedAt":"2021-11-19T20:56:47Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Nov 19 2021, Junio C Hamano wrote:\n\n> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n>\n>> This changes the names used in GitHub CI to be shorter, because the\n>> current ones are so long that they overflow the pop-up tooltips in the\n>> GitHub UI.\n>>\n>> New pop-up visible at: https://github.com/avar/git/tree/avar/ci-shorter-names\n>>\n>> Full CI run at (currently pending, I had a trivial last-minute\n>> update):\n>> https://github.com/avar/git/runs/4264929546?check_suite_focus=true\n>\n> I have found the labels on \"Jobs\" on the left hand side pane\n> irritatingly unhelpful.  For example, \"regular (linux-gcc-default,\n> gcc...\"  does not tell me much about how it is different from\n> \"regular (linux-gcc, gcc, ubunt...\".\n\nYeah, I've needed to look it up most times..\n\n> The question I ask most often is \"which one of these ones is the job\n> that runs tests twice, the second time with nonstandard settings?\",\n> or \"Only windows-test(4) is failing, but not vs-test(4); what area\n> did we break?  What is in (4)?\".\n\nBecause I had to look: It's a splitting method Johannes came up with,\nfirst stat() all the tests, sort by size, then chunk them up, and use\nthe Nth as a way of dividing those chunks.\n\nMaybe he feels strongly about it, but I think a better approach is just\nto hardcode t0xxx, t1xxx or whatever, then if one is unusually slow have\na t1[0-4]xx & t1[5-9]xx or whatever, I.e. just manually partition them\nas a one-off.\n\nThese jobs take ~30m anyway, so if one is a tad slower than another it\ndoesn't really matter as much as seeing at a glance where in the test\nsuite the failure is.\n\nI nicely split these all up in a follow-up, along with removing the\ntravis CI, but anticipated the usual objections about too much of a\nscatterbrain series.\n\nBut yeah, I think all of that would be great to have, I can submit that\nas a v2, sound goood?\n\nAFAICT the whole \"stick this all into one job\" way of doing the\nGIT_TEST_* CI is a workaround for some Travis-specific thing.\n\nOr a micro-optimization for trying to max out our total CPU time, but\nanyway it doesn't seem worth it. By far most of the time is spent in the\ntests themselves, not the build.\n\nA WIP split I had of this, e.g. there's a linux-sha256 job,\nlinux-TEST-vars for the big GIT_TEST_* accumulation etc:\nhttps://github.com/avar/git/runs/4265312207?check_suite_focus=true\n\nWe could (and I'd like to..., but not now) cache the build directory\nbetween runs. Much faster compilations, and if it breaks, well then our\nMakefile dependencies are broken, which is also nice to spot in CI (and\nthe cachewillexpire) ...\n\n> I do not think relabelling \"windows\" -> \"w32\" (why not \"win\", by the\n> way?), \"vs\" -> \"w32/VS\", or \"regular (\\(.*\\))\" -> \"\\1\" helps me very\n> much in these questions.  I however think the blame for it lies\n> mostly on the original naming, not your effort in this series.\n\nI'll pick \"win\" next time, as noted in some other follow-up replies.\n"},{"id":"441796","messageId":"8efbd4bd-09bc-eabd-37ea-53501f75f8a6@github.com","threadId":"56942","inReplyTo":"211119.86czmv3mow.gmgdl@evledraar.gmail.com","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Victoria Dye","fromEmail":"vdye@github.com","sentAt":"2021-11-19T21:55:11Z","receivedAt":"2021-11-19T21:55:15Z","isPatch":true,"sender":{"key":"vdye@github.com","avatar":"https://avatars.githubusercontent.com/u/3619353?v=4"},"body":"Ævar Arnfjörð Bjarmason wrote:\n> \n> On Fri, Nov 19 2021, Victoria Dye wrote:\n> \n>> Ævar Arnfjörð Bjarmason wrote:\n>>> Change the names used for the GitHub CI workflows to be short enough\n>>> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n>>> commit view. I.e. when mouse-clicking on the passing or failing\n>>> check-mark next to the commit subject.\n>>>\n>>> That description is truncated to 24 characters, with the 3 at the end\n>>> being placed by \"...\".\n>>>\n>>> E.g. the full job name (visible at [1]):\n>>>\n>>>     \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n>>>\n>>> Will, when shown in the tool-tip be truncated to:\n>>>\n>>>     \"CI/PR / regular (linu...\"\n>>>\n>>> There's then a further limit in the expanded view where the job names\n>>> are observably truncated to 44 characters (including \"...\"). I.e.:\n>>>\n>>>     \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n>>>\n>>\n>> Tooltips like the ones you've pointed out here appear intended to be an \"at\n>> a glance\" view of the jobs (mostly for showing pass/fail/skip status) - each\n>> job in the tooltip has a \"Details\" link that takes you to the job summary\n>> and logs. In the current state, although the names of the are truncated in\n>> the tooltip, the information is still easily accessible in the full workflow\n>> details (one click away). For example, the details for the \"linux-leaks\" job\n>> [1] tell me the image, compiler, and job name right at the top of the page.\n>>\n>> [1] https://github.com/git/git/runs/4214606314?check_suite_focus=true\n>>\n>>> With this change we shorten both the job names, and change the\n>>> top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n>>> prefix in the tooltips. We also remove redundant or superfluous\n>>> information from the name, e.g. \"ubuntu-latest\" isn't really needed\n>>> for \"linux-leaks\", it'll suffice to say linux. For discovering what\n>>> image runs that specifically we can consult main.yml itself.\n>>>\n>>\n>> By optimizing for the tooltip, this patch shortens names to the point that\n>> they're more difficult to interpret (w32 vs. w32/VS) and/or removes valuable\n>> context about platform/image/etc. When a user *does* want more information\n>> on the job, they now have to: \n>>\n>> 1) know that the \"CI/PR\" job definition is in \".github/workflows/main.yml\"\n>> 2) parse through the file to find the job they want\n>> 3) correlate that back to the job in the workflow details they're\n>>    investigating. \n>>\n>> That's a strictly worse experience for an extremely common use-case. What\n>> use-case is this patch attempting to improve?\n> \n> That I can click on the button that your co-workers implemented and see\n> the relevant information about the job :)\n> \n\nI'm sure you meant this in good faith, but I don't see how where I work is\nrelevant. GitHub is a tool you can use to develop Git, and I'm reviewing\nbecause this patch would affect how I work on Git.\n\n> Given that it's truncated we need to pick and choose what we display if\n> we're not going to force the user to have to go to the full view every\n> time.\n> \n\nThis is what I wanted to dig into by asking for a use-case. Which users do\nyou expect are using this tooltip view so heavily that what's displayed\nthere justifies this change? If you're one of those users, then waiting for\nmore feedback on this patch will hopefully provide a better idea of what the\n\"average\" user finds helpful.\n\n> I'll change s/w32/win/ etc, and there's room to move stuff around here,\n> but I think it's fine to just not display that it's e.g. \"ubuntu\" or\n> \"fedora\" at all. That's almost never been relevant.\n> \n> If we were trying to do the opposite and lengthen the names to shove\n> every bit of useful information in there at a glance I can think of 5-10\n> things we'd put there before \"fedora\". libc/version, compiler/version,\n> kernel/version etc.\n> \n\nI'm sure there's plenty of information that would be helpful to have there;\nhowever, that's not really a justification for removing some of what we\nalready have.\n\n> Whether it's a recent Gentoo or Ubuntu is something that's OK to omit.\n> \n> But maybe I'm wrong, are there cases you can think of where we really\n> need \"ubuntu\" or \"fedora\" etc.?\n> \n\nYes, absolutely - knowing that `fedora-latest` was the image used in the\nfailing builds for v2.34.0-rc1 led to learning that the image was updated\nthe day before the build failed, which was instrumental in quickly\nidentifying the root cause of the bug [1]. In that case, I got the\ninformation to start debugging from the web UI, *not* from digging into\n`main.yml`. \n\nIn general, easily finding what image a CI job was built on can help with\ninvestigating bugs that arise from environmental differences. It's a minor\nquality-of-life improvement, but it's no less significant than the benefit\nyou're suggesting this patch provides.\n\n[1] https://lore.kernel.org/git/pull.1072.git.1635990465854.gitgitgadget@gmail.com/\n\n>>> The above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\n>>> then becomes a 1=1 match to the \"$jobname\" used in\n>>> \"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\n>>> added implicitly as before (from the top-level \"on\" parameter in\n>>> \"main.yml\"). In the tooltip we'll now show:\n>>>\n>>>     \"CI / linux-leaks (pu...\"\n>>>\n>>> We then have no truncation in the expanded view. See [2] for a\n>>> currently visible CI run using this commit, and [3] for the GitHub\n>>> workflow syntax involved being changed here.\n>>>\n>>\n>> If the only problem this patch really \"solves\" is making some job names fit\n>> a bit better into the tooltip and, I think the costs (namely the loss of\n>> accessible contextual info) outweigh any potential benefits you gain. \n> \n> Yeah it's a trade-off for sure, but now you can't see some of the\n> relevant information at all in some views, so it's a gain for\n> accessibility too.\n> \n\nIt may be a \"gain for accessibility\" in this one particular case but, in my\nopinion, the relative decrease in accessibility by outright removing\ninformation from the *all* CI views is greater. Of course, I don't represent\n*all* users, so I'm interested in hearing what others have to say. For now,\nthough, I'm still unconvinced this patch is beneficial. \n"},{"id":"441798","messageId":"xmqq35nrpzde.fsf@gitster.g","threadId":"56942","inReplyTo":"b9da6658-2b00-cc13-e1ae-124d8222dab8@github.com","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-11-19T22:14:05Z","receivedAt":"2021-11-19T22:14:11Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Victoria Dye <vdye@github.com> writes:\n\n> Tooltips like the ones you've pointed out here appear intended to be an \"at\n> a glance\" view of the jobs (mostly for showing pass/fail/skip status) - each\n> job in the tooltip has a \"Details\" link that takes you to the job summary\n> and logs. In the current state, although the names of the are truncated in\n> the tooltip, the information is still easily accessible in the full workflow\n> details (one click away). For example, the details for the \"linux-leaks\" job\n> [1] tell me the image, compiler, and job name right at the top of the page.\n\nWhile that is all true, if the truncated one does not allow viewers\nto easily tell between linux-leaks and linux-gcc and what these are\nabout, there is not much value to have the \"tooltips\" in the first\nplace.  The user will be forced to always visit the details, that\ndefeats the whole point of having an \"at a glance\" view.\n\n> By optimizing for the tooltip, this patch shortens names to the point that\n> they're more difficult to interpret (w32 vs. w32/VS) and/or removes valuable\n> context about platform/image/etc. When a user *does* want more information\n> on the job, they now have to: \n>\n> 1) know that the \"CI/PR\" job definition is in \".github/workflows/main.yml\"\n> 2) parse through the file to find the job they want\n> 3) correlate that back to the job in the workflow details they're\n>    investigating. \n\nThat is something I have to do with the current scheme, too.  I do\nnot think \"windows\" -> \"w32\" makes it much worse.\n\n> If the only problem this patch really \"solves\" is making some job names fit\n> a bit better into the tooltip and, I think the costs (namely the loss of\n> accessible contextual info) outweigh any potential benefits you gain. \n\nI think \"fits in the limited space\" is a mere approximation of what\nrenaming effort can achieve.  If we can cram what matters more in\nthe tight display space we have there, so that we do not have to go\nto the details page or to (eek!) the YAML file all the time, that\nwould be a welcome change.  Between \"vs-test (4)\" and \"w32/vs test\n(4)\", for example, I do not think there is much difference as both\nare equally opaque and I cannot guess what the particular job is\ntesting.  But if we can have a more informative label, \"at a glance\"\nview would become much more useful, no?\n\nHaving said that, I do agree with you that this iteration does a\nfairly poor job at it. The only thing that I found very much better\nin Ævar's sample run over the current one is the \"linux-leaks\" Job.\nAll the other changes were \"Meh\" to me.\n\nIf do you think \"what matters\" is purely personal taste, and we will\nnot be able to gain a concensus on which part of the whole string\n(before truncation) is more important, then it is a different story.\n"},{"id":"441828","messageId":"211120.86r1bb1q5a.gmgdl@evledraar.gmail.com","threadId":"56942","inReplyTo":"8efbd4bd-09bc-eabd-37ea-53501f75f8a6@github.com","subject":"Re: [PATCH 1/2] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T02:51:55Z","receivedAt":"2021-11-20T03:07:17Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Nov 19 2021, Victoria Dye wrote:\n\n> Ævar Arnfjörð Bjarmason wrote:\n>> \n>> On Fri, Nov 19 2021, Victoria Dye wrote:\n>> \n>>> Ævar Arnfjörð Bjarmason wrote:\n>>>> Change the names used for the GitHub CI workflows to be short enough\n>>>> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n>>>> commit view. I.e. when mouse-clicking on the passing or failing\n>>>> check-mark next to the commit subject.\n>>>>\n>>>> That description is truncated to 24 characters, with the 3 at the end\n>>>> being placed by \"...\".\n>>>>\n>>>> E.g. the full job name (visible at [1]):\n>>>>\n>>>>     \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n>>>>\n>>>> Will, when shown in the tool-tip be truncated to:\n>>>>\n>>>>     \"CI/PR / regular (linu...\"\n>>>>\n>>>> There's then a further limit in the expanded view where the job names\n>>>> are observably truncated to 44 characters (including \"...\"). I.e.:\n>>>>\n>>>>     \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n>>>>\n>>>\n>>> Tooltips like the ones you've pointed out here appear intended to be an \"at\n>>> a glance\" view of the jobs (mostly for showing pass/fail/skip status) - each\n>>> job in the tooltip has a \"Details\" link that takes you to the job summary\n>>> and logs. In the current state, although the names of the are truncated in\n>>> the tooltip, the information is still easily accessible in the full workflow\n>>> details (one click away). For example, the details for the \"linux-leaks\" job\n>>> [1] tell me the image, compiler, and job name right at the top of the page.\n>>>\n>>> [1] https://github.com/git/git/runs/4214606314?check_suite_focus=true\n>>>\n>>>> With this change we shorten both the job names, and change the\n>>>> top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n>>>> prefix in the tooltips. We also remove redundant or superfluous\n>>>> information from the name, e.g. \"ubuntu-latest\" isn't really needed\n>>>> for \"linux-leaks\", it'll suffice to say linux. For discovering what\n>>>> image runs that specifically we can consult main.yml itself.\n>>>>\n>>>\n>>> By optimizing for the tooltip, this patch shortens names to the point that\n>>> they're more difficult to interpret (w32 vs. w32/VS) and/or removes valuable\n>>> context about platform/image/etc. When a user *does* want more information\n>>> on the job, they now have to: \n>>>\n>>> 1) know that the \"CI/PR\" job definition is in \".github/workflows/main.yml\"\n>>> 2) parse through the file to find the job they want\n>>> 3) correlate that back to the job in the workflow details they're\n>>>    investigating. \n>>>\n>>> That's a strictly worse experience for an extremely common use-case. What\n>>> use-case is this patch attempting to improve?\n>> \n>> That I can click on the button that your co-workers implemented and see\n>> the relevant information about the job :)\n>> \n>\n> I'm sure you meant this in good faith, but I don't see how where I work is\n> relevant. GitHub is a tool you can use to develop Git, and I'm reviewing\n> because this patch would affect how I work on Git.\n\nYes, sorry. That came off as quite snarky, it was just meant as a lame\njoke.\n\n>> Given that it's truncated we need to pick and choose what we display if\n>> we're not going to force the user to have to go to the full view every\n>> time.\n>> \n>\n> This is what I wanted to dig into by asking for a use-case. Which users do\n> you expect are using this tooltip view so heavily that what's displayed\n> there justifies this change? If you're one of those users, then waiting for\n> more feedback on this patch will hopefully provide a better idea of what the\n> \"average\" user finds helpful.\n\nWill improve the description etc. in a re-roll.\n\n>> I'll change s/w32/win/ etc, and there's room to move stuff around here,\n>> but I think it's fine to just not display that it's e.g. \"ubuntu\" or\n>> \"fedora\" at all. That's almost never been relevant.\n>> \n>> If we were trying to do the opposite and lengthen the names to shove\n>> every bit of useful information in there at a glance I can think of 5-10\n>> things we'd put there before \"fedora\". libc/version, compiler/version,\n>> kernel/version etc.\n>> \n>\n> I'm sure there's plenty of information that would be helpful to have there;\n> however, that's not really a justification for removing some of what we\n> already have.\n\nI'll retain more information in an incoming re-roll.\n\n>> Whether it's a recent Gentoo or Ubuntu is something that's OK to omit.\n>> \n>> But maybe I'm wrong, are there cases you can think of where we really\n>> need \"ubuntu\" or \"fedora\" etc.?\n>> \n>\n> Yes, absolutely - knowing that `fedora-latest` was the image used in the\n> failing builds for v2.34.0-rc1 led to learning that the image was updated\n> the day before the build failed, which was instrumental in quickly\n> identifying the root cause of the bug [1]. In that case, I got the\n> information to start debugging from the web UI, *not* from digging into\n> `main.yml`. \n>\n> In general, easily finding what image a CI job was built on can help with\n> investigating bugs that arise from environmental differences. It's a minor\n> quality-of-life improvement, but it's no less significant than the benefit\n> you're suggesting this patch provides.\n>\n> [1] https://lore.kernel.org/git/pull.1072.git.1635990465854.gitgitgadget@gmail.com/\n\nI thought that case was a good example of us creating a problem for\nourselves that we didn't need to have. as I noted downthread in:\nhttps://lore.kernel.org/git/211104.86v918i78r.gmgdl@evledraar.gmail.com/\n\nI.e. the \"fedora\" part didn't actually matter, it just so happened that\nfedora had a relatively recent glibc/gcc, and when it was updated from\nunder us CI runs all over the place started failing.\n\nWhich is an issue that's entirely avoidable by pinning the dependency,\nand not using *-latest.\n\nIn general I really don't see why who deploys software anywhere thinks\nusing this pattern of fluid dependencies is worth the hassle. It's\nrather trivial to just run a cron script that bumps your dependencies,\ncommits and pushes.\n\nIt's not at all trivial to take software that downloads whatever\nsomeone's random website has available at the moment and try to figure\nout what state it was in last week, month or year when the state of that\nthird party website wasn't what it was today.\n\nAnyway, I take your general point that these image names (or a derived\nname) may be useful to someone somewhere.\n\nI just thought this example was a bad one, because the only reason the\nimage name or update would have been unclear to anyone (as it was to me\nwhen my CI started breaking due to this) is because we're using this\nanti-pattern.\n"},{"id":"441829","messageId":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com","subject":"[PATCH v2 0/6] CI: Remove Travis CI, shorten names for GH tooltips, split jobs","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:30Z","receivedAt":"2021-11-20T03:28:45Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"I thought I'd submit a smaller change to just address the GitHub CI\nname truncation in tooltips (now 2/6), but part of the feedback was\nwhy we needed to update Travis CI code, and can't we split up the\n\"default\" job etc.\n\nSo here's a larger series I'd initially peeled v1[1] from a WIP\nversion of.\n\nThe end-state is that the job names are shorter, and some are now\nsplit up, before:\n\n    https://github.com/git/git/runs/4214600139\n\nAfter:\n\n    https://github.com/avar/git/runs/4271369035\n\n1. https://lore.kernel.org/git/cover-0.2-00000000000-20211119T135343Z-avarab@gmail.com/\n\nÆvar Arnfjörð Bjarmason (6):\n  CI: remove Travis CI support\n  CI: use shorter names that fit in UX tooltips\n  CI: rename the \"Linux32\" job to lower-case \"linux32\"\n  CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n  CI: don't run \"make test\" twice in one job\n  CI: run \"documentation\" via run-build-and-test.sh\n\n .github/workflows/main.yml        | 44 ++++++++++++++++++++--\n .travis.yml                       | 60 ------------------------------\n README.md                         |  2 +-\n ci/install-dependencies.sh        | 35 ++++++++---------\n ci/install-docker-dependencies.sh |  2 +-\n ci/lib.sh                         | 62 ++++++++-----------------------\n ci/print-test-failures.sh         | 10 -----\n ci/run-build-and-tests.sh         | 47 +++++++++++++++--------\n ci/run-docker-build.sh            | 11 +-----\n ci/run-docker.sh                  |  4 +-\n ci/test-documentation.sh          | 39 ++++++++-----------\n 11 files changed, 123 insertions(+), 193 deletions(-)\n delete mode 100644 .travis.yml\n\nRange-diff against v1:\n-:  ----------- > 1:  cc94a353ccb CI: remove Travis CI support\n1:  26f80c87c8d ! 2:  73981cedee8 CI: use shorter names that fit in UX tooltips\n    @@ Commit message\n         commit view. I.e. when mouse-clicking on the passing or failing\n         check-mark next to the commit subject.\n     \n    -    That description is truncated to 24 characters, with the 3 at the end\n    -    being placed by \"...\".\n    -\n    -    E.g. the full job name (visible at [1]):\n    -\n    -        \"regular (linux-gcc-default, gcc, ubuntu-latest)\"\n    -\n    -    Will, when shown in the tool-tip be truncated to:\n    -\n    -        \"CI/PR / regular (linu...\"\n    -\n    -    There's then a further limit in the expanded view where the job names\n    -    are observably truncated to 44 characters (including \"...\"). I.e.:\n    -\n    -        \"regular (linux-gcc-default, gcc, ubuntu-l...\"\n    -\n    -    With this change we shorten both the job names, and change the\n    -    top-level \"name\" from \"CI/PR\" to \"CI\", since it will be used as a\n    -    prefix in the tooltips. We also remove redundant or superfluous\n    -    information from the name, e.g. \"ubuntu-latest\" isn't really needed\n    -    for \"linux-leaks\", it'll suffice to say linux. For discovering what\n    -    image runs that specifically we can consult main.yml itself.\n    -\n    -    The above \"regular (linux-gcc-default, gcc, ubuntu-latest)\" job name\n    -    then becomes a 1=1 match to the \"$jobname\" used in\n    -    \"ci/run-build-and-tests.sh\". A \"( push\" or \" (pull_request\" is then\n    -    added implicitly as before (from the top-level \"on\" parameter in\n    -    \"main.yml\"). In the tooltip we'll now show:\n    -\n    -        \"CI / linux-leaks (pu...\"\n    -\n    -    We then have no truncation in the expanded view. See [2] for a\n    -    currently visible CI run using this commit, and [3] for the GitHub\n    -    workflow syntax involved being changed here.\n    -\n    -    We could avoid even more truncation with more compact names,\n    -    e.g. changing \"linux\" to \"lin\" or \"lnx\", but I didn't do that since\n    -    any additional shortening seemed counterproductive, i.e. \"w32\" is a\n    -    well-known way of referring to \"Windows\", but \"lin\" isn't). We could\n    -    also shorten e.g. \"::build\" and \"::test\" to \"+bld\" and \"+tst\", but\n    -    those seem similarly to be overly obtuse.\n    +    These names are seemingly truncated to 17-20 characters followed by\n    +    three dots (\"...\"). Since a \"CI/PR / \" prefix is added to them the job\n    +    names looked like this before (windows-test and vs-test jobs omitted):\n    +\n    +        CI/PR / ci-config (p...\n    +        CI/PR / windows-buil...\n    +        CI/PR / vs-build (pu...\n    +        CI/PR / regular (lin...\n    +        CI/PR / regular (lin...\n    +        CI/PR / regular (os...\n    +        CI/PR / regular (os...\n    +        CI/PR / regular (lin...\n    +        CI/PR / regular (lin...\n    +        CI/PR / dockerized (...\n    +        CI/PR / dockerized (...\n    +        CI/PR / dockerized (...\n    +        CI/PR / static-anal...\n    +        CI/PR / sparse (pu...\n    +        CI/PR / documenta...\n    +\n    +    By omitting the \"/PR\" from the top-level name, and pushing the\n    +    $jobname to the front we'll now instead get:\n    +\n    +        CI / config (push)\n    +        CI / win build (push...\n    +        CI / win+VS build (...\n    +        CI / linux-clang (ub...\n    +        CI / linux-gcc (ubun...\n    +        CI / osx-clang (osx)...\n    +        CI / osx-gcc (osx) (...\n    +        CI / linux-gcc-defau...\n    +        CI / linux-leaks (ub...\n    +        CI / linux-musl (alp...\n    +        CI / Linux32 (daald/...\n    +        CI / pedantic (fedor...\n    +        CI / static-analysis...\n    +        CI / sparse (push)...\n    +        CI / documentation\n    +\n    +    We then have no truncation in the expanded view. See [1] for how it\n    +    looked before, [2] for a currently visible CI run using this commit,\n    +    and [3] for the GitHub workflow syntax involved being changed here.\n    +\n    +    Let's also add a field for the \"os\" and use it where appropriate, it's\n    +    occasionally useful to know we're running on say ubuntu\n    +    v.s. fedora (but the \"-latest\" suffix isn't very useful, that applies\n    +    to almost all the jobs.\n     \n         1. https://github.com/git/git/tree/master/\n    -    2. https://github.com/avar/git/tree/avar/ci-shorter-names\n    +    2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-2\n         3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n     \n         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n    @@ .github/workflows/main.yml: jobs:\n                  }\n      \n        windows-build:\n    -+    name: w32::build\n    ++    name: win build\n          needs: ci-config\n          if: needs.ci-config.outputs.enabled == 'yes'\n          runs-on: windows-latest\n    @@ .github/workflows/main.yml: jobs:\n              name: windows-artifacts\n              path: artifacts\n        windows-test:\n    -+    name: w32::test\n    ++    name: win test\n          runs-on: windows-latest\n          needs: [windows-build]\n          strategy:\n    @@ .github/workflows/main.yml: jobs:\n              name: failed-tests-windows\n              path: ${{env.FAILED_TEST_ARTIFACTS}}\n        vs-build:\n    -+    name: w32/VS::build\n    ++    name: win+VS build\n          needs: ci-config\n          if: needs.ci-config.outputs.enabled == 'yes'\n          env:\n    @@ .github/workflows/main.yml: jobs:\n              name: vs-artifacts\n              path: artifacts\n        vs-test:\n    -+    name: w32/VS::test\n    ++    name: win+VS test\n          runs-on: windows-latest\n          needs: vs-build\n          strategy:\n    @@ .github/workflows/main.yml: jobs:\n              name: failed-tests-windows\n              path: ${{env.FAILED_TEST_ARTIFACTS}}\n        regular:\n    -+    name: ${{matrix.vector.jobname}}\n    ++    name: ${{matrix.vector.jobname}} (${{matrix.vector.os}})\n          needs: ci-config\n          if: needs.ci-config.outputs.enabled == 'yes'\n          strategy:\n    +@@ .github/workflows/main.yml: jobs:\n    +         vector:\n    +           - jobname: linux-clang\n    +             cc: clang\n    ++            os: ubuntu\n    +             pool: ubuntu-latest\n    +           - jobname: linux-gcc\n    +             cc: gcc\n    ++            os: ubuntu\n    +             pool: ubuntu-latest\n    +           - jobname: osx-clang\n    +             cc: clang\n    ++            os: osx\n    +             pool: macos-latest\n    +           - jobname: osx-gcc\n    +             cc: gcc\n    ++            os: osx\n    +             pool: macos-latest\n    +           - jobname: linux-gcc-default\n    +             cc: gcc\n    ++            os: ubuntu\n    +             pool: ubuntu-latest\n    +           - jobname: linux-leaks\n    +             cc: gcc\n    ++            os: ubuntu\n    +             pool: ubuntu-latest\n    +     env:\n    +       CC: ${{matrix.vector.cc}}\n     @@ .github/workflows/main.yml: jobs:\n              name: failed-tests-${{matrix.vector.jobname}}\n              path: ${{env.FAILED_TEST_ARTIFACTS}}\n        dockerized:\n    -+    name: ${{matrix.vector.jobname}} (docker)\n    ++    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})\n          needs: ci-config\n          if: needs.ci-config.outputs.enabled == 'yes'\n          strategy:\n    -@@ .github/workflows/main.yml: jobs:\n    -       matrix:\n    -         vector:\n    -         - jobname: linux-musl\n    -+          os: alpine\n    -           image: alpine\n    -         - jobname: Linux32\n    -+          os: ubuntu32\n    -           image: daald/ubuntu32:xenial\n    -         - jobname: pedantic\n    -+          os: fedora\n    -           image: fedora\n    -     env:\n    -       jobname: ${{matrix.vector.jobname}}\n     @@ .github/workflows/main.yml: jobs:\n            run: ci/install-dependencies.sh\n          - run: make sparse\n2:  9b8a3f0cdc4 ! 3:  002c183fff4 CI: rename the \"Linux32\" job to lower-case \"linux32\"\n    @@ Commit message\n     \n      ## .github/workflows/main.yml ##\n     @@ .github/workflows/main.yml: jobs:\n    +         vector:\n              - jobname: linux-musl\n    -           os: alpine\n                image: alpine\n     -        - jobname: Linux32\n     +        - jobname: linux32\n    -           os: ubuntu32\n    ++          os: ubuntu32\n                image: daald/ubuntu32:xenial\n              - jobname: pedantic\n    -\n    - ## .travis.yml ##\n    -@@ .travis.yml: matrix:\n    -       os: linux\n    -       dist: trusty\n    -       compiler:\n    --    - env: jobname=Linux32\n    -+    - env: jobname=linux32\n    -       os: linux\n    -       compiler:\n    -       addons:\n    +           image: fedora\n     \n      ## ci/install-docker-dependencies.sh ##\n     @@\n-:  ----------- > 4:  eca0ad08d4b CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n-:  ----------- > 5:  a113b8404ed CI: don't run \"make test\" twice in one job\n-:  ----------- > 6:  7c423c8283d CI: run \"documentation\" via run-build-and-test.sh\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441830","messageId":"patch-v2-1.6-cc94a353ccb-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v2 1/6] CI: remove Travis CI support","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:31Z","receivedAt":"2021-11-20T03:28:48Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Remove support for running the CI in travis. The last builds in it are\nfrom 5 months ago[1] (as of 2021-11-19), and our documentation has\nreferred to GitHub CI instead since f003a91f5c5 (SubmittingPatches:\nreplace discussion of Travis with GitHub Actions, 2021-07-22).\n\nWe'll now run the \"t9810 t9816\" and tests on OSX. We didn't before, as\nwe'd carried the Travis exclusion of them forward from\n522354d70f4 (Add Travis CI support, 2015-11-27). Let's hope whatever\nissue there was with them was either Travis specific, or fixed since\nthen (I'm not sure).\n\nThe \"apt-add-repository\" invocation (which we were doing in GitHub CI)\nisn't needed, it was another Travis-only case that was carried forward\ninto more general code. See 0f0c51181df (travis-ci: install packages\nin 'ci/install-dependencies.sh', 2018-11-01).\n\n1. https://travis-ci.org/github/git/git/builds\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .travis.yml                | 60 --------------------------------------\n ci/install-dependencies.sh |  1 -\n ci/lib.sh                  | 37 ++---------------------\n ci/print-test-failures.sh  | 10 -------\n ci/run-docker-build.sh     |  9 ------\n ci/run-docker.sh           |  2 +-\n 6 files changed, 4 insertions(+), 115 deletions(-)\n delete mode 100644 .travis.yml\n\ndiff --git a/.travis.yml b/.travis.yml\ndeleted file mode 100644\nindex 908330a0a3d..00000000000\n--- a/.travis.yml\n+++ /dev/null\n@@ -1,60 +0,0 @@\n-language: c\n-\n-cache:\n-  directories:\n-    - $HOME/travis-cache\n-\n-os:\n-  - linux\n-  - osx\n-\n-osx_image: xcode10.1\n-\n-compiler:\n-  - clang\n-  - gcc\n-\n-matrix:\n-  include:\n-    - env: jobname=linux-gcc-default\n-      os: linux\n-      compiler:\n-      addons:\n-      before_install:\n-    - env: jobname=linux-gcc-4.8\n-      os: linux\n-      dist: trusty\n-      compiler:\n-    - env: jobname=Linux32\n-      os: linux\n-      compiler:\n-      addons:\n-      services:\n-        - docker\n-      before_install:\n-      script: ci/run-docker.sh\n-    - env: jobname=linux-musl\n-      os: linux\n-      compiler:\n-      addons:\n-      services:\n-        - docker\n-      before_install:\n-      script: ci/run-docker.sh\n-    - env: jobname=StaticAnalysis\n-      os: linux\n-      compiler:\n-      script: ci/run-static-analysis.sh\n-      after_failure:\n-    - env: jobname=Documentation\n-      os: linux\n-      compiler:\n-      script: ci/test-documentation.sh\n-      after_failure:\n-\n-before_install: ci/install-dependencies.sh\n-script: ci/run-build-and-tests.sh\n-after_failure: ci/print-test-failures.sh\n-\n-notifications:\n-  email: false\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 1d0e48f4515..92e11c7198e 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -13,7 +13,6 @@ UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl-dev libexpat-dev\n \n case \"$jobname\" in\n linux-clang|linux-gcc|linux-leaks)\n-\tsudo apt-add-repository -y \"ppa:ubuntu-toolchain-r/test\"\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n \t\t$UBUNTU_COMMON_PKGS\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 82cb17f8eea..73d959e87f7 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -34,7 +34,7 @@ save_good_tree () {\n # successfully before (e.g. because the branch got rebased, changing only\n # the commit messages).\n skip_good_tree () {\n-\tif test \"$TRAVIS_DEBUG_MODE\" = true || test true = \"$GITHUB_ACTIONS\"\n+\tif test true = \"$GITHUB_ACTIONS\"\n \tthen\n \t\treturn\n \tfi\n@@ -60,7 +60,7 @@ skip_good_tree () {\n \t\t\tcat <<-EOF\n \t\t\t$(tput setaf 2)Skipping build job for commit $CI_COMMIT.$(tput sgr0)\n \t\t\tThis commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.\n-\t\t\tThe log of that build job is available at $(url_for_job_id $prev_good_job_id)\n+\t\t\tThe log of that build job is available at $SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$prev_good_job_id\n \t\t\tTo force a re-build delete the branch's cache and then hit 'Restart job'.\n \t\t\tEOF\n \t\tfi\n@@ -91,29 +91,7 @@ export MAKEFLAGS=\n # and installing dependencies.\n set -ex\n \n-if test true = \"$TRAVIS\"\n-then\n-\tCI_TYPE=travis\n-\t# When building a PR, TRAVIS_BRANCH refers to the *target* branch. Not\n-\t# what we want here. We want the source branch instead.\n-\tCI_BRANCH=\"${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}\"\n-\tCI_COMMIT=\"$TRAVIS_COMMIT\"\n-\tCI_JOB_ID=\"$TRAVIS_JOB_ID\"\n-\tCI_JOB_NUMBER=\"$TRAVIS_JOB_NUMBER\"\n-\tCI_OS_NAME=\"$TRAVIS_OS_NAME\"\n-\tCI_REPO_SLUG=\"$TRAVIS_REPO_SLUG\"\n-\n-\tcache_dir=\"$HOME/travis-cache\"\n-\n-\turl_for_job_id () {\n-\t\techo \"https://travis-ci.org/$CI_REPO_SLUG/jobs/$1\"\n-\t}\n-\n-\tBREW_INSTALL_PACKAGES=\"git-lfs gettext\"\n-\texport GIT_PROVE_OPTS=\"--timer --jobs 3 --state=failed,slow,save\"\n-\texport GIT_TEST_OPTS=\"--verbose-log -x --immediate\"\n-\tMAKEFLAGS=\"$MAKEFLAGS --jobs=2\"\n-elif test -n \"$SYSTEM_COLLECTIONURI\" || test -n \"$SYSTEM_TASKDEFINITIONSURI\"\n+if test -n \"$SYSTEM_COLLECTIONURI\" || test -n \"$SYSTEM_TASKDEFINITIONSURI\"\n then\n \tCI_TYPE=azure-pipelines\n \t# We are running in Azure Pipelines\n@@ -130,10 +108,6 @@ then\n \t# among *all* phases)\n \tcache_dir=\"$HOME/test-cache/$SYSTEM_PHASENAME\"\n \n-\turl_for_job_id () {\n-\t\techo \"$SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$1\"\n-\t}\n-\n \texport GIT_PROVE_OPTS=\"--timer --jobs 10 --state=failed,slow,save\"\n \texport GIT_TEST_OPTS=\"--verbose-log -x --write-junit-xml\"\n \tMAKEFLAGS=\"$MAKEFLAGS --jobs=10\"\n@@ -214,11 +188,6 @@ osx-clang|osx-gcc)\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python2)\"\n \tfi\n-\n-\t# t9810 occasionally fails on Travis CI OS X\n-\t# t9816 occasionally fails with \"TAP out of sequence errors\" on\n-\t# Travis CI OS X\n-\texport GIT_SKIP_TESTS=\"t9810 t9816\"\n \t;;\n linux-gcc-default)\n \t;;\ndiff --git a/ci/print-test-failures.sh b/ci/print-test-failures.sh\nindex c70d6cdbf24..57277eefcd0 100755\n--- a/ci/print-test-failures.sh\n+++ b/ci/print-test-failures.sh\n@@ -39,8 +39,6 @@ do\n \t\ttest_name=\"${test_name##*/}\"\n \t\ttrash_dir=\"trash directory.$test_name\"\n \t\tcase \"$CI_TYPE\" in\n-\t\ttravis)\n-\t\t\t;;\n \t\tazure-pipelines)\n \t\t\tmkdir -p failed-test-artifacts\n \t\t\tmv \"$trash_dir\" failed-test-artifacts\n@@ -88,11 +86,3 @@ do\n \t\tfi\n \tfi\n done\n-\n-if [ $combined_trash_size -gt 0 ]\n-then\n-\techo \"------------------------------------------------------------------------\"\n-\techo \"Trash directories embedded in this log can be extracted by running:\"\n-\techo\n-\techo \"  curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh\"\n-fi\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 8d47a5fda3b..5d2764ad3a3 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -47,15 +47,6 @@ else\n \telse\n \t\tuseradd -u $HOST_UID $CI_USER\n \tfi\n-\n-\t# Due to a bug the test suite was run as root in the past, so\n-\t# a prove state file created back then is only accessible by\n-\t# root.  Now that bug is fixed, the test suite is run as a\n-\t# regular user, but the prove state file coming from Travis\n-\t# CI's cache might still be owned by root.\n-\t# Make sure that this user has rights to any cached files,\n-\t# including an existing prove state file.\n-\ttest -n \"$cache_dir\" && chown -R $HOST_UID:$HOST_UID \"$cache_dir\"\n fi\n \n # Build and test\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex 37fa372052d..b610dd4db84 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -25,7 +25,7 @@ docker pull \"$CI_CONTAINER\"\n # root@container:/# export jobname=<jobname>\n # root@container:/# /usr/src/git/ci/run-docker-build.sh <host-user-id>\n \n-container_cache_dir=/tmp/travis-cache\n+container_cache_dir=/tmp/container-cache\n \n docker run \\\n \t--interactive \\\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441831","messageId":"patch-v2-2.6-73981cedee8-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v2 2/6] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:32Z","receivedAt":"2021-11-20T03:28:49Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the names used for the GitHub CI workflows to be short enough\nto (mostly) fit in the pop-up tool-tips that GitHub shows in the\ncommit view. I.e. when mouse-clicking on the passing or failing\ncheck-mark next to the commit subject.\n\nThese names are seemingly truncated to 17-20 characters followed by\nthree dots (\"...\"). Since a \"CI/PR / \" prefix is added to them the job\nnames looked like this before (windows-test and vs-test jobs omitted):\n\n    CI/PR / ci-config (p...\n    CI/PR / windows-buil...\n    CI/PR / vs-build (pu...\n    CI/PR / regular (lin...\n    CI/PR / regular (lin...\n    CI/PR / regular (os...\n    CI/PR / regular (os...\n    CI/PR / regular (lin...\n    CI/PR / regular (lin...\n    CI/PR / dockerized (...\n    CI/PR / dockerized (...\n    CI/PR / dockerized (...\n    CI/PR / static-anal...\n    CI/PR / sparse (pu...\n    CI/PR / documenta...\n\nBy omitting the \"/PR\" from the top-level name, and pushing the\n$jobname to the front we'll now instead get:\n\n    CI / config (push)\n    CI / win build (push...\n    CI / win+VS build (...\n    CI / linux-clang (ub...\n    CI / linux-gcc (ubun...\n    CI / osx-clang (osx)...\n    CI / osx-gcc (osx) (...\n    CI / linux-gcc-defau...\n    CI / linux-leaks (ub...\n    CI / linux-musl (alp...\n    CI / Linux32 (daald/...\n    CI / pedantic (fedor...\n    CI / static-analysis...\n    CI / sparse (push)...\n    CI / documentation\n\nWe then have no truncation in the expanded view. See [1] for how it\nlooked before, [2] for a currently visible CI run using this commit,\nand [3] for the GitHub workflow syntax involved being changed here.\n\nLet's also add a field for the \"os\" and use it where appropriate, it's\noccasionally useful to know we're running on say ubuntu\nv.s. fedora (but the \"-latest\" suffix isn't very useful, that applies\nto almost all the jobs.\n\n1. https://github.com/git/git/tree/master/\n2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-2\n3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml | 16 +++++++++++++++-\n README.md                  |  2 +-\n 2 files changed, 16 insertions(+), 2 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 6ed6a9e8076..612b475fd0b 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -1,4 +1,4 @@\n-name: CI/PR\n+name: CI\n \n on: [push, pull_request]\n \n@@ -7,6 +7,7 @@ env:\n \n jobs:\n   ci-config:\n+    name: config\n     runs-on: ubuntu-latest\n     outputs:\n       enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n@@ -77,6 +78,7 @@ jobs:\n             }\n \n   windows-build:\n+    name: win build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     runs-on: windows-latest\n@@ -97,6 +99,7 @@ jobs:\n         name: windows-artifacts\n         path: artifacts\n   windows-test:\n+    name: win test\n     runs-on: windows-latest\n     needs: [windows-build]\n     strategy:\n@@ -127,6 +130,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   vs-build:\n+    name: win+VS build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\n@@ -178,6 +182,7 @@ jobs:\n         name: vs-artifacts\n         path: artifacts\n   vs-test:\n+    name: win+VS test\n     runs-on: windows-latest\n     needs: vs-build\n     strategy:\n@@ -210,6 +215,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   regular:\n+    name: ${{matrix.vector.jobname}} (${{matrix.vector.os}})\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -218,21 +224,27 @@ jobs:\n         vector:\n           - jobname: linux-clang\n             cc: clang\n+            os: ubuntu\n             pool: ubuntu-latest\n           - jobname: linux-gcc\n             cc: gcc\n+            os: ubuntu\n             pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n+            os: osx\n             pool: macos-latest\n           - jobname: osx-gcc\n             cc: gcc\n+            os: osx\n             pool: macos-latest\n           - jobname: linux-gcc-default\n             cc: gcc\n+            os: ubuntu\n             pool: ubuntu-latest\n           - jobname: linux-leaks\n             cc: gcc\n+            os: ubuntu\n             pool: ubuntu-latest\n     env:\n       CC: ${{matrix.vector.cc}}\n@@ -251,6 +263,7 @@ jobs:\n         name: failed-tests-${{matrix.vector.jobname}}\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   dockerized:\n+    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -310,6 +323,7 @@ jobs:\n       run: ci/install-dependencies.sh\n     - run: make sparse\n   documentation:\n+    name: documentation\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\ndiff --git a/README.md b/README.md\nindex eb8115e6b04..f6f43e78deb 100644\n--- a/README.md\n+++ b/README.md\n@@ -1,4 +1,4 @@\n-[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n+[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n \n Git - fast, scalable, distributed revision control system\n =========================================================\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441832","messageId":"patch-v2-3.6-002c183fff4-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v2 3/6] CI: rename the \"Linux32\" job to lower-case \"linux32\"","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:33Z","receivedAt":"2021-11-20T03:28:52Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"As a follow-up to the preceding commit's shortening of CI job names,\nrename the only job that starts with an upper-case letter to be\nconsistent with the rest. It was added in 88dedd5e72c (Travis: also\ntest on 32-bit Linux, 2017-03-05).\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml        | 3 ++-\n ci/install-docker-dependencies.sh | 2 +-\n ci/lib.sh                         | 2 +-\n ci/run-docker-build.sh            | 2 +-\n ci/run-docker.sh                  | 2 +-\n 5 files changed, 6 insertions(+), 5 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 612b475fd0b..a91edec46d8 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -272,7 +272,8 @@ jobs:\n         vector:\n         - jobname: linux-musl\n           image: alpine\n-        - jobname: Linux32\n+        - jobname: linux32\n+          os: ubuntu32\n           image: daald/ubuntu32:xenial\n         - jobname: pedantic\n           image: fedora\ndiff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh\nindex 07a8c6b199d..78b7e326da6 100755\n--- a/ci/install-docker-dependencies.sh\n+++ b/ci/install-docker-dependencies.sh\n@@ -4,7 +4,7 @@\n #\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tlinux32 --32bit i386 sh -c '\n \t\tapt update >/dev/null &&\n \t\tapt install -y build-essential libcurl4-openssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 73d959e87f7..0b3b0144882 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -191,7 +191,7 @@ osx-clang|osx-gcc)\n \t;;\n linux-gcc-default)\n \t;;\n-Linux32)\n+linux32)\n \tCC=gcc\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 5d2764ad3a3..6cd832efb9c 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -15,7 +15,7 @@ then\n fi\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tswitch_cmd=\"linux32 --32bit i386\"\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex b610dd4db84..af89d1624a4 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -6,7 +6,7 @@\n . ${0%/*}/lib.sh\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tCI_CONTAINER=\"daald/ubuntu32:xenial\"\n \t;;\n linux-musl)\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441833","messageId":"patch-v2-4.6-eca0ad08d4b-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v2 4/6] CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:34Z","receivedAt":"2021-11-20T03:28:55Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the setup hooks for the CI to use \"$runs_on_pool\" for the\n\"$regular\" job. Now we won't need as much boilerplate when adding new\njobs to the \"regular\" matrix, see 956d2e4639b (tests: add a test mode\nfor SANITIZE=leak, run it in CI, 2021-09-23) for the last such commit.\n\nI.e. now instead of needing to enumerate each jobname when we select\npackages we can install things depending on the pool we're running\nin.\n\nThat we didn't do this dates back to the now gone dependency on Travis\nCI, but even if we add a new CI target in the future this'll be easier\nto port over, since we can probably treat \"ubuntu-latest\" as a\nstand-in for some recent Linux that can run \"apt\" commands.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml |  4 ++++\n ci/install-dependencies.sh | 32 ++++++++++++++------------------\n ci/lib.sh                  | 21 +++++++++++----------\n 3 files changed, 29 insertions(+), 28 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex a91edec46d8..097be4c4405 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -229,6 +229,7 @@ jobs:\n           - jobname: linux-gcc\n             cc: gcc\n             os: ubuntu\n+            cc_package: gcc-8\n             pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n@@ -237,6 +238,7 @@ jobs:\n           - jobname: osx-gcc\n             cc: gcc\n             os: osx\n+            cc_package: gcc-9\n             pool: macos-latest\n           - jobname: linux-gcc-default\n             cc: gcc\n@@ -248,7 +250,9 @@ jobs:\n             pool: ubuntu-latest\n     env:\n       CC: ${{matrix.vector.cc}}\n+      CC_PACKAGE: ${{matrix.vector.cc_package}}\n       jobname: ${{matrix.vector.jobname}}\n+      runs_on_pool: ${{matrix.vector.pool}}\n     runs-on: ${{matrix.vector.pool}}\n     steps:\n     - uses: actions/checkout@v2\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 92e11c7198e..ca1eaa49c14 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -11,17 +11,11 @@ UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl-dev libexpat-dev\n  tcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl\n  libemail-valid-perl libio-socket-ssl-perl libnet-smtp-ssl-perl\"\n \n-case \"$jobname\" in\n-linux-clang|linux-gcc|linux-leaks)\n+case \"$runs_on_pool\" in\n+ubuntu-latest)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n-\t\t$UBUNTU_COMMON_PKGS\n-\tcase \"$jobname\" in\n-\tlinux-gcc)\n-\t\tsudo apt-get -q -y install gcc-8\n-\t\t;;\n-\tesac\n-\n+\t\t$UBUNTU_COMMON_PKGS $CC_PACKAGE\n \tmkdir --parents \"$P4_PATH\"\n \tpushd \"$P4_PATH\"\n \t\twget --quiet \"$P4WHENCE/bin.linux26x86_64/p4d\"\n@@ -36,7 +30,7 @@ linux-clang|linux-gcc|linux-leaks)\n \t\tcp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .\n \tpopd\n \t;;\n-osx-clang|osx-gcc)\n+macos-latest)\n \texport HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1\n \t# Uncomment this if you want to run perf tests:\n \t# brew install gnu-time\n@@ -50,15 +44,17 @@ osx-clang|osx-gcc)\n \t\tbrew install --cask --no-quarantine perforce\n \t} ||\n \tbrew install homebrew/cask/perforce\n-\tcase \"$jobname\" in\n-\tosx-gcc)\n-\t\tbrew install gcc@9\n-\t\t# Just in case the image is updated to contain gcc@9\n-\t\t# pre-installed but not linked.\n-\t\tbrew link gcc@9\n-\t\t;;\n-\tesac\n+\n+\tif test -n \"$CC_PACKAGE\"\n+\tthen\n+\t\tBREW_PACKAGE=${CC_PACKAGE/-/@}\n+\t\tbrew install \"$BREW_PACKAGE\"\n+\t\tbrew link \"$BREW_PACKAGE\"\n+\tfi\n \t;;\n+esac\n+\n+case \"$jobname\" in\n StaticAnalysis)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 0b3b0144882..cbc2f8f1caa 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -156,11 +156,15 @@ export DEFAULT_TEST_TARGET=prove\n export GIT_TEST_CLONE_2GB=true\n export SKIP_DASHED_BUILT_INS=YesPlease\n \n-case \"$jobname\" in\n-linux-clang|linux-gcc|linux-leaks)\n+case \"$runs_on_pool\" in\n+ubuntu-latest)\n+\tif test \"$jobname\" = \"linux-gcc-default\"\n+\tthen\n+\t\tbreak\n+\tfi\n+\n \tif [ \"$jobname\" = linux-gcc ]\n \tthen\n-\t\texport CC=gcc-8\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python3\"\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python2\"\n@@ -180,17 +184,17 @@ linux-clang|linux-gcc|linux-leaks)\n \tGIT_LFS_PATH=\"$HOME/custom/git-lfs\"\n \texport PATH=\"$GIT_LFS_PATH:$P4_PATH:$PATH\"\n \t;;\n-osx-clang|osx-gcc)\n+macos-latest)\n \tif [ \"$jobname\" = osx-gcc ]\n \tthen\n-\t\texport CC=gcc-9\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python3)\"\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python2)\"\n \tfi\n \t;;\n-linux-gcc-default)\n-\t;;\n+esac\n+\n+case \"$jobname\" in\n linux32)\n \tCC=gcc\n \t;;\n@@ -200,9 +204,6 @@ linux-musl)\n \tMAKEFLAGS=\"$MAKEFLAGS NO_REGEX=Yes ICONV_OMITS_BOM=Yes\"\n \tMAKEFLAGS=\"$MAKEFLAGS GIT_TEST_UTF8_LOCALE=C.UTF-8\"\n \t;;\n-esac\n-\n-case \"$jobname\" in\n linux-leaks)\n \texport SANITIZE=leak\n \texport GIT_TEST_PASSING_SANITIZE_LEAK=true\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441834","messageId":"patch-v2-5.6-a113b8404ed-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v2 5/6] CI: don't run \"make test\" twice in one job","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:35Z","receivedAt":"2021-11-20T03:28:56Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"The \"linux-clang\" and \"linux-gcc\" jobs both run \"make test\" twice, but\nwith different environment variables. Running these in sequence seems\nto have been done to work around some constraint on Travis, see\nae59a4e44f3 (travis: run tests with GIT_TEST_SPLIT_INDEX, 2018-01-07).\n\nBy having these run in parallel we'll get jobs that finish much sooner\nthan they otherwise would have.\n\nWe can also simplify the control flow in \"ci/run-build-and-tests.sh\"\nas a result, since we won't run \"make test\" twice we don't need to run\n\"make\" twice at all, let's default to \"make all test\" after setting\nthe variables, and then override it to just \"all\" for the compile-only\ntests.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml |  9 +++++++++\n ci/run-build-and-tests.sh  | 26 ++++++++++++--------------\n 2 files changed, 21 insertions(+), 14 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 097be4c4405..63fff2744ad 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -226,11 +226,20 @@ jobs:\n             cc: clang\n             os: ubuntu\n             pool: ubuntu-latest\n+          - jobname: linux-sha256\n+            cc: clang\n+            os: ubuntu\n+            pool: ubuntu-latest\n           - jobname: linux-gcc\n             cc: gcc\n             os: ubuntu\n             cc_package: gcc-8\n             pool: ubuntu-latest\n+          - jobname: linux-TEST-vars\n+            cc: gcc\n+            os: ubuntu\n+            cc_package: gcc-8\n+            pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n             os: osx\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex cc62616d806..16840b2065d 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -10,16 +10,13 @@ windows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n *) ln -s \"$cache_dir/.prove\" t/.prove;;\n esac\n \n-if test \"$jobname\" = \"pedantic\"\n-then\n-\texport DEVOPTS=pedantic\n-fi\n+export MAKE_TARGETS=\"all test\"\n \n-make\n case \"$jobname\" in\n linux-gcc)\n \texport GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main\n-\tmake test\n+\t;;\n+linux-TEST-vars)\n \texport GIT_TEST_SPLIT_INDEX=yes\n \texport GIT_TEST_MERGE_ALGORITHM=recursive\n \texport GIT_TEST_FULL_IN_PACK_ARRAY=true\n@@ -33,23 +30,24 @@ linux-gcc)\n \texport GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master\n \texport GIT_TEST_WRITE_REV_INDEX=1\n \texport GIT_TEST_CHECKOUT_WORKERS=2\n-\tmake test\n \t;;\n linux-clang)\n \texport GIT_TEST_DEFAULT_HASH=sha1\n-\tmake test\n+\t;;\n+linux-sha256)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n-\tmake test\n \t;;\n-linux-gcc-4.8|pedantic)\n-\t# Don't run the tests; we only care about whether Git can be\n-\t# built with GCC 4.8 or with pedantic\n+pedantic)\n+\texport DEVOPTS=pedantic\n+\texport MAKE_TARGETS=all\n \t;;\n-*)\n-\tmake test\n+linux-gcc-4.8)\n+\texport MAKE_TARGETS=all\n \t;;\n esac\n \n+make $MAKE_TARGETS\n+\n check_unignored_build_artifacts\n \n save_good_tree\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441835","messageId":"patch-v2-6.6-7c423c8283d-20211120T030848Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v2 6/6] CI: run \"documentation\" via run-build-and-test.sh","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T03:28:36Z","receivedAt":"2021-11-20T03:28:58Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Now that we've taught the build and test script to accept arbitrary\n\"make\" targets it becomes easy to split up the \"asciidoc\" and\n\"asciidoctor\" jobs, and to have the \"ci/run-build-and-tests.sh\" do the\n\"make\" test of building the documentation. I.e. we'll run both of:\n\n    make check-builtins check-docs\n    make check-builtins check-docs USE_ASCIIDOCTOR=Y\n\nAs noted in 505ad91304e (travis-ci: check AsciiDoc/AsciiDoctor stderr\noutput, 2017-04-26) we need to keep checking the stderr that's emitted\nby these, so let's add that special-case to\n\"ci/run-build-and-tests.sh\".\n\nThe other doc-specific tests added in b98712b9aa9 (travis-ci: build\ndocumentation, 2016-05-04) and 159e6010c2d (travis-ci: build\ndocumentation with AsciiDoc and Asciidoctor, 2017-04-11) should live\nin \"ci/test-documentation.sh\".\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml | 14 +++++++++++---\n ci/install-dependencies.sh |  2 +-\n ci/lib.sh                  |  2 +-\n ci/run-build-and-tests.sh  | 29 ++++++++++++++++++++++------\n ci/test-documentation.sh   | 39 ++++++++++++++++----------------------\n 5 files changed, 52 insertions(+), 34 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 63fff2744ad..c6aed3d2758 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -337,13 +337,21 @@ jobs:\n       run: ci/install-dependencies.sh\n     - run: make sparse\n   documentation:\n-    name: documentation\n+    name: ${{matrix.vector.jobname}}\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n+    strategy:\n+      fail-fast: false\n+      matrix:\n+        vector:\n+          - jobname: doc-asciidoc\n+          - jobname: doc-asciidoctor\n+            makeflags: USE_ASCIIDOCTOR=Y\n     env:\n-      jobname: Documentation\n+      jobname: ${{matrix.vector.jobname}}\n+      MAKE_TARGETS: check-builtins check-docs doc ${{matrix.vector.makeflags}}\n     runs-on: ubuntu-latest\n     steps:\n     - uses: actions/checkout@v2\n     - run: ci/install-dependencies.sh\n-    - run: ci/test-documentation.sh\n+    - run: ci/run-build-and-tests.sh\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex ca1eaa49c14..4a30713645a 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -65,7 +65,7 @@ sparse)\n \tsudo apt-get -q -y install libssl-dev libcurl4-openssl-dev \\\n \t\tlibexpat-dev gettext zlib1g-dev\n \t;;\n-Documentation)\n+doc-*)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make\n \ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex cbc2f8f1caa..3afa95333ed 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -83,7 +83,7 @@ check_unignored_build_artifacts ()\n export TERM=${TERM:-dumb}\n \n # Clear MAKEFLAGS that may come from the outside world.\n-export MAKEFLAGS=\n+export MAKEFLAGS=\"${MAKEFLAGS:+$MAKEFLAGS }$EXTRA_MAKEFLAGS\"\n \n # Set 'exit on error' for all CI scripts to let the caller know that\n # something went wrong.\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex 16840b2065d..a5f782db1f7 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -5,12 +5,10 @@\n \n . ${0%/*}/lib.sh\n \n-case \"$CI_OS_NAME\" in\n-windows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n-*) ln -s \"$cache_dir/.prove\" t/.prove;;\n-esac\n-\n-export MAKE_TARGETS=\"all test\"\n+if test -z \"$MAKE_TARGETS\"\n+then\n+\texport MAKE_TARGETS=\"all test\"\n+fi\n \n case \"$jobname\" in\n linux-gcc)\n@@ -46,6 +44,25 @@ linux-gcc-4.8)\n \t;;\n esac\n \n+case \"$MAKE_TARGETS\" in\n+*test*)\n+\tcase \"$CI_OS_NAME\" in\n+\twindows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n+\t*) ln -s \"$cache_dir/.prove\" t/.prove;;\n+\tesac\n+\t;;\n+esac\n+\n+case \"$jobname\" in\n+doc-*)\n+\t# This \"make\" command requireds bash-specific redirection\n+\t${0%/*}/test-documentation.sh\n+\t;;\n+*)\n+\tmake $MAKE_TARGETS\n+\t;;\n+esac\n+\n make $MAKE_TARGETS\n \n check_unignored_build_artifacts\ndiff --git a/ci/test-documentation.sh b/ci/test-documentation.sh\nindex de41888430a..898c33e74ba 100755\n--- a/ci/test-documentation.sh\n+++ b/ci/test-documentation.sh\n@@ -14,32 +14,25 @@ filter_log () {\n \t    \"$1\"\n }\n \n-make check-builtins\n-make check-docs\n-\n-# Build docs with AsciiDoc\n-make doc > >(tee stdout.log) 2> >(tee stderr.raw >&2)\n-cat stderr.raw\n-filter_log stderr.raw >stderr.log\n-test ! -s stderr.log\n-test -s Documentation/git.html\n-test -s Documentation/git.xml\n-test -s Documentation/git.1\n-grep '<meta name=\"generator\" content=\"AsciiDoc ' Documentation/git.html\n-\n-rm -f stdout.log stderr.log stderr.raw\n-check_unignored_build_artifacts\n-\n-# Build docs with AsciiDoctor\n-make clean\n-make USE_ASCIIDOCTOR=1 doc > >(tee stdout.log) 2> >(tee stderr.raw >&2)\n+make $MAKE_TARGETS > >(tee stdout.log) 2> >(tee stderr.raw >&2)\n cat stderr.raw\n filter_log stderr.raw >stderr.log\n test ! -s stderr.log\n-test -s Documentation/git.html\n-grep '<meta name=\"generator\" content=\"Asciidoctor ' Documentation/git.html\n \n rm -f stdout.log stderr.log stderr.raw\n-check_unignored_build_artifacts\n \n-save_good_tree\n+case $jobname in\n+doc-asciidoc)\n+\ttest -s Documentation/git.html\n+\ttest -s Documentation/git.xml\n+\ttest -s Documentation/git.1\n+\tgrep '<meta name=\"generator\" content=\"AsciiDoc ' Documentation/git.html\n+\t;;\n+doc-asciidoctor)\n+\ttest -s Documentation/git.html\n+\tgrep '<meta name=\"generator\" content=\"Asciidoctor ' Documentation/git.html\n+\t;;\n+*)\n+\texit 1\n+\t;;\n+esac\n-- \n2.34.0.823.gcc3243ae16c\n\n"},{"id":"441839","messageId":"d9b07ca5-b58d-a535-d25b-85d7f12e6295@github.com","threadId":"56942","inReplyTo":"patch-v2-2.6-73981cedee8-20211120T030848Z-avarab@gmail.com","subject":"Re: [PATCH v2 2/6] CI: use shorter names that fit in UX tooltips","fromName":"Victoria Dye","fromEmail":"vdye@github.com","sentAt":"2021-11-20T07:01:36Z","receivedAt":"2021-11-20T07:02:02Z","isPatch":true,"sender":{"key":"vdye@github.com","avatar":"https://avatars.githubusercontent.com/u/3619353?v=4"},"body":"Ævar Arnfjörð Bjarmason wrote:\n> Change the names used for the GitHub CI workflows to be short enough\n> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n> commit view. I.e. when mouse-clicking on the passing or failing\n> check-mark next to the commit subject.\n> \n> These names are seemingly truncated to 17-20 characters followed by\n> three dots (\"...\"). Since a \"CI/PR / \" prefix is added to them the job\n> names looked like this before (windows-test and vs-test jobs omitted):\n> \n>     CI/PR / ci-config (p...\n>     CI/PR / windows-buil...\n>     CI/PR / vs-build (pu...\n>     CI/PR / regular (lin...\n>     CI/PR / regular (lin...\n>     CI/PR / regular (os...\n>     CI/PR / regular (os...\n>     CI/PR / regular (lin...\n>     CI/PR / regular (lin...\n>     CI/PR / dockerized (...\n>     CI/PR / dockerized (...\n>     CI/PR / dockerized (...\n>     CI/PR / static-anal...\n>     CI/PR / sparse (pu...\n>     CI/PR / documenta...\n> \n> By omitting the \"/PR\" from the top-level name, and pushing the\n> $jobname to the front we'll now instead get:\n> \n>     CI / config (push)\n>     CI / win build (push...\n>     CI / win+VS build (...\n>     CI / linux-clang (ub...\n>     CI / linux-gcc (ubun...\n>     CI / osx-clang (osx)...\n>     CI / osx-gcc (osx) (...\n>     CI / linux-gcc-defau...\n>     CI / linux-leaks (ub...\n>     CI / linux-musl (alp...\n>     CI / Linux32 (daald/...\n>     CI / pedantic (fedor...\n>     CI / static-analysis...\n>     CI / sparse (push)...\n>     CI / documentation\n> \n> We then have no truncation in the expanded view. See [1] for how it\n> looked before, [2] for a currently visible CI run using this commit,\n> and [3] for the GitHub workflow syntax involved being changed here.\n> \n> Let's also add a field for the \"os\" and use it where appropriate, it's\n> occasionally useful to know we're running on say ubuntu\n> v.s. fedora (but the \"-latest\" suffix isn't very useful, that applies\n> to almost all the jobs.\n> \n> 1. https://github.com/git/git/tree/master/\n> 2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-2\n> 3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n> \n> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n> ---\n>  .github/workflows/main.yml | 16 +++++++++++++++-\n>  README.md                  |  2 +-\n>  2 files changed, 16 insertions(+), 2 deletions(-)\n> \n> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> index 6ed6a9e8076..612b475fd0b 100644\n> --- a/.github/workflows/main.yml\n> +++ b/.github/workflows/main.yml\n> @@ -1,4 +1,4 @@\n> -name: CI/PR\n> +name: CI\n>  \n>  on: [push, pull_request]\n>  \n> @@ -7,6 +7,7 @@ env:\n>  \n>  jobs:\n>    ci-config:\n> +    name: config\n>      runs-on: ubuntu-latest\n>      outputs:\n>        enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n> @@ -77,6 +78,7 @@ jobs:\n>              }\n>  \n>    windows-build:\n> +    name: win build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      runs-on: windows-latest\n> @@ -97,6 +99,7 @@ jobs:\n>          name: windows-artifacts\n>          path: artifacts\n>    windows-test:\n> +    name: win test\n>      runs-on: windows-latest\n>      needs: [windows-build]\n>      strategy:\n> @@ -127,6 +130,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    vs-build:\n> +    name: win+VS build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> @@ -178,6 +182,7 @@ jobs:\n>          name: vs-artifacts\n>          path: artifacts\n>    vs-test:\n> +    name: win+VS test\n>      runs-on: windows-latest\n>      needs: vs-build\n>      strategy:\n> @@ -210,6 +215,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    regular:\n> +    name: ${{matrix.vector.jobname}} (${{matrix.vector.os}})\n\nThe consequence of explicitly removing `-latest` (as you mentioned in the\ncommit message) is the addition of the new `os` field just to remove that\nsuffix (+renaming 'macos' to 'osx' to - I assume - save a bit more space).\n\nKeeping the `-latest` doesn't really seem to hurt your goal of improving the\ntooltips, though; worst case, the `-latest` would be what's cut off in the\ntooltip. The main reason I bring this up is because I'd generally prefer\nreusing existing fields wherever possible - e.g. something like this: \n\n    name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})\n\n...which has the added benefits of 1) fully reflecting the agents used\n(potentially beneficial e.g., if we switched from `macos-latest` to\n`macos-10.15`) and 2) better matching the way you've set up the docker\nimage-based jobs later on. \n\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -218,21 +224,27 @@ jobs:\n>          vector:\n>            - jobname: linux-clang\n>              cc: clang\n> +            os: ubuntu\n>              pool: ubuntu-latest\n>            - jobname: linux-gcc\n>              cc: gcc\n> +            os: ubuntu\n>              pool: ubuntu-latest\n>            - jobname: osx-clang\n>              cc: clang\n> +            os: osx\n>              pool: macos-latest\n>            - jobname: osx-gcc\n>              cc: gcc\n> +            os: osx\n>              pool: macos-latest\n>            - jobname: linux-gcc-default\n>              cc: gcc\n> +            os: ubuntu\n>              pool: ubuntu-latest\n>            - jobname: linux-leaks\n>              cc: gcc\n> +            os: ubuntu\n>              pool: ubuntu-latest\n>      env:\n>        CC: ${{matrix.vector.cc}}\n> @@ -251,6 +263,7 @@ jobs:\n>          name: failed-tests-${{matrix.vector.jobname}}\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    dockerized:\n> +    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -310,6 +323,7 @@ jobs:\n>        run: ci/install-dependencies.sh\n>      - run: make sparse\n>    documentation:\n> +    name: documentation\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> diff --git a/README.md b/README.md\n> index eb8115e6b04..f6f43e78deb 100644\n> --- a/README.md\n> +++ b/README.md\n> @@ -1,4 +1,4 @@\n> -[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n> +[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n>  \n>  Git - fast, scalable, distributed revision control system\n>  =========================================================\n> \n\nOverall, I like the fact that platform info is retained in this version\n(while also managing to shorten names and/or make the non-truncated parts\nmore helpful). Thank you for the update! \n"},{"id":"441842","messageId":"BED25714-4917-46CB-AAD4-C30158A7A42C@gmx.de","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"Re: [PATCH v2 0/6] CI: Remove Travis CI, shorten names for GH tooltips, split jobs","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2021-11-20T08:05:06Z","receivedAt":"2021-11-20T08:05:16Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"On November 20, 2021 4:28:30 AM GMT+01:00, \"Ævar Arnfjörð Bjarmason\" <avarab@gmail.com> wrote:\n>\n>  CI: remove Travis CI support\n\nThis is a patch I am in favor of, and would prefer in its own patch \"series\": separation of concern, and consideration in avoiding reviewer fatigue, are two aspects I would like to see you optimize for a bit more.\n\n>  CI: use shorter names that fit in UX tooltips\n>  CI: rename the \"Linux32\" job to lower-case \"linux32\"\n>  CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n\nThese strike me as simply shuffling things around and ramping up commit count in git/git, without actually addressing any of the problems our GitHub workflow _definitely_ has.\n\nOne quite obvious problem is that any failing run is very cumbersome to diagnose, and you kind of have to know where you're looking. A troublesome and off-putting experience for newcomers (and even some oldtimers). You have to expand the print-failures step logs and search for \"not ok\" to get even close to the relevant part of the failing test case's details.\n\nYes, addressing this would be much harder and take more effort than just going ahead and renaming things. It would also be much more useful.\n\n>  CI: don't run \"make test\" twice in one job\n\nI am in favor of the idea. As is obvious from the fact that I already proposed this years ago.\n\nThe commit message, however, is mum about that. And about the reasons why my proposal was shot down. And why those reasons should somehow no longer apply (and I would strongly suggest to aim for providing convincing evidence over mere opinions, to back up the patch).\n\nAs has been mentioned before, this lack of diligence is disappointing. Reviewers should not be forced to look up previous related discussions on the Git mailing list. I would do that for a first-time contributor, but you are a long-term contributor who clearly has the ability, the knowledge, and the time, to accompany patches with such vital information.\n\n>  CI: run \"documentation\" via run-build-and-test.sh\n\nThis patch has a commit message that explains what the patch does, and describes a little bit of related commit history.\n\nIt does not talk about any convincing reasons why the change should be desirable.\n\nThis is troubling, in particular since it counteracts the major benefit of the preceding patch: to reduce the jobs' runtime.\n\nAlso, while the preceding patch makes each job's focus more obvious, so that it no longer requires careful study of the entire test log merely to find out which `GIT_TEST_*` settings are set, _this_ patch crams the check-docs into the same job as the pretty unrelated test suite run. In other words, it combines even _more unrelated_ things into the same job.\n\nSo what does this patch series try to accomplish? To shorten the jobs' runtime? Or to extend it? To have a clearer separation of concerns of the individual jobs? Or to muddy the waters by once again doing several things in the same job?\n\nIt is quite confusing and strikes me as a patch series that could have used quite a bit more time and polishing and mailing list research and rearranging and splitting up and patch-dropping before unleashing it to the reviewers on the Git mailing list. It does not help that v2 seems to have been rushed out, and tripled in size, no less. If I had the task of wearing out reviewers, that is exactly the type of thing I would do. If I would accept the task.\n\nTo end on a positive note: I suggest to split off the Travis CI patch. It should be relatively uncontroversial. Further, I suggest to find the previous patch that split `linux-gcc` on the mailing list, summarize what the conclusion was, and either adjust the equivalent patch in this series accordingly in order to contribute it stand-alone, or drop it. Then, you could use the considerable time you seem to have at your disposal on working towards teaching our workflow to present diagnosable information about build/test failures in a much more immediately consumable manner than it does right now.\n\nCiao,\nJohannes\n\nHi,\n"},{"id":"441844","messageId":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com","subject":"[PATCH v3 0/5] CI: Remove Travis CI, shorten names for GH tooltips, split jobs","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:10:06Z","receivedAt":"2021-11-20T12:10:24Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"An update to v3, now using the \"pool\" names instead of a new \"os\"\nfield for the job names. Before (on master):\n\n    https://github.com/git/git/runs/4214600139\n\nAfter:\n\n    https://github.com/avar/git/actions/runs/1484426823\n\nI peeled of the last \"doc\" patch based on Johannes's feedback. As with\nthe split-up TEST job we'll take more CPU time, but if we can run in\nparallel take less wallclock time, but it's not really worth it for\nthe asciidoc/asciidoctor job with how long the install v.s. build/test\nstep takes (b.t.w. there was no change to \"check-docs\" running in\nthose jobs in v2).\n\n1. https://lore.kernel.org/git/cover-v2-0.6-00000000000-20211120T030848Z-avarab@gmail.com/\n\nÆvar Arnfjörð Bjarmason (5):\n  CI: remove Travis CI support\n  CI: use shorter names that fit in UX tooltips\n  CI: rename the \"Linux32\" job to lower-case \"linux32\"\n  CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n  CI: don't run \"make test\" twice in one job\n\n .github/workflows/main.yml        | 26 ++++++++++++--\n .travis.yml                       | 60 -------------------------------\n README.md                         |  2 +-\n ci/install-dependencies.sh        | 33 ++++++++---------\n ci/install-docker-dependencies.sh |  2 +-\n ci/lib.sh                         | 60 ++++++++-----------------------\n ci/print-test-failures.sh         | 10 ------\n ci/run-build-and-tests.sh         | 26 +++++++-------\n ci/run-docker-build.sh            | 11 +-----\n ci/run-docker.sh                  |  4 +--\n 10 files changed, 70 insertions(+), 164 deletions(-)\n delete mode 100644 .travis.yml\n\nRange-diff against v2:\n1:  cc94a353ccb = 1:  96433bcc02f CI: remove Travis CI support\n2:  73981cedee8 ! 2:  b09cd076aeb CI: use shorter names that fit in UX tooltips\n    @@ Commit message\n         looked before, [2] for a currently visible CI run using this commit,\n         and [3] for the GitHub workflow syntax involved being changed here.\n     \n    -    Let's also add a field for the \"os\" and use it where appropriate, it's\n    -    occasionally useful to know we're running on say ubuntu\n    -    v.s. fedora (but the \"-latest\" suffix isn't very useful, that applies\n    -    to almost all the jobs.\n    +    Let's also use the existing \"pool\" field as before. It's occasionally\n    +    useful to know we're running on say ubuntu v.s. fedora. The \"-latest\"\n    +    suffix is useful to some[4], and since it's now at the end it doesn't\n    +    hurt readability in the short view compared to saying \"ubuntu\" or\n    +    \"macos\".\n     \n         1. https://github.com/git/git/tree/master/\n    -    2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-2\n    +    2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-3\n         3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n    +    3. https://lore.kernel.org/git/d9b07ca5-b58d-a535-d25b-85d7f12e6295@github.com/\n     \n         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n     \n    @@ .github/workflows/main.yml: jobs:\n              name: failed-tests-windows\n              path: ${{env.FAILED_TEST_ARTIFACTS}}\n        regular:\n    -+    name: ${{matrix.vector.jobname}} (${{matrix.vector.os}})\n    ++    name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})\n          needs: ci-config\n          if: needs.ci-config.outputs.enabled == 'yes'\n          strategy:\n    -@@ .github/workflows/main.yml: jobs:\n    -         vector:\n    -           - jobname: linux-clang\n    -             cc: clang\n    -+            os: ubuntu\n    -             pool: ubuntu-latest\n    -           - jobname: linux-gcc\n    -             cc: gcc\n    -+            os: ubuntu\n    -             pool: ubuntu-latest\n    -           - jobname: osx-clang\n    -             cc: clang\n    -+            os: osx\n    -             pool: macos-latest\n    -           - jobname: osx-gcc\n    -             cc: gcc\n    -+            os: osx\n    -             pool: macos-latest\n    -           - jobname: linux-gcc-default\n    -             cc: gcc\n    -+            os: ubuntu\n    -             pool: ubuntu-latest\n    -           - jobname: linux-leaks\n    -             cc: gcc\n    -+            os: ubuntu\n    -             pool: ubuntu-latest\n    -     env:\n    -       CC: ${{matrix.vector.cc}}\n     @@ .github/workflows/main.yml: jobs:\n              name: failed-tests-${{matrix.vector.jobname}}\n              path: ${{env.FAILED_TEST_ARTIFACTS}}\n3:  002c183fff4 = 3:  fb1b0ecbadd CI: rename the \"Linux32\" job to lower-case \"linux32\"\n4:  eca0ad08d4b ! 4:  54913e775c1 CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n    @@ Commit message\n     \n      ## .github/workflows/main.yml ##\n     @@ .github/workflows/main.yml: jobs:\n    +             pool: ubuntu-latest\n                - jobname: linux-gcc\n                  cc: gcc\n    -             os: ubuntu\n     +            cc_package: gcc-8\n                  pool: ubuntu-latest\n                - jobname: osx-clang\n                  cc: clang\n    -@@ .github/workflows/main.yml: jobs:\n    +             pool: macos-latest\n                - jobname: osx-gcc\n                  cc: gcc\n    -             os: osx\n     +            cc_package: gcc-9\n                  pool: macos-latest\n                - jobname: linux-gcc-default\n5:  a113b8404ed ! 5:  877f27d847c CI: don't run \"make test\" twice in one job\n    @@ Commit message\n     \n      ## .github/workflows/main.yml ##\n     @@ .github/workflows/main.yml: jobs:\n    +           - jobname: linux-clang\n                  cc: clang\n    -             os: ubuntu\n                  pool: ubuntu-latest\n     +          - jobname: linux-sha256\n     +            cc: clang\n    @@ .github/workflows/main.yml: jobs:\n     +            pool: ubuntu-latest\n                - jobname: linux-gcc\n                  cc: gcc\n    -             os: ubuntu\n                  cc_package: gcc-8\n                  pool: ubuntu-latest\n     +          - jobname: linux-TEST-vars\n    @@ .github/workflows/main.yml: jobs:\n     +            pool: ubuntu-latest\n                - jobname: osx-clang\n                  cc: clang\n    -             os: osx\n    +             pool: macos-latest\n     \n      ## ci/run-build-and-tests.sh ##\n     @@ ci/run-build-and-tests.sh: windows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n6:  7c423c8283d < -:  ----------- CI: run \"documentation\" via run-build-and-test.sh\n-- \n2.34.0.818.g0f23a581583\n\n"},{"id":"441845","messageId":"patch-v3-1.5-96433bcc02f-20211120T115414Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","subject":"[PATCH v3 1/5] CI: remove Travis CI support","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:10:07Z","receivedAt":"2021-11-20T12:10:25Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Remove support for running the CI in travis. The last builds in it are\nfrom 5 months ago[1] (as of 2021-11-19), and our documentation has\nreferred to GitHub CI instead since f003a91f5c5 (SubmittingPatches:\nreplace discussion of Travis with GitHub Actions, 2021-07-22).\n\nWe'll now run the \"t9810 t9816\" and tests on OSX. We didn't before, as\nwe'd carried the Travis exclusion of them forward from\n522354d70f4 (Add Travis CI support, 2015-11-27). Let's hope whatever\nissue there was with them was either Travis specific, or fixed since\nthen (I'm not sure).\n\nThe \"apt-add-repository\" invocation (which we were doing in GitHub CI)\nisn't needed, it was another Travis-only case that was carried forward\ninto more general code. See 0f0c51181df (travis-ci: install packages\nin 'ci/install-dependencies.sh', 2018-11-01).\n\n1. https://travis-ci.org/github/git/git/builds\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .travis.yml                | 60 --------------------------------------\n ci/install-dependencies.sh |  1 -\n ci/lib.sh                  | 37 ++---------------------\n ci/print-test-failures.sh  | 10 -------\n ci/run-docker-build.sh     |  9 ------\n ci/run-docker.sh           |  2 +-\n 6 files changed, 4 insertions(+), 115 deletions(-)\n delete mode 100644 .travis.yml\n\ndiff --git a/.travis.yml b/.travis.yml\ndeleted file mode 100644\nindex 908330a0a3d..00000000000\n--- a/.travis.yml\n+++ /dev/null\n@@ -1,60 +0,0 @@\n-language: c\n-\n-cache:\n-  directories:\n-    - $HOME/travis-cache\n-\n-os:\n-  - linux\n-  - osx\n-\n-osx_image: xcode10.1\n-\n-compiler:\n-  - clang\n-  - gcc\n-\n-matrix:\n-  include:\n-    - env: jobname=linux-gcc-default\n-      os: linux\n-      compiler:\n-      addons:\n-      before_install:\n-    - env: jobname=linux-gcc-4.8\n-      os: linux\n-      dist: trusty\n-      compiler:\n-    - env: jobname=Linux32\n-      os: linux\n-      compiler:\n-      addons:\n-      services:\n-        - docker\n-      before_install:\n-      script: ci/run-docker.sh\n-    - env: jobname=linux-musl\n-      os: linux\n-      compiler:\n-      addons:\n-      services:\n-        - docker\n-      before_install:\n-      script: ci/run-docker.sh\n-    - env: jobname=StaticAnalysis\n-      os: linux\n-      compiler:\n-      script: ci/run-static-analysis.sh\n-      after_failure:\n-    - env: jobname=Documentation\n-      os: linux\n-      compiler:\n-      script: ci/test-documentation.sh\n-      after_failure:\n-\n-before_install: ci/install-dependencies.sh\n-script: ci/run-build-and-tests.sh\n-after_failure: ci/print-test-failures.sh\n-\n-notifications:\n-  email: false\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 1d0e48f4515..92e11c7198e 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -13,7 +13,6 @@ UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl-dev libexpat-dev\n \n case \"$jobname\" in\n linux-clang|linux-gcc|linux-leaks)\n-\tsudo apt-add-repository -y \"ppa:ubuntu-toolchain-r/test\"\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n \t\t$UBUNTU_COMMON_PKGS\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 82cb17f8eea..73d959e87f7 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -34,7 +34,7 @@ save_good_tree () {\n # successfully before (e.g. because the branch got rebased, changing only\n # the commit messages).\n skip_good_tree () {\n-\tif test \"$TRAVIS_DEBUG_MODE\" = true || test true = \"$GITHUB_ACTIONS\"\n+\tif test true = \"$GITHUB_ACTIONS\"\n \tthen\n \t\treturn\n \tfi\n@@ -60,7 +60,7 @@ skip_good_tree () {\n \t\t\tcat <<-EOF\n \t\t\t$(tput setaf 2)Skipping build job for commit $CI_COMMIT.$(tput sgr0)\n \t\t\tThis commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.\n-\t\t\tThe log of that build job is available at $(url_for_job_id $prev_good_job_id)\n+\t\t\tThe log of that build job is available at $SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$prev_good_job_id\n \t\t\tTo force a re-build delete the branch's cache and then hit 'Restart job'.\n \t\t\tEOF\n \t\tfi\n@@ -91,29 +91,7 @@ export MAKEFLAGS=\n # and installing dependencies.\n set -ex\n \n-if test true = \"$TRAVIS\"\n-then\n-\tCI_TYPE=travis\n-\t# When building a PR, TRAVIS_BRANCH refers to the *target* branch. Not\n-\t# what we want here. We want the source branch instead.\n-\tCI_BRANCH=\"${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}\"\n-\tCI_COMMIT=\"$TRAVIS_COMMIT\"\n-\tCI_JOB_ID=\"$TRAVIS_JOB_ID\"\n-\tCI_JOB_NUMBER=\"$TRAVIS_JOB_NUMBER\"\n-\tCI_OS_NAME=\"$TRAVIS_OS_NAME\"\n-\tCI_REPO_SLUG=\"$TRAVIS_REPO_SLUG\"\n-\n-\tcache_dir=\"$HOME/travis-cache\"\n-\n-\turl_for_job_id () {\n-\t\techo \"https://travis-ci.org/$CI_REPO_SLUG/jobs/$1\"\n-\t}\n-\n-\tBREW_INSTALL_PACKAGES=\"git-lfs gettext\"\n-\texport GIT_PROVE_OPTS=\"--timer --jobs 3 --state=failed,slow,save\"\n-\texport GIT_TEST_OPTS=\"--verbose-log -x --immediate\"\n-\tMAKEFLAGS=\"$MAKEFLAGS --jobs=2\"\n-elif test -n \"$SYSTEM_COLLECTIONURI\" || test -n \"$SYSTEM_TASKDEFINITIONSURI\"\n+if test -n \"$SYSTEM_COLLECTIONURI\" || test -n \"$SYSTEM_TASKDEFINITIONSURI\"\n then\n \tCI_TYPE=azure-pipelines\n \t# We are running in Azure Pipelines\n@@ -130,10 +108,6 @@ then\n \t# among *all* phases)\n \tcache_dir=\"$HOME/test-cache/$SYSTEM_PHASENAME\"\n \n-\turl_for_job_id () {\n-\t\techo \"$SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$1\"\n-\t}\n-\n \texport GIT_PROVE_OPTS=\"--timer --jobs 10 --state=failed,slow,save\"\n \texport GIT_TEST_OPTS=\"--verbose-log -x --write-junit-xml\"\n \tMAKEFLAGS=\"$MAKEFLAGS --jobs=10\"\n@@ -214,11 +188,6 @@ osx-clang|osx-gcc)\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python2)\"\n \tfi\n-\n-\t# t9810 occasionally fails on Travis CI OS X\n-\t# t9816 occasionally fails with \"TAP out of sequence errors\" on\n-\t# Travis CI OS X\n-\texport GIT_SKIP_TESTS=\"t9810 t9816\"\n \t;;\n linux-gcc-default)\n \t;;\ndiff --git a/ci/print-test-failures.sh b/ci/print-test-failures.sh\nindex c70d6cdbf24..57277eefcd0 100755\n--- a/ci/print-test-failures.sh\n+++ b/ci/print-test-failures.sh\n@@ -39,8 +39,6 @@ do\n \t\ttest_name=\"${test_name##*/}\"\n \t\ttrash_dir=\"trash directory.$test_name\"\n \t\tcase \"$CI_TYPE\" in\n-\t\ttravis)\n-\t\t\t;;\n \t\tazure-pipelines)\n \t\t\tmkdir -p failed-test-artifacts\n \t\t\tmv \"$trash_dir\" failed-test-artifacts\n@@ -88,11 +86,3 @@ do\n \t\tfi\n \tfi\n done\n-\n-if [ $combined_trash_size -gt 0 ]\n-then\n-\techo \"------------------------------------------------------------------------\"\n-\techo \"Trash directories embedded in this log can be extracted by running:\"\n-\techo\n-\techo \"  curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh\"\n-fi\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 8d47a5fda3b..5d2764ad3a3 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -47,15 +47,6 @@ else\n \telse\n \t\tuseradd -u $HOST_UID $CI_USER\n \tfi\n-\n-\t# Due to a bug the test suite was run as root in the past, so\n-\t# a prove state file created back then is only accessible by\n-\t# root.  Now that bug is fixed, the test suite is run as a\n-\t# regular user, but the prove state file coming from Travis\n-\t# CI's cache might still be owned by root.\n-\t# Make sure that this user has rights to any cached files,\n-\t# including an existing prove state file.\n-\ttest -n \"$cache_dir\" && chown -R $HOST_UID:$HOST_UID \"$cache_dir\"\n fi\n \n # Build and test\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex 37fa372052d..b610dd4db84 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -25,7 +25,7 @@ docker pull \"$CI_CONTAINER\"\n # root@container:/# export jobname=<jobname>\n # root@container:/# /usr/src/git/ci/run-docker-build.sh <host-user-id>\n \n-container_cache_dir=/tmp/travis-cache\n+container_cache_dir=/tmp/container-cache\n \n docker run \\\n \t--interactive \\\n-- \n2.34.0.818.g0f23a581583\n\n"},{"id":"441846","messageId":"patch-v3-2.5-b09cd076aeb-20211120T115414Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","subject":"[PATCH v3 2/5] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:10:08Z","receivedAt":"2021-11-20T12:10:25Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the names used for the GitHub CI workflows to be short enough\nto (mostly) fit in the pop-up tool-tips that GitHub shows in the\ncommit view. I.e. when mouse-clicking on the passing or failing\ncheck-mark next to the commit subject.\n\nThese names are seemingly truncated to 17-20 characters followed by\nthree dots (\"...\"). Since a \"CI/PR / \" prefix is added to them the job\nnames looked like this before (windows-test and vs-test jobs omitted):\n\n    CI/PR / ci-config (p...\n    CI/PR / windows-buil...\n    CI/PR / vs-build (pu...\n    CI/PR / regular (lin...\n    CI/PR / regular (lin...\n    CI/PR / regular (os...\n    CI/PR / regular (os...\n    CI/PR / regular (lin...\n    CI/PR / regular (lin...\n    CI/PR / dockerized (...\n    CI/PR / dockerized (...\n    CI/PR / dockerized (...\n    CI/PR / static-anal...\n    CI/PR / sparse (pu...\n    CI/PR / documenta...\n\nBy omitting the \"/PR\" from the top-level name, and pushing the\n$jobname to the front we'll now instead get:\n\n    CI / config (push)\n    CI / win build (push...\n    CI / win+VS build (...\n    CI / linux-clang (ub...\n    CI / linux-gcc (ubun...\n    CI / osx-clang (osx)...\n    CI / osx-gcc (osx) (...\n    CI / linux-gcc-defau...\n    CI / linux-leaks (ub...\n    CI / linux-musl (alp...\n    CI / Linux32 (daald/...\n    CI / pedantic (fedor...\n    CI / static-analysis...\n    CI / sparse (push)...\n    CI / documentation\n\nWe then have no truncation in the expanded view. See [1] for how it\nlooked before, [2] for a currently visible CI run using this commit,\nand [3] for the GitHub workflow syntax involved being changed here.\n\nLet's also use the existing \"pool\" field as before. It's occasionally\nuseful to know we're running on say ubuntu v.s. fedora. The \"-latest\"\nsuffix is useful to some[4], and since it's now at the end it doesn't\nhurt readability in the short view compared to saying \"ubuntu\" or\n\"macos\".\n\n1. https://github.com/git/git/tree/master/\n2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-3\n3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n3. https://lore.kernel.org/git/d9b07ca5-b58d-a535-d25b-85d7f12e6295@github.com/\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml | 10 +++++++++-\n README.md                  |  2 +-\n 2 files changed, 10 insertions(+), 2 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 6ed6a9e8076..c7c10456572 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -1,4 +1,4 @@\n-name: CI/PR\n+name: CI\n \n on: [push, pull_request]\n \n@@ -7,6 +7,7 @@ env:\n \n jobs:\n   ci-config:\n+    name: config\n     runs-on: ubuntu-latest\n     outputs:\n       enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n@@ -77,6 +78,7 @@ jobs:\n             }\n \n   windows-build:\n+    name: win build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     runs-on: windows-latest\n@@ -97,6 +99,7 @@ jobs:\n         name: windows-artifacts\n         path: artifacts\n   windows-test:\n+    name: win test\n     runs-on: windows-latest\n     needs: [windows-build]\n     strategy:\n@@ -127,6 +130,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   vs-build:\n+    name: win+VS build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\n@@ -178,6 +182,7 @@ jobs:\n         name: vs-artifacts\n         path: artifacts\n   vs-test:\n+    name: win+VS test\n     runs-on: windows-latest\n     needs: vs-build\n     strategy:\n@@ -210,6 +215,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   regular:\n+    name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -251,6 +257,7 @@ jobs:\n         name: failed-tests-${{matrix.vector.jobname}}\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   dockerized:\n+    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -310,6 +317,7 @@ jobs:\n       run: ci/install-dependencies.sh\n     - run: make sparse\n   documentation:\n+    name: documentation\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\ndiff --git a/README.md b/README.md\nindex eb8115e6b04..f6f43e78deb 100644\n--- a/README.md\n+++ b/README.md\n@@ -1,4 +1,4 @@\n-[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n+[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n \n Git - fast, scalable, distributed revision control system\n =========================================================\n-- \n2.34.0.818.g0f23a581583\n\n"},{"id":"441847","messageId":"patch-v3-5.5-877f27d847c-20211120T115414Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","subject":"[PATCH v3 5/5] CI: don't run \"make test\" twice in one job","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:10:11Z","receivedAt":"2021-11-20T12:10:29Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"The \"linux-clang\" and \"linux-gcc\" jobs both run \"make test\" twice, but\nwith different environment variables. Running these in sequence seems\nto have been done to work around some constraint on Travis, see\nae59a4e44f3 (travis: run tests with GIT_TEST_SPLIT_INDEX, 2018-01-07).\n\nBy having these run in parallel we'll get jobs that finish much sooner\nthan they otherwise would have.\n\nWe can also simplify the control flow in \"ci/run-build-and-tests.sh\"\nas a result, since we won't run \"make test\" twice we don't need to run\n\"make\" twice at all, let's default to \"make all test\" after setting\nthe variables, and then override it to just \"all\" for the compile-only\ntests.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml |  9 +++++++++\n ci/run-build-and-tests.sh  | 26 ++++++++++++--------------\n 2 files changed, 21 insertions(+), 14 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex d402402a18b..628bcbf495e 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -225,10 +225,19 @@ jobs:\n           - jobname: linux-clang\n             cc: clang\n             pool: ubuntu-latest\n+          - jobname: linux-sha256\n+            cc: clang\n+            os: ubuntu\n+            pool: ubuntu-latest\n           - jobname: linux-gcc\n             cc: gcc\n             cc_package: gcc-8\n             pool: ubuntu-latest\n+          - jobname: linux-TEST-vars\n+            cc: gcc\n+            os: ubuntu\n+            cc_package: gcc-8\n+            pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n             pool: macos-latest\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex cc62616d806..16840b2065d 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -10,16 +10,13 @@ windows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n *) ln -s \"$cache_dir/.prove\" t/.prove;;\n esac\n \n-if test \"$jobname\" = \"pedantic\"\n-then\n-\texport DEVOPTS=pedantic\n-fi\n+export MAKE_TARGETS=\"all test\"\n \n-make\n case \"$jobname\" in\n linux-gcc)\n \texport GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main\n-\tmake test\n+\t;;\n+linux-TEST-vars)\n \texport GIT_TEST_SPLIT_INDEX=yes\n \texport GIT_TEST_MERGE_ALGORITHM=recursive\n \texport GIT_TEST_FULL_IN_PACK_ARRAY=true\n@@ -33,23 +30,24 @@ linux-gcc)\n \texport GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master\n \texport GIT_TEST_WRITE_REV_INDEX=1\n \texport GIT_TEST_CHECKOUT_WORKERS=2\n-\tmake test\n \t;;\n linux-clang)\n \texport GIT_TEST_DEFAULT_HASH=sha1\n-\tmake test\n+\t;;\n+linux-sha256)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n-\tmake test\n \t;;\n-linux-gcc-4.8|pedantic)\n-\t# Don't run the tests; we only care about whether Git can be\n-\t# built with GCC 4.8 or with pedantic\n+pedantic)\n+\texport DEVOPTS=pedantic\n+\texport MAKE_TARGETS=all\n \t;;\n-*)\n-\tmake test\n+linux-gcc-4.8)\n+\texport MAKE_TARGETS=all\n \t;;\n esac\n \n+make $MAKE_TARGETS\n+\n check_unignored_build_artifacts\n \n save_good_tree\n-- \n2.34.0.818.g0f23a581583\n\n"},{"id":"441848","messageId":"patch-v3-4.5-54913e775c1-20211120T115414Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","subject":"[PATCH v3 4/5] CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:10:10Z","receivedAt":"2021-11-20T12:10:30Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the setup hooks for the CI to use \"$runs_on_pool\" for the\n\"$regular\" job. Now we won't need as much boilerplate when adding new\njobs to the \"regular\" matrix, see 956d2e4639b (tests: add a test mode\nfor SANITIZE=leak, run it in CI, 2021-09-23) for the last such commit.\n\nI.e. now instead of needing to enumerate each jobname when we select\npackages we can install things depending on the pool we're running\nin.\n\nThat we didn't do this dates back to the now gone dependency on Travis\nCI, but even if we add a new CI target in the future this'll be easier\nto port over, since we can probably treat \"ubuntu-latest\" as a\nstand-in for some recent Linux that can run \"apt\" commands.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml |  4 ++++\n ci/install-dependencies.sh | 32 ++++++++++++++------------------\n ci/lib.sh                  | 21 +++++++++++----------\n 3 files changed, 29 insertions(+), 28 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 91b565f75bb..d402402a18b 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -227,12 +227,14 @@ jobs:\n             pool: ubuntu-latest\n           - jobname: linux-gcc\n             cc: gcc\n+            cc_package: gcc-8\n             pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n             pool: macos-latest\n           - jobname: osx-gcc\n             cc: gcc\n+            cc_package: gcc-9\n             pool: macos-latest\n           - jobname: linux-gcc-default\n             cc: gcc\n@@ -242,7 +244,9 @@ jobs:\n             pool: ubuntu-latest\n     env:\n       CC: ${{matrix.vector.cc}}\n+      CC_PACKAGE: ${{matrix.vector.cc_package}}\n       jobname: ${{matrix.vector.jobname}}\n+      runs_on_pool: ${{matrix.vector.pool}}\n     runs-on: ${{matrix.vector.pool}}\n     steps:\n     - uses: actions/checkout@v2\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 92e11c7198e..ca1eaa49c14 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -11,17 +11,11 @@ UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl-dev libexpat-dev\n  tcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl\n  libemail-valid-perl libio-socket-ssl-perl libnet-smtp-ssl-perl\"\n \n-case \"$jobname\" in\n-linux-clang|linux-gcc|linux-leaks)\n+case \"$runs_on_pool\" in\n+ubuntu-latest)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n-\t\t$UBUNTU_COMMON_PKGS\n-\tcase \"$jobname\" in\n-\tlinux-gcc)\n-\t\tsudo apt-get -q -y install gcc-8\n-\t\t;;\n-\tesac\n-\n+\t\t$UBUNTU_COMMON_PKGS $CC_PACKAGE\n \tmkdir --parents \"$P4_PATH\"\n \tpushd \"$P4_PATH\"\n \t\twget --quiet \"$P4WHENCE/bin.linux26x86_64/p4d\"\n@@ -36,7 +30,7 @@ linux-clang|linux-gcc|linux-leaks)\n \t\tcp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .\n \tpopd\n \t;;\n-osx-clang|osx-gcc)\n+macos-latest)\n \texport HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1\n \t# Uncomment this if you want to run perf tests:\n \t# brew install gnu-time\n@@ -50,15 +44,17 @@ osx-clang|osx-gcc)\n \t\tbrew install --cask --no-quarantine perforce\n \t} ||\n \tbrew install homebrew/cask/perforce\n-\tcase \"$jobname\" in\n-\tosx-gcc)\n-\t\tbrew install gcc@9\n-\t\t# Just in case the image is updated to contain gcc@9\n-\t\t# pre-installed but not linked.\n-\t\tbrew link gcc@9\n-\t\t;;\n-\tesac\n+\n+\tif test -n \"$CC_PACKAGE\"\n+\tthen\n+\t\tBREW_PACKAGE=${CC_PACKAGE/-/@}\n+\t\tbrew install \"$BREW_PACKAGE\"\n+\t\tbrew link \"$BREW_PACKAGE\"\n+\tfi\n \t;;\n+esac\n+\n+case \"$jobname\" in\n StaticAnalysis)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 0b3b0144882..cbc2f8f1caa 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -156,11 +156,15 @@ export DEFAULT_TEST_TARGET=prove\n export GIT_TEST_CLONE_2GB=true\n export SKIP_DASHED_BUILT_INS=YesPlease\n \n-case \"$jobname\" in\n-linux-clang|linux-gcc|linux-leaks)\n+case \"$runs_on_pool\" in\n+ubuntu-latest)\n+\tif test \"$jobname\" = \"linux-gcc-default\"\n+\tthen\n+\t\tbreak\n+\tfi\n+\n \tif [ \"$jobname\" = linux-gcc ]\n \tthen\n-\t\texport CC=gcc-8\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python3\"\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python2\"\n@@ -180,17 +184,17 @@ linux-clang|linux-gcc|linux-leaks)\n \tGIT_LFS_PATH=\"$HOME/custom/git-lfs\"\n \texport PATH=\"$GIT_LFS_PATH:$P4_PATH:$PATH\"\n \t;;\n-osx-clang|osx-gcc)\n+macos-latest)\n \tif [ \"$jobname\" = osx-gcc ]\n \tthen\n-\t\texport CC=gcc-9\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python3)\"\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python2)\"\n \tfi\n \t;;\n-linux-gcc-default)\n-\t;;\n+esac\n+\n+case \"$jobname\" in\n linux32)\n \tCC=gcc\n \t;;\n@@ -200,9 +204,6 @@ linux-musl)\n \tMAKEFLAGS=\"$MAKEFLAGS NO_REGEX=Yes ICONV_OMITS_BOM=Yes\"\n \tMAKEFLAGS=\"$MAKEFLAGS GIT_TEST_UTF8_LOCALE=C.UTF-8\"\n \t;;\n-esac\n-\n-case \"$jobname\" in\n linux-leaks)\n \texport SANITIZE=leak\n \texport GIT_TEST_PASSING_SANITIZE_LEAK=true\n-- \n2.34.0.818.g0f23a581583\n\n"},{"id":"441849","messageId":"patch-v3-3.5-fb1b0ecbadd-20211120T115414Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","subject":"[PATCH v3 3/5] CI: rename the \"Linux32\" job to lower-case \"linux32\"","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:10:09Z","receivedAt":"2021-11-20T12:10:30Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"As a follow-up to the preceding commit's shortening of CI job names,\nrename the only job that starts with an upper-case letter to be\nconsistent with the rest. It was added in 88dedd5e72c (Travis: also\ntest on 32-bit Linux, 2017-03-05).\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml        | 3 ++-\n ci/install-docker-dependencies.sh | 2 +-\n ci/lib.sh                         | 2 +-\n ci/run-docker-build.sh            | 2 +-\n ci/run-docker.sh                  | 2 +-\n 5 files changed, 6 insertions(+), 5 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex c7c10456572..91b565f75bb 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -266,7 +266,8 @@ jobs:\n         vector:\n         - jobname: linux-musl\n           image: alpine\n-        - jobname: Linux32\n+        - jobname: linux32\n+          os: ubuntu32\n           image: daald/ubuntu32:xenial\n         - jobname: pedantic\n           image: fedora\ndiff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh\nindex 07a8c6b199d..78b7e326da6 100755\n--- a/ci/install-docker-dependencies.sh\n+++ b/ci/install-docker-dependencies.sh\n@@ -4,7 +4,7 @@\n #\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tlinux32 --32bit i386 sh -c '\n \t\tapt update >/dev/null &&\n \t\tapt install -y build-essential libcurl4-openssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 73d959e87f7..0b3b0144882 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -191,7 +191,7 @@ osx-clang|osx-gcc)\n \t;;\n linux-gcc-default)\n \t;;\n-Linux32)\n+linux32)\n \tCC=gcc\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 5d2764ad3a3..6cd832efb9c 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -15,7 +15,7 @@ then\n fi\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tswitch_cmd=\"linux32 --32bit i386\"\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex b610dd4db84..af89d1624a4 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -6,7 +6,7 @@\n . ${0%/*}/lib.sh\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tCI_CONTAINER=\"daald/ubuntu32:xenial\"\n \t;;\n linux-musl)\n-- \n2.34.0.818.g0f23a581583\n\n"},{"id":"441850","messageId":"211120.86k0h30zuw.gmgdl@evledraar.gmail.com","threadId":"56942","inReplyTo":"BED25714-4917-46CB-AAD4-C30158A7A42C@gmx.de","subject":"Re: [PATCH v2 0/6] CI: Remove Travis CI, shorten names for GH tooltips, split jobs","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-20T12:14:51Z","receivedAt":"2021-11-20T12:35:08Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Sat, Nov 20 2021, Johannes Schindelin wrote:\n\n> On November 20, 2021 4:28:30 AM GMT+01:00, \"Ævar Arnfjörð Bjarmason\" <avarab@gmail.com> wrote:\n>>\n>>  CI: remove Travis CI support\n>\n> This is a patch I am in favor of, and would prefer in its own patch\n> \"series\": separation of concern, and consideration in avoiding\n> reviewer fatigue, are two aspects I would like to see you optimize for\n> a bit more.\n\nIt's included due to a comment on the v1 from Jeff King. I could have\ngone either way, but I'm not going to change it around now.\n\nI think it's fair enough to keep up the quality of series's, but I also\ndon't think it would help to go back & forth with including or not\nincluding this travis removal.\n\nIf I don't include it I've got to patch \"dead\" code for the rest of the\nseries, if I re-roll and have two sets of patches depending on each\nother that's its own reviewer fatigue etc.\n\nFor some counter-advice it would be nice to see you optimize for\nresponding to reviews, cf.:\nhttps://lore.kernel.org/git/211118.86zgq14jp1.gmgdl@evledraar.gmail.com/\n:)\n\n>>  CI: use shorter names that fit in UX tooltips\n>>  CI: rename the \"Linux32\" job to lower-case \"linux32\"\n>>  CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n>\n> These strike me as simply shuffling things around and ramping up commit count in git/git, without actually addressing any of the problems our GitHub workflow _definitely_ has.\n>\n> One quite obvious problem is that any failing run is very cumbersome\n> to diagnose, and you kind of have to know where you're looking. A\n> troublesome and off-putting experience for newcomers (and even some\n> oldtimers). You have to expand the print-failures step logs and search\n> for \"not ok\" to get even close to the relevant part of the failing\n> test case's details.\n>\n> Yes, addressing this would be much harder and take more effort than just going ahead and renaming things. It would also be much more useful.\n\nFWIW I do have patches for that, but getting anything in takes time etc.\n\nTo do that properly needed to parse TAP, which I've got patches for in\npure-C (not Perl or whatever) locally.\n\nOne of the reasons I didn't submit that UX improvement yet is because I\nknow it'll run afoul of one of your hobby horses.\n\nI.e. I'll either need to fix in-tree dead code relating to the test\nsuite's XML generation blindly (it's not used, so how am I going to test\nit?), or argue with you about it being worth to remove it to move the\ntest suite UX forward without having to spending time on it.\n\nAnother is that someone (I think SZEDER, hopefully I'm not\nmisattributing there) pointed out that they liked to have the current\nprint-failure firehose of \"set -x\" output for both failures and\nsuccesses, and would object to e.g. something that just peeled out the\nspecific failure output.\n\nI don't think that opinion is wrong (if I even understood it\ncorrectl). I disagree, but I see how it's clearly a matter of\npreference. Some would like that, some don't.\n\nBut whatever anyone's preference on that I think it clearly shows that\nwhat you're suggesting here isn't as easy as you make it\nout.\n\nI.e. something to the effect of \"instead of renaming things work on\n<thing I consider a clear UX improvement>\".\n\nEven if I agree that it would be an improvement in this case others\nwon't, and getting that past review is a matter of arguing about that,\naddressing feedback on that topic etc.\n\nThe reason I submitted this is because I thought \"I'd like to rename\nthis thing, not because of bikeshedding, but because I literally cannot\nsee the relevant information\" wouldn't be in any way contentious, but\nhere we are :)\n\nIf you'd like to test some of that referenced UX work out it's\navar/support-test-verbose-under-prove-2 in my git.git clone (the CI\nchanges aren't there yet, but they're made easy by the changes).\n\n>>  CI: don't run \"make test\" twice in one job\n>\n> I am in favor of the idea. As is obvious from the fact that I already proposed this years ago.\n>\n> The commit message, however, is mum about that. And about the reasons\n> why my proposal was shot down. And why those reasons should somehow no\n> longer apply (and I would strongly suggest to aim for providing\n> convincing evidence over mere opinions, to back up the patch).\n>\n> As has been mentioned before, this lack of diligence is\n> disappointing. Reviewers should not be forced to look up previous\n> related discussions on the Git mailing list. I would do that for a\n> first-time contributor, but you are a long-term contributor who\n> clearly has the ability, the knowledge, and the time, to accompany\n> patches with such vital information.\n\nI think in terms of over-explaining something in commit messages &\nincluding references to past commit I'm doing better than most in terms\nof commit messages to this project.\n\nBut you've got to stop somewhere, exhaustive explanations of past\ncaveats etc. are also its own fatigue.\n\nIn this case I think the explanations I've provided as they stand\nsuffice. Curious archaeologists can always dig in the archives for more.\n\n>>  CI: run \"documentation\" via run-build-and-test.sh\n>\n> This patch has a commit message that explains what the patch does, and describes a little bit of related commit history.\n>\n> It does not talk about any convincing reasons why the change should be desirable.\n\nI just ejected this in v3, yeah it's a bit of a mixed bag with the\nruntime of the installation.\n\nThe benefit, which I thought was a bit too obvious to even point out, is\nthat you can plainly see which half of asciidoc/asciidoctor fails, or\nboth. So it's clear if it's a compatibility issue or doc ource issue.\n\n> This is troubling, in particular since it counteracts the major benefit of the preceding patch: to reduce the jobs' runtime.\n>\n> Also, while the preceding patch makes each job's focus more obvious,\n> so that it no longer requires careful study of the entire test log\n> merely to find out which `GIT_TEST_*` settings are set, _this_ patch\n> crams the check-docs into the same job as the pretty unrelated test\n> suite run. In other words, it combines even _more unrelated_ things\n> into the same job.\n\nThe \"check-docs\" run was already there in the pre-image, so nothing\nchanged there.\n\nI agree that it would be beneficial to e.g. split out all this ci/\nscript wrapping into \"make\" targets at the top-level, but that's a\nseparate future improvement.\n\n> [...]\n"},{"id":"441859","messageId":"c821d1ed-fc1b-4d75-ad3f-b86d9899b306@github.com","threadId":"56942","inReplyTo":"patch-v3-2.5-b09cd076aeb-20211120T115414Z-avarab@gmail.com","subject":"Re: [PATCH v3 2/5] CI: use shorter names that fit in UX tooltips","fromName":"Victoria Dye","fromEmail":"vdye@github.com","sentAt":"2021-11-20T19:06:03Z","receivedAt":"2021-11-20T19:06:10Z","isPatch":true,"sender":{"key":"vdye@github.com","avatar":"https://avatars.githubusercontent.com/u/3619353?v=4"},"body":"Ævar Arnfjörð Bjarmason wrote:\n> Change the names used for the GitHub CI workflows to be short enough\n> to (mostly) fit in the pop-up tool-tips that GitHub shows in the\n> commit view. I.e. when mouse-clicking on the passing or failing\n> check-mark next to the commit subject.\n> \n> These names are seemingly truncated to 17-20 characters followed by\n> three dots (\"...\"). Since a \"CI/PR / \" prefix is added to them the job\n> names looked like this before (windows-test and vs-test jobs omitted):\n> \n>     CI/PR / ci-config (p...\n>     CI/PR / windows-buil...\n>     CI/PR / vs-build (pu...\n>     CI/PR / regular (lin...\n>     CI/PR / regular (lin...\n>     CI/PR / regular (os...\n>     CI/PR / regular (os...\n>     CI/PR / regular (lin...\n>     CI/PR / regular (lin...\n>     CI/PR / dockerized (...\n>     CI/PR / dockerized (...\n>     CI/PR / dockerized (...\n>     CI/PR / static-anal...\n>     CI/PR / sparse (pu...\n>     CI/PR / documenta...\n> \n> By omitting the \"/PR\" from the top-level name, and pushing the\n> $jobname to the front we'll now instead get:\n> \n>     CI / config (push)\n>     CI / win build (push...\n>     CI / win+VS build (...\n>     CI / linux-clang (ub...\n>     CI / linux-gcc (ubun...\n>     CI / osx-clang (osx)...\n>     CI / osx-gcc (osx) (...\n>     CI / linux-gcc-defau...\n>     CI / linux-leaks (ub...\n>     CI / linux-musl (alp...\n>     CI / Linux32 (daald/...\n>     CI / pedantic (fedor...\n>     CI / static-analysis...\n>     CI / sparse (push)...\n>     CI / documentation\n> \n> We then have no truncation in the expanded view. See [1] for how it\n> looked before, [2] for a currently visible CI run using this commit,\n> and [3] for the GitHub workflow syntax involved being changed here.\n> \n> Let's also use the existing \"pool\" field as before. It's occasionally\n> useful to know we're running on say ubuntu v.s. fedora. The \"-latest\"\n> suffix is useful to some[4], and since it's now at the end it doesn't\n> hurt readability in the short view compared to saying \"ubuntu\" or\n> \"macos\".\n> \n> 1. https://github.com/git/git/tree/master/\n> 2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-3\n> 3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n> 3. https://lore.kernel.org/git/d9b07ca5-b58d-a535-d25b-85d7f12e6295@github.com/\n> \n> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n> ---\n>  .github/workflows/main.yml | 10 +++++++++-\n>  README.md                  |  2 +-\n>  2 files changed, 10 insertions(+), 2 deletions(-)\n> \n> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> index 6ed6a9e8076..c7c10456572 100644\n> --- a/.github/workflows/main.yml\n> +++ b/.github/workflows/main.yml\n> @@ -1,4 +1,4 @@\n> -name: CI/PR\n> +name: CI\n>  \n>  on: [push, pull_request]\n>  \n> @@ -7,6 +7,7 @@ env:\n>  \n>  jobs:\n>    ci-config:\n> +    name: config\n>      runs-on: ubuntu-latest\n>      outputs:\n>        enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n> @@ -77,6 +78,7 @@ jobs:\n>              }\n>  \n>    windows-build:\n> +    name: win build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      runs-on: windows-latest\n> @@ -97,6 +99,7 @@ jobs:\n>          name: windows-artifacts\n>          path: artifacts\n>    windows-test:\n> +    name: win test\n>      runs-on: windows-latest\n>      needs: [windows-build]\n>      strategy:\n> @@ -127,6 +130,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    vs-build:\n> +    name: win+VS build\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> @@ -178,6 +182,7 @@ jobs:\n>          name: vs-artifacts\n>          path: artifacts\n>    vs-test:\n> +    name: win+VS test\n>      runs-on: windows-latest\n>      needs: vs-build\n>      strategy:\n> @@ -210,6 +215,7 @@ jobs:\n>          name: failed-tests-windows\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    regular:\n> +    name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -251,6 +257,7 @@ jobs:\n>          name: failed-tests-${{matrix.vector.jobname}}\n>          path: ${{env.FAILED_TEST_ARTIFACTS}}\n>    dockerized:\n> +    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      strategy:\n> @@ -310,6 +317,7 @@ jobs:\n>        run: ci/install-dependencies.sh\n>      - run: make sparse\n>    documentation:\n> +    name: documentation\n>      needs: ci-config\n>      if: needs.ci-config.outputs.enabled == 'yes'\n>      env:\n> diff --git a/README.md b/README.md\n> index eb8115e6b04..f6f43e78deb 100644\n> --- a/README.md\n> +++ b/README.md\n> @@ -1,4 +1,4 @@\n> -[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n> +[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n>  \n>  Git - fast, scalable, distributed revision control system\n>  =========================================================\n> \n\nThis addresses all of my earlier comments - looks good to me!\n"},{"id":"441880","messageId":"xmqq1r3anfck.fsf@gitster.g","threadId":"56942","inReplyTo":"patch-v3-4.5-54913e775c1-20211120T115414Z-avarab@gmail.com","subject":"Re: [PATCH v3 4/5] CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-11-21T07:21:47Z","receivedAt":"2021-11-21T07:21:51Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n\n> -case \"$jobname\" in\n> -linux-clang|linux-gcc|linux-leaks)\n> +case \"$runs_on_pool\" in\n> +ubuntu-latest)\n>  \tsudo apt-get -q update\n> ...\n>  \t;;\n> -osx-clang|osx-gcc)\n> +macos-latest)\n>  \texport HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1\n\nIndeed this is nice improvement in maintainability.\n"},{"id":"442164","messageId":"cover-v4-0.5-00000000000-20211123T134300Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com","subject":"[PATCH v4 0/5] CI: Remove Travis CI, shorten names for GH tooltips, split jobs","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-23T16:29:07Z","receivedAt":"2021-11-23T16:29:37Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"A small update to the v3[1] of this series of CI UX improvements. A CI\nrun can be seen at:\n\n    https://github.com/avar/git/runs/4299892497\n\nAnd the improvement to tooltips by shortening them at (click on the CI\nstatus symbol next to the commit subject):\n\n    https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-4\n\nFor comparison, the same for \"master\":\n\n    https://github.com/git/git/runs/4289544907\n    https://github.com/git/git/tree/master\n\nChanges:\n\n * In removing Travis support I omitted the removal of now-dead\n   linux-gcc-4.8 supporting code. Remove it too.\n\n * Clarify with a comment where new test targets in\n   ci/run-build-and-tests.sh need to be added, to avoid a repeat of\n   running new tests in the compilation-only \"pedantic\" job.\n\n1. https://lore.kernel.org/git/cover-v3-0.5-00000000000-20211120T115414Z-avarab@gmail.com/\n\nÆvar Arnfjörð Bjarmason (5):\n  CI: remove Travis CI support\n  CI: use shorter names that fit in UX tooltips\n  CI: rename the \"Linux32\" job to lower-case \"linux32\"\n  CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n  CI: don't run \"make test\" twice in one job\n\n .github/workflows/main.yml        | 26 ++++++++++++--\n .travis.yml                       | 60 -------------------------------\n README.md                         |  2 +-\n ci/install-dependencies.sh        | 35 ++++++++----------\n ci/install-docker-dependencies.sh |  2 +-\n ci/lib.sh                         | 60 ++++++++-----------------------\n ci/print-test-failures.sh         | 10 ------\n ci/run-build-and-tests.sh         | 27 +++++++-------\n ci/run-docker-build.sh            | 11 +-----\n ci/run-docker.sh                  |  4 +--\n 10 files changed, 72 insertions(+), 165 deletions(-)\n delete mode 100644 .travis.yml\n\nRange-diff against v3:\n1:  96433bcc02f ! 1:  6a4f1961cd2 CI: remove Travis CI support\n    @@ Commit message\n         into more general code. See 0f0c51181df (travis-ci: install packages\n         in 'ci/install-dependencies.sh', 2018-11-01).\n     \n    +    Remove the \"linux-gcc-4.8\" job added in fb9d7431cf4 (travis-ci: build\n    +    with GCC 4.8 as well, 2019-07-18), it only ran in Travis CI.\n    +\n         1. https://travis-ci.org/github/git/git/builds\n     \n         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n    @@ ci/install-dependencies.sh: UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl\n      \tsudo apt-get -q update\n      \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n      \t\t$UBUNTU_COMMON_PKGS\n    +@@ ci/install-dependencies.sh: Documentation)\n    + \ttest -n \"$ALREADY_HAVE_ASCIIDOCTOR\" ||\n    + \tsudo gem install --version 1.5.8 asciidoctor\n    + \t;;\n    +-linux-gcc-default|linux-gcc-4.8)\n    ++linux-gcc-default)\n    + \tsudo apt-get -q update\n    + \tsudo apt-get -q -y install $UBUNTU_COMMON_PKGS\n    + \t;;\n     \n      ## ci/lib.sh ##\n     @@ ci/lib.sh: save_good_tree () {\n    @@ ci/print-test-failures.sh: do\n     -\techo \"  curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh\"\n     -fi\n     \n    + ## ci/run-build-and-tests.sh ##\n    +@@ ci/run-build-and-tests.sh: linux-clang)\n    + \texport GIT_TEST_DEFAULT_HASH=sha256\n    + \tmake test\n    + \t;;\n    +-linux-gcc-4.8|pedantic)\n    ++pedantic)\n    + \t# Don't run the tests; we only care about whether Git can be\n    +-\t# built with GCC 4.8 or with pedantic\n    ++\t# built.\n    + \t;;\n    + *)\n    + \tmake test\n    +\n      ## ci/run-docker-build.sh ##\n     @@ ci/run-docker-build.sh: else\n      \telse\n2:  b09cd076aeb = 2:  5d53b79347f CI: use shorter names that fit in UX tooltips\n3:  fb1b0ecbadd = 3:  37b97fc6c3a CI: rename the \"Linux32\" job to lower-case \"linux32\"\n4:  54913e775c1 = 4:  614a99f7b64 CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config\n5:  877f27d847c ! 5:  ee2f9254fc7 CI: don't run \"make test\" twice in one job\n    @@ Commit message\n         the variables, and then override it to just \"all\" for the compile-only\n         tests.\n     \n    +    Add a comment to clarify that new \"test\" targets should adjust\n    +    $MAKE_TARGETS rather than being added after the \"case/esac\". This\n    +    should avoid future confusion where e.g. the compilation-only\n    +    \"pedantic\" target will unexpectedly start running tests. See [1] and\n    +    [2].\n    +\n    +    1. https://lore.kernel.org/git/211122.86ee78yxts.gmgdl@evledraar.gmail.com/\n    +    2. https://lore.kernel.org/git/211123.86ilwjujmd.gmgdl@evledraar.gmail.com/\n    +\n         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n     \n      ## .github/workflows/main.yml ##\n    @@ ci/run-build-and-tests.sh: linux-gcc)\n      \texport GIT_TEST_DEFAULT_HASH=sha256\n     -\tmake test\n      \t;;\n    --linux-gcc-4.8|pedantic)\n    --\t# Don't run the tests; we only care about whether Git can be\n    --\t# built with GCC 4.8 or with pedantic\n    -+pedantic)\n    -+\texport DEVOPTS=pedantic\n    -+\texport MAKE_TARGETS=all\n    - \t;;\n    + pedantic)\n    + \t# Don't run the tests; we only care about whether Git can be\n    + \t# built.\n    +-\t;;\n     -*)\n     -\tmake test\n    -+linux-gcc-4.8)\n    ++\texport DEVOPTS=pedantic\n     +\texport MAKE_TARGETS=all\n      \t;;\n      esac\n      \n    ++# Any new \"test\" targets should not go after this \"make\", but should\n    ++# adjust $MAKE_TARGETS. Otherwise compilation-only targets above will\n    ++# start running tests.\n     +make $MAKE_TARGETS\n    -+\n      check_unignored_build_artifacts\n      \n      save_good_tree\n-- \n2.34.0.830.gb9cdc59c8af\n\n"},{"id":"442165","messageId":"patch-v4-1.5-6a4f1961cd2-20211123T134300Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v4-0.5-00000000000-20211123T134300Z-avarab@gmail.com","subject":"[PATCH v4 1/5] CI: remove Travis CI support","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-23T16:29:08Z","receivedAt":"2021-11-23T16:29:39Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Remove support for running the CI in travis. The last builds in it are\nfrom 5 months ago[1] (as of 2021-11-19), and our documentation has\nreferred to GitHub CI instead since f003a91f5c5 (SubmittingPatches:\nreplace discussion of Travis with GitHub Actions, 2021-07-22).\n\nWe'll now run the \"t9810 t9816\" and tests on OSX. We didn't before, as\nwe'd carried the Travis exclusion of them forward from\n522354d70f4 (Add Travis CI support, 2015-11-27). Let's hope whatever\nissue there was with them was either Travis specific, or fixed since\nthen (I'm not sure).\n\nThe \"apt-add-repository\" invocation (which we were doing in GitHub CI)\nisn't needed, it was another Travis-only case that was carried forward\ninto more general code. See 0f0c51181df (travis-ci: install packages\nin 'ci/install-dependencies.sh', 2018-11-01).\n\nRemove the \"linux-gcc-4.8\" job added in fb9d7431cf4 (travis-ci: build\nwith GCC 4.8 as well, 2019-07-18), it only ran in Travis CI.\n\n1. https://travis-ci.org/github/git/git/builds\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .travis.yml                | 60 --------------------------------------\n ci/install-dependencies.sh |  3 +-\n ci/lib.sh                  | 37 ++---------------------\n ci/print-test-failures.sh  | 10 -------\n ci/run-build-and-tests.sh  |  4 +--\n ci/run-docker-build.sh     |  9 ------\n ci/run-docker.sh           |  2 +-\n 7 files changed, 7 insertions(+), 118 deletions(-)\n delete mode 100644 .travis.yml\n\ndiff --git a/.travis.yml b/.travis.yml\ndeleted file mode 100644\nindex 908330a0a3d..00000000000\n--- a/.travis.yml\n+++ /dev/null\n@@ -1,60 +0,0 @@\n-language: c\n-\n-cache:\n-  directories:\n-    - $HOME/travis-cache\n-\n-os:\n-  - linux\n-  - osx\n-\n-osx_image: xcode10.1\n-\n-compiler:\n-  - clang\n-  - gcc\n-\n-matrix:\n-  include:\n-    - env: jobname=linux-gcc-default\n-      os: linux\n-      compiler:\n-      addons:\n-      before_install:\n-    - env: jobname=linux-gcc-4.8\n-      os: linux\n-      dist: trusty\n-      compiler:\n-    - env: jobname=Linux32\n-      os: linux\n-      compiler:\n-      addons:\n-      services:\n-        - docker\n-      before_install:\n-      script: ci/run-docker.sh\n-    - env: jobname=linux-musl\n-      os: linux\n-      compiler:\n-      addons:\n-      services:\n-        - docker\n-      before_install:\n-      script: ci/run-docker.sh\n-    - env: jobname=StaticAnalysis\n-      os: linux\n-      compiler:\n-      script: ci/run-static-analysis.sh\n-      after_failure:\n-    - env: jobname=Documentation\n-      os: linux\n-      compiler:\n-      script: ci/test-documentation.sh\n-      after_failure:\n-\n-before_install: ci/install-dependencies.sh\n-script: ci/run-build-and-tests.sh\n-after_failure: ci/print-test-failures.sh\n-\n-notifications:\n-  email: false\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 1d0e48f4515..49a4ae7a988 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -13,7 +13,6 @@ UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl-dev libexpat-dev\n \n case \"$jobname\" in\n linux-clang|linux-gcc|linux-leaks)\n-\tsudo apt-add-repository -y \"ppa:ubuntu-toolchain-r/test\"\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n \t\t$UBUNTU_COMMON_PKGS\n@@ -77,7 +76,7 @@ Documentation)\n \ttest -n \"$ALREADY_HAVE_ASCIIDOCTOR\" ||\n \tsudo gem install --version 1.5.8 asciidoctor\n \t;;\n-linux-gcc-default|linux-gcc-4.8)\n+linux-gcc-default)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install $UBUNTU_COMMON_PKGS\n \t;;\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 82cb17f8eea..73d959e87f7 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -34,7 +34,7 @@ save_good_tree () {\n # successfully before (e.g. because the branch got rebased, changing only\n # the commit messages).\n skip_good_tree () {\n-\tif test \"$TRAVIS_DEBUG_MODE\" = true || test true = \"$GITHUB_ACTIONS\"\n+\tif test true = \"$GITHUB_ACTIONS\"\n \tthen\n \t\treturn\n \tfi\n@@ -60,7 +60,7 @@ skip_good_tree () {\n \t\t\tcat <<-EOF\n \t\t\t$(tput setaf 2)Skipping build job for commit $CI_COMMIT.$(tput sgr0)\n \t\t\tThis commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.\n-\t\t\tThe log of that build job is available at $(url_for_job_id $prev_good_job_id)\n+\t\t\tThe log of that build job is available at $SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$prev_good_job_id\n \t\t\tTo force a re-build delete the branch's cache and then hit 'Restart job'.\n \t\t\tEOF\n \t\tfi\n@@ -91,29 +91,7 @@ export MAKEFLAGS=\n # and installing dependencies.\n set -ex\n \n-if test true = \"$TRAVIS\"\n-then\n-\tCI_TYPE=travis\n-\t# When building a PR, TRAVIS_BRANCH refers to the *target* branch. Not\n-\t# what we want here. We want the source branch instead.\n-\tCI_BRANCH=\"${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}\"\n-\tCI_COMMIT=\"$TRAVIS_COMMIT\"\n-\tCI_JOB_ID=\"$TRAVIS_JOB_ID\"\n-\tCI_JOB_NUMBER=\"$TRAVIS_JOB_NUMBER\"\n-\tCI_OS_NAME=\"$TRAVIS_OS_NAME\"\n-\tCI_REPO_SLUG=\"$TRAVIS_REPO_SLUG\"\n-\n-\tcache_dir=\"$HOME/travis-cache\"\n-\n-\turl_for_job_id () {\n-\t\techo \"https://travis-ci.org/$CI_REPO_SLUG/jobs/$1\"\n-\t}\n-\n-\tBREW_INSTALL_PACKAGES=\"git-lfs gettext\"\n-\texport GIT_PROVE_OPTS=\"--timer --jobs 3 --state=failed,slow,save\"\n-\texport GIT_TEST_OPTS=\"--verbose-log -x --immediate\"\n-\tMAKEFLAGS=\"$MAKEFLAGS --jobs=2\"\n-elif test -n \"$SYSTEM_COLLECTIONURI\" || test -n \"$SYSTEM_TASKDEFINITIONSURI\"\n+if test -n \"$SYSTEM_COLLECTIONURI\" || test -n \"$SYSTEM_TASKDEFINITIONSURI\"\n then\n \tCI_TYPE=azure-pipelines\n \t# We are running in Azure Pipelines\n@@ -130,10 +108,6 @@ then\n \t# among *all* phases)\n \tcache_dir=\"$HOME/test-cache/$SYSTEM_PHASENAME\"\n \n-\turl_for_job_id () {\n-\t\techo \"$SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$1\"\n-\t}\n-\n \texport GIT_PROVE_OPTS=\"--timer --jobs 10 --state=failed,slow,save\"\n \texport GIT_TEST_OPTS=\"--verbose-log -x --write-junit-xml\"\n \tMAKEFLAGS=\"$MAKEFLAGS --jobs=10\"\n@@ -214,11 +188,6 @@ osx-clang|osx-gcc)\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python2)\"\n \tfi\n-\n-\t# t9810 occasionally fails on Travis CI OS X\n-\t# t9816 occasionally fails with \"TAP out of sequence errors\" on\n-\t# Travis CI OS X\n-\texport GIT_SKIP_TESTS=\"t9810 t9816\"\n \t;;\n linux-gcc-default)\n \t;;\ndiff --git a/ci/print-test-failures.sh b/ci/print-test-failures.sh\nindex c70d6cdbf24..57277eefcd0 100755\n--- a/ci/print-test-failures.sh\n+++ b/ci/print-test-failures.sh\n@@ -39,8 +39,6 @@ do\n \t\ttest_name=\"${test_name##*/}\"\n \t\ttrash_dir=\"trash directory.$test_name\"\n \t\tcase \"$CI_TYPE\" in\n-\t\ttravis)\n-\t\t\t;;\n \t\tazure-pipelines)\n \t\t\tmkdir -p failed-test-artifacts\n \t\t\tmv \"$trash_dir\" failed-test-artifacts\n@@ -88,11 +86,3 @@ do\n \t\tfi\n \tfi\n done\n-\n-if [ $combined_trash_size -gt 0 ]\n-then\n-\techo \"------------------------------------------------------------------------\"\n-\techo \"Trash directories embedded in this log can be extracted by running:\"\n-\techo\n-\techo \"  curl https://api.travis-ci.org/v3/job/$TRAVIS_JOB_ID/log.txt |./ci/util/extract-trash-dirs.sh\"\n-fi\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex cc62616d806..18056501ec2 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -41,9 +41,9 @@ linux-clang)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n \tmake test\n \t;;\n-linux-gcc-4.8|pedantic)\n+pedantic)\n \t# Don't run the tests; we only care about whether Git can be\n-\t# built with GCC 4.8 or with pedantic\n+\t# built.\n \t;;\n *)\n \tmake test\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 8d47a5fda3b..5d2764ad3a3 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -47,15 +47,6 @@ else\n \telse\n \t\tuseradd -u $HOST_UID $CI_USER\n \tfi\n-\n-\t# Due to a bug the test suite was run as root in the past, so\n-\t# a prove state file created back then is only accessible by\n-\t# root.  Now that bug is fixed, the test suite is run as a\n-\t# regular user, but the prove state file coming from Travis\n-\t# CI's cache might still be owned by root.\n-\t# Make sure that this user has rights to any cached files,\n-\t# including an existing prove state file.\n-\ttest -n \"$cache_dir\" && chown -R $HOST_UID:$HOST_UID \"$cache_dir\"\n fi\n \n # Build and test\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex 37fa372052d..b610dd4db84 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -25,7 +25,7 @@ docker pull \"$CI_CONTAINER\"\n # root@container:/# export jobname=<jobname>\n # root@container:/# /usr/src/git/ci/run-docker-build.sh <host-user-id>\n \n-container_cache_dir=/tmp/travis-cache\n+container_cache_dir=/tmp/container-cache\n \n docker run \\\n \t--interactive \\\n-- \n2.34.0.830.gb9cdc59c8af\n\n"},{"id":"442166","messageId":"patch-v4-2.5-5d53b79347f-20211123T134300Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v4-0.5-00000000000-20211123T134300Z-avarab@gmail.com","subject":"[PATCH v4 2/5] CI: use shorter names that fit in UX tooltips","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-23T16:29:09Z","receivedAt":"2021-11-23T16:29:41Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the names used for the GitHub CI workflows to be short enough\nto (mostly) fit in the pop-up tool-tips that GitHub shows in the\ncommit view. I.e. when mouse-clicking on the passing or failing\ncheck-mark next to the commit subject.\n\nThese names are seemingly truncated to 17-20 characters followed by\nthree dots (\"...\"). Since a \"CI/PR / \" prefix is added to them the job\nnames looked like this before (windows-test and vs-test jobs omitted):\n\n    CI/PR / ci-config (p...\n    CI/PR / windows-buil...\n    CI/PR / vs-build (pu...\n    CI/PR / regular (lin...\n    CI/PR / regular (lin...\n    CI/PR / regular (os...\n    CI/PR / regular (os...\n    CI/PR / regular (lin...\n    CI/PR / regular (lin...\n    CI/PR / dockerized (...\n    CI/PR / dockerized (...\n    CI/PR / dockerized (...\n    CI/PR / static-anal...\n    CI/PR / sparse (pu...\n    CI/PR / documenta...\n\nBy omitting the \"/PR\" from the top-level name, and pushing the\n$jobname to the front we'll now instead get:\n\n    CI / config (push)\n    CI / win build (push...\n    CI / win+VS build (...\n    CI / linux-clang (ub...\n    CI / linux-gcc (ubun...\n    CI / osx-clang (osx)...\n    CI / osx-gcc (osx) (...\n    CI / linux-gcc-defau...\n    CI / linux-leaks (ub...\n    CI / linux-musl (alp...\n    CI / Linux32 (daald/...\n    CI / pedantic (fedor...\n    CI / static-analysis...\n    CI / sparse (push)...\n    CI / documentation\n\nWe then have no truncation in the expanded view. See [1] for how it\nlooked before, [2] for a currently visible CI run using this commit,\nand [3] for the GitHub workflow syntax involved being changed here.\n\nLet's also use the existing \"pool\" field as before. It's occasionally\nuseful to know we're running on say ubuntu v.s. fedora. The \"-latest\"\nsuffix is useful to some[4], and since it's now at the end it doesn't\nhurt readability in the short view compared to saying \"ubuntu\" or\n\"macos\".\n\n1. https://github.com/git/git/tree/master/\n2. https://github.com/avar/git/tree/avar/ci-rm-travis-cleanup-ci-names-3\n3. https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions\n3. https://lore.kernel.org/git/d9b07ca5-b58d-a535-d25b-85d7f12e6295@github.com/\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml | 10 +++++++++-\n README.md                  |  2 +-\n 2 files changed, 10 insertions(+), 2 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 6ed6a9e8076..c7c10456572 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -1,4 +1,4 @@\n-name: CI/PR\n+name: CI\n \n on: [push, pull_request]\n \n@@ -7,6 +7,7 @@ env:\n \n jobs:\n   ci-config:\n+    name: config\n     runs-on: ubuntu-latest\n     outputs:\n       enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}\n@@ -77,6 +78,7 @@ jobs:\n             }\n \n   windows-build:\n+    name: win build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     runs-on: windows-latest\n@@ -97,6 +99,7 @@ jobs:\n         name: windows-artifacts\n         path: artifacts\n   windows-test:\n+    name: win test\n     runs-on: windows-latest\n     needs: [windows-build]\n     strategy:\n@@ -127,6 +130,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   vs-build:\n+    name: win+VS build\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\n@@ -178,6 +182,7 @@ jobs:\n         name: vs-artifacts\n         path: artifacts\n   vs-test:\n+    name: win+VS test\n     runs-on: windows-latest\n     needs: vs-build\n     strategy:\n@@ -210,6 +215,7 @@ jobs:\n         name: failed-tests-windows\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   regular:\n+    name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -251,6 +257,7 @@ jobs:\n         name: failed-tests-${{matrix.vector.jobname}}\n         path: ${{env.FAILED_TEST_ARTIFACTS}}\n   dockerized:\n+    name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     strategy:\n@@ -310,6 +317,7 @@ jobs:\n       run: ci/install-dependencies.sh\n     - run: make sparse\n   documentation:\n+    name: documentation\n     needs: ci-config\n     if: needs.ci-config.outputs.enabled == 'yes'\n     env:\ndiff --git a/README.md b/README.md\nindex eb8115e6b04..f6f43e78deb 100644\n--- a/README.md\n+++ b/README.md\n@@ -1,4 +1,4 @@\n-[![Build status](https://github.com/git/git/workflows/CI/PR/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n+[![Build status](https://github.com/git/git/workflows/CI/badge.svg)](https://github.com/git/git/actions?query=branch%3Amaster+event%3Apush)\n \n Git - fast, scalable, distributed revision control system\n =========================================================\n-- \n2.34.0.830.gb9cdc59c8af\n\n"},{"id":"442167","messageId":"patch-v4-4.5-614a99f7b64-20211123T134300Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v4-0.5-00000000000-20211123T134300Z-avarab@gmail.com","subject":"[PATCH v4 4/5] CI: use \"$runs_on_pool\", not \"$jobname\" to select packages & config","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-23T16:29:11Z","receivedAt":"2021-11-23T16:29:45Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Change the setup hooks for the CI to use \"$runs_on_pool\" for the\n\"$regular\" job. Now we won't need as much boilerplate when adding new\njobs to the \"regular\" matrix, see 956d2e4639b (tests: add a test mode\nfor SANITIZE=leak, run it in CI, 2021-09-23) for the last such commit.\n\nI.e. now instead of needing to enumerate each jobname when we select\npackages we can install things depending on the pool we're running\nin.\n\nThat we didn't do this dates back to the now gone dependency on Travis\nCI, but even if we add a new CI target in the future this'll be easier\nto port over, since we can probably treat \"ubuntu-latest\" as a\nstand-in for some recent Linux that can run \"apt\" commands.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml |  4 ++++\n ci/install-dependencies.sh | 32 ++++++++++++++------------------\n ci/lib.sh                  | 21 +++++++++++----------\n 3 files changed, 29 insertions(+), 28 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 91b565f75bb..d402402a18b 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -227,12 +227,14 @@ jobs:\n             pool: ubuntu-latest\n           - jobname: linux-gcc\n             cc: gcc\n+            cc_package: gcc-8\n             pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n             pool: macos-latest\n           - jobname: osx-gcc\n             cc: gcc\n+            cc_package: gcc-9\n             pool: macos-latest\n           - jobname: linux-gcc-default\n             cc: gcc\n@@ -242,7 +244,9 @@ jobs:\n             pool: ubuntu-latest\n     env:\n       CC: ${{matrix.vector.cc}}\n+      CC_PACKAGE: ${{matrix.vector.cc_package}}\n       jobname: ${{matrix.vector.jobname}}\n+      runs_on_pool: ${{matrix.vector.pool}}\n     runs-on: ${{matrix.vector.pool}}\n     steps:\n     - uses: actions/checkout@v2\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 49a4ae7a988..dbcebad2fb2 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -11,17 +11,11 @@ UBUNTU_COMMON_PKGS=\"make libssl-dev libcurl4-openssl-dev libexpat-dev\n  tcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl\n  libemail-valid-perl libio-socket-ssl-perl libnet-smtp-ssl-perl\"\n \n-case \"$jobname\" in\n-linux-clang|linux-gcc|linux-leaks)\n+case \"$runs_on_pool\" in\n+ubuntu-latest)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install language-pack-is libsvn-perl apache2 \\\n-\t\t$UBUNTU_COMMON_PKGS\n-\tcase \"$jobname\" in\n-\tlinux-gcc)\n-\t\tsudo apt-get -q -y install gcc-8\n-\t\t;;\n-\tesac\n-\n+\t\t$UBUNTU_COMMON_PKGS $CC_PACKAGE\n \tmkdir --parents \"$P4_PATH\"\n \tpushd \"$P4_PATH\"\n \t\twget --quiet \"$P4WHENCE/bin.linux26x86_64/p4d\"\n@@ -36,7 +30,7 @@ linux-clang|linux-gcc|linux-leaks)\n \t\tcp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .\n \tpopd\n \t;;\n-osx-clang|osx-gcc)\n+macos-latest)\n \texport HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1\n \t# Uncomment this if you want to run perf tests:\n \t# brew install gnu-time\n@@ -50,15 +44,17 @@ osx-clang|osx-gcc)\n \t\tbrew install --cask --no-quarantine perforce\n \t} ||\n \tbrew install homebrew/cask/perforce\n-\tcase \"$jobname\" in\n-\tosx-gcc)\n-\t\tbrew install gcc@9\n-\t\t# Just in case the image is updated to contain gcc@9\n-\t\t# pre-installed but not linked.\n-\t\tbrew link gcc@9\n-\t\t;;\n-\tesac\n+\n+\tif test -n \"$CC_PACKAGE\"\n+\tthen\n+\t\tBREW_PACKAGE=${CC_PACKAGE/-/@}\n+\t\tbrew install \"$BREW_PACKAGE\"\n+\t\tbrew link \"$BREW_PACKAGE\"\n+\tfi\n \t;;\n+esac\n+\n+case \"$jobname\" in\n StaticAnalysis)\n \tsudo apt-get -q update\n \tsudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 0b3b0144882..cbc2f8f1caa 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -156,11 +156,15 @@ export DEFAULT_TEST_TARGET=prove\n export GIT_TEST_CLONE_2GB=true\n export SKIP_DASHED_BUILT_INS=YesPlease\n \n-case \"$jobname\" in\n-linux-clang|linux-gcc|linux-leaks)\n+case \"$runs_on_pool\" in\n+ubuntu-latest)\n+\tif test \"$jobname\" = \"linux-gcc-default\"\n+\tthen\n+\t\tbreak\n+\tfi\n+\n \tif [ \"$jobname\" = linux-gcc ]\n \tthen\n-\t\texport CC=gcc-8\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python3\"\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=/usr/bin/python2\"\n@@ -180,17 +184,17 @@ linux-clang|linux-gcc|linux-leaks)\n \tGIT_LFS_PATH=\"$HOME/custom/git-lfs\"\n \texport PATH=\"$GIT_LFS_PATH:$P4_PATH:$PATH\"\n \t;;\n-osx-clang|osx-gcc)\n+macos-latest)\n \tif [ \"$jobname\" = osx-gcc ]\n \tthen\n-\t\texport CC=gcc-9\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python3)\"\n \telse\n \t\tMAKEFLAGS=\"$MAKEFLAGS PYTHON_PATH=$(which python2)\"\n \tfi\n \t;;\n-linux-gcc-default)\n-\t;;\n+esac\n+\n+case \"$jobname\" in\n linux32)\n \tCC=gcc\n \t;;\n@@ -200,9 +204,6 @@ linux-musl)\n \tMAKEFLAGS=\"$MAKEFLAGS NO_REGEX=Yes ICONV_OMITS_BOM=Yes\"\n \tMAKEFLAGS=\"$MAKEFLAGS GIT_TEST_UTF8_LOCALE=C.UTF-8\"\n \t;;\n-esac\n-\n-case \"$jobname\" in\n linux-leaks)\n \texport SANITIZE=leak\n \texport GIT_TEST_PASSING_SANITIZE_LEAK=true\n-- \n2.34.0.830.gb9cdc59c8af\n\n"},{"id":"442168","messageId":"patch-v4-3.5-37b97fc6c3a-20211123T134300Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v4-0.5-00000000000-20211123T134300Z-avarab@gmail.com","subject":"[PATCH v4 3/5] CI: rename the \"Linux32\" job to lower-case \"linux32\"","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-23T16:29:10Z","receivedAt":"2021-11-23T16:29:45Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"As a follow-up to the preceding commit's shortening of CI job names,\nrename the only job that starts with an upper-case letter to be\nconsistent with the rest. It was added in 88dedd5e72c (Travis: also\ntest on 32-bit Linux, 2017-03-05).\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml        | 3 ++-\n ci/install-docker-dependencies.sh | 2 +-\n ci/lib.sh                         | 2 +-\n ci/run-docker-build.sh            | 2 +-\n ci/run-docker.sh                  | 2 +-\n 5 files changed, 6 insertions(+), 5 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex c7c10456572..91b565f75bb 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -266,7 +266,8 @@ jobs:\n         vector:\n         - jobname: linux-musl\n           image: alpine\n-        - jobname: Linux32\n+        - jobname: linux32\n+          os: ubuntu32\n           image: daald/ubuntu32:xenial\n         - jobname: pedantic\n           image: fedora\ndiff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh\nindex 07a8c6b199d..78b7e326da6 100755\n--- a/ci/install-docker-dependencies.sh\n+++ b/ci/install-docker-dependencies.sh\n@@ -4,7 +4,7 @@\n #\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tlinux32 --32bit i386 sh -c '\n \t\tapt update >/dev/null &&\n \t\tapt install -y build-essential libcurl4-openssl-dev \\\ndiff --git a/ci/lib.sh b/ci/lib.sh\nindex 73d959e87f7..0b3b0144882 100755\n--- a/ci/lib.sh\n+++ b/ci/lib.sh\n@@ -191,7 +191,7 @@ osx-clang|osx-gcc)\n \t;;\n linux-gcc-default)\n \t;;\n-Linux32)\n+linux32)\n \tCC=gcc\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker-build.sh b/ci/run-docker-build.sh\nindex 5d2764ad3a3..6cd832efb9c 100755\n--- a/ci/run-docker-build.sh\n+++ b/ci/run-docker-build.sh\n@@ -15,7 +15,7 @@ then\n fi\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tswitch_cmd=\"linux32 --32bit i386\"\n \t;;\n linux-musl)\ndiff --git a/ci/run-docker.sh b/ci/run-docker.sh\nindex b610dd4db84..af89d1624a4 100755\n--- a/ci/run-docker.sh\n+++ b/ci/run-docker.sh\n@@ -6,7 +6,7 @@\n . ${0%/*}/lib.sh\n \n case \"$jobname\" in\n-Linux32)\n+linux32)\n \tCI_CONTAINER=\"daald/ubuntu32:xenial\"\n \t;;\n linux-musl)\n-- \n2.34.0.830.gb9cdc59c8af\n\n"},{"id":"442169","messageId":"patch-v4-5.5-ee2f9254fc7-20211123T134300Z-avarab@gmail.com","threadId":"56942","inReplyTo":"cover-v4-0.5-00000000000-20211123T134300Z-avarab@gmail.com","subject":"[PATCH v4 5/5] CI: don't run \"make test\" twice in one job","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-11-23T16:29:12Z","receivedAt":"2021-11-23T16:29:46Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"The \"linux-clang\" and \"linux-gcc\" jobs both run \"make test\" twice, but\nwith different environment variables. Running these in sequence seems\nto have been done to work around some constraint on Travis, see\nae59a4e44f3 (travis: run tests with GIT_TEST_SPLIT_INDEX, 2018-01-07).\n\nBy having these run in parallel we'll get jobs that finish much sooner\nthan they otherwise would have.\n\nWe can also simplify the control flow in \"ci/run-build-and-tests.sh\"\nas a result, since we won't run \"make test\" twice we don't need to run\n\"make\" twice at all, let's default to \"make all test\" after setting\nthe variables, and then override it to just \"all\" for the compile-only\ntests.\n\nAdd a comment to clarify that new \"test\" targets should adjust\n$MAKE_TARGETS rather than being added after the \"case/esac\". This\nshould avoid future confusion where e.g. the compilation-only\n\"pedantic\" target will unexpectedly start running tests. See [1] and\n[2].\n\n1. https://lore.kernel.org/git/211122.86ee78yxts.gmgdl@evledraar.gmail.com/\n2. https://lore.kernel.org/git/211123.86ilwjujmd.gmgdl@evledraar.gmail.com/\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n .github/workflows/main.yml |  9 +++++++++\n ci/run-build-and-tests.sh  | 23 +++++++++++------------\n 2 files changed, 20 insertions(+), 12 deletions(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex d402402a18b..628bcbf495e 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -225,10 +225,19 @@ jobs:\n           - jobname: linux-clang\n             cc: clang\n             pool: ubuntu-latest\n+          - jobname: linux-sha256\n+            cc: clang\n+            os: ubuntu\n+            pool: ubuntu-latest\n           - jobname: linux-gcc\n             cc: gcc\n             cc_package: gcc-8\n             pool: ubuntu-latest\n+          - jobname: linux-TEST-vars\n+            cc: gcc\n+            os: ubuntu\n+            cc_package: gcc-8\n+            pool: ubuntu-latest\n           - jobname: osx-clang\n             cc: clang\n             pool: macos-latest\ndiff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh\nindex 18056501ec2..280dda7d285 100755\n--- a/ci/run-build-and-tests.sh\n+++ b/ci/run-build-and-tests.sh\n@@ -10,16 +10,13 @@ windows*) cmd //c mklink //j t\\\\.prove \"$(cygpath -aw \"$cache_dir/.prove\")\";;\n *) ln -s \"$cache_dir/.prove\" t/.prove;;\n esac\n \n-if test \"$jobname\" = \"pedantic\"\n-then\n-\texport DEVOPTS=pedantic\n-fi\n+export MAKE_TARGETS=\"all test\"\n \n-make\n case \"$jobname\" in\n linux-gcc)\n \texport GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main\n-\tmake test\n+\t;;\n+linux-TEST-vars)\n \texport GIT_TEST_SPLIT_INDEX=yes\n \texport GIT_TEST_MERGE_ALGORITHM=recursive\n \texport GIT_TEST_FULL_IN_PACK_ARRAY=true\n@@ -33,23 +30,25 @@ linux-gcc)\n \texport GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=master\n \texport GIT_TEST_WRITE_REV_INDEX=1\n \texport GIT_TEST_CHECKOUT_WORKERS=2\n-\tmake test\n \t;;\n linux-clang)\n \texport GIT_TEST_DEFAULT_HASH=sha1\n-\tmake test\n+\t;;\n+linux-sha256)\n \texport GIT_TEST_DEFAULT_HASH=sha256\n-\tmake test\n \t;;\n pedantic)\n \t# Don't run the tests; we only care about whether Git can be\n \t# built.\n-\t;;\n-*)\n-\tmake test\n+\texport DEVOPTS=pedantic\n+\texport MAKE_TARGETS=all\n \t;;\n esac\n \n+# Any new \"test\" targets should not go after this \"make\", but should\n+# adjust $MAKE_TARGETS. Otherwise compilation-only targets above will\n+# start running tests.\n+make $MAKE_TARGETS\n check_unignored_build_artifacts\n \n save_good_tree\n-- \n2.34.0.830.gb9cdc59c8af\n\n"}]}