diff --git a/.github/bump_version.py b/.github/bump_version.py new file mode 100644 index 00000000..bb0fd6dd --- /dev/null +++ b/.github/bump_version.py @@ -0,0 +1,79 @@ +"""Infer semver bump from towncrier fragment types and update version.""" + +import re +import sys +from pathlib import Path + + +def get_current_version(pyproject_path: Path) -> str: + text = pyproject_path.read_text() + match = re.search(r'^version\s*=\s*"(\d+\.\d+\.\d+)"', text, re.MULTILINE) + if not match: + print( + "Could not find version in pyproject.toml", + file=sys.stderr, + ) + sys.exit(1) + return match.group(1) + + +def infer_bump(changelog_dir: Path) -> str: + fragments = [ + f + for f in changelog_dir.iterdir() + if f.is_file() and f.name != ".gitkeep" + ] + if not fragments: + print("No changelog fragments found", file=sys.stderr) + sys.exit(1) + + categories = {f.suffix.lstrip(".") for f in fragments} + for f in fragments: + parts = f.stem.split(".") + if len(parts) >= 2: + categories.add(parts[-1]) + + if "breaking" in categories: + return "major" + if "added" in categories or "removed" in categories: + return "minor" + return "patch" + + +def bump_version(version: str, bump: str) -> str: + major, minor, patch = (int(x) for x in version.split(".")) + if bump == "major": + return f"{major + 1}.0.0" + elif bump == "minor": + return f"{major}.{minor + 1}.0" + else: + return f"{major}.{minor}.{patch + 1}" + + +def update_file(path: Path, old_version: str, new_version: str): + text = path.read_text() + updated = text.replace( + f'version = "{old_version}"', + f'version = "{new_version}"', + ) + if updated != text: + path.write_text(updated) + print(f" Updated {path}") + + +def main(): + root = Path(__file__).resolve().parent.parent + pyproject = root / "pyproject.toml" + changelog_dir = root / "changelog.d" + + current = get_current_version(pyproject) + bump = infer_bump(changelog_dir) + new = bump_version(current, bump) + + print(f"Version: {current} -> {new} ({bump})") + + update_file(pyproject, current, new) + + +if __name__ == "__main__": + main() diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index f49f4ffd..77eb1dbf 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -18,25 +18,20 @@ jobs: with: options: ". -l 79 --check" version: "24.3.0" - check-version: - name: Check version + check-changelog: + name: Check changelog fragment runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.event.pull_request.head.ref }} - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - name: Build changelog - run: pip install yaml-changelog && make changelog - - name: Preview changelog update - run: ".github/get-changelog-diff.sh" - - name: Check version number has been properly updated - run: ".github/is-version-number-acceptable.sh" + - uses: actions/checkout@v4 + - name: Check for changelog fragment + run: | + FRAGMENTS=$(find changelog.d -type f ! -name '.gitkeep' | wc -l) + if [ "$FRAGMENTS" -eq 0 ]; then + echo "::error::No changelog fragment found in changelog.d/" + echo "Add one with: echo 'Description.' > changelog.d/\$(git branch --show-current)..md" + echo "Types: added, changed, fixed, removed, breaking" + exit 1 + fi test: name: Test runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index 4b1ddd9c..a1b9b4aa 100644 --- a/Makefile +++ b/Makefile @@ -29,13 +29,9 @@ deploy: ## Deploy to GCP rm Dockerfile rm .gac.json -changelog: ## Build changelog - build-changelog changelog.yaml --output changelog.yaml --update-last-date --start-from 0.1.0 --append-file changelog_entry.yaml - build-changelog changelog.yaml --org PolicyEngine --repo policyengine-household-api --output CHANGELOG.md --template .github/changelog_template.md - bump-version changelog.yaml setup.py policyengine_household_api/constants.py - rm changelog_entry.yaml || true - touch changelog_entry.yaml - +changelog: + python .github/bump_version.py + towncrier build --yes --version $$(python -c "import re; print(re.search(r'version = \"(.+?)\"', open('pyproject.toml').read()).group(1))") COMPOSE_FILE ?= docker/docker-compose.yml COMPOSE_EXTERNAL_FILE ?= docker/docker-compose.external.yml DOCKER_IMG ?= policyengine:policyengine-household-api diff --git a/changelog_entry.yaml b/changelog.d/.gitkeep similarity index 100% rename from changelog_entry.yaml rename to changelog.d/.gitkeep diff --git a/changelog.d/migrate-to-towncrier.changed.md b/changelog.d/migrate-to-towncrier.changed.md new file mode 100644 index 00000000..865484ad --- /dev/null +++ b/changelog.d/migrate-to-towncrier.changed.md @@ -0,0 +1 @@ +Migrated from changelog_entry.yaml to towncrier fragments to eliminate merge conflicts. diff --git a/changelog.yaml b/changelog.yaml deleted file mode 100644 index 95c33189..00000000 --- a/changelog.yaml +++ /dev/null @@ -1,1365 +0,0 @@ -- changes: - added: - - Initial API. - date: 2023-12-14 00:00:00 - version: 0.1.0 -- bump: patch - changes: - changed: - - Change links to re-enable changelog building - date: 2023-12-18 18:04:42 -- bump: patch - changes: - changed: - - Manually added last changelog entries - date: 2023-12-18 18:22:16 -- bump: patch - changes: - added: - - Changelog update. - date: 2023-12-19 16:47:18 -- bump: patch - changes: - changed: - - Temporarily disabled GCP deployment - date: 2023-12-19 21:26:41 -- bump: patch - changes: - changed: - - Removed unused code portions - date: 2023-12-20 23:33:36 -- bump: patch - changes: - changed: - - Removed deprecated economy, metadata, and policy folders - date: 2023-12-21 02:02:43 -- bump: patch - changes: - changed: - - Removed deprecated tests - date: 2023-12-21 02:18:35 -- bump: patch - changes: - changed: - - Re-enabled local testing in GitHub Actions - date: 2023-12-21 02:25:10 -- bump: patch - changes: - changed: - - Added tests to ensure API-light in sync with API - date: 2023-12-21 04:50:12 -- bump: minor - changes: - added: - - First version deployment ready. - date: 2023-12-21 17:17:09 -- bump: patch - changes: - changed: - - Pointed Dockerfile toward correct target - date: 2023-12-21 19:29:40 -- bump: patch - changes: - changed: - - Changing text to redeploy - date: 2023-12-21 19:33:02 -- bump: patch - changes: - changed: - - Repo address now lowercase - date: 2023-12-21 19:37:10 -- bump: patch - changes: - changed: - - Updated Dockerfile address - date: 2023-12-21 20:17:34 -- bump: patch - changes: - adds: - - Specify urllib version in setup.py - date: 2023-12-21 20:34:42 -- bump: patch - changes: - changed: - - Corrected import for urllib3 - date: 2023-12-21 20:41:57 -- bump: patch - changes: - changed: - - Changed urllib3 specification to accord with policyengine-core - date: 2023-12-21 20:51:01 -- bump: patch - changes: - removed: - - Reference to deleting non-existent db password - date: 2023-12-21 21:38:11 -- bump: minor - changes: - added: - - Added authentication via auth0 - date: 2024-01-03 02:30:44 -- bump: patch - changes: - changed: - - Moved auth protection to main API file - date: 2024-01-03 03:14:38 -- bump: patch - changes: - removed: - - Removed the add_yearly_variables function - - Removed conditional yearly variable seeding in get_calculate - date: 2024-01-03 17:52:46 -- bump: patch - changes: - added: - - Added tests for malformed and missing auth tokens - date: 2024-01-03 18:54:18 -- bump: patch - changes: - changed: - - Corrected environment variables to correspond with different auth0 tenant - date: 2024-01-06 23:24:52 -- bump: patch - changes: - changed: - - Correct repo name and updated references (except GCP) - date: 2024-01-15 21:47:09 -- bump: patch - changes: - changed: - - Fixed GCP app folder name - date: 2024-01-15 21:51:07 -- bump: patch - changes: - changed: - - Updated GCP service account name - date: 2024-01-22 18:46:37 -- bump: patch - changes: - changed: - - Properly updated GCP service account address - date: 2024-01-22 19:16:47 -- bump: patch - changes: - changed: - - Update README and home page to reflect proper name - date: 2024-01-22 20:36:31 -- bump: patch - changes: - changed: - - Fix Black version - date: 2024-01-25 22:35:48 -- bump: minor - changes: - added: - - User analytics tracking - date: 2024-01-25 23:10:35 -- bump: minor - changes: - added: - - Fix environment variables - date: 2024-01-25 23:27:28 -- bump: patch - changes: - changed: - - Removed the '@clients' parameter from the client_id portion of the JWT - date: 2024-02-02 16:57:55 -- bump: patch - changes: - changed: - - Added calculate_demo endpoint for use on API documentation page - date: 2024-02-02 20:47:10 -- bump: patch - changes: - changed: - - Prevented strange version increase for policyengine-ng - date: 2024-02-02 21:49:10 -- bump: patch - changes: - changed: - - Upgraded black to v. 24.3.0 - - Upgraded policyengine-canada to v. 0.95.0 - - Upgraded policyengine-uk to v. 0.74.1 - - Upgraded policyengine-us to v. 0.754.0 - date: 2024-05-13 16:23:57 -- bump: patch - changes: - changed: - - Fixed main branch reference in bump_country_package - date: 2024-05-22 20:32:02 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.777.3 - date: 2024-05-24 14:37:24 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.777.4 - date: 2024-05-24 15:12:36 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.777.6 - date: 2024-05-29 14:03:00 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.777.7 - date: 2024-05-30 14:12:58 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.779.2 - date: 2024-06-04 21:27:23 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.780.0 - date: 2024-06-06 18:08:41 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.780.1 - date: 2024-06-07 13:31:33 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.781.0 - date: 2024-06-07 16:42:50 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.782.0 - date: 2024-06-07 21:15:22 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.783.0 - date: 2024-06-10 13:32:46 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.785.0 - date: 2024-06-10 19:50:12 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.785.2 - date: 2024-06-11 14:56:37 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.786.0 - date: 2024-06-11 15:45:30 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.788.0 - date: 2024-06-13 16:57:12 -- bump: patch - changes: - changed: - - Updated authlib version - date: 2024-06-13 17:21:10 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.789.0 - date: 2024-06-14 20:37:53 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.790.0 - date: 2024-06-19 14:16:30 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.792.0 - date: 2024-06-20 14:49:25 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.794.2 - date: 2024-06-21 19:36:42 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 0.796.0 - date: 2024-06-25 15:21:55 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.1.0 - date: 2024-06-26 18:30:23 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.3.0 - date: 2024-06-28 00:54:27 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.4.0 - date: 2024-06-28 17:40:12 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.5.0 - date: 2024-07-01 20:19:02 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.5.1 - date: 2024-07-01 21:37:02 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.8.0 - date: 2024-07-02 16:57:32 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.10.0 - date: 2024-07-02 18:00:23 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.13.0 - date: 2024-07-04 22:43:09 -- bump: patch - changes: - fixed: - - Allow GitHub Actions to use earlier version of glibc - date: 2024-07-14 22:46:55 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.21.0 - date: 2024-07-14 22:53:56 -- bump: patch - changes: - fixed: - - Updated policyengine-uk to 0.86.3 - date: 2024-07-14 23:04:25 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 0.86.6 - date: 2024-07-17 19:04:36 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.22.1 - date: 2024-07-18 20:22:20 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.26.1 - date: 2024-07-22 19:26:11 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.26.2 - date: 2024-07-22 21:54:20 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.34.0 - date: 2024-07-26 02:55:35 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 1.1.0 - date: 2024-07-26 20:49:29 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.34.1 - date: 2024-07-26 21:02:47 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 1.2.0 - date: 2024-07-29 22:10:58 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.34.5 - date: 2024-07-30 19:20:05 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 1.4.0 - date: 2024-07-30 19:33:38 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.34.7 - date: 2024-07-30 23:51:58 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.35.0 - date: 2024-07-31 18:59:37 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.38.0 - date: 2024-08-01 20:12:26 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.40.0 - date: 2024-08-02 19:27:31 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.43.1 - date: 2024-08-06 23:55:38 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.44.0 - date: 2024-08-08 18:45:10 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 1.5.1 - date: 2024-08-12 22:51:20 -- bump: patch - changes: - changed: - - Update to Python 3.10 - - Updated policyengine-us version - - Updated policyengine-uk version - date: 2024-08-22 04:10:32 -- bump: patch - changes: - fixed: - - Updated Docker image path - date: 2024-08-22 04:20:11 -- bump: patch - changes: - changed: - - Updated GCP Dockerfile to properly support launching off of start.sh - date: 2024-08-22 20:15:08 -- bump: patch - changes: - changed: - - Removed empty ENV call in Dockerfile - date: 2024-08-23 00:08:38 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.60.0 - date: 2024-08-23 01:25:42 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 1.7.1 - date: 2024-08-23 01:51:37 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.61.0 - date: 2024-08-23 18:50:39 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.61.1 - date: 2024-08-26 12:02:00 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.63.0 - date: 2024-08-28 23:39:44 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.64.0 - date: 2024-08-29 16:40:55 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.65.1 - date: 2024-08-30 12:59:42 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.66.0 - date: 2024-08-31 17:16:16 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.67.0 - date: 2024-08-31 20:49:49 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.69.0 - date: 2024-09-02 12:50:41 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.71.1. - - Update PolicyEngine Canada to 0.96.1. - - Update PolicyEngine UK to 1.7.3. - date: 2024-09-04 15:10:35 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.72.1 - date: 2024-09-05 12:59:00 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.74.0 - date: 2024-09-06 13:41:32 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.75.1 - date: 2024-09-06 21:52:40 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.79.2 - date: 2024-09-16 15:38:53 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 1.8.0 - date: 2024-09-16 15:46:25 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.80.1 - date: 2024-09-18 13:34:34 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.81.0 - date: 2024-09-18 19:05:47 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.85.0 - date: 2024-09-19 16:02:51 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.85.3 - date: 2024-09-19 18:20:57 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.85.4 - date: 2024-09-20 16:40:33 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.105.0 - date: 2024-09-30 17:20:50 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.105.1 - date: 2024-10-01 12:58:28 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.106.0 - date: 2024-10-04 17:12:45 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.109.0 - date: 2024-10-07 12:52:28 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.110.0 - date: 2024-10-07 20:54:54 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.112.0 - date: 2024-10-08 17:20:37 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.115.0 - date: 2024-10-10 18:24:09 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.124.0 - date: 2024-10-15 18:43:48 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.127.0 - date: 2024-10-15 21:23:28 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.2.0 - date: 2024-10-16 17:27:16 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.3.0 - date: 2024-10-17 13:32:40 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.129.0 - date: 2024-10-17 20:27:39 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.4.0 - date: 2024-10-18 13:59:16 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.8.0 - date: 2024-10-21 15:41:08 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.129.1 - date: 2024-10-21 20:11:16 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.129.3 - date: 2024-10-21 22:33:58 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.10.0 - date: 2024-10-22 16:18:38 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.12.0 - date: 2024-10-23 15:23:02 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.131.0 - date: 2024-10-23 23:44:25 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.13.1 - date: 2024-10-24 22:21:56 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.133.0 - date: 2024-10-27 22:48:57 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.14.0 - date: 2024-10-28 14:48:23 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.135.0 - date: 2024-10-29 01:04:58 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.136.0 - date: 2024-10-29 15:55:28 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.136.1 - date: 2024-10-29 20:19:07 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.14.1 - date: 2024-10-30 14:41:04 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.14.1 - date: 2024-10-30 15:34:19 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.137.0 - date: 2024-10-30 23:44:11 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.137.3 - date: 2024-11-01 22:38:33 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.137.4 - date: 2024-11-04 13:45:16 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.15.1 - date: 2024-11-05 21:29:18 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.138.0 - date: 2024-11-06 00:31:23 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.139.0 - date: 2024-11-07 17:24:35 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.139.2 - date: 2024-11-10 18:36:37 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.140.1 - date: 2024-11-11 14:53:56 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.142.5 - date: 2024-11-18 01:32:59 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.145.0 - date: 2024-11-18 19:48:17 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.15.1 - date: 2024-11-19 14:18:00 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.146.1 - date: 2024-11-19 16:58:33 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.146.2 - date: 2024-11-19 22:15:41 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.147.0 - date: 2024-11-20 15:49:49 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.150.0 - date: 2024-11-21 12:58:13 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.151.0 - date: 2024-11-25 22:16:36 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.153.0 - date: 2024-11-25 23:51:56 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.16.0 - date: 2024-11-28 17:22:06 -- bump: patch - changes: - changed: - - Updated version of policyengine-canada to 0.96.2 - date: 2024-12-04 20:01:36 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.18.0 - date: 2024-12-05 16:44:13 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.160.0 - date: 2024-12-05 19:13:55 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.161.0 - date: 2024-12-12 14:42:36 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.161.2 - date: 2024-12-16 19:11:28 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.162.1 - date: 2024-12-23 15:12:03 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.176.0 - date: 2025-01-17 14:55:32 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.176.3 - date: 2025-01-20 12:58:50 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.179.0 - date: 2025-01-21 11:01:14 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.180.1 - date: 2025-01-22 15:50:25 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.182.2 - date: 2025-01-28 16:26:26 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.183.1 - date: 2025-01-29 18:10:38 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.184.0 - date: 2025-01-30 15:18:32 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.185.0 - date: 2025-01-31 15:01:53 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.186.0 - date: 2025-01-31 17:02:58 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.18.0 - date: 2025-02-04 14:56:46 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.187.1 - date: 2025-02-04 16:45:47 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.189.0 - date: 2025-02-07 14:03:04 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.191.0 - date: 2025-02-11 00:46:34 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.18.0 - date: 2025-02-11 23:33:18 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.195.1 - date: 2025-02-13 22:02:29 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.196.0 - date: 2025-02-14 19:56:39 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.198.0 - date: 2025-02-19 00:09:59 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.199.0 - date: 2025-02-19 23:16:25 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.202.0 - date: 2025-02-20 22:38:46 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.19.1 - date: 2025-02-21 17:42:43 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.202.1 - date: 2025-02-24 16:09:54 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.202.2 - date: 2025-02-24 23:55:42 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.19.3 - date: 2025-02-26 13:49:03 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.203.0 - date: 2025-02-28 00:51:18 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.21.0 - date: 2025-02-28 17:18:25 -- bump: patch - changes: - added: - - Tests for sample household objects from clients - date: 2025-02-28 20:50:46 -- bump: minor - changes: - added: - - AI explainer feature; users can now take a computation tree and generate a human-readable - explanation of the computation of a particular variable - - Tools to flatten a nested household structure into an array of dictionaries - mapping to each variable for a given year - changed: - - Household computation now returns an (optional) computation tree alongside outputs - date: 2025-02-28 22:24:43 -- bump: patch - changes: - added: - - Customer test for Benefits Navigator - changed: - - Loosened schema requirements for US- and UK-specific entities - - Changed "year" to string-based "period" for filtering variables from household - date: 2025-03-01 15:33:35 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.22.0 - date: 2025-03-03 20:50:08 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.205.0 - date: 2025-03-04 20:47:56 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.207.0 - date: 2025-03-05 14:47:06 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.207.3 - date: 2025-03-07 12:05:04 -- bump: patch - changes: - added: - - Impactica customer integration test - date: 2025-03-07 19:22:43 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.209.0 - date: 2025-03-10 18:20:25 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.212.0 - date: 2025-03-12 23:12:22 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.220.0 - date: 2025-03-19 22:48:41 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.221.0 - date: 2025-03-20 18:10:01 -- bump: patch - changes: - added: - - Re-enabled automated analytics logging of calculate endpoint - date: 2025-03-26 01:09:47 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.22.4 - date: 2025-03-26 01:10:31 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.22.6 - date: 2025-03-27 01:53:25 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.239.0 - date: 2025-04-01 18:21:27 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.240.1 - date: 2025-04-01 22:48:01 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.244.0 - date: 2025-04-04 22:55:24 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.24.0 - date: 2025-04-16 19:06:48 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.254.0 - date: 2025-04-21 21:05:19 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.264.0 - date: 2025-05-01 15:54:07 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.265.0 - date: 2025-05-05 20:48:14 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.269.2 - date: 2025-05-10 00:39:54 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.270.2 - date: 2025-05-12 15:28:58 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.279.0 - date: 2025-05-13 16:41:01 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.287.0 - date: 2025-05-20 19:51:14 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.289.1 - date: 2025-05-22 21:44:12 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.295.0 - date: 2025-05-27 15:28:37 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.297.2 - date: 2025-05-28 15:30:56 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.300.0 - date: 2025-06-02 15:57:45 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.302.0 - date: 2025-06-03 16:21:27 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.305.0 - date: 2025-06-05 21:25:41 -- bump: patch - changes: - changed: - - Update PolicyEngine UK to 2.31.0 - date: 2025-06-09 22:07:29 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.313.0 - date: 2025-06-16 15:22:02 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.328.0 - date: 2025-06-30 19:41:23 -- bump: minor - changes: - changed: - - Upgrade Python version requirement from 3.10 to 3.13 - date: 2025-07-30 22:49:16 -- bump: patch - changes: - changed: - - Update Docker build address to use GitHub Container Registry - date: 2025-08-02 18:39:28 -- bump: patch - changes: - changed: - - Increased readiness check timeout to 600 seconds. - date: 2025-08-06 19:58:12 -- bump: patch - changes: - changed: - - Allowed use of Python 3.12. - - Increased memory from 8GB to 16GB. - date: 2025-08-06 23:44:51 -- bump: patch - changes: - changed: - - Decreased memory from 16GB to 12GB. - date: 2025-08-07 00:13:08 -- bump: patch - changes: - fixed: - - No branching for itemization. - - Lower memory back to pre-change 8GB. - date: 2025-08-07 16:24:30 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.330.0 - date: 2025-08-07 17:25:33 -- bump: patch - changes: - changed: - - Switched to use of in-memory storage for rate limiting instead of Redis. - date: 2025-08-10 13:01:44 -- bump: patch - changes: - changed: - - Modified Docker deployment workflow to use pre-built image via multi-stage build. - date: 2025-08-12 02:51:19 -- bump: patch - changes: - changed: - - Added missing credentials to push workflow. - date: 2025-08-12 02:59:07 -- bump: patch - changes: - changed: - - Various fixes to the deployment workflow. - date: 2025-08-12 06:38:03 -- bump: patch - changes: - changed: - - Change the default image tag to `latest` in the production deployment workflow. - date: 2025-08-12 14:20:01 -- bump: patch - changes: - changed: - - Modified tag to launch from - date: 2025-08-12 14:54:59 -- bump: patch - changes: - changed: - - Fixed GCP deploy tag on Artifact Registry image - date: 2025-08-12 15:10:39 -- bump: patch - changes: - changed: - - Fixed launch tag syntax - date: 2025-08-12 15:26:20 -- bump: patch - changes: - changed: - - Correct env var setup in deploy-production.yml - date: 2025-08-12 15:44:48 -- bump: patch - changes: - changed: - - Made various fixes to Dockerfile and GCP deployment scripts. - date: 2025-08-12 20:20:34 -- bump: patch - changes: - changed: - - Replaced custom GCP deploy script with official Google action. - - Re-enabled itemized deductions to prevent UK service outage. - date: 2025-08-13 00:37:02 -- bump: patch - changes: - removed: - - Manual promotion of GCP image post-deploy; instead, promote at time of deploy. - date: 2025-08-13 00:59:30 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.370.1 - date: 2025-08-13 23:55:10 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.375.0 - date: 2025-08-21 14:43:24 -- bump: patch - changes: - added: - - Production Docker image now deploys to both GitHub Container Registry and Google - Artifact Registry - date: 2025-08-22 18:04:20 -- bump: patch - changes: - added: - - First, unimplemented version of deploy config files - date: 2025-08-26 16:41:06 -- bump: minor - changes: - added: - - Created config loader to load custom configuration files; this remains unused - date: 2025-08-26 23:33:33 -- bump: minor - changes: - added: - - Capability to optionally opt into user analytics structure - - Reverse-compatible structure to allow us to deploy with user analytics enabled - date: 2025-08-27 02:21:05 -- bump: minor - changes: - changed: - - Decoupled auth0 setup logic from main app logic. - - Updated configuration structure to support new decoupled auth0 setup. - date: 2025-08-27 23:15:50 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.380.0 - date: 2025-08-29 01:24:00 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.384.0 - date: 2025-08-29 21:13:07 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.386.0 - date: 2025-09-01 13:53:12 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.387.0 - date: 2025-09-02 15:25:12 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.389.0 - date: 2025-09-02 23:43:07 -- bump: minor - changes: - changed: - - Fixed code that makes environment variables optional for auth0 configuration - - Fixed code that makes environment variables optional for analytics tracking - configuration - - Made environment variables configurable for AI-powered endpoints - date: 2025-09-03 00:22:35 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.398.1 - date: 2025-09-16 16:31:57 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.402.1 - date: 2025-09-22 21:57:28 -- bump: patch - changes: - changed: - - Migrated from pkg_resources to importlib for package management utilities. - date: 2025-10-10 19:56:19 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.413.0 - date: 2025-10-10 21:03:26 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.423.0 - date: 2025-10-20 13:58:09 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.452.0 - date: 2025-12-09 00:51:17 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.460.0 - date: 2025-12-12 23:50:15 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.485.0 - date: 2025-12-30 00:06:02 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.502.3 - date: 2026-01-15 23:07:16 -- bump: minor - changes: - added: - - Add GitHub Actions workflow for weekly policyengine-us updates with changelog - summary generation. - date: 2026-01-16 18:07:34 -- bump: minor - changes: - added: - - Docker Compose support for local development with Redis - - Makefile targets for building and running Docker containers - - Support for external Docker networks when running alongside other PolicyEngine - services - date: 2026-01-19 14:04:10 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.511.1 - date: 2026-01-21 22:21:35 -- bump: patch - changes: - fixed: - - Fix PR edit permission error in weekly update workflow by using REST API instead - of GraphQL. - date: 2026-01-29 03:19:47 -- bump: patch - changes: - changed: - - Update PolicyEngine US to 1.532.0 - date: 2026-01-29 03:36:34 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..83ee6205 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,82 @@ +[project] +name = "policyengine-household-api" +version = "0.13.3" +description = "PolicyEngine Household API" +readme = "README.md" +authors = [ + { name = "PolicyEngine", email = "hello@policyengine.org" } +] +requires-python = ">=3.12" +dependencies = [ + "Authlib>=1.3.1", + "Flask-Caching==2.0.2", + "Flask-Limiter", + "anthropic", + "black==24.3.0", + "cloud-sql-python-connector", + "flask-cors>=3", + "flask-sqlalchemy>=3", + "flask>=2.2", + "google-cloud-logging", + "google-cloud-storage", + "gunicorn", + "inflect", + "policyengine-il==0.1.0", + "policyengine-ng==0.5.1", + "policyengine_canada==0.96.3", + "policyengine_uk==2.31.0", + "policyengine_us==1.532.0", + "pydantic", + "pyjwt", + "pymysql", + "python-dotenv", + "urllib3<1.27,>=1.21.1", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project.optional-dependencies] +dev = [ + "build", + "pytest", + "pytest-timeout", + "towncrier>=24.8.0", +] + +[tool.hatch.build.targets.wheel] +packages = ["policyengine_household_api"] + +[tool.towncrier] +package = "policyengine_household_api" +directory = "changelog.d" +filename = "CHANGELOG.md" +title_format = "## [{version}] - {project_date}" +issue_format = "" +underlines = ["", "", ""] + +[[tool.towncrier.type]] +directory = "breaking" +name = "Breaking changes" +showcontent = true + +[[tool.towncrier.type]] +directory = "added" +name = "Added" +showcontent = true + +[[tool.towncrier.type]] +directory = "changed" +name = "Changed" +showcontent = true + +[[tool.towncrier.type]] +directory = "fixed" +name = "Fixed" +showcontent = true + +[[tool.towncrier.type]] +directory = "removed" +name = "Removed" +showcontent = true diff --git a/setup.py b/setup.py deleted file mode 100644 index c8f6ac11..00000000 --- a/setup.py +++ /dev/null @@ -1,42 +0,0 @@ -from setuptools import setup, find_packages -from policyengine_household_api.constants import __version__ - -setup( - name="policyengine-household-api", - version=__version__, - author="PolicyEngine", - author_email="hello@policyengine.org", - description="PolicyEngine Household API", - packages=find_packages(), - python_requires=">=3.12", - install_requires=[ - "anthropic", - "Authlib>=1.3.1", - "cloud-sql-python-connector", - "flask>=2.2", - "flask-cors>=3", - "flask-sqlalchemy>=3", - "google-cloud-logging", - "google-cloud-storage", - "gunicorn", - "inflect", - "policyengine_canada==0.96.3", - "policyengine-ng==0.5.1", - "policyengine-il==0.1.0", - "policyengine_uk==2.31.0", - "policyengine_us==1.532.0", - "pyjwt", - "Flask-Caching==2.0.2", - "urllib3<1.27,>=1.21.1", - "python-dotenv", - "pymysql", - "black==24.3.0", - "Flask-Limiter", - "pydantic", - ], - extras_require={ - "dev": [ - "pytest-timeout", - ], - }, -) diff --git a/tests/fixtures/endpoints/household_explainer.py b/tests/fixtures/endpoints/household_explainer.py index 5f3b0f89..52005529 100644 --- a/tests/fixtures/endpoints/household_explainer.py +++ b/tests/fixtures/endpoints/household_explainer.py @@ -229,11 +229,14 @@ def config_side_effect(key, default=None): return default # Patch both locations where get_config_value is used - with patch( - "policyengine_household_api.utils.computation_tree.get_config_value", - side_effect=config_side_effect, - ), patch( - "policyengine_household_api.endpoints.household_explainer.get_config_value", - side_effect=config_side_effect, + with ( + patch( + "policyengine_household_api.utils.computation_tree.get_config_value", + side_effect=config_side_effect, + ), + patch( + "policyengine_household_api.endpoints.household_explainer.get_config_value", + side_effect=config_side_effect, + ), ): yield