diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..8ac6b8c498 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 08b8ed725a..465d2558e5 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-11, windows-latest] - gcc_v: [10] # Version of GFortran we want to use. + gcc_v: [10,11,12,13] # Version of GFortran we want to use. include: - os: ubuntu-latest os-arch: linux-x86_64 @@ -43,7 +43,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: Install GFortran macOS if: contains(matrix.os, 'macos') @@ -81,7 +81,7 @@ jobs: # Phase 1: Bootstrap fpm with existing version - name: Install fpm - uses: fortran-lang/setup-fpm@v3 + uses: fortran-lang/setup-fpm@v5 with: fpm-version: 'v0.8.0' @@ -194,7 +194,7 @@ jobs: - build steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Download Artifacts uses: actions/download-artifact@v2 @@ -277,7 +277,7 @@ jobs: env: DEPLOY_BRANCH: ${{ secrets.DEPLOY_BRANCH && contains(github.ref, secrets.DEPLOY_BRANCH) && 1 || 0 }} - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 if: ${{ github.event_name == 'push' }} - name: Download Artifacts diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 2ecb4183a1..e3418fe23a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,8 +6,8 @@ jobs: build-and-deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v1 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install dependencies diff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml index 86b5215c53..bdc572c027 100644 --- a/.github/workflows/meta.yml +++ b/.github/workflows/meta.yml @@ -35,8 +35,6 @@ jobs: mpi: openmpi - os: ubuntu-latest mpi: mpich - - os: windows-latest - mpi: msmpi - os: macos-latest mpi: openmpi - os: macos-latest @@ -45,7 +43,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: (Ubuntu) setup gcc version if: contains(matrix.os,'ubuntu') @@ -69,7 +67,6 @@ jobs: wget unzip curl - gcc-fortran - name: (Windows) Setup VS Build environment if: contains(matrix.os,'windows') && contains(matrix.mpi,'intel') @@ -87,7 +84,7 @@ jobs: Remove-Item "oneAPI" -Force -Recurse - name: (Ubuntu) Install gfortran - if: contains(matrix.os,'ubuntu') && (!contains(matrix.mpi,'intel')) + if: contains(matrix.os,'ubuntu') run: | sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_V} 100 \ --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \ @@ -107,16 +104,14 @@ jobs: if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel') timeout-minutes: 1 run: | - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB - echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null + echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt-get update - name: (Ubuntu) Install Intel oneAPI if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel') - timeout-minutes: 5 - run: sudo apt-get install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-mkl ninja-build + timeout-minutes: 15 + run: sudo apt-get install intel-oneapi-compiler-dpcpp-cpp-2023.1.0 intel-oneapi-compiler-fortran-2023.1.0 intel-oneapi-mpi-devel ninja-build - name: (Ubuntu) Setup Intel oneAPI environment if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel') @@ -153,6 +148,7 @@ jobs: if: contains(matrix.os,'windows') && contains(matrix.mpi,'msmpi') run: | echo "C:\Program Files\Microsoft MPI\Bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "/c/Program Files/Microsoft MPI/Bin/" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append echo "MSMPI_BIN=C:\Program Files\Microsoft MPI\Bin\" | Out-File -FilePath $env:GITHUB_ENV -Append - name: (Windows) load OneAPI environment variables @@ -203,7 +199,7 @@ jobs: # Phase 1: Bootstrap fpm with existing version - name: Install fpm - uses: fortran-lang/setup-fpm@v3 + uses: fortran-lang/setup-fpm@v5 with: fpm-version: 'v0.8.0' @@ -213,14 +209,6 @@ jobs: mv $(which fpm) fpm-bootstrap${{ matrix.exe }} echo "BOOTSTRAP=$PWD/fpm-bootstrap" >> $GITHUB_ENV - - name: Use Intel compiler for the metapackage tests - if: contains(matrix.mpi,'intel') - shell: bash - run: | - echo "FPM_FC=ifort" >> $GITHUB_ENV - echo "FPM_CC=icc" >> $GITHUB_ENV - echo "FPM_CXX=icpc" >> $GITHUB_ENV - - name: (macOS) Use gcc/g++ instead of Clang for C/C++ if: contains(matrix.os,'macOS') shell: bash @@ -304,6 +292,14 @@ jobs: env: EXE: fpm-${{ env.VERSION }}-${{ matrix.os-arch }}${{ matrix.exe }} + - name: Use Intel compiler for the metapackage tests + if: contains(matrix.mpi,'intel') + shell: bash + run: | + echo "FPM_FC=ifx" >> $GITHUB_ENV + echo "FPM_CC=icx" >> $GITHUB_ENV + echo "FPM_CXX=icpx" >> $GITHUB_ENV + - name: Run metapackage tests using the release version shell: bash run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b4b030d5a9..2a37ca316b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: FORMAT: ${{ matrix.format }} steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -44,7 +44,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -67,7 +67,7 @@ jobs: patch -p1 < ./ci/single-file.patch - name: Install fpm - uses: fortran-lang/setup-fpm@v3 + uses: fortran-lang/setup-fpm@v5 with: fpm-version: 'v0.8.0' @@ -124,7 +124,7 @@ jobs: env: DEPLOY_BRANCH: ${{ secrets.DEPLOY_BRANCH && contains(github.ref, secrets.DEPLOY_BRANCH) && 1 || 0 }} - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 if: ${{ github.event_name == 'push' }} - name: Download Artifacts diff --git a/README.md b/README.md index a3e3be3f77..3670cede53 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,10 @@ non-Fortran related package manager. **Website: ** -## [Download](https://fpm.fortran-lang.org/en/install/index.html) +## [Download](https://fpm.fortran-lang.org/install/index.html) Fpm is available on many platforms and through multiple package managers, see our Documentation -webpage for a list of **[All Supported Installations](https://fpm.fortran-lang.org/en/install/index.html)**. +webpage for a list of **[All Supported Installations](https://fpm.fortran-lang.org/install/index.html)**. The easiest installation routes are shown below. @@ -86,9 +86,9 @@ Binary distributions are available for MacOS 11 (Catalina) and 12 (Big Sur) for Fpm should be available and functional after those steps. For more details checkout the tap [here](https://github.com/fortran-lang/homebrew-fortran). -## [Get started](https://fpm.fortran-lang.org/en/tutorial/index.html) +## [Get started](https://fpm.fortran-lang.org/tutorial/index.html) -**Follow our [Quickstart Tutorial](https://fpm.fortran-lang.org/en/tutorial/hello-fpm.html) to get familiar with fpm**. +**Follow our [Quickstart Tutorial](https://fpm.fortran-lang.org/tutorial/hello-fpm.html) to get familiar with fpm**. ### Start a new project @@ -118,7 +118,7 @@ arguments can also be passed to the executable(s) or test(s) with the option `-- some arguments`. See additional instructions in the [Packaging guide](PACKAGING.md) or -the [manifest reference](https://fpm.fortran-lang.org/en/spec/manifest.html). +the [manifest reference](https://fpm.fortran-lang.org/spec/manifest.html).