Skip to content

Standardize repository tooling, build configuration, and documentation #14

Description

@rent-a-developer

Description

Make the development and AI workflows consistent and easier to maintain. Preserve the public APIs, the localization behavior, the package identities, and the dependency floors.

  • Separate the shared, source, and test build settings while preserving the generator, WPF, and package-wiring requirements. Validate the package contents and API compatibility against the last published version.
  • Add dependency auditing so transitive advisories become visible.
  • Align the C# style, member ordering, analyzers, and pinned tools. Use two spaces for all XML configuration. Preserve the XAML behavior.
  • Triage the findings of the new analyzer set before the error gate is switched back on, so nothing is blanket-suppressed.
  • Make every script check preserve the source and the Git index, so a check never rewrites the tree. Fixing stays an explicit action.
  • Turn the packed-package Native AOT check into a real gate: publish and execute AvaloniaConsumer on .NET 8 and .NET 10 with zero IL2xxx and IL3xxx diagnostics. Today that job only checks that files exist.
  • Align CI, quarterly Dependabot updates, contribution templates, AI instructions, focused reviewers, scoped hooks, and the commit and changelog rules.
  • Keep the README short and put the longer material in docs/guides/ and docs/reference/. Move the DocFX configuration to build/docfx and the generated output to artifacts. The community health files stay at the repository root and are published from there.
  • Apply the repository-wide formatting and ordering pass last, through the finished scripts.

The test runner stays on VSTest. A verification spike proved that a move to Microsoft.Testing.Platform does not work: Avalonia.Headless.XUnit fails with the newer xUnit, and the older xUnit cannot load any current Microsoft.Testing.Platform coverage extension.

Acceptance

  • Every phase of the implementation plan is complete and its evidence is recorded.
  • All four test suites run, and the packaging, native-consumer, and documentation checks pass.
  • Shipping C# and XAML changes are mechanical only. The API, the dependency floors, the resources, and the runtime behavior are unchanged.
  • Hook scope, non-mutating checks, documentation links, tool-version agreement, and local-package provenance are verified by hand.

Notes

The branch is merged with a merge commit, never squashed, because .git-blame-ignore-revs records the mechanical commit IDs.

Test-only C# and XAML changes are allowed. WPF Native AOT, benchmarks, and a design-decisions document are out of scope. The maintainer owns the branch, the release version, and publication. Do not add a permanent framework for the additional manual checks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions