From 5566c46fdeddaf30e75e9c3fa4ed5749111298b4 Mon Sep 17 00:00:00 2001 From: andrewfayres Date: Wed, 13 May 2026 09:45:43 -0500 Subject: [PATCH] adding publishing workflow --- .github/workflows/publish.yml | 48 +++++++++++++++++++++++++++++++++++ pyproject.toml | 21 ++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..29f0f11 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,48 @@ +name: Publish to PyPI + +on: + release: + types: [published] + +jobs: + test: + runs-on: ubuntu-latest + env: + PYTHONPATH: src + WANDB_MODE: disabled + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: "3.13" + - name: Install dependencies + run: | + pip install --no-cache-dir poetry poetry-plugin-export + poetry config virtualenvs.create false + poetry export -f requirements.txt -o requirements.txt --without-hashes --with dev + pip install --no-cache-dir -r requirements.txt && rm requirements.txt + - name: Lint + run: | + poetry run ruff check + poetry run ruff format --check + - name: Type check + run: poetry run mypy . + - name: Test + run: poetry run pytest + + publish: + needs: test + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: "3.13" + - name: Install Poetry + run: pip install poetry + - name: Build package + run: poetry build + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/pyproject.toml b/pyproject.toml index b12cae8..d36f7d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,22 @@ name = "apeiron" version = "0.1.0" description = "A PyTorch continual learning framework for real-time concept drift detection and model adaptation." authors = [ - {name = "Your Name",email = "you@example.com"} + {name = "Andrew Ayres", email = "andrew.f.ayres@gmail.com"}, + {name = "Ana Gainaru", email = "ana.gainaru@gmail.com"}, + {name = "Anna Quach", email = "aquach4@gmail.com"}, + {name = "Krishnan Raghavan", email = "krm9c@outlook.com"}, + {name = "Rafael Zamora-Resendiz"}, + {name = "Steffen Schotthöfer", email = "steffen.schotthoefer@outlook.de"}, + {name = "Zilinghan Li"}, +] +license = {text = "Apache-2.0"} +keywords = ["continual learning", "concept drift", "pytorch", "machine learning"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python :: 3.13", + "Topic :: Scientific/Engineering :: Artificial Intelligence", ] readme = "README.md" requires-python = ">=3.13,<3.14" @@ -39,6 +54,10 @@ dev = [ requires = ["poetry-core>=2.0.0,<3.0.0"] build-backend = "poetry.core.masonry.api" +[project.urls] +Homepage = "https://github.com/AI-ModCon/BaseSim_Framework" +Repository = "https://github.com/AI-ModCon/BaseSim_Framework" + [tool.poetry] packages = [ { include = "apeiron", from = "src" },