Skip to content

Commit aa293d3

Browse files
mrm9084Copilot
andauthored
Release Notes Skill (#1142)
* Release Notes Skill * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix skill * added links * remove release notes * remove links --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent e9a1e06 commit aa293d3

2 files changed

Lines changed: 235 additions & 0 deletions

File tree

.github/copilot-instructions.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Copilot Instructions — Azure App Configuration
2+
3+
This is the central hub repository for **Azure App Configuration**. It contains cross-language examples, documentation, configuration schemas, and release notes for the App Configuration ecosystem.
4+
5+
## Repository Structure
6+
7+
- `examples/` — Working sample applications across .NET, Java/Spring, Python, Go, and JavaScript
8+
- `docs/` — Configuration type schemas (AI Chat, Key Vault Reference, KVSet) and integration guides
9+
- `releaseNotes/` — Release notes for all App Configuration libraries and providers
10+
11+
This is **not** a library repo — it is a reference and documentation repository.
12+
13+
## Languages & Frameworks
14+
15+
| Language | Frameworks | Location |
16+
|----------|-----------|----------|
17+
| .NET | ASP.NET Core, Azure Functions, .NET Framework | `examples/DotNetCore/`, `examples/DotNetFramework/` |
18+
| Java | Spring Boot, Spring Cloud Azure | `examples/Spring/` |
19+
| Python | Flask, Django, console apps | `examples/Python/` |
20+
| Go | Gin, console apps | `examples/Go/` |
21+
| JavaScript | Node.js | `examples/QuickStart/JavaScript/` |
22+
23+
## Code Style
24+
25+
### Python
26+
- **Black** formatter: line-length=120, target Python 3.8+
27+
- **Pylint**: max-line-length=120
28+
- **MyPy**: type checking is recommended; use where configured in individual examples
29+
- Run formatting and linting directly via these tools (or any per-example tooling); no shared tox tasks are defined at the repo root
30+
31+
### All Languages
32+
- Each example must be self-contained with its own README, dependencies, and setup instructions
33+
- READMEs must include: Features, Prerequisites, Setup, and Running instructions
34+
- Environment variables and connection strings must be documented but never hardcoded
35+
- Secrets must use Key Vault references, never plain text in config
36+
37+
## Adding or Modifying Examples
38+
39+
- Follow the existing directory structure: `examples/{Language}/{ExampleName}/`
40+
- Include a `README.md` with clear setup and run instructions
41+
- List all prerequisites (SDKs, Azure resources, environment variables)
42+
- Keep examples minimal and focused on demonstrating a single integration pattern
43+
- Use the Azure App Configuration provider library for the target language
44+
45+
## Documentation & Schemas
46+
47+
- Configuration schemas live in `docs/ConfigurationTypes/` as versioned JSON Schema files
48+
- Follow semantic versioning in schema filenames: `{Type}.v{Major}.{Minor}.{Patch}.schema.json`
49+
50+
## Release Notes
51+
52+
- Release notes are Markdown files in `releaseNotes/`, one per product
53+
- Entries are in reverse chronological order (newest first)
54+
- Each entry includes version number, date, and a bulleted list of changes
55+
56+
## Security
57+
58+
- Report vulnerabilities through MSRC (https://msrc.microsoft.com/create-report), never via public issues
59+
- Never commit secrets, connection strings, or credentials
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
---
2+
name: release-notes
3+
description: "Author and update release notes for Azure App Configuration libraries and providers. USE FOR: write release notes, add release note entry, update release notes, draft release notes, new version release notes, format release notes. DO NOT USE FOR: generating changelogs from git history, writing internal engineering notes."
4+
---
5+
6+
# Release Notes Authoring Skill
7+
8+
This skill guides the authoring of customer-facing release notes for Azure App Configuration libraries and providers. Release notes live in `releaseNotes/` and are the primary way customers learn about new versions.
9+
10+
## Key Principle
11+
12+
Release notes are for **customers**, not engineers. Every entry should help a customer decide whether to upgrade and understand what changed from their perspective.
13+
14+
## File Location & Naming
15+
16+
- All release notes go in `releaseNotes/` in this repository, even if the library has its own repo.
17+
- One Markdown file per product (e.g., `MicrosoftExtensionsConfigurationAzureAppConfiguration.md`).
18+
- If adding release notes for a **new product**, create a new file in `releaseNotes/`.
19+
20+
## File Structure
21+
22+
Each release notes file follows this structure:
23+
24+
```markdown
25+
# Product Name
26+
27+
[Source code][source_code] | [Package (NuGet/npm/PyPI)][package] | [Samples][samples]
28+
29+
## {version} - {Month} {Day}, {Year}
30+
31+
### Breaking Changes
32+
33+
### Enhancements
34+
35+
### Bug Fixes
36+
37+
<!-- Reference links at bottom of file -->
38+
[source_code]: https://...
39+
[package]: https://...
40+
[samples]: https://...
41+
```
42+
43+
## Version & Date Format
44+
45+
- Use the format: `## {version} - {Month} {Day}, {Year}`
46+
- Use the full month name, never abbreviations.
47+
- Examples:
48+
- `## 7.0.0 - November 21, 2023`
49+
- `## 2.4.0 - February 17, 2026`
50+
- `## v1.5.0 - February 14, 2026` (Go uses the `v` prefix)
51+
- `## 8.6.0-preview - February 26, 2026` (preview/beta versions)
52+
- Sort entries in **reverse chronological order** (newest first).
53+
54+
## Categories
55+
56+
Organize changes under these headings. Omit a category if it has no entries for that release.
57+
58+
### Breaking Changes
59+
Reserved for changes that require customers to modify their code or configuration.
60+
61+
- **Always explain why** the breaking change was made.
62+
- **Always explain how to migrate** from the old behavior to the new one.
63+
- Example:
64+
> Removed `IConfigurationRefresher.SetDirty` API in favor of `IConfigurationRefresher.ProcessPushNotification` API for push-model based configuration refresh. Unlike the SetDirty method, the ProcessPushNotification method guarantees that all configuration changes up to the triggering event are loaded in the following configuration refresh. For more details on the ProcessPushNotification API, refer to [this tutorial](https://link).
65+
66+
### Enhancements
67+
New features, capabilities, or improvements.
68+
69+
- Describe **what new scenarios are enabled** and how to take advantage of them.
70+
- Don't just name a new API — explain what it lets customers do.
71+
- Include brief code snippets when they help illustrate usage.
72+
- Example:
73+
> Added health check integration for `Microsoft.Extensions.Diagnostic.HealthChecks`. You can call `AddAzureAppConfiguration` on `IHealthCheckBuilder` to register a health check for the Azure App Configuration provider. [#644](https://github.com/Azure/AppConfiguration-DotnetProvider/pull/644)
74+
>
75+
> ```cs
76+
> builder.Services
77+
> .AddHealthChecks()
78+
> .AddAzureAppConfiguration();
79+
> ```
80+
81+
### Bug Fixes
82+
Fixes for issues customers may have encountered.
83+
84+
- **Describe the symptom**, not the implementation fix. Customers need to know if the bug affected them.
85+
- Bad: "Added a call to `ConfigureAwait(false)` in `LoadKeyValuesRegisteredForRefresh`"
86+
- Good: "Fixed a bug where ASP.NET Framework applications may fail to refresh their configuration."
87+
- Example:
88+
> Fixed a bug where calls to `FeatureFlagOptions.Select` were ignored if they were followed by a call to either `AzureAppConfigurationOptions.Select` or `AzureAppConfigurationOptions.SelectSnapshot`. [#628](https://github.com/Azure/AppConfiguration-DotnetProvider/issues/628)
89+
90+
## Linking to Issues and PRs
91+
92+
- **Always link** each change to a GitHub issue or PR.
93+
- **Prefer linking to issues** over PRsissues provide more context and already link to the PR.
94+
- Use the format: `[#123](https://github.com/org/repo/issues/123)`
95+
- Place the link at the end of the bullet point.
96+
- Example:
97+
> Added the following new API for additional App Configuration geo-replication support. [#385](https://github.com/Azure/AppConfiguration-DotnetProvider/issues/385)
98+
99+
## Writing Style
100+
101+
- Use **past tense**: "Added support for…", "Fixed a bug where…", "Removed the API…"
102+
- Write from the **customer's perspective**, not the developer's.
103+
- Be concise but informativeone to two sentences per entry is typical.
104+
105+
## What to Exclude
106+
107+
Do not include changes that are not meaningful to customers:
108+
109+
- Internal code refactoring
110+
- Telemetry additions or changes
111+
- Test improvements
112+
- CI/CD pipeline changes
113+
- Dependency bumps that don't affect customer behavior (unless they fix a customer-facing issue)
114+
115+
## Special Cases
116+
117+
### Preview / Beta Releases
118+
- Include preview and beta versions in the same file, interleaved chronologically.
119+
- Use the full version string: `## 8.6.0-preview - February 26, 2026`
120+
- Preview/beta releases are **cumulative**each one includes all changes from previous previews in that series. List all changes in every preview entry; duplicates across preview entries are expected.
121+
- The first stable release also re-lists all changes that were introduced across its preview/beta cycle. Do not omit items just because they appeared in a prior preview.
122+
123+
124+
### Delisted Releases
125+
- Mark delisted versions in the heading: `## 4.2.1 - July 9, 2025 (Delisted)`
126+
- Explain why the release was delisted and link to the tracking issue.
127+
128+
### Stable Releases That Graduate Preview Features
129+
- Note which features are graduating from preview: "This is the first stable release of the `SetClientFactory` API introduced in 8.2.0-preview."
130+
131+
## Product Reference
132+
133+
Use this table to determine the correct release notes file, GitHub repo (for issue/PR links), and package registry for each product. This information is also available in the [main README](../../../README.md).
134+
135+
### Configuration Providers
136+
137+
| Release Notes File | Module | GitHub Repo | Package |
138+
|---|---|---|---|
139+
| `MicrosoftExtensionsConfigurationAzureAppConfiguration.md` | Microsoft.Extensions.Configuration.AzureAppConfiguration | [Azure/AppConfiguration-DotnetProvider](https://github.com/Azure/AppConfiguration-DotnetProvider) | [NuGet](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/) |
140+
| `MicrosoftAzureAppConfigurationAspNetCore.md` | Microsoft.Azure.AppConfiguration.AspNetCore | [Azure/AppConfiguration-DotnetProvider](https://github.com/Azure/AppConfiguration-DotnetProvider) | [NuGet](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/) |
141+
| `MicrosoftAzureAppConfigurationFunctionsWorker.md` | Microsoft.Azure.AppConfiguration.Functions.Worker | [Azure/AppConfiguration-DotnetProvider](https://github.com/Azure/AppConfiguration-DotnetProvider) | [NuGet](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/) |
142+
| `SpringCloudAzureAppConfigurationConfig.md` | spring-cloud-azure-appconfiguration-config | [Azure/azure-sdk-for-java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring/spring-cloud-azure-appconfiguration-config) | [Maven](https://search.maven.org/artifact/com.azure.spring/spring-cloud-azure-appconfiguration-config) |
143+
| `AzureAppConfigurationProviderPython.md` | azure-appconfiguration-provider | [Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/appconfiguration/azure-appconfiguration-provider) | [PyPI](https://pypi.org/project/azure-appconfiguration-provider/) |
144+
| `JavaScriptProvider.md` | @azure/app-configuration-provider | [Azure/AppConfiguration-JavaScriptProvider](https://github.com/Azure/AppConfiguration-JavaScriptProvider) | [npm](https://www.npmjs.com/package/@azure/app-configuration-provider) |
145+
| `GoProvider.md` | azureappconfiguration | [Azure/AppConfiguration-GoProvider](https://github.com/Azure/AppConfiguration-GoProvider) | [pkg.go.dev](https://pkg.go.dev/github.com/Azure/AppConfiguration-GoProvider/azureappconfiguration) |
146+
147+
### Feature Management Libraries
148+
149+
| Release Notes File | Module | GitHub Repo | Package |
150+
|---|---|---|---|
151+
| `Microsoft.Featuremanagement.md` | Microsoft.FeatureManagement | [microsoft/FeatureManagement-Dotnet](https://github.com/microsoft/FeatureManagement-Dotnet) | [NuGet](https://www.nuget.org/packages/Microsoft.FeatureManagement) |
152+
| `Microsoft.Featuremanagement.AspNetCore.md` | Microsoft.FeatureManagement.AspNetCore | [microsoft/FeatureManagement-Dotnet](https://github.com/microsoft/FeatureManagement-Dotnet) | [NuGet](https://www.nuget.org/packages/Microsoft.FeatureManagement.AspNetCore) |
153+
| `Microsoft.Featuremanagement.Telemetry.ApplicationInsights.md` | Microsoft.FeatureManagement.Telemetry.ApplicationInsights | [microsoft/FeatureManagement-Dotnet](https://github.com/microsoft/FeatureManagement-Dotnet) | [NuGet](https://www.nuget.org/packages/Microsoft.FeatureManagement.Telemetry.ApplicationInsights) |
154+
| `Microsoft.Featuremanagement.Telemetry.ApplicationInsights.AspNetCore.md` | Microsoft.FeatureManagement.Telemetry.ApplicationInsights.AspNetCore | [microsoft/FeatureManagement-Dotnet](https://github.com/microsoft/FeatureManagement-Dotnet) | [NuGet](https://www.nuget.org/packages/Microsoft.FeatureManagement.Telemetry.ApplicationInsights.AspNetCore) |
155+
| `SpringCloudAzureFeatureManagement.md` | spring-cloud-azure-feature-management | [Azure/azure-sdk-for-java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring/spring-cloud-azure-feature-management) | [Maven](https://search.maven.org/artifact/com.azure.spring/spring-cloud-azure-feature-management) |
156+
| `PythonFeatureManagement.md` | featuremanagement | [microsoft/FeatureManagement-Python](https://github.com/microsoft/FeatureManagement-Python) | [PyPI](https://pypi.org/project/FeatureManagement/) |
157+
| `JavaScriptFeatureManagement.md` | @microsoft/feature-management | [microsoft/FeatureManagement-JavaScript](https://github.com/microsoft/FeatureManagement-JavaScript) | [npm](https://www.npmjs.com/package/@microsoft/feature-management) |
158+
| `JavaScriptFeatureManagementApplicationInsightsBrowser.md` | @microsoft/feature-management-applicationinsights-browser | [microsoft/FeatureManagement-JavaScript](https://github.com/microsoft/FeatureManagement-JavaScript) | [npm](https://www.npmjs.com/package/@microsoft/feature-management-applicationinsights-browser) |
159+
| `JavaScriptFeatureManagementApplicationInsightsNode.md` | @microsoft/feature-management-applicationinsights-node | [microsoft/FeatureManagement-JavaScript](https://github.com/microsoft/FeatureManagement-JavaScript) | [npm](https://www.npmjs.com/package/@microsoft/feature-management-applicationinsights-node) |
160+
| `GoFeatureManagement.md` | featuremanagement | [microsoft/FeatureManagement-Go](https://github.com/microsoft/FeatureManagement-Go) | [pkg.go.dev](https://pkg.go.dev/github.com/microsoft/Featuremanagement-Go/featuremanagement) |
161+
162+
### Platform & Tools
163+
164+
| Release Notes File | Module | GitHub Repo | Package |
165+
|---|---|---|---|
166+
| `KubernetesProvider.md` | Azure App Configuration Kubernetes Provider | [Azure/AppConfiguration-KubernetesProvider](https://github.com/Azure/AppConfiguration-KubernetesProvider) | [MCR](https://mcr.microsoft.com/en-us/product/azure-app-configuration/kubernetes-provider/about) |
167+
| `AppConfigurationEmulator.md` | Azure App Configuration Emulator | [Azure/AppConfiguration-Emulator](https://github.com/Azure/AppConfiguration-Emulator) | — |
168+
| `AzureDevOpsPipelineExtension.md` | Azure App Configuration (Azure Pipeline) |||
169+
| `AzureDevOpsPushPipelineExtension.md` | Azure App Configuration Push (Azure Pipeline) |||
170+
171+
### Legacy (Deprecated)
172+
173+
| Release Notes File | Module | GitHub Repo |
174+
|---|---|---|
175+
| `AzureSpringCloudAppConfigurationConfig.md` | azure-spring-cloud-appconfiguration-config | [Azure/azure-sdk-for-java](https://github.com/Azure/azure-sdk-for-java) |
176+
| `AzureSpringCloudFeatureManagement.md` | azure-spring-cloud-feature-management | [Azure/azure-sdk-for-java](https://github.com/Azure/azure-sdk-for-java) |

0 commit comments

Comments
 (0)