Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
4847e07
documentation bugfix for citation of Soederlind_2003
RolfSander Jul 17, 2025
657585f
Run C-I tests on GitHub actions instead of Azure Dev Pipelines
yantosca Aug 6, 2025
4efd001
Added "Lint" GitHub Action to check other Actions for issues
yantosca Aug 6, 2025
5e42cbe
Updated RTD documentation for C-I tests
yantosca Aug 7, 2025
2f0eeff
Merge PR #138 (Migrate C-I tests from Azure to GitHub actions)
yantosca Aug 7, 2025
3550a56
RTD update: Move "which kpp" to end of "Build the KPP executable" sec…
yantosca Oct 9, 2025
4e316a5
Update .gitignore to avoid excluding util/Makefile* files
yantosca Oct 14, 2025
15943df
Further updates to ,gitignore
yantosca Oct 14, 2025
e30928f
Update .giitgnore rules for simplicity and update comments
yantosca Oct 14, 2025
c715ceb
Update list of files that should not be ignored in .gitignore
yantosca Oct 14, 2025
a7d6bf9
Fixed bug in ci-cleanup-script.sh for MCM directories
yantosca Oct 14, 2025
698c840
Merge PR #141 (Update .gitignore to avoid excluding util/Makefile* fi…
yantosca Oct 15, 2025
29fbe0b
Replace BLAS functions w/ F90 code in Rosenbrock solvers
yantosca Oct 15, 2025
b26d88c
Fix errors in rosenbrock_autoreduce.f90
yantosca Oct 15, 2025
3de658c
Remove BLAS functions from int/sdirk*.f90 integrators
yantosca Oct 15, 2025
758f078
Replace BLAS functions in radau5, runge_kutta*, and sdirk_tlm
yantosca Oct 16, 2025
2c59868
Remove commented-out BLAS calls in runge_kutta* integrators
yantosca Oct 16, 2025
05e1aa9
Replace WLAMCH with F90 EPSILON intrinsic function
yantosca Oct 17, 2025
3b756f4
Removed bsolete BLAS functions from util/blas.f90
yantosca Oct 17, 2025
a98245f
Add F90_rkadj, F90_sd4, F90_sdtlm C-I tests
yantosca Oct 17, 2025
be3b52f
Replace WAXPY and WSCAL in routines WGEFA and WGESL
yantosca Oct 17, 2025
9860e05
Fix minor issues found by C-I tests
yantosca Oct 17, 2025
08d2326
Merge PR #142 (Replace BLAS functions w/ pure F90 code)
yantosca Oct 27, 2025
1499c34
Replace WDOT with DOT_PRODUCT in util/blas.f90
yantosca Oct 29, 2025
232610a
Merge PR #143 (Replace WDOT with DOT_PRODUCT)
yantosca Oct 31, 2025
efd1963
fix: KPP_ROOT_Stoichiom.f90 is not compiled if #STOICMAT ON and #HESS…
pvvq Mar 26, 2026
3bc8599
Merge PR #145 (Make sure *Stochiom.F90 is compiled when #HESSIAN OFF )
yantosca Mar 27, 2026
606d6bb
Merge branch dev' into release/3.3.1
yantosca Mar 27, 2026
c8d77b7
Updated the "editing_these_docs.rst" file to be more explicit
yantosca Mar 27, 2026
eb47e47
Updated version numbers to 3.3.1 and other edits
yantosca Mar 27, 2026
57e805c
Now specify the latest version of GitHub actions
yantosca Mar 30, 2026
05eb46d
Updated installation documentation
yantosca Apr 16, 2026
0e095dd
Fixed broken refs in 06_info_for_kpp_developers.rst
yantosca Apr 17, 2026
aaad936
KPP 3.3.1 release
yantosca Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .ci-pipelines/Dockerfile

This file was deleted.

27 changes: 0 additions & 27 deletions .ci-pipelines/build-testing.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .ci-pipelines/ci-cleanup-script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ cwd=$(pwd -P)
for this_test in ${GENERAL_TESTS}; do
clean_ci_test_folder "${this_test}" "${this_test}" "${cwd}"
done
clean_ci_test_folder "${MCM_1}" "${MCM_1}" "${cwd}"
clean_ci_test_folder "${MCM_2}" "mcm" "${cwd}"
clean_ci_test_folder "${MCM_1}" mcm "${cwd}"
clean_ci_test_folder "${MCM_2}" mcm "${cwd}"

