fix(workflows): add pre-release companion pipeline with even/odd versioning#735
Merged
WilliamBerryiii merged 7 commits intomainfrom Feb 23, 2026
Merged
fix(workflows): add pre-release companion pipeline with even/odd versioning#735WilliamBerryiii merged 7 commits intomainfrom
WilliamBerryiii merged 7 commits intomainfrom
Conversation
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
…dd versioning - add prerelease.yml managing ODD minor pre-release PR lifecycle on prerelease/next - add prerelease-release.yml for pre-release merge, tag, release, and VSIX packaging - add reset-prerelease job to main.yml for post-release branch reset - add channel input to extension-publish.yml for pre-release Marketplace publishing ✨ - Generated by Copilot
- change version detection to use latest release tag excluding drafts and pre-releases - add validation for odd minor version in pre-release process 🔧 - Generated by Copilot
…ardening - Convert prerelease.yml and prerelease-release.yml from 4-space to 2-space YAML indentation matching codebase convention (IV-007) - Migrate inputs.version and github.event.release.tag_name to env context in extension-publish.yml (IV-002) - Replace heredoc with printf for release body in extension-publish.yml to prevent injection (IV-003)
…workflows 🔧 - Generated by Copilot
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
500fc8a to
7fbec20
Compare
…y and quality - fix critical shell injection in extension-publish-prerelease.yml (C1) - add semver format and even-minor parity validation to stable publish (M1, M2) - add concurrency block and prefix stripping to pre-release publish (M3, M4) - bound changelog generation to 100 commits when no prior tag exists (M5) - extract reusable extension-publish-marketplace.yml workflow (m1) 🔒 - Generated by Copilot
katriendg
reviewed
Feb 23, 2026
katriendg
reviewed
Feb 23, 2026
katriendg
approved these changes
Feb 23, 2026
- resolve merge conflict in extension-publish.yml
- normalize 4-space to 2-space YAML indentation in new workflow files
- move inline ${{ }} expressions from run blocks to env blocks
🔧 - Generated by Copilot
This was referenced Feb 23, 2026
WilliamBerryiii
pushed a commit
that referenced
this pull request
Feb 28, 2026
## Pre-Release 3.1.44 ### ✨ Features - add Docusaurus 3 documentation site with GitHub Pages deployment (#680) - add workflow permissions validation for OpenSSF Scorecard compliance (#759) - add DT coach return path handoff to task-researcher (#591) (#758) - add DT subagent handoff workflow instructions (#592) (#757) - create dt-method-06-deep.instructions.md (#602) (#748) - create dt-method-05-deep.instructions.md (#747) - add DT-aware task-implementor context instructions (#755) - extract embedded PowerShell from workflows into testable scripts (#738) - add gitleaks binary-based secret scanning as PR gate (#734) - add SBOM generation, attestation, and diff tooling to release pipeline (#730) - add dt-learning-tutor agent for DT education (#662) - add DT image prompt generation guidance for Method 5 (#726) - add DT-aware task-reviewer review context (#714) - add dt-method-next routing prompt (#713) - create dt-method-04-deep.instructions.md (#709) - add Implementation Space exit handoff prompt for DT workflows (#708) - add Write-CIStepSummary markdown table to Test-SHAStaleness github output (#660) - add dt-handoff-solution-space prompt for Solution Spac… (#707) ### 🐛 Bug Fixes - update sidebar link color to meet WCAG AA contrast requirements (#814) - harden even/odd versioning against regression and syntax errors (#816) - replace even/odd versioning with SemVer -rc.N suffixes (#811) - ensure prerelease label exists before PR creation (#806) - replace Docusaurus favicons with Microsoft logo (#808) - add missing subagents and shared instructions to collection manifests (#804) - standardize file path conventions for copilot-tracking output (#784) - enforce project-scoped artifact isolation across DT files (#766) - add top-level permissions to copilot-setup-steps.yml (#760) - update broken file directives and markdown links after collection directory reorg (#743) - add pre-release companion pipeline with even/odd versioning (#735) - exclude auto-generated CHANGELOG.md from spell check (#756) - add job-level permissions to extension-publish.yml (#729) - resolve handoff dependencies using display names (#727) - add job-level permissions to validate-version in extension-publish-prerelease (#731) - replace parent-directory VS Code settings paths with per-subdirectory enumeration (#732) ### 📚 Documentation - add Design Thinking documentation and DT-to-RPI handoff (#789) - add customization guides for HVE Core artifacts (#772) - reconcile documentation against implementation (#771) - document accepted Token-Permissions risks and add lint:dependency-pinning (#763) - add Design Thinking section to hve-core-all collection description (#762) ### ♻️ Refactoring - move collection scripts from plugins to collections (#728) - remove duplicate git diff logic in frontmatter validator (#473) ### 🔧 Maintenance - bump basic-ftp from 5.0.5 to 5.2.0 (#780) - standardize script path references in SKILL.md files (#768) - bump the github-actions group across 1 directory with 2 updates (#752) --- *Managed automatically by pre-release workflow.* Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
WilliamBerryiii
pushed a commit
that referenced
this pull request
Feb 28, 2026
## Pre-Release 3.1.46 ### ✨ Features - add Docusaurus 3 documentation site with GitHub Pages deployment (#680) - add workflow permissions validation for OpenSSF Scorecard compliance (#759) - add DT coach return path handoff to task-researcher (#591) (#758) - add DT subagent handoff workflow instructions (#592) (#757) - create dt-method-06-deep.instructions.md (#602) (#748) - create dt-method-05-deep.instructions.md (#747) - add DT-aware task-implementor context instructions (#755) - extract embedded PowerShell from workflows into testable scripts (#738) - add gitleaks binary-based secret scanning as PR gate (#734) - add SBOM generation, attestation, and diff tooling to release pipeline (#730) - add dt-learning-tutor agent for DT education (#662) - add DT image prompt generation guidance for Method 5 (#726) - add DT-aware task-reviewer review context (#714) - add dt-method-next routing prompt (#713) - create dt-method-04-deep.instructions.md (#709) - add Implementation Space exit handoff prompt for DT workflows (#708) - add Write-CIStepSummary markdown table to Test-SHAStaleness github output (#660) - add dt-handoff-solution-space prompt for Solution Spac… (#707) ### 🐛 Bug Fixes - update prerelease publish to use even/odd convention (#822) - update sidebar link color to meet WCAG AA contrast requirements (#814) - harden even/odd versioning against regression and syntax errors (#816) - replace even/odd versioning with SemVer -rc.N suffixes (#811) - ensure prerelease label exists before PR creation (#806) - replace Docusaurus favicons with Microsoft logo (#808) - add missing subagents and shared instructions to collection manifests (#804) - standardize file path conventions for copilot-tracking output (#784) - enforce project-scoped artifact isolation across DT files (#766) - add top-level permissions to copilot-setup-steps.yml (#760) - update broken file directives and markdown links after collection directory reorg (#743) - add pre-release companion pipeline with even/odd versioning (#735) - exclude auto-generated CHANGELOG.md from spell check (#756) - add job-level permissions to extension-publish.yml (#729) - resolve handoff dependencies using display names (#727) - add job-level permissions to validate-version in extension-publish-prerelease (#731) - replace parent-directory VS Code settings paths with per-subdirectory enumeration (#732) ### 📚 Documentation - add Design Thinking documentation and DT-to-RPI handoff (#789) - add customization guides for HVE Core artifacts (#772) - reconcile documentation against implementation (#771) - document accepted Token-Permissions risks and add lint:dependency-pinning (#763) - add Design Thinking section to hve-core-all collection description (#762) ### ♻️ Refactoring - move collection scripts from plugins to collections (#728) - remove duplicate git diff logic in frontmatter validator (#473) ### 🔧 Maintenance - pre-release 3.1.44 (#819) - bump basic-ftp from 5.0.5 to 5.2.0 (#780) - standardize script path references in SKILL.md files (#768) - bump the github-actions group across 1 directory with 2 updates (#752) --- *Managed automatically by pre-release workflow.* Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This was referenced Mar 1, 2026
This was referenced Mar 15, 2026
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.
fix(workflows): add pre-release companion pipeline with even/odd versioning
Description
This PR introduces an automated pre-release publishing pipeline for the VS Code extension ecosystem, using an even/odd minor version strategy. Even minor versions represent stable releases managed by release-please, while odd minor versions represent pre-releases managed by the new companion workflows. The pipeline spans the full lifecycle from version computation through marketplace publishing.
Pre-Release Pipeline
Two new workflows establish the automated pre-release flow.
main, which computes the next odd-minor version from.release-please-manifest.json, generates a conventional-commit changelog, force-updates theprerelease/nextbranch, commits version bumps across four file locations, and creates or updates a pre-release PR with theautorelease: prereleaselabelprerelease/next, which extracts and validates the version from the PR title, creates a git tag and draft GitHub Release, packages extensions via the reusableextension-package.ymlwith thePreReleasechannel, attests build provenance, uploads VSIX artifacts, and promotes the release from draft to publishedBREAKING CHANGEmarkers and bumps the major version accordinglyStable Release Integration
The existing release-please pipeline in main.yml gained a
reset-prereleasejob that runs after a stable release. It force-updatesprerelease/nextto the release commit and recalculates the pre-release PR title to reflect the post-release baseline version.Extension Publish Enhancements
extension-publish.yml received a
channelinput (Stable/PreRelease) that flows through to packaging and thevsce publishcommand with conditional--pre-releaseflag. Expression injection mitigations hardened the workflow by movinggithub.event.release.tag_nameandinputs.versionintoenvcontext variables. Stable version auto-detection switched fromgh release viewtogh release list --exclude-drafts --exclude-pre-releasesto prevent pre-release tags from polluting detection.Related Issue(s)
None
Type of Change
Select all that apply:
Code & Documentation:
Infrastructure & Configuration:
AI Artifacts:
prompt-builderagent and addressed all feedback.github/instructions/*.instructions.md).github/prompts/*.prompt.md).github/agents/*.agent.md).github/skills/*/SKILL.md)Other:
.ps1,.sh,.py)Sample Prompts (for AI Artifact Contributions)
User Request:
Execution Flow:
Output Artifacts:
Success Indicators:
For detailed contribution requirements, see:
Testing
Automated validation commands:
npm run lint:mdnpm run spell-checknpm run lint:frontmatternpm run validate:skillsnpm run lint:md-linksnpm run lint:psnpm run plugin:generateSecurity analysis:
envblockscontents: readat workflow level, elevated at job level only where neededpersist-credentials: falseset on checkout stepsDiff-based assessments:
prerelease.yml(computation) andprerelease-release.yml(validation)Checklist
Required Checks
AI Artifact Contributions
/prompt-analyzeto review contributionprompt-builderreviewRequired Automated Checks
The following validation commands must pass before merging:
npm run lint:mdnpm run spell-checknpm run lint:frontmatternpm run validate:skillsnpm run lint:md-linksnpm run lint:psnpm run plugin:generateSecurity Considerations
Additional Notes
87d2463referenced "2-space indentation" but the correction had been applied only to extension-publish.yml.