Automate reviewed plugin releases from editor updates - #118
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #118 +/- ##
=========================================
Coverage 92.31% 92.31%
Complexity 824 824
=========================================
Files 51 51
Lines 3734 3734
=========================================
Hits 3447 3447
Misses 287 287
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
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.
Summary
.editor-version, the Moodle Playground editor pin and finalversion.phpmetadata together.YYYYMMDDXX) without rewriting release metadata during packaging.pushtomainthat changes.editor-version, so unrelated closed/merged PRs do not create skipped Release workflow runs.mainto development in the same workflow by incrementing the real Moodle version and setting$plugin->release = 'dev'.DEVELOPMENT.mdand DEC-111-01 to document the complete lifecycle.Automated release flow
exelearning/exelearningrelease such asv4.0.3.Prepare plugin release v4.0.3containing:.editor-version = v4.0.3;$plugin->version;$plugin->release = '4.0.3'..editor-versiononmain, which triggersrelease.yml. Other PRs do not trigger this workflow.v4.0.3on that exact merged commit.v4.0.3, creates the reproducible ZIP and publishes the GitHub release.main, increments$plugin->version, sets$plugin->release = 'dev', validates that development state and pushesStart development after v4.0.3.The post-release commit only changes
version.php, so it does not satisfy the.editor-versionpath filter and cannot cause a release loop. The published tag remains on the immutable release commit.Versioning and reproducibility
The package still ships
version.phpbyte-identical to the tagged commit. No release metadata is derived or rewritten during packaging. The post-release development commit occurs only after the tag and release exist, so it cannot alter whatvX.Y.Zcontains.This preserves the core guarantees of DEC-111-01 while removing the previous manual second PR used only to return
maintodev.Validation and safety
scripts/check-version.sh --release X.Y.Zruns before the preparation PR is opened and again before publication.scripts/check-version.shbefore it is pushed.main.v4.0.3 migration
The old editor-pin-only PR #117 has been closed without merging. After this PR lands, the editor watcher will still see
v4.0.3as newer than the.editor-versiononmainand can generate the new-stylePrepare plugin release v4.0.3PR.Moodle Playground Preview
The changes in this pull request can be previewed and tested using a Moodle Playground instance.
ℹ️ The eXeLearning editor is fetched from the shared release and unpacked into the plugin when the playground boots, so the first load may take a few extra seconds. ELPX upload, viewer and preview work normally.