Contributor retention

Standardize the baseline for new contributions:

  • Expression format is similar to other contributions
  • Adheres to guidelines for a given language / ecosystem
  • There should be an attempt to run tests
    • Highly impure tests can be disabled
  • InstallCheckPhase should be utilize that a trivial scenario works (e.g. <program> --version) works
  • (low priority) passthru.tests should be used to create more meaningful user tests / scenarios
  • (lower priority) some form of nixosTest if several packages / services interact with each other (e.g. nextcloud + postgres)

At least with python packages, we have done a pretty good job on emphasizing running the test suites, and using pythonImportsCheck to validate the python package builds, and is usable in at least the trivial case. Goes a long way to having a “the diff looks alright, so as long as the nixpkgs-review passes, it’s merge-able”.

There was an RFC which wanted to standardize the PR workflow, but I think it was just being too “rigid” and the effects covered a wide range of human oriented processes (e.g. reviewing, status updates, etc). And we could probably get an RFC passed by setting the bar lower, and just applying standardization around what a “nixpkgs package” should contain.

11 Likes