5 Commits
Author SHA1 Message Date
Sven Scharmentke 48e4350d57 ci: quiet the release run's annotations (#150) 2026-10-10 18:33:01 +02:00
Sven Scharmentke 28e71e7982 ci: release from develop and fast-forward main onto each release (#90)
Moves the release process to a `main <- develop <- feat/fix` model.

`develop` is now the repository default and the base for every feature
and fix PR. release-please watches it and keeps a `chore(develop):
release X.Y.Z` PR open there; merging that PR is what "release now"
means. `main` stops being a branch anyone commits to and becomes a
pointer to the last released commit.

## What changed

| File | Change |
| :--- | :----- |
| `release-please.yml` | Triggers on `develop`, `target-branch:
develop`, new `fast-forward-main` and `docs` jobs |
| `pages.yml` | Gains a `workflow_call` trigger |
| `ci.yml` | Runs on pushes to `develop` |
| `CLAUDE.md` | Release section rewritten for the two-branch flow |

## The GITHUB_TOKEN trap, twice

This repo already calls `publish-mcp.yml` through `needs` rather than
from `on: push: tags`, because a release created with the default
`GITHUB_TOKEN` does not trigger other workflows.

The `main` fast-forward is the same kind of push and hits the same wall.
A `pages.yml` left watching `main` would therefore have gone quiet
forever after this change - docs would simply have stopped deploying,
with nothing failing to say so. So `pages.yml` gets a `workflow_call`
trigger and is chained from the release run instead. Its `push: main`
trigger is kept as a manual escape hatch.

## Failure mode worth knowing

`fast-forward-main` does a plain `git push origin
<sha>:refs/heads/main`. If someone pushes to `main` directly, that push
stops fast-forwarding and the job fails with an explicit error naming
the fix (merge `main` into `develop`, re-run). It never force-pushes, so
a divergence is reported rather than silently discarded.

`main` is currently unprotected, which is what lets the workflow move it
with the default token. A ruleset restricting pushes to the workflow
would be a sensible follow-up, but it needs a bypass actor configured
correctly or it blocks the very job that advances `main` - worth doing
after one release has been observed working.

## Verification

- All seven workflow files parse as YAML.
- Docs typography check clean.
- Release-notes `awk` block, `publish` job, and
`release-please-config.json` are untouched.
2026-08-27 21:15:51 +02:00
Sven Scharmentkeanddependabot[bot] 5f27dc812d Consolidate dependency updates (2 PRs) (#77)
Consolidates the following Dependabot PRs into a single update:

- #68 - ci(deps): bump actions/setup-python from 6 to 7 in the actions
group
- #69 - deps(python): bump the python group with 2 updates
(mkdocs-material 9.7.6 -> 9.7.7, pymdown-extensions 11.0 -> 11.0.1)

Supersedes #68
Supersedes #69

No lock file regeneration needed: neither bump touches `pyproject.toml`,
and `uv lock --check` passes unchanged. `requirements-docs.txt` is a
plain pip requirements file.

Verified locally:

- `uv run pytest src/mcp_windbg/tests/ -m "not live"` - 29 passed
- `python -m mkdocs build --strict` at the bumped docs versions - clean

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-21 23:34:41 +02:00
Sven Scharmentkeanddependabot[bot] b450edd28c Consolidate dependency updates (2 PRs) (#64)
Consolidates the following Dependabot PRs into a single update:

- #60 — ci(deps): bump actions/checkout from 6 to 7 in the actions group
- #61 — deps(python): update pymdown-extensions requirement from
>=10.21.3 to >=11.0 in the python group

Supersedes #60
Supersedes #61

No lock file to regenerate: the actions bump only edits workflow YAML,
and pymdown-extensions is a `>=` pin in requirements-docs.txt (not
tracked by uv.lock/pyproject.toml). The two changes touch disjoint files
and merged without conflicts.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-15 19:50:48 +02:00
Sven ScharmentkeandClaude Opus 4.8 c3c3c7fa57 docs: onboard MkDocs site and migrate the wiki (#50)
## Summary

Onboards a MkDocs (Material) documentation site, mirroring the
dap-dbgeng setup, and migrates the GitHub wiki into it (trimmed to the
essentials: getting started, use cases, and a lookup reference).

## What's included

**Site infrastructure**
- `mkdocs.yml` - Material theme, VS Code blue palette, light/dark
toggle, the same markdown extensions and nav structure as dap-dbgeng.
- `requirements-docs.txt` - pinned `mkdocs` / `mkdocs-material` /
`pymdown-extensions`.
- `docs/assets/` - `extra.css` (brand color + mermaid styling) and the
self-contained `mermaid.js` loader.

**Pipeline**
- `.github/workflows/pages.yml` - builds with `mkdocs build --strict`
and deploys to GitHub Pages on pushes to `main` that touch docs.

**Content (migrated + trimmed from the wiki)**
- `index.md`, `getting-started.md`
- Use cases: `scenarios/` - analyze a crash dump, debug a remote target,
triage multiple dumps
- Reference: `reference/` - command-line options, tools, client
configuration
- `troubleshooting.md`

**Agent / authoring setup**
- Migrated `AGENTS.md` -> `CLAUDE.md` (concise, dap-dbgeng style).
- Added `.claude/rules/markdown.md` and
`.claude/rules/documentation.md`, plus `scripts/Format-Docs.ps1` to
enforce the typography rules (plain hyphens, no emojis).

**Housekeeping**
- README documentation links now point at the new site.
- `.gitignore` ignores `/site/`.

## Verification

- `mkdocs build --strict` - clean, all internal links resolve.
- `scripts/Format-Docs.ps1 -Check` - passes repo-wide (also fixed a
stray dash + emoji in CHANGELOG).

## One manual step

GitHub Pages is not enabled on the repo yet. After merge, set **Settings
-> Pages -> Build and deployment -> Source = GitHub Actions** (one time)
so `pages.yml` can publish to `https://svnscha.github.io/mcp-windbg/`.
Happy to enable it via API if you'd prefer.

## Notes / decisions

- Use-case pages chosen to match the product: crash dump, remote target,
triage. The wiki's separate per-client install pages are consolidated
into `reference/clients.md`.
- The wiki repo (`mcp-windbg.wiki`) is left untouched; we can archive or
redirect it once this is live.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 04:38:12 +02:00