Commit Graph
1006631 Commits
Author SHA1 Message Date
R. Ryantm 147cfdf8ab python3Packages.msprime: 1.4.1 -> 1.4.2 2026-05-26 10:02:09 +00:00
zimbatmandadisbladis df1b67fdfd purescript.tests.minimal-module: use lib.sources.sourceByGlobs
Filter src to the .purs and .js files actually compiled, dropping
default.nix from the closure.
2026-05-26 21:53:50 +12:00
kirillrdyandGitHub 87fcb8ea8b python3Packages.numpy-quaternion: init at 2024.0.13 (#524057) 2026-05-26 09:53:40 +00:00
Luke Granger-BrownandGitHub bf36a43961 prometheus-bird-exporter: 1.4.3 -> 1.4.5 (#516082) 2026-05-26 09:49:51 +00:00
zimbatmandadisbladis 1b47667776 vimPluginsUpdater: use lib.sources.sourceByGlobs
Filter PYTHONPATH source to .py files only, dropping the 6 sibling
.nix files from the closure.
2026-05-26 21:49:00 +12:00
zimbatmandadisbladis edb4b053f5 pkgs.formats.javaProperties: use lib.sources.sourceByGlobs
Uses the cleaner expression
2026-05-26 21:49:00 +12:00
zimbatmandadisbladis 01bdc186ae lib.sources.sourceByGlobs: address review comments 2026-05-26 21:49:00 +12:00
adisbladis 59d55cbaa3 lib.sources.sourceByGlobs: init function
Adds a source filtering function inspired by [doublestar](https://github.com/bmatcuk/doublestar).

This has been in used in a few private repositories since the last ~6 months with success.

- Testing

This was originally tested with the nix-unit testsuite:
```
let
  inherit (import ./internal.nix) mkSourceFilter mkMatcher;
in
{
  mkMatcher = {
    empty = {
      testMatch = {
        expr = mkMatcher "" "" "regular";
        expected = true;
      };

      testNoMatch = {
        expr = mkMatcher "" "foo" "regular";
        expected = false;
      };
    };

    simple = {
      testMatch = {
        expr = mkMatcher "foo" "foo" "regular";
        expected = true;
      };

      testNoMatch = {
        expr = mkMatcher "foo" "bar" "regular";
        expected = false;
      };
    };

    singleStar = {
      testMatch = {
        expr = mkMatcher "*.js" "foo.js" "regular";
        expected = true;
      };

      testNoMatch = {
        expr = mkMatcher "*.js" "foo.py" "regular";
        expected = false;
      };
    };

    doubleStar = {
      testMatch = {
        expr = mkMatcher "foo/**/bar" "foo/baz/bar" "regular";
        expected = true;
      };

      testNoMatch = {
        expr = mkMatcher "foo/**/bar" "foo/bar/baz" "regular";
        expected = false;
      };

      testMultiMatch = {
        expr = mkMatcher "foo/**/bar" "foo/baz/xyz/bar" "regular";
        expected = true;
      };

      testMultiMatchDoubleGlob = {
        expr = mkMatcher "foo/**/**/bar" "foo/baz/xyz/bar" "regular";
        expected = true;
      };

      testInfixMatch = {
        expr = mkMatcher "foo/**/qux/**/bar" "foo/baz/qux/baz/bar" "regular";
        expected = true;
      };

      testInfixNoMatch = {
        expr = mkMatcher "foo/**/xyz/**/bar" "foo/baz/qux/baz/bar" "regular";
        expected = false;
      };

      # Technically a partial match
      testInfixDirMatch = {
        expr = mkMatcher "foo/**/xyz/**/bar" "foo/baz/qux/baz/bar" "directory";
        expected = true;
      };
    };
  };

  mkSourceFilter = {
    testSourceFilter = {
      expr = mkSourceFilter ./fixtures [
        "bar/*.js"
      ] "bar/bar.js" "regular";
      expected = true;
    };
  };
}
```
but it was dropped in this nixpkgs contribution as the structure of nixpkgs lib testing is too primitive to incorp this without more extensive refactoring than I'd like at the momment.

- Performance

It's hard to benchmark this against anything else meaningful except [globsset](https://github.com/pdtpartners/globset), which has a very similar API.

`sourceByGlobs` avoids performance pitfalls by:

  - Using `builtins.filterSource`

      This is more performant than the fileset API.
      The downside compared to the fileset API is that any directory which matches the filter will be added to the build, even if it's empty.

  - Match paths component by component

      By splitting each pattern into a token per / separator.
      This is much faster in Nix than the doublestar algorithm.

- Globset source

```json
{
    "cpuTime": 0.8585879802703857,
    "envs": {
        "bytes": 148252864,
        "elements": 11899843,
        "number": 6631765
    },
    "gc": {
        "heapSize": 402915328,
        "totalBytes": 671288560
    },
    "list": {
        "bytes": 3358664,
        "concats": 28658,
        "elements": 419833
    },
    "nrAvoided": 11562713,
    "nrFunctionCalls": 4816963,
    "nrLookups": 4316209,
    "nrOpUpdateValuesCopied": 5686407,
    "nrOpUpdates": 464060,
    "nrPrimOpCalls": 2966970,
    "nrThunks": 7796186,
    "sets": {
        "bytes": 196404672,
        "elements": 10837802,
        "number": 1437490
    },
    "sizes": {
        "Attr": 16,
        "Bindings": 16,
        "Env": 8,
        "Value": 24
    },
    "symbols": {
        "bytes": 340652,
        "number": 32026
    },
    "values": {
        "bytes": 207367440,
        "number": 8640310
    }
}
```

- Glob-filter source

```json
{
    "cpuTime": 0.3904629945755005,
    "envs": {
        "bytes": 13263440,
        "elements": 1005877,
        "number": 652053
    },
    "gc": {
        "heapSize": 402915328,
        "totalBytes": 146914896
    },
    "list": {
        "bytes": 3032168,
        "concats": 5899,
        "elements": 379021
    },
    "nrAvoided": 1666598,
    "nrFunctionCalls": 484399,
    "nrLookups": 112698,
    "nrOpUpdateValuesCopied": 3432135,
    "nrOpUpdates": 13426,
    "nrPrimOpCalls": 1041954,
    "nrThunks": 1205792,
    "sets": {
        "bytes": 64304800,
        "elements": 3978167,
        "number": 40883
    },
    "sizes": {
        "Attr": 16,
        "Bindings": 16,
        "Env": 8,
        "Value": 24
    },
    "symbols": {
        "bytes": 285306,
        "number": 28864
    },
    "values": {
        "bytes": 42963240,
        "number": 1790135
    }
}
```
2026-05-26 21:48:59 +12:00
Rémi NICOLEandGitHub 60dd3b28f0 knewave: use installFonts (#523796) 2026-05-26 09:41:44 +00:00
Fabian AffolterandGitHub 8c7a7542c1 python3Packages.aiolichess: 1.2.0 -> 1.3.0 (#524375) 2026-05-26 09:39:15 +00:00
Weijia WangandGitHub 5a1bed9680 python3Packages.eigenpy: 3.12.0 -> 3.13.0 (#523923) 2026-05-26 09:39:00 +00:00
Fabian AffolterandGitHub 98352fe2f0 python3Packages.pyyardian: modernize 2026-05-26 11:37:12 +02:00
Bruno BELANYIandGitHub 71b6c3bf34 upsies: 2026.05.14 -> 2026.05.24 (#524282) 2026-05-26 09:33:10 +00:00
Fabian Affolter 9c526e0077 python3Packages.iamdata: 0.1.202605251 -> 0.1.202605261
Diff: https://github.com/cloud-copilot/iam-data-python/compare/v0.1.202605251...v0.1.202605261

Changelog: https://github.com/cloud-copilot/iam-data-python/releases/tag/v0.1.202605261
2026-05-26 11:29:58 +02:00
Eric Rodrigues Pires 18ccf74b16 sandhole: 0.9.4 -> 0.9.5 2026-05-26 06:29:22 -03:00
nixpkgs-ci[bot]andGitHub 9f7fdd3a43 gemini-cli: 0.42.0 -> 0.43.0 (#524359) 2026-05-26 09:28:33 +00:00
nixpkgs-ci[bot]andGitHub 4ddabe8496 vivaldi: 8.0.4033.26 -> 8.0.4033.34 (#524344) 2026-05-26 09:28:29 +00:00
nixpkgs-ci[bot]andGitHub df5303e7c0 netgen-vlsi: 1.5.319 -> 1.5.320 (#524313) 2026-05-26 09:28:23 +00:00
nixpkgs-ci[bot]andGitHub 7b62391d9c tsukimi: 0.21.0 -> 26.5.3 (#524300) 2026-05-26 09:28:22 +00:00
nixpkgs-ci[bot]andGitHub 8fc5885235 gefyra: 2.4.3 -> 2.4.4 (#523493) 2026-05-26 09:27:51 +00:00
K900andGitHub 99737c6d9b Revert "scx.cscheds: move env variable into env for structuredAttrs" (#524373) 2026-05-26 09:24:34 +00:00
R. Ryantm e7d163b4e6 python3Packages.aiolichess: 1.2.0 -> 1.3.0 2026-05-26 09:23:57 +00:00
K900andGitHub 520c7a1e49 Revert "scx.cscheds: move env variable into env for structuredAttrs" 2026-05-26 12:19:21 +03:00
Kirill Radzikhovskyy 701440c69b android-cli: init at 1.0.15433482
Assisted-by: Antigravity <Gemini 3.5 Flash>
2026-05-26 19:15:23 +10:00
Weijia WangandGitHub f44f7788c8 a2ps: 4.15.7 -> 4.15.8 (#523867) 2026-05-26 09:13:58 +00:00
Weijia WangandGitHub c707058ed4 nvc: 1.20.1 -> 1.21.0 (#523380) 2026-05-26 09:13:14 +00:00
R. Ryantm e39dcee4ed python3Packages.pyyardian: 1.2.0 -> 1.3.3 2026-05-26 09:12:03 +00:00
Weijia WangandGitHub 6a5d17ec11 sarasa-gothic: 1.0.37 -> 1.0.39 (#523731) 2026-05-26 09:09:08 +00:00
Thiago Kenji OkadaandGitHub 12897ff37a libretro.mame2003-plus: 0-unstable-2026-05-15 -> 0-unstable-2026-05-23 (#524249) 2026-05-26 09:00:49 +00:00
zowoqandGitHub 0b62ee1217 terraform-providers.newrelic_newrelic: 3.87.3 -> 3.90.0 (#524365) 2026-05-26 08:58:45 +00:00
Rémi NICOLEandGitHub 0b336db6e5 gelly: 1.1.2 -> 1.3.0 (#522469) 2026-05-26 08:58:18 +00:00
Tomas RiveraandShadowRZ 0838a16c21 vimPlugins.vim-tmux: override license to mit and publicDomain
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:55:48 +02:00
Jacek Galowicz 22253f78ec owners: Add @tfc to nixos test driver modules folder 2026-05-26 10:52:50 +02:00
R. Ryantm 7a6f6b12b2 ouch-rar: 0.7.1 -> 0.8.0 2026-05-26 08:52:30 +00:00
Tomas RiveraandShadowRZ 2ff8b1a9b2 vimPlugins.clang_complete: override license to bsd3 and ncsa
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:58 +02:00
Tomas Rivera d08faf89be vimPlugins.psc-ide-vim: override license to mit and wtfpl 2026-05-26 10:43:58 +02:00
Tomas Rivera a71318b1de vimPlugins.neotest-foundry: override license to asl20 and mit 2026-05-26 10:43:57 +02:00
Tomas Rivera 2859715681 vimPlugins.vim-sile: override license to bsd0, cc0 and gpl2Plus 2026-05-26 10:43:57 +02:00
Tomas RiveraandShadowRZ 19dbf8f8b8 vimPlugins.vim-dirdiff: override license to bsd3
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:57 +02:00
Tomas RiveraandShadowRZ 587b8ec0f7 vimPlugins.vim-protobuf: override license to bsd3
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:57 +02:00
Tomas RiveraandShadowRZ 7fb4620688 vimPlugins.ncm2-utlisnips: override license to mit
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:57 +02:00
Tomas RiveraandShadowRZ 7004cffa32 vimPlugins.last256: override license to mit
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:57 +02:00
Tomas RiveraandShadowRZ 02bfaa65d2 vimPlugins.vim-watchdogs: override license to artistic1
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:57 +02:00
Tomas RiveraandShadowRZ f0cbe3c5d9 vimPlugins.vim-addon-async: override license to vim
Co-authored-by: ShadowRZ <shadowrz+nixpkgs@disroot.org>
2026-05-26 10:43:57 +02:00
Tomas Rivera 74668db9a0 vimPlugins.vim-sentence-chopper: override license to wtfpl 2026-05-26 10:43:57 +02:00
Tomas Rivera 01a50a394d vimPlugins.vim-CtrlXA: override license to wtfpl 2026-05-26 10:43:57 +02:00
Tomas Rivera adcd15eba6 vimPlugins.fastfold: override license to wtfpl 2026-05-26 10:43:57 +02:00
Tomas Rivera c3690cce4e vimPlugins.zeavim-vim: override license to publicDomain 2026-05-26 10:43:57 +02:00
Tomas Rivera 13b3305464 vimPlugins.zoomwintab-vim: override license to vim 2026-05-26 10:43:57 +02:00
Tomas Rivera b2577b6633 vimPlugins.whitespace-nvim: override license to mit 2026-05-26 10:43:57 +02:00