Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: runcycles/cycles-client-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: runcycles/cycles-client-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: chore/auto-create-github-release
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 1 file changed
  • 1 contributor

Commits on May 6, 2026

  1. ci(release): auto-create GitHub Release after PyPI publish

    Adds a `create-release` job to `python-publish.yml` that runs after
    `publish-to-pypi` succeeds and creates a GitHub Release with body
    extracted from the corresponding CHANGELOG.md section.
    
    Eliminates the manual `gh release create` step every release. Previously,
    v0.4.0 → v0.4.1 each required a separate manual release-creation pass
    after the tag-triggered PyPI publish.
    
    Behavior:
    - Triggered by tag push only (not manual workflow_dispatch republishes).
    - Extracts the CHANGELOG section between `## [VERSION]` and the next
      `## [` heading using a portable string-based awk script (no regex
      escaping issues across awk variants).
    - If no CHANGELOG entry is found for the version, falls back to a generic
      "see commit history" body — does not fail the job.
    - Title is the tag name (e.g. `v0.4.1`); the descriptive suffix on prior
      releases ("v0.4.0 — Dynamic subject and action fields...") is convention,
      not required, and the user can edit titles after the fact.
    - `prerelease: ${{ contains(github.ref_name, '-') }}` flags any tag with
      a hyphen (e.g. `v0.5.0-rc.1`) as prerelease automatically.
    
    Pinned action SHAs:
    - softprops/action-gh-release@b430933... (v3.0.0)
    - actions/checkout@de0fac2... (v6, matches existing job)
    
    Permissions:
    - `contents: write` on this job only; default `contents: read` preserved
      for the workflow-level minimum.
    
    Tested locally:
    - Successful extraction for v0.4.1 produces clean body (CHANGELOG section
      without heading or next-version boundary).
    - Missing version (e.g. v9.9.9) takes the fallback path without erroring.
    
    This means future releases will be one-step: `git tag vX.Y.Z` + `git
    push origin vX.Y.Z` and the workflow handles both PyPI publish and
    GitHub Release creation.
    amavashev committed May 6, 2026
    Configuration menu
    Copy the full SHA
    2a7a771 View commit details
    Browse the repository at this point in the history
Loading