diff --git a/.claude/skills/prepare-release/SKILL.md b/.claude/skills/prepare-release/SKILL.md index caf0409..367f80c 100644 --- a/.claude/skills/prepare-release/SKILL.md +++ b/.claude/skills/prepare-release/SKILL.md @@ -28,7 +28,9 @@ prepare the repository and open the PR. 4. **Confirm clean tree** — `git status --short`; if dirty, ask how to proceed. -5. **Branch** — `git checkout -b release/v`. +5. **Branch from up-to-date `main`** — `git checkout main && git pull` then + `git checkout -b release/v`. The repo uses GitHub Flow; release + branches always cut from `main`. 6. **Update the library project's NuGet packages** to latest (`src/OpenTelemetryExtension.Configuration/OpenTelemetryExtension.Configuration.csproj` only — leave Sample/Tests packages alone), then `dotnet restore OpenTelemetryExtension.slnx`. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7e6a31..d60ae26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: "CI" on: push: - branches: [ develop, main ] + branches: [ main ] pull_request: - branches: [ develop, main ] + branches: [ main ] permissions: contents: read diff --git a/AGENTS.md b/AGENTS.md index bd43530..230805f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -28,10 +28,18 @@ OpenTelemetryExtension.slnx # Solution file (repo root) ## Branches & CI -- `develop` is the default working branch; `main` receives release PRs only. -- `ci.yml` runs on push/PR to `develop` and `main` (Windows runner): build, - unit tests with `--filter "Category=Unit"`, coverage via Coverlet + - ReportGenerator, upload to Coveralls. +The repository follows **GitHub Flow**: `main` is the only long-lived branch and +is always releasable. + +- Branch off `main` for every change — `feature/*` for new functionality, + `fix/*` for bug fixes — then open a PR back to `main`. Do not commit directly + to `main`. +- `release/vX.Y.Z` branches are the same mechanism but carry **only** release + mechanics (version bump, dependency updates, release notes) — no code changes. + They are created by the `prepare-release` skill, not by contributors. +- `ci.yml` runs on push to `main` and on every PR targeting `main` (Windows + runner): build, unit tests with `--filter "Category=Unit"`, coverage via + Coverlet + ReportGenerator, upload to Coveralls. - `deploy-nuget.yml` is **manual only** (`workflow_dispatch`, Linux runner): it builds *only* the library and unit-test projects (the WPF sample cannot build on Linux), runs the unit tests, packs, publishes to NuGet.org and GitHub diff --git a/CLAUDE.md b/CLAUDE.md index 3574985..f6c62b6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,6 +9,7 @@ duplicate its content here. - Quick start: `dotnet build OpenTelemetryExtension.slnx -c Release`, then `dotnet test src/OpenTelemetryExtension.Configuration.Tests -c Release --filter "Category=Unit"`. -- Day-to-day work happens on `develop`; release PRs target `main`. +- GitHub Flow: branch off `main` (`feature/*` or `fix/*`) → PR → `main`; never + commit straight to `main`. Release branches (`release/*`) are skill-managed. - Use the `/prepare-release` skill (`.claude/skills/prepare-release/`) for the entire release workflow — never bump `` or publish manually. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2e98140..6376130 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,13 +8,14 @@ For anything beyond a small fix, please [open an issue](https://github.com/thors ## Workflow -1. Fork the repository and create a branch from `develop`. +1. Fork the repository and create a branch from `main` — use `feature/` + for new functionality or `fix/` for bug fixes. 2. Make your changes. 3. Add or update tests — every public API change needs test coverage. 4. When you add or change a feature, run the **unit tests**; if you have the telemetry stack running, run the **integration tests** too (see [Integration tests](#integration-tests)). -5. Open a pull request against `develop`. +5. Open a pull request against `main`. ## Build & Test diff --git a/README.md b/README.md index 3041104..031b4e4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![OpenTelemetryExtension.Configuration](https://raw.githubusercontent.com/thorstenalpers/OpenTelemetryExtension.Configuration/main/assets/banner.png)](https://github.com/thorstenalpers/OpenTelemetryExtension.Configuration) -[![CI](https://img.shields.io/github/actions/workflow/status/thorstenalpers/OpenTelemetryExtension.Configuration/ci.yml?branch=develop&style=flat-square&logo=githubactions&logoColor=white&label=CI)](https://github.com/thorstenalpers/OpenTelemetryExtension.Configuration/actions/workflows/ci.yml) -[![Coverage](https://img.shields.io/coverallsCoverage/github/thorstenalpers/OpenTelemetryExtension.Configuration?branch=develop&style=flat-square&logo=coveralls&label=coverage)](https://coveralls.io/github/thorstenalpers/OpenTelemetryExtension.Configuration?branch=develop) +[![CI](https://img.shields.io/github/actions/workflow/status/thorstenalpers/OpenTelemetryExtension.Configuration/ci.yml?branch=main&style=flat-square&logo=githubactions&logoColor=white&label=CI)](https://github.com/thorstenalpers/OpenTelemetryExtension.Configuration/actions/workflows/ci.yml) +[![Coverage](https://img.shields.io/coverallsCoverage/github/thorstenalpers/OpenTelemetryExtension.Configuration?branch=main&style=flat-square&logo=coveralls&label=coverage)](https://coveralls.io/github/thorstenalpers/OpenTelemetryExtension.Configuration?branch=main) [![NuGet](https://img.shields.io/nuget/v/OpenTelemetryExtension.Configuration?style=flat-square&logo=nuget&logoColor=white&label=nuget)](https://www.nuget.org/packages/OpenTelemetryExtension.Configuration) [![Downloads](https://img.shields.io/nuget/dt/OpenTelemetryExtension.Configuration?style=flat-square&logo=nuget&logoColor=white&label=downloads)](https://www.nuget.org/packages/OpenTelemetryExtension.Configuration) [![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](./LICENSE)