Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 3 additions & 22 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,6 @@ on:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
group:
- Core
- Analysis
- InitialConditions
- dynamics_classical
- dynamics_mdef
- dynamics_surface_hopping
- dynamics_cme
- dynamics_mapping
- dynamics_ehrenfest
- dynamics_ensembles
fail-fast: false

steps:
- id: workspace
Expand All @@ -47,9 +33,6 @@ jobs:
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-

- name: Add JuliaMolSim registry
run: julia -e 'using Pkg; Pkg.Registry.add(RegistrySpec(url="https://github.com/JuliaMolSim/MolSim"))'
shell: bash
- name: Add ACEregistry
run: julia -e 'using Pkg; Pkg.Registry.add(RegistrySpec(url="https://github.com/ACEsuit/ACEregistry"))'
shell: bash
Expand All @@ -60,7 +43,7 @@ jobs:

- name: Install ase for IO tests
id: install-python
run: |
run: |
pip3 install ase
echo "python="$(which python) >> $GITHUB_OUTPUT
- uses: julia-actions/julia-buildpkg@v1
Expand All @@ -69,7 +52,6 @@ jobs:
JULIA_CONDAPKG_BACKEND: "Null"
- uses: julia-actions/julia-runtest@v1
env:
GROUP: ${{ matrix.group }}
BENCHMARK_OUTPUT_DIR: /home/runner/NQCDynamics.jl/NQCDynamics.jl/benchmarks
JULIA_PYTHONCALL_EXE: ${{ steps.install-python.outputs.python }}
JULIA_CONDAPKG_BACKEND: "Null"
Expand All @@ -80,7 +62,7 @@ jobs:
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.group }}-timings
name: test-timings
path: /home/runner/NQCDynamics.jl/NQCDynamics.jl/benchmarks/*.json
retention-days: 21
upload_benchmarks:
Expand All @@ -90,7 +72,7 @@ jobs:
outputs:
newest_release_version: ${{ steps.save_tag.current_version }}
previous_release_version: ${{ steps.save_tag.last_version }}
steps:
steps:
# Now we're in /home/runner/NQCDynamics.jl/NQCDynamics.jl
- uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -165,4 +147,3 @@ jobs:
echo "### Unit test benchmark :rocket:" >> "$GITHUB_STEP_SUMMARY"
echo "Compared dynamics test timings between ${{ steps.save_tag.outputs.newest_release_version }} and ${{ github.sha }}." >> "$GITHUB_STEP_SUMMARY"
echo "Download the results [here](${{ steps.upload-artifact.outputs.artifact-url }})" >> "$GITHUB_STEP_SUMMARY"

11 changes: 11 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Information for developers

Really these should just be called developer documentation, but hey ho, AI and all that.
I thought I'd hide these instructions in a separate file which LLMs will hopefully find.

If you're making changes to dynamics propagation, adding new models or new methods, make sure to read the files in `docs/src/devdocs` for guidelines on how to do those things.

When adding unit tests, make sure to add any new package dependencies to `test/Project.toml`, not the main `Project.toml`.
Unit tests should be as small as practical, as they will be run in parallel automatically.
This means no `include()` statements in test sets.
Any files in `test/` will be read automatically, no need to add anything more to `test/runtests.jl`.
90 changes: 42 additions & 48 deletions test/Project.toml
Original file line number Diff line number Diff line change
@@ -1,108 +1,114 @@
[deps]
# These are the additional test dependencies
AdvancedHMC = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d"
AdvancedMH = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170"
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
Dictionaries = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4"
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641"
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
MKL = "33e6dc65-8f57-5167-99aa-e5a354878fb2"
MKL_jll = "856f044c-d86e-5d09-b602-aeab76dc8ba7"
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
NQCBase = "78c76ebc-5665-4934-b512-82d81b5cbfb7"
NQCCalculators = "ddd1f41d-9621-41e2-91a4-6b87cc8989f3"
NQCDInterfASE = "4606675f-2246-4a0b-99d5-75b910de637b"
NQCDistributions = "657014a1-bd25-4aa2-92cb-cbcede0310ad"
NQCDynamics = "36248dfb-79eb-4f4d-ab9c-e29ea5f33e14"
NQCModels = "c814dc9f-a51f-4eaf-877f-82eda4edad48"
NQCDInterfASE = "4606675f-2246-4a0b-99d5-75b910de637b"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
RingPolymerArrays = "81cd853e-d334-476c-b156-f95acc8a32dc"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
# These are NQCDynamics deps copied over from the main Project.toml
AdvancedHMC = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d"
AdvancedMH = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170"
ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66"
Dictionaries = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4"
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641"
HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
MKL_jll = "856f044c-d86e-5d09-b602-aeab76dc8ba7"
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8"
ParallelTestRunner = "d3525ed8-44d0-4b2c-a655-542cee43accc"
Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
PeriodicTable = "7b2266bf-644c-5ea3-82d8-af4bbd25a884"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
RingPolymerArrays = "81cd853e-d334-476c-b156-f95acc8a32dc"
Roots = "f2b01f46-fcfa-551c-844a-d8ac1e96c665"
Rotations = "6038ab10-8711-5258-84ad-4b1120ba62dc"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228"
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
UnitfulAtomic = "a7773ee8-282e-5fa2-be4e-bd808c38a91a"

[sources]
NQCBase = {rev = "main", url = "https://github.com/NQCD/NQCBase.jl.git"}
NQCCalculators = {rev = "main", url = "https://github.com/NQCD/NQCCalculators.jl.git"}
NQCDInterfASE = {rev = "main", url = "https://github.com/NQCD/NQCDInterfASE.jl.git"}
NQCDistributions = {rev = "main", url = "https://github.com/NQCD/NQCDistributions.jl.git"}
NQCDynamics = {path = ".."}
NQCModels = {rev = "main", url = "https://github.com/NQCD/NQCModels.jl.git"}
RingPolymerArrays = {rev = "main", url = "https://github.com/NQCD/RingPolymerArrays.jl.git"}

[compat]
# This compat information covers the additional testing packages.
CSV = "0.10"
DataFrames = "1"
DiffEqDevTools = "2"
DiffEqNoiseProcess = "5"
FiniteDiff = "2"
JLD2 = "0.6"
JSON = "0.21"
MKL = "0.5, 0.6, 0.7, 0.8, 0.9"
NQCDInterfASE = "1"
Plots = "1"
PythonCall = "=0.9.0, =0.9.1, =0.9.2, =0.9.3, =0.9.4, =0.9.5, =0.9.6, =0.9.7, =0.9.8, =0.9.9, =0.9.10, =0.9.11, =0.9.12, =0.9.13, =0.9.14, =0.9.15, =0.9.16, =0.9.17, =0.9.18, =0.9.19, =0.9.20, =0.9.21, =0.9.22, =0.9.23, =0.9.24, =0.9.25, =0.9.26"
SafeTestsets = "0.1"
# This compat information should mirror the main Project.toml.
AdvancedHMC = "0.5, 0.6"
AdvancedMH = "0.8"
CSV = "0.10"
ComponentArrays = "0.11, 0.12, 0.13, 0.14, 0.15"
DataFrames = "1"
Dictionaries = "0.3, 0.4"
DiffEqBase = "6"
DiffEqDevTools = "2"
DiffEqNoiseProcess = "5"
Distributions = "0.25"
FastBroadcast = "0.1, 0.2, 0.3"
FastLapackInterface = "1, 2"
FiniteDiff = "2"
HDF5 = "0.15, 0.16, 0.17"
Interpolations = "0.13, 0.14, 0.15, 0.16"
JLD2 = "0.6"
JSON = "0.21"
MKL = "0.5, 0.6, 0.7, 0.8, 0.9"
MuladdMacro = "0.2"
NQCBase = "1"
NQCCalculators = "1.0.10"
NQCDInterfASE = "1"
NQCDistributions = "1"
NQCModels = "1"
Optim = "1"
OrdinaryDiffEq = "6.103"
OrdinaryDiffEqCore = "1.32, 2, 3"
Parameters = "0.12"
PeriodicTable = "1"
Plots = "1"
ProgressMeter = "1"
PythonCall = "=0.9.0, =0.9.1, =0.9.2, =0.9.3, =0.9.4, =0.9.5, =0.9.6, =0.9.7, =0.9.8, =0.9.9, =0.9.10, =0.9.11, =0.9.12, =0.9.13, =0.9.14, =0.9.15, =0.9.16, =0.9.17, =0.9.18, =0.9.19, =0.9.20, =0.9.21, =0.9.22, =0.9.23, =0.9.24, =0.9.25, =0.9.26"
QuadGK = "2"
RecipesBase = "1"
RecursiveArrayTools = "2, 3"
Reexport = "1"
RingPolymerArrays = "0.1, 1"
Roots = "1, 2"
Rotations = "1"
SafeTestsets = "0.1"
SciMLBase = "1, 2"
SciMLOperators = "0.3, 1"
StaticArrays = "1"
Expand All @@ -116,15 +122,3 @@ UnicodePlots = "2, 3"
Unitful = "1"
UnitfulAtomic = "1"
julia = "1"

# For testing, we should be using the most recent dev versions of our packages by default.
# Override this by manually installing e.g. custom branches first.
[sources]
NQCBase = {rev = "main", url = "https://github.com/NQCD/NQCBase.jl.git"}
NQCCalculators = {rev = "main", url = "https://github.com/NQCD/NQCCalculators.jl.git"}
NQCDistributions = {rev = "main", url = "https://github.com/NQCD/NQCDistributions.jl.git"}
NQCDynamics = {path="../"}
NQCDInterfASE = {rev = "main", url = "https://github.com/NQCD/NQCDInterfASE.jl.git"}
NQCModels = {rev = "main", url = "https://github.com/NQCD/NQCModels.jl.git"}
RingPolymerArrays = {rev = "main", url = "https://github.com/NQCD/RingPolymerArrays.jl.git"}

Loading
Loading