From a55f8a72b3e741b9666b4baf0717c2869c87de83 Mon Sep 17 00:00:00 2001 From: Chris Busillo Date: Mon, 4 May 2026 17:35:00 -0400 Subject: [PATCH 1/4] chore: remove stale local project artifacts --- .gitignore | 1 + .idea/.gitignore | 10 --- .idea/inspectionProfiles/Project_Default.xml | 67 ------------------- .../inspectionProfiles/profiles_settings.xml | 6 -- .idea/modules.xml | 8 --- .idea/printnode_community.iml | 17 ----- .idea/vcs.xml | 16 ----- CHANGELOG.md | 2 + test | 4 -- 9 files changed, 3 insertions(+), 128 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/inspectionProfiles/Project_Default.xml delete mode 100644 .idea/inspectionProfiles/profiles_settings.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/printnode_community.iml delete mode 100644 .idea/vcs.xml delete mode 100755 test diff --git a/.gitignore b/.gitignore index d9963c5..ea60ee4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .DS_Store .code/ +.idea/ .venv/ .pytest_cache/ __pycache__/ diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 30cf57e..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Ignored default folder with query files -/queries/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 0aa18bd..0000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 4eee98c..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/.idea/printnode_community.iml b/.idea/printnode_community.iml deleted file mode 100644 index 6a0e387..0000000 --- a/.idea/printnode_community.iml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 3802e85..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9299c0d..53cc554 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ The format follows the spirit of Keep a Changelog, and this project intends to u - Updated post-release documentation now that `0.3.0` is published. - Removed stale private helper code that was unreachable from account and computer APIs. +- Removed stale local IDE metadata and the legacy root `test` wrapper in favor + of the documented `uv run pytest` workflow. - Hardened model factory handling for missing or null optional nested PrintNode response fields. diff --git a/test b/test deleted file mode 100755 index 15ccbd0..0000000 --- a/test +++ /dev/null @@ -1,4 +0,0 @@ -#! /bin/bash -set -e -export PYTHONPATH=$(dirname ${PWD}/$0) -py.test tests "$@" From f63d29a7a4f1e56582d094ae126416972cd41a06 Mon Sep 17 00:00:00 2001 From: Chris Busillo Date: Mon, 4 May 2026 17:41:06 -0400 Subject: [PATCH 2/4] docs: align repo guidance with workflow metadata --- .gitignore | 1 - .idea/.gitignore | 10 +++ .idea/inspectionProfiles/Project_Default.xml | 68 +++++++++++++++++++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/modules.xml | 8 +++ .idea/printnode_community.iml | 17 +++++ .idea/vcs.xml | 6 ++ AGENTS.md | 10 +-- CHANGELOG.md | 5 +- CONTRIBUTING.md | 10 +-- README.md | 11 +-- tests/README.md | 11 +-- 12 files changed, 129 insertions(+), 34 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/printnode_community.iml create mode 100644 .idea/vcs.xml diff --git a/.gitignore b/.gitignore index ea60ee4..d9963c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ .DS_Store .code/ -.idea/ .venv/ .pytest_cache/ __pycache__/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..30cf57e --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..d32b68d --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..cc5462d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..4eee98c --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.idea/printnode_community.iml b/.idea/printnode_community.iml new file mode 100644 index 0000000..fa88bfd --- /dev/null +++ b/.idea/printnode_community.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..dcb6b8c --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/AGENTS.md b/AGENTS.md index 41a644c..c74e18f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -57,19 +57,13 @@ This repository is maintained as a careful, community-oriented Python client for ## Local Verification -Use `uv` by default: +Use the canonical gates from `.github/github-repo-workflow.json`: ```sh -uv sync +uv sync --locked uv run pytest uv build uv run twine check dist/* ``` If a command cannot be run locally, mention why in the pull request body. - -## Code Agent Notes - -- Prefer pull-request-backed work and summarize verification clearly. -- Keep changes boring, reviewable, and well-tested. -- Update the durable stewardship plan at `~/.codex/plans/printnode-python-stewardship.md` when major phases start, finish, or change. diff --git a/CHANGELOG.md b/CHANGELOG.md index 53cc554..5ecac0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,11 +9,12 @@ The format follows the spirit of Keep a Changelog, and this project intends to u - Added repository workflow defaults for future GitHub workflow sessions. - Added public-path coverage for model-instance computer, printer, and print job lookups. +- Aligned contributor and agent docs with the repository workflow metadata. - Updated post-release documentation now that `0.3.0` is published. - Removed stale private helper code that was unreachable from account and computer APIs. -- Removed stale local IDE metadata and the legacy root `test` wrapper in favor - of the documented `uv run pytest` workflow. +- Removed the legacy root `test` wrapper in favor of the documented + `uv run pytest` workflow. - Hardened model factory handling for missing or null optional nested PrintNode response fields. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 95d24ff..8201e40 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,16 +13,12 @@ Thank you for helping maintain this PrintNode API client. This fork aims to be c ## Development -The project uses `pyproject.toml` and `uv`. The standard local workflow is: +The project uses `pyproject.toml` and `uv`. Use the validation gates recorded +in `.github/github-repo-workflow.json`: ```sh -uv sync +uv sync --locked uv run pytest -``` - -Build checks will use: - -```sh uv build uv run twine check dist/* ``` diff --git a/README.md b/README.md index b6824ff..a05f18f 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ python -m pip install printnode_community Install from source with `uv`: ```sh -uv sync +uv sync --locked ``` For editable development installs, use: @@ -39,16 +39,11 @@ uv pip install -e . ### Development -Install development dependencies and run tests with: +Install development dependencies and run the local verification gates with: ```sh -uv sync +uv sync --locked uv run pytest -``` - -Build and validate package artifacts with: - -```sh uv build uv run twine check dist/* ``` diff --git a/tests/README.md b/tests/README.md index 485fd3e..936bc65 100644 --- a/tests/README.md +++ b/tests/README.md @@ -2,18 +2,13 @@ The default test suite is credential-free and must not call the live PrintNode API. -Run tests with: +Run tests with the gate recorded in `.github/github-repo-workflow.json`: ```sh uv run pytest ``` -Package verification uses the same checks as CI: - -```sh -uv run pytest -uv build -uv run twine check dist/* -``` +For full package verification, follow the repository workflow metadata in +`.github/github-repo-workflow.json`. Live PrintNode API tests may be added later, but they must be opt-in and gated by explicit environment variables. Do not commit real API keys, account credentials, customer data, or live API fixtures. From 169f11faacd5206cc71b8c24b9fd2f9fa8f6fbcd Mon Sep 17 00:00:00 2001 From: Chris Busillo Date: Mon, 4 May 2026 17:42:53 -0400 Subject: [PATCH 3/4] docs: refresh release guidance after first publish --- RELEASE.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 55b886f..3057197 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,19 +1,21 @@ # Release Process -This fork is being prepared for maintained releases under the `printnode_community` project name. +Maintained releases are published under the `printnode_community` project name. ## Package Name -The historical PyPI distribution name is `PrintNodeApi`, but upstream has not responded to maintainer handoff requests. This community-maintained fork will publish as `printnode_community` instead. +The historical PyPI distribution name is `PrintNodeApi`, but upstream has not +responded to maintainer handoff requests. This community-maintained fork +publishes as `printnode_community` instead. PyPI normalizes `printnode-community` and `printnode_community` as the same project name. Prefer documenting `uv add printnode_community` and `python -m pip install printnode_community` so the install command visually matches the import namespace. -Before the first release, verify that `printnode_community` is still available -on both PyPI and TestPyPI, then configure trusted publishing for that name. +Before publishing from a new environment or workflow, verify the +`printnode_community` trusted publisher configuration on PyPI or TestPyPI. ## Versioning -Use semantic versioning once maintained releases begin. +Use semantic versioning for maintained releases. - Patch releases: bug fixes, packaging fixes, documentation corrections, and compatibility fixes that preserve public API behavior. - Minor releases: new PrintNode API coverage, new optional features, or deprecations that preserve compatibility. @@ -23,7 +25,7 @@ Keep the package version in `pyproject.toml` and the top `CHANGELOG.md` release ## Pre-Release Checklist -1. Confirm `printnode_community` is still available and PyPI/TestPyPI trusted publisher configuration is ready. +1. Confirm PyPI/TestPyPI trusted publisher configuration is ready. 2. Confirm `main` is green in CI. 3. Create a release branch from `main`. 4. Update `pyproject.toml` with the release version. From a0f9c4a2f5f1f7d94962bc1e8af87cd2907d12bd Mon Sep 17 00:00:00 2001 From: Chris Busillo Date: Mon, 4 May 2026 17:48:13 -0400 Subject: [PATCH 4/4] chore: enable shared IntelliJ inspection profile --- .idea/inspectionProfiles/profiles_settings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml index cc5462d..ad7707e 100644 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -1,6 +1,6 @@ -