Skip to content

fix: read the changelog from an artifact in the Python release workflow - #312

Merged
vdusek merged 2 commits into
mainfrom
fix/changelog-via-artifact
Aug 17, 2026
Merged

fix: read the changelog from an artifact in the Python release workflow#312
vdusek merged 2 commits into
mainfrom
fix/changelog-via-artifact

Conversation

@vdusek

@vdusek vdusek commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

The Update CHANGELOG.md step handed inputs.changelog to DamianReeves/write-file-action via with: contents:. The runner passes action inputs as environment variables, and Linux caps a single environment string at MAX_ARG_STRLEN (32 pages = 131072 bytes), so the step never starts once the changelog crosses ~128 KiB:

An error occurred trying to start process '.../node' ... Argument list too long

That broke every crawlee-python beta and stable release from 2026-08-17 on, at 131,410 bytes of generated changelog and with no code change involved.

The changelog now travels as an artifact instead. apify/actions/git-cliff-release uploads it (apify/actions#36) and this workflow downloads it and moves it into place - no size limit, and a same-run download needs no extra token permission.

Backwards compatible: the changelog input stays as a deprecated fallback for callers still pinned to git-cliff-release@v1.4.0, which does not upload the artifact. Drop the input and the fallback step once every caller is bumped. Since the input is now optional, a separate step fails the job when neither source carries a changelog, rather than silently truncating CHANGELOG.md and committing it.

Two new optional inputs: changelog_artifact_name and changelog_path.

Merge order: apify/actions#36 must be released as v1.5.0 before callers can pin it. This workflow is referenced as @main, so it takes effect for all callers immediately - hence the fallback.

✍️ Drafted by Claude Code

@vdusek vdusek added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Aug 17, 2026
@vdusek vdusek self-assigned this Aug 17, 2026
@github-actions github-actions Bot added this to the 147th sprint - Tooling team milestone Aug 17, 2026
@vdusek
vdusek marked this pull request as ready for review August 17, 2026 08:00
@vdusek
vdusek requested a review from janbuchar August 17, 2026 08:00

@janbuchar janbuchar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

There is a lot of fluff for such a simple change, but I won't stall the PR because of that.

@vdusek

vdusek commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

There is a lot of fluff for such a simple change, but I won't stall the PR because of that.

It's because of keeping the old way working as well. A lot of repos, and not just ours, use this workflow, if I'm not mistaken (integrations, AI), and I don't know whether they are using exact version pinning. We could mark this as a breaking change and release 1.x. That would also be correct from a semantic-versioning perspective. But I'd rather stay conservative here and keep it backward compatible.

@vdusek
vdusek merged commit 92607e6 into main Aug 17, 2026
3 of 4 checks passed
@vdusek
vdusek deleted the fix/changelog-via-artifact branch August 17, 2026 10:03
vdusek pushed a commit that referenced this pull request Aug 17, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.48.1](v0.48.0...v0.48.1)
(2026-08-17)


### Bug Fixes

* read the changelog from an artifact in the Python release workflow
([#312](#312))
([92607e6](92607e6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
vdusek added a commit to apify/crawlee-python that referenced this pull request Aug 17, 2026
Every beta and stable release has failed since 2026-08-17, at the
`Update CHANGELOG.md` step, with no code change involved:

```
An error occurred trying to start process '.../node' ... Argument list too long
```

`CHANGELOG.md` crossed 128 KiB. The changelog was passed to the release
workflow as a string input, the workflow handed it to an action via
`with: contents:`, and the runner passes action inputs as environment
variables - Linux caps a single environment string at `MAX_ARG_STRLEN`
(32 pages = 131072 bytes). The generated changelog measured 131,410
bytes; the last green release squeezed in about 140 bytes under the
limit.

Both release workflows now hand the changelog over as an artifact, which
has no size limit: apify/actions#36 uploads it, apify/workflows#312
downloads it.

Blocked until apify/actions is released as v1.5.0, which is what the
bumped pin refers to.

*✍️ Drafted by Claude Code*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants