Subject: Re: [PATCH] ci: lock "pedantic" job into fedora 35 and other cleanup

From: Junio C Hamano <[email-masked]>
Date: Fri, 15 Apr 2022 11:31:20 -0700

Carlo Marcelo Arenas Belón  <[email-masked]> writes:

> Fedora 36 is scheduled to be released in Apr 19th, but it includes
> a prerelease of gcc 12 that has known issues[1] with our codebase
> and therefore requires extra changes to not break a DEVELOPER=1
> build.
>
> Lock the CI job to the current release image, and while at it rename
> the job to better reflect what it is currently doing, instead of its
> original objective.

Please spell out what "original objective" is, why we are changing
the purpose of the target, and how such a change is justifiable.

I've always thought that the original objective was to try to see if
we still compile with the "-pedantic" option on.  Is it now "we want
to make sure a recent but not latest version of Fedora is OK"?  Why
do we want to do so?

Please write your log message with an explicit focus to help the
future developers decide, when they want to bump the version from 35
to say 40 in the future, if it does or does not violate the spirit
of this change.

> Finally add git which was a known[2] issue for a while.

Instead of referring to an external message, spell it out, it is not
all that long.

    Without working "git" installed, "save_good_tree" step in the CI
    were not running correctly at all.  This was originally noticed
    in [2]; take the fix suggested there.

All in all, each of these three independent and unrelated changes
may individually be a good thing to do on its own (or may not be),
i.e.

 * Avoid fedora 36 and later at least for now
 * Do not build with pedantic any more
 * Install "git" to help "save_good_tree" step in the CI

but they are unrelated changes that deserves their own justification.

> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
> index c35200defb9..48e212f4110 100644
> --- a/.github/workflows/main.yml
> +++ b/.github/workflows/main.yml
> @@ -282,8 +282,8 @@ jobs:
>          - jobname: linux32
>            os: ubuntu32
>            image: daald/ubuntu32:xenial
> -        - jobname: pedantic
> -          image: fedora
> +        - jobname: fedora
> +          image: fedora:35
>      env:
>        jobname: ${{matrix.vector.jobname}}
>      runs-on: ubuntu-latest
> diff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh
> index 78b7e326da6..660e25d1d26 100755
> --- a/ci/install-docker-dependencies.sh
> +++ b/ci/install-docker-dependencies.sh
> @@ -15,8 +15,8 @@ linux-musl)
>  	apk add --update build-base curl-dev openssl-dev expat-dev gettext \
>  		pcre2-dev python3 musl-libintl perl-utils ncurses >/dev/null
>  	;;
> -pedantic)
> +fedora)
>  	dnf -yq update >/dev/null &&
> -	dnf -yq install make gcc findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null
> +	dnf -yq install make gcc git findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null
>  	;;
>  esac
> diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
> index 280dda7d285..de0f8d36d7c 100755
> --- a/ci/run-build-and-tests.sh
> +++ b/ci/run-build-and-tests.sh
> @@ -37,10 +37,9 @@ linux-clang)
>  linux-sha256)
>  	export GIT_TEST_DEFAULT_HASH=sha256
>  	;;
> -pedantic)
> +fedora)
>  	# Don't run the tests; we only care about whether Git can be
>  	# built.
> -	export DEVOPTS=pedantic
>  	export MAKE_TARGETS=all
>  	;;
>  esac