{"thread":{"id":"63361","subject":"[PATCH] gitlab-ci: always run MSVC-based Meson job","startedAt":"2025-04-28T09:32:20Z","lastAt":"2025-05-14T16:55:08Z","messageCount":9,"participants":["Patrick Steinhardt","Johannes Schindelin","Junio C Hamano","Phillip Wood"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"516886","messageId":"20250428-pks-gitlab-ci-execute-win-meson-v1-1-f68683552b9e@pks.im","threadId":"63361","inReplyTo":null,"subject":"[PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-04-28T09:32:12Z","receivedAt":"2025-04-28T09:32:20Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"With 7304bd2bc39 (ci: wire up Visual Studio build with Meson,\n2025-01-22) we have introduced a CI job that builds and tests Git with\nMicrosoft Visual Studio via Meson. This job is only being executed by\ndefault on GitHub Workflows though -- on GitLab CI it is marked as a\n\"manual\" job, so the developer has to actively trigger these jobs.\n\nThe consequence of this split is that any breakage specific to this job\nis only noticed by developers who mainly work with GitHub. Let's improve\nthis situation by also running the job by default on GitLab CI.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\nAs proposed in [1]. A test run of this pipeline can be found at [2].\nThanks!\n\nPatrick\n\n[1]: <aA8ymUzWM2t0QkFP@pks.im>\n[2]: https://gitlab.com/gitlab-org/git/-/merge_requests/349\n---\n .gitlab-ci.yml | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\nindex 4798b283745..bb6d5b976cd 100644\n--- a/.gitlab-ci.yml\n+++ b/.gitlab-ci.yml\n@@ -173,7 +173,6 @@ build:msvc-meson:\n test:msvc-meson:\n   extends: .msvc-meson\n   stage: test\n-  when: manual\n   timeout: 6h\n   needs:\n     - job: \"build:msvc-meson\"\n\n---\nbase-commit: f65182a99e545d2f2bc22e6c1c2da192133b16a3\nchange-id: 20250428-pks-gitlab-ci-execute-win-meson-e54998fa7081\n\n"},{"id":"516888","messageId":"56a0f8fd-7568-b579-1ff3-e0b088b53345@gmx.de","threadId":"63361","inReplyTo":"20250428-pks-gitlab-ci-execute-win-meson-v1-1-f68683552b9e@pks.im","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-04-28T10:59:17Z","receivedAt":"2025-04-28T10:59:25Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Patrick,\n\nOn Mon, 28 Apr 2025, Patrick Steinhardt wrote:\n\n> With 7304bd2bc39 (ci: wire up Visual Studio build with Meson,\n> 2025-01-22) we have introduced a CI job that builds and tests Git with\n> Microsoft Visual Studio via Meson. This job is only being executed by\n> default on GitHub Workflows though -- on GitLab CI it is marked as a\n> \"manual\" job, so the developer has to actively trigger these jobs.\n> \n> The consequence of this split is that any breakage specific to this job\n> is only noticed by developers who mainly work with GitHub. Let's improve\n> this situation by also running the job by default on GitLab CI.\n\nThe rationale makes sense to me, even if the added runtime (and\nconsumption of resources) is quite contrary to what I would like. From my\npoint of view, Git is spending way more compute than is warranted. The way\nGit's CI builds are set up, in many cases a single regression will cause\nmany tests/jobs to fail, and that indicates to me that Git's CI definition\n(and even Git's test suite) contains too many redundant parts.\n\nHaving said that, with the rationale provided in the commit message, this\npatch looks good to me.\n\nCiao,\nJohannes\n\n> \n> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n> ---\n> As proposed in [1]. A test run of this pipeline can be found at [2].\n> Thanks!\n> \n> Patrick\n> \n> [1]: <aA8ymUzWM2t0QkFP@pks.im>\n> [2]: https://gitlab.com/gitlab-org/git/-/merge_requests/349\n> ---\n>  .gitlab-ci.yml | 1 -\n>  1 file changed, 1 deletion(-)\n> \n> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml\n> index 4798b283745..bb6d5b976cd 100644\n> --- a/.gitlab-ci.yml\n> +++ b/.gitlab-ci.yml\n> @@ -173,7 +173,6 @@ build:msvc-meson:\n>  test:msvc-meson:\n>    extends: .msvc-meson\n>    stage: test\n> -  when: manual\n>    timeout: 6h\n>    needs:\n>      - job: \"build:msvc-meson\"\n> \n> ---\n> base-commit: f65182a99e545d2f2bc22e6c1c2da192133b16a3\n> change-id: 20250428-pks-gitlab-ci-execute-win-meson-e54998fa7081\n> \n> \n"},{"id":"516904","messageId":"xmqqv7qoceiv.fsf@gitster.g","threadId":"63361","inReplyTo":"56a0f8fd-7568-b579-1ff3-e0b088b53345@gmx.de","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-28T18:44:08Z","receivedAt":"2025-04-28T18:44:11Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> .... From my\n> point of view, Git is spending way more compute than is warranted. The way\n> Git's CI builds are set up, in many cases a single regression will cause\n> many tests/jobs to fail, and that indicates to me that Git's CI definition\n> (and even Git's test suite) contains too many redundant parts.\n\nWhile I also feel frustrated by watching paint dry after pushing\nday's integration results out, and often seeing that multiple CI\njobs fail due to the same breakage in 'seen' I do feel if there are\nways to avoid such waste, I do not think of a good way to do so [*].\nAre there some concrete proposals?\n\nThanks.\n\n[Footnote]\n\n * For example, if gitlab-ci and github-ci run the same CI jobs on\n   the same exact revision of Git using the same exact docker image,\n   if there is no reason to expect one to succeed and one to fail,\n   perhaps we can drop one and keep the other?  Or perhaps we pick a\n   single representative job and only after it passes start other\n   jobs?  None of the tweaks along these lines I can think of feel\n   satisfying to me.\n\n\n"},{"id":"517306","messageId":"aBnm4fP1RYgoIEc4@pks.im","threadId":"63361","inReplyTo":"xmqqv7qoceiv.fsf@gitster.g","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-05-06T10:39:29Z","receivedAt":"2025-05-06T10:39:37Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Apr 28, 2025 at 11:44:08AM -0700, Junio C Hamano wrote:\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > .... From my\n> > point of view, Git is spending way more compute than is warranted. The way\n> > Git's CI builds are set up, in many cases a single regression will cause\n> > many tests/jobs to fail, and that indicates to me that Git's CI definition\n> > (and even Git's test suite) contains too many redundant parts.\n> \n> While I also feel frustrated by watching paint dry after pushing\n> day's integration results out, and often seeing that multiple CI\n> jobs fail due to the same breakage in 'seen' I do feel if there are\n> ways to avoid such waste, I do not think of a good way to do so [*].\n> Are there some concrete proposals?\n\nWe could probably combine at least some CI jobs. The \"pedantic\" Fedora\njob for example feels rather weird because it just builds without\ntesting anything. It could be merged into one of the other jobs by\nexecuting tests on Fedora instead, with pedantic compiler flags. But\nother than that I don't really have any other good ideas.\n\n> [Footnote]\n> \n>  * For example, if gitlab-ci and github-ci run the same CI jobs on\n>    the same exact revision of Git using the same exact docker image,\n>    if there is no reason to expect one to succeed and one to fail,\n>    perhaps we can drop one and keep the other? \n\nAt GitLab we will definitely want to have a full pipeline for Git given\nthat we use a merge request-based workflow all the time. So if parts of\nthe GitLab CI went away, we would have to handroll it again and backfill\nany jobs that went missing to enable our own workflow.\n\nWhile it's inefficient to have the same pipeline effectively run twice,\nthis is the kind of behaviour you get in a distributed system, I guess.\n\n>    Or perhaps we pick a\n>    single representative job and only after it passes start other\n>    jobs?  None of the tweaks along these lines I can think of feel\n>    satisfying to me.\n\nWouldn't that only mean that the pipeline takes even longer from start\nto finish? Even if the representative job succeeds it doesn't tell me\nanything about whether there are leaks, or whether it works on Windows,\nor on macOS. But given that I am on Linux, I especially care about jobs\nthat use a platform different than my own and always wait for them to\nfinish before sending out a patch series to the mailing list.\n\nPatrick\n"},{"id":"517339","messageId":"142f6110-b26d-4495-9b68-7c438b17f86b@gmail.com","threadId":"63361","inReplyTo":"aBnm4fP1RYgoIEc4@pks.im","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Phillip Wood","fromEmail":"phillip.wood123@gmail.com","sentAt":"2025-05-06T13:17:21Z","receivedAt":"2025-05-06T13:17:21Z","isPatch":true,"sender":{"key":"phillip.wood@dunelm.org.uk","avatar":null},"body":"On 06/05/2025 11:39, Patrick Steinhardt wrote:\n> On Mon, Apr 28, 2025 at 11:44:08AM -0700, Junio C Hamano wrote:\n>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>>\n>>     Or perhaps we pick a\n>>     single representative job and only after it passes start other\n>>     jobs?  None of the tweaks along these lines I can think of feel\n>>     satisfying to me.\n> \n> Wouldn't that only mean that the pipeline takes even longer from start\n> to finish? Even if the representative job succeeds it doesn't tell me\n> anything about whether there are leaks, or whether it works on Windows,\n> or on macOS. But given that I am on Linux, I especially care about jobs\n> that use a platform different than my own and always wait for them to\n> finish before sending out a patch series to the mailing list.\n\nI did wonder if it is possible to make a failing job kill/cancel all the \nother jobs but I think we have a few flaky tests that occasionally \nrandomly fail which complicates things.\n\nBest Wishes\n\nPhillip\n\n\n> Patrick\n> \n\n"},{"id":"517933","messageId":"aCMNGUlfBcafn97s@pks.im","threadId":"63361","inReplyTo":"20250428-pks-gitlab-ci-execute-win-meson-v1-1-f68683552b9e@pks.im","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-05-13T09:12:57Z","receivedAt":"2025-05-13T09:13:01Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Apr 28, 2025 at 11:32:12AM +0200, Patrick Steinhardt wrote:\n> With 7304bd2bc39 (ci: wire up Visual Studio build with Meson,\n> 2025-01-22) we have introduced a CI job that builds and tests Git with\n> Microsoft Visual Studio via Meson. This job is only being executed by\n> default on GitHub Workflows though -- on GitLab CI it is marked as a\n> \"manual\" job, so the developer has to actively trigger these jobs.\n> \n> The consequence of this split is that any breakage specific to this job\n> is only noticed by developers who mainly work with GitHub. Let's improve\n> this situation by also running the job by default on GitLab CI.\n> \n> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n\nWhile there has been discussion around whether we can in general avoid\nsome duplication in our pipelines, I think this patch makes sense\nregardless to bring GitLab CI in line with GitHub Workflows. I haven't\nseen the patch being picked up yet though -- I assume it fell of the\nradar.\n\nJunio, do you have any concern with taking this patch?\n\nThanks!\n"},{"id":"517957","messageId":"xmqq4ixoh28d.fsf@gitster.g","threadId":"63361","inReplyTo":"aCMNGUlfBcafn97s@pks.im","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-05-13T17:03:46Z","receivedAt":"2025-05-13T17:03:49Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> On Mon, Apr 28, 2025 at 11:32:12AM +0200, Patrick Steinhardt wrote:\n>> With 7304bd2bc39 (ci: wire up Visual Studio build with Meson,\n>> 2025-01-22) we have introduced a CI job that builds and tests Git with\n>> Microsoft Visual Studio via Meson. This job is only being executed by\n>> default on GitHub Workflows though -- on GitLab CI it is marked as a\n>> \"manual\" job, so the developer has to actively trigger these jobs.\n>> \n>> The consequence of this split is that any breakage specific to this job\n>> is only noticed by developers who mainly work with GitHub. Let's improve\n>> this situation by also running the job by default on GitLab CI.\n>> \n>> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n>\n> While there has been discussion around whether we can in general avoid\n> some duplication in our pipelines, I think this patch makes sense\n> regardless to bring GitLab CI in line with GitHub Workflows. I haven't\n> seen the patch being picked up yet though -- I assume it fell of the\n> radar.\n>\n> Junio, do you have any concern with taking this patch?\n\nAs long as Windows stakeholders are happy with the change, I have no\nobjection.  I didn't pick it up simply because Dscho didn't sound\ntoo happy, and I do not take \"The code seems to be correct, but I do\nnot like what it does\" as a positive endorsement.\n\nThanks.\n"},{"id":"517993","messageId":"aCP8_YiMaFfv8P0D@pks.im","threadId":"63361","inReplyTo":"xmqq4ixoh28d.fsf@gitster.g","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-05-14T02:16:29Z","receivedAt":"2025-05-14T02:16:34Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Tue, May 13, 2025 at 10:03:46AM -0700, Junio C Hamano wrote:\n> Patrick Steinhardt <ps@pks.im> writes:\n> \n> > On Mon, Apr 28, 2025 at 11:32:12AM +0200, Patrick Steinhardt wrote:\n> >> With 7304bd2bc39 (ci: wire up Visual Studio build with Meson,\n> >> 2025-01-22) we have introduced a CI job that builds and tests Git with\n> >> Microsoft Visual Studio via Meson. This job is only being executed by\n> >> default on GitHub Workflows though -- on GitLab CI it is marked as a\n> >> \"manual\" job, so the developer has to actively trigger these jobs.\n> >> \n> >> The consequence of this split is that any breakage specific to this job\n> >> is only noticed by developers who mainly work with GitHub. Let's improve\n> >> this situation by also running the job by default on GitLab CI.\n> >> \n> >> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n> >\n> > While there has been discussion around whether we can in general avoid\n> > some duplication in our pipelines, I think this patch makes sense\n> > regardless to bring GitLab CI in line with GitHub Workflows. I haven't\n> > seen the patch being picked up yet though -- I assume it fell of the\n> > radar.\n> >\n> > Junio, do you have any concern with taking this patch?\n> \n> As long as Windows stakeholders are happy with the change, I have no\n> objection.  I didn't pick it up simply because Dscho didn't sound\n> too happy, and I do not take \"The code seems to be correct, but I do\n> not like what it does\" as a positive endorsement.\n\nI don't think Dscho pays much attention to the GitLab CI anyway, so it\nultimately doesn't matter too much for him. This is not criticism by the\nway, it should ideally be interchangable whether anybody looks at GitHub\nor GitLab CI. So by making the GitLab CI run those jobs by default we\nmake the CI systems more interchangable.\n\nI expect that this should help us at GitLab to decrease Dscho's load as\nwe would see the same kind of breakage that he needs to worry about\nevery day. And being the primary drivers for the Meson build system I\nthink it's only fair that we help out with fixing any issues that happen\nin the Win+Meson jobs.\n\nPatrick\n"},{"id":"518057","messageId":"xmqqy0uz9lp2.fsf@gitster.g","threadId":"63361","inReplyTo":"aCP8_YiMaFfv8P0D@pks.im","subject":"Re: [PATCH] gitlab-ci: always run MSVC-based Meson job","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-05-14T16:55:05Z","receivedAt":"2025-05-14T16:55:08Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> I expect that this should help us at GitLab to decrease Dscho's load as\n> we would see the same kind of breakage that he needs to worry about\n> every day. And being the primary drivers for the Meson build system I\n> think it's only fair that we help out with fixing any issues that happen\n> in the Win+Meson jobs.\n\nAlright.  Let's merge it down.\n"}]}