Skip to content
Merged

1.8.0 #437

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
218 commits
Select commit Hold shift + click to select a range
78b3c37
New sklearn transformer wrapper
stewarthe6 Jan 21, 2025
f35e3fb
This should be an else if since it is an else if in the init and in u…
stewarthe6 Jan 21, 2025
458e188
Remove UMAP transformer since it is deprecated
stewarthe6 Jan 21, 2025
2479de0
deleted large chunk of commented code
stewarthe6 Jan 21, 2025
9e8dfce
Inserted Sklearn RobustScaler and PowerTransformer into the pipeline …
stewarthe6 Jan 21, 2025
53d3f74
Fixed argument name. Changed from robustscaler_with_scaling to robust…
stewarthe6 Jan 21, 2025
8feea36
Updated test to use mordred_filtered features. Added arguments to def…
stewarthe6 Jan 21, 2025
1eda346
feature_transformer_type should be feature_transform_type
stewarthe6 Jan 22, 2025
fd22692
unit_variance parameter must be a tuple
stewarthe6 Jan 22, 2025
28cd0e0
Convert quartiles
stewarthe6 Jan 22, 2025
77c8b26
Updated rdkit to use AvgIpc for a numerically better behaved feature
stewarthe6 Jan 22, 2025
2551e38
set default for PowerTransformer method
stewarthe6 Jan 23, 2025
225c00d
Merge branch '1.7.0' into feature_sklearn_transformer
stewarthe6 Mar 20, 2025
fa3ea05
Update descriptor_sets_sources_by_descr_type.csv
stewarthe6 Mar 20, 2025
01b4c28
rdkit_scaled by heavy atom count is working
stewarthe6 Mar 26, 2025
94326bc
rdkit_raw has the Ipc feature which causes RobustTransformer to retur…
stewarthe6 Mar 27, 2025
6e7805a
Added SimpleImputer to help sort out nans in the dataset when used wi…
stewarthe6 Mar 27, 2025
46fe7a1
Set add_indicator to True so inverse transform works. Also cleaned up…
stewarthe6 Mar 27, 2025
2592636
Merged in sklearn transformer branch. Added mordred_filtered_scaled f…
stewarthe6 Mar 27, 2025
cdb6f98
Added json needed for the delaney_panel test.
stewarthe6 Mar 31, 2025
da690e6
default_true and default_false were being overwritten. Now calls set_…
stewarthe6 Mar 31, 2025
216e02b
Merge branch 'feature_sklearn_transformer' into feat_scaled_rdkit_mor…
stewarthe6 Mar 31, 2025
8634988
Refactor so we wrap sklearn Pipelines instead of transformers to make…
stewarthe6 Apr 2, 2025
c748d0a
Merge branch 'feature_sklearn_transformer' into feat_scaled_rdkit_mor…
stewarthe6 Apr 3, 2025
2969378
Updated rdkit_scaled and mordred_filtered_scaled. Added option to hav…
stewarthe6 Apr 3, 2025
e0af6a2
Updated input sanity check for SklearnPipeLineWrapper. Removed 'add_i…
stewarthe6 Apr 17, 2025
8d98165
Updated transformer test to expect NotImpelmentedError when untransfo…
stewarthe6 Apr 21, 2025
35eb9e9
Merge branch '1.7.0' into feature_sklearn_transformer
stewarthe6 May 13, 2025
c3ae805
Merge branch 'feature_sklearn_transformer' into feat_scaled_rdkit_mor…
stewarthe6 May 14, 2025
0a9033a
Create 1.8.0
mauvais2 May 20, 2025
9e9db51
added 1.8 to compatible group
mauvais2 May 20, 2025
e35afb1
Merge branch 'master' of github.com:ATOMScience-org/AMPL into 1.8.0
mauvais2 May 29, 2025
47ab57a
Merge branch 'master' of github.com:ATOMScience-org/AMPL into 1.8.0
mauvais2 Jun 5, 2025
9bf348e
Merge branch '1.8.0' of github.com:ATOMScience-org/AMPL into 1.8.0
mauvais2 Jun 9, 2025
28f6f28
Functions for saving and loading feature transformers
stewarthe6 Jun 17, 2025
b2bd80f
Merge branch 'feat_scaled_rdkit_mordred' of github.com:ATOMScience-or…
stewarthe6 Jun 17, 2025
c99d46c
Merge branch '1.8.0' into feat_scaled_rdkit_mordred
stewarthe6 Jun 17, 2025
6f50d9f
updated clean function in test_transformer_generation. Fixed referenc…
stewarthe6 Jun 17, 2025
9c564e4
Added tests for, testing if loaded transformers will work on the new …
stewarthe6 Jun 19, 2025
0cf3529
Removed transformer_dataset_key_configs from parameters since we neve…
stewarthe6 Jun 19, 2025
a99b0f6
removed unused import
stewarthe6 Jun 19, 2025
0de97f2
Updated MOE featurization to use local svl files. Removed reference t…
stewarthe6 Jul 21, 2025
1fe739d
removed unused import and print statements
stewarthe6 Jul 21, 2025
a30647a
Cleaning up spaces and print statements. Added test for compute_all_m…
stewarthe6 Jul 22, 2025
8047618
Remove TODO
ATOMconsortium Jul 23, 2025
869082b
Merge pull request #408 from ATOMScience-org/feat_moe_svl
stewarthe6 Jul 30, 2025
71f1c23
Github CI now skips moe_required marked unit tests
stewarthe6 Jul 31, 2025
790aa30
Moved to the atomsci unit test command
stewarthe6 Jul 31, 2025
09d2f88
Moved to the atomsci unit test command
stewarthe6 Jul 31, 2025
0c86f22
Do not run moe_required tests in github CI
stewarthe6 Jul 31, 2025
fc6405f
set seed for test consistency
stewarthe6 Aug 4, 2025
72869a3
pytest in gitlab ci isn't picking up tests in modac/test/unit/ try to…
stewarthe6 Aug 4, 2025
de9ac7b
See if commands after pytest batch call get run
stewarthe6 Aug 5, 2025
8f898cd
Added simple test to test_hybrid so excluding moe tests won't remove …
stewarthe6 Aug 5, 2025
e7a01d8
Replaced xgb model option gpu_id with 'device' to work with more rece…
mcloughlin2 Dec 16, 2025
b825223
fix remove_outlier_replicates to dismiss NaN rows from response colum…
paulsonak Jan 29, 2026
bdf9c9e
Initial plan
Copilot Jan 29, 2026
ddfff6f
Update atomsci/ddm/utils/curate_data.py
paulsonak Jan 29, 2026
9a86133
Update atomsci/ddm/utils/curate_data.py
paulsonak Jan 29, 2026
c4e8005
Update docstring to document NaN removal in remove_outlier_replicates
Copilot Jan 29, 2026
c0c779a
Add empty value for last entry in pGP_MDCK CSV
paulsonak Jan 29, 2026
367cd94
Update expected number of removed rows in test
paulsonak Jan 29, 2026
9ec03bd
Update atomsci/ddm/utils/curate_data.py
paulsonak Jan 29, 2026
cfb744d
Merge pull request #422 from ATOMScience-org/paulsonak-patch-1
paulsonak Jan 29, 2026
8766aea
Merge pull request #421 from ATOMScience-org/copilot/sub-pr-420
paulsonak Jan 29, 2026
1086a93
added utility functions to filter compounds out based on features as …
stewarthe6 Feb 17, 2026
a37af47
Merge pull request #411 from ATOMScience-org/feat_moe_svl
stewarthe6 Feb 17, 2026
886dfba
Merge branch '1.8.0' into bug_remove_outlier_replicates
stewarthe6 Feb 17, 2026
539c47c
Github can no longer find the required version of libpng. This might …
stewarthe6 Feb 18, 2026
cc8b4a5
Add this to the linter yaml to fix the missing listing for libpng
stewarthe6 Feb 18, 2026
ca11cb2
fix apt mirrors in apt-get
mauvais2 Feb 18, 2026
494ad92
Revert "fix apt mirrors in apt-get"
mauvais2 Feb 18, 2026
de14203
Merge pull request #423 from ATOMScience-org/bug_cli_apt-get_update
stewarthe6 Feb 19, 2026
5ff8f2a
Merge branch '1.8.0' into bug_remove_outlier_replicates
stewarthe6 Feb 19, 2026
5430543
Tests dropping nan values in the response column print statement in r…
stewarthe6 Feb 19, 2026
27afad0
refactor: merge coverage reports from all test jobs for codecov
stewarthe6 Feb 19, 2026
e6d2b62
Updated coverage-merge. The old version was expecting the wrong file …
stewarthe6 Feb 20, 2026
72d5cb8
Added venv creation script based on Jeff Mast's GMD install script.
mcloughlin2 Feb 21, 2026
f51263c
Fixed an incorrectly indented block in pytest.yml
stewarthe6 Feb 23, 2026
830fd1f
Corrected the path for the coverage reports
stewarthe6 Feb 24, 2026
656567d
Added debug statement to look for coverage reports
stewarthe6 Feb 24, 2026
b005aaa
Updated coverage locations. I'm leaving in the debug statements to he…
stewarthe6 Feb 24, 2026
bed149a
Even though the path is correct, these files are not being uploaded b…
stewarthe6 Feb 24, 2026
96bc75a
Merge pull request #420 from ATOMScience-org/bug_remove_outlier_repli…
stewarthe6 Feb 25, 2026
95ac76b
Replaced xgb model option gpu_id with 'device' to work with more rece…
mcloughlin2 Dec 16, 2025
c755f4b
Added venv creation script based on Jeff Mast's GMD install script.
mcloughlin2 Feb 21, 2026
d04d7cb
changed __init__.py to not use pkg_resources to get version
mauvais2 Feb 25, 2026
135bcd2
Merge remote-tracking branch 'refs/remotes/origin/py308' into py310
mauvais2 Feb 25, 2026
6cd5746
Merge branch '1.8.0' into feat_scaled_rdkit_mordred
stewarthe6 Feb 25, 2026
453c19d
updated from python 3.9 to 3.10
mauvais2 Mar 3, 2026
9efc5cd
1) update docker, ci workflow to python 3.10 2) change from pip to uv…
mauvais2 Mar 4, 2026
9437631
more uv update/fixes
mauvais2 Mar 4, 2026
cea1297
Tests for methods that filter out compounds by large feature values o…
stewarthe6 Mar 5, 2026
8d47b93
Added a test case that has nan or inf features. Added a test case for…
stewarthe6 Mar 5, 2026
3be943a
Thuroughly tested zero_out_inf_nan using ChatGPT. Tested create_featu…
stewarthe6 Mar 5, 2026
60a6402
upgrade torch 2.1.2, dgl 2.1.0, scipy 1.1.0, numpy <2 to fix the scip…
mauvais2 Mar 5, 2026
41c1fab
updated deepchem related packages
mauvais2 Mar 6, 2026
18b330f
Additional tests for:
stewarthe6 Mar 9, 2026
66d7d83
added debug for dgl
mauvais2 Mar 9, 2026
87907d8
more testing
mauvais2 Mar 9, 2026
be1a0c7
more testing
mauvais2 Mar 9, 2026
651f58f
debug dgl, dgllife, torch, etc
mauvais2 Mar 9, 2026
bc6ccd1
pin versions for dgl* and torchdata
mauvais2 Mar 9, 2026
db457b6
Add new json to test Identity transformer
stewarthe6 Mar 10, 2026
b595ad8
updated cpu_requirements
mauvais2 Mar 10, 2026
fdab123
more fixes for deepchem 2.8, dgl
mauvais2 Mar 10, 2026
0d7f6f2
removed the inline commentes from yaml
mauvais2 Mar 10, 2026
1715354
Test that taking the log of a negative value feature throws the corre…
stewarthe6 Mar 10, 2026
48428cd
1) refactored the jobs, steps. moved the common actions to its own ym…
mauvais2 Mar 11, 2026
2f88088
fixed the dgl, deepchem issue
mauvais2 Mar 11, 2026
9498385
Remove molvs package dependency in SMILES standardization code.
mcloughlin2 Mar 12, 2026
deb2022
try to fix the error from hyperopt
mauvais2 Mar 12, 2026
b8740c3
more fix to hyperopt import
mauvais2 Mar 16, 2026
831386c
more hyperopt fixes
mauvais2 Mar 16, 2026
a7efab6
more fixes
mauvais2 Mar 16, 2026
3b9616c
took setuptools and wheel out. do the install in the ci pipeline inst…
mauvais2 Mar 17, 2026
87867f2
added test for atomsci version
mauvais2 Mar 18, 2026
b6dd35c
used ${{ github.workspace }} to get root path
mauvais2 Mar 18, 2026
b9cd54c
added duration flags to see which tests are slowest
mauvais2 Mar 19, 2026
f1b7be8
Updated plot_pred_vs_actual_from_file. Sometimes when both single tas…
stewarthe6 Mar 23, 2026
a42561c
change to the BSEP graphconv model to improve the test speed dramatic…
paulsonak Mar 25, 2026
1ff66c4
Merge pull request #426 from ATOMScience-org/fix_test_prediction_order
mauvais2 Mar 25, 2026
d4e8c3c
Merge remote-tracking branch 'origin/0.8.0' into py310-sub
mauvais2 Mar 30, 2026
df6adbc
Merge pull request #425 from ATOMScience-org/py310-sub
mauvais2 Mar 31, 2026
9b05b90
pkg_resources related fixes
mauvais2 Mar 31, 2026
a9946f7
Merge pull request #427 from ATOMScience-org/pkg_resources_fixes
mauvais2 Apr 1, 2026
133e6c0
Merge branch '1.8.0' into remove_molvs_dep
mcloughlin2 Apr 1, 2026
3e4c23f
Removed molvs from pyproject and pip requirements files.
mcloughlin2 Apr 1, 2026
1ddf4ef
Replaced bare 'except' statements that Ruff doesn't like.
mcloughlin2 Apr 1, 2026
c52125d
Removed recursive dependency of atomsci-ampl on itself. Fixed some is…
mcloughlin2 Apr 2, 2026
1baeaba
changed to use uncharger.uncharge() instead of uncharger(std_mol)
mauvais2 Apr 2, 2026
f9be6d7
put workers=2 back
mauvais2 Apr 2, 2026
0705bd2
Merge pull request #428 from ATOMScience-org/remove_molvs_dep
mauvais2 Apr 2, 2026
f0f3408
ClaudeSonnet4.6+AKP: swap hyperopt import for optuna+math, suppress o…
paulsonak Apr 14, 2026
a9889a6
ClaudeSonnet4.6+AKP: add build_optuna_suggest(), remove build_hyperop…
paulsonak Apr 14, 2026
b2c90d0
ClaudeSonnet4.6+AKP: rename HyperOptSearch -> OptunaSearch
paulsonak Apr 14, 2026
69378a6
ClaudeSonnet4.6+AKP: rewrite OptunaSearch.__init__ (remove self.space…
paulsonak Apr 14, 2026
0e6afd4
ClaudeSonnet4.6+AKP: rewrite run_search objective() fn and param assi…
paulsonak Apr 14, 2026
b6ca99e
ClaudeSonnet4.6+AKP: update build_search dispatch to OptunaSearch (st…
paulsonak Apr 14, 2026
5ccf10f
ClaudeSonnet4.6+AKP: update parameter_parser.py help text (HyperOpt -…
paulsonak Apr 14, 2026
f6779cf
ClaudeSonnet4.6+AKP: replace hyperopt with optuna in all requirements…
paulsonak Apr 14, 2026
bb97709
ClaudeSonnet4.6+AKP: update comment in test_hyperopt.py (HyperOpt -> …
paulsonak Apr 14, 2026
0d192f1
ClaudeSonnet4.6+AKP: add unit tests for build_optuna_suggest and chec…
paulsonak Apr 14, 2026
72b4e4e
ClaudeSonnet4.6+AKP: add NN regression and RF classification integrat…
paulsonak Apr 14, 2026
11f1eae
ClaudeSonnet4.6+AKP: update docs (PARAMETERS.md, 05_hyperopt.rst, 05_…
paulsonak Apr 14, 2026
738c4b9
GPT5.3Codex+AKP: sanitize non-finite Optuna objective metrics
paulsonak Apr 15, 2026
020797d
GPT5.3Codex+AKP: add configurable invalid prediction handling and rep…
paulsonak Apr 15, 2026
749b80e
GPT5.3Codex+AKP: expose invalid prediction metrics in compare_models …
paulsonak Apr 15, 2026
c9f10ae
fix imports for ruff
paulsonak Apr 15, 2026
219c96b
GPT5.3Codex+AKP: harden multitask metric explode for missing task fields
paulsonak Apr 15, 2026
b0712c5
GPT5.3Codex+AKP: add NaN/Inf handling unit tests across perf, compare…
paulsonak Apr 15, 2026
a784953
Add invalid prediction regression coverage
paulsonak Apr 15, 2026
31d1b00
Clean up extracted test artifacts
paulsonak Apr 15, 2026
6a4e0c5
Handle MPS tensors before NumPy conversion
paulsonak Apr 16, 2026
0e93729
Make compare_models fixture assertions dataset-key aware
paulsonak Apr 16, 2026
a7cc093
Run integrative tests from their module directories
paulsonak Apr 16, 2026
49ee539
Skip unsupported Apple accelerator backends in retrain tests
paulsonak Apr 16, 2026
2e30617
fix imports for ruff
paulsonak Apr 15, 2026
87a95eb
fix unit tests
paulsonak Apr 16, 2026
e2c0035
ClaudeSonnet4.6+AKP: add additional integrative tests for codecov cov…
paulsonak Apr 16, 2026
10150d8
ClaudeSonnet4.6+AKP: rewrite integrative tests to call run_search() i…
paulsonak Apr 16, 2026
7cdf479
GPT5.3Codex+AKP: Update readme for hyperopt usage with Optuna instead…
paulsonak Apr 17, 2026
eb59909
ClaudeSonnet4.6+AKP: add additional integrative tests for codecov cov…
paulsonak Apr 16, 2026
254291f
ClaudeSonnet4.6+AKP: rewrite integrative tests to call run_search() i…
paulsonak Apr 16, 2026
f09b501
GPT5.3Codex+AKP: Update readme for hyperopt usage with Optuna instead…
paulsonak Apr 17, 2026
368c4a8
GPT5.3Codex+AKP stabilize compare_models unit fixtures for CI with mo…
paulsonak Apr 17, 2026
e3fb307
uv check-in for cpu
mauvais2 Apr 7, 2026
234e8ac
made changes for ci jobs
mauvais2 Apr 7, 2026
a440312
fixed ci. added doc
mauvais2 Apr 7, 2026
deb7692
added cuda env build
mauvais2 Apr 9, 2026
83d470f
updated pyproject.toml
mauvais2 Apr 13, 2026
d8b6703
updated for cpu, cuda, rocm. first draft of the readme
mauvais2 Apr 14, 2026
2314192
update docs
mauvais2 Apr 14, 2026
e5b249b
updated docker, readthedocs related build. need to test
mauvais2 Apr 14, 2026
f948491
updated lock files after pyproject.toml change
mauvais2 Apr 14, 2026
b6c3412
updated makefile
mauvais2 Apr 15, 2026
de9e112
added Dockerfile.rocm. will test later
mauvais2 Apr 15, 2026
e32d887
Update README
mauvais2 Apr 15, 2026
1ce23dc
update mchip specific tensorflow import
paulsonak Apr 14, 2026
bd01eac
change VIRTUAL_ENV to UV_PROJECT_ENV to install packages in the right…
paulsonak Apr 14, 2026
e8465c9
lockfile for mchip
paulsonak Apr 14, 2026
9b2f2d6
checked in uv.lock.<cpu|cuda>. modified pyproject.toml
mauvais2 Apr 15, 2026
3319ecc
rebased to uv-setup and remade uv.lock.mchip with tensorflow-metal
paulsonak Apr 15, 2026
0f1e808
updated reamde
mauvais2 Apr 15, 2026
b301f12
deleted unused scripts since switched to uv
mauvais2 Apr 17, 2026
0a715ee
updated to include 'optuna' changes
mauvais2 Apr 17, 2026
e670fa0
Merge pull request #431 from ATOMScience-org/feature/hyperopt-to-optuna
mauvais2 Apr 17, 2026
aeb955c
merged
mauvais2 Apr 20, 2026
2fc3e22
update uv lockfile for mchip with optuna
paulsonak Apr 17, 2026
110dfa8
Add max_invalid_pred_frac parameter documentation
paulsonak Apr 20, 2026
51bd5cc
Merging in 1.8.0
stewarthe6 Apr 20, 2026
a47e1b3
Merge pull request #432 from ATOMScience-org/optuna_fix_failed_scores
mauvais2 Apr 21, 2026
9bd003a
Added a variance threshold that removes any features that are constan…
stewarthe6 Apr 21, 2026
dd91d65
updated docs for the install from pypi. added exclude files to reduce…
mauvais2 Apr 22, 2026
6c6325b
Adding rdkit_raw features for MRP3 dataset to speed up balancing tran…
stewarthe6 Apr 22, 2026
5eef520
Merge pull request #424 from ATOMScience-org/feat_scaled_rdkit_mordred
mauvais2 Apr 22, 2026
670999e
merged with 1.8.0
mauvais2 Apr 22, 2026
2f94055
merged with 1.8.0. add more info in pyproject.toml
mauvais2 Apr 22, 2026
99896ae
fixed pyproject.tooml
mauvais2 Apr 22, 2026
23ae055
put '>=3.10,<3.11' back to avoid rebuild of all lock files
mauvais2 Apr 22, 2026
76a5318
include new params in the test
mauvais2 Apr 22, 2026
168e341
moved the atom logo file and reformatted to work for pypi
mauvais2 Apr 22, 2026
36f9fc3
updated readme, pyproject.toml
mauvais2 Apr 22, 2026
c542f88
use relative path for the icon file for now. after push to master, ch…
mauvais2 Apr 22, 2026
78e47aa
added new params for #434
mauvais2 Apr 23, 2026
338133e
brought files from prep-1.8.0. restored the build.sh, install*.sh and…
mauvais2 Apr 23, 2026
8c2f997
Adding mordred features to speed up tests
stewarthe6 Apr 23, 2026
935cdee
Merge pull request #435 from ATOMScience-org/fix_test_param_parse
mauvais2 Apr 23, 2026
da8e078
updated README.md and makefile
mauvais2 Apr 23, 2026
5424a48
updated publish.yml to manaul only
mauvais2 Apr 24, 2026
a4a7111
Add installation instructions for atomsci-ampl
stewarthe6 Apr 27, 2026
95b3299
1) updated readme. rearranged the toc 2) added generate_transformers …
mauvais2 Apr 27, 2026
aae5e96
Merge pull request #436 from ATOMScience-org/feat_MRP3_features
mauvais2 Apr 27, 2026
5e46ed5
changed the docker build to manual, added comments
mauvais2 Apr 27, 2026
46a06fd
fixed syntax
mauvais2 Apr 27, 2026
0ee4334
cleaned up readme
mauvais2 Apr 27, 2026
cd3d1a1
Merge pull request #429 from ATOMScience-org/uv-setup
mauvais2 Apr 27, 2026
570daa4
updated readme shield version. chnage the logo to raw
mauvais2 Apr 28, 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
74 changes: 74 additions & 0 deletions .github/actions/python-uv-setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: "python-uv-setup"
description: "Common Python + uv setup, deps install, and optional debug"

inputs:
python-version:
description: "Python version"
required: true
debug:
description: "Enable debug output"
required: false
default: "false"
lockfile:
description: "Lockfile to use"
required: false
default: "uv.lock.cpu"
extras:
description: "Extra dependency set to install"
required: false
default: "cpu"
dependency-groups:
description: "Dependency group to install"
required: false
default: "dev"

runs:
using: "composite"
steps:
- name: System Dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libcairo2-dev \
pkg-config \
python3-dev \
python3-openssl \
libopenblas-dev \
libssl-dev

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}

- name: Install uv
shell: bash
run: |
python -m pip install --upgrade uv
uv --version

- name: Cache uv dependencies
uses: actions/cache@v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-py${{ inputs.python-version }}-uv-${{ hashFiles('pyproject.toml', 'uv.lock.cpu') }}
restore-keys: |
${{ runner.os }}-py${{ inputs.python-version }}-uv-

- name: Install dependencies
shell: bash
run: |
set -euxo pipefail
cp "${{ inputs.lockfile }}" uv.lock
uv venv .venv
. .venv/bin/activate
uv sync --extra "${{ inputs.extras }}" --group "${{ inputs.dependency-groups }}" --locked

- name: Debug - what is installed
if: ${{ inputs.debug == 'true' }}
shell: bash
run: |
. .venv/bin/activate
uv pip list
113 changes: 59 additions & 54 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,59 +1,64 @@
# How to run manually:
# 1. Go to the GitHub repository.
# 2. Click the "Actions" tab.
# 3. Select this workflow, "docker publish".
# 4. Click "Run workflow".
# 5. Choose the desired inputs, then click "Run workflow".

name: docker publish

on:
release:
types: [published]
workflow_dispatch:
inputs:
env:
description: "Deployment environment"
required: true
default: "prod"
type: choice
options:
- prod
- staging
target:
description: "Which image(s) to build"
required: true
default: "all"
type: choice
options:
- all
- gpu
- rocm
- cpu-amd64
- cpu-arm64

jobs:
build-gpu-image:
build-and-push:
runs-on: ubuntu-24.04
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 1
strategy:
fail-fast: false
matrix:
include:
# Uses Dockerfile.gpu
- name: gpu
platform: gpu
arch: ""
# Uses Dockerfile.rocm
- name: rocm
platform: rocm
arch: ""
# Uses Dockerfile.cpu
- name: cpu-amd64
platform: cpu
arch: ""
# Uses Dockerfile.arm
- name: cpu-arm64
platform: arm
arch: linux/arm64

- name: Build and push Docker image (gpu)
run: |
make push-docker
env:
ENV: prod
PLATFORM: gpu
build-cpu-linux-amd64:
runs-on: ubuntu-24.04
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up QEMU
if: ${{ matrix.arch == 'linux/arm64' }}
uses: docker/setup-qemu-action@v3

- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 1

- name: Build and push Docker image (cpu)
run: |
make push-docker
env:
ENV: prod
PLATFORM: cpu
build-cpu-linux-arm64:
runs-on: ubuntu-24.04
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

Expand All @@ -64,14 +69,14 @@ jobs:
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Build and push Docker image (cpu)
run: |
make push-docker
- name: Build and push Docker image
if: ${{ github.event.inputs.target == 'all' || github.event.inputs.target == matrix.name }}
run: make push-docker
env:
ARCH: linux/arm64
ENV: prod
PLATFORM: arm
ENV: ${{ github.event.inputs.env }}
PLATFORM: ${{ matrix.platform }}
ARCH: ${{ matrix.arch }}
34 changes: 23 additions & 11 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ jobs:
runs-on: ubuntu-24.04
strategy:
matrix:
python-version: ["3.9"]
python-version: ["3.10"]

steps:
- name: Update apt cache
run: |
sudo apt-get update || sudo apt-get update --fix-missing

- name: System Dependencies
run: |
sudo apt install -y build-essential \
Expand All @@ -18,30 +22,38 @@ jobs:
python3-dev \
python3-openssl
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Cache Python dependencies
- name: Install uv
run: |
python -m pip install --upgrade uv
uv --version

- name: Cache uv downloads
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pip/*.txt') }}
path: ~/.cache/uv
key: ${{ runner.os }}-uv-${{ hashFiles('pip/*.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-uv-

- name: Install dependencies
- name: Create venv
run: |
python3.9 -m pip install --upgrade pip
if [ -f pip/cpu_requirements.txt ]; then pip install -r pip/cpu_requirements.txt; fi
uv venv .venv

- name: Install ruff
- name: Install dependencies
run: |
python3.9 -m pip install ruff
. .venv/bin/activate
if [ -f pip/cpu_requirements.txt ]; then pip install -r pip/cpu_requirements.txt; fi
uv pip install ruff

- name: Lint with ruff
run: |
# Check all lint rules
python3.9 -m ruff check atomsci/
. .venv/bin/activate
uv run ruff check atomsci/

Loading
Loading