Skip to content

Commit

Permalink
Release 1.2.10 (#186)
Browse files Browse the repository at this point in the history
* chore: bump version to 1.2.10.dev0 (#155)

* update workflows to include develop branch

* update(mf6): v6.4.4 (#157)

* feat(cli): add --double option to make-program (#156)

* fix(_usgs_src_update.py): fix function lookup in _build_replace() (#158)

* replace functions are keyed by name as appears in usgsprograms.txt
* lookup did not account for 'dbl' or 'd' appended to program name

* feat(zip): allow appending to an existing zip file using --keep (#159)

* readme: update readme and installation.md (#160)

* refactor(pymake): limit zip file targets to new targets with --keep (#161)

* remove ifort switches that issue warnings
* write absolute zip file path if using --zip argument

* feat(double): restore double switch in usgsprograms.txt (#162)

* make direct evaluation of target names

* feat(code.json): add features to control code.json output (#163)

* feat(code.json): add capability to control code.json output

* remove implicit double_switch for mf2005, mfnwt, mflgr, and mfusg
* add capability to limit code.json to executables in appdir (--partial_json)
* add capability to zip generated code.json (--zip ZIP)
* add capability to update double_switch based on executable names in appdir

* feat(export_json): add appdir kwarg (#164)

* add appdir kwarg to be consistent with make-program
* add --appdir option to make-code-json cli to be consistent with make-program

* chore(dependencies): restrict yanked pytest version 8.1.0 (#165)

* also use fortran-lang/setup-fortran@main to get the latest gcc fix

* chore(formatting): switch to ruff (#166)

* replace isort/black/pylint/flake8
* keep settings mostly identical
* run ruff check --select NPY201, no changes needed

* chore(format): update rules, split long comment lines (#167)

* update rules in pyproject.toml, add import sorting rule 
* split or ignore comment lines where needed for E501

* ci(release): add automated release workflow (#168)

* build(deps): bump actions/checkout from 3 to 4 (#169)

* build(deps): bump actions/setup-python from 4 to 5 (#170)

* fix(mac/gcc/g++): use classic linker with gnu compilers on c/c++ files (#173)

* build(deps): bump dawidd6/action-download-artifact from 2 to 5 (#175)

* update(mf6): update mf6 version (#174)

* update zbud6 extra files
* update mf6examples
* merging with failures

* fix(gsflow): remove gsflow as a possible target (#176)

gsflow (and prms) cause continual problems trying to include them as
prebuilt executables. New versions require additional work to filter out
extraneous source files and object files. The build process uses specific
compiler flags. In short, supporting gsflow (and prms) requires more
support each time we are ready to make a executables release or when
a new version is released.

* merge with failure - in process of resolving

* ci: add pixi to CI workflow (#177)

* add pymake function to add syslibs option for Darwin + gcc toolchain + CLT > 14.*

* update(mfusg): update gsi mfusg version (#178)

* merge with failing gridgent test on MacOS with intel

* build(deps): bump dawidd6/action-download-artifact from 5 to 6 (#179)

* ci(triggers): add concurrency groups to prevent duplicate runs (#180)

* ci(macos): use xcode clt 14.3.1 for intel c++ compiler compatibility (#181)

* gridgen build fails with newer versions of xcode

* ci: update workflows (#183)

* update request ci to use pixi

* Version 1.2.10 (#185)

* Update release.yml

* ci(release): set version to 1.2.10

---------

Co-authored-by: jdhughes-usgs <jdhughes@usgs.gov>
Co-authored-by: wpbonelli <wbonelli@ucar.edu>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
4 people authored Jun 17, 2024
1 parent d9b17d6 commit b6177e4
Show file tree
Hide file tree
Showing 52 changed files with 11,730 additions and 1,235 deletions.
29 changes: 0 additions & 29 deletions .flake8

This file was deleted.

192 changes: 192 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
name: pymake continuous integration

on:
schedule:
- cron: '0 7 * * *' # run at 7 AM UTC every day
push:
paths-ignore:
- 'README.md'
- 'docs/*.md'
pull_request:
branches:
- master
- develop
paths-ignore:
- 'README.md'
- 'docs/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:

pymake-os-compiler:
name: pymake CI on different OSs with gcc and intel-classic
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# test latest gcc and python
- {os: ubuntu-latest, FC: gcc, FC_V: 13}
- {os: macos-latest, FC: gcc, FC_V: 13}
- {os: windows-latest, FC: gcc, FC_V: 13}
# test latest python and intel-classic
- {os: ubuntu-latest, FC: intel-classic, FC_V: 2021.7}
- {os: macos-13, FC: intel-classic, FC_V: 2021.7}
- {os: windows-2019, FC: intel-classic, FC_V: 2021.7}
# test latest python and previous gcc
- {os: ubuntu-latest, FC: gcc, FC_V: 12}
- {os: ubuntu-latest, FC: gcc, FC_V: 11}
defaults:
run:
shell: bash

steps:
- name: Checkout repo
uses: actions/checkout@v4

- uses: maxim-lobanov/setup-xcode@v1
if: ${{ (runner.os == 'macOS') && (matrix.FC == 'intel-classic') }}
with:
xcode-version: "14.3.1"

- name: Setup Graphviz on Linux
if: runner.os == 'Linux'
uses: ts-graphviz/setup-graphviz@v2

- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.8.1
with:
pixi-version: v0.19.1
manifest-path: "pixi.toml"

- name: pixi post-install
working-directory: pymake
run: |
pixi run postinstall
- name: Setup ${{ matrix.FC }} ${{ matrix.FC_V }} on ${{ matrix.os }}
uses: fortran-lang/setup-fortran@main
with:
compiler: ${{ matrix.FC }}
version: ${{ matrix.FC_V }}

- name: Download examples for pytest runs
run: |
pixi run download-examples
- name: Install make
if: runner.os == 'Windows'
run: choco install make

- name: test on Linux
if: runner.os == 'Linux'
run: |
pixi run autotest
- name: test on MacOS
if: runner.os == 'macOS'
run: |
pixi run autotest-base
- name: test on Windows
if: runner.os == 'Windows'
shell: pwsh
run: |
pixi run autotest-base
- name: Upload failed test output
if: failure()
uses: actions/upload-artifact@v4
with:
name: failed-${{ matrix.os }}-${{ matrix.FC }}-${{ matrix.FC_V }}
path: ./autotest/.failed

- name: Print coverage report before upload
run: |
pixi run coverage-report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./autotest/coverage.xml

pymake-schedule:
name: pymake scheduled CI different OSs with gcc and intel-classic
if: ${{ github.event_name == 'schedule' }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# test latest gcc and python
- {os: ubuntu-latest, FC: gcc, FC_V: 13}
- {os: macos-latest, FC: gcc, FC_V: 13}
- {os: windows-latest, FC: gcc, FC_V: 13}
# test latest python and intel
- {os: ubuntu-latest, FC: intel-classic, FC_V: 2021.7}
- {os: macos-13, FC: intel-classic, FC_V: 2021.7}
- {os: windows-2019, FC: intel-classic, FC_V: 2021.7}
defaults:
run:
shell: bash

steps:
- name: Checkout repo
uses: actions/checkout@v4

- uses: maxim-lobanov/setup-xcode@v1
if: ${{ (runner.os == 'macOS') && (matrix.FC == 'intel-classic') }}
with:
xcode-version: "14.3.1"

- name: Setup Graphviz on Linux
if: runner.os == 'Linux'
uses: ts-graphviz/setup-graphviz@v2

- name: Setup pixi
uses: prefix-dev/setup-pixi@v0.8.1
with:
pixi-version: v0.19.1
manifest-path: "pixi.toml"

- name: pixi post-install
working-directory: pymake
run: |
pixi run postinstall
- name: Setup ${{ matrix.FC }} ${{ matrix.FC_V }} on ${{ matrix.os }}
uses: fortran-lang/setup-fortran@main
with:
compiler: ${{ matrix.FC }}
version: ${{ matrix.FC_V }}

- name: Install make
if: runner.os == 'Windows'
run: choco install make

- name: Run scheduled tests
run: |
pixi run autotest-schedule
- name: Upload failed test output
if: failure()
uses: actions/upload-artifact@v4
with:
name: failed-schedule-${{ matrix.os }}-${{ matrix.FC }}-${{ matrix.FC_V }}
path: ./autotest/.failed

- name: Print coverage report before upload
run: |
pixi run coverage-report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./autotest/coverage.xml


80 changes: 0 additions & 80 deletions .github/workflows/main.yml

This file was deleted.

80 changes: 0 additions & 80 deletions .github/workflows/pymake-gcc.yml

This file was deleted.

Loading

0 comments on commit b6177e4

Please sign in to comment.