Skip to content

Conversation

@eggshell
Copy link
Contributor

Pull Request Description

What and why?

  • Removes release_prod.yaml and prod_patches_to_main.yaml workflows as they are no longer needed.

  • pypy.yaml workflow now triggers on semver tags instead of prod branch pushes.

  • new create_release_tag.yaml workflow will handle tag creation

New release process:

  1. Update version in pyproject.toml
  2. Commit and merge to main
  3. Trigger "Create Release Tag" workflow with the version number
  4. Tag creation automatically triggers pypi deployment

We can switch to tag creation on pyproject.toml version updates if we want, I just thought still having a human in the loop on when to push might be an easier transition.

How to test

What needs special review?

Dependencies, breaking changes, and deployment notes

Release notes

Checklist

  • What and why
  • Screenshots or videos (Frontend)
  • How to test
  • What needs special review
  • Dependencies, breaking changes, and deployment notes
  • Labels applied
  • PR linked to Shortcut
  • Unit tests added (Backend)
  • Tested locally
  • Documentation updated (if required)
  • Environment variable additions/changes documented (if required)

* Removes release_prod.yaml and prod_patches_to_main.yaml workflows
  as they are no longer needed.

* pypy.yaml workflow now triggers on semver tags instead of prod
  branch pushes.

* new create_release_tag.yaml workflow will handle tag creation

New release process:

1. Update version in pyproject.toml
2. Commit and merge to main
3. Trigger "Create Release Tag" workflow with the version number
4. Tag creation automatically triggers pypi deployment

We can switch to tag creation on pyproject.toml version updates if
we want, I just thought still having a human in the loop on when
to push might be an easier transition.

Signed-off-by: Cullen Taylor <cullen@eggshell.me>
@eggshell eggshell added the internal Not to be externalized in the release notes label Oct 28, 2025
@github-actions
Copy link
Contributor

PR Summary

This PR introduces several changes to the project's GitHub Actions workflows. The most significant change is the addition of a new workflow (create_release_tag.yaml) that automates the creation of release tags. This workflow allows a user to manually trigger it by providing a version number. It checks out the main branch, installs Poetry via pipx, and uses a version check against the pyproject.toml file to ensure the version provided matches the current project version. If the versions match, it creates and pushes a Git tag followed by the creation of a corresponding GitHub release.

In addition, the PR removes two older workflows (prod_patches_to_main.yaml and release_prod.yaml) that handled merging prod hotfixes into main and creating prod releases, respectively. This streamlining suggests a move towards a simplified release and deployment process.

Finally, the PyPI deployment workflow (pypi.yaml) has been updated to trigger on tag pushes following a semantic versioning pattern (v*..) rather than on pushes to the prod branch. This adjustment aligns the deployment process with the new tagging strategy and ensures that releases are only published when a properly formatted tag is created.

Test Suggestions

  • Manually trigger the new release workflow using the workflow_dispatch event with both valid and invalid version inputs to verify the version check logic.
  • Verify that the release tag is correctly created and pushed to the repository when the input version matches the pyproject.toml version.
  • Check that a GitHub release is generated with the expected title and autogenerated release notes.
  • Confirm that the PyPI deployment workflow triggers only when a tag matching the pattern 'v*..' is pushed.
  • Ensure that removal of the obsolete prod hotfix and prod release workflows does not affect any existing integrations or dependencies.

@nibalizer
Copy link
Contributor

Question: is it better to use githubs ui for creating a gh release?

@eggshell
Copy link
Contributor Author

@nibalizer tbh what you usually end up doing in the UI is just hitting the generate notes button anyway, which is what this does.

Copy link
Contributor

@johnwalz97 johnwalz97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal Not to be externalized in the release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants