I fixed many hidden bugs and made some small improvements. The main
reason this was separated from #336137 is to fix the sorting issue.
Before this commit, sorting for Vim plugins was broken and worked by
what was fetched first. This is because the sorting was done by empty
strings (the default value in CSV is not None but an empty string). This
PR fixes it and also moves sorting from the user to the library (from
`vim/plugins/update.py` to `pluginupdate.py`) to prevent such weird
issues and duplication of code.
Use `Process.communicate()` instead of `Process.wait()` to ensure the
`stdin` and `stdout` OS pipe buffers don't get full and cause a deadlock
waiting for the buffers to get emptied.
In preparation for the deprecation of `stdenv.isX`.
These shorthands are not conducive to cross-compilation because they
hide the platforms.
Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way
One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059
There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.
```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
* luarocks-packages-updater: convert into pyproject package
* pluginupdate: move to its own folder
so we can copy just the folder when using this as a module
* luarocks-packages-updater: adress review
I made this, and I almost completely deleted it because I was fully
on board with lz-n again. However, I have been using it and lz-n
simultaneosly and trying them out.
I wish to publish lze after all. I like it a lot.
It works completely differently from lz-n and has a different handler
api, but has a similar plugin spec.
Update pkgs/development/lua-modules/overrides.nix
Co-authored-by: Gaétan Lepage <33058747+GaetanLepage@users.noreply.github.com>
Everything gets moved into the `ci/` top-level directory.
We keep behind `maintainers/scripts/check-by-name.sh` and `pkgs/test/check-by-name/pinned-version.txt` as they are going to cause CI errors and confusion until we get all the way through the various channels.
They'll be removed in about a week or so.
With cabal-install >= 3.12, we need to adjust our cabal-install overlay
once again.
- Due to the new dependency semaphore-compat, which appears to require
unix >= 2.8 it is very difficult to get to work for GHC < 9.6 (but
probably possible). Technically, using pkgs.cabal-install should
always be fine, so there's no strict need for cabal-install to work
with every GHC. Let's drop support for GHC < 9.6 for now.
- Make sure that cabal-install-solver also uses the latest version
always.
- Due to Cabal 3.12, we need to deviate from Stackage for
hackage-security. cabal-install does support the standard version of
resolv now, though.
`nix develop .#vimPluginsUpdater` now lets you enter a shell where you
can run `pkgs/applications/editors/vim/plugins/update.py` and
iteratively develop !
- removed `warn` warning from python by using `warning` instead
- `plugin2nix` was calling the same bit of code over and over thus
slowing down the generator by a lot
The context manager would previously just terminate early on exception.
As a result, the worktree and branch would not get pruned when update script failed.
Let’s wrap the cleanup code in `finally` block as suggested by Python docs:
https://docs.python.org/3/library/contextlib.html#contextlib.contextmanager
nixUnstable is a deprecated alias, so the script didn't work anymore.
Also, I see no need to avoid the default nix here (maybe years ago).
Tested on mirror-tarballs.service at pluto.nixos.org (atop 24.05).
When installing a lua package that depends on luarocks, luarocks was not
capable of recognizing the luarocks module: https://github.com/NixOS/nixpkgs/issues/316009 .
As explained here https://github.com/luarocks/luarocks/issues/1659,
luarocks needs a manifest to recognize the package.
I first attempted to generate a manifest with `luarocks-admin
make-manifest` on our current manual luarocks derivation but this ended
up being too hackish as the `make-manifest` requires a .rockspec or
.rock to work, which we had not.
It seemed simpled to just rename the current manual luarocks derivation to luarocks_bootstrap
in order to break cyclic dependencies in buildLuarocksPackage and add a
generated luarocks derivation. Previously it was impossible to test
luarocks because of the cyclic dependency but we will now be able to
test the generated derivation.
- kio-extras-kf5 moved to misc because of release schedule weirdness
- calindori ported to KF6, reenabled
- some build fixes all over
- add 7zip to a bunch of games for SVG compression
This is a breaking change that converts the 'src' csv column (a git URI) to a 'rockspec'
fullpath uri.
before this, luarocks-nix would clone the repo and look for rockspecs
with a brittle algorithm. This removes the ambiguity on which rockspec
to package while allowing to remove a bunch of brittle code from
luarocks-nix.
the intention being to catch commits which declare themselves as
cherry-picks, but either:
- don't refer to a commit in the master or staging branches
- are significantly altered from their original commit
determining the latter is not an exact science, but the heuristic of
looking for differences in only the added or removed lines seems to
work quite well. still, this should be considered an assistant
for reviewers rather than a hard failure. unfortunately github
workflows don't have a way of raising a gentle warning instead of a
failure.
the formatting of the output also leaves something to be desired due
to the limitations of github actions' "group" commands.
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
This script attempts to document the exact procedure used to upload
bootstrap binaries used previously. I modeled it after most recent
https://github.com/NixOS/nixpkgs/pull/282517 upload.
There is one deviation from it to make it easier to handle mass updates
for https://github.com/NixOS/nixpkgs/issues/253713:
The binaries are expected to be stored in `stdenv/$target` (and not
something like `stdenv-linux/i686`.
The script handles both native and cross- linux targets. `darwin` will
need a bit more work to fin into this scheme, but it should be easy.
Example run to generate `i686-linux` update:
$ maintainers/scripts/bootstrap-files/refresh-tarballs.bash --commit --targets=i686-unknown-linux-gnu
Conflicts:
pkgs/development/python-modules/dbt-core/default.nix
pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
Still broken by pydantic 2 bump, though.
This commit has been generated by maintainers/scripts/haskell/update-stackage.sh
and maintainers/scripts/haskell/regenerate-hackage-packages.sh.
Add capability to update to an out of date solver in update-stackage.sh.