Skip to content

Restructure repo for dual Node.js/Python packages with manual releases - #16

Merged
Pijukatel merged 7 commits into
masterfrom
claude/trusting-babbage-ra04ex
Sep 18, 2026
Merged

Pijukatel merged 7 commits into
masterfrom
claude/trusting-babbage-ra04ex

Conversation

@Pijukatel

@Pijukatel Pijukatel commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator
  • Move the npm package into javascript/ next to python/; the root README becomes a short overview linking to the two runtime READMEs.
  • Both publish workflows are now started manually on master, publish via npm/PyPI Trusted Publishing (OIDC, no secrets), and then create the vX.Y.Z / py-vX.Y.Z tag and GitHub release themselves; they refuse already-published versions or existing tags.
  • Package metadata moves from Pijukatel to apify (repository.url + directory in package.json, which npm trusted publishing requires; Apify as author in pyproject.toml).
  • Python README leads with the in-browser debugger pitch and an Apify Console Live view screenshot; "Verified" sections dropped from both READMEs.
  • Versions pre-bumped for the first releases from the new flow: npm 0.1.5, PyPI 0.1.2.

Pijukatel and others added 7 commits September 18, 2026 09:34
… publishing

Move the npm package (bin/, lib/, package.json, lockfile, example-actor/ and
its README) into javascript/, mirroring the existing python/ directory, and
replace the root README with a short summary that links to the two
runtime-specific READMEs.

publish.yml now runs from javascript/ and publishes via npm Trusted
Publishing (OIDC): id-token: write, Node 24 with npm >= 11.5.1, no NPM_TOKEN
and no GitHub environment (the trusted publisher on npmjs.com is configured
with only the repository and the workflow file name). package.json's
repository, bugs and homepage URLs move from Pijukatel to apify, with
repository.directory set - npm requires repository.url to match the
publishing repository exactly.

pyproject.toml gets Apify as author plus Repository and Issue Tracker URLs.
README cross-links use absolute GitHub URLs so they resolve on npmjs.com and
pypi.org as well as on GitHub.

Verified locally from the new layout: node --check on all sources, both
workflow smoke tests, npm pack --dry-run (same 5 files as before).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W7hhx4kHxbYsuC6QmAB9yS
…elease itself

publish.yml is now started with workflow_dispatch on master instead of
reacting to pushed v* tags. It publishes the version javascript/package.json
carries, then pushes the annotated vX.Y.Z tag and creates the GitHub release
with generated notes (starting from the previous v* tag, so the Python py-v*
tags do not leak into the range). Tags and releases are no longer created by
hand.

Guards: the run must be on master, the version must not be on npm yet
(checked against the registry's versions list, so a registry error fails the
job instead of passing as "new"), and the tag must not exist yet, so a re-run
after a failure is safe. A concurrency group prevents two releases from
racing. The publish job gets contents: write for the tag and release.

READMEs describe the new flow: bump the version in a PR, then run the
workflow.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W7hhx4kHxbYsuC6QmAB9yS
…release itself

publish_to_pypi.yml now mirrors publish.yml: started with workflow_dispatch
on master only, it publishes the version python/pyproject.toml carries, then
pushes the annotated py-vX.Y.Z tag and creates the GitHub release with
generated notes (starting from the previous py-v* tag, so npm's v* tags do
not leak into the range). The py-v* tag trigger is gone; tags and releases
are no longer created by hand.

Guards: the run must be on master, pyproject.toml and __init__.__version__
must agree, the version must not be on PyPI yet (checked against PyPI's
releases list with curl -f, so a network error fails the job instead of
passing as "new"), and the tag must not exist yet, so a re-run after a
failure is safe. A concurrency group prevents two releases from racing. The
publish job gets contents: write for the tag and release.

READMEs describe the new flow for both packages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W7hhx4kHxbYsuC6QmAB9yS
…le screenshot

Adds an intro that positions the package as an in-browser Python debugger
for the Apify platform, plus a screenshot of the debugger UI in the Live view
tab of a run (python/docs/apify-console-live-view.png, referenced by its raw
GitHub URL so it also renders on pypi.org). The image file itself is added
separately.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W7hhx4kHxbYsuC6QmAB9yS
…5, PyPI 0.1.2

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W7hhx4kHxbYsuC6QmAB9yS
@Pijukatel
Pijukatel marked this pull request as ready for review September 18, 2026 12:14
@apify-service-account apify-service-account added the t-tooling Issues with this label are in the ownership of the tooling team. label Sep 18, 2026
@Pijukatel
Pijukatel merged commit 8921bd0 into master Sep 18, 2026
2 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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