Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override - #222

Merged
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221
Jun 27, 2026
Merged

Use NBGV IGNORE_GITHUB_REF instead of the ineffective GITHUB_REF override#222
ptr727 merged 2 commits into
developfrom
feature/nbgv-ignore-github-ref-221

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Problem

Closes#221; supersedes the mechanism from #215. The #213 fix (PR #215) restored the develop leg's prerelease tag by overriding GITHUB_REF in the nbgv step env:. It doesn't work.GITHUB_REF is GitHub-reserved — a step-level env: can't reliably override it (the runner re-injects the dispatch ref). NBGV's GitHub Actions cloud-build provider reads GITHUB_REF for BuildingRef, so on a publish dispatched from main the develop leg was still classified public and would publish a clean (stable) version.

CI evidence from the first real publish after #215:

GITHUB_REF: refs/heads/develop # the step-env override (as configured)
"BuildingRef": "refs/heads/main" # NBGV still saw the dispatch ref
"PublicRelease": true
"SemVer2": "1.4.2" # clean, no -g suffix

(The validate-release gate correctly blocked the bad publish, so nothing shipped — but the develop prerelease leg never publishes.)

Fix

NBGV versions from the checked-out branch unless its cloud provider overrides with GITHUB_REF. Each matrix leg already checks out its own branch, so set NBGV's own IGNORE_GITHUB_REF=true to make it ignore the CI ref:

 - name: Run Nerdbank.GitVersioning tool stepid: nbgvuses: dotnet/nbgv@masterenv:
IGNORE_GITHUB_REF: true

NBGV source confirms the knob: BuildingRef => IgnoreGitHubRef ? null : env GITHUB_REF.

Verification

  • actionlint (Docker) clean on all six changed workflows; CRLF preserved.
  • Per the issue's CI probe (real dotnet/nbgv): develop checkout + IGNORE_GITHUB_REF=truePublicRelease=False, 1.4.2-g…; mainTrue, 1.4.3; main without the flag reproduces the bug.

🤖 Generated with Claude Code

…ride
Fixes#221, supersedes the #215 mechanism. #215 tried to restore the develop
leg's prerelease tag by overriding GITHUB_REF in the nbgv step env. That does
not work: GITHUB_REF is a GitHub-reserved variable a step env cannot reliably
override (the runner re-injects the dispatch ref), so NBGV's GitHub Actions
provider still read refs/heads/main for every leg on a main-dispatched publish
and classified the develop leg as a public release (clean, stable version).
NBGV versions from the checked-out branch unless its cloud provider overrides
with GITHUB_REF. Set IGNORE_GITHUB_REF=true so NBGV ignores the CI ref and uses
the checked-out branch, which each matrix leg already is. Drop the now-useless
`branch` input from get-version-task.yml and its threading from all five
callers. The validate-release entry gate stays as the backstop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings June 27, 2026 00:23

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes NBGV branch classification in the publish matrix by using NBGV's supported IGNORE_GITHUB_REF switch (so versioning follows the checked-out ref per leg) and removes the prior, ineffective GITHUB_REF override mechanism.

Changes:

  • Set IGNORE_GITHUB_REF=true for the dotnet/nbgv@master step so NBGV ignores the workflow dispatch ref.
  • Remove the now-unused branch input from get-version-task.yml.
  • Remove branch: threading into get-version-task.yml from all reusable workflow callers.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
.github/workflows/get-version-task.ymlDrop branch input and switch NBGV to IGNORE_GITHUB_REF for correct per-checkout versioning.
.github/workflows/build-release-task.ymlStop passing branch into get-version-task.yml (versioning no longer relies on env overrides).
.github/workflows/build-pypilibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-nugetlibrary-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-executable-task.ymlRemove branch passthrough to get-version-task.yml.
.github/workflows/build-docker-task.ymlRemove branch passthrough to get-version-task.yml.

Comment thread.github/workflows/get-version-task.yml Outdated
NBGV string-compares the value to "true"; env values are strings, so quoting
makes the intent explicit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ptr727
ptr727 merged commit 36f7eeb into developJun 27, 2026
8 checks passed
@ptr727
ptr727 deleted the feature/nbgv-ignore-github-ref-221 branch June 27, 2026 00:28
@ptr727ptr727 mentioned this pull request Jul 4, 2026
ptr727 added a commit that referenced this pull request Jul 4, 2026
Promote the accumulated `develop` work to `main`. Twelve changes since
the last promotion:
- Add `WORKFLOW.md`: workflow style, architecture, behavioral contract,
test methodology (#223)
- Use NBGV `IGNORE_GITHUB_REF` instead of the ineffective `GITHUB_REF`
override (#222)
- Skip validate-release on smoke builds (#220)
- Gate asset delete on the release create/refresh condition (#218)
- Ship branch rulesets as versioned JSON in the re-sync / drift loop
(#212)
- Clean up transfer artifacts surgically at consumption, not
blanket-delete (#216)
- Version each publish leg against its own branch; validate at entry
(#215)
- Consolidate workspace configurations into a unified ProjectTemplate
workspace (#210)
- Template convergence barrier: absorb pins, generic release +
docker-readme, carry-whole-file (#207)
- Key merge-bot concurrency on PR number, not `github.ref` (#206)
- Codify orchestrated re-sync personas and full-replacement rule (#205)
- Lead action pins; affirm pattern-based artifact handoff (#204)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727