Although there is desire to keep as aligned with Nixpkgs as possible, Ekapkgs isn't obligated to retain poor UX paradigms either. In that vein, the following changes differ significantly from whath one would expct with Nixpkgs.
~/.config/nixis no longer respected forconfigoroverlaysconfig.gitConfigandconfig.gitConfigFilewere removed- Globally altering git behavior should be done at the machine level
- setupHooks for build managers are now explicit and opt-in.
- E.g.
meson.configurePhaseHooknow needs to be specified.
- E.g.
doChecknow defaults tofalseacross the package set.- Test suites are not executed as part of the main build by default.
- This keeps the critical build path lean and avoids rebuilding the world when only a test-related input changes.
- To run a package's tests, override with
doCheck = trueor evaluate the dedicated test derivation (e.g.pkg.passthru.tests.*).
buildPythonPackageexposes atestPathsattribute for deferring test execution into a separate derivation.testPathsis a list of files and/or directories (relative to the source root) that comprise the package's test suite. The typical case istestPaths = [ "tests" ];, but the list may include sibling helper modules, fixture data, root-level test scripts, or documentation files referenced by the test suite (e.g.testPaths = [ "tests" "smartypants" "README.rst" ];).- When
testPathsis non-empty, an additionaltest_srcoutput is produced containing just the listed paths (plus any root-levelconftest.py,pytest.ini,setup.cfg,pyproject.toml, ortox.ini), and apassthru.tests.pythonderivation is auto-generated that runs the test suite against the installed package using the configurednativeCheckInputs/checkInputs. - The generated test derivation skips
configurePhase,buildPhase, andinstallPhase. It runs only thecheckPhase/installCheckPhase(plus any check hooks likepytestCheckHookthat append topreDistPhases), against the installed package which is provided as anativeBuildInputsentry. This avoids rebuilding the package just to run its tests. - This decouples test execution from the main build, allowing test failures or test-only dependency churn to avoid invalidating downstream consumers.