Skip to content

Improve milestone changelog: backport filtering, docs enrichment, cleanup - #16933

Merged
James Newton-King (JamesNK) merged 17 commits into
mainfrom
jamesnk/milestone-changelog-backports
May 11, 2026
Merged

Improve milestone changelog: backport filtering, docs enrichment, cleanup#16933
James Newton-King (JamesNK) merged 17 commits into
mainfrom
jamesnk/milestone-changelog-backports

Conversation

@JamesNK

Copy link
Copy Markdown
Member

Description

Improves the milestone-changelog gh-aw workflow with backport filtering, docs PR enrichment, and cleanup:

  • Add files to docs gh pr list — Step 5f needs changed file paths to match docs PRs to changelog entries. Previously files was missing from the docs query, causing the agent to fall through to diff reading on every docs PR. Since gh pr list supports files natively, this adds it with zero extra API calls.
  • Combine backport extraction and date filtering — Moved backport entry extraction to after the batch is computed so backport == true and firstMergedAt >= oldest batch date happen in a single jq pass. This eliminates the intermediate file, the second jq pass, and the temp-file-then-mv pattern. The $MEMORY_TMP clone directory lifetime is extended slightly to support reading directly from it.
  • Fix jq -s glob expansion — Pipes change files through cat before jq -s to avoid shell argument length limits when the previous milestone has many change files.
  • Simplify Step 2 — Replaced the verbose field-by-field schema table with a concise file-level table. The agent can inspect JSON directly with jq.
  • Fix Step 5f field claims — Updated to accurately state that docs PRs have files but lack authorAssociation and comments.
  • Remove Step 3 schema duplication — Now references Step 2 instead of repeating the full schema.

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
    • No

…ment, and cleanup

- Add files to docs gh pr list so Step 5f can match by changed file paths
- Move backport extraction after batch computation so backport==true and
  date filtering happen in a single jq pass (avoids intermediate file)
- Pipe change files through cat to avoid shell arg length limits on glob
- Update Step 2 to concisely describe all pre-computed data files
- Update Step 3/5f docs to match actual available fields
- Remove Step 3 schema duplication (now references Step 2)
Copilot AI review requested due to automatic review settings May 11, 2026 06:11
@github-actions

github-actions Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 16933

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 16933"

Copilot AI 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

Updates the milestone-changelog GH-AW workflow documentation/script to improve changelog generation by adding backport-based exclusion, enriching PR data used by the agent, and simplifying the workflow instructions.

Changes:

  • Adds optional ${PREVIOUS_MILESTONE} support and generates backport-prs.json for filtering out PRs already shipped via backports.
  • Enriches product milestone batch PRs with authorAssociation, files, and comments via per-PR API calls.
  • Simplifies and corrects the workflow guide’s schema/tooling documentation (Step 2/3/5f).

Comment thread .github/workflows/milestone-changelog.md Outdated
Comment thread .github/workflows/milestone-changelog.md
Comment thread .github/workflows/milestone-changelog.md Outdated
@JamesNK
James Newton-King (JamesNK) enabled auto-merge (squash) May 11, 2026 08:43
@JamesNK
James Newton-King (JamesNK) enabled auto-merge (squash) May 11, 2026 08:49
@JamesNK
James Newton-King (JamesNK) merged commit 4b2ce24 into main May 11, 2026
573 of 577 checks passed
@github-actions github-actions Bot added this to the 13.4 milestone May 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🎬 CLI E2E Test Recordings — 78 recordings uploaded (commit 9a407c4)

