Skip to content

Promote Develop to Main - #794

Merged
ptr727 merged 3 commits into
mainfrom
develop
Aug 17, 2026
Merged

Promote Develop to Main#794
ptr727 merged 3 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Promotes the current develop branch to main.

Included changes:

  • test and document self-referenced reusable workflows and composite actions;
  • package workflow gate implementations with their actions while retaining local script entry points;
  • carry the already-reviewed dependency and host-setup changes currently on develop.

Merge method: merge commit. Keep develop.

ptr727and others added 3 commits August 16, 2026 20:54
…ft Feed (#789)
## Summary
When `install-tools.sh --upgrade powershell` installs from Microsoft's
apt feed, a prior direct-download install (the portable tar.gz build
that PowerShell's `install.sh` or a repo's `install-powershell.sh`
places at `/opt/microsoft/powershell/7` with a `/usr/local/bin/pwsh`
symlink) would remain on the host, sharing the same tree the apt package
installs into.
This PR makes `powershell_install` detect and remove non-APT copies
before apt installs, using dpkg ownership as the discriminator (the same
test `tool_unshadow` applies): a path the `powershell` package owns is
the APT install and stays; anything unowned is cleared. This is the
mirror of `docker_install`, which removes conflicting APT packages
before a native install.
## Changes
- `powershell_install` now calls `powershell_remove_non_apt` after
`microsoft_feed` and before `apt_install powershell`.
- `powershell_non_apt_paths` lists non-APT pwsh copies:
- the `/usr/local/bin/pwsh` symlink
- the whole `/opt/microsoft/powershell/7` tree (removed whole, not just
the binary, so leftover files an APT install does not carry cannot
survive)
- any other `pwsh` on PATH no package owns (absolute path only, same
guard as `tool_shadow_path`)
## Verification
- `shellcheck` clean
- `bash -n` clean
- Full pytest suite passes (686 passed, 866 subtests)
- ruff check and format clean
…up (#790)
Bumps the actions-deps group with 1 update:
[astral-sh/setup-uv](https://github.com/astral-sh/setup-uv).
Updates `astral-sh/setup-uv` from 10.0.0 to 10.0.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/setup-uv/releases">astral-sh/setup-uv's
releases</a>.</em></p>
<blockquote>
<h2>v10.0.1 🌈 Tolerate transient manifest timeouts</h2>
<h2>Changes</h2>
<p>Thank you <a
href="https://github.com/arguile"><code>@​arguile</code></a>- for making
this action more resilient.</p>
<h2>🐛 Bug fixes</h2>
<ul>
<li>Tolerate transient manifest timeouts <a
href="https://github.com/arguile"><code>@​arguile</code></a>- (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/1016">#1016</a>)</li>
</ul>
<h2>🧰 Maintenance</h2>
<ul>
<li>chore: update known checksums for 0.12.4 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/1017">#1017</a>)</li>
</ul>
<h2>📚 Documentation</h2>
<ul>
<li>docs: update version references to v10.0.0 @<a
href="https://github.com/apps/github-actions">github-actions[bot]</a>
(<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/1014">#1014</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/setup-uv/commit/20cfd1bf945f4377ade1205e4dbc17946fc9a30d"><code>20cfd1b</code></a>
chore: update known checksums for 0.12.4 (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/1017">#1017</a>)</li>
<li><a
href="https://github.com/astral-sh/setup-uv/commit/d73a0cab66a532d7afa440d9df4a67ea9fe65a30"><code>d73a0ca</code></a>
Tolerate transient manifest timeouts (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/1016">#1016</a>)</li>
<li><a
href="https://github.com/astral-sh/setup-uv/commit/ae3b92d1bdb308a10adfe7b8f408e5cc8c30f3f6"><code>ae3b92d</code></a>
docs: update version references to v10.0.0 (<a
href="https://redirect.github.com/astral-sh/setup-uv/issues/1014">#1014</a>)</li>
<li>See full diff in <a
href="https://github.com/astral-sh/setup-uv/compare/ae62891fec2bb8e7d6c99fc78c9fec3a63790f8d...20cfd1bf945f4377ade1205e4dbc17946fc9a30d">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=astral-sh/setup-uv&package-manager=github_actions&previous-version=10.0.0&new-version=10.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## What Changed
- Resolve hub-owned composite actions with GitHub's `$/` self-repository
syntax.
- Nest the version and Docker reusable workflows through the same
syntax.
- Remove duplicated Docker orchestration and project-layout defaults.
- Name the default package actions for the technology they execute.
- Remove the obsolete Ninja codegen secret.
- Record the proven self-reference model in the reusable-workflow design
and packaged skills.
## Why
This draft tests whether a cross-repository reusable workflow can
resolve sibling workflows and actions at its own pinned commit. A
successful PhotoCleaner run removes the need for extra hub checkouts and
synchronized workflow copies.
## Validation
- Docker-based actionlint, with scoped ignores for syntax its current
parser does not recognize
- 686 script unit tests
- Registry and spec validation
- Repository pin and line-ending gates
- Diff-scoped prose checks
PhotoCleaner pull request #58 proves the cross-repository behavior in
Actions run 32047594855.
CopilotAI lite review requested due to automatic review settings August 17, 2026 18:00

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 promotes the current develop branch state to main, focusing on making reusable workflows and composite actions self-contained and self-referential (via $/), while keeping established local script entry points for maintainers and hooks.

Changes:

  • Moved the canonical prose/repo gate Python implementations under .github/actions/ (action-owned), leaving scripts/prose_lint.py and scripts/repo_gate.py as thin local delegators and updating tests/mypy accordingly.
  • Updated hub reusable workflows to resolve hub-owned actions/defaults and sibling reusable workflows through $/, removing the extra hub checkout pattern where it was only needed for implementation access.
  • Updated documentation/snippets plus carried operational changes (notably PowerShell install cleanup logic) to align with the new workflow/action model.

Reviewed changes

Copilot reviewed 28 out of 28 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
scripts/tests/test_repo_gate.pyImports and tests the action-owned repo_gate implementation; adds coverage for $/ self-references.
scripts/tests/test_prose_lint.pyImports and tests the action-owned prose_lint implementation.
scripts/repo_gate.pyBecomes a local entry point delegating to .github/actions/repo-gate/repo_gate.py.
scripts/README.mdUpdates documentation to reflect action-owned gate implementations with thin local wrappers.
scripts/prose_lint.pyBecomes a local entry point delegating to .github/actions/prose-gate/prose_lint.py.
pyproject.tomlExtends mypy import path to action-owned gate modules and excludes the delegator scripts.
host-setup/linux/install-tools.shAdds removal of non-apt PowerShell installs before apt installation to avoid conflicts.
docs/reusable-workflows.mdDocuments $/ self-repo resolution, updated hook/default resolution, and related pilot notes.
catalog/snippets/workflows/run-periodic-codegen-pull-request.ymlRemoves the legacy NINJA_API_KEY secret mapping from the snippet.
.github/workflows/validate-task.ymlSwitches prose/repo gates and defaults to $/ resolution; removes hub checkout for those gates/defaults; bumps setup-uv pin.
.github/workflows/run-codegen-pull-request-task.ymlRemoves legacy NINJA_API_KEY secret and env propagation; updates workflow naming.
.github/workflows/publish-docker-readme-task.ymlSwitches default hook resolution to $/ and removes hub checkout.
.github/workflows/build-release-task.ymlSwitches sibling task/default action resolution to $/ and delegates Docker build to the reusable Docker task.
.github/workflows/build-docker-task.ymlSwitches docker-prepare default to $/ and adds an explicit Docker Hub credential requirement check.
.github/actions/repo-gate/repo_gate.pyAdds the canonical repo gate implementation as an action-owned Python module.
.github/actions/repo-gate/action.ymlComposite action wrapper to run the repo gate in workflows.
.github/actions/pypi-build-default/action.ymlTightens the default PyPI build action contract to require explicit project paths and validates them.
.github/actions/prose-gate/action.ymlSimplifies prose gate action to run the bundled action-owned prose_lint.py implementation.
.github/actions/nuget-push-default/action.ymlTightens the default NuGet push action contract to require an explicit project file and validates it.
.github/actions/dotnet-publish-default/action.ymlTightens the default .NET publish action contract to require an explicit project file and validates it; updates naming/step labels.
.github/actionlint.yamlReplaces job-context ignores with scoped ignores for actionlint’s current lack of $/ syntax support.
.gitattributesPins LF for the action-owned gate implementations in addition to the local entry points.
.claude-plugin/fleet-skills/skills/workflow-ci-contract/SKILL.mdUpdates workflow contract documentation to describe $/ usage for hub-owned actions/sibling tasks.
.claude-plugin/fleet-skills/skills/operational-vs-release-workflow/references/release-publish-mechanics.mdUpdates release mechanics documentation to reflect the new “explicit paths required” defaults model.
.claude-plugin/fleet-skills/.source-digestUpdates the fleet skills source digest.
.agents/skills/workflow-ci-contract/SKILL.mdMirrors the same $/ guidance change for the installed skills tree.
.agents/skills/operational-vs-release-workflow/references/release-publish-mechanics.mdMirrors the same release mechanics guidance change for the installed skills tree.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ptr727
ptr727 merged commit b5f3c28 into mainAug 17, 2026
8 checks passed
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