Skip to content

ci: add release workflow and bump to 26.04.28#3

Merged
miguelgfierro merged 6 commits into
mainfrom
release/initial-baseline
Apr 28, 2026
Merged

ci: add release workflow and bump to 26.04.28#3
miguelgfierro merged 6 commits into
mainfrom
release/initial-baseline

Conversation

@miguelgfierro
Copy link
Copy Markdown
Contributor

Summary

  • Adds .github/workflows/release.yml for cutting GitHub Releases (no PyPI). Triggers on tag push matching [0-9]+.[0-9]+.[0-9]+ and via manual workflow_dispatch. Builds the SvelteKit frontend, stages it into src/fireflyframework_agentic_studio/static/, builds wheel + sdist with uv build, then creates a GitHub Release with both artifacts attached and release notes extracted from CHANGELOG.md.
  • Bumps pyproject.toml version 26.02.0726.04.28 to reflect the actual cut date.
  • Relabels the existing ## [26.02.07] — Initial Release section in CHANGELOG.md to 26.04.28. That section was prepared but never tagged, so this becomes the first real release of the SvelteKit-based Studio as its own package.
  • Leaves the fireflyframework-agentic>=26.02.07 dependency floor untouched (it still holds).
  • Workflow guards against drift: build fails if the pushed tag does not match pyproject.toml's version.

Release procedure (after merge)

  1. Merge this PR.
  2. From main: git tag 26.04.28 && git push origin 26.04.28.
  3. The Release workflow will build and publish the GitHub Release automatically.
  4. As an alternative, run the workflow manually via workflow_dispatch once the tag exists.

Test plan

  • CI passes on this branch (lint, typecheck, frontend-build, test, build).
  • After merge, push the 26.04.28 tag and confirm the Release workflow completes and a GitHub Release is published with both .whl and .tar.gz attached.
  • Confirm release notes on the GitHub Release reflect the 26.04.28 CHANGELOG section.
  • Sanity check: pip install the released wheel into a clean venv and run firefly studio to confirm the bundled frontend serves.

Adds .github/workflows/release.yml that builds the frontend, bundles
it into the wheel, builds wheel + sdist with uv, and creates a GitHub
Release with the artifacts attached. Triggers on tag push matching
the CalVer pattern, plus manual workflow_dispatch.

Bumps the package version to 26.04.28 to reflect the actual cut date,
and relabels the corresponding CHANGELOG section. The 26.02.07 entry
was prepared but never tagged, so this is the first real release of
the SvelteKit-based Studio as its own package.

The workflow guards against drift by failing the build if the tag does
not match pyproject.toml's version field.
Collapses release.yml to a single job mirroring the agentic repo:
top-level contents: write permission, gh release create with
--generate-notes, github.ref_name for the tag. Drops the separate
build/release split, the workflow_dispatch entrypoint, the artifact
upload/download dance, the CHANGELOG notes extraction, and the
tag-vs-pyproject drift check.

Keeps the studio-specific frontend build steps (npm ci + npm run
build + stage into static/) before uv build, since studio bundles
the SvelteKit output into the wheel.
Aligns the release trigger with fireflyframework-agentic, which uses
tags: ['v*'] on GitHub. Means the tag for the first release will be
v26.04.28 (the package version stays 26.04.28 in pyproject).
The previous source pointed at branch refactor/rename-to-agentic on
the agentic repo, which has been deleted (the rename was merged).
CI on main has been broken since then because uv sync cannot resolve
the dependency.

Pinning to tag v26.04.28 (the latest release of fireflyframework-
agentic, published today) makes the resolution stable and aligns
studio's release with the agentic version it depends on.
The two get_framework_docs implementations imported __version__ from
fireflyframework_agentic._version, but that submodule does not exist
in the package. The version is exposed directly at the top level
(__init__.py: __version__ = version("fireflyframework-agentic")).

Pyright flagged this as reportMissingImports once the dependency
started resolving again. Runtime behavior is unchanged because the
broken import was already wrapped in a try/except Exception that fell
through to docs["version"] = "unknown".
… comment

Switches the uv source from tag = "v26.04.28" to branch = "main" so
studio picks up agentic changes without needing a bump on this side
each time. Keeps the tag-pinning syntax as a comment above for when
we want a reproducible build.
@miguelgfierro miguelgfierro merged commit cc1bcba into main Apr 28, 2026
8 checks passed
@miguelgfierro miguelgfierro deleted the release/initial-baseline branch April 28, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant