Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/skills/maintenance/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Low-risk patch/minor bumps can go in one PR; majors and anything release-critica

10. **Git repo hygiene.**
- **Line endings / `.gitattributes`.** If the repo has no `.gitattributes`, line endings drift (CRLF/LF mixed, `core.autocrlf=false`) and bulk edits balloon diffs. Add one and run a **dedicated** `git add --renormalize .` commit (its own PR, when no other work is in flight — it touches nearly every file).
- **Stale branches & worktrees.** `git worktree list` — remove leftover worktrees (anything under `.claude/worktrees/` or other agent/isolation worktrees) with `git worktree remove`. Then `git fetch --prune` to drop stale remote-tracking refs, and audit: `git branch --merged origin/dev` (local branches already in dev — safe to delete) and `git branch -r` (remote branches from closed/merged PRs). Delete merged/dead branches; **keep intentionally-parked ones** (note which and why — e.g. a blocked-upgrade branch like `upgrade/avalonia-12`). For branches *you didn't create*, surface and confirm before deleting rather than assuming abandoned. Confirm open PRs are still wanted.
- **Stale branches & worktrees.** `git worktree list` — remove leftover worktrees (anything under `.claude/worktrees/` or other agent/isolation worktrees) with `git worktree remove`. Then `git fetch --prune` to drop stale remote-tracking refs, and audit: `git branch --merged origin/dev` (local branches already in dev — safe to delete) and `git branch -r` (remote branches from closed/merged PRs). Delete merged/dead branches; **keep intentionally-parked ones** (note which and why — e.g. a major-upgrade branch that waits on a manual test pass). For branches *you didn't create*, surface and confirm before deleting rather than assuming abandoned. Confirm open PRs are still wanted.

## C. App data & runtime hygiene (lighter)

Expand Down
18 changes: 8 additions & 10 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,18 @@ updates:
# --- Deliberate pins. Removing an ignore here without doing the matching
# migration will produce a PR that builds but breaks at runtime. ---

# Avalonia 12 is a completed-but-parked migration on branch
# upgrade/avalonia-12. Take 11.x servicing, never the major.
# An Avalonia major is a migration, not a version bump. 11 -> 12 (#549)
# changed behavior in ways that still compiled, and only behavior tests
# and a GUI test pass caught them. Take 12.x servicing, and do the next
# major by hand. This pattern covers AvaloniaEdit too, but not
# ScottPlot.Avalonia. When a ScottPlot.Avalonia PATCH starts to require
# the next Avalonia major, restore fails with NU1605 and takes the whole
# grouped PR down with it. Pin that version with a `versions` ignore
# until the migration, as 5.1.59 was pinned while Avalonia 12 waited.
- dependency-name: "Avalonia*"
update-types:
- version-update:semver-major

# 5.1.58 is the last build targeting Avalonia 11; 5.1.59+ requires
# Avalonia >= 12 and hard-fails restore with NU1605. This is a PATCH bump,
# so an update-type ignore would not catch it. Drop this entry as part of
# the Avalonia 12 migration.
- dependency-name: "ScottPlot.Avalonia"
versions:
- ">= 5.1.59"

# Pinned to keep the native libs in the [119.0, 120.0) range that managed
# SkiaSharp 3.x requires. A 4.x bump reintroduces GitHub issue #139
# (TypeInitializationException on Linux at startup).
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ PerformanceStudio/
## Architecture

- **PlanViewer.Core** is the shared library. It contains the XML parser (`ShowPlanParser`), analysis rules (`PlanAnalyzer`), plan layout engine, text/JSON formatters, and all models. Both the GUI and CLI depend on it.
- **PlanViewer.App** is an Avalonia 11 desktop app using code-behind (no MVVM framework). It renders plan trees on a Canvas with the same operator icons as SSMS.
- **PlanViewer.App** is an Avalonia 12 desktop app using code-behind (no MVVM framework). It renders plan trees on a Canvas with the same operator icons as SSMS.
- **PlanViewer.Cli** is a System.CommandLine-based CLI tool that wraps Core for command-line use.

## Code Style
Expand Down
Loading