Add monorepo-mirror Action (subtree-split code.pyret.org from pyret-lang)#632
Merged
Conversation
Generates a flat, history-preserving mirror of the code.pyret.org/ subfolder of the brownplt/pyret-lang monorepo onto a new `monorepo-mirror` branch of this repo, so downstream forks (e.g. Bootstrap) can keep their pull/push/Deploy workflow once code.pyret.org moves into the monorepo. Manual-only (workflow_dispatch) to start; pushes via the built-in GITHUB_TOKEN, so no new secret is required. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Default source ref mainmast -> drydock (mainmast held for team review). - Extract via `git filter-repo` (~1s) instead of `git subtree split`, which re-walks all ~12k monorepo commits and takes ~an hour for the same result. - After extraction, copy the shared codemirror-mode sibling in as a real `mode/` dir (force-added past .gitignore) so the mirror is a self-contained, Heroku-deployable slice -- matching the horizon deploy's slice fix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
github-actions Bot
pushed a commit
that referenced
this pull request
Jun 25, 2026
The sync pulled in this workflow because it now lives on brownplt/code.pyret.org @horizon (PR #632). It belongs to the standalone code.pyret.org repo -- it runs there, pushing to that repo's monorepo-mirror branch with that repo's GITHUB_TOKEN. Nested under the monorepo's code.pyret.org/ it would never run and just adds confusion, so keep it out of the monorepo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Joe says:
I'm going to close this.OK this can actually work.I want to support pyret.bootstrapworld.org cleanly. The way I came up with to do this is have a “monorepo mirror” branch on this repo. We can leave this read-only with an archive-ish README, etc, but still make it be easy for upstream things like PBO to pull and deploy to Heroku.
But since we're starting to make monorepo-assuming changes to the build eventually, this will probably break in the long run.
Sets up the read-only generated mirror approach for the monorepo transition.
What this adds
A manual GitHub Action (
.github/workflows/monorepo-mirror.yml) that:brownplt/pyret-langat a chosen ref (defaultmainmast) with full history.git subtree split --prefix=code.pyret.orgto extract the subfolder with history preserved (original authors intact).monorepo-mirrorbranch of this repo.Why
Once
code.pyret.orglives in the monorepo, downstream forks (Bootstrap) lose the "pull from upstream → push to fork → click Deploy in Heroku" workflow, because the deployable tree is no longer at a repo root. This branch keeps a flat, root-level, deployable mirror that those forks can track — eventually with no change to their URL/workflow.Notes
workflow_dispatch) for now — pick the source ref when running. A dailyscheduleis included but commented out.GITHUB_TOKEN(same repo), so no new secret/PAT/deploy key is needed.monorepo-mirrorbranch is created on the first successful run; nothing existing is touched.monorepo-mirror(not a downstream's tracked branch) so we can watch it populate with zero risk before re-pointing anything.🤖 Generated with Claude Code