From 646cf76c301d4373db3acab6fc5b0431fd8f2daa Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Thu, 29 Oct 2026 13:31:24 -0700 Subject: [PATCH 1/5] CI: Silence all of Homebrew's intrusive/irritating nonsense warnings Homebrew is waaaaaay too spammy with their warning policy and we're fed up with seeing their harmless warnings polluting our workflow summary. Downgrade all Homebrew warnings to only appear in the log. --- .github/workflows/build.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9b40243..364894b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -128,7 +128,7 @@ jobs: FFLAGS: ${{ matrix.extra_flags }} FPM_FLAGS: --profile release --verbose --flag -DASSERTIONS CURL_OPTIONS: --retry 10 --retry-all-errors --fail -L - BREW_WARNING_FILTER: 's/^[[:punct:]]*warning[[:punct:]]*(You are using macOS)/warn: \1/i' + BREW_WARNING_FILTER: 's/^[[:punct:]]+warning[[:punct:]]+/warning: /i' steps: @@ -169,7 +169,8 @@ jobs: chmod +x install-homebrew.sh env CI=1 ./install-homebrew.sh HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew" - retry ${HOMEBREW_PREFIX}/bin/brew install -v gcc@${COMPILER_VERSION} binutils + retry ${HOMEBREW_PREFIX}/bin/brew install -v gcc@${COMPILER_VERSION} binutils \ + 2>&1 | perl -pe "$BREW_WARNING_FILTER" ; test ${PIPESTATUS[0]} = 0 ls -al ${HOMEBREW_PREFIX}/bin echo "PATH=${HOMEBREW_PREFIX}/bin:${PATH}" >> "$GITHUB_ENV" : Homebrew GCC@15 needs binutils 2.44+ @@ -196,7 +197,8 @@ jobs: if: ${{ contains(matrix.os, 'macos') }} run: | # silence Homebrew tap trust warnings: - (set +e ; brew untap -f aws/tap hashicorp/tap 2>&1 | perl -pe 's/#*.warning./warn: /' ; brew trust azure/bicep ) + (set +e ; brew untap -f aws/tap hashicorp/tap ; brew trust azure/bicep ) \ + 2>&1 | perl -pe "$BREW_WARNING_FILTER" # set some Homebrew knobs to accelerate installation # but only when we are not simulating the user environment brew-via-install workflow if [[ -z "${{ matrix.brew_via_install }}" ]] ; then @@ -209,7 +211,8 @@ jobs: - name: Install macOS Dependencies if: contains(matrix.os, 'macos') run: | - retry brew update + retry brew update \ + 2>&1 | perl -pe "$BREW_WARNING_FILTER" ; test ${PIPESTATUS[0]} = 0 # fpm binary distribution for macOS requires gfortran shared libraries from gcc@12 retry brew install gcc@12 \ 2>&1 | perl -pe "$BREW_WARNING_FILTER" ; test ${PIPESTATUS[0]} = 0 From 266a0fc0531fda4fc486a11963f0244a9dad5b9d Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Thu, 29 Oct 2026 13:38:21 -0700 Subject: [PATCH 2/5] CI: Retire macos-14 coverage GitHub is retiring the macos-14 hosted runner --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 364894b..362f87a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ macos-14, macos-15, macos-15-intel, macos-26, macos-26-intel, ubuntu-24.04, ubuntu-26.04-arm ] + os: [ macos-15, macos-15-intel, macos-26, macos-26-intel, ubuntu-24.04, ubuntu-26.04-arm ] compiler: [ gfortran ] version: [ 13, 14, 15, 16 ] extra_flags: [ -g ] From 0a39755c6f3cab431fb7634f45ca9662c4305735 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Thu, 29 Oct 2026 13:56:07 -0700 Subject: [PATCH 3/5] Add LFortran 0.67, 0.68 --- .github/workflows/build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 362f87a..9c94a43 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -114,6 +114,16 @@ jobs: version: 0.66.0 container: ghcr.io/lfortran/lfortran:v0.66.0 + - os: ubuntu-22.04 + compiler: lfortran + version: 0.67.0 + container: ghcr.io/lfortran/lfortran:v0.67.0 + + - os: ubuntu-22.04 + compiler: lfortran + version: 0.68.0 + container: ghcr.io/lfortran/lfortran:v0.68.0 + - os: ubuntu-22.04 compiler: lfortran version: latest From add9d93df3e1628a6d3f34fcbfd4b208e5876e94 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Thu, 29 Oct 2026 14:11:28 -0700 Subject: [PATCH 4/5] CI: Add LFortran on macOS --- .github/workflows/build.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c94a43..f5b6f67 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -98,6 +98,14 @@ jobs: # --- LFortran coverage --- + # https://github.com/fortran-lang/homebrew-fortran + - os: macos-15 + compiler: lfortran + version: brew + - os: macos-26 + compiler: lfortran + version: brew + # https://github.com/lfortran/lfortran/pkgs/container/lfortran - os: ubuntu-22.04 compiler: lfortran @@ -230,6 +238,10 @@ jobs: retry brew install gcc@${COMPILER_VERSION} \ 2>&1 | perl -pe "$BREW_WARNING_FILTER" ; test ${PIPESTATUS[0]} = 0 fi + if [[ ${{ matrix.compiler }} == 'lfortran' ]] ; then + retry brew install fortran-lang/fortran/lfortran \ + 2>&1 | perl -pe "$BREW_WARNING_FILTER" ; test ${PIPESTATUS[0]} = 0 + fi - name: Install LLVM flang on macOS if: contains(matrix.os, 'macos') && matrix.compiler == 'flang' From 47ae68d21271b4f0c3846f57d2b29abd62334cc1 Mon Sep 17 00:00:00 2001 From: Dan Bonachea Date: Thu, 29 Oct 2026 17:26:02 -0700 Subject: [PATCH 5/5] CI: Update example for changes to package registry https://github.com/fortran-lang/webpage/pull/716 changed the package registry such that the old example no longer worked. --- .github/workflows/build.yml | 8 ++++---- README.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f5b6f67..c72c9e4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -319,8 +319,8 @@ jobs: test ${PIPESTATUS[0]} = 0 && grep -q -i /berkeleylab/julienne output fpm run ${FPM_FLAGS} --flag "$FFLAGS" -- nasa --url --name 2>&1 | tee output test ${PIPESTATUS[0]} = 0 && grep -q -i /nasa/ output - fpm run ${FPM_FLAGS} --flag "$FFLAGS" -- BerkeleyLab -u -c 2>&1 | tee output - test ${PIPESTATUS[0]} = 0 && grep -q -i /BerkeleyLab/ output + fpm run ${FPM_FLAGS} --flag "$FFLAGS" -- FORTRAN -n -c 2>&1 | tee output + test ${PIPESTATUS[0]} = 0 && grep -q -i /dav05/ output - name: Install and Test plugin run: | @@ -332,6 +332,6 @@ jobs: test ${PIPESTATUS[0]} = 0 && grep -q -i /berkeleylab/julienne output fpm find nasa --url --name 2>&1 | tee output test ${PIPESTATUS[0]} = 0 && grep -q -i /nasa/ output - fpm find BerkeleyLab -u -c 2>&1 | tee output - test ${PIPESTATUS[0]} = 0 && grep -q -i /BerkeleyLab/ output + fpm find FORTRAN -n -c 2>&1 | tee output + test ${PIPESTATUS[0]} = 0 && grep -q -i /dav05/ output diff --git a/README.md b/README.md index 05fa524..abc5adf 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ If `fpm` is not in your `PATH` but `fpm-find` is, replace `fpm find` with fpm find numerical # search all package data for "numerical" fpm find julienne --name # search package names for "julienne" fpm find nasa --url --name # search package names and URLs for "nasa" -fpm find BerkeleyLab -u -c # case-sensitive search for "BerkeleyLab" in package URLs +fpm find FORTRAN -n -c # case-sensitive search for "FORTRAN" in package names ``` Before accessing the index installed in `$HOME/.local/share/fpm-find/package_index.yml`, `fpm-find` tries to update the index by downloading it from fortran-lang.