# Remove any log files used to store C-I test results
cd $cwd
Expand Down
3 changes: 3 additions & 0 deletions .ci-pipelines/ci-common-defs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ F90_feuler
F90_lsode
F90_radau
F90_rk
F90_rkadj
F90_rktlm
F90_ros
F90_rosadj
Expand All @@ -27,7 +28,9 @@ F90_rostlm
F90_ros_upcase
F90_saprc_2006
F90_sd
F90_sd4
F90_sdadj
F90_sdtlm
F90_seulex
F90_small_strato
"
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/lint-ci-workflows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Workflow to run linting checks on source
name: Lint

# Controls when the workflow will run
on:
# Triggers the workflow on pushes to the "main" branch, i.e., PR merges
push:
branches: [ "main" ]

# Triggers the workflow on pushes to open pull requests with code changes
pull_request:
paths:
- '.github/workflows/*.yml'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Cancel jobs running if new commits are pushed
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

# Workflow run - one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "lint"
lint:
# The type of runner that the job will run on
runs-on: ubuntu-latest
strategy:
fail-fast: false

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout code
with:
persist-credentials: false
uses: actions/checkout@v6

- name: Install Python
uses: actions/setup-python@v6
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m venv ci_venv
. ci_venv/bin/activate
pip install zizmor==0.9.2

# Apply GitHub Actions linter, zizmor
- name: zizmor
if: always()
run: |
cd ${{ github.workspace }}
. ci_venv/bin/activate
zizmor .github/workflows/*.yml
68 changes: 68 additions & 0 deletions .github/workflows/run-ci-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
#
# GitHub Action to run C-I tests with GCC compilers
#
name: Run C-I tests

on:
push:
branches:
- '**'
pull_request:
branches:
- '**'

jobs:
build:
runs-on: ubuntu-latest
env:
KPP_HOME: ${{ github.workspace }}
KPP_FLEX_LIB_DIR: /usr/lib/x86_64-linux-gnu
strategy:
matrix:
gcc-version: [9, 10, 11, 12, 13]


name: Run C-I tests with GCC ${{ matrix.gcc-version }}
steps:
- name: Checkout KPP
uses: actions/checkout@v6
with:
persist-credentials: false


- name: Install libraries
run: |
sudo apt update -y
sudo apt install -y flex bison libfl-dev
sudo apt install -y gcc-${{ matrix.gcc-version }} g++-${{ matrix.gcc-version }} gfortran-${{ matrix.gcc-version }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc-version }} 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc-version }} \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${{ matrix.gcc-version }}


- name: Verify environment
run: |
echo '%%% COMPILERS %%%'
gcc --version
echo ''
g++ --version
echo ''
gfortran --version
echo ''
echo '%%% ENVIRONMENT %%%'
echo "flex = $(which flex)"
echo "bison = $(which bison)"
echo "KPP_HOME = $KPP_HOME"
echo "KPP_FLEX_LIB_DIR = $KPP_FLEX_LIB_DIR"

- name: Compile with Make
run: |
cd $KPP_HOME/src
make all


- name: Run C-I tests
run: |
cd $KPP_HOME/.ci-pipelines
./ci-testing-script.sh
111 changes: 55 additions & 56 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,73 +1,72 @@
# KPP .gitignore file
#
# For info on how .gitignore rules work, see:
# https://www.atlassian.com/git/tutorials/saving-changes/gitignore
# https://linuxize.com/post/gitignore-ignoring-files-in-git

# temporary files:
*.~*
*~
.\#*
\#*
# Keep empty directory for executables, but ignore its contents
/bin/*

# Ignore temporary files everywhere
**/*.~*
**/*~
**/.\#*
**/\#*

# files generated by bison:
# Ignore files generated by bison (in src/)
/src/lex.yy.c
/src/y.tab.c
/src/y.tab.h

