Repository navigation
Delphi: versioned config and clone migrations - #37
Merged
Merged
Conversation
…igrations run by setup.sh .delphi/manifest.yml lists Delphi's own files (identical on main and every ws/*, itself included) under a MAJOR.MINOR.PATCH version; .delphi/versions records each version's hash of them, printed by .delphi/version.sh. check.sh requires the last line to match, rising versions, migrations that bump MAJOR (MINOR while 0.x), and, against main in CI, that released lines and migrations never change; the managed workflow and required scripts now come from the manifest. setup.sh runs the .delphi/migrations/<version>-*.sh a workspace hasn't (git config delphi.<name>.version), stopping at one that fails, and warns when .delphi/ isn't the version it says. 0.0.1's migration turns old link.sh worktrees in linked/ into read-only copies, deleting only what nothing is lost from.
…section 12 header)
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.
Shared config changes now carry a version, and any cleanup people's clones need ships as a script that runs on its own, instead of as instructions.
Versions
.delphi/manifest.ymllists Delphi's own files, the ones identical on main and everyws/*branch. It lists itself and starts atversion: 0.0.1(MAJOR.MINOR.PATCH)..delphi/versionsadds one line per version: the version, a hash of the listed files, and what changed..delphi/version.shprints a checkout's version and hash. Line endings don't change the hash.ci/check.shfails until a change to any listed file (the manifest included) bumps the version and adds its line, and it prints the line to add. It also requires:Migrations
.delphi/migrations/<version>-<slug>.share run bysetup.sh:git config delphi.<name>.version);setup.shalso warns when.delphi/isn't exactly the version it says.link.shworktrees inlinked/into read-only copies. It deletes a worktree only when nothing would be lost: no changes and no untracked files, and its commit is on a branch. Otherwise it stops and says what to do.After merge
Each person pulls their
ws/*branch and runsbash .delphi/setup.sh, nothing else.Tests
ws/argos-devwith 2 oldlink.shworktrees migrated cleanly, andlinked/maincame back as a read-only copy.