Admins will be upgrading ORNL GitLab Servers on Saturday, 16 May 2026, from 7 AM until 11 AM EST. Repositories will experience intermittent outages during this time.
#### `mkPythonEditablePackage` function {#mkpythoneditablepackage-function}
When developing Python packages it's common to install packages in [editable mode](https://setuptools.pypa.io/en/latest/userguide/development_mode.html).
Like `mkPythonMetaPackage` this function exists to create an otherwise empty package, but also containing a pointer to an impure location outside the Nix store that can be changed without rebuilding.
The editable root is passed as a string. Normally `.pth` files contains absolute paths to the mutable location. This isn't always ergonomic with Nix, so environment variables are expanded at runtime.
This means that a shell hook setting up something like a `$REPO_ROOT` variable can be used as the relative package root.
As an implementation detail, the [PEP-518](https://peps.python.org/pep-0518/)`build-system` specified won't be used, but instead the editable package will be built using [hatchling](https://pypi.org/project/hatchling/).
The `build-system`'s provided will instead become runtime dependencies of the editable package.
Note that overriding packages deeper in the dependency graph _can_ work, but it's not the primary use case and overriding existing packages can make others break in unexpected ways.
``` nix
{pkgs?import<nixpkgs>{}}:
let
pyproject=pkgs.lib.importTOML./pyproject.toml;
myPython=pkgs.python.override{
self=myPython;
packageOverrides=pyfinal:pyprev:{
# An editable package with a script that loads our mutable location
my-editable=pyfinal.mkPythonEditablePackage{
# Inherit project metadata from pyproject.toml
pname=pyproject.project.name;
inherit(pyproject.project)version;
# The editable root passed as a string
root="$REPO_ROOT/src";# Use environment variable expansion at runtime
# Inject a script (other PEP-621 entrypoints are also accepted)
moved into the top level scope (i.e., `budgie.budgie-desktop` is now
`budgie-desktop`)
- The method to safely handle secrets in the `networking.wireless` module has been changed to benefit from a [new feature](https://w1.fi/cgit/hostap/commit/?id=e680a51e94a33591f61edb210926bcb71217a21a) of wpa_supplicant.
The syntax to refer to secrets has changed slightly and the option `networking.wireless.environmentFile` has been replaced by `networking.wireless.secretsFile`; see the description of the latter for how to upgrade.
- All Cinnamon and XApp packages have been moved to top-level (i.e., `cinnamon.nemo` is now `nemo`).
- All GNOME packages have been moved to top-level (i.e., `gnome.nautilus` is now `nautilus`).