# from compiler:
*.mod
*.o
*.exe
# Ignore files generated by the compiler (everywhere)
**/*.mod
**/*.o
**/*.exe

# results from ci-tests:
# Ignore files generated by C-I tests (in ci-tests/*)
/ci-tests/**/*.dat
/ci-tests/**/*.h
/ci-tests/**/*.m
/ci-tests/**/Makefile_*
/ci-tests/**/*results*
/ci-tests/**/*.exe
/ci-tests/**/*.h
/ci-tests/**/*.log
/ci-tests/**/*.dat

# keep empty directory for executables, but not its contents:
/bin/*
!/bin/.gitkeep

# KPP-generated files:
*_Function*
*_Global*
*_Hessian*
*_HessianSP*
*_Initialize*
*_Integrator*
*_Jacobian*
*_JacobianSP*
*_LinearAlgebra*
*.log
*_Main*
*_mex_Fun*
*_mex_Hessian*
*_mex_Jac_SP*
*_Model*
*_Monitor*
*_Parameters*
*_Precision*
*_Rates*
*_Stoichiom*
*_StoichiomSP*
*_Util*
Makefile_*
# Ignore files generated by KPP (everywhere)
**/*_Function*
**/*_Global*
**/*_Hessian*
**/*_HessianSP*
**/*_Initialize*
**/*_Integrator*
**/*_Jacobian*
**/*_JacobianSP*
**/*_LinearAlgebra*
**/*.log
**/*_Main*
**/*_*ex_Fun*
**/*_*ex_Hessian*
**/*_*ex_Jac_SP*
**/*_Model*
**/*_Monitor*
**/*_Parameters*
**/*_Precision*
**/*_Rates*
**/*_Stoichiom*
**/*_StoichiomSP*
**/*_Util*

# LaTeX and BibTeX files:
/manual/*.aux
/manual/*.bbl
/manual/*.blg
/manual/*.log
/manual/*.toc

# ReadTheDocs files
# Ignore files generated by ReadTheDocs (in docs/build)
docs/build/*

# are there any *.dat files to exclude?
*.dat

# Other files/dirs to exclude
# Ignore other files & folders
*.pdf
/examples/mcm*/__pycache__
**/__pycache__

# IMPORTANT: Do not ignore these files!
!/bin/.gitkeep
!/docs/figures/*.pdf
!/util/*.c
!/util/*.f
!/util/*.h
!/util/*.f90
!/util/*.m
!/util/Makefile*
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.3.1] - 2026-03-27
### Added
- Added GitHub Action to run C-I tests with GCC compilers v9, v10, v11, v12, and v13
- Added "Lint" GitHub Action to check other actions for security issues
- Added new example files: `rkadj.kpp`, `sd4.kpp`, `sdtlm.kpp`
- Added new C-I tests: `F90_rkadj`, `F90_sd4`, `F90_sdtlm`
- Added `docs/read_the_docs_environment.yml`

### Changed
- Updated ReadTheDocs documentation to reflect that C-I tests are now done as a GitHub Action
- Updated the `docs/source/reference/editing_these_docs.rst` instructions for clarity
- Updated GitHub Actions to the latest versions

## Fixed
- Moved the `which kpp` instruction to the end of the "Build the KPP executable" section in the installation guide on ReadTheDocs
- Updated rules to ignore files in `.gitignore` and updated comments accordingly
- Fixed a bug that prevented `.ci-pipelines/ci-cleanup-script.sh` from removing KPP-generated files for MCM mechanisms
- Fixed typo in error message in `int/rosenbrock_autoreduce.f90`
- Fixed a bug in Makefile template that caused `KPP_ROOT_Stoichiom.f90` not compiled if `#STOICMAT ON` and `#HESSIAN OFF`

### Removed
- Removed C-I tests on Microsoft Azure Dev Pipelines
- Replaced BLAS functions (`WAXPY`, `WCOPY`, `WSCAL`, `WADD`, `WLAMCH`, `WDOT`) with pure F90 code from `int/*.f90` integrators (thanks to AI for the help)

## [3.3.0] - 2025-07-17
### Added
- New integrator: `rosenbrock_h211b_qssa.f90`
Expand Down
1 change: 1 addition & 0 deletions ci-tests/F90_rkadj/F90_rkadj.kpp
1 change: 1 addition & 0 deletions ci-tests/F90_sd4/F90_sd4.kpp
1 change: 1 addition & 0 deletions ci-tests/F90_sdtlm/F90_sdtlm.kpp
Loading