Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address issue 59 (refactor build system) #85

Merged
merged 28 commits into from
Mar 31, 2024
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
d83f3fb
Add initial changes for issue 59 refactor of build system
matthewcarbone Feb 14, 2024
ff920c4
Update pyproject, ignore some IDE tools
matthewcarbone Feb 14, 2024
0e610b1
Remove old version code in init, remove setup.py
matthewcarbone Feb 15, 2024
e6b1a51
Reformat __init__
matthewcarbone Feb 15, 2024
73bedce
Add dunamai support for if version is not set by build system
matthewcarbone Feb 15, 2024
8bda856
Update github actions files
matthewcarbone Feb 15, 2024
1290690
Add some more useful comments to __init__
matthewcarbone Feb 15, 2024
5652303
Change update version script to only grep first instance
matthewcarbone Feb 15, 2024
adb0676
Make the update version script a bit more robust
matthewcarbone Feb 15, 2024
0ffa91e
Debug update_version
matthewcarbone Feb 15, 2024
8ee7116
Debug update_version
matthewcarbone Feb 15, 2024
cf5bd0d
Debug update_version
matthewcarbone Feb 15, 2024
1a8624c
Update and refactor actions
matthewcarbone Feb 15, 2024
5951f32
Disable publish to pypi for now
matthewcarbone Feb 15, 2024
2b0003d
Debug CI
matthewcarbone Feb 15, 2024
a257a75
Refactor CI/deploy
matthewcarbone Feb 15, 2024
a5481a9
Remove my version hack in favor of dunamai
matthewcarbone Feb 28, 2024
fc0d70b
Update pyproject with version-locked dunamai dependency
matthewcarbone Feb 28, 2024
d53a25c
Revise dunamai usage for dynamic versioning
matthewcarbone Mar 1, 2024
e19efc8
Update ci-deploy, remove semantic version placeholder
matthewcarbone Mar 1, 2024
ea3b684
Update build script for writing _version.py
matthewcarbone Mar 1, 2024
b696b97
Add _version.py file back, debugging dunamai build
matthewcarbone Mar 1, 2024
869a8b4
Add init from main
matthewcarbone Mar 1, 2024
db58bd4
Add init from main
matthewcarbone Mar 1, 2024
e3cfefd
Make __init__ imports explicit
matthewcarbone Mar 1, 2024
7d8156b
Make the version detection slightly more flexible
matthewcarbone Mar 1, 2024
3b7ce70
Merge branch 'main' into mc/issue-59
matthewcarbone Mar 29, 2024
af60f98
Modify scripts in scripts directory, remove unused scripts
matthewcarbone Mar 29, 2024
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: 0 additions & 74 deletions .github/workflows/actions.yml

This file was deleted.

48 changes: 48 additions & 0 deletions .github/workflows/ci-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: CI/Deploy

on:
push:
tags: ["v*"]

jobs:

unit:
uses: ./.github/workflows/unit.yml

notebooks:
uses: ./.github/workflows/notebook_smoke.yml

build_and_publish:
name: Upload release to PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/gpax
permissions:
id-token: write

needs:
- unit
- notebooks

steps:

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

- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9

- name: Build and apply version
run: bash scripts/build_project.sh

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
# CURRENTLY USING TEST SERVER FOR NOW!!!!
repository-url: https://test.pypi.org/legacy/
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: CI

on:

pull_request:
branches: ["master", "dev/*", mc/issue-59]

push:
branches: ["master", "dev/*", mc/issue-59]

jobs:

unit:
uses: ./.github/workflows/unit.yml

notebooks:
uses: ./.github/workflows/notebook_smoke.yml
24 changes: 2 additions & 22 deletions .github/workflows/notebook_smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,7 @@ env:
CI_SMOKE: True

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

jobs:
build-linux:
Expand All @@ -34,22 +27,9 @@ jobs:

- name: Install dependencies
run: |
sudo apt-get update -qq
python -m pip install --upgrade pip
python -m pip install flake8 pytest
python -m pip install jaxlib
python -m pip install jax
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

- name: install package
run: |
pip install .
pip list
bash scripts/install.sh

- name: Notebook smoke tests
run: |
pip install ipython
pip install nbformat
pip install seaborn
bash scripts/test_notebooks.sh

50 changes: 0 additions & 50 deletions .github/workflows/publish-to-pypi.yml

This file was deleted.

54 changes: 54 additions & 0 deletions .github/workflows/unit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Unit

env:
PYTHON_MAIN_VERSION: 3.9

on:
workflow_call:

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v3

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

- name: Install dependencies
run: |
bash scripts/install.sh
bash scripts/install.sh test

- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics

- name: Run tests
run: |
pytest -v --cov --cov-report xml tests

- name: Upload coverage to Codecov
if: ${{ matrix.python-version == env.PYTHON_MAIN_VERSION }}
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
# directory: ./coverage/reports/
flags: unittests
env_vars: OS,PYTHON
name: codecov-umbrella
fail_ci_if_error: true
# path_to_write_report: ./coverage/codecov_report.txt
verbose: true
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,6 @@ dmypy.json

# Pyre type checker
.pyre/

# Pyright
pyrightconfig.json
56 changes: 45 additions & 11 deletions gpax/__init__.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,46 @@
from .__version__ import version as __version__
from . import utils
from . import kernels
from . import acquisition
from .hypo import sample_next
from .models import (DKL, CoregGP, ExactGP, MultiTaskGP, iBNN, vExactGP,
vi_iBNN, viDKL, viGP, sPM, viMTDKL, VarNoiseGP, UIGP,
MeasuredNoiseGP, viSparseGP, BNN)
from gpax import acquisition, kernels, utils
from gpax._version import __version__
from gpax.hypo import sample_next
from gpax.models import (
BNN,
DKL,
UIGP,
CoregGP,
ExactGP,
MeasuredNoiseGP,
MultiTaskGP,
VarNoiseGP,
iBNN,
sPM,
vExactGP,
vi_iBNN,
viDKL,
viGP,
viMTDKL,
viSparseGP,
)

__all__ = ["utils", "kernels", "mtkernels", "acquisition", "ExactGP", "vExactGP", "DKL",
"viDKL", "iBNN", "vi_iBNN", "MultiTaskGP", "viMTDKL", "viGP", "sPM", "VarNoiseGP",
"UIGP", "MeasuredNoiseGP", "viSparseGP", "CoregGP", "BNN", "sample_next", "__version__"]
__all__ = [
"utils",
"kernels",
"mtkernels",
"acquisition",
"ExactGP",
"vExactGP",
"DKL",
"viDKL",
"iBNN",
"vi_iBNN",
"MultiTaskGP",
"viMTDKL",
"viGP",
"sPM",
"VarNoiseGP",
"UIGP",
"MeasuredNoiseGP",
"viSparseGP",
"CoregGP",
"BNN",
"sample_next",
"__version__",
]
1 change: 0 additions & 1 deletion gpax/__version__.py

This file was deleted.

10 changes: 10 additions & 0 deletions gpax/_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""Version file. This is overwritten during build and will contain a static
__version__ variable."""

try:
import dunamai as _dunamai

__version__ = _dunamai.Version.from_any_vcs().serialize()
del _dunamai
except ImportError:
__version__ = "dev"
Loading
Loading