Changeset e8ddd8a in trunk
- Timestamp:
- 2024-12-12T19:16:38Z (4 months ago)
- Children:
- 4809397, ef55c29
- Parents:
- dc6ea19 (diff), 4de3508 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - git-author:
- meejah <meejah@…> (2024-12-12 19:16:38)
- git-committer:
- GitHub <noreply@…> (2024-12-12 19:16:38)
- Files:
-
- 1 added
- 8 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified .circleci/config.yml ¶
rdc6ea19 re8ddd8a 88 88 89 89 - "nixos": 90 name: "nixos-<<matrix.pythonVersion>>" 91 nixpkgs: "nixpkgs-unstable" 90 name: "<<matrix.nixpkgs>>-<<matrix.pythonVersion>>" 92 91 matrix: 93 92 parameters: 93 nixpkgs: 94 - "nixpkgs-24_11" 94 95 pythonVersion: 95 - "python39"96 96 - "python310" 97 97 - "python311" 98 - "python312" 98 99 99 100 # Eventually, test against PyPy 3.8 … … 556 557 - "run": 557 558 name: "Unit Test" 559 environment: 560 # Once dependencies are built, we can allow some more concurrency for our own 561 # test suite. 562 UNITTEST_CORES: 8 558 563 command: | 559 source .circleci/lib.sh 560 561 # Translate the nixpkgs selection into a flake reference we 562 # can use to override the default nixpkgs input. 563 NIXPKGS=$(nixpkgs_flake_reference <<parameters.nixpkgs>>) 564 565 cache_if_able nix run \ 566 --override-input nixpkgs "$NIXPKGS" \ 564 nix run \ 567 565 .#<<parameters.pythonVersion>>-unittest -- \ 568 566 --jobs $UNITTEST_CORES \ … … 694 692 # Run in a highly Nix-capable environment. 695 693 - <<: *DOCKERHUB_AUTH 696 image: "nixos/nix:2.16.1" 697 environment: 698 # currently, all NixOS builds are broken; ignore them 699 ALLOWED_FAILURE: "yes" 700 701 # CACHIX_AUTH_TOKEN is manually set in the CircleCI web UI and allows us 702 # to push to CACHIX_NAME. CACHIX_NAME tells cachix which cache to push 703 # to. 704 CACHIX_NAME: "tahoe-lafs-opensource" 694 image: "nixos/nix:2.25.3" 695 environment: 705 696 # Let us use features marked "experimental". For example, most/all of 706 697 # the `nix <subcommand>` forms. … … 725 716 726 717 steps: 727 - "run":728 # Get cachix for Nix-friendly caching.729 name: "Install Basic Dependencies"730 command: |731 # Get some build environment dependencies and let them float on a732 # certain release branch. These aren't involved in the actual733 # package build (only in CI environment setup) so the fact that734 # they float shouldn't hurt reproducibility.735 NIXPKGS="nixpkgs/nixos-23.05"736 nix profile install $NIXPKGS#cachix $NIXPKGS#bash $NIXPKGS#jp737 738 # Activate our cachix cache for "binary substitution". This sets739 # up configuration tht lets Nix download something from the cache740 # instead of building it locally, if possible.741 cachix use "${CACHIX_NAME}"742 743 718 - "checkout" 744 719 745 720 - "run": 746 721 name: "Build Package" 747 command: | 748 source .circleci/lib.sh 749 NIXPKGS=$(nixpkgs_flake_reference <<parameters.nixpkgs>>) 750 cache_if_able nix build \ 722 environment: 723 # CircleCI build environment looks like it has a zillion and a half cores. 724 # Don't let Nix autodetect this high core count because it blows up memory 725 # usage and fails the test run. Pick a number of cores that suits the build 726 # environment we're paying for (the free one!). 727 DEPENDENCY_CORES: 3 728 command: | 729 nix build \ 751 730 --verbose \ 752 731 --print-build-logs \ 753 732 --cores "$DEPENDENCY_CORES" \ 754 --override-input nixpkgs "$NIXPKGS" \755 733 .#<<parameters.pythonVersion>>-tahoe-lafs 756 734 -
TabularUnified flake.lock ¶
rdc6ea19 re8ddd8a 4 4 "flake": false, 5 5 "locked": { 6 "lastModified": 1 673956053,7 "narHash": "sha256- 4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",6 "lastModified": 1733328505, 7 "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", 8 8 "owner": "edolstra", 9 9 "repo": "flake-compat", 10 "rev": " 35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",10 "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", 11 11 "type": "github" 12 12 }, … … 22 22 }, 23 23 "locked": { 24 "lastModified": 1 687709756,25 "narHash": "sha256- Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",24 "lastModified": 1731533236, 25 "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 26 26 "owner": "numtide", 27 27 "repo": "flake-utils", 28 "rev": " dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",28 "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 29 29 "type": "github" 30 30 }, … … 35 35 } 36 36 }, 37 "nixpkgs-2 2_11": {37 "nixpkgs-24_11": { 38 38 "locked": { 39 "lastModified": 1 688392541,40 "narHash": "sha256- lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",39 "lastModified": 1733261153, 40 "narHash": "sha256-eq51hyiaIwtWo19fPEeE0Zr2s83DYMKJoukNLgGGpek=", 41 41 "owner": "NixOS", 42 42 "repo": "nixpkgs", 43 "rev": " ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",43 "rev": "b681065d0919f7eb5309a93cea2cfa84dec9aa88", 44 44 "type": "github" 45 45 }, 46 46 "original": { 47 47 "owner": "NixOS", 48 "ref": "nixos-22.11", 49 "repo": "nixpkgs", 50 "type": "github" 51 } 52 }, 53 "nixpkgs-23_05": { 54 "locked": { 55 "lastModified": 1689885880, 56 "narHash": "sha256-2ikAcvHKkKh8J/eUrwMA+wy1poscC+oL1RkN1V3RmT8=", 57 "owner": "NixOS", 58 "repo": "nixpkgs", 59 "rev": "fa793b06f56896b7d1909e4b69977c7bf842b2f0", 60 "type": "github" 61 }, 62 "original": { 63 "owner": "NixOS", 64 "ref": "nixos-23.05", 65 "repo": "nixpkgs", 66 "type": "github" 67 } 68 }, 69 "nixpkgs-unstable": { 70 "locked": { 71 "lastModified": 1689791806, 72 "narHash": "sha256-QpXjfiyBFwa7MV/J6nM5FoBreks9O7j9cAZxV22MR8A=", 73 "owner": "NixOS", 74 "repo": "nixpkgs", 75 "rev": "439ba0789ff84dddea64eb2d47a4a0d4887dbb1f", 76 "type": "github" 77 }, 78 "original": { 79 "owner": "NixOS", 80 "ref": "pull/244135/head", 48 "ref": "nixos-24.11", 81 49 "repo": "nixpkgs", 82 50 "type": "github" … … 88 56 "flake-utils": "flake-utils", 89 57 "nixpkgs": [ 90 "nixpkgs- unstable"58 "nixpkgs-24_11" 91 59 ], 92 "nixpkgs-22_11": "nixpkgs-22_11", 93 "nixpkgs-23_05": "nixpkgs-23_05", 94 "nixpkgs-unstable": "nixpkgs-unstable" 60 "nixpkgs-24_11": "nixpkgs-24_11" 95 61 } 96 62 }, -
TabularUnified flake.nix ¶
rdc6ea19 re8ddd8a 1 1 { 2 2 description = "Tahoe-LAFS, free and open decentralized data store"; 3 4 nixConfig = {5 # Supply configuration for the build cache updated by our CI system. This6 # should allow most users to avoid having to build a large number of7 # packages (otherwise necessary due to our Python package overrides).8 substituters = ["https://tahoe-lafs-opensource.cachix.org"];9 trusted-public-keys = ["tahoe-lafs-opensource.cachix.org-1:eIKCHOPJYceJ2gb74l6e0mayuSdXqiavxYeAio0LFGo="];10 };11 3 12 4 inputs = { … … 21 13 # releases of NixOS at a time is worthwhile and then pins like these will 22 14 # help us test each of those releases. 23 "nixpkgs-2 2_11" = {24 url = github:NixOS/nixpkgs?ref=nixos-2 2.11;15 "nixpkgs-24_11" = { 16 url = github:NixOS/nixpkgs?ref=nixos-24.11; 25 17 }; 26 "nixpkgs-23_05" = { 27 url = github:NixOS/nixpkgs?ref=nixos-23.05; 28 }; 29 30 # We depend on a very new python-cryptography which is not yet available 31 # from any release branch of nixpkgs. However, it is contained in a PR 32 # currently up for review. Point our nixpkgs at that for now. 33 "nixpkgs-unstable" = { 34 url = github:NixOS/nixpkgs?ref=pull/244135/head; 35 }; 36 37 # Point the default nixpkgs at one of those. This avoids having getting a 38 # _third_ package set involved and gives a way to provide what should be a 39 # working experience by default (that is, if nixpkgs doesn't get 40 # overridden). 41 nixpkgs.follows = "nixpkgs-unstable"; 18 19 # Point the default nixpkgs at one of those. 20 nixpkgs.follows = "nixpkgs-24_11"; 42 21 43 22 # Also get flake-utils for simplified multi-system definitions. … … 154 133 tahoe-lafs.passthru.extras.i2p ++ 155 134 tahoe-lafs.passthru.extras.tor ++ 156 tahoe-lafs.passthru.extras.unittest 135 tahoe-lafs.passthru.extras.unittest ++ 136 [ hatchling hatch-vcs ] 157 137 )).overrideAttrs (old: { 158 138 # See the similar override in makeRuntimeEnv'. … … 220 200 let 221 201 python = "${makeTestEnv pyVersion}/bin/python"; 202 hatchling = "${makeTestEnv pyVersion}/bin/hatchling"; 222 203 in 223 204 writeScript "unit-tests" 224 205 '' 225 ${ python} setup.py update_version206 ${hatchling} build --hooks-only # Write _version.py 226 207 export TAHOE_LAFS_HYPOTHESIS_PROFILE=ci 227 208 export PYTHONPATH=$PWD/src -
TabularUnified nix/python-overrides.nix ¶
rdc6ea19 re8ddd8a 43 43 }; 44 44 45 # Some dependencies aren't packaged in nixpkgs so supply our own packages.46 pycddl = self.callPackage ./pycddl.nix { };47 txi2p = self.callPackage ./txi2p.nix { };48 49 # Some packages are of somewhat too-old versions - update them.50 klein = self.callPackage ./klein.nix {51 # Avoid infinite recursion.52 inherit (super) klein;53 };54 txtorcon = self.callPackage ./txtorcon.nix {55 inherit (super) txtorcon;56 };57 58 # With our customized package set a Twisted unit test fails. Patch the59 # Twisted test suite to skip that test.60 # Filed upstream at https://github.com/twisted/twisted/issues/1187761 twisted = super.twisted.overrideAttrs (old: {62 patches = (old.patches or []) ++ [ ./twisted.patch ];63 });64 65 # Update the version of pyopenssl - and since we're doing that anyway, we66 # don't need the docs. Unfortunately this triggers a lot of rebuilding of67 # dependent packages.68 pyopenssl = dontBuildDocs (self.callPackage ./pyopenssl.nix {69 inherit (super) pyopenssl;70 });71 72 # The cryptography that we get from nixpkgs to satisfy the pyopenssl upgrade73 # that we did breaks service-identity ... so get a newer version that works.74 service-identity = self.callPackage ./service-identity.nix { };75 76 45 # collections-extended is currently broken for Python 3.11 in nixpkgs but 77 46 # we know where a working version lives. 78 47 collections-extended = self.callPackage ./collections-extended.nix { 48 # Avoid infinite recursion. 79 49 inherit (super) collections-extended; 80 50 }; -
TabularUnified nix/tahoe-lafs.nix ¶
rdc6ea19 re8ddd8a 10 10 buildPythonPackage rec { 11 11 inherit pname version; 12 pyproject = true; 12 13 src = tahoe-lafs-src; 13 14 propagatedBuildInputs = with pythonPackages; [ … … 23 24 foolscap 24 25 future 26 hatchling 27 hatch-vcs 25 28 klein 26 29 magic-wormhole … … 51 54 ]; 52 55 i2p = [ 53 txi2p 56 txi2p-tahoe 54 57 ]; 55 58 unittest = [
Note: See TracChangeset
for help on using the changeset viewer.