Files
devmobasa 36a83dc9e6 refactor(tooling): remove Python from tests, guards, and release tools
- Run the daemon overlay fixture as the test binary itself: a startup hook
  runs the production readiness handshake, and a child that exits before
  readiness is the same binary launched under a dedicated name. The launch
  error text stays as it was; per-candidate failures stay on a typed error.
- Port the GTK popup Wayland proxy to Rust, reading message layouts from the
  protocol tables compiled into wayland-client and wayland-protocols.
- Move the process-site, config-writer, and shared-dependency guards to Rust
  tests in tests/repository_guards, run by every cargo test, retire the C#
  copies, and add a guard that keeps Python out.
- Make version check, bump, and release tags C# only, keeping the
  packaging-hotfix rules, and restore the code-health report's status lines.
- Require the .NET SDK for tools/lint-and-test.sh, which runs the same plan
  as ci lint-and-test, and drop Python from Nix inputs and CI packages.
2026-10-04 18:38:34 +02:00
..

nixpkgs recipe

package.nix is our copy of the Wayscriber recipe that lives in nixpkgs at pkgs/by-name/wa/wayscriber/package.nix.

We do not own that file — nixpkgs does. This copy exists so that:

  • packaging changes here (new system libraries, new installed files) are visible in the same commit as the change that requires them, and
  • dotnet run tools/wayscriber.cs --no-build -- check nixpkgs-recipe can fail CI when a default Cargo feature needs a system library the nixpkgs build does not declare.

How versions reach nixpkgs

Version bumps are opened automatically by the nixpkgs-update bot (R. Ryantm) because the recipe carries passthru.updateScript = nix-update-script { }. Every bump since init at 0.7.2 has come from that bot, usually within a few weeks of a release. We do not need to send routine version bumps ourselves.

nixpkgs-unstable follows releases. Stable NixOS branches (nixos-26.05, …) keep whatever version existed when the branch was cut; version bumps are not backported. Point stable-channel users at the project flake instead.

What the bot cannot do is change the build itself. When a release adds a system dependency or a new installed file, someone has to send a real PR — otherwise the next bot PR fails to build and stalls.

Submitting a change

  1. Fork and clone NixOS/nixpkgs, then copy this file over pkgs/by-name/wa/wayscriber/package.nix.

  2. Fill in the hashes (hash and cargoHash are lib.fakeHash here):

    nix-shell -p nix-update --run "nix-update --version <version> wayscriber"
    
  3. Build and smoke-test it:

    nix-build -A wayscriber
    ./result/bin/wayscriber --version
    
  4. Commit with the nixpkgs convention, one logical change per commit:

    wayscriber: add GTK4 toolbar dependencies
    wayscriber: 0.9.21 -> 0.9.22
    
  5. Open the PR against master. Do not target a stable release branch.

Getting review notifications

meta.maintainers currently lists only leiserfg. Adding ourselves means the bot's bump PRs request our review, which is the most effective way to keep the package current. It is a two-part change in the same PR:

  1. Add an entry to maintainers/maintainer-list.nix (name, GitHub handle, GitHub ID).
  2. Add that handle to meta.maintainers here.

Adding the handle to meta.maintainers without the maintainer-list entry breaks evaluation, so both parts must land together.

Differences from the flake

flake.nix in the repository root builds from the working tree and also builds wayscriber-configurator. This recipe builds a tagged release and ships the main binary only — nixpkgs has no Configurator package today.