Use trusted publishing - #456
Merged
Merged
Conversation
ewjoachim
force-pushed
the
trusted-publishing
branch
7 times, most recently
from
June 15, 2026 10:23
ca9d037 to
223c2de
Compare
# Conflicts: # CHANGELOG.md
ewjoachim
force-pushed
the
trusted-publishing
branch
from
June 29, 2026 16:49
7ec064a to
69aae2e
Compare
There was a problem hiding this comment.
Pull request overview
This PR modernizes the project’s CI/release pipeline around uv + trusted publishing, drops older Python runtimes, and updates the codebase/tests accordingly (including moving versioning away from a hardcoded __version__).
Changes:
- Switch CI to uv-based test/lint, add tag-triggered trusted publishing to PyPI, and remove the separate pre-commit workflow.
- Drop Python 3.7–3.9 + PyPy 3.9; add Python 3.14 + PyPy 3.11 in CI and metadata.
- Replace
sureexpectations with plainassert/pytest.raises, and update typing imports towardcollections.abc.
Reviewed changes
Copilot reviewed 43 out of 44 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/utils/import_from_source.py | Migrate Iterator import to collections.abc. |
| tests/test_simpleflow/test_storage.py | Use parenthesized with for multi-patch context managers. |
| tests/test_simpleflow/test_settings.py | Replace sure assertions with assert. |
| tests/test_simpleflow/test_logging_context.py | Replace sure exception assertions with pytest.raises. |
| tests/test_simpleflow/test_log.py | Replace sure regex match with re.search + assert. |
| tests/test_simpleflow/test_helpers.py | Replace sure assertions with assert + re.search. |
| tests/test_simpleflow/test_exceptions.py | Replace sure assertions with assert + re.search. |
| tests/test_simpleflow/test_download.py | Replace sure assertions with assert. |
| tests/test_simpleflow/swf/test_task.py | Replace sure assertions with assert. |
| tests/test_simpleflow/swf/test_helpers.py | Replace sure assertions with assert. |
| tests/test_simpleflow/swf/test_executor.py | Replace sure assertions with assert + re.search. |
| tests/test_simpleflow/swf/process/test_poller.py | Replace sure assertion with assert. |
| tests/test_simpleflow/process/test_supervisor.py | Replace sure assertions with assert. |
| tests/test_simpleflow/process/test_named_mixin.py | Replace sure assertions with assert. |
| tests/integration/test_timer.py | Replace sure assertions with assert. |
| tests/integration/test_task_list.py | Replace sure assertions with assert. |
| tests/integration/test_signals.py | Replace sure assertions with assert. |
| tests/integration/test_misc.py | Replace sure assertions with assert + re.search. |
| tests/integration/test_markers.py | Replace sure assertions with assert. |
| tests/integration/test_commands.py | Replace sure assertions with assert. |
| tests/integration/test_canvas.py | Replace sure assertions with assert. |
| tests/integration/init.py | Replace sure exit-code assertion with assert. |
| simpleflow/swf/stats/pretty.py | Migrate Sequence typing import to collections.abc. |
| simpleflow/swf/mapper/models/history/base.py | Migrate Iterator typing import to collections.abc. |
| simpleflow/swf/mapper/models/event/workflow.py | Drop legacy TypedDict import branching (now unconditional typing import). |
| simpleflow/swf/mapper/models/event/task.py | Drop legacy TypedDict import branching; consolidate typing imports. |
| simpleflow/swf/mapper/models/event/base.py | Drop legacy TypedDict import branching; simplify imports. |
| simpleflow/swf/mapper/exceptions.py | Move typing imports toward collections.abc / re.Pattern. |
| simpleflow/swf/executor.py | Move Callable import to collections.abc. |
| simpleflow/step/workflow.py | Move Sequence typing import to collections.abc under TYPE_CHECKING. |
| simpleflow/step/utils.py | Move Sequence typing import to collections.abc under TYPE_CHECKING. |
| simpleflow/step/submittable.py | Move Sequence typing import to collections.abc under TYPE_CHECKING. |
| simpleflow/process/_named_mixin.py | Add env-guard to disable setproctitle to avoid macOS fork crashes. |
| simpleflow/history.py | Move Callable typing import to collections.abc. |
| simpleflow/execute.py | Use parenthesized with for tempfiles (and keep existing TODO comment). |
| simpleflow/activity.py | Move Callable typing import to collections.abc under TYPE_CHECKING. |
| simpleflow/init.py | Switch versioning to importlib.metadata.version() and adjust exports. |
| script/test | Simplify test runner script to exec pytest. |
| script/release | Move Iterator typing import to collections.abc under TYPE_CHECKING. |
| pyproject.toml | Raise min Python to 3.10; add dynamic versioning + pytest env; update deps/config. |
| CHANGELOG.md | Add note that changelog is now published via GitHub Releases. |
| .github/workflows/pre-commit.yml | Remove standalone pre-commit workflow. |
| .github/workflows/ci.yml | Rework CI to uv-based tests/lint; add trusted publishing on tags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+105
to
+109
| "SIMPLEFLOW_JUMBO_FIELDS_BUCKET=", | ||
| # setproctitle segfaults in forked children on macOS (py-setproctitle#165) | ||
| "SIMPLEFLOW_DISABLE_SETPROCTITLE=1", | ||
| # Prevent CI from overriding boto configuration | ||
| "BOTO_CONFIG=/dev/null", |
Contributor
Author
There was a problem hiding this comment.
Keeping this global on purpose: setproctitle segfaults in forked children on macOS (py-setproctitle#165) and gating a static pytest env list by platform is awkward. The only lost coverage is the process-title string in set_process_name, which is minor.
- Import importlib.metadata.version unconditionally and guard PackageNotFoundError so import works from a source checkout. - Remove stale Python 3.7 TODO in execute.py (files are binary). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Small PR (but the uv.lock is taking a lot of diff lines) that changes CI and publishing to make it easier and more secure.
This includes: