these 3 derivations will be built: /nix/store/nngh7bnazwil7hzxwhzcanmn8d00qpwi-treefmt.toml.drv /nix/store/pxcancfcm48jg6jwxyakkygn6mjsi4ac-treefmt.drv /nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv these 50 paths will be fetched (146.0 MiB download, 491.8 MiB unpacked): /nix/store/1pddyb3y5gkhbwqra3r4fg5xmjg0xxi7-ShellCheck-0.11.0 /nix/store/8sch9yvisjhd5db5rc2sh4lf6m8yi18i-deadnix-1.3.2 /nix/store/xmj3w501kcip330rcg3ikc3403x51sz5-deno-2.9.4 /nix/store/hiw6ii978dc8s153v60fzy6myzqxymm7-git-2.55.0 /nix/store/181ykp1mvmh07rq1sqfss8n7s1sc3mlm-git-2.55.0-doc /nix/store/rgpwjl43ahp56alhj9ryvx5wm6pcw1qc-git-lfs-3.7.1 /nix/store/fq39rhap6r4bl0wsll3hfqjrp1nsilda-jemalloc-5.3.1 /nix/store/kq133ab1smcb0spc44h4bng5gxj7j63d-json2x-0.1.0 /nix/store/zk2apyrxbv0mfiljcs1ln13j14wbkfqp-lcms2-2.19.1 /nix/store/cfw6bhndjg2gklsnzg88dlslqayn44aj-nixfmt-1.4.0 /nix/store/5q1zyjda470z9n7vh0z29ni7npfyf0nk-perl5.42.0-Authen-SASL-2.1900 /nix/store/q8bpbg5gsl4xa43fm1aj84w2s4cn8n1s-perl5.42.0-CGI-4.59 /nix/store/vrar3hqcg05h2rscygfl212gjfmlxzx4-perl5.42.0-CGI-Fast-2.16 /nix/store/7apnw95ihhx7nikyv3imil6m9vv74v25-perl5.42.0-Clone-0.46 /nix/store/vb8w28z7qq46s2m7ssfy48v7lppsnb7q-perl5.42.0-Compress-Raw-Bzip2-2.218 /nix/store/38f4gvb2qhfzjcvh03xv0gd0prg0hdgc-perl5.42.0-Compress-Raw-Zlib-2.222 /nix/store/z6xxkmfjd565xknr5rj85zxr7mdkccdc-perl5.42.0-Crypt-URandom-0.55 /nix/store/shl3n0gxanarkr08fr91mgbja7a9pf4g-perl5.42.0-Digest-HMAC-1.05 /nix/store/mghwk25m3sj1mgdcd9ds6590rmjw29g8-perl5.42.0-Encode-Locale-1.05 /nix/store/pg3bwbph00d37zqb2990afikjdfh7fnq-perl5.42.0-FCGI-0.82 /nix/store/57y7fzi6g9fw99arfzgsk296s69y9p9w-perl5.42.0-FCGI-ProcManager-0.28 /nix/store/ranqlqjynbwfdaj7m35i1akf3lhy06b7-perl5.42.0-File-Listing-6.16 /nix/store/x0aw0lvjpp4qa8jx212dbahqspfahjp1-perl5.42.0-HTML-Parser-3.85 /nix/store/hbxkmjahrr5vi7bw4z7v0npvgmbwxh0z-perl5.42.0-HTML-TagCloud-0.38 /nix/store/lww4cknlp6lqmbqqhyyqwr4gvm3i97ds-perl5.42.0-HTML-Tagset-3.20 /nix/store/a19l57v4bq4fx0hwlf9q94h5gdzgp1pi-perl5.42.0-HTTP-CookieJar-0.014 /nix/store/k0qd3h74mhil70cc9kk590628kszww5w-perl5.42.0-HTTP-Cookies-6.10 /nix/store/hhm6liz6f5k5prkzm6z7g1fk3v2jagzf-perl5.42.0-HTTP-Date-6.06 /nix/store/lw3d1gdx514h1x77kkavh9wmmycvqzlv-perl5.42.0-HTTP-Message-7.02 /nix/store/nlnd789acxsc51zlw78sscp2r9g8v4xg-perl5.42.0-HTTP-Negotiate-6.01 /nix/store/9q27p6rygig8yc3r6qbknkyn9ny5d6l0-perl5.42.0-IO-Compress-2.221 /nix/store/v6y3z6c9h9y24g9ykfm696al5n4sf28p-perl5.42.0-IO-HTML-1.004 /nix/store/3spns24s83iaia8l8xnnwzc3vdxr3isc-perl5.42.0-IO-Socket-SSL-2.083 /nix/store/g9jbfvj5szbyx7gwrl2psykf5fskz3k4-perl5.42.0-LWP-MediaTypes-6.04 /nix/store/d0dy2xzk9hk1q6q779y833n3s2cglw0j-perl5.42.0-Mozilla-CA-20230821 /nix/store/r121psr85mbmx2159bc8b2qp4svwmcjx-perl5.42.0-Net-HTTP-6.23 /nix/store/2fimcwrkqjw61k78h97fh2arwlfk0vga-perl5.42.0-Net-SMTP-SSL-1.04 /nix/store/wiykpxq0dcb5hha7z80fcx9ysz6vyhaa-perl5.42.0-Net-SSLeay-1.92 /nix/store/bcqyaq2ryj7vbr245vbrqw9la8yqmjbd-perl5.42.0-TermReadKey-2.38 /nix/store/damvq5xm6rla8lmvjabpn2414mjm8l5q-perl5.42.0-TimeDate-2.33 /nix/store/8ny1ascq85xgsyipcs9jhnlp4rpilmq8-perl5.42.0-Try-Tiny-0.31 /nix/store/7m9h3wy8lr27awnhxza2l9r732bydvjz-perl5.42.0-URI-5.21 /nix/store/4gb9m64kq9gamb5ywj7vvw8snsi5gsrr-perl5.42.0-WWW-RobotRules-6.02 /nix/store/aa34v1rfkc04r4zs8q97k64qdc3kir2j-perl5.42.0-libnet-3.15 /nix/store/5kwmgkmwrnwgvm7ihsvv3f0dxnkr4b64-perl5.42.0-libwww-perl-6.83 /nix/store/djjxxd9xq8dzadiv0m8l41fz871p2nfc-ruff-0.16.2 /nix/store/gi827lccv5k11jinbnkcd02v5hbpsq7a-shellcheck-0.11.0-bin /nix/store/dp2j20xgmak34lpyq6mckx92w4hq9bg6-shfmt-3.13.1 /nix/store/hndv59mdi7w04zgba1yx8xjjdmzfwf1j-treefmt-2.5.0 /nix/store/49hi6i6vbz01gi6y311y3r82ng5gy2mh-yamlfmt-0.21.0 building '/nix/store/nngh7bnazwil7hzxwhzcanmn8d00qpwi-treefmt.toml.drv' on 'ssh-ng://customer@mac02' building '/nix/store/nngh7bnazwil7hzxwhzcanmn8d00qpwi-treefmt.toml.drv' treefmt.toml> structuredAttrs is enabled building '/nix/store/pxcancfcm48jg6jwxyakkygn6mjsi4ac-treefmt.drv' on 'ssh-ng://customer@mac02' building '/nix/store/pxcancfcm48jg6jwxyakkygn6mjsi4ac-treefmt.drv' building '/nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv' on 'ssh-ng://customer@mac02' building '/nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv' treefmt-check> treefmt v2.5.0ERRO formatter | ruff-check: failed to apply with options '[check --fix]': exit status 1 treefmt-check> treefmt-check> PIE810 Call `startswith` once with a `tuple` treefmt-check> --> checks/linkcheck/main.py:49:12 treefmt-check> | treefmt-check> 47 | continue treefmt-check> 48 | treefmt-check> 49 | if title.startswith("User:") or title.startswith("Talk:"): treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> 50 | root.remove(page) treefmt-check> 51 | continue treefmt-check> | treefmt-check> help: Merge into a single `startswith` call treefmt-check> treefmt-check> EXE005 Shebang should be at the beginning of the file treefmt-check> --> modules/nixos-wiki/update-extensions.py:2:1 treefmt-check> | treefmt-check> 1 | #!/usr/bin/env nix-shell treefmt-check> 2 | #!nix-shell -i python3 -p nixfmt-rfc-style python3 python3Packages.requests python3Packages.beautifulsoup4 gh treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> 3 | import json treefmt-check> 4 | import os treefmt-check> | treefmt-check> treefmt-check> TRY002 Create your own exception treefmt-check> --> modules/nixos-wiki/update-extensions.py:34:15 treefmt-check> | treefmt-check> 32 | content = soup.find(id="mw-content-text") treefmt-check> 33 | if content and "does not exist" in content.get_text(): treefmt-check> 34 | raise Exception( treefmt-check> | _______________^ treefmt-check> 35 | | f"Extension '{extension_name}' does not exist for MediaWiki version REL{mediawiki_version}" treefmt-check> 36 | | ) treefmt-check> | |_________^ treefmt-check> 37 | treefmt-check> 38 | # Look for download links - the class is now a list ['external', 'free'] treefmt-check> | treefmt-check> treefmt-check> TRY002 Create your own exception treefmt-check> --> modules/nixos-wiki/update-extensions.py:47:11 treefmt-check> | treefmt-check> 45 | return urllib.parse.urlparse(href) treefmt-check> 46 | treefmt-check> 47 | raise Exception( treefmt-check> | ___________^ treefmt-check> 48 | | f"Could not find download URL for extension '{extension_name}' version REL{mediawiki_version}" treefmt-check> 49 | | ) treefmt-check> | |_____^ treefmt-check> treefmt-check> FURB122 Use of `f.write` in a for loop treefmt-check> --> modules/nixos-wiki/update-extensions.py:73:13 treefmt-check> | treefmt-check> 71 | r.raise_for_status() treefmt-check> 72 | with open(local_filename, "wb") as f: treefmt-check> 73 | / for chunk in r.iter_content(chunk_size=8192): treefmt-check> 74 | | # If you have chunk encoded response uncomment if treefmt-check> 75 | | # and set chunk_size parameter to None. treefmt-check> 76 | | # if chunk: treefmt-check> 77 | | f.write(chunk) treefmt-check> | |______________________________^ treefmt-check> 78 | return local_filename treefmt-check> | treefmt-check> help: Replace with `f.writelines` treefmt-check> treefmt-check> TRY002 Create your own exception treefmt-check> --> modules/nixos-wiki/update-extensions.py:116:19 treefmt-check> | treefmt-check> 114 | data = response.json() treefmt-check> 115 | if not data: treefmt-check> 116 | raise Exception(f"No tags found for {repo}") treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> 117 | latest_tag = data[0]["name"] treefmt-check> 118 | return f"https://github.com/{repo}/archive/refs/tags/{latest_tag}.zip" treefmt-check> | treefmt-check> treefmt-check> TRY002 Create your own exception treefmt-check> --> modules/nixos-wiki/update-extensions.py:120:15 treefmt-check> | treefmt-check> 118 | return f"https://github.com/{repo}/archive/refs/tags/{latest_tag}.zip" treefmt-check> 119 | else: treefmt-check> 120 | raise Exception(f"Unknown extension type: {extension_type}") treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> treefmt-check> TRY002 Create your own exception treefmt-check> --> modules/nixos-wiki/update-extensions.py:144:11 treefmt-check> | treefmt-check> 142 | else: treefmt-check> 143 | return Extension(name=extension_name, hash=hash, url=download_url) treefmt-check> 144 | raise Exception("Failed to fetch extension, see above") treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> treefmt-check> TRY002 Create your own exception treefmt-check> --> modules/nixos-wiki/update-extensions.py:173:11 treefmt-check> | treefmt-check> 171 | else: treefmt-check> 172 | return Extension(name=extension_name, hash=hash, url=mirror_url) treefmt-check> 173 | raise Exception("Failed to fetch extension, see above") treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> treefmt-check> EXE001 Shebang is present but file is not executable treefmt-check> --> pkgs/wiki-user-search/wiki-user-search.py:1:1 treefmt-check> | treefmt-check> 1 | #!/usr/bin/env python3 treefmt-check> | ^^^^^^^^^^^^^^^^^^^^^^ treefmt-check> 2 | """ treefmt-check> 3 | MediaWiki User Search Tool treefmt-check> | treefmt-check> treefmt-check> Found 27 errors (17 fixed, 10 remaining). treefmt-check> No fixes available (2 hidden fixes can be enabled with the `--unsafe-fixes` option). treefmt-check> treefmt-check> traversed 71 files treefmt-check> emitted 55 files for processing treefmt-check> formatted 52 files (3 changed) in 7.534s treefmt-check> Error: failed to finalise formatting: formatting failures detected error: build of '/nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv' on 'ssh-ng://customer@mac02' failed: Cannot build '/nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/nbld523pxf7ndyraj80qxip289ln7377-treefmt-check Last 25 log lines: > > TRY002 Create your own exception > --> modules/nixos-wiki/update-extensions.py:173:11 > | > 171 | else: > 172 | return Extension(name=extension_name, hash=hash, url=mirror_url) > 173 | raise Exception("Failed to fetch extension, see above") > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > EXE001 Shebang is present but file is not executable > --> pkgs/wiki-user-search/wiki-user-search.py:1:1 > | > 1 | #!/usr/bin/env python3 > | ^^^^^^^^^^^^^^^^^^^^^^ > 2 | """ > 3 | MediaWiki User Search Tool > | > > Found 27 errors (17 fixed, 10 remaining). > No fixes available (2 hidden fixes can be enabled with the `--unsafe-fixes` option). > > traversed 71 files > emitted 55 files for processing > formatted 52 files (3 changed) in 7.534s > Error: failed to finalise formatting: formatting failures detected For full logs, run: nix log /nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv error: Cannot build '/nix/store/siji28kdxw7ijk5na0ia5n0a621nw7md-treefmt-check.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/nbld523pxf7ndyraj80qxip289ln7377-treefmt-check