View all recordings
Status Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View Recording
AddPackageWhileAppHostRunningDetached ▶️ View Recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View Recording
AgentInitCommand_DefaultSelection_InstallsSkillOnly ▶️ View Recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View Recording
AspireAddPackageVersionToDirectoryPackagesProps ▶️ View Recording
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost ▶️ View Recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View Recording
Banner_DisplayedOnFirstRun ▶️ View Recording
Banner_DisplayedWithExplicitFlag ▶️ View Recording
Banner_NotDisplayedWithNoLogoFlag ▶️ View Recording
CertificatesClean_RemovesCertificates ▶️ View Recording
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate ▶️ View Recording
CertificatesTrust_WithUntrustedCert_TrustsCertificate ▶️ View Recording
ConfigSetGet_CreatesNestedJsonFormat ▶️ View Recording
CreateAndRunAspireStarterProject ▶️ View Recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View Recording
CreateAndRunEmptyAppHostProject ▶️ View Recording
CreateAndRunJavaEmptyAppHostProject ▶️ View Recording
CreateAndRunJsReactProject ▶️ View Recording
CreateAndRunPythonReactProject ▶️ View Recording
CreateAndRunTypeScriptEmptyAppHostProject ▶️ View Recording
CreateAndRunTypeScriptStarterProject ▶️ View Recording
CreateJavaAppHostWithViteApp ▶️ View Recording
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain ▶️ View Recording
DashboardRunWithOtelTracesReturnsNoTraces ▶️ View Recording
DeployK8sBasicApiService ▶️ View Recording
DeployK8sWithExternalHelmChart ▶️ View Recording
DeployK8sWithGarnet ▶️ View Recording
DeployK8sWithMongoDB ▶️ View Recording
DeployK8sWithMySql ▶️ View Recording
DeployK8sWithPostgres ▶️ View Recording
DeployK8sWithRabbitMQ ▶️ View Recording
DeployK8sWithRedis ▶️ View Recording
DeployK8sWithSqlServer ▶️ View Recording
DeployK8sWithValkey ▶️ View Recording
DeployTypeScriptAppToKubernetes ▶️ View Recording
DescribeCommandResolvesReplicaNames ▶️ View Recording
DescribeCommandShowsRunningResources ▶️ View Recording
DetachFormatJsonProducesValidJson ▶️ View Recording
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance ▶️ View Recording
DoListStepsShowsPipelineSteps ▶️ View Recording
DocsCommand_RendersInteractiveMarkdownFromLocalSource ▶️ View Recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View Recording
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain ▶️ View Recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View Recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View Recording
GlobalMigration_HandlesCommentsAndTrailingCommas ▶️ View Recording
GlobalMigration_HandlesMalformedLegacyJson ▶️ View Recording
GlobalMigration_PreservesAllValueTypes ▶️ View Recording
GlobalMigration_SkipsWhenNewConfigExists ▶️ View Recording
GlobalSettings_MigratedFromLegacyFormat ▶️ View Recording
InitTypeScriptAppHost_AugmentsExistingViteRepoAtRoot ▶️ View Recording
InteractiveCSharpInitCreatesExpectedFiles ▶️ View Recording
InvalidAppHostPathWithComments_IsHealedOnRun ▶️ View Recording
LatestCliCanStartStableChannelAppHost ▶️ View Recording
LatestCliCanStartStableChannelTypeScriptAppHost ▶️ View Recording
LegacySettingsMigration_AdjustsRelativeAppHostPath ▶️ View Recording
LogsCommandShowsResourceLogs ▶️ View Recording
OtelLogsReturnsStructuredLogsFromStarterAppCore ▶️ View Recording
PsCommandListsRunningAppHost ▶️ View Recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View Recording
PublishWithConfigureEnvFileUpdatesEnvOutput ▶️ View Recording
PublishWithDockerComposeServiceCallbackSucceeds ▶️ View Recording
PublishWithoutOutputPathUsesAppHostDirectoryDefault ▶️ View Recording
RestoreGeneratesSdkFiles ▶️ View Recording
RestoreGeneratesSdkFiles_WithConfiguredToolchain ▶️ View Recording
RestoreRefreshesGeneratedSdkAfterAddingIntegration ▶️ View Recording
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes ▶️ View Recording
RunFromParentDirectory_UsesExistingConfigNearAppHost ▶️ View Recording
SecretCrudOnDotNetAppHost ▶️ View Recording
SecretCrudOnTypeScriptAppHost ▶️ View Recording
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View Recording
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets ▶️ View Recording
StopAllAppHostsFromAppHostDirectory ▶️ View Recording
StopNonInteractiveSingleAppHost ▶️ View Recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View Recording
UnAwaitedChainsCompileWithAutoResolvePromises ▶️ View Recording

📹 Recordings uploaded automatically from CI run #25659759630

@aspire-repo-bot

This comment has been minimized.

@aspire-repo-bot

This comment has been minimized.

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

✅ No documentation update needed.

Internal CI/workflow-only changes — this PR improves the milestone-changelog GitHub Actions workflow with backport filtering and cleanup. No public APIs, user-facing features, or documented behavior were changed, so no documentation update is needed.

Nell Shamrell-Harrington (nellshamrell) pushed a commit to nellshamrell/aspire that referenced this pull request May 18, 2026
…anup (microsoft#16933)

* Milestone changelog improvements

* Improve milestone changelog workflow: backport filtering, docs enrichment, and cleanup

- Add files to docs gh pr list so Step 5f can match by changed file paths
- Move backport extraction after batch computation so backport==true and
  date filtering happen in a single jq pass (avoids intermediate file)
- Pipe change files through cat to avoid shell arg length limits on glob
- Update Step 2 to concisely describe all pre-computed data files
- Update Step 3/5f docs to match actual available fields
- Remove Step 3 schema duplication (now references Step 2)

* compile

* Fix authorAssociation: use per-user permission endpoint instead of unreliable pulls API

The per-PR author_association from gh api repos//pulls/ is
unreliable with GITHUB_TOKEN: org members (e.g., davidfowl) show as
CONTRIBUTOR because the token lacks org-level read scope.

Replace with repos//collaborators//permission which only
requires metadata-read scope and reliably returns write/maintain/admin
for team members.

* Refactor backport filtering to inspect PR body/comments instead of previous milestone data

* Guard against empty PREVIOUS_MILESTONE and empty author login in enrichment

* Add owner field to changelog entries with mergedBy data

* Move Owner line above Changes line in wiki format

* Add RELEASE_NOTES_URL env and disclaimer after What's New section

* Remove redundant auto-generated comment from footer

* Fix stale RELEASE_NOTES_URL in Note line and add mergedBy to data descriptions

* Promote Owner to its own Step 5c section, renumber 5c-5f to 5d-5g

* Fix mergedBy description, dead schema reference, and null mergedBy fallback

* Add batch-prs.json field schema table to Step 2

* Minor: fix docs batch description

* Update

* Remove Source column from batch-prs schema table
@JamesNK
James Newton-King (JamesNK) deleted the jamesnk/milestone-changelog-backports branch May 29, 2026 22:48
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 29, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants