diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/version-management')
290 files changed, 44533 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch b/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch new file mode 100644 index 000000000000..2b39322ca22f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch @@ -0,0 +1,11 @@ +--- tla-1.3.5/src/build-tools/auto-conf-lib/gnu-patch-test 2006-07-20 08:34:28.000000000 +0200 ++++ tla-1.3.5/src/build-tools/auto-conf-lib/gnu-patch-test 2008-02-17 13:00:07.000000000 +0100 +@@ -27,7 +27,7 @@ else + fi + + CMP='cmp' # we require a working 'cmp' utility +-TMPDIR="/tmp/,patch-test.$$" ++TMPDIR="${TMPDIR:-/tmp}/,patch-test.$$" + + ORIG_A="$TMPDIR/to-patch_a" + ORIG_PRISTINE_A="$TMPDIR/to-patch_a.the-original" diff --git a/nixpkgs/pkgs/applications/version-management/arch/default.nix b/nixpkgs/pkgs/applications/version-management/arch/default.nix new file mode 100644 index 000000000000..146469bbbb3e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/arch/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, which, diffutils, gnupatch, gnutar }: + +stdenv.mkDerivation rec { + pname = "tla"; + version = "1.3.5"; + + src = fetchurl { + url = "https://ftp.gnu.org/old-gnu/gnu-arch/tla-${version}.tar.gz"; + sha256 = "01mfzj1i6p4s8191cgd5850hds1zls88hkf9rb6qx1vqjv585aj0"; + }; + + patches = [ ./configure-tmpdir.patch ]; + + buildInputs = [ which ]; + + propagatedBuildInputs = [ diffutils gnupatch gnutar ]; + + # Instead of GNU Autoconf, tla uses Tom Lord's now + # defunct `package-framework'. + buildPhase = '' + mkdir +build && cd +build && \ + ../src/configure --prefix="$out" && \ + make install + ''; + + meta = { + description = "GNU Arch (aka. `tla'), a distributed revision control system"; + mainProgram = "tla"; + homepage = "https://www.gnu.org/software/gnu-arch/"; + license = "GPL"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bcompare/default.nix b/nixpkgs/pkgs/applications/version-management/bcompare/default.nix new file mode 100644 index 000000000000..33b4cb0f90b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bcompare/default.nix @@ -0,0 +1,98 @@ +{ lib, autoPatchelfHook, bzip2, cairo, fetchurl, gdk-pixbuf, glibc, pango, gtk2, kcoreaddons, ki18n, kio, kservice +, stdenv, runtimeShell, unzip +}: + +let + pname = "bcompare"; + version = "4.4.6.27483"; + + throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; + + srcs = { + x86_64-linux = fetchurl { + url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb"; + sha256 = "sha256-1+f/AfyJ8Z80WR4cs1JDjTquTR1mGAUOd27vniSeA0k="; + }; + + x86_64-darwin = fetchurl { + url = "https://www.scootersoftware.com/BCompareOSX-${version}.zip"; + sha256 = "sha256-hUzJfUgfCuvB6ADHbsgmEXXgntm01hPnfSjwl7jI70c="; + }; + + aarch64-darwin = srcs.x86_64-darwin; + }; + + src = srcs.${stdenv.hostPlatform.system} or throwSystem; + + linux = stdenv.mkDerivation { + inherit pname version src meta; + unpackPhase = '' + ar x $src + tar xfz data.tar.gz + ''; + + installPhase = '' + mkdir -p $out/{bin,lib,share} + + cp -R usr/{bin,lib,share} $out/ + + # Remove library that refuses to be autoPatchelf'ed + rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so + + substituteInPlace $out/bin/${pname} \ + --replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \ + --replace "ldd" "${glibc.bin}/bin/ldd" \ + --replace "/bin/bash" "${runtimeShell}" + + # Create symlink bzip2 library + ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0 + ''; + + nativeBuildInputs = [ autoPatchelfHook ]; + + buildInputs = [ + stdenv.cc.cc.lib + gtk2 + pango + cairo + kio + kservice + ki18n + kcoreaddons + gdk-pixbuf + bzip2 + ]; + + dontBuild = true; + dontConfigure = true; + dontWrapQtApps = true; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + nativeBuildInputs = [ unzip ]; + + installPhase = '' + mkdir -p $out/Applications/BCompare.app + cp -R . $out/Applications/BCompare.app + ''; + }; + + meta = with lib; { + description = "GUI application that allows to quickly and easily compare files and folders"; + longDescription = '' + Beyond Compare is focused. Beyond Compare allows you to quickly and easily compare your files and folders. + By using simple, powerful commands you can focus on the differences you're interested in and ignore those you're not. + You can then merge the changes, synchronize your files, and generate reports for your records. + ''; + homepage = "https://www.scootersoftware.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + maintainers = with maintainers; [ ktor arkivm ]; + platforms = builtins.attrNames srcs; + mainProgram = "bcompare"; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/version-management/bfg-repo-cleaner/default.nix b/nixpkgs/pkgs/applications/version-management/bfg-repo-cleaner/default.nix new file mode 100644 index 000000000000..a759c1e86005 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bfg-repo-cleaner/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, jre, makeWrapper }: + +stdenv.mkDerivation rec { + pname = "bfg-repo-cleaner"; + version = "1.13.0"; + + jarName = "bfg-${version}.jar"; + + src = fetchurl { + url = "mirror://maven/com/madgag/bfg/${version}/${jarName}"; + sha256 = "1kn84rsvms1v5l1j2xgrk7dc7mnsmxkc6sqd94mnim22vnwvl8mz"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ jre ]; + + dontUnpack = true; + + installPhase = '' + mkdir -p $out/share/java + mkdir -p $out/bin + cp $src $out/share/java/$jarName + makeWrapper "${jre}/bin/java" $out/bin/bfg --add-flags "-cp $out/share/java/$jarName com.madgag.git.bfg.cli.Main" + ''; + + meta = with lib; { + homepage = "https://rtyley.github.io/bfg-repo-cleaner/"; + # Descriptions taken with minor modification from the homepage of bfg-repo-cleaner + description = "Removes large or troublesome blobs in a git repository like git-filter-branch does, but faster"; + longDescription = '' + The BFG is a simpler, faster alternative to git-filter-branch for + cleansing bad data out of your Git repository history, in particular removing + crazy big files and removing passwords, credentials, and other private data. + + The git-filter-branch command is enormously powerful and can do things + that the BFG can't - but the BFG is much better for the tasks above, because + it's faster (10-720x), simpler (dedicated to just removing things), and + beautiful (can use Scala instead of bash to script customizations). + ''; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; + license = licenses.gpl3; + maintainers = [ maintainers.changlinli ]; + mainProgram = "bfg"; + platforms = platforms.unix; + downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}"; + }; + +} diff --git a/nixpkgs/pkgs/applications/version-management/bit/default.nix b/nixpkgs/pkgs/applications/version-management/bit/default.nix new file mode 100644 index 000000000000..a1242c43a9ca --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bit/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, git +}: + +buildGoModule rec { + pname = "bit"; + version = "1.1.2"; + + src = fetchFromGitHub { + owner = "chriswalz"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-18R0JGbG5QBDghF4SyhXaKe9UY5UzF7Ap0Y061Z1SZ8="; + }; + + vendorHash = "sha256-3Y/B14xX5jaoL44rq9+Nn4niGViLPPXBa8WcJgTvYTA="; + + propagatedBuildInputs = [ git ]; + + # Tests require a repository + doCheck = false; + + meta = with lib; { + description = "Command-line tool for git"; + homepage = "https://github.com/chriswalz/bit"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + mainProgram = "bit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/Gemfile b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/Gemfile new file mode 100644 index 000000000000..8ed325154711 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'atlassian-stash' diff --git a/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/Gemfile.lock new file mode 100644 index 000000000000..27a6e2c8dd03 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/Gemfile.lock @@ -0,0 +1,27 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) + atlassian-stash (0.7.0) + commander (~> 4.1.2) + git (>= 1.2.5) + json (>= 1.7.5) + launchy (~> 2.4.2) + commander (4.1.6) + highline (~> 1.6.11) + git (1.3.0) + highline (1.6.21) + json (2.0.2) + launchy (2.4.3) + addressable (~> 2.3) + public_suffix (2.0.5) + +PLATFORMS + ruby + +DEPENDENCIES + atlassian-stash + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/default.nix b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/default.nix new file mode 100644 index 000000000000..ecbe064826c5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/default.nix @@ -0,0 +1,22 @@ +{ lib, bundlerEnv, ruby, bundlerUpdateScript }: + +bundlerEnv rec { + name = "bitbucket-server-cli-${version}"; + + version = (import ./gemset.nix).atlassian-stash.version; + inherit ruby; + gemdir = ./.; + + pname = "atlassian-stash"; + + passthru.updateScript = bundlerUpdateScript "bitbucket-server-cli"; + + meta = with lib; { + description = "A command line interface to interact with BitBucket Server (formerly Atlassian Stash)"; + homepage = "https://bitbucket.org/atlassian/bitbucket-server-cli"; + license = licenses.mit; + maintainers = with maintainers; [ jgertm nicknovitski ]; + mainProgram = "stash"; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/gemset.nix b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/gemset.nix new file mode 100644 index 000000000000..844291b09054 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bitbucket-server-cli/gemset.nix @@ -0,0 +1,66 @@ +{ + addressable = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw"; + type = "gem"; + }; + version = "2.5.0"; + }; + atlassian-stash = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rsf9h5w5wiglwv0fqwp45fq06fxbg68cqkc3bpqvps1i1qm0p6i"; + type = "gem"; + }; + version = "0.7.0"; + }; + commander = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x9i8hf083wjlgj09nl1p9j8sr5g7amq0fdmxjqs4cxdbg3wpmsb"; + type = "gem"; + }; + version = "4.1.6"; + }; + git = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1waikaggw7a1d24nw0sh8fd419gbf7awh000qhsf411valycj6q3"; + type = "gem"; + }; + version = "1.3.0"; + }; + highline = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06bml1fjsnrhd956wqq5k3w8cyd09rv1vixdpa3zzkl6xs72jdn1"; + type = "gem"; + }; + version = "1.6.21"; + }; + json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lhinj9vj7mw59jqid0bjn2hlfcnq02bnvsx9iv81nl2han603s0"; + type = "gem"; + }; + version = "2.0.2"; + }; + launchy = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2"; + type = "gem"; + }; + version = "2.4.3"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q"; + type = "gem"; + }; + version = "2.0.5"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/blackbox/default.nix b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix new file mode 100644 index 000000000000..c98ff367c668 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromGitHub +, expect +, which +, gnupg +, coreutils +, git +, pinentry +, gnutar +, procps +}: + +stdenv.mkDerivation rec { + pname = "blackbox"; + version = "1.20220610"; + + src = fetchFromGitHub { + owner = "stackexchange"; + repo = pname; + rev = "v${version}"; + hash = "sha256-g0oNV7Nj7ZMmsVQFVTDwbKtF4a/Fb3WDB+NRx9IGSWA="; + }; + + buildInputs = [ gnupg ]; + + # https://github.com/NixOS/nixpkgs/issues/134445 + doCheck = !stdenv.isDarwin && stdenv.isx86_64; + + nativeCheckInputs = [ + expect + which + coreutils + pinentry + git + gnutar + procps + ]; + + postPatch = '' + patchShebangs bin tools + substituteInPlace Makefile \ + --replace "PREFIX?=/usr/local" "PREFIX=$out" + + substituteInPlace tools/confidence_test.sh \ + --replace 'PATH="''${blackbox_home}:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/local/bin:/usr/pkg/bin:/usr/pkg/gnu/bin:/usr/local/MacGPG2/bin:/opt/homebrew/bin:''${blackbox_home}"' \ + "PATH=/build/source/bin/:$PATH" + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + make copy-install + runHook postInstall + ''; + + meta = with lib; { + description = "Safely store secrets in a VCS repo"; + maintainers = with maintainers; [ ericsagnes ]; + license = licenses.mit; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bump2version/default.nix b/nixpkgs/pkgs/applications/version-management/bump2version/default.nix new file mode 100644 index 000000000000..86d1618cc48d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bump2version/default.nix @@ -0,0 +1,46 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +, testfixtures +}: + +buildPythonApplication rec { + pname = "bump2version"; + version = "1.0.1"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "c4urself"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-j6HKi3jTwSgGBrA8PCJJNg+yQqRMo1aqaLgPGf4KAKU="; + }; + + nativeCheckInputs = [ + pytestCheckHook + testfixtures + ]; + + disabledTests = [ + # X's in pytest are git tests which won't run in sandbox + "usage_string_fork" + "test_usage_string" + "test_defaults_in_usage_with_config" + ]; + + pythonImportsCheck = [ "bumpversion" ]; + + meta = with lib; { + description = "Version-bump your software with a single command"; + longDescription = '' + A small command line tool to simplify releasing software by updating + all version strings in your source code by the correct increment. + ''; + homepage = "https://github.com/c4urself/bump2version"; + license = licenses.mit; + maintainers = with maintainers; [ jefflabonte ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/bumpver/default.nix b/nixpkgs/pkgs/applications/version-management/bumpver/default.nix new file mode 100644 index 000000000000..d540d4211073 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/bumpver/default.nix @@ -0,0 +1,35 @@ +{ lib, python3, fetchPypi, git, mercurial }: + +python3.pkgs.buildPythonApplication rec { + pname = "bumpver"; + version = "2021.1110"; + + src = fetchPypi { + inherit pname version; + sha256 = "b6a0ddb78db7e00ae7ffe895bf8ef97f91e6310dfc1c4721896bdfd044b1cb03"; + }; + + prePatch = '' + substituteInPlace setup.py \ + --replace "if any(arg.startswith(\"bdist\") for arg in sys.argv):" ""\ + --replace "import lib3to6" ""\ + --replace "package_dir = lib3to6.fix(package_dir)" "" + ''; + + propagatedBuildInputs = with python3.pkgs; [ pathlib2 click toml lexid colorama setuptools ]; + + nativeCheckInputs = [ python3.pkgs.pytestCheckHook git mercurial ]; + + disabledTests = [ + # fails due to more aggressive setuptools version specifier validation + "test_parse_default_pattern" + ]; + + meta = with lib; { + description = "Bump version numbers in project files"; + homepage = "https://pypi.org/project/bumpver/"; + license = licenses.mit; + maintainers = with maintainers; [ kfollesdal ]; + mainProgram = "bumpver"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cgit/common.nix b/nixpkgs/pkgs/applications/version-management/cgit/common.nix new file mode 100644 index 000000000000..b0ed32eb0222 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cgit/common.nix @@ -0,0 +1,81 @@ +{ pname, version, src, gitSrc, buildInputs ? [] +, homepage, description, maintainers +}: + +{ lib, stdenv, openssl, zlib, asciidoc, libxml2, libxslt +, docbook_xsl, pkg-config +, coreutils, gnused, groff, docutils +, gzip, bzip2, lzip, xz, zstd +, python3Packages +}: + +stdenv.mkDerivation { + inherit pname version src gitSrc; + + separateDebugInfo = true; + + nativeBuildInputs = [ + pkg-config asciidoc + ] ++ (with python3Packages; [ python wrapPython ]); + buildInputs = buildInputs ++ [ + openssl zlib libxml2 libxslt docbook_xsl + ]; + pythonPath = with python3Packages; [ pygments markdown ]; + + postPatch = '' + sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \ + -e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \ + -e 's|"lzip"|"${lzip}/bin/lzip"|' \ + -e 's|"xz"|"${xz.bin}/bin/xz"|' \ + -e 's|"zstd"|"${zstd}/bin/zstd"|' \ + -i ui-snapshot.c + + substituteInPlace filters/html-converters/man2html \ + --replace 'groff' '${groff}/bin/groff' + + substituteInPlace filters/html-converters/rst2html \ + --replace 'rst2html.py' '${docutils}/bin/rst2html.py' + ''; + + # Give cgit a git source tree and pass configuration parameters (as make + # variables). + preBuild = '' + mkdir -p git + tar --strip-components=1 -xf "$gitSrc" -C git + ''; + + makeFlags = [ + "prefix=$(out)" + "CGIT_SCRIPT_PATH=$(out)/cgit/" + "CC=${stdenv.cc.targetPrefix}cc" + "AR=${stdenv.cc.targetPrefix}ar" + ]; + + # Install manpage. + postInstall = '' + # xmllint fails: + #make install-man + + # bypassing xmllint works: + a2x --no-xmllint -f manpage cgitrc.5.txt + mkdir -p "$out/share/man/man5" + cp cgitrc.5 "$out/share/man/man5" + + wrapPythonProgramsIn "$out/lib/cgit/filters" "$out $pythonPath" + + for script in $out/lib/cgit/filters/*.sh $out/lib/cgit/filters/html-converters/txt2html; do + wrapProgram $script --prefix PATH : '${lib.makeBinPath [ coreutils gnused ]}' + done + ''; + + stripDebugList = [ "cgit" ]; + + enableParallelBuilding = true; + + meta = { + inherit homepage description; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = maintainers ++ (with lib.maintainers; [ qyliss ]); + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cgit/default.nix b/nixpkgs/pkgs/applications/version-management/cgit/default.nix new file mode 100644 index 000000000000..f6a0af102303 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cgit/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchurl, callPackage, luajit }: + +callPackage (import ./common.nix rec { + pname = "cgit"; + version = "1.2.3"; + + src = fetchurl { + url = "https://git.zx2c4.com/cgit/snapshot/${pname}-${version}.tar.xz"; + sha256 = "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss"; + }; + + # cgit is tightly coupled with git and needs a git source tree to build. + # IMPORTANT: Remember to check which git version cgit needs on every version + # bump (look for "GIT_VER" in the top-level Makefile). + gitSrc = fetchurl { + url = "mirror://kernel/software/scm/git/git-2.25.1.tar.xz"; + sha256 = "09lzwa183nblr6l8ib35g2xrjf9wm9yhk3szfvyzkwivdv69c9r2"; + }; + + buildInputs = [ luajit ]; + + homepage = "https://git.zx2c4.com/cgit/about/"; + description = "Web frontend for git repositories"; + maintainers = with lib.maintainers; [ bjornfor ]; +}) {} diff --git a/nixpkgs/pkgs/applications/version-management/cgit/pink.nix b/nixpkgs/pkgs/applications/version-management/cgit/pink.nix new file mode 100644 index 000000000000..73523a2d77af --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cgit/pink.nix @@ -0,0 +1,23 @@ +{ lib, fetchurl, callPackage }: + +callPackage (import ./common.nix rec { + pname = "cgit-pink"; + version = "1.4.1"; + + src = fetchurl { + url = "https://git.causal.agency/cgit-pink/snapshot/cgit-pink-${version}.tar.gz"; + sha256 = "1ma6j3r4ba5fhd47pc6xn5bmxaqr8ci2pvky9v100n1hh5n6q97i"; + }; + + # cgit-pink is tightly coupled with git and needs a git source tree to build. + # IMPORTANT: Remember to check which git version cgit-pink needs on every + # version bump (look for "GIT_VER" in the top-level Makefile). + gitSrc = fetchurl { + url = "mirror://kernel/software/scm/git/git-2.36.1.tar.xz"; + sha256 = "0w43a35mhc2qf2gjkxjlnkf2lq8g0snf34iy5gqx2678yq7llpa0"; + }; + + homepage = "https://git.causal.agency/cgit-pink/about/"; + description = "cgit fork aiming for better maintenance"; + maintainers = with lib.maintainers; [ sternenseemann ]; +}) {} diff --git a/nixpkgs/pkgs/applications/version-management/codeberg-cli/default.nix b/nixpkgs/pkgs/applications/version-management/codeberg-cli/default.nix new file mode 100644 index 000000000000..ae63280f7ee7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/codeberg-cli/default.nix @@ -0,0 +1,43 @@ +{ lib +, CoreServices +, Security +, fetchFromGitea +, installShellFiles +, openssl +, pkg-config +, rustPlatform +, stdenv +}: +rustPlatform.buildRustPackage rec { + pname = "codeberg-cli"; + version = "0.3.5"; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "RobWalt"; + repo = "codeberg-cli"; + rev = "v${version}"; + hash = "sha256-KjH78yqfZoN24TBYyFZuxf7z9poRov0uFYQ8+eq9p/o="; + }; + + cargoHash = "sha256-RE4Zwa5vUWPc42w5GaaYkS6fLIbges1fAsOUuwqR2ag="; + nativeBuildInputs = [ pkg-config installShellFiles ]; + + buildInputs = [ openssl ] + ++ lib.optionals stdenv.isDarwin [ CoreServices Security ]; + + postInstall = '' + installShellCompletion --cmd berg \ + --bash <($out/bin/berg completion bash) \ + --fish <($out/bin/berg completion fish) \ + --zsh <($out/bin/berg completion zsh) + ''; + + meta = with lib; { + description = "CLI Tool for Codeberg similar to gh and glab"; + homepage = "https://codeberg.org/RobWalt/codeberg-cli"; + license = with licenses; [ agpl3Plus ]; + maintainers = with maintainers; [ robwalt ]; + mainProgram = "berg"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/commit-formatter/default.nix b/nixpkgs/pkgs/applications/version-management/commit-formatter/default.nix new file mode 100644 index 000000000000..03eead59a6ba --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/commit-formatter/default.nix @@ -0,0 +1,23 @@ +{ lib, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "commit-formatter"; + version = "0.2.1"; + + src = fetchFromGitHub { + owner = "Eliot00"; + repo = pname; + rev = "v${version}"; + sha256 = "EYzhb9jJ4MzHxIbaTb1MxeXUgoxTwcnq5JdxAv2uNcA="; + }; + + cargoSha256 = "AeHQCoP1HOftlOt/Yala3AXocMlwwIXIO2i1AsFSvGQ="; + + meta = with lib; { + description = "A CLI tool to help you write git commit"; + homepage = "https://github.com/Eliot00/commit-formatter"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ elliot ]; + mainProgram = "git-cf"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/default.nix b/nixpkgs/pkgs/applications/version-management/commitizen/default.nix new file mode 100644 index 000000000000..ba3c5695fd94 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/commitizen/default.nix @@ -0,0 +1,114 @@ +{ lib +, commitizen +, fetchFromGitHub +, git +, python3 +, stdenv +, installShellFiles +, nix-update-script +, testers +}: + +python3.pkgs.buildPythonApplication rec { + pname = "commitizen"; + version = "3.24.0"; + format = "pyproject"; + + disabled = python3.pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "commitizen-tools"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-kGrXy2V5yFv7MQUKjmE89tRnG+3b73GPVHqGZ3XO0nY="; + }; + + pythonRelaxDeps = [ + "decli" + ]; + + nativeBuildInputs = with python3.pkgs; [ + poetry-core + pythonRelaxDepsHook + installShellFiles + ]; + + propagatedBuildInputs = with python3.pkgs; [ + argcomplete + charset-normalizer + colorama + decli + importlib-metadata + jinja2 + packaging + pyyaml + questionary + termcolor + tomlkit + ]; + + nativeCheckInputs = with python3.pkgs; [ + argcomplete + deprecated + git + py + pytest-freezer + pytest-mock + pytest-regressions + pytest7CheckHook + ]; + + doCheck = true; + + # The tests require a functional git installation + # which requires a valid HOME directory. + preCheck = '' + export HOME="$(mktemp -d)" + + git config --global user.name "Nix Builder" + git config --global user.email "nix-builder@nixos.org" + git init . + ''; + + # NB: These tests require complex GnuPG setup + disabledTests = [ + "test_bump_minor_increment_signed" + "test_bump_minor_increment_signed_config_file" + "test_bump_on_git_with_hooks_no_verify_enabled" + "test_bump_on_git_with_hooks_no_verify_disabled" + "test_bump_pre_commit_changelog" + "test_bump_pre_commit_changelog_fails_always" + "test_get_commits_with_signature" + # fatal: not a git repository (or any of the parent directories): .git + "test_commitizen_debug_excepthook" + ]; + + postInstall = + let + argcomplete = lib.getExe' python3.pkgs.argcomplete "register-python-argcomplete"; + in + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) + '' + installShellCompletion --cmd cz \ + --bash <(${argcomplete} --shell bash $out/bin/cz) \ + --zsh <(${argcomplete} --shell zsh $out/bin/cz) \ + --fish <(${argcomplete} --shell fish $out/bin/cz) + ''; + + passthru = { + updateScript = nix-update-script { }; + tests.version = testers.testVersion { + package = commitizen; + command = "cz version"; + }; + }; + + meta = with lib; { + description = "Tool to create committing rules for projects, auto bump versions, and generate changelogs"; + homepage = "https://github.com/commitizen-tools/commitizen"; + changelog = "https://github.com/commitizen-tools/commitizen/blob/v${version}/CHANGELOG.md"; + license = licenses.mit; + mainProgram = "cz"; + maintainers = with maintainers; [ lovesegfault anthonyroussel ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/conform/default.nix b/nixpkgs/pkgs/applications/version-management/conform/default.nix new file mode 100644 index 000000000000..65ce7e63d603 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/conform/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub, git }: + +buildGoModule rec { + pname = "conform"; + version = "0.1.0-alpha.29"; + + src = fetchFromGitHub { + owner = "siderolabs"; + repo = "conform"; + rev = "v${version}"; + hash = "sha256-5knN+lTedUdgWG8rb3zuJAxx9N0lt7LjJvmSJhdTSgw="; + }; + + vendorHash = "sha256-hDdNYXy5NIrlqT6yyOglFg2v7HOM9nE+oh7mx2kLdnQ="; + + ldflags = [ + "-s" + "-w" + "-X github.com/siderolabs/conform/internal/version.Tag=v${version}" + ]; + + nativeCheckInputs = [ git ]; + + meta = with lib; { + description = "Policy enforcement for your pipelines"; + homepage = "https://github.com/siderolabs/conform"; + license = licenses.mpl20; + maintainers = with maintainers; [ jmgilman jk ]; + mainProgram = "conform"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix new file mode 100644 index 000000000000..a58cda543658 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, makeWrapper, asciidoc, docbook_xml_dtd_45, docbook_xsl +, coreutils, cvs, diffutils, findutils, git, python3, rsync +}: + +stdenv.mkDerivation rec { + pname = "cvs-fast-export"; + version = "1.63"; + + src = fetchurl { + url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-${version}.tar.gz"; + sha256 = "sha256-YZF2QebWbvn/N9pLpccudZsFHzocJp/3M0Gx9p7fQ5Y="; + }; + + strictDeps = true; + nativeBuildInputs = [ makeWrapper asciidoc ]; + buildInputs = [ python3 ]; + + postPatch = '' + patchShebangs . + ''; + + preBuild = '' + makeFlagsArray=( + XML_CATALOG_FILES="${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml" + LIBS="" + prefix="$out" + ) + ''; + + env = lib.optionalAttrs stdenv.cc.isClang { + NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; + }; + + postInstall = '' + wrapProgram $out/bin/cvssync --prefix PATH : ${lib.makeBinPath [ rsync ]} + wrapProgram $out/bin/cvsconvert --prefix PATH : $out/bin:${lib.makeBinPath [ + coreutils cvs diffutils findutils git + ]} + ''; + + meta = with lib; { + description = "Export an RCS or CVS history as a fast-import stream"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ dfoxfranke ]; + homepage = "http://www.catb.org/esr/cvs-fast-export/"; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch new file mode 100644 index 000000000000..cd2b324729fb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch @@ -0,0 +1,16 @@ +diff --git a/src/client.c b/src/client.c +index 751406b..b45d89c 100644 +--- a/src/client.c ++++ b/src/client.c +@@ -3558,9 +3558,9 @@ connect_to_pserver (cvsroot_t *root, struct buffer **to_server_p, + * code. + */ + read_line_via (from_server, to_server, &read_buf); +- sscanf (read_buf, "%s %d", write_buf, &codenum); ++ count = sscanf (read_buf, "%*s %d", &codenum); + +- if ((codenum / 100) != 2) ++ if (count != 1 || (codenum / 100) != 2) + error (1, 0, "proxy server %s:%d does not support http tunnelling", + root->proxy_hostname, proxy_port_number); + free (read_buf); diff --git a/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch new file mode 100644 index 000000000000..950079423685 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch @@ -0,0 +1,29 @@ +--- a/src/rsh-client.c.orig 2005-10-02 17:17:21.000000000 +0200 ++++ b/src/rsh-client.c 2017-11-07 16:56:06.957370469 +0100 +@@ -53,7 +53,7 @@ + char *cvs_server = (root->cvs_server != NULL + ? root->cvs_server : getenv ("CVS_SERVER")); + int i = 0; +- /* This needs to fit "rsh", "-b", "-l", "USER", "host", ++ /* This needs to fit "rsh", "-b", "-l", "USER", "--", "host", + "cmd (w/ args)", and NULL. We leave some room to grow. */ + char *rsh_argv[10]; + +@@ -97,6 +97,9 @@ + rsh_argv[i++] = root->username; + } + ++ /* Only non-option arguments from here. (CVE-2017-12836) */ ++ rsh_argv[i++] = "--"; ++ + rsh_argv[i++] = root->hostname; + rsh_argv[i++] = cvs_server; + rsh_argv[i++] = "server"; +@@ -171,6 +174,7 @@ + *p++ = root->username; + } + ++ *p++ = "--"; + *p++ = root->hostname; + *p++ = command; + *p++ = NULL; diff --git a/nixpkgs/pkgs/applications/version-management/cvs/default.nix b/nixpkgs/pkgs/applications/version-management/cvs/default.nix new file mode 100644 index 000000000000..20a38f9f8e8c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchurl, fetchpatch, nano }: + +stdenv.mkDerivation rec { + pname = "cvs"; + version = "1.12.13"; + + src = fetchurl { + url = "mirror://savannah/cvs/source/feature/${version}/cvs-${version}.tar.bz2"; + sha256 = "0pjir8cwn0087mxszzbsi1gyfc6373vif96cw4q3m1x6p49kd1bq"; + }; + + patches = [ + ./getcwd-chroot.patch + ./CVE-2012-0804.patch + ./CVE-2017-12836.patch + (fetchpatch { + url = "https://raw.githubusercontent.com/Homebrew/formula-patches/24118ec737c7/cvs/vasnprintf-high-sierra-fix.diff"; + sha256 = "1ql6aaia7xkfq3vqhlw5bd2z2ywka82zk01njs1b2szn699liymg"; + }) + ]; + + hardeningDisable = [ "fortify" "format" ]; + + preConfigure = '' + # Apply the Debian patches. + for p in "debian/patches/"*; do + echo "applying \`$p' ..." + patch --verbose -p1 < "$p" + done + ''; + + configureFlags = [ + "--with-editor=${nano}/bin/nano" + + # Required for cross-compilation. + "cvs_cv_func_printf_ptr=yes" + ]; + + makeFlags = [ + "AR=${stdenv.cc.targetPrefix}ar" + ]; + + env = lib.optionalAttrs (stdenv.isDarwin && stdenv.cc.isClang) { + NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; + }; + + doCheck = false; # fails 1 of 1 tests + + meta = with lib; { + homepage = "http://cvs.nongnu.org"; + description = "Concurrent Versions System - a source control system"; + license = licenses.gpl2Plus; # library is GPLv2, main is GPLv1 + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch b/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch new file mode 100644 index 000000000000..3f827a1e6981 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch @@ -0,0 +1,302 @@ +Fix Gnulib's getcwd in chroots. +From Debian bug #456164, http://bugs.debian.org/456164 . + +--- cvs-1.12.13.orig/debian/patches/20_readdir_errno ++++ cvs-1.12.13/debian/patches/20_readdir_errno +@@ -0,0 +1,121 @@ ++# From Gnulib: ++# http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=0b78641d85af3b72e3b9d94cb7b94e45f3c08ee5 ++# We don't need this directly, but it's required so that 21_getcwd_chroot ++# applies cleanly. ++# ++# 2005-10-29 Paul Eggert <eggert@cs.ucla.edu> ++# ++# * getcwd.c (__getcwd): Don't assume that system calls after readdir ++# leave errno alone. Problem reported by Dmitry V. Levin. ++ ++--- cvs-1.12.13-old/lib/getcwd.c +++++ cvs-1.12.13/lib/getcwd.c ++@@ -201,6 +201,8 @@ __getcwd (char *buf, size_t size) ++ ino_t dotino; ++ bool mount_point; ++ int parent_status; +++ size_t dirroom; +++ size_t namlen; ++ ++ /* Look at the parent directory. */ ++ #ifdef AT_FDCWD ++@@ -241,11 +243,20 @@ __getcwd (char *buf, size_t size) ++ goto lose; ++ dotlist[dotlen++] = '/'; ++ #endif ++- /* Clear errno to distinguish EOF from error if readdir returns ++- NULL. */ ++- __set_errno (0); ++- while ((d = __readdir (dirstream)) != NULL) +++ for (;;) ++ { +++ /* Clear errno to distinguish EOF from error if readdir returns +++ NULL. */ +++ __set_errno (0); +++ d = __readdir (dirstream); +++ if (d == NULL) +++ { +++ if (errno == 0) +++ /* EOF on dirstream, which means that the current directory +++ has been removed. */ +++ __set_errno (ENOENT); +++ goto lose; +++ } ++ if (d->d_name[0] == '.' && ++ (d->d_name[1] == '\0' || ++ (d->d_name[1] == '.' && d->d_name[2] == '\0'))) ++@@ -303,48 +314,38 @@ __getcwd (char *buf, size_t size) ++ break; ++ } ++ } ++- if (d == NULL) ++- { ++- if (errno == 0) ++- /* EOF on dirstream, which means that the current directory ++- has been removed. */ ++- __set_errno (ENOENT); ++- goto lose; ++- } ++- else ++- { ++- size_t dirroom = dirp - dir; ++- size_t namlen = _D_EXACT_NAMLEN (d); ++ ++- if (dirroom <= namlen) +++ dirroom = dirp - dir; +++ namlen = _D_EXACT_NAMLEN (d); +++ +++ if (dirroom <= namlen) +++ { +++ if (size != 0) ++ { ++- if (size != 0) ++- { ++- __set_errno (ERANGE); ++- goto lose; ++- } ++- else ++- { ++- char *tmp; ++- size_t oldsize = allocated; +++ __set_errno (ERANGE); +++ goto lose; +++ } +++ else +++ { +++ char *tmp; +++ size_t oldsize = allocated; ++ ++- allocated += MAX (allocated, namlen); ++- if (allocated < oldsize ++- || ! (tmp = realloc (dir, allocated))) ++- goto memory_exhausted; +++ allocated += MAX (allocated, namlen); +++ if (allocated < oldsize +++ || ! (tmp = realloc (dir, allocated))) +++ goto memory_exhausted; ++ ++- /* Move current contents up to the end of the buffer. ++- This is guaranteed to be non-overlapping. */ ++- dirp = memcpy (tmp + allocated - (oldsize - dirroom), ++- tmp + dirroom, ++- oldsize - dirroom); ++- dir = tmp; ++- } +++ /* Move current contents up to the end of the buffer. +++ This is guaranteed to be non-overlapping. */ +++ dirp = memcpy (tmp + allocated - (oldsize - dirroom), +++ tmp + dirroom, +++ oldsize - dirroom); +++ dir = tmp; ++ } ++- dirp -= namlen; ++- memcpy (dirp, d->d_name, namlen); ++- *--dirp = '/'; ++ } +++ dirp -= namlen; +++ memcpy (dirp, d->d_name, namlen); +++ *--dirp = '/'; ++ ++ thisdev = dotdev; ++ thisino = dotino; +--- cvs-1.12.13.orig/debian/patches/21_getcwd_chroot ++++ cvs-1.12.13/debian/patches/21_getcwd_chroot +@@ -0,0 +1,172 @@ ++# From Gnulib: ++# http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=79c0a43808d9ca85acd04600149fc1a9b75bd1b9 ++# ++# 2006-07-03 Paul Eggert <eggert@cs.ucla.edu> ++# ++# Merge from coreutils. ++# ++# 2006-03-19 Jim Meyering <jim@meyering.net> ++# ++# Work even in a chroot where d_ino values for entries in "/" ++# don't match the stat.st_ino values for the same names. ++# * getcwd.c (__getcwd): When no d_ino value matches the target inode ++# number, iterate through all entries again, using lstat instead. ++# Reported by Kenshi Muto in http://bugs.debian.org/355810, and by ++# Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656. ++# ++# * getcwd.c (__getcwd): Clarify a comment. ++# Use memcpy in place of a call to strcpy. ++ ++--- cvs-1.12.13-old/lib/getcwd.c +++++ cvs-1.12.13/lib/getcwd.c ++@@ -211,6 +211,7 @@ __getcwd (char *buf, size_t size) ++ int parent_status; ++ size_t dirroom; ++ size_t namlen; +++ bool use_d_ino = true; ++ ++ /* Look at the parent directory. */ ++ #ifdef AT_FDCWD ++@@ -257,11 +258,26 @@ __getcwd (char *buf, size_t size) ++ NULL. */ ++ __set_errno (0); ++ d = __readdir (dirstream); +++ +++ /* When we've iterated through all directory entries without finding +++ one with a matching d_ino, rewind the stream and consider each +++ name again, but this time, using lstat. This is necessary in a +++ chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where +++ .., ../.., ../../.., etc. all had the same device number, yet the +++ d_ino values for entries in / did not match those obtained +++ via lstat. */ +++ if (d == NULL && errno == 0 && use_d_ino) +++ { +++ use_d_ino = false; +++ rewinddir (dirstream); +++ d = __readdir (dirstream); +++ } +++ ++ if (d == NULL) ++ { ++ if (errno == 0) ++- /* EOF on dirstream, which means that the current directory ++- has been removed. */ +++ /* EOF on dirstream, which can mean e.g., that the current +++ directory has been removed. */ ++ __set_errno (ENOENT); ++ goto lose; ++ } ++@@ -269,58 +285,65 @@ __getcwd (char *buf, size_t size) ++ (d->d_name[1] == '\0' || ++ (d->d_name[1] == '.' && d->d_name[2] == '\0'))) ++ continue; ++- if (MATCHING_INO (d, thisino) || mount_point) +++ +++ if (use_d_ino) ++ { ++- int entry_status; +++ bool match = (MATCHING_INO (d, thisino) || mount_point); +++ if (! match) +++ continue; +++ } +++ +++ { +++ int entry_status; ++ #ifdef AT_FDCWD ++- entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); +++ entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); ++ #else ++- /* Compute size needed for this file name, or for the file ++- name ".." in the same directory, whichever is larger. ++- Room for ".." might be needed the next time through ++- the outer loop. */ ++- size_t name_alloc = _D_ALLOC_NAMLEN (d); ++- size_t filesize = dotlen + MAX (sizeof "..", name_alloc); ++- ++- if (filesize < dotlen) ++- goto memory_exhausted; ++- ++- if (dotsize < filesize) ++- { ++- /* My, what a deep directory tree you have, Grandma. */ ++- size_t newsize = MAX (filesize, dotsize * 2); ++- size_t i; ++- if (newsize < dotsize) ++- goto memory_exhausted; ++- if (dotlist != dots) ++- free (dotlist); ++- dotlist = malloc (newsize); ++- if (dotlist == NULL) ++- goto lose; ++- dotsize = newsize; ++- ++- i = 0; ++- do ++- { ++- dotlist[i++] = '.'; ++- dotlist[i++] = '.'; ++- dotlist[i++] = '/'; ++- } ++- while (i < dotlen); ++- } ++- ++- strcpy (dotlist + dotlen, d->d_name); ++- entry_status = __lstat (dotlist, &st); +++ /* Compute size needed for this file name, or for the file +++ name ".." in the same directory, whichever is larger. +++ Room for ".." might be needed the next time through +++ the outer loop. */ +++ size_t name_alloc = _D_ALLOC_NAMLEN (d); +++ size_t filesize = dotlen + MAX (sizeof "..", name_alloc); +++ +++ if (filesize < dotlen) +++ goto memory_exhausted; +++ +++ if (dotsize < filesize) +++ { +++ /* My, what a deep directory tree you have, Grandma. */ +++ size_t newsize = MAX (filesize, dotsize * 2); +++ size_t i; +++ if (newsize < dotsize) +++ goto memory_exhausted; +++ if (dotlist != dots) +++ free (dotlist); +++ dotlist = malloc (newsize); +++ if (dotlist == NULL) +++ goto lose; +++ dotsize = newsize; +++ +++ i = 0; +++ do +++ { +++ dotlist[i++] = '.'; +++ dotlist[i++] = '.'; +++ dotlist[i++] = '/'; +++ } +++ while (i < dotlen); +++ } +++ +++ memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d)); +++ entry_status = __lstat (dotlist, &st); ++ #endif ++- /* We don't fail here if we cannot stat() a directory entry. ++- This can happen when (network) file systems fail. If this ++- entry is in fact the one we are looking for we will find ++- out soon as we reach the end of the directory without ++- having found anything. */ ++- if (entry_status == 0 && S_ISDIR (st.st_mode) ++- && st.st_dev == thisdev && st.st_ino == thisino) ++- break; ++- } +++ /* We don't fail here if we cannot stat() a directory entry. +++ This can happen when (network) file systems fail. If this +++ entry is in fact the one we are looking for we will find +++ out soon as we reach the end of the directory without +++ having found anything. */ +++ if (entry_status == 0 && S_ISDIR (st.st_mode) +++ && st.st_dev == thisdev && st.st_ino == thisino) +++ break; +++ } ++ } ++ ++ dirroom = dirp - dir; diff --git a/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix new file mode 100644 index 000000000000..fe429fdb7afc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchurl, makeWrapper +, pypy2Packages +, cvs, subversion, git, breezy +, installShellFiles +}: + +pypy2Packages.buildPythonApplication rec { + pname = "cvs2svn"; + version = "2.5.0"; + + src = fetchurl { + url = "https://github.com/mhagger/cvs2svn/releases/download/${version}/${pname}-${version}.tar.gz"; + sha256 = "1ska0z15sjhyfi860rjazz9ya1gxbf5c0h8dfqwz88h7fccd22b4"; + }; + + nativeBuildInputs = [ makeWrapper installShellFiles ]; + + nativeCheckInputs = [ subversion git breezy ]; + + checkPhase = "${pypy2Packages.python.interpreter} run-tests.py"; + + doCheck = false; # Couldn't find node 'transaction...' in expected output tree + + postInstall = '' + for i in bzr svn git; do + wrapProgram $out/bin/cvs2$i \ + --prefix PATH : "${lib.makeBinPath [ cvs ]}" + $out/bin/cvs2$i --man > csv2$i.1 + installManPage csv2$i.1 + done + ''; + + meta = with lib; { + description = "A tool to convert CVS repositories to Subversion repositories"; + homepage = "https://github.com/mhagger/cvs2svn"; + maintainers = with maintainers; [ makefu viraptor ]; + platforms = platforms.unix; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvsps/default.nix b/nixpkgs/pkgs/applications/version-management/cvsps/default.nix new file mode 100644 index 000000000000..ebee69ebb3cd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvsps/default.nix @@ -0,0 +1,62 @@ +{ lib, stdenv, fetchurl, fetchpatch, cvs, zlib }: + +stdenv.mkDerivation rec { + pname = "cvsps"; + version = "2.1"; + + src = fetchurl { + url = "mirror://debian/pool/main/c/cvsps/cvsps_${version}.orig.tar.gz"; + sha256 = "0nh7q7zcmagx0i63h6fqqkkq9i55k77myvb8h6jn2f266f5iklwi"; + }; + + # Patches from https://sources.debian.net/src/cvsps/2.1-7/debian/patches + patches = + [ (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/01_ignoretrunk.patch"; + sha256 = "1gzb97dw2a6bm0bmim7p7wvsn0r82y3a8n22ln6rbbkkd8vlnzcb"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/02_dynamicbufferalloc.patch"; + sha256 = "0dm7azxnw0g9pdqkb3y4y2h047zgrclbh40av6c868wfp2j6l9sc"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/03_diffoptstypo.patch"; + sha256 = "06n8652g7inpv8cgqir7ijq00qw1fr0v44m2pbmgx7ilmna2vrcw"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/05-inet_addr_fix.patch"; + sha256 = "10w6px96dz8bb69asjzshvp787ccazmqnjsggqc4gwdal95q3cn7"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/fix-makefile"; + sha256 = "0m92b55hgldwg6lwdaybbj0n3lw1b3wj2xkk1cz1ywq073bpf3jm"; + }) + + (fetchpatch { + url = "https://sources.debian.net/data/main/c/cvsps/2.1-7/debian/patches/fix-manpage"; + sha256 = "0gky14rhx82wv0gj8bkc74ki5xilhv5i3k1jc7khklr4lb6mmhpx"; + }) + ]; + + buildInputs = [ cvs zlib ]; + + installFlags = [ "prefix=$(out)" ]; + + meta = { + description = "A tool to generate CVS patch set information"; + longDescription = '' + CVSps is a program for generating `patchset' information from a + CVS repository. A patchset in this case is defined as a set of + changes made to a collection of files, and all committed at the + same time (using a single "cvs commit" command). + ''; + homepage = "http://www.cobite.com/cvsps/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + mainProgram = "cvsps"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cvsq/default.nix b/nixpkgs/pkgs/applications/version-management/cvsq/default.nix new file mode 100644 index 000000000000..89fe6e89f482 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cvsq/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv +, fetchurl +, makeWrapper +, cvs +, perl +, nettools +, findutils +, rsync +, coreutils +, diffutils +} : + +stdenv.mkDerivation rec { + pname = "cvsq"; + version = "1.11"; + + src = fetchurl { + url = "http://www.linta.de/~aehlig/cvsq/cvsq-${version}.tgz"; + sha256 = "0491k4skk3jyyd6plp2kcihmxxav9rsch7vd1yi697m2fqckp5ws"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ cvs perl nettools findutils rsync coreutils diffutils ]; + + + makeFlags = [ "prefix=$(out)" ]; + + postInstall = '' + substituteInPlace $out/bin/cvsq --replace "/bin/sh" "${stdenv.shell}" + substituteInPlace $out/bin/lcvs --replace "/bin/sh" "${stdenv.shell}" + wrapProgram $out/bin/cvsq --prefix PATH : ${lib.makeBinPath + [ cvs nettools findutils rsync coreutils diffutils ]} + wrapProgram $out/bin/cvsq-branch --prefix PATH : ${lib.makeBinPath + [ cvs nettools findutils rsync coreutils diffutils ]} + wrapProgram $out/bin/cvsq-merge --prefix PATH : ${lib.makeBinPath + [ cvs nettools findutils rsync coreutils diffutils ]} + wrapProgram $out/bin/cvsq-switch --prefix PATH : ${lib.makeBinPath + [ cvs nettools findutils rsync coreutils diffutils ]} + wrapProgram $out/bin/lcvs --prefix PATH : ${lib.makeBinPath + [ cvs nettools findutils rsync coreutils diffutils ]} + ''; + + meta = { + description = "A collection of tools to work locally with CVS"; + longDescription = '' + cvsq is a collection of tools to work locally with CVS. + + cvsq queues commits and other cvs commands in a queue to be executed later, + when the machine is online again. In case of a commit (the default action) + an actual copy of the working directory is made, so that you can continue + editing without affecting the scheduled commit. You can even schedule + several successive commits to the same file and they will be correctly + committed as successive commits at the time of upload. This is different + from an earlier script also named cvsq that you might have seen elsewhere. + + lcvs uses rsync to maintain a local copy of a cvs repository. It also + gives a convenient interface to call cvs in such a way that it believes the + current working directory refers to the local copy rather than to the actual + repository. This is useful for commands like log, diff, etc; however it cannot + be used for commits (that's what cvsq is for). + ''; + homepage = "https://www.linta.de/~aehlig/cvsq/"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ clkamp ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/cz-cli/default.nix b/nixpkgs/pkgs/applications/version-management/cz-cli/default.nix new file mode 100644 index 000000000000..d87b6d48c221 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/cz-cli/default.nix @@ -0,0 +1,26 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage rec { + pname = "cz-cli"; + version = "4.3.0"; + + src = fetchFromGitHub { + owner = "commitizen"; + repo = "cz-cli"; + rev = "refs/tags/v${version}"; + hash = "sha256-4kyGxidE8dzkHL0oPv/XxDxQ3qlEE6TKSgj+1g9uvJM="; + }; + + npmDepsHash = "sha256-zQ0T/1khnn+CXm/3yc9nANL0ROEEE03U5fV57btEmPg="; + + meta = with lib; { + description = "The commitizen command line utility"; + homepage = "https://commitizen.github.io/cz-cli"; + changelog = "https://github.com/commitizen/cz-cli/releases/tag/v${version}"; + maintainers = with maintainers; [ freezeboy natsukium ]; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/danger-gitlab/Gemfile b/nixpkgs/pkgs/applications/version-management/danger-gitlab/Gemfile new file mode 100644 index 000000000000..7c95dac9dd35 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/danger-gitlab/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'danger-gitlab' diff --git a/nixpkgs/pkgs/applications/version-management/danger-gitlab/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/danger-gitlab/Gemfile.lock new file mode 100644 index 000000000000..d68ec3108ca2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/danger-gitlab/Gemfile.lock @@ -0,0 +1,92 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + claide (1.0.3) + claide-plugins (0.9.2) + cork + nap + open4 (~> 1.3) + colored2 (3.1.2) + cork (0.3.0) + colored2 (~> 3.1) + danger (8.3.1) + claide (~> 1.0) + claide-plugins (>= 0.9.2) + colored2 (~> 3.1) + cork (~> 0.1) + faraday (>= 0.9.0, < 2.0) + faraday-http-cache (~> 2.0) + git (~> 1.7) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) + no_proxy_fix + octokit (~> 4.7) + terminal-table (>= 1, < 4) + danger-gitlab (8.0.0) + danger + gitlab (~> 4.2, >= 4.2.0) + faraday (1.7.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + multipart-post (>= 1.2, < 3) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-http-cache (2.2.0) + faraday (>= 0.8) + faraday-httpclient (1.0.1) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + git (1.9.1) + rchardet (~> 1.8) + gitlab (4.17.0) + httparty (~> 0.18) + terminal-table (~> 1.5, >= 1.5.1) + httparty (0.18.1) + mime-types (~> 3.0) + multi_xml (>= 0.5.2) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + mime-types (3.3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2021.0704) + multi_xml (0.6.0) + multipart-post (2.1.1) + nap (1.1.0) + no_proxy_fix (0.1.2) + octokit (4.21.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + open4 (1.3.4) + public_suffix (4.0.6) + rchardet (1.8.0) + rexml (3.2.5) + ruby2_keywords (0.0.5) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + unicode-display_width (1.7.0) + +PLATFORMS + ruby + +DEPENDENCIES + danger-gitlab + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/version-management/danger-gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/danger-gitlab/default.nix new file mode 100644 index 000000000000..654ad2c82d56 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/danger-gitlab/default.nix @@ -0,0 +1,15 @@ +{ lib, bundlerApp }: + +bundlerApp { + pname = "danger-gitlab"; + gemdir = ./.; + exes = [ "danger" ]; + + meta = with lib; { + description = "A gem that exists to ensure all dependencies are set up for Danger with GitLab"; + homepage = "https://github.com/danger/danger-gitlab-gem"; + license = licenses.mit; + maintainers = teams.serokell.members; + mainProgram = "danger"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/danger-gitlab/gemset.nix b/nixpkgs/pkgs/applications/version-management/danger-gitlab/gemset.nix new file mode 100644 index 000000000000..299716a33bd8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/danger-gitlab/gemset.nix @@ -0,0 +1,388 @@ +{ + addressable = { + dependencies = ["public_suffix"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp"; + type = "gem"; + }; + version = "2.8.0"; + }; + claide = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z"; + type = "gem"; + }; + version = "1.0.3"; + }; + claide-plugins = { + dependencies = ["cork" "nap" "open4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bhw5j985qs48v217gnzva31rw5qvkf7qj8mhp73pcks0sy7isn7"; + type = "gem"; + }; + version = "0.9.2"; + }; + colored2 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i"; + type = "gem"; + }; + version = "3.1.2"; + }; + cork = { + dependencies = ["colored2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g6l780z1nj4s3jr11ipwcj8pjbibvli82my396m3y32w98ar850"; + type = "gem"; + }; + version = "0.3.0"; + }; + danger = { + dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12nmycrlwr8ca2s0fx76k81gjw12iz15k1n0qanszv5d4l1ykj2l"; + type = "gem"; + }; + version = "8.3.1"; + }; + danger-gitlab = { + dependencies = ["danger" "gitlab"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a530kx5s5rbx5yx3jqay56lkksqh0yj468hcpg16faiyv8dfza9"; + type = "gem"; + }; + version = "8.0.0"; + }; + faraday = { + dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r6ik2yvsbx6jj30vck32da2bbvj4m0gf4jhp09vr75i1d6jzfvb"; + type = "gem"; + }; + version = "1.7.0"; + }; + faraday-em_http = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-em_synchrony = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-excon = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"; + type = "gem"; + }; + version = "1.1.0"; + }; + faraday-http-cache = { + dependencies = ["faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lhfwlk4mhmw9pdlgdsl2bq4x45w7s51jkxjryf18wym8iiw36g7"; + type = "gem"; + }; + version = "2.2.0"; + }; + faraday-httpclient = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc"; + type = "gem"; + }; + version = "1.0.1"; + }; + faraday-net_http = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; + type = "gem"; + }; + version = "1.0.1"; + }; + faraday-net_http_persistent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b"; + type = "gem"; + }; + version = "1.2.0"; + }; + faraday-patron = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-rack = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g"; + type = "gem"; + }; + version = "1.0.0"; + }; + git = { + dependencies = ["rchardet"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s6426k24ph44kbx1qb16ciar170iczs8ivyl29ckin2ygmrrlvm"; + type = "gem"; + }; + version = "1.9.1"; + }; + gitlab = { + dependencies = ["httparty" "terminal-table"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00p8z8sxk78zik2dwdhflkvaynp5ximy2xc8cw6bz93gkr1xy8n3"; + type = "gem"; + }; + version = "4.17.0"; + }; + httparty = { + dependencies = ["mime-types" "multi_xml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17gpnbf2a7xkvsy20jig3ljvx8hl5520rqm9pffj2jrliq1yi3w7"; + type = "gem"; + }; + version = "0.18.1"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar"; + type = "gem"; + }; + version = "2.3.1"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh"; + type = "gem"; + }; + version = "3.3.1"; + }; + mime-types-data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dlxwc75iy0dj23x824cxpvpa7c8aqcpskksrmb32j6m66h5mkcy"; + type = "gem"; + }; + version = "3.2021.0704"; + }; + multi_xml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + multipart-post = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; + type = "gem"; + }; + version = "2.1.1"; + }; + nap = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll"; + type = "gem"; + }; + version = "1.1.0"; + }; + no_proxy_fix = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "006dmdb640v1kq0sll3dnlwj1b0kpf3i1p27ygyffv8lpcqlr6sf"; + type = "gem"; + }; + version = "0.1.2"; + }; + octokit = { + dependencies = ["faraday" "sawyer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27"; + type = "gem"; + }; + version = "4.21.0"; + }; + open4 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1"; + type = "gem"; + }; + version = "1.3.4"; + }; + public_suffix = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9"; + type = "gem"; + }; + version = "4.0.6"; + }; + rchardet = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9"; + type = "gem"; + }; + version = "1.8.0"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + type = "gem"; + }; + version = "3.2.5"; + }; + ruby2_keywords = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz"; + type = "gem"; + }; + version = "0.0.5"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz"; + type = "gem"; + }; + version = "0.8.2"; + }; + terminal-table = { + dependencies = ["unicode-display_width"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk"; + type = "gem"; + }; + version = "1.8.0"; + }; + unicode-display_width = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna"; + type = "gem"; + }; + version = "1.7.0"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/darcs-to-git/default.nix b/nixpkgs/pkgs/applications/version-management/darcs-to-git/default.nix new file mode 100644 index 000000000000..14348921054b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/darcs-to-git/default.nix @@ -0,0 +1,82 @@ +{ lib, stdenv, fetchFromGitHub, ruby, gnugrep, diffutils, git, darcs }: + +stdenv.mkDerivation { + pname = "darcs-to-git"; + version = "2015-06-04"; + + src = fetchFromGitHub { + owner = "purcell"; + repo = "darcs-to-git"; + rev = "e5fee32495908fe0f7d700644c7b37347b7a0a5b"; + sha256 = "sha256-UQI3av+0zj1SNwEonwuk5n2RjZN3+tSJFJuFCjrorFM="; + }; + + patchPhase = let + matchExecution = ''(\<(output_of|system|run)\([^"%]*("|%w\()|^[^"`]*`)''; + in '' + sed -r -i \ + -e '1s|^#!.*|#!${ruby}/bin/ruby|' \ + -e 's!${matchExecution}git\>!\1${git}/bin/git!' \ + -e 's!${matchExecution}darcs\>!\1${darcs}/bin/darcs!' \ + -e 's!${matchExecution}diff\>!\1${diffutils}/bin/diff!' \ + -e 's!\<egrep\>!${gnugrep}/bin/egrep!g' \ + -e 's!%w\(darcs init\)!%w(${darcs}/bin/darcs init)!' \ + darcs-to-git + ''; + + installPhase = '' + install -vD darcs-to-git "$out/bin/darcs-to-git" + ''; + + doCheck = true; + + checkPhase = '' + orig_dir="$(pwd)" + darcs_repos="$(pwd)/darcs_test_repos" + git_repos="$(pwd)/git_test_repos" + test_home="$(pwd)/test_home" + mkdir "$darcs_repos" "$git_repos" "$test_home" + cd "$darcs_repos" + ${darcs}/bin/darcs init + echo "this is a test file" > new_file1 + ${darcs}/bin/darcs add new_file1 + HOME="$test_home" ${darcs}/bin/darcs record -a -m c1 -A none + echo "testfile1" > new_file1 + echo "testfile2" > new_file2 + ${darcs}/bin/darcs add new_file2 + HOME="$test_home" ${darcs}/bin/darcs record -a -m c2 -A none + ${darcs}/bin/darcs mv new_file2 only_one_file + rm -f new_file1 + HOME="$test_home" ${darcs}/bin/darcs record -a -m c3 -A none + cd "$git_repos" + HOME="$test_home" PATH= "$orig_dir/darcs-to-git" "$darcs_repos" + assertFileContents() { + echo -n "File $1 contains '$2'..." >&2 + if [ "x$(cat "$1")" = "x$2" ]; then + echo " passed." >&2 + return 0 + else + echo " failed: '$(cat "$1")' != '$2'" >&2 + return 1 + fi + } + echo "Checking if converted repository matches original repository:" >&2 + assertFileContents only_one_file testfile2 + ${git}/bin/git reset --hard HEAD^ + assertFileContents new_file1 testfile1 + assertFileContents new_file2 testfile2 + ${git}/bin/git reset --hard HEAD^ + assertFileContents new_file1 "this is a test file" + echo "All checks passed." >&2 + cd "$orig_dir" + rm -rf "$darcs_repos" "$git_repos" "$test_home" + ''; + + meta = { + description = "Converts a Darcs repository into a Git repository"; + homepage = "http://www.sanityinc.com/articles/converting-darcs-repositories-to-git"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + mainProgram = "darcs-to-git"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/datalad/default.nix b/nixpkgs/pkgs/applications/version-management/datalad/default.nix new file mode 100644 index 000000000000..2b7d9eb032f9 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/datalad/default.nix @@ -0,0 +1,86 @@ +{ lib, stdenv, fetchFromGitHub, installShellFiles, python3, git, git-annex }: + +python3.pkgs.buildPythonApplication rec { + pname = "datalad"; + version = "1.0.2"; + + src = fetchFromGitHub { + owner = "datalad"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-oq+DdlWcwjJSQdnqHlYCa9I7iSOKf+hI35Lcv/GM24c="; + }; + + nativeBuildInputs = [ installShellFiles git ]; + + propagatedBuildInputs = with python3.pkgs; [ + # core + platformdirs + chardet + iso8601 + humanize + fasteners + packaging + patool + tqdm + annexremote + looseversion + setuptools + git-annex + + # downloaders-extra + # requests-ftp # not in nixpkgs yet + + # downloaders + boto + keyrings-alt + keyring + msgpack + requests + + # publish + python-gitlab + + # misc + argcomplete + pyperclip + python-dateutil + + # metadata + simplejson + whoosh + + # metadata-extra + pyyaml + mutagen + exifread + python-xmp-toolkit + pillow + + # duecredit + duecredit + + # python>=3.8 + distro + ] ++ lib.optionals stdenv.hostPlatform.isWindows [ colorama ] + ++ lib.optionals (python3.pythonOlder "3.10") [ importlib-metadata ]; + + postInstall = '' + installShellCompletion --cmd datalad \ + --bash <($out/bin/datalad shell-completion) \ + --zsh <($out/bin/datalad shell-completion) + wrapProgram $out/bin/datalad --prefix PYTHONPATH : "$PYTHONPATH" + ''; + + # no tests + doCheck = false; + + pythonImportsCheck = [ "datalad" ]; + + meta = with lib; { + description = "Keep code, data, containers under control with git and git-annex"; + homepage = "https://www.datalad.org"; + license = licenses.mit; + maintainers = with maintainers; [ renesat ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/deepgit/default.nix b/nixpkgs/pkgs/applications/version-management/deepgit/default.nix new file mode 100644 index 000000000000..8a778526b4ad --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/deepgit/default.nix @@ -0,0 +1,87 @@ +{ copyDesktopItems +, fetchurl +, glib +, gnome +, gtk3 +, jre +, lib +, makeDesktopItem +, stdenv +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "deepgit"; + version = "4.4"; + + src = fetchurl { + url = "https://www.syntevo.com/downloads/deepgit/deepgit-linux-${lib.replaceStrings [ "." ] [ "_" ] version}.tar.gz"; + hash = "sha256-ILqwXDyW7/hZzoSxxaxv4bF5xsB/JFaOBYAJFb7xmdk="; + }; + + nativeBuildInputs = [ + copyDesktopItems + wrapGAppsHook + ]; + + buildInputs = [ + gnome.adwaita-icon-theme + gtk3 + jre + ]; + + preFixup = '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk3 ]} + --set DEEPGIT_JAVA_HOME ${jre} + ) + patchShebangs bin/deepgit.sh + ''; + + desktopItems = [(makeDesktopItem rec { + name = pname; + desktopName = "DeepGit"; + keywords = [ "git" ]; + comment = "Git-Client"; + categories = [ + "Development" + "RevisionControl" + ]; + terminal = false; + startupNotify = true; + startupWMClass = desktopName; + exec = pname; + mimeTypes = [ + "x-scheme-handler/${pname}" + "x-scheme-handler/sourcetree" + ]; + icon = pname; + })]; + + installPhase = '' + runHook preInstall + + mkdir -pv $out/{bin,share/icons/hicolor/scalable/apps/} + cp -a lib license.html $out + mv bin/deepgit.sh $out/bin/deepgit + + for icon_size in 32 48 64 128 256; do + path=$icon_size'x'$icon_size + icon=bin/deepgit-$icon_size.png + mkdir -p $out/share/icons/hicolor/$path/apps + cp $icon $out/share/icons/hicolor/$path/apps/deepgit.png + done + + runHook postInstall + ''; + + meta = with lib; { + description = "A tool to investigate the history of source code"; + homepage = "https://www.syntevo.com/deepgit"; + changelog = "https://www.syntevo.com/deepgit/changelog.txt"; + license = licenses.unfree; + maintainers = with maintainers; [ urandom ]; + platforms = platforms.linux; + mainProgram = "deepgit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/degit/default.nix b/nixpkgs/pkgs/applications/version-management/degit/default.nix new file mode 100644 index 000000000000..b126569c5991 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/degit/default.nix @@ -0,0 +1,27 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage rec { + pname = "degit"; + version = "2.8.4"; + + src = fetchFromGitHub { + owner = "Rich-Harris"; + repo = "degit"; + rev = "v${version}"; + hash = "sha256-Vw/gtmKywi5faSCs7Wek80nmnqcPHXlQarD5qMwlsQE="; + }; + + npmDepsHash = "sha256-42cM31C2c1Gr7HWOowMUTEUEyL0mGnyl5fyQECcz1Sw="; + + meta = { + changelog = "https://github.com/Rich-Harris/degit/blob/${src.rev}/CHANGELOG.md"; + description = "Make copies of git repositories"; + homepage = "https://github.com/Rich-Harris/degit"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ kidonng ]; + mainProgram = "degit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/delta/default.nix b/nixpkgs/pkgs/applications/version-management/delta/default.nix new file mode 100644 index 000000000000..c669eb0be1f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/delta/default.nix @@ -0,0 +1,64 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, installShellFiles +, pkg-config +, oniguruma +, stdenv +, darwin +, git +}: + +rustPlatform.buildRustPackage rec { + pname = "delta"; + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "dandavison"; + repo = pname; + rev = version; + hash = "sha256-r0ED9o2UP91fe6Bng5ioJra5S1bg+UEXMLeSQPkMswI="; + }; + + cargoHash = "sha256-3CxRNhcjfDK/xUuM3w+GwqE0+X6WT92/LGj/qRp0TwA="; + + nativeBuildInputs = [ + installShellFiles + pkg-config + ]; + + buildInputs = [ + oniguruma + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk_11_0.frameworks.Foundation + ]; + + nativeCheckInputs = [ git ]; + + env = { + RUSTONIG_SYSTEM_LIBONIG = true; + }; + + postInstall = '' + installShellCompletion --cmd delta \ + etc/completion/completion.{bash,fish,zsh} + ''; + + # test_env_parsing_with_pager_set_to_bat sets environment variables, + # which can be flaky with multiple threads: + # https://github.com/dandavison/delta/issues/1660 + dontUseCargoParallelTests = true; + + checkFlags = lib.optionals stdenv.isDarwin [ + "--skip=test_diff_same_non_empty_file" + ]; + + meta = with lib; { + homepage = "https://github.com/dandavison/delta"; + description = "A syntax-highlighting pager for git"; + changelog = "https://github.com/dandavison/delta/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ zowoq SuperSandro2000 figsoda ]; + mainProgram = "delta"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/diff-so-fancy/default.nix b/nixpkgs/pkgs/applications/version-management/diff-so-fancy/default.nix new file mode 100644 index 000000000000..ef9b81f6d031 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/diff-so-fancy/default.nix @@ -0,0 +1,58 @@ +{lib, stdenv, git, perl, ncurses, coreutils, fetchFromGitHub, makeWrapper, ...}: + +stdenv.mkDerivation rec { + pname = "diff-so-fancy"; + version = "1.4.4"; + + src = fetchFromGitHub { + owner = "so-fancy"; + repo = "diff-so-fancy"; + rev = "v${version}"; + sha256 = "sha256-yF+LI1lsE1qwOc3u7mtc+uu0N/8m4bZD5qP+xFraaTI="; + }; + + nativeBuildInputs = [ + makeWrapper + ]; + + buildInputs = [ + perl # needed for patchShebangs + ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin $out/lib/diff-so-fancy + + # diff-so-fancy executable searches for it's library relative to + # itself, so we are copying executable to lib, and only symlink it + # from bin/ + cp diff-so-fancy $out/lib/diff-so-fancy + cp -r lib $out/lib/diff-so-fancy + ln -s $out/lib/diff-so-fancy/diff-so-fancy $out/bin + + # ncurses is needed for `tput` + wrapProgram $out/lib/diff-so-fancy/diff-so-fancy \ + --prefix PATH : "${git}/share/git/contrib/diff-highlight" \ + --prefix PATH : "${git}/bin" \ + --prefix PATH : "${coreutils}/bin" \ + --prefix PATH : "${ncurses.out}/bin" + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/so-fancy/diff-so-fancy"; + description = "Good-looking diffs filter for git"; + license = licenses.mit; + platforms = platforms.all; + longDescription = '' + diff-so-fancy builds on the good-lookin' output of git contrib's + diff-highlight to upgrade your diffs' appearances. + ''; + maintainers = with maintainers; [ fpletz ma27 ]; + mainProgram = "diff-so-fancy"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/fast-export/default.nix new file mode 100644 index 000000000000..a4d9c030c9b4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/fast-export/default.nix @@ -0,0 +1,67 @@ +{lib, stdenv, fetchFromGitHub, git, mercurial, makeWrapper}: + +stdenv.mkDerivation rec { + pname = "fast-export"; + version = "221024"; + + src = fetchFromGitHub { + owner = "frej"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-re8iXM8s+TD35UGKalq2kVn8fx68fsnUC7Yo+/DQ9SM="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [mercurial.python mercurial]; + + installPhase = '' + binPath=$out/bin + libexecPath=$out/libexec/${pname} + sitepackagesPath=$out/${mercurial.python.sitePackages} + mkdir -p $binPath $libexecPath $sitepackagesPath + + # Patch shell scripts so they can execute the Python scripts + sed -i "s|ROOT=.*|ROOT=$libexecPath|" *.sh + + mv hg-fast-export.sh hg-reset.sh $binPath + mv hg-fast-export.py hg-reset.py $libexecPath + mv hg2git.py pluginloader plugins $sitepackagesPath + + for script in $out/bin/*.sh; do + wrapProgram $script \ + --prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \ + --prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath + done + ''; + + doInstallCheck = true; + # deliberately not adding git or hg into nativeInstallCheckInputs - package should + # be able to work without them in runtime env + installCheckPhase = '' + mkdir repo-hg + pushd repo-hg + ${mercurial}/bin/hg init + echo foo > bar + ${mercurial}/bin/hg add bar + ${mercurial}/bin/hg commit --message "baz" + popd + + mkdir repo-git + pushd repo-git + ${git}/bin/git init + ${git}/bin/git config core.ignoreCase false # for darwin + $out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash + for s in "foo" "bar" "baz" ; do + (${git}/bin/git show | grep $s > /dev/null) && echo $s found + done + popd + ''; + + meta = with lib; { + description = "Import mercurial into git"; + homepage = "https://repo.or.cz/w/fast-export.git"; + license = licenses.gpl2; + maintainers = [ maintainers.koral ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/fnc/default.nix b/nixpkgs/pkgs/applications/version-management/fnc/default.nix new file mode 100644 index 000000000000..e07b53854400 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/fnc/default.nix @@ -0,0 +1,41 @@ +{ lib, fetchurl, fetchpatch, stdenv, zlib, ncurses, libiconv }: + +stdenv.mkDerivation (finalAttrs: { + pname = "fnc"; + version = "0.16"; + + src = fetchurl { + url = "https://fnc.bsdbox.org/tarball/${finalAttrs.version}/fnc-${finalAttrs.version}.tar.gz"; + hash = "sha256-6I6wtSMHaKdnlUK4pYiaybJeODGu2P+smYW8lQDIWGM="; + }; + + buildInputs = [ libiconv ncurses zlib ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [ + # Needed with GCC 12 + "-Wno-error=maybe-uninitialized" + ] ++ lib.optionals stdenv.isDarwin [ + # error: 'strtonum' is only available on macOS 11.0 or newer + "-Wno-error=unguarded-availability-new" + ]); + + preInstall = '' + mkdir -p $out/bin + ''; + + meta = with lib; { + description = "Interactive ncurses browser for Fossil repositories"; + longDescription = '' + An interactive ncurses browser for Fossil repositories. + + fnc uses libfossil to create a fossil ui experience in the terminal. + ''; + homepage = "https://fnc.bsdbox.org"; + license = licenses.isc; + platforms = platforms.all; + maintainers = with maintainers; [ abbe ]; + mainProgram = "fnc"; + }; +}) diff --git a/nixpkgs/pkgs/applications/version-management/fornalder/default.nix b/nixpkgs/pkgs/applications/version-management/fornalder/default.nix new file mode 100644 index 000000000000..7d012c83606a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/fornalder/default.nix @@ -0,0 +1,30 @@ +{ lib, rustPlatform, fetchFromGitHub, makeWrapper, gnuplot }: + +rustPlatform.buildRustPackage rec { + pname = "fornalder"; + version = "unstable-2022-12-25"; + + src = fetchFromGitHub { + owner = "hpjansson"; + repo = pname; + rev = "3248128fe320d88183d17a65e936092e07d6529b"; + sha256 = "sha256-IPSxVWJs4EhyBdA1NXpD8v3fusewt1ELpn/kbZt7c5Q="; + }; + + cargoSha256 = "sha256-eK+oQbOQj8pKiOTXzIgRjzVB7Js8MMa9V6cF9D98Ftc="; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/fornalder \ + --suffix PATH : ${lib.makeBinPath [ gnuplot ]} + ''; + + meta = with lib; { + description = "Visualize long-term trends in collections of Git repositories"; + homepage = "https://github.com/hpjansson/fornalder"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ astro figsoda ]; + mainProgram = "fornalder"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/fossil/default.nix b/nixpkgs/pkgs/applications/version-management/fossil/default.nix new file mode 100644 index 000000000000..15d6bc84caa5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/fossil/default.nix @@ -0,0 +1,71 @@ +{ lib, stdenv +, installShellFiles +, tcl +, libiconv +, fetchurl +, buildPackages +, zlib +, openssl +, readline +, withInternalSqlite ? true +, sqlite +, ed +, which +, tcllib +, withJson ? true +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "fossil"; + version = "2.23"; + + src = fetchurl { + url = "https://www.fossil-scm.org/home/tarball/version-${finalAttrs.version}/fossil-${finalAttrs.version}.tar.gz"; + hash = "sha256-dfgI6BNRAYqXFnRtnvGh/huxkEcz6LQYZDiB04GYhZM="; + }; + + # required for build time tool `./tools/translate.c` + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + nativeBuildInputs = [ installShellFiles tcl tcllib ]; + + buildInputs = [ zlib openssl readline which ed ] + ++ lib.optional stdenv.isDarwin libiconv + ++ lib.optional (!withInternalSqlite) sqlite; + + enableParallelBuilding = true; + + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; + + configureFlags = + lib.optional (!withInternalSqlite) "--disable-internal-sqlite" + ++ lib.optional withJson "--json"; + + preBuild = '' + export USER=nonexistent-but-specified-user + ''; + + installPhase = '' + mkdir -p $out/bin + INSTALLDIR=$out/bin make install + + installManPage fossil.1 + installShellCompletion --name fossil.bash tools/fossil-autocomplete.bash + ''; + + meta = with lib; { + description = "Simple, high-reliability, distributed software configuration management"; + longDescription = '' + Fossil is a software configuration management system. Fossil is + software that is designed to control and track the development of a + software project and to record the history of the project. There are + many such systems in use today. Fossil strives to distinguish itself + from the others by being extremely simple to setup and operate. + ''; + homepage = "https://www.fossil-scm.org/"; + license = licenses.bsd2; + maintainers = with maintainers; [ maggesi viric ]; + platforms = platforms.all; + mainProgram = "fossil"; + }; +}) diff --git a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix new file mode 100644 index 000000000000..41179dfd0bcd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl }: + +stdenv.mkDerivation rec { + pname = "gerrit"; + version = "3.9.4"; + + src = fetchurl { + url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war"; + hash = "sha256-pjrWXfae1momJRTfdIPalsLynAGwqp1VtX9M9uqzJwM="; + }; + + buildCommand = '' + mkdir -p "$out"/webapps/ + ln -s ${src} "$out"/webapps/gerrit-${version}.war + ''; + + passthru = { + # A list of plugins that are part of the gerrit.war file. + # Use `java -jar gerrit.war ls | grep plugins/` to generate that list. + plugins = [ + "codemirror-editor" + "commit-message-length-validator" + "delete-project" + "download-commands" + "gitiles" + "hooks" + "plugin-manager" + "replication" + "reviewnotes" + "singleusergroup" + "webhooks" + ]; + }; + + meta = with lib; { + homepage = "https://www.gerritcodereview.com/index.md"; + license = licenses.asl20; + description = "A web based code review and repository management for the git version control system"; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; + maintainers = with maintainers; [ flokli zimbatm ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gex/default.nix b/nixpkgs/pkgs/applications/version-management/gex/default.nix new file mode 100644 index 000000000000..51a8839261af --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gex/default.nix @@ -0,0 +1,42 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, pkg-config +, libgit2 +, Security +}: + +rustPlatform.buildRustPackage rec { + pname = "gex"; + version = "0.6.4"; + + src = fetchFromGitHub { + owner = "Piturnah"; + repo = pname; + rev = "v${version}"; + hash = "sha256-Xer7a3UtFIv3idchI7DfZ5u6qgDW/XFWi5ihtcREXqo="; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + libgit2 + ] ++ lib.optionals stdenv.isDarwin [ + Security + ]; + + # force the libgit2-sys crate to use the system libgit2 library + LIBGIT2_NO_VENDOR = 1; + + cargoHash = "sha256-HNz1wwn0eUhNR6ZLLPMse8LmAS4CzADx0ZR9gJgJQCg="; + + meta = with lib; { + description = "Git Explorer: cross-platform git workflow improvement tool inspired by Magit"; + homepage = "https://github.com/Piturnah/gex"; + changelog = "https://github.com/Piturnah/gex/releases/tag/${src.rev}"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ azd325 evanrichter piturnah ]; + mainProgram = "gex"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gfold/default.nix b/nixpkgs/pkgs/applications/version-management/gfold/default.nix new file mode 100644 index 000000000000..b60c38fa1d30 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gfold/default.nix @@ -0,0 +1,47 @@ +{ + fetchFromGitHub, + gfold, + lib, + libiconv, + rustPlatform, + Security, + stdenv, + testers, +}: + +let + pname = "gfold"; + version = "4.4.1"; +in +rustPlatform.buildRustPackage { + inherit pname version; + + src = fetchFromGitHub { + owner = "nickgerace"; + repo = pname; + rev = version; + sha256 = "sha256-KKuWPitm7oD2mXPSu2rbOyzwJ9JJ23LBQIIkkPHm1w4="; + }; + + cargoHash = "sha256-wDUOYK9e0i600UnJ0w0FPI2GhTa/QTq/2+ICiDWrmEU="; + + buildInputs = lib.optionals stdenv.isDarwin [ + libiconv + Security + ]; + + passthru.tests.version = testers.testVersion { + package = gfold; + command = "gfold --version"; + inherit version; + }; + + meta = with lib; { + description = "CLI tool to help keep track of your Git repositories, written in Rust"; + homepage = "https://github.com/nickgerace/gfold"; + license = licenses.asl20; + maintainers = [ maintainers.sigmanificient ]; + platforms = platforms.unix; + mainProgram = "gfold"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gg/default.nix b/nixpkgs/pkgs/applications/version-management/gg/default.nix new file mode 100644 index 000000000000..89fd45e45f0d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gg/default.nix @@ -0,0 +1,63 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, installShellFiles +, makeWrapper +, bash +, coreutils +, git +, pandoc +}: + +let + version = "1.3.1"; + commit = "b6be8bac78605c21a9670db0e44faf5e1eafe0d4"; +in buildGoModule { + pname = "gg-scm"; + inherit version; + + src = fetchFromGitHub { + owner = "gg-scm"; + repo = "gg"; + rev = "v${version}"; + hash = "sha256-qw0KWhCkJVYRhDBNtiNactWGGMHjBwdQ1Po4lQQbaj4="; + }; + postPatch = '' + substituteInPlace cmd/gg/editor_unix.go \ + --replace /bin/sh ${bash}/bin/sh + ''; + subPackages = [ "cmd/gg" ]; + ldflags = [ + "-s" "-w" + "-X" "main.versionInfo=${version}" + "-X" "main.buildCommit=${commit}" + ]; + + vendorHash = "sha256-56Sah030xbWsoOu8r3c3nN2UGHvQORheavebP+Z1Wc8="; + + nativeBuildInputs = [ pandoc installShellFiles makeWrapper ]; + nativeCheckInputs = [ bash coreutils git ]; + buildInputs = [ bash git ]; + + postInstall = '' + wrapProgram $out/bin/gg --suffix PATH : ${git}/bin + pandoc --standalone --to man misc/gg.1.md -o misc/gg.1 + installManPage misc/gg.1 + installShellCompletion --cmd gg \ + --bash misc/gg.bash \ + --zsh misc/_gg.zsh + ''; + + meta = with lib; { + mainProgram = "gg"; + description = "Git with less typing"; + longDescription = '' + gg is an alternative command-line interface for Git heavily inspired by Mercurial. + It's designed for less typing in common workflows, + making Git easier to use for both novices and advanced users alike. + ''; + homepage = "https://gg-scm.io/"; + changelog = "https://github.com/gg-scm/gg/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gh/default.nix b/nixpkgs/pkgs/applications/version-management/gh/default.nix new file mode 100644 index 000000000000..d5633ef5e3d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gh/default.nix @@ -0,0 +1,53 @@ +{ lib, fetchFromGitHub, buildGoModule, installShellFiles, stdenv, testers, gh }: + +buildGoModule rec { + pname = "gh"; + version = "2.49.0"; + + src = fetchFromGitHub { + owner = "cli"; + repo = "cli"; + rev = "v${version}"; + hash = "sha256-4aT8ThZt2Dlp2RjaGBiTgw2IPantSnTJPhP5Tel755Q="; + }; + + vendorHash = "sha256-p+1Knx+z1M3m8VjsvBfY6D1Gs5va5Z8QFExv5397wHU="; + + nativeBuildInputs = [ installShellFiles ]; + + buildPhase = '' + runHook preBuild + make GO_LDFLAGS="-s -w" GH_VERSION=${version} bin/gh ${lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) "manpages"} + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -Dm755 bin/gh -t $out/bin + '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installManPage share/man/*/*.[1-9] + + installShellCompletion --cmd gh \ + --bash <($out/bin/gh completion -s bash) \ + --fish <($out/bin/gh completion -s fish) \ + --zsh <($out/bin/gh completion -s zsh) + '' + '' + runHook postInstall + ''; + + # most tests require network access + doCheck = false; + + passthru.tests.version = testers.testVersion { + package = gh; + }; + + meta = with lib; { + description = "GitHub CLI tool"; + homepage = "https://cli.github.com/"; + changelog = "https://github.com/cli/cli/releases/tag/v${version}"; + license = licenses.mit; + mainProgram = "gh"; + maintainers = with maintainers; [ zowoq ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/ghorg/default.nix b/nixpkgs/pkgs/applications/version-management/ghorg/default.nix new file mode 100644 index 000000000000..0d8b4e27e6a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/ghorg/default.nix @@ -0,0 +1,45 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "ghorg"; + version = "1.9.11"; + + src = fetchFromGitHub { + owner = "gabrie30"; + repo = "ghorg"; + rev = "v${version}"; + sha256 = "sha256-22/HM/DYkNh8V1v09fca6/3TLwzYudpH/VNbh+3+iyE="; + }; + + doCheck = false; + vendorHash = null; + + subPackages = [ "." ]; + + ldflags = [ "-s" "-w" "-X main.version=${version}" ]; + + nativeBuildInputs = [ installShellFiles ]; + postInstall = '' + installShellCompletion --cmd ghorg \ + --bash <($out/bin/ghorg completion bash) \ + --fish <($out/bin/ghorg completion fish) \ + --zsh <($out/bin/ghorg completion zsh) + ''; + + meta = with lib; { + description = "Quickly clone an entire org/users repositories into one directory"; + longDescription = '' + ghorg allows you to quickly clone all of an orgs, or users repos into a + single directory. This can be useful in many situations including + - Searching an orgs/users codebase with ack, silver searcher, grep etc.. + - Bash scripting + - Creating backups + - Onboarding + - Performing Audits + ''; + homepage = "https://github.com/gabrie30/ghorg"; + license = licenses.asl20; + maintainers = with maintainers; [ vidbina ]; + mainProgram = "ghorg"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/ghq/default.nix b/nixpkgs/pkgs/applications/version-management/ghq/default.nix new file mode 100644 index 000000000000..da0fe83bf824 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/ghq/default.nix @@ -0,0 +1,34 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "ghq"; + version = "1.6.1"; + + src = fetchFromGitHub { + owner = "x-motemen"; + repo = "ghq"; + rev = "v${version}"; + sha256 = "sha256-fp/pqLpuEqvLoB3ioDd1Kx+i1NUI+bUDJzdaT7dQGSg="; + }; + + vendorHash = "sha256-M9B19rSEMnmT4wfOVnSAK06UPR/xrs0252lX3B9ebF8="; + + doCheck = false; + + ldflags = [ + "-X=main.Version=${version}" + ]; + + postInstall = '' + install -m 444 -D ${src}/misc/zsh/_ghq $out/share/zsh/site-functions/_ghq + install -m 444 -D ${src}/misc/bash/_ghq $out/share/bash-completion/completions/_ghq + ''; + + meta = { + description = "Remote repository management made easy"; + homepage = "https://github.com/x-motemen/ghq"; + maintainers = with lib.maintainers; [ sigma ]; + license = lib.licenses.mit; + mainProgram = "ghq"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/ghr/default.nix b/nixpkgs/pkgs/applications/version-management/ghr/default.nix new file mode 100644 index 000000000000..f7e6cadac0d3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/ghr/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, testers +, ghr +}: + +buildGoModule rec { + pname = "ghr"; + version = "0.16.2"; + + src = fetchFromGitHub { + owner = "tcnksm"; + repo = "ghr"; + rev = "v${version}"; + sha256 = "sha256-xClqqTVCEGghaf63kN40mwo49lkS8KC4k/36NYIngFI="; + }; + + vendorHash = "sha256-Wzzg66yJaHJUCfC2aH3Pk+B0d5l/+L7/bcNhQxo8ro0="; + + # Tests require a Github API token, and networking + doCheck = false; + doInstallCheck = true; + + passthru.tests.version = testers.testVersion { + package = ghr; + version = "v${version}"; + }; + + meta = with lib; { + homepage = "https://github.com/tcnksm/ghr"; + description = "Upload multiple artifacts to GitHub Release in parallel"; + license = licenses.mit; + maintainers = [ maintainers.ivar ]; + mainProgram = "ghr"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-absorb/default.nix b/nixpkgs/pkgs/applications/version-management/git-absorb/default.nix new file mode 100644 index 000000000000..8446d4dec155 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-absorb/default.nix @@ -0,0 +1,35 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }: + +rustPlatform.buildRustPackage rec { + pname = "git-absorb"; + version = "0.6.13"; + + src = fetchFromGitHub { + owner = "tummychow"; + repo = "git-absorb"; + rev = "refs/tags/${version}"; + hash = "sha256-k0smjIpy/+y6M5p24Ju4CVJkThzWOgp5kBJuVnCrXiE="; + }; + + nativeBuildInputs = [ installShellFiles ]; + + buildInputs = lib.optionals stdenv.isDarwin [ Security ]; + + cargoHash = "sha256-bRPdtiC9Dwi21g4WtjawQ2AUdizUEX2zPHAnG08D3ac="; + + postInstall = '' + installManPage Documentation/git-absorb.1 + installShellCompletion --cmd git-absorb \ + --bash <($out/bin/git-absorb --gen-completions bash) \ + --fish <($out/bin/git-absorb --gen-completions fish) \ + --zsh <($out/bin/git-absorb --gen-completions zsh) + ''; + + meta = with lib; { + homepage = "https://github.com/tummychow/git-absorb"; + description = "git commit --fixup, but automatic"; + license = [ licenses.bsd3 ]; + maintainers = with maintainers; [ tomfitzhenry ]; + mainProgram = "git-absorb"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-aggregator/default.nix b/nixpkgs/pkgs/applications/version-management/git-aggregator/default.nix new file mode 100644 index 000000000000..34365cb5d90d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-aggregator/default.nix @@ -0,0 +1,43 @@ +{ lib, python3Packages, fetchPypi, git }: + +python3Packages.buildPythonApplication rec { + pname = "git-aggregator"; + version = "2.1.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-79xNPzYP1j71sU5wZM5e2xTqQExqQEdxXPxbk4T/Scw="; + }; + + nativeBuildInputs = with python3Packages; [ + setuptools-scm + ]; + + propagatedBuildInputs = with python3Packages; [ + argcomplete + colorama + git + kaptan + requests + ]; + + nativeCheckInputs = [ + git + ]; + + preCheck = '' + export HOME="$(mktemp -d)" + git config --global user.name John + git config --global user.email john@localhost + git config --global init.defaultBranch master + git config --global pull.rebase false + ''; + + meta = with lib; { + description = "Manage the aggregation of git branches from different remotes to build a consolidated one"; + homepage = "https://github.com/acsone/git-aggregator"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ bbjubjub ]; + mainProgram = "gitaggregate"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix b/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix new file mode 100644 index 000000000000..3fcde8f900cc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix @@ -0,0 +1,34 @@ +{ lib, buildPythonApplication, fetchFromGitHub, pyqt5, qt5, git-annex-adapter }: + +buildPythonApplication rec { + pname = "git-annex-metadata-gui"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "alpernebbi"; + repo = "git-annex-metadata-gui"; + rev = "v${version}"; + sha256 = "03kch67k0q9lcs817906g864wwabkn208aiqvbiyqp1qbg99skam"; + }; + + prePatch = '' + substituteInPlace setup.py --replace "'PyQt5', " "" + ''; + + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + propagatedBuildInputs = [ pyqt5 git-annex-adapter ]; + + meta = with lib; { + homepage = "https://github.com/alpernebbi/git-annex-metadata-gui"; + description = "Graphical interface for git-annex metadata commands"; + mainProgram = "git-annex-metadata-gui"; + maintainers = with maintainers; [ dotlambda ]; + license = licenses.gpl3Plus; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-annex-remote-dbx/default.nix b/nixpkgs/pkgs/applications/version-management/git-annex-remote-dbx/default.nix new file mode 100644 index 000000000000..ed4825011490 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-annex-remote-dbx/default.nix @@ -0,0 +1,26 @@ +{ lib +, buildPythonApplication +, fetchPypi +, dropbox +, annexremote +, humanfriendly +}: + +buildPythonApplication rec { + pname = "git-annex-remote-dbx"; + version = "1.0.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "5b6f8025ed1e9877f06882ddbd81f701a8e094647ab97595e2afc09016835a7c"; + }; + + propagatedBuildInputs = [ dropbox annexremote humanfriendly ]; + + meta = with lib; { + description = "A git-annex special remote for Dropbox"; + homepage = "https://pypi.org/project/git-annex-remote-dbx/"; + license = licenses.mit; + mainProgram = "git-annex-remote-dbx"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix b/nixpkgs/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix new file mode 100644 index 000000000000..10eec961104d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-annex-remote-googledrive/default.nix @@ -0,0 +1,44 @@ +{ lib +, annexremote +, buildPythonApplication +, drivelib +, fetchPypi +, gitpython +, humanfriendly +, tenacity +}: + +buildPythonApplication rec { + pname = "git-annex-remote-googledrive"; + version = "1.3.2"; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + sha256 = "0rwjcdvfgzdlfgrn1rrqwwwiqqzyh114qddrbfwd46ld5spry6r1"; + }; + + propagatedBuildInputs = [ + annexremote + drivelib + gitpython + tenacity + humanfriendly + ]; + + # while git-annex does come with a testremote command that *could* be used, + # testing this special remote obviously depends on authenticating with google + doCheck = false; + + pythonImportsCheck = [ + "git_annex_remote_googledrive" + ]; + + meta = with lib; { + description = "A git-annex special remote for Google Drive"; + homepage = "https://pypi.org/project/git-annex-remote-googledrive/"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ gravndal ]; + mainProgram = "git-annex-remote-googledrive"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-annex-remote-rclone/default.nix b/nixpkgs/pkgs/applications/version-management/git-annex-remote-rclone/default.nix new file mode 100644 index 000000000000..4d1a7b2ade1d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-annex-remote-rclone/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenvNoCC, fetchFromGitHub, rclone, makeWrapper }: + +stdenvNoCC.mkDerivation rec { + pname = "git-annex-remote-rclone"; + version = "0.8"; + + src = fetchFromGitHub { + owner = "DanielDent"; + repo = "git-annex-remote-rclone"; + rev = "v${version}"; + sha256 = "sha256-B6x67XXE4BHd3x7a8pQlqPPmpy0c62ziDAldB4QpqQ4="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + install -Dm755 -t $out/bin git-annex-remote-rclone + wrapProgram "$out/bin/git-annex-remote-rclone" \ + --prefix PATH ":" "${lib.makeBinPath [ rclone ]}" + ''; + + meta = with lib; { + homepage = "https://github.com/DanielDent/git-annex-remote-rclone"; + description = "Use rclone supported cloud storage providers with git-annex"; + license = licenses.gpl3Only; + platforms = platforms.all; + maintainers = [ maintainers.montag451 ]; + mainProgram = "git-annex-remote-rclone"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-annex-utils/default.nix b/nixpkgs/pkgs/applications/version-management/git-annex-utils/default.nix new file mode 100644 index 000000000000..2b63192ea3b0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-annex-utils/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchgit, autoconf, automake, libtool, gmp }: + +stdenv.mkDerivation rec { + pname = "git-annex-utils"; + version = "0.04-3-g531bb33"; + src = fetchgit { + url = "http://git.mysteryvortex.com/repositories/git-annex-utils.git"; + rev = "531bb33"; + sha256 = "1sv7s2ykc840cjwbfn7ayy743643x9i1lvk4cd55w9l052xvzj65"; + }; + nativeBuildInputs = [ autoconf automake ]; + buildInputs = [ libtool gmp ]; + preConfigure = "./autogen.sh"; + + meta = { + description = "gadu, a du like utility for annexed files"; + longDescription = '' + This is a set of utilities that are handy to use with git-annex repositories. + Currently there is only one utility gadu, a du like utility for annexed files. + ''; + homepage = "https://git-annex.mysteryvortex.com/git-annex-utils.html"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ woffs ]; + mainProgram = "gadu"; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-appraise/default.nix b/nixpkgs/pkgs/applications/version-management/git-appraise/default.nix new file mode 100644 index 000000000000..cc77bf5aca65 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-appraise/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "git-appraise"; + version = "unstable-2022-04-13"; + + src = fetchFromGitHub { + owner = "google"; + repo = "git-appraise"; + rev = "99aeb0e71544d3e1952e208c339b1aec70968cf3"; + sha256 = "sha256-TteTI8yGP2sckoJ5xuBB5S8xzm1upXmZPlcDLvXZrpc="; + }; + + vendorHash = "sha256-Lzq4qpDAUjKFA2T685eW9NCfzEhDsn5UR1A1cIaZadE="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Distributed code review system for Git repos"; + homepage = "https://github.com/google/git-appraise"; + license = licenses.asl20; + maintainers = with maintainers; [ vdemeester ]; + mainProgram = "git-appraise"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-archive-all/default.nix b/nixpkgs/pkgs/applications/version-management/git-archive-all/default.nix new file mode 100644 index 000000000000..f38e08ba8c8e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-archive-all/default.nix @@ -0,0 +1,63 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, git +, pytestCheckHook +, pytest-mock +}: + +buildPythonApplication rec { + pname = "git-archive-all"; + version = "1.23.1"; + + src = fetchFromGitHub { + owner = "Kentzo"; + repo = "git-archive-all"; + rev = version; + hash = "sha256-fIPjggOx+CEorj1bazz8s81ZdppkTL0OlA5tRqCYZyc="; + }; + + # * Don't use pinned dependencies + # * Remove formatter and coverage generator + # * Don't fail on warnings. Almost all tests output this warning: + # ResourceWarning: unclosed file [...]/repo.tar + # https://github.com/Kentzo/git-archive-all/issues/90 + postPatch = '' + substituteInPlace setup.cfg \ + --replace pycodestyle==2.5.0 "" \ + --replace pytest==5.2.2 pytest \ + --replace pytest-cov==2.8.1 "" \ + --replace pytest-mock==1.11.2 pytest-mock \ + --replace "--cov=git_archive_all --cov-report=term --cov-branch" "" \ + --replace "filterwarnings = error" "" + substituteInPlace test_git_archive_all.py \ + --replace "import pycodestyle" "" + ''; + + nativeCheckInputs = [ + git + ]; + + checkInputs = [ + pytestCheckHook + pytest-mock + ]; + + disabledTests = [ "pycodestyle" ]; + + preCheck = '' + export HOME="$(mktemp -d)" + ''; + + meta = with lib; { + description = "Archive a repository with all its submodules"; + longDescription = '' + A python script wrapper for git-archive that archives a git superproject + and its submodules, if it has any. Takes into account .gitattributes + ''; + homepage = "https://github.com/Kentzo/git-archive-all"; + license = licenses.mit; + maintainers = with maintainers; [ fgaz ]; + mainProgram = "git-archive-all"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-backdate/default.nix b/nixpkgs/pkgs/applications/version-management/git-backdate/default.nix new file mode 100644 index 000000000000..c63b2e6f3429 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-backdate/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromGitHub, git, python3 }: + +stdenv.mkDerivation rec { + pname = "git-backdate"; + version = "2023-07-19"; + + src = fetchFromGitHub { + owner = "rixx"; + repo = pname; + rev = "8ba5a0eba04e5559be2e4b1b6e02e62b64ca4dd8"; + sha256 = "sha256-91cEGQ0FtoiHEZHQ93jPFHF2vLoeQuBidykePFHtrsY="; + }; + + buildInputs = [ + python3 + ]; + + installPhase = '' + runHook preInstall + install -Dm555 git-backdate -t $out/bin + runHook postInstall + ''; + + meta = with lib; { + description = "Backdate a commit or range of commit to a date or range of dates"; + homepage = "https://github.com/rixx/git-backdate"; + license = licenses.wtfpl; + maintainers = with maintainers; [ matthiasbeyer ]; + mainProgram = "git-backdate"; + }; +} + diff --git a/nixpkgs/pkgs/applications/version-management/git-backup/Cargo.lock b/nixpkgs/pkgs/applications/version-management/git-backup/Cargo.lock new file mode 100644 index 000000000000..a9bec2b9e0b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-backup/Cargo.lock @@ -0,0 +1,1966 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "autocfg" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if 1.0.0", + "libc", + "miniz_oxide 0.6.2", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" +dependencies = [ + "byteorder", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "either", + "iovec", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags", +] + +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "cookie" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" +dependencies = [ + "time", + "url 1.7.2", +] + +[[package]] +name = "cookie_store" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" +dependencies = [ + "cookie", + "failure", + "idna 0.1.5", + "log", + "publicsuffix", + "serde", + "serde_json", + "time", + "try_from", + "url 1.7.2", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils 0.8.15", +] + +[[package]] +name = "crossbeam-deque" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" +dependencies = [ + "crossbeam-epoch 0.8.2", + "crossbeam-utils 0.7.2", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch 0.9.14", + "crossbeam-utils 0.8.15", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", + "lazy_static", + "maybe-uninit", + "memoffset 0.5.6", + "scopeguard", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.15", + "memoffset 0.8.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +dependencies = [ + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "flate2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +dependencies = [ + "crc32fast", + "miniz_oxide 0.7.1", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding 2.2.0", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures-cpupool" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" +dependencies = [ + "futures", + "num_cpus", +] + +[[package]] +name = "gimli" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" + +[[package]] +name = "git-backup" +version = "0.2.0" +dependencies = [ + "base64", + "colored", + "lazy_static", + "rayon", + "regex", + "reqwest", + "serde", + "serde_json", + "structopt", +] + +[[package]] +name = "h2" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" +dependencies = [ + "byteorder", + "bytes", + "fnv", + "futures", + "http", + "indexmap", + "log", + "slab", + "string", + "tokio-io", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "http" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" +dependencies = [ + "bytes", + "fnv", + "itoa 0.4.8", +] + +[[package]] +name = "http-body" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" +dependencies = [ + "bytes", + "futures", + "http", + "tokio-buf", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "hyper" +version = "0.12.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52" +dependencies = [ + "bytes", + "futures", + "futures-cpupool", + "h2", + "http", + "http-body", + "httparse", + "iovec", + "itoa 0.4.8", + "log", + "net2", + "rustc_version", + "time", + "tokio", + "tokio-buf", + "tokio-executor", + "tokio-io", + "tokio-reactor", + "tokio-tcp", + "tokio-threadpool", + "tokio-timer", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" +dependencies = [ + "bytes", + "futures", + "hyper", + "native-tls", + "tokio-io", +] + +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg 1.1.0", + "hashbrown", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +dependencies = [ + "hermit-abi 0.3.1", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.144" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" + +[[package]] +name = "linux-raw-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" + +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "net2" +version = "0.2.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi 0.2.6", + "libc", +] + +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + +[[package]] +name = "openssl" +version = "0.10.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.15", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "parking_lot" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +dependencies = [ + "lock_api", + "parking_lot_core", + "rustc_version", +] + +[[package]] +name = "parking_lot_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a" +dependencies = [ + "cfg-if 0.1.10", + "cloudabi", + "libc", + "redox_syscall 0.1.57", + "rustc_version", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "publicsuffix" +version = "1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f" +dependencies = [ + "idna 0.2.3", + "url 2.3.1", +] + +[[package]] +name = "quote" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.8", + "libc", + "rand_chacha", + "rand_core 0.4.2", + "rand_hc", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg", + "rand_xorshift", + "winapi 0.3.9", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.3.1", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi 0.3.9", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.8", + "rand_core 0.4.2", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque 0.8.3", + "crossbeam-utils 0.8.15", + "num_cpus", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" + +[[package]] +name = "reqwest" +version = "0.9.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f88643aea3c1343c804950d7bf983bd2067f5ab59db6d613a08e05572f2714ab" +dependencies = [ + "base64", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "flate2", + "futures", + "http", + "hyper", + "hyper-tls", + "log", + "mime", + "mime_guess", + "native-tls", + "serde", + "serde_json", + "serde_urlencoded", + "time", + "tokio", + "tokio-executor", + "tokio-io", + "tokio-threadpool", + "tokio-timer", + "url 1.7.2", + "uuid", + "winreg", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "ryu" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "security-framework" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2855b3715770894e67cbfa3df957790aa0c9edc3bf06efa1a84d77fa0839d1" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.15", +] + +[[package]] +name = "serde_json" +version = "1.0.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +dependencies = [ + "itoa 1.0.6", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" +dependencies = [ + "dtoa", + "itoa 0.4.8", + "serde", + "url 1.7.2", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg 1.1.0", +] + +[[package]] +name = "smallvec" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" +dependencies = [ + "maybe-uninit", +] + +[[package]] +name = "string" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" +dependencies = [ + "bytes", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "tempfile" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.45.0", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi", + "winapi 0.3.9", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" +dependencies = [ + "bytes", + "futures", + "mio", + "num_cpus", + "tokio-current-thread", + "tokio-executor", + "tokio-io", + "tokio-reactor", + "tokio-tcp", + "tokio-threadpool", + "tokio-timer", +] + +[[package]] +name = "tokio-buf" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" +dependencies = [ + "bytes", + "either", + "futures", +] + +[[package]] +name = "tokio-current-thread" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" +dependencies = [ + "futures", + "tokio-executor", +] + +[[package]] +name = "tokio-executor" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" +dependencies = [ + "crossbeam-utils 0.7.2", + "futures", +] + +[[package]] +name = "tokio-io" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +dependencies = [ + "bytes", + "futures", + "log", +] + +[[package]] +name = "tokio-reactor" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" +dependencies = [ + "crossbeam-utils 0.7.2", + "futures", + "lazy_static", + "log", + "mio", + "num_cpus", + "parking_lot", + "slab", + "tokio-executor", + "tokio-io", + "tokio-sync", +] + +[[package]] +name = "tokio-sync" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" +dependencies = [ + "fnv", + "futures", +] + +[[package]] +name = "tokio-tcp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" +dependencies = [ + "bytes", + "futures", + "iovec", + "mio", + "tokio-io", + "tokio-reactor", +] + +[[package]] +name = "tokio-threadpool" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" +dependencies = [ + "crossbeam-deque 0.7.4", + "crossbeam-queue", + "crossbeam-utils 0.7.2", + "futures", + "lazy_static", + "log", + "num_cpus", + "slab", + "tokio-executor", +] + +[[package]] +name = "tokio-timer" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" +dependencies = [ + "crossbeam-utils 0.7.2", + "futures", + "slab", + "tokio-executor", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "try_from" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" +dependencies = [ + "cfg-if 0.1.10", +] + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "url" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +dependencies = [ + "idna 0.1.5", + "matches", + "percent-encoding 1.0.1", +] + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna 0.3.0", + "percent-encoding 2.2.0", +] + +[[package]] +name = "uuid" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" +dependencies = [ + "rand", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" +dependencies = [ + "futures", + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winreg" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] diff --git a/nixpkgs/pkgs/applications/version-management/git-backup/default.nix b/nixpkgs/pkgs/applications/version-management/git-backup/default.nix new file mode 100644 index 000000000000..5f582ca64c30 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-backup/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security }: + +rustPlatform.buildRustPackage rec { + pname = "git-backup"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "jsdw"; + repo = pname; + rev = "v${version}"; + sha256 = "0h31j8clvk4gkw4mgva9p0ypf26zhf7f0y564fdmzyw6rsz9wzcj"; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ]; + + # update Cargo.lock to work with openssl 3 + postPatch = '' + ln -sf ${./Cargo.lock} Cargo.lock + ''; + + meta = with lib; { + homepage = "https://github.com/jsdw/git-backup"; + description = "A tool to help you backup your git repositories from services like GitHub"; + license = licenses.mit; + maintainers = with maintainers; [ cafkafk ]; + mainProgram = "git-backup"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-bars/default.nix b/nixpkgs/pkgs/applications/version-management/git-bars/default.nix new file mode 100644 index 000000000000..d9acc9d46fb9 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-bars/default.nix @@ -0,0 +1,26 @@ +{ stdenv, lib, fetchFromGitHub, python3Packages, git }: + +python3Packages.buildPythonApplication { + pname = "git-bars"; + version = "unstable-2023-08-08"; + + src = fetchFromGitHub { + owner = "knadh"; + repo = "git-bars"; + rev = "f15fbc15345d9ef021e5a9b278e352bb532dcee8"; + hash = "sha256-jHP6LqhUQv6hh97tSXAdOruWdtp2FXM6ANlpWoA+fHQ="; + }; + + propagatedBuildInputs = [ + git + python3Packages.setuptools + ]; + + meta = with lib; { + homepage = "https://github.com/knadh/git-bars"; + description = "A utility for visualising git commit activity as bars on the terminal"; + license = licenses.mit; + maintainers = [ maintainers.matthiasbeyer ]; + mainProgram = "git-bars"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-big-picture/default.nix b/nixpkgs/pkgs/applications/version-management/git-big-picture/default.nix new file mode 100644 index 000000000000..a3ac58c04be8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-big-picture/default.nix @@ -0,0 +1,27 @@ +{ lib, python3Packages, fetchPypi, git, graphviz }: + +python3Packages.buildPythonApplication rec { + pname = "git-big-picture"; + version = "1.1.1"; + format = "wheel"; + + src = fetchPypi { + inherit format version; + pname = "git_big_picture"; # underscores needed for working download URL + python = "py3"; # i.e. no Python 2.7 + sha256 = "a20a480057ced1585c4c38497d27a5012f12dd29697313f0bb8fa6ddbb5c17d8"; + }; + + postFixup = '' + wrapProgram $out/bin/git-big-picture \ + --prefix PATH ":" ${ lib.makeBinPath [ git graphviz ] } + ''; + + meta = { + description = "Tool for visualization of Git repositories"; + homepage = "https://github.com/git-big-picture/git-big-picture"; + license = lib.licenses.gpl3Plus; + maintainers = [ lib.maintainers.nthorne ]; + mainProgram = "git-big-picture"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-branchless/default.nix b/nixpkgs/pkgs/applications/version-management/git-branchless/default.nix new file mode 100644 index 000000000000..fd6213269729 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-branchless/default.nix @@ -0,0 +1,76 @@ +{ lib +, fetchFromGitHub +, fetchpatch +, git +, libiconv +, ncurses +, openssl +, pkg-config +, rustPlatform +, sqlite +, stdenv +, Security +, SystemConfiguration +}: + +rustPlatform.buildRustPackage rec { + pname = "git-branchless"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "arxanas"; + repo = "git-branchless"; + rev = "v${version}"; + hash = "sha256-ev56NzrEF7xm3WmR2a0pHPs69Lvmb4He7+kIBYiJjKY="; + }; + + patches = [ + # Fix tests with Git 2.44.0+ + (fetchpatch { + url = "https://github.com/arxanas/git-branchless/pull/1245.patch"; + hash = "sha256-gBm0A478Uhg9IQVLQppvIeTa8s1yHUMddxiUbpHUvGw="; + }) + # Fix tests with Git 2.44.0+ + (fetchpatch { + url = "https://github.com/arxanas/git-branchless/pull/1161.patch"; + hash = "sha256-KHobEIXhlDar8CvIVUi4I695jcJZXgGRhU86b99x86Y="; + }) + ]; + + cargoHash = "sha256-Ppw5TN/6zMNxFAx90Q9hQ7RdGxV+TT8UlOm68ldK8oc="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + ncurses + openssl + sqlite + ] ++ lib.optionals stdenv.isDarwin [ + Security + SystemConfiguration + libiconv + ]; + + postInstall = '' + $out/bin/git-branchless install-man-pages $out/share/man + ''; + + preCheck = '' + export TEST_GIT=${git}/bin/git + export TEST_GIT_EXEC_PATH=$(${git}/bin/git --exec-path) + ''; + # FIXME: these tests deadlock when run in the Nix sandbox + checkFlags = [ + "--skip=test_switch_pty" + "--skip=test_next_ambiguous_interactive" + "--skip=test_switch_auto_switch_interactive" + ]; + + meta = with lib; { + description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history"; + homepage = "https://github.com/arxanas/git-branchless"; + license = licenses.gpl2Only; + mainProgram = "git-branchless"; + maintainers = with maintainers; [ nh2 hmenke ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-branchstack/default.nix b/nixpkgs/pkgs/applications/version-management/git-branchstack/default.nix new file mode 100644 index 000000000000..b536642cbf55 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-branchstack/default.nix @@ -0,0 +1,26 @@ +{ lib +, fetchPypi +, buildPythonApplication +, git-revise +}: + +buildPythonApplication rec { + pname = "git-branchstack"; + version = "0.2.0"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-gja93LOcVCQ6l+Cygvsm+3uomvxtvUl6t23GIb/tKyQ="; + }; + + buildInputs = [ + git-revise + ]; + + meta = with lib; { + homepage = "https://github.com/krobelus/git-branchstack"; + description = "Efficiently manage Git branches without leaving your local branch"; + license = licenses.mit; + maintainers = [ maintainers.AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-bug-migration/default.nix b/nixpkgs/pkgs/applications/version-management/git-bug-migration/default.nix new file mode 100644 index 000000000000..45e90c521f10 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-bug-migration/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoModule, fetchFromGitHub, git }: +buildGoModule rec { + pname = "git-bug-migration"; + version = "0.3.4"; + + src = fetchFromGitHub { + owner = "MichaelMure"; + repo = "git-bug-migration"; + rev = "v${version}"; + hash = "sha256-IOBgrU3C0ZHD2wx9LRVgKEJzDlUj6z2UXlHGU3tdTdQ="; + }; + + vendorHash = "sha256-Hid9OK91LNjLmDHam0ZlrVQopVOsqbZ+BH2rfQi5lS0="; + + nativeCheckInputs = [ git ]; + + ldflags = [ + "-X main.GitExactTag=${version}" + "-X main.GitLastTag=${version}" + ]; + + preCheck = '' + export HOME=$(mktemp -d) + git config --global user.name 'Nixpkgs Test User' + git config --global user.email 'nobody@localhost' + ''; + + meta = with lib; { + description = "Tool for upgrading repositories using git-bug to new versions"; + homepage = "https://github.com/MichaelMure/git-bug-migration"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ DeeUnderscore ]; + mainProgram = "git-bug-migration"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-bug/default.nix b/nixpkgs/pkgs/applications/version-management/git-bug/default.nix new file mode 100644 index 000000000000..588ef81ced00 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-bug/default.nix @@ -0,0 +1,44 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "git-bug"; + version = "0.8.0"; + + src = fetchFromGitHub { + owner = "MichaelMure"; + repo = "git-bug"; + rev = "v${version}"; + sha256 = "12byf6nsamwz0ssigan1z299s01cyh8bhgj86bibl90agd4zs9n8"; + }; + + vendorHash = "sha256-32kNDoBE50Jx1Ef9YwhDk7nd3CaTSnHPlu7PgWPUGfE="; + + nativeBuildInputs = [ installShellFiles ]; + + doCheck = false; + + excludedPackages = [ "doc" "misc" ]; + + ldflags = [ + "-X github.com/MichaelMure/git-bug/commands.GitCommit=v${version}" + "-X github.com/MichaelMure/git-bug/commands.GitLastTag=${version}" + "-X github.com/MichaelMure/git-bug/commands.GitExactTag=${version}" + ]; + + postInstall = '' + installShellCompletion \ + --bash misc/completion/bash/git-bug \ + --zsh misc/completion/zsh/git-bug \ + --fish misc/completion/fish/git-bug + + installManPage doc/man/* + ''; + + meta = with lib; { + description = "Distributed bug tracker embedded in Git"; + homepage = "https://github.com/MichaelMure/git-bug"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ royneary DeeUnderscore ]; + mainProgram = "git-bug"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-cache/default.nix b/nixpkgs/pkgs/applications/version-management/git-cache/default.nix new file mode 100644 index 000000000000..7b31fca2b995 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-cache/default.nix @@ -0,0 +1,28 @@ +{fetchFromGitHub, lib, stdenv}: + +stdenv.mkDerivation { + pname = "git-cache"; + version = "2018-06-18"; + + src = fetchFromGitHub { + owner = "Seb35"; + repo = "git-cache"; + rev = "354f661e40b358c5916c06957bd6b2c65426f452"; + hash = "sha256-V7rQOy+s9Lzdc+RTA2QGPfyavw4De/qQ+tWrzYtO2qA="; + }; + + dontBuild = true; + + installPhase = '' + install -Dm555 git-cache $out/bin/git-cache + ''; + + meta = with lib; { + homepage = "https://github.com/Seb35/git-cache"; + license = licenses.wtfpl; + description = "A program to add and manage a system-wide or user-wide cache for remote git repositories"; + mainProgram = "git-cache"; + platforms = platforms.unix; + maintainers = with maintainers; [ maxhearnden ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-chglog/default.nix b/nixpkgs/pkgs/applications/version-management/git-chglog/default.nix new file mode 100644 index 000000000000..eccc508fc257 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-chglog/default.nix @@ -0,0 +1,27 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "git-chglog"; + version = "0.15.4"; + + src = fetchFromGitHub { + owner = "git-chglog"; + repo = "git-chglog"; + rev = "v${version}"; + sha256 = "sha256-rTJn2vUrEnmG2japqCxHv3BR9MpmMfpMLO2FBP6ONbw="; + }; + + vendorHash = "sha256-skhEHpSnxOTZrL8XLlQZL3s224mg8XRINKJnatYCQko="; + + ldflags = [ "-s" "-w" "-X=main.Version=v${version}" ]; + + subPackages = [ "cmd/git-chglog" ]; + + meta = with lib; { + description = "CHANGELOG generator implemented in Go (Golang)"; + homepage = "https://github.com/git-chglog/git-chglog"; + license = licenses.mit; + maintainers = with maintainers; [ ldenefle ]; + mainProgram = "git-chglog"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-cinnabar/default.nix b/nixpkgs/pkgs/applications/version-management/git-cinnabar/default.nix new file mode 100644 index 000000000000..2d97b41cdd04 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-cinnabar/default.nix @@ -0,0 +1,69 @@ +{ stdenv +, lib +, fetchFromGitHub +, cargo +, pkg-config +, rustPlatform +, bzip2 +, curl +, zlib +, zstd +, libiconv +, CoreServices +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "git-cinnabar"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "glandium"; + repo = "git-cinnabar"; + rev = finalAttrs.version; + hash = "sha256-RUrklp2hobHKnBZKVvxMGquNSZBG/rVWaD/m+7AWqHo="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cargo + pkg-config + rustPlatform.cargoSetupHook + ]; + + buildInputs = [ + bzip2 + curl + zlib + zstd + ] ++ lib.optionals stdenv.isDarwin [ + libiconv + CoreServices + ]; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit (finalAttrs) src; + hash = "sha256-fTwHwZsBvp2F4w5reF94imaXnsw7xfgJQlGRZ3ztnK8="; + }; + + ZSTD_SYS_USE_PKG_CONFIG = true; + + enableParallelBuilding = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + install -v target/release/git-cinnabar $out/bin + ln -sv git-cinnabar $out/bin/git-remote-hg + + runHook postInstall + ''; + + meta = { + description = "git remote helper to interact with mercurial repositories"; + homepage = "https://github.com/glandium/git-cinnabar"; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ qyliss ]; + platforms = lib.platforms.all; + }; +}) diff --git a/nixpkgs/pkgs/applications/version-management/git-cliff/default.nix b/nixpkgs/pkgs/applications/version-management/git-cliff/default.nix new file mode 100644 index 000000000000..817394cdc570 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-cliff/default.nix @@ -0,0 +1,36 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, Security +, SystemConfiguration +}: + +rustPlatform.buildRustPackage rec { + pname = "git-cliff"; + version = "2.2.1"; + + src = fetchFromGitHub { + owner = "orhun"; + repo = "git-cliff"; + rev = "v${version}"; + hash = "sha256-FRcreSnSO65m9h9+SUg4qdFELvpVX1+HkWH3dI2RR/M="; + }; + + cargoHash = "sha256-RlcZvyFi7fc8eJYB5X64axAnNp8Z1h0WOV4hM1SLoRk="; + + # attempts to run the program on .git in src which is not deterministic + doCheck = false; + + buildInputs = lib.optionals stdenv.isDarwin [ + Security SystemConfiguration + ]; + + meta = with lib; { + description = "A highly customizable Changelog Generator that follows Conventional Commit specifications"; + homepage = "https://github.com/orhun/git-cliff"; + changelog = "https://github.com/orhun/git-cliff/blob/v${version}/CHANGELOG.md"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ siraben ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-codeowners/default.nix b/nixpkgs/pkgs/applications/version-management/git-codeowners/default.nix new file mode 100644 index 000000000000..90e0482675ae --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-codeowners/default.nix @@ -0,0 +1,22 @@ +{ lib, rustPlatform, fetchFromGitHub }: +rustPlatform.buildRustPackage rec { + pname = "git-codeowners"; + version = "0.1.2"; + + src = fetchFromGitHub { + owner = "softprops"; + repo = "git-codeowners"; + rev = "v${version}"; + sha256 = "0bzq4ridzb4l1zqrj1r0vlzkjpgfaqwky5jf49cwjhz4ybwrfpkq"; + }; + + cargoSha256 = "00wi64v2zn8rp8fjwbdwyvl3pva5sn9xclaawp2m222dqnlszb2d"; + + meta = with lib; { + homepage = "https://github.com/softprops/git-codeowners"; + description = "a git extension to work with CODEOWNERS files"; + license = licenses.mit; + maintainers = with maintainers; [ zimbatm ]; + mainProgram = "git-codeowners"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-codereview/default.nix b/nixpkgs/pkgs/applications/version-management/git-codereview/default.nix new file mode 100644 index 000000000000..a337443e87ea --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-codereview/default.nix @@ -0,0 +1,27 @@ +{ lib, buildGoModule, fetchFromGitHub, git }: + +buildGoModule rec { + pname = "git-codereview"; + version = "1.11.0"; + + src = fetchFromGitHub { + owner = "golang"; + repo = "review"; + rev = "v${version}"; + hash = "sha256-fIvNaMfgwnMBUNo6kr37zhKiBgKNzT2E0dLLtqaVBvI="; + }; + + vendorHash = null; + + ldflags = [ "-s" "-w" ]; + + nativeCheckInputs = [ git ]; + + meta = with lib; { + description = "Manage the code review process for Git changes using a Gerrit server"; + homepage = "https://golang.org/x/review/git-codereview"; + license = licenses.bsd3; + maintainers = [ maintainers.edef ]; + mainProgram = "git-codereview"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-cola/default.nix b/nixpkgs/pkgs/applications/version-management/git-cola/default.nix new file mode 100644 index 000000000000..f7182140e017 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-cola/default.nix @@ -0,0 +1,68 @@ +{ stdenv +, lib +, fetchFromGitHub +, python3Packages +, gettext +, git +, qt5 +, gitUpdater +}: + +python3Packages.buildPythonApplication rec { + pname = "git-cola"; + version = "4.6.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "git-cola"; + repo = "git-cola"; + rev = "v${version}"; + hash = "sha256-qAvoBVZt2IwrWFNzGWpCZqj8gbjysGlB/VXaa1CMH4o="; + }; + + buildInputs = lib.optionals stdenv.isLinux [ + qt5.qtwayland + ]; + + propagatedBuildInputs = with python3Packages; [ + setuptools + git + pyqt5 + qtpy + send2trash + polib + ]; + + nativeBuildInputs = with python3Packages; [ + setuptools-scm + gettext + qt5.wrapQtAppsHook + ]; + + nativeCheckInputs = with python3Packages; [ + git + pytestCheckHook + ]; + + disabledTestPaths = [ + "qtpy/" + "contrib/win32" + ] ++ lib.optionals stdenv.isDarwin [ + "cola/inotify.py" + ]; + + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + }; + + meta = with lib; { + homepage = "https://github.com/git-cola/git-cola"; + description = "A sleek and powerful Git GUI"; + license = licenses.gpl2; + maintainers = [ maintainers.bobvanderlinden ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix new file mode 100644 index 000000000000..5365dc4e43ae --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, python3 }: + +python3.pkgs.buildPythonApplication rec { + pname = "git-crecord"; + version = "20230226.0"; + + src = fetchFromGitHub { + owner = "andrewshadura"; + repo = "git-crecord"; + rev = "refs/tags/${version}"; + sha256 = "sha256-zsrMAD9EU+TvkWfWl9x6WbMXuw7YEz50LxQzSFVkKdQ="; + }; + + propagatedBuildInputs = with python3.pkgs; [ docutils ]; + + # has no tests + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/andrewshadura/git-crecord"; + description = "Git subcommand to interactively select changes to commit or stage"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ onny ]; + mainProgram = "git-crecord"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-credential-1password/default.nix b/nixpkgs/pkgs/applications/version-management/git-credential-1password/default.nix new file mode 100644 index 000000000000..832698718c3d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-credential-1password/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "git-credential-1password"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "develerik"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-8qdUOJ0MOk/xVvp3kDuxNRo3lMEJhLeI3Fle0tuZez0="; + }; + + vendorHash = "sha256-B6BlVnUX4XLT+9EpL63Ht4S8Wo84RsmY99CL+srQfpw="; + + meta = with lib; { + description = "A git credential helper for 1Password"; + homepage = "https://github.com/develerik/git-credential-1password"; + changelog = "https://github.com/develerik/git-credential-1password/releases/tag/v${version}"; + license = licenses.isc; + maintainers = [ maintainers.ivankovnatsky ]; + mainProgram = "git-credential-1password"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-credential-keepassxc/default.nix b/nixpkgs/pkgs/applications/version-management/git-credential-keepassxc/default.nix new file mode 100644 index 000000000000..2d3e511fcbfd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-credential-keepassxc/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, DiskArbitration +, Foundation +, withNotification ? false +, withYubikey ? false +, withStrictCaller ? false +, withAll ? false +}: + +rustPlatform.buildRustPackage rec { + pname = "git-credential-keepassxc"; + version = "0.14.0"; + + src = fetchFromGitHub { + owner = "Frederick888"; + repo = "git-credential-keepassxc"; + rev = "v${version}"; + hash = "sha256-AvnnzLiDQEdfAHPns8ufhdiPPn9d23AnI8Aq2DQS+To="; + }; + + cargoHash = "sha256-c2YucWs0UzyWDKWS5KebT3ps+XvWzlI0+ziJ8JX6oiQ="; + + buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation ]; + + buildFeatures = [] + ++ lib.optional withNotification "notification" + ++ lib.optional withYubikey "yubikey" + ++ lib.optional withStrictCaller "strict-caller" + ++ lib.optional withAll "all"; + + meta = with lib; { + description = "Helper that allows Git (and shell scripts) to use KeePassXC as credential store"; + longDescription = '' + git-credential-keepassxc is a Git credential helper that allows Git + (and shell scripts) to get/store logins from/to KeePassXC. + It communicates with KeePassXC using keepassxc-protocol which is + originally designed for browser extensions. + ''; + homepage = "https://github.com/Frederick888/git-credential-keepassxc"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fgaz ]; + mainProgram = "git-credential-keepassxc"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-credential-manager/default.nix b/nixpkgs/pkgs/applications/version-management/git-credential-manager/default.nix new file mode 100644 index 000000000000..54de6b1bcf3a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-credential-manager/default.nix @@ -0,0 +1,68 @@ +{ lib +, fetchFromGitHub +, buildDotnetModule +, dotnetCorePackages +, libX11 +, libICE +, libSM +, fontconfig +, libsecret +, git +, git-credential-manager +, gnupg +, pass +, testers +, withGuiSupport ? true +, withLibsecretSupport ? true +, withGpgSupport ? true +}: + +assert withLibsecretSupport -> withGuiSupport; +buildDotnetModule rec { + pname = "git-credential-manager"; + version = "2.4.1"; + + src = fetchFromGitHub { + owner = "git-ecosystem"; + repo = "git-credential-manager"; + rev = "v${version}"; + hash = "sha256-Uf0EXaGM4k9Aanz16B9xA2EcseXTI9lLCws/ZVNb3e8="; + }; + + projectFile = "src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj"; + nugetDeps = ./deps.nix; + dotnet-sdk = dotnetCorePackages.sdk_7_0; + dotnet-runtime = dotnetCorePackages.runtime_7_0; + dotnetInstallFlags = [ "--framework" "net7.0" ]; + executables = [ "git-credential-manager" ]; + + runtimeDeps = [ fontconfig ] + ++ lib.optionals withGuiSupport [ libX11 libICE libSM ] + ++ lib.optional withLibsecretSupport libsecret; + makeWrapperArgs = [ + "--prefix PATH : ${lib.makeBinPath ([ git ] ++ lib.optionals withGpgSupport [ gnupg pass ])}" + ]; + + passthru = { + updateScript = ./update.sh; + tests.version = testers.testVersion { + package = git-credential-manager; + }; + }; + + meta = with lib; { + description = "A secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services"; + homepage = "https://github.com/git-ecosystem/git-credential-manager"; + license = with licenses; [ mit ]; + platforms = platforms.unix; + maintainers = with maintainers; [ _999eagle ]; + longDescription = '' + git-credential-manager is a secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services. + + > requires sandbox to be disabled on MacOS, so that + .NET can find `/usr/bin/codesign` to sign the compiled binary. + This problem is common to all .NET packages on MacOS with Nix. + ''; + mainProgram = "git-credential-manager"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-credential-manager/deps.nix b/nixpkgs/pkgs/applications/version-management/git-credential-manager/deps.nix new file mode 100644 index 000000000000..053da15bd50c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-credential-manager/deps.nix @@ -0,0 +1,112 @@ +# This file was automatically generated by passthru.fetch-deps. +# Please dont edit it manually, your changes might get overwritten! + +{ fetchNuGet }: [ + (fetchNuGet { pname = "Avalonia"; version = "11.0.4"; sha256 = "0jid0x90dc8m609wqwbq87014yzih2iimz74wm6zi1j02k080jk0"; }) + (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; }) + (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; }) + (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.4"; sha256 = "1sqdcaknqazq4mw2x1jb6pfmfnyhpkd4xh6fl4ld85qikzzj7796"; }) + (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.4"; sha256 = "10kc1pfyi0jq29xavq059vfjm51igi45yikz7i1ys061zbjs0n62"; }) + (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.4"; sha256 = "101jlqx24d19nk0nd7x19pvbjjybckzgqh9h78c85vb98xbwh3ky"; }) + (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.4"; sha256 = "1dxylsvaffzravz64rwq2wjjlr3392i5153nmkqk89ldaq70wjja"; }) + (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.4"; sha256 = "1sbgs6d1b751h0ipq249w7z3aclpfb42sw3f7g31vin9w8wxwa6q"; }) + (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.4"; sha256 = "10fyr63sqb4xyr7rlk94rzjbnb9mbln95mb9papip5kb3sm8jx60"; }) + (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.4"; sha256 = "096436hhg45v02pp4f43mf00xn6blx7x66sb8fq5j4jn7479fynp"; }) + (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.4"; sha256 = "1ysmq4f8bxabpq3nhcrrvgwvxb9z7gx9565bvdyksdhsq16wyxym"; }) + (fetchNuGet { pname = "Avalonia.Themes.Fluent"; version = "11.0.4"; sha256 = "03zdixi6m9g4mcxmp24z8dzamzqqy9i0wg069m4gl5p3wcvfbqla"; }) + (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.4"; sha256 = "1rncb8ifqarjc5gfh6ld0ldahvxy57a2hzi7vs826an4zl3r0yrx"; }) + (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.4"; sha256 = "07ijkpbhz59gvsxsik8mib8rhpm5yrpnjz66sjnxl8m0ghqnkf02"; }) + (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.4"; sha256 = "0xq6xqd3cwwdcqsipvrs4rpf82nqhr45ispwjj4dxlyn4i1n8ryd"; }) + (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; }) + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; }) + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; }) + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; sha256 = "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"; }) + (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; }) + (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; }) + (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; }) + (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; }) + (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.54.0"; sha256 = "0p4msajlfbc536qpfnhz2w81rmwgwivfbhdyfk3d198vbadv8zlq"; }) + (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "2.28.0"; sha256 = "1z2irqbjqxawyxq2778bcjbj0x8m63dh3lj5m04knq48wl4wh40x"; }) + (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.22.0"; sha256 = "06495i2i9cabys4s0dkaz0rby8k47gy627v9ivp7aa3k6xmypviz"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; }) + (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }) + (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; }) + (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; }) + (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; }) + (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; }) + (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; }) + (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; }) + (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; }) + (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; }) + (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; }) + (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; }) + (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; }) + (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; }) + (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; }) + (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; }) + (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; }) + (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; }) + (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; }) + (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; }) + (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; }) + (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; }) + (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; }) + (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; }) + (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; }) + (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; }) + (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; }) + (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; }) + (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; }) + (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; }) + (fetchNuGet { pname = "SkiaSharp"; version = "2.88.3"; sha256 = "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"; }) + (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.3"; sha256 = "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"; }) + (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.3"; sha256 = "191ajgi6fnfqcvqvkayjsxasiz6l0bv3pps8vv9abbyc4b12qvph"; }) + (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.3"; sha256 = "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"; }) + (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.3"; sha256 = "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"; }) + (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) + (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; }) + (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta4.22272.1"; sha256 = "1iy5hwwgvx911g3yq65p4zsgpy08w4qz9j3h0igcf7yci44vw8yd"; }) + (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; }) + (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; }) + (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; }) + (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; }) + (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }) + (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; }) + (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; }) + (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; }) + (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }) + (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; }) + (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; }) + (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; }) + (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; }) + (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; }) + (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }) + (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }) + (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; }) + (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; }) + (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) + (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; }) + (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) + (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; }) + (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; }) + (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }) + (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; }) + (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) + (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; }) + (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; }) + (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; }) + (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.5.0"; sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7"; }) + (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; }) + (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) + (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; }) + (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; }) + (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) + (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; }) + (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; }) +] diff --git a/nixpkgs/pkgs/applications/version-management/git-credential-manager/update.sh b/nixpkgs/pkgs/applications/version-management/git-credential-manager/update.sh new file mode 100755 index 000000000000..fc9ef4199678 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-credential-manager/update.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts +set -eo pipefail +cd "$(dirname "${BASH_SOURCE[0]}")" + +new_version="$(curl -s "https://api.github.com/repos/git-ecosystem/git-credential-manager/releases?per_page=1" | jq -r '.[0].name' | sed 's|^GCM ||')" +old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)" +if [[ "$new_version" == "$old_version" ]]; then + echo "Up to date" + exit 0 +fi + +cd ../../../.. +update-source-version git-credential-manager "$new_version" +$(nix-build -A git-credential-manager.fetch-deps --no-out-link) diff --git a/nixpkgs/pkgs/applications/version-management/git-credential-oauth/default.nix b/nixpkgs/pkgs/applications/version-management/git-credential-oauth/default.nix new file mode 100644 index 000000000000..5672fb95e499 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-credential-oauth/default.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "git-credential-oauth"; + version = "0.11.2"; + + src = fetchFromGitHub { + owner = "hickford"; + repo = pname; + rev = "v${version}"; + hash = "sha256-dGn1I47/S6DYXva5zjvcQnB+I4Ex354xMmZ/3OkpjMw="; + }; + + nativeBuildInputs = [ installShellFiles ]; + + ldflags = [ + "-s" + "-w" + "-X main.version=${version}" + ]; + + vendorHash = "sha256-nbwrVihcH+ARLHylsjogsv3LVP+0+YtQ+7cozB7pAWo="; + + postInstall = '' + installManPage $src/git-credential-oauth.1 + ''; + + meta = { + description = "Git credential helper that securely authenticates to GitHub, GitLab and BitBucket using OAuth"; + homepage = "https://github.com/hickford/git-credential-oauth"; + changelog = "https://github.com/hickford/git-credential-oauth/releases/tag/${src.rev}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ shyim ]; + mainProgram = "git-credential-oauth"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-crypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-crypt/default.nix new file mode 100644 index 000000000000..2355f48bcb77 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-crypt/default.nix @@ -0,0 +1,71 @@ +{ fetchFromGitHub +, git +, gnupg +, makeWrapper +, openssl +, lib +, stdenv +, libxslt +, docbook_xsl +}: + +stdenv.mkDerivation rec { + pname = "git-crypt"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "AGWA"; + repo = pname; + rev = version; + sha256 = "sha256-GcGCX6hoKL+sNLAeGEzZpaM+cdFjcNlwYExfOFEPi0I="; + }; + + strictDeps = true; + + nativeBuildInputs = [ libxslt makeWrapper ]; + + buildInputs = [ openssl ]; + + postPatch = '' + substituteInPlace commands.cpp \ + --replace '(escape_shell_arg(our_exe_path()))' '= "git-crypt"' + ''; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "ENABLE_MAN=yes" + "DOCBOOK_XSL=${docbook_xsl}/share/xml/docbook-xsl-nons/manpages/docbook.xsl" + ]; + + # https://github.com/AGWA/git-crypt/issues/232 + CXXFLAGS = [ + "-DOPENSSL_API_COMPAT=0x30000000L" + ]; + + postFixup = '' + wrapProgram $out/bin/git-crypt \ + --suffix PATH : ${lib.makeBinPath [ git gnupg ]} + ''; + + meta = with lib; { + homepage = "https://www.agwa.name/projects/git-crypt"; + description = "Transparent file encryption in git"; + longDescription = '' + git-crypt enables transparent encryption and decryption of files in a git + repository. Files which you choose to protect are encrypted when + committed, and decrypted when checked out. git-crypt lets you freely + share a repository containing a mix of public and private + content. git-crypt gracefully degrades, so developers without the secret + key can still clone and commit to a repository with encrypted files. This + lets you store your secret material (such as keys or passwords) in the + same repository as your code, without requiring you to lock down your + entire repository. + ''; + downloadPage = "https://github.com/AGWA/git-crypt/releases"; + license = licenses.gpl3; + maintainers = with maintainers; [ dochang ]; + platforms = platforms.unix; + mainProgram = "git-crypt"; + }; + +} diff --git a/nixpkgs/pkgs/applications/version-management/git-delete-merged-branches/default.nix b/nixpkgs/pkgs/applications/version-management/git-delete-merged-branches/default.nix new file mode 100644 index 000000000000..08d93bcf69e7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-delete-merged-branches/default.nix @@ -0,0 +1,28 @@ +{ lib, python3Packages, fetchFromGitHub, git }: + +python3Packages.buildPythonApplication rec { + pname = "git-delete-merged-branches"; + version = "7.4.0"; + + src = fetchFromGitHub { + owner = "hartwork"; + repo = pname; + rev = "refs/tags/${version}"; + sha256 = "sha256-17uFV3pjklqVW5ofeR54mgMh+q3uUCdqZG00Cc+4zFQ="; + }; + + propagatedBuildInputs = with python3Packages; [ + colorama + prompt-toolkit + ]; + + nativeCheckInputs = [ git ] + ++ (with python3Packages; [ parameterized ]); + + meta = with lib; { + description = "Command-line tool to delete merged Git branches"; + homepage = "https://pypi.org/project/git-delete-merged-branches/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-dive/default.nix b/nixpkgs/pkgs/applications/version-management/git-dive/default.nix new file mode 100644 index 000000000000..c0209c38cfa9 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-dive/default.nix @@ -0,0 +1,69 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, libgit2 +, oniguruma +, zlib +, stdenv +, darwin +, git +}: + +rustPlatform.buildRustPackage rec { + pname = "git-dive"; + version = "0.1.6"; + + src = fetchFromGitHub { + owner = "gitext-rs"; + repo = "git-dive"; + rev = "v${version}"; + hash = "sha256-sy2qNFn8JLE173HVWfFXBx21jcx4kpFMwi9a0m38lso="; + }; + + cargoHash = "sha256-Z3TgVunC/qNzUe0X9xIg3fTFXFk2w9yDA+EskSCg0Qo="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + libgit2 + oniguruma + zlib + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Security + ]; + + nativeCheckInputs = [ + git + ]; + + # don't use vendored libgit2 + buildNoDefaultFeatures = true; + + checkFlags = [ + # requires internet access + "--skip=screenshot" + ]; + + preCheck = '' + export HOME=$(mktemp -d) + git config --global user.name nixbld + git config --global user.email nixbld@example.com + ''; + + env = { + LIBGIT2_NO_VENDOR = 1; + RUSTONIG_SYSTEM_LIBONIG = true; + }; + + meta = with lib; { + description = "Dive into a file's history to find root cause"; + homepage = "https://github.com/gitext-rs/git-dive"; + changelog = "https://github.com/gitext-rs/git-dive/blob/${src.rev}/CHANGELOG.md"; + license = with licenses; [ asl20 mit ]; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "git-dive"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-extras/default.nix b/nixpkgs/pkgs/applications/version-management/git-extras/default.nix new file mode 100644 index 000000000000..adb36257188c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-extras/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, unixtools +, which +}: + +stdenv.mkDerivation rec { + pname = "git-extras"; + version = "7.2.0"; + + src = fetchFromGitHub { + owner = "tj"; + repo = "git-extras"; + rev = version; + sha256 = "sha256-Zzk133ZJv91zbFz0U9tiv8pb0pAIBt9Y/8PYIaABMGc="; + }; + + postPatch = '' + patchShebangs check_dependencies.sh + ''; + + nativeBuildInputs = [ + unixtools.column + which + ]; + + dontBuild = true; + + installFlags = [ + "PREFIX=${placeholder "out"}" + "SYSCONFDIR=${placeholder "out"}/share" + ]; + + postInstall = '' + # bash completion is already handled by make install + install -D etc/git-extras-completion.zsh $out/share/zsh/site-functions/_git_extras + ''; + + meta = with lib; { + homepage = "https://github.com/tj/git-extras"; + description = "GIT utilities -- repo summary, repl, changelog population, author commit percentages and more"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ cko SuperSandro2000 ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-fame/Gemfile b/nixpkgs/pkgs/applications/version-management/git-fame/Gemfile new file mode 100644 index 000000000000..17373f02b44d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-fame/Gemfile @@ -0,0 +1,4 @@ +source 'https://rubygems.org' + +# Specify your gem's dependencies in git_fame.gemspec +gem "git_fame" diff --git a/nixpkgs/pkgs/applications/version-management/git-fame/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/git-fame/Gemfile.lock new file mode 100644 index 000000000000..12c58d72103a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-fame/Gemfile.lock @@ -0,0 +1,26 @@ +GEM + remote: https://rubygems.org/ + specs: + git_fame (2.5.2) + hirb (~> 0.7.3) + memoist (~> 0.14.0) + method_profiler (~> 2.0.1) + progressbar (~> 0.21.0) + scrub_rb (~> 1.0.1) + trollop (~> 2.1.2) + hirb (0.7.3) + memoist (0.14.0) + method_profiler (2.0.1) + hirb (>= 0.6.0) + progressbar (0.21.0) + scrub_rb (1.0.1) + trollop (2.1.2) + +PLATFORMS + ruby + +DEPENDENCIES + git_fame + +BUNDLED WITH + 2.1.4 diff --git a/nixpkgs/pkgs/applications/version-management/git-fame/default.nix b/nixpkgs/pkgs/applications/version-management/git-fame/default.nix new file mode 100644 index 000000000000..d69988eca012 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-fame/default.nix @@ -0,0 +1,22 @@ +{ lib, bundlerEnv, ruby, bundlerUpdateScript }: + +bundlerEnv { + inherit ruby; + + pname = "git_fame"; + + gemdir = ./.; + + passthru.updateScript = bundlerUpdateScript "git-fame"; + + meta = with lib; { + description = '' + A command-line tool that helps you summarize and pretty-print collaborators based on contributions + ''; + homepage = "http://oleander.io/git-fame-rb"; + license = licenses.mit; + maintainers = with maintainers; [ expipiplus1 nicknovitski ]; + platforms = platforms.unix; + mainProgram = "git-fame"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-fame/gemset.nix b/nixpkgs/pkgs/applications/version-management/git-fame/gemset.nix new file mode 100644 index 000000000000..07dd36ac68a0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-fame/gemset.nix @@ -0,0 +1,60 @@ +{ + git_fame = { + dependencies = ["hirb" "memoist" "method_profiler" "progressbar" "scrub_rb" "trollop"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02k5ls5zyif8skdbnym6zw9y76whlnksw2m94jsh2n1ygk98izdd"; + type = "gem"; + }; + version = "2.5.2"; + }; + hirb = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji"; + type = "gem"; + }; + version = "0.7.3"; + }; + memoist = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03d3h6kp16bf0crqg1cxdgp1d2iyzn53d3phbmjh4pjybqls0gcm"; + type = "gem"; + }; + version = "0.14.0"; + }; + method_profiler = { + dependencies = ["hirb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ax04qrrv7fqp5ayxaxhn72660pybdkpkvmgiwbg7bs7x5ijjzd8"; + type = "gem"; + }; + version = "2.0.1"; + }; + progressbar = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17haw9c6c9q6imsn83pii32jnihpg76jgd09x7y4hjqq45n3qcdh"; + type = "gem"; + }; + version = "0.21.0"; + }; + scrub_rb = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dwg33w83w17aiij9kcbi7irj7lh045nh9prjgkzjya3f1j60d3x"; + type = "gem"; + }; + version = "1.0.1"; + }; + trollop = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8"; + type = "gem"; + }; + version = "2.1.2"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-fire/default.nix b/nixpkgs/pkgs/applications/version-management/git-fire/default.nix new file mode 100644 index 000000000000..bc7e9f4840b7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-fire/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation { + pname = "git-fire"; + version = "unstable-2017-08-27"; + + src = fetchFromGitHub { + owner = "qw3rtman"; + repo = "git-fire"; + rev = "d72b68ed356f726c77c60294f9220275f16c9931"; + sha256 = "1hdwkhyjjx31y0lpjkhbb4f5y9f7g70fnd4c2246cmk2rbsvj5b2"; + }; + + installPhase = '' + install -D -m755 $src/git-fire $out/bin/git-fire + ''; + + meta = with lib; { + description = '' + Push ALL changes in a git repository + ''; + longDescription = '' + In the event of an emergency (fire, etc.), automatically commit all changes/files in a repository, pushing to all known remotes all commits and stashes. + ''; + homepage = "https://github.com/qw3rtman/git-fire"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ swflint ]; + mainProgram = "git-fire"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-ftp/default.nix b/nixpkgs/pkgs/applications/version-management/git-ftp/default.nix new file mode 100644 index 000000000000..a3087249cadd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-ftp/default.nix @@ -0,0 +1,100 @@ +{ lib +, resholve +, fetchFromGitHub +, fetchpatch +, bash +, coreutils +, git +, gnugrep +, gawk +, curl +, hostname +, gnused +, findutils +, lftp +, pandoc +, man +}: + +resholve.mkDerivation rec { + pname = "git-ftp"; + version = "1.6.0"; + src = fetchFromGitHub { + owner = "git-ftp"; + repo = "git-ftp"; + rev = version; + sha256 = "1hxkqf7jbrx24q18yxpnd3dxzh4xk6asymwkylp1x7zg6mcci87d"; + }; + + dontBuild = true; + + # fix bug/typo; PRed upstream @ + # https://github.com/git-ftp/git-ftp/pull/628 + patches = [ + (fetchpatch { + name = "fix-function-invocation-typo.patch"; + url = "https://github.com/git-ftp/git-ftp/commit/cddf7cbba80e710758f6aac0ec0d77552ea8cd75.patch"; + sha256 = "sha256-2B0QaMJi78Bg3bA1jp41aiyql1/LCryoaDs7+xmS1HY="; + }) + ]; + + installPhase = '' + make install-all prefix=$out + ''; + + nativeBuildInputs = [ pandoc man ]; + + solutions = { + git-ftp = { + scripts = [ "bin/git-ftp" ]; + interpreter = "${bash}/bin/bash"; + inputs = [ + coreutils + git + gnugrep + gawk + curl + hostname + gnused + findutils + lftp + ]; + fake = { + # don't resolve impure system macOS security + # caution: will still be fragile if PATH is bad + # TODO: fixable once we figure out how to handle + # this entire class of problem... + "external" = [ "security" ]; + }; + keep = { + # looks like run-time user/env/git-config controlled + "$GIT_PAGER" = true; + "$hook" = true; # presumably git hooks given context + }; + execer = [ + # TODO: rm when binlore/resholve handle git; manually + # checked and see no obvious subexec for now + "cannot:${git}/bin/git" + /* + Mild uncertainty here. There *are* commandlikes in + the arguments (especially wait & cd), but I think they are + fine as-is, because I'm reading them as: + 1. ftp commands + 2. running on the remote anyways + + See https://github.com/git-ftp/git-ftp/blob/057f7d8e9f00ffc5a8c6ceaa4be30af2939df41a/git-ftp#L1214-L1221 + */ + "cannot:${lftp}/bin/lftp" + ]; + }; + }; + + meta = with lib; { + description = "Git powered FTP client written as shell script"; + homepage = "https://git-ftp.github.io/"; + license = licenses.gpl3; + maintainers = with maintainers; [ tweber ]; + platforms = platforms.unix; + mainProgram = "git-ftp"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-gone/default.nix b/nixpkgs/pkgs/applications/version-management/git-gone/default.nix new file mode 100644 index 000000000000..884eeb893ac4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-gone/default.nix @@ -0,0 +1,38 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, Security +, installShellFiles +}: + +rustPlatform.buildRustPackage rec { + pname = "git-gone"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "swsnr"; + repo = "git-gone"; + rev = "v${version}"; + hash = "sha256-Mc9/P4VBmLOC05xqdx/yopbhvdpQS3uejc4YA7BIgug="; + }; + + cargoHash = "sha256-NyyficEDJReMLAw2VAK2fOXNIwHilnUqQRACGck+0Vo="; + + nativeBuildInputs = [ installShellFiles ]; + + buildInputs = lib.optionals stdenv.isDarwin [ Security ]; + + postInstall = '' + installManPage git-gone.1 + ''; + + meta = with lib; { + description = "Cleanup stale Git branches of merge requests"; + homepage = "https://github.com/swsnr/git-gone"; + changelog = "https://github.com/swsnr/git-gone/raw/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ cafkafk ]; + mainProgram = "git-gone"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-graph/default.nix b/nixpkgs/pkgs/applications/version-management/git-graph/default.nix new file mode 100644 index 000000000000..016892892247 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-graph/default.nix @@ -0,0 +1,28 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, stdenv +}: + +rustPlatform.buildRustPackage rec { + pname = "git-graph"; + version = "unstable-2023-01-14"; + + src = fetchFromGitHub { + owner = "mlange-42"; + repo = pname; + rev = "9bd54eb0aed6f108364bce9ad0bdff12077038fc"; + hash = "sha256-tMM/mpt9yzZYSpnOGBuGLM0XTJiiyChfUrERMuyn3mQ="; + }; + + cargoHash = "sha256-ZLF/l2HnIbmkayWXhjYr01M6lGaGiK2UYyp654ncxgo="; + + meta = with lib; { + description = "Command line tool to show clear git graphs arranged for your branching model"; + homepage = "https://github.com/mlange-42/git-graph"; + license = licenses.mit; + broken = stdenv.isDarwin; + maintainers = with maintainers; [ cafkafk ]; + mainProgram = "git-graph"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-hound/default.nix b/nixpkgs/pkgs/applications/version-management/git-hound/default.nix new file mode 100644 index 000000000000..86efeef1c444 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-hound/default.nix @@ -0,0 +1,43 @@ +{ buildGoModule +, fetchFromGitHub +, fetchpatch +, lib +}: + +buildGoModule rec { + pname = "git-hound"; + version = "1.7.2"; + + src = fetchFromGitHub { + owner = "tillson"; + repo = pname; + rev = "v${version}"; + hash = "sha256-W+rYDyRIw4jWWO4UZkUHFq/D/7ZXM+y5vdbclk6S0ro="; + }; + + patches = [ + # https://github.com/tillson/git-hound/pull/66 + (fetchpatch { + url = "https://github.com/tillson/git-hound/commit/cd8aa19401cfdec9e4d76c1f6eb4d85928ec4b03.patch"; + hash = "sha256-EkdR2KkxxlMLNtKFGpxsQ/msJT5NcMF7irIUcU2WWJY="; + }) + ]; + + # tests fail outside of nix + doCheck = false; + + vendorHash = "sha256-8teIa083oMXm0SjzMP+mGOVAel1Hbsp3TSMhdvqVbQs="; + + meta = with lib; { + description = "Reconnaissance tool for GitHub code search"; + longDescription = '' + GitHound pinpoints exposed API keys and other sensitive information + across all of GitHub using pattern matching, commit history searching, + and a unique result scoring system. + ''; + homepage = "https://github.com/tillson/git-hound"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + mainProgram = "git-hound"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-hub/default.nix new file mode 100644 index 000000000000..907721f882b3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-hub/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, gitMinimal, docutils }: + +stdenv.mkDerivation rec { + pname = "git-hub"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "sociomantic-tsunami"; + repo = "git-hub"; + rev = "v${version}"; + sha256 = "sha256-fb/WDmBx1Vayu4fLeG+D1nmHJJawgIAAXcQsABsenBo="; + }; + + nativeBuildInputs = [ + gitMinimal # Used during build to generate Bash completion. + docutils + ]; + + postPatch = '' + patchShebangs . + ''; + + enableParallelBuilding = true; + + installFlags = [ "prefix=$(out)" "sysconfdir=$(out)/etc" ]; + + postInstall = '' + # Remove inert ftdetect vim plugin and a README that's a man page subset: + rm -r $out/share/{doc,vim} + ''; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Git command line interface to GitHub"; + longDescription = '' + A simple command line interface to GitHub, enabling most useful GitHub + tasks (like creating and listing pull request or issues) to be accessed + directly through the Git command line. + ''; + license = licenses.gpl3Plus; + platforms = platforms.all; + mainProgram = "git-hub"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-ignore/default.nix b/nixpkgs/pkgs/applications/version-management/git-ignore/default.nix new file mode 100644 index 000000000000..b32b1aa52161 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-ignore/default.nix @@ -0,0 +1,44 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, installShellFiles +, stdenv +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "git-ignore"; + version = "1.3.3"; + + src = fetchFromGitHub { + owner = "sondr3"; + repo = pname; + rev = "v${version}"; + hash = "sha256-OVKRNj3tRi/PGY1m4rdpmH87laYzTkCiwoBc3txVJ3U="; + }; + + cargoHash = "sha256-dAQKL+sMThpTqBoN5MZvm8tQUJhaSH7lT8DwbjzFq40="; + + nativeBuildInputs = [ + installShellFiles + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Security + ]; + + postInstall = '' + assets=$releaseDir/../assets + installManPage $assets/git-ignore.1 + installShellCompletion $assets/git-ignore.{bash,fish} --zsh $assets/_git-ignore + ''; + + meta = with lib; { + description = "Quickly and easily fetch .gitignore templates from gitignore.io"; + homepage = "https://github.com/sondr3/git-ignore"; + changelog = "https://github.com/sondr3/git-ignore/blob/${src.rev}/CHANGELOG.md"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "git-ignore"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-imerge/default.nix b/nixpkgs/pkgs/applications/version-management/git-imerge/default.nix new file mode 100644 index 000000000000..66e141ef85ff --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-imerge/default.nix @@ -0,0 +1,25 @@ +{ lib, buildPythonApplication, fetchPypi, installShellFiles }: + +buildPythonApplication rec { + pname = "git-imerge"; + version = "1.2.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "df5818f40164b916eb089a004a47e5b8febae2b4471a827e3aaa4ebec3831a3f"; + }; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion --bash completions/git-imerge + ''; + + meta = with lib; { + homepage = "https://github.com/mhagger/git-imerge"; + description = "Perform a merge between two branches incrementally"; + license = licenses.gpl2Plus; + maintainers = [ ]; + mainProgram = "git-imerge"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock b/nixpkgs/pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock new file mode 100644 index 000000000000..3757eab5de46 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-interactive-rebase-tool/Cargo.lock @@ -0,0 +1,1366 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "captur" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70fab32548d14602e13307a86c41b2dc2fc2ef19c2881bf63598275a7e45b182" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "time", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "claim" +version = "0.5.0" +source = "git+https://github.com/Turbo87/rust-claim.git?rev=23892a3#23892a345d38e1434303143a73033925284ad04d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +dependencies = [ + "cfg-if", + "lazy_static", +] + +[[package]] +name = "crossterm" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" +dependencies = [ + "bitflags", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" +dependencies = [ + "winapi", +] + +[[package]] +name = "dashmap" +version = "5.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391b56fbd302e585b7a9494fb70e40949567b1cf9003a8e4a6041a1687c26573" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", +] + +[[package]] +name = "diff" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" + +[[package]] +name = "futures-executor" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" + +[[package]] +name = "futures-macro" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", +] + +[[package]] +name = "futures-sink" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" + +[[package]] +name = "futures-task" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + +[[package]] +name = "futures-util" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", +] + +[[package]] +name = "girt-config" +version = "2.3.0" +dependencies = [ + "claim", + "girt-git", + "girt-testutils", + "lazy_static", + "proc-macro2", + "rstest", + "rustc_version", + "serial_test", + "tempfile", + "thiserror", +] + +[[package]] +name = "girt-core" +version = "2.3.0" +dependencies = [ + "anyhow", + "bitflags", + "captur", + "chrono", + "claim", + "crossbeam-channel", + "girt-config", + "girt-display", + "girt-git", + "girt-input", + "girt-runtime", + "girt-todo-file", + "girt-view", + "if_chain", + "lazy_static", + "num-format", + "parking_lot", + "pico-args", + "pretty_assertions", + "rstest", + "rustc_version", + "serial_test", + "unicode-segmentation", +] + +[[package]] +name = "girt-display" +version = "2.3.0" +dependencies = [ + "crossterm", + "girt-config", + "rstest", + "rustc_version", + "serial_test", + "thiserror", +] + +[[package]] +name = "girt-git" +version = "2.3.0" +dependencies = [ + "chrono", + "claim", + "girt-testutils", + "git2", + "lazy_static", + "parking_lot", + "pretty_assertions", + "rstest", + "rustc_version", + "serial_test", + "tempfile", + "thiserror", +] + +[[package]] +name = "girt-input" +version = "2.3.0" +dependencies = [ + "anyhow", + "bitflags", + "captur", + "crossbeam-channel", + "crossterm", + "girt-config", + "girt-runtime", + "lazy_static", + "parking_lot", + "rstest", + "rustc_version", + "serial_test", +] + +[[package]] +name = "girt-runtime" +version = "2.3.0" +dependencies = [ + "claim", + "crossbeam-channel", + "girt-testutils", + "parking_lot", + "rustc_version", + "thiserror", +] + +[[package]] +name = "girt-testutils" +version = "2.3.0" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "girt-todo-file" +version = "2.3.0" +dependencies = [ + "claim", + "girt-testutils", + "pretty_assertions", + "rstest", + "rustc_version", + "tempfile", + "thiserror", + "version-track", +] + +[[package]] +name = "girt-view" +version = "2.3.0" +dependencies = [ + "anyhow", + "bitflags", + "captur", + "claim", + "crossbeam-channel", + "girt-config", + "girt-display", + "girt-runtime", + "parking_lot", + "rustc_version", + "unicode-segmentation", + "unicode-width", + "uuid", + "xi-unicode", +] + +[[package]] +name = "git-interactive-rebase-tool" +version = "2.3.0" +dependencies = [ + "girt-core", + "rustc_version", +] + +[[package]] +name = "git2" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + +[[package]] +name = "iana-time-zone" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef5528d9c2817db4e10cc78f8d4c8228906e5854f389ff6b076cee3572a09d35" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "itoa" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" + +[[package]] +name = "jobserver" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[package]] +name = "libgit2-sys" +version = "0.14.2+1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libz-sys" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "mio" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +dependencies = [ + "libc", + "log", + "miow", + "ntapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec", + "itoa", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.2.13", + "smallvec", + "windows-sys 0.34.0", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "redox_syscall" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" + +[[package]] +name = "relative-path" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698" + +[[package]] +name = "rstest" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b96577ca10cb3eade7b337eb46520108a67ca2818a24d0b63f41fd62bc9651c" +dependencies = [ + "futures", + "futures-timer", + "rstest_macros", + "rustc_version", +] + +[[package]] +name = "rstest_macros" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225e674cf31712b8bb15fdbca3ec0c1b9d825c5a24407ff2b7e005fb6a29ba03" +dependencies = [ + "cfg-if", + "glob", + "proc-macro2", + "quote", + "regex", + "relative-path", + "rustc_version", + "syn 2.0.26", + "unicode-ident", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "semver" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65bd28f48be7196d222d95b9243287f48d27aca604e08497513019ff0502cc4" + +[[package]] +name = "serial_test" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" +dependencies = [ + "dashmap", + "futures", + "lazy_static", + "log", + "parking_lot", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "signal-hook" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "syn" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +dependencies = [ + "autocfg", + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "thiserror" +version = "1.0.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.26", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "unicode-normalization" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +dependencies = [ + "getrandom", + "rand", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version-track" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9affed6b4e63b1f30ed8f0f2c401fa725f5f511eb00e52269f401c4d5ae12f" +dependencies = [ + "uuid", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 1.0.104", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.104", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" +dependencies = [ + "windows_aarch64_msvc 0.34.0", + "windows_i686_gnu 0.34.0", + "windows_i686_msvc 0.34.0", + "windows_x86_64_gnu 0.34.0", + "windows_x86_64_msvc 0.34.0", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "xi-unicode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" diff --git a/nixpkgs/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix b/nixpkgs/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix new file mode 100644 index 000000000000..f450b17535dd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }: + +rustPlatform.buildRustPackage rec { + pname = "git-interactive-rebase-tool"; + version = "2.3.0"; + + src = fetchFromGitHub { + owner = "MitMaro"; + repo = pname; + rev = version; + sha256 = "sha256-tMeA2LsNCXxI086y8S+STYwjClWMPaBheP0s0oZ5I5c="; + }; + + postPatch = '' + # error: lint `unused_tuple_struct_fields` has been renamed to `dead_code` + substituteInPlace scripts/data/lints.rs src/main.rs src/{config,core,display,git,input,runtime,testutils,todo_file,view}/src/lib.rs \ + --replace-fail "unused_tuple_struct_fields," "" + ''; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "claim-0.5.0" = "sha256-quVV5PnWW1cYK+iSOM/Y0gLu2gPOrZ1ytJif0D5v9g0="; + }; + }; + + buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; + + # Compilation during tests fails if this env var is not set. + preCheck = "export GIRT_BUILD_GIT_HASH=${version}"; + postCheck = "unset GIRT_BUILD_GIT_HASH"; + cargoTestFlags = [ + "--workspace" + # build everything except for doctests which are currently broken because + # `config::lib` expects the sourcetree to be a git repo. + "--tests" + "--lib" + "--bins" + ]; + + meta = with lib; { + homepage = "https://github.com/MitMaro/git-interactive-rebase-tool"; + description = "Native cross platform full feature terminal based sequence editor for git interactive rebase"; + changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ SuperSandro2000 zowoq ma27 ]; + mainProgram = "interactive-rebase-tool"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix new file mode 100644 index 000000000000..f53586e75705 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix @@ -0,0 +1,60 @@ +{ lib, buildGoModule, fetchFromGitHub, asciidoctor, installShellFiles, git, testers, git-lfs }: + +buildGoModule rec { + pname = "git-lfs"; + version = "3.5.1"; + + src = fetchFromGitHub { + owner = "git-lfs"; + repo = "git-lfs"; + rev = "v${version}"; + hash = "sha256-xSLXbAvIoY3c341qi89pTrjBZdXh/bPrweJD2O2gkjY="; + }; + + vendorHash = "sha256-N8HB2qwBxjzfNucftHxmX2W9srCx62pjmkCWzwiCj/I="; + + nativeBuildInputs = [ asciidoctor installShellFiles ]; + + ldflags = [ + "-s" + "-w" + "-X github.com/git-lfs/git-lfs/v${lib.versions.major version}/config.Vendor=${version}" + ]; + + subPackages = [ "." ]; + + preBuild = '' + GOARCH= go generate ./commands + ''; + + postBuild = '' + make man + ''; + + nativeCheckInputs = [ git ]; + + preCheck = '' + unset subPackages + ''; + + postInstall = '' + installManPage man/man*/* + installShellCompletion --cmd git-lfs \ + --bash <($out/bin/git-lfs completion bash) \ + --fish <($out/bin/git-lfs completion fish) \ + --zsh <($out/bin/git-lfs completion zsh) + ''; + + passthru.tests.version = testers.testVersion { + package = git-lfs; + }; + + meta = with lib; { + description = "Git extension for versioning large files"; + homepage = "https://git-lfs.github.com/"; + changelog = "https://github.com/git-lfs/git-lfs/raw/v${version}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ twey ]; + mainProgram = "git-lfs"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-machete/default.nix b/nixpkgs/pkgs/applications/version-management/git-machete/default.nix new file mode 100644 index 000000000000..3c97c1e2024b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-machete/default.nix @@ -0,0 +1,60 @@ +{ lib +, buildPythonApplication +, pytest-mock +, pytestCheckHook +, fetchFromGitHub +, installShellFiles +, git +, nix-update-script +, testers +, git-machete +}: + +buildPythonApplication rec { + pname = "git-machete"; + version = "3.25.0"; + + src = fetchFromGitHub { + owner = "virtuslab"; + repo = pname; + rev = "v${version}"; + hash = "sha256-tLEuSwM8X0+oQDB9fmj5OQsC7iA906EQZz3yvB6rXfk="; + }; + + nativeBuildInputs = [ installShellFiles ]; + + nativeCheckInputs = [ + git + pytest-mock + pytestCheckHook + ]; + + disabledTests = [ + # Requires fully functioning shells including zsh modules and bash + # completion. + "completion_e2e" + ]; + + postInstall = '' + installShellCompletion --bash --name git-machete completion/git-machete.completion.bash + installShellCompletion --zsh --name _git-machete completion/git-machete.completion.zsh + installShellCompletion --fish completion/git-machete.fish + ''; + + postInstallCheck = '' + test "$($out/bin/git-machete version)" = "git-machete version ${version}" + ''; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + homepage = "https://github.com/VirtusLab/git-machete"; + description = "Git repository organizer and rebase/merge workflow automation tool"; + changelog = "https://github.com/VirtusLab/git-machete/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ blitz ]; + mainProgram = "git-machete"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-mit/default.nix b/nixpkgs/pkgs/applications/version-management/git-mit/default.nix new file mode 100644 index 000000000000..508f416515ad --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-mit/default.nix @@ -0,0 +1,49 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, libgit2 +, openssl +, zlib +, stdenv +, darwin +}: + +let + version = "5.12.198"; +in +rustPlatform.buildRustPackage { + pname = "git-mit"; + inherit version; + + src = fetchFromGitHub { + owner = "PurpleBooth"; + repo = "git-mit"; + rev = "v${version}"; + hash = "sha256-4tWgIwDmGZhMFTVT5VzmGj69zV8FGTV0yBHUy5Iu1Xw="; + }; + + cargoHash = "sha256-vKiCKcyB1Q2CNA4HpE8dc5gh+nlrz0VERIMaTGlDH5Y="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + libgit2 + openssl + zlib + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.AppKit + ]; + + env = { + LIBGIT2_NO_VENDOR = 1; + }; + + meta = with lib; { + description = "Minimalist set of hooks to aid pairing and link commits to issues"; + homepage = "https://github.com/PurpleBooth/git-mit"; + changelog = "https://github.com/PurpleBooth/git-mit/releases/tag/v${version}"; + license = licenses.cc0; + maintainers = with maintainers; [ figsoda ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-my/default.nix b/nixpkgs/pkgs/applications/version-management/git-my/default.nix new file mode 100644 index 000000000000..2683af402287 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-my/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "git-my"; + version = "1.1.2"; + + src = fetchFromGitHub { + owner = "davidosomething"; + repo = "git-my"; + rev = version; + sha256 = "0jji5zw25jygj7g4f6f3k0p0s9g37r8iad8pa0s67cxbq2v4sc0v"; + }; + + dontBuild = true; + + installPhase = '' + install -Dm755 -t "$out"/bin ./git-my + ''; + + meta = with lib; { + description = + "List remote branches if they're merged and/or available locally"; + homepage = "https://github.com/davidosomething/git-my"; + license = licenses.free; + maintainers = with maintainers; [ bb010g ]; + platforms = platforms.all; + mainProgram = "git-my"; + }; +} + diff --git a/nixpkgs/pkgs/applications/version-management/git-nomad/default.nix b/nixpkgs/pkgs/applications/version-management/git-nomad/default.nix new file mode 100644 index 000000000000..941b84b68fcc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-nomad/default.nix @@ -0,0 +1,32 @@ +{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin, git }: + +rustPlatform.buildRustPackage rec { + pname = "git-nomad"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "rraval"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-N+iPr389l9PDfJIhvRL6ziGSPI6pgvfdGX6wxmapLhA="; + }; + + cargoHash = "sha256-7CZC29y9dLpyanolO+epKd0KwmRc1iGY+sPM9f/j5hk="; + + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.SystemConfiguration + ]; + + nativeCheckInputs = [ + git + ]; + + meta = with lib; { + description = "Synchronize work-in-progress git branches in a light weight fashion"; + homepage = "https://github.com/rraval/git-nomad"; + changelog = "https://github.com/rraval/git-nomad/blob/v${version}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ rraval ]; + mainProgram = "git-nomad"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-octopus/default.nix b/nixpkgs/pkgs/applications/version-management/git-octopus/default.nix new file mode 100644 index 000000000000..7b8b5fed90f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-octopus/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, git, perl, makeWrapper }: + +with lib; + +stdenv.mkDerivation rec { + pname = "git-octopus"; + version = "1.4"; + + installFlags = [ "prefix=$(out)" ]; + + nativeBuildInputs = [ makeWrapper ]; + + # perl provides shasum + postInstall = '' + for f in $out/bin/*; do + wrapProgram $f --prefix PATH : ${makeBinPath [ git perl ]} + done + ''; + + src = fetchFromGitHub { + owner = "lesfurets"; + repo = "git-octopus"; + rev = "v${version}"; + sha256 = "14p61xk7jankp6gc26xciag9fnvm7r9vcbhclcy23f4ghf4q4sj1"; + }; + + meta = { + homepage = "https://github.com/lesfurets/git-octopus"; + description = "The continuous merge workflow"; + license = licenses.lgpl3; + platforms = platforms.unix; + maintainers = [maintainers.mic92]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-open/default.nix b/nixpkgs/pkgs/applications/version-management/git-open/default.nix new file mode 100644 index 000000000000..29975c5b68d0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-open/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, git, xdg-utils, gnugrep, fetchFromGitHub, installShellFiles, makeWrapper, pandoc }: + +stdenv.mkDerivation rec { + pname = "git-open"; + version = "3.0.0"; + + src = fetchFromGitHub { + owner = "paulirish"; + repo = "git-open"; + rev = "v${version}"; + sha256 = "sha256-Bag2rI2uR7ilkg2ozjR8tPXqKz5XjiY7WAUJKTVTXd8="; + }; + + nativeBuildInputs = [ installShellFiles makeWrapper pandoc ]; + + buildPhase = '' + # marked-man is broken and severly outdated. + # pandoc with some extra metadata is good enough and produces a by man readable file. + cat <(echo echo '% git-open (1) Version ${version} | Git manual') git-open.1.md > tmp + mv tmp git-open.1.md + pandoc --standalone --to man git-open.1.md -o git-open.1 + ''; + + installPhase = '' + mkdir -p $out/bin + mv git-open $out/bin + installManPage git-open.1 + wrapProgram $out/bin/git-open \ + --prefix PATH : "${lib.makeBinPath [ gnugrep ]}" \ + --suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" + ''; + + meta = with lib; { + homepage = "https://github.com/paulirish/git-open"; + description = "Open the GitHub page or website for a repository in your browser"; + license = licenses.mit; + platforms = platforms.all; + maintainers = with maintainers; [ SuperSandro2000 ]; + mainProgram = "git-open"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-privacy/default.nix b/nixpkgs/pkgs/applications/version-management/git-privacy/default.nix new file mode 100644 index 000000000000..3d3d7521f28d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-privacy/default.nix @@ -0,0 +1,48 @@ +{ lib +, fetchFromGitHub +, git +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "git-privacy"; + version = "2.3.0"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "EMPRI-DEVOPS"; + repo = pname; + rev = "v${version}"; + hash = "sha256-b2RkRL8/mZwqc3xCs+oltzualhQtp/7F9POlLlT3UUU="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + click + git-filter-repo + gitpython + pynacl + setuptools + ]; + + nativeCheckInputs = with python3.pkgs; [ + git + pytestCheckHook + ]; + + disabledTests = [ + # Tests want to interact with a git repo + "TestGitPrivacy" + ]; + + pythonImportsCheck = [ + "gitprivacy" + ]; + + meta = with lib; { + description = "Tool to redact Git author and committer dates"; + homepage = "https://github.com/EMPRI-DEVOPS/git-privacy"; + license = with licenses; [ bsd2 ]; + maintainers = with maintainers; [ fab ]; + mainProgram = "git-privacy"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-publish/default.nix b/nixpkgs/pkgs/applications/version-management/git-publish/default.nix new file mode 100644 index 000000000000..d84c5f096b8c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-publish/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, python, perl, fetchFromGitHub, installShellFiles }: +stdenv.mkDerivation rec { + pname = "git-publish"; + version = "1.8.2"; + + src = fetchFromGitHub { + owner = "stefanha"; + repo = "git-publish"; + rev = "v${version}"; + hash = "sha256-jjpbr+ZqG4U8/z0PurnXR+IUKQkG3QB8YqhDkH8uu2Y="; + }; + + nativeBuildInputs = [ perl installShellFiles ]; + buildInputs = [ python ]; + + installPhase = '' + runHook preInstall + + install -Dm0755 git-publish $out/bin/git-publish + pod2man git-publish.pod > git-publish.1 + installManPage git-publish.1 + + runHook postInstall + ''; + + meta = { + description = "Prepare and store patch revisions as git tags"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.lheckemann ]; + homepage = "https://github.com/stefanha/git-publish"; + mainProgram = "git-publish"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-quick-stats/default.nix b/nixpkgs/pkgs/applications/version-management/git-quick-stats/default.nix new file mode 100644 index 000000000000..e8292e84af45 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-quick-stats/default.nix @@ -0,0 +1,52 @@ +{ lib, stdenv +, fetchFromGitHub +, makeWrapper +, coreutils +, gawk +, git +, gnugrep +, ncurses +, util-linux +}: + +stdenv.mkDerivation rec { + pname = "git-quick-stats"; + version = "2.5.5"; + + src = fetchFromGitHub { + repo = "git-quick-stats"; + owner = "arzzen"; + rev = version; + sha256 = "sha256-7riA3yYw2D8+x/wzzbv0RF+zHCtqVC1ZpVANZp9x2AQ="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installFlags = [ + "PREFIX=${builtins.placeholder "out"}" + ]; + + postInstall = + let + path = lib.makeBinPath [ + coreutils + gawk + git + gnugrep + ncurses + util-linux + ]; + in + '' + wrapProgram $out/bin/git-quick-stats --suffix PATH : ${path} + ''; + + meta = with lib; { + homepage = "https://github.com/arzzen/git-quick-stats"; + description = "A simple and efficient way to access various statistics in git repository"; + platforms = platforms.all; + maintainers = [ maintainers.kmein ]; + license = licenses.mit; + mainProgram = "git-quick-stats"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-quickfix/default.nix b/nixpkgs/pkgs/applications/version-management/git-quickfix/default.nix new file mode 100644 index 000000000000..cfed9952f79e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-quickfix/default.nix @@ -0,0 +1,41 @@ +{ lib, fetchFromGitHub +, libiconv +, openssl +, pkg-config +, rustPlatform +, stdenv +, Security +, SystemConfiguration +}: + +rustPlatform.buildRustPackage rec { + pname = "git-quickfix"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "siedentop"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-IAjet/bDG/Hf/whS+yrEQSquj8s5DEmFis+5ysLLuxs="; + }; + + doCheck = false; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ + Security + SystemConfiguration + libiconv + ]; + + cargoSha256 = "sha256-eTAEf2nRrJ7i2Dw5BBZlLLu8mK2G/wUk40ivtfxk1pI="; + + meta = with lib; { + description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch"; + homepage = "https://github.com/siedentop/git-quickfix"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = with maintainers; [ cafkafk ]; + mainProgram = "git-quickfix"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-radar/default.nix b/nixpkgs/pkgs/applications/version-management/git-radar/default.nix new file mode 100644 index 000000000000..27979d63cca5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-radar/default.nix @@ -0,0 +1,30 @@ +{lib, stdenv, fetchFromGitHub}: + +stdenv.mkDerivation rec { + pname = "git-radar"; + version = "0.6"; + + src = fetchFromGitHub { + owner = "michaeldfallen"; + repo = "git-radar"; + rev = "v${version}"; + sha256 = "0c3zp8s4w7m4s71qgwk1jyfc8yzw34f2hi43x1w437ypgabwg81j"; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp git-radar fetch.sh prompt.bash prompt.zsh radar-base.sh $out + ln -s $out/git-radar $out/bin + ''; + + meta = with lib; { + homepage = "https://github.com/michaeldfallen/git-radar"; + license = licenses.mit; + description = "A tool you can add to your prompt to provide at-a-glance information on your git repo"; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ kamilchm ]; + mainProgram = "git-radar"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-recent/default.nix b/nixpkgs/pkgs/applications/version-management/git-recent/default.nix new file mode 100644 index 000000000000..52b4a49d19b9 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-recent/default.nix @@ -0,0 +1,36 @@ +{lib, stdenv, git, less, fetchFromGitHub, makeWrapper +# util-linuxMinimal is included because we need the column command +, util-linux +}: + +stdenv.mkDerivation rec { + pname = "git-recent"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "paulirish"; + repo = "git-recent"; + rev = "v${version}"; + sha256 = "1g8i6vpjnnfh7vc1269c91bap267w4bxdqqwnzb8x18vqgn2fx8i"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildPhase = null; + + installPhase = '' + mkdir -p $out/bin + cp git-recent $out/bin + wrapProgram $out/bin/git-recent \ + --prefix PATH : "${lib.makeBinPath [ git less util-linux ]}" + ''; + + meta = with lib; { + homepage = "https://github.com/paulirish/git-recent"; + description = "See your latest local git branches, formatted real fancy"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.jlesquembre ]; + mainProgram = "git-recent"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-relevant-history/default.nix b/nixpkgs/pkgs/applications/version-management/git-relevant-history/default.nix new file mode 100644 index 000000000000..063aa3215705 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-relevant-history/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, python3, git, git-filter-repo }: + +python3.pkgs.buildPythonApplication rec { + pname = "git-relevant-history"; + version = "2022-09-15"; + src = fetchFromGitHub { + owner = "rainlabs-eu"; + repo = pname; + rev = "84552324d7cb4790db86282fc61bf98a05b7a4fd"; + hash = "sha256-46a6TR1Hi3Lg2DTmOp1aV5Uhd4IukTojZkA3TVbTnRY="; + }; + propagatedBuildInputs = [ + git git-filter-repo + python3.pkgs.docopt + ]; + + meta = with lib; { + description = "Extract only relevant history from git repo"; + homepage = "https://github.com/rainlabs-eu/git-relevant-history"; + license = licenses.asl20; + platforms = platforms.all; + maintainers = [ maintainers.bendlas ]; + mainProgram = "git-relevant-history"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-remote-codecommit/default.nix b/nixpkgs/pkgs/applications/version-management/git-remote-codecommit/default.nix new file mode 100644 index 000000000000..fc9bd9ee02ed --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-remote-codecommit/default.nix @@ -0,0 +1,40 @@ +{ lib, fetchFromGitHub, python3Packages, awscli }: + +with python3Packages; + +buildPythonApplication rec { + pname = "git-remote-codecommit"; + version = "1.15.1"; + disabled = !isPy3k; + + # The check dependency awscli has some overrides + # which yield a different botocore. + # This results in a duplicate version during installation + # of the wheel, even though it does not matter + # because it is only a test dependency. + catchConflicts = false; + + src = fetchFromGitHub { + owner = "aws"; + repo = pname; + rev = version; + sha256 = "1vvp7i8ghmq72v57f6smh441h35xnr5ar628q2mr40bzvcifwymw"; + }; + + propagatedBuildInputs = [ botocore ]; + + nativeCheckInputs = [ pytest mock flake8 tox awscli ]; + + checkPhase = '' + pytest + ''; + + meta = { + description = + "Git remote prefix to simplify pushing to and pulling from CodeCommit"; + maintainers = [ lib.maintainers.zaninime ]; + homepage = "https://github.com/awslabs/git-remote-codecommit"; + license = lib.licenses.asl20; + mainProgram = "git-remote-codecommit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-remote-gcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-remote-gcrypt/default.nix new file mode 100644 index 000000000000..fd506ca2b46b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-remote-gcrypt/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, docutils, makeWrapper +, gnupg, curl, rsync, coreutils +, gawk, gnused, gnugrep +}: + +stdenv.mkDerivation rec { + pname = "git-remote-gcrypt"; + version = "1.5"; + rev = version; + + src = fetchFromGitHub { + inherit rev; + owner = "spwhitton"; + repo = "git-remote-gcrypt"; + sha256 = "sha256-uy6s3YQwY/aZmQoW/qe1YrSlfNHyDTXBFxB6fPGiPNQ="; + }; + + outputs = [ "out" "man" ]; + + nativeBuildInputs = [ docutils makeWrapper ]; + + installPhase = '' + prefix="$out" ./install.sh + wrapProgram "$out/bin/git-remote-gcrypt" \ + --prefix PATH ":" "${lib.makeBinPath [ gnupg curl rsync coreutils + gawk gnused gnugrep ]}" + ''; + + meta = with lib; { + homepage = "https://spwhitton.name/tech/code/git-remote-gcrypt"; + description = "A git remote helper for GPG-encrypted remotes"; + license = licenses.gpl3; + maintainers = with maintainers; [ ellis montag451 ]; + platforms = platforms.unix; + mainProgram = "git-remote-gcrypt"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-remote-hg/default.nix b/nixpkgs/pkgs/applications/version-management/git-remote-hg/default.nix new file mode 100644 index 000000000000..57741a076385 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-remote-hg/default.nix @@ -0,0 +1,32 @@ +{ lib, fetchFromGitHub, python3Packages +, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2 +}: + +python3Packages.buildPythonApplication rec { + pname = "git-remote-hg"; + version = "1.0.3.2"; + + src = fetchFromGitHub { + owner = "mnauw"; + repo = "git-remote-hg"; + rev = "v${version}"; + sha256 = "0b5lfbrcrvzpz380817md00lbgy5yl4y76vs3vm0bpm5wmr7c027"; + }; + + nativeBuildInputs = [ + asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2 + ]; + propagatedBuildInputs = with python3Packages; [ mercurial ]; + + postInstall = '' + make install-doc prefix=$out + ''; + + meta = with lib; { + homepage = "https://github.com/mnauw/git-remote-hg"; + description = "Semi-official Mercurial bridge from Git project"; + license = licenses.gpl2; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-reparent/default.nix b/nixpkgs/pkgs/applications/version-management/git-reparent/default.nix new file mode 100644 index 000000000000..38a66d6db1db --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-reparent/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, git, gnused }: + +stdenv.mkDerivation rec { + pname = "git-reparent"; + version = "unstable-2017-09-03"; + + src = fetchFromGitHub { + owner = "MarkLodato"; + repo = "git-reparent"; + rev = "a99554a32524a86421659d0f61af2a6c784b7715"; + sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -m755 -Dt $out/bin git-reparent + ''; + + postFixup = '' + wrapProgram $out/bin/git-reparent --prefix PATH : "${lib.makeBinPath [ git gnused ]}" + ''; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Git command to recommit HEAD with a new set of parents"; + maintainers = [ ]; + license = licenses.gpl2; + platforms = platforms.unix; + mainProgram = "git-reparent"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-repo-updater/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo-updater/default.nix new file mode 100644 index 000000000000..5c215644463c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-repo-updater/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildPythonApplication +, colorama +, fetchPypi +, gitpython +}: + +buildPythonApplication rec { + pname = "gitup"; + version = "0.5.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1pa612rcc94nc461zs9sag9p46sycc214622b06gdn35rmwp0y2g"; + }; + + propagatedBuildInputs = [ + colorama + gitpython + ]; + + # no tests + doCheck = false; + + meta = with lib; { + description = "Easily update multiple Git repositories at once"; + homepage = "https://github.com/earwig/git-repo-updater"; + license = licenses.mit; + maintainers = with maintainers; [bdesham ]; + mainProgram = "gitup"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix new file mode 100644 index 000000000000..a7d0f49344a0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix @@ -0,0 +1,61 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, nix-update-script +, python3, git, gnupg, less, openssh +}: + +stdenv.mkDerivation rec { + pname = "git-repo"; + version = "2.45"; + + src = fetchFromGitHub { + owner = "android"; + repo = "tools_repo"; + rev = "v${version}"; + hash = "sha256-f765TcOHL8wdPa9qSmGegofjCXx1tF/K5bRQnYQcYVc="; + }; + + # Fix 'NameError: name 'ssl' is not defined' + patches = [ ./import-ssl-module.patch ]; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ python3 ]; + + postPatch = '' + substituteInPlace repo --replace \ + 'urllib.request.urlopen(url)' \ + 'urllib.request.urlopen(url, context=ssl.create_default_context())' + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp repo $out/bin/repo + + runHook postInstall + ''; + + # Important runtime dependencies + postFixup = '' + wrapProgram $out/bin/repo --prefix PATH ":" \ + "${lib.makeBinPath [ git gnupg less openssh ]}" + ''; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "Android's repo management tool"; + longDescription = '' + Repo is a Python script based on Git that helps manage many Git + repositories, does the uploads to revision control systems, and automates + parts of the development workflow. Repo is not meant to replace Git, only + to make it easier to work with Git. + ''; + homepage = "https://android.googlesource.com/tools/repo"; + license = licenses.asl20; + maintainers = with maintainers; [ otavio ]; + platforms = platforms.unix; + mainProgram = "repo"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch b/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch new file mode 100644 index 000000000000..43e879a8ba17 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-repo/import-ssl-module.patch @@ -0,0 +1,30 @@ +Fix runtime error due missing import + +Traceback (most recent call last): + File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 1339, in <module> + main(sys.argv[1:]) + File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 1304, in main + _Init(args, gitc_init=(cmd == 'gitc-init')) + File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 607, in _Init + _Clone(url, dst, opt.clone_bundle, opt.quiet, opt.verbose) + File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 912, in _Clone + if clone_bundle and _DownloadBundle(url, cwd, quiet, verbose): + File "/nix/store/4qqhr7g9ri3n7v6ik9ahlpvyp18wcn4p-git-repo-2.15.3/bin/.repo-wrapped", line 860, in _DownloadBundle + r = urllib.request.urlopen(url, context=ssl.create_default_context()) +NameError: name 'ssl' is not defined +builder for '/nix/store/4hvds8fv8xmzlm86yg9cf1lj6hrya7sg-amdvlk-src.drv' failed with exit code 1 + +diff --git a/repo b/repo +index 8b05def..f394b3e 100755 +--- a/repo ++++ b/repo +@@ -236,8 +236,9 @@ import optparse + import re + import shutil + import stat ++import ssl + import urllib.error + import urllib.request + + if sys.version_info[0] == 3: + import urllib.request diff --git a/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/nixpkgs/pkgs/applications/version-management/git-review/default.nix new file mode 100644 index 000000000000..2f7defa3ee55 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-review/default.nix @@ -0,0 +1,53 @@ +{ lib +, fetchFromGitea +, buildPythonApplication +, pbr +, requests +, setuptools +, gitUpdater +}: + +buildPythonApplication rec { + pname = "git-review"; + version = "2.4.0"; + + # Manually set version because prb wants to get it from the git + # upstream repository (and we are installing from tarball instead) + PBR_VERSION = version; + + src = fetchFromGitea { + domain = "opendev.org"; + owner = "opendev"; + repo = "git-review"; + rev = version; + hash = "sha256-UfYc662NqnQt0+CKc+18jXnNTOcZv8urCNBsWd6x0VQ="; + }; + + outputs = [ "out" "man" ]; + + nativeBuildInputs = [ + pbr + ]; + + propagatedBuildInputs = [ + requests + setuptools # implicit dependency, used to get package version through pkg_resources + ]; + + # Don't run tests because they pull in external dependencies + # (a specific build of gerrit + maven plugins), and I haven't figured + # out how to work around this yet. + doCheck = false; + + pythonImportsCheck = [ "git_review" ]; + + passthru.updateScript = gitUpdater { }; + + meta = with lib; { + description = "Tool to submit code to Gerrit"; + homepage = "https://opendev.org/opendev/git-review"; + license = licenses.asl20; + maintainers = with maintainers; [ kira-bruneau ]; + mainProgram = "git-review"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-secret/default.nix b/nixpkgs/pkgs/applications/version-management/git-secret/default.nix new file mode 100644 index 000000000000..877a727523b5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-secret/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }: + +stdenv.mkDerivation rec { + pname = "git-secret"; + version = "0.5.0"; + + src = fetchFromGitHub { + repo = "git-secret"; + owner = "sobolevn"; + rev = "v${version}"; + sha256 = "sha256-Vdlv3H99BZcT1O66ZCpq5olENOaUSubx58B1PQ/OlMU="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + install -D git-secret $out/bin/git-secret + + wrapProgram $out/bin/git-secret \ + --prefix PATH : "${lib.makeBinPath [ git gnupg gawk ]}" + + mkdir $out/share + cp -r man $out/share + ''; + + meta = { + description = "A bash-tool to store your private data inside a git repository"; + homepage = "https://git-secret.io"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.lo1tuma ]; + platforms = lib.platforms.all; + mainProgram = "git-secret"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-secrets/default.nix b/nixpkgs/pkgs/applications/version-management/git-secrets/default.nix new file mode 100644 index 000000000000..a2f2045a3ddc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-secrets/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, git, coreutils }: + +stdenv.mkDerivation rec { + pname = "git-secrets"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "awslabs"; + repo = "git-secrets"; + rev = version; + sha256 = "10lnxg0q855zi3d6804ivlrn6dc817kilzdh05mmz8a0ccvm2qc7"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -m755 -Dt $out/bin git-secrets + install -m444 -Dt $out/share/man/man1 git-secrets.1 + + wrapProgram $out/bin/git-secrets \ + --prefix PATH : "${lib.makeBinPath [ git coreutils ]}" + ''; + + meta = with lib; { + description = "Prevents you from committing secrets and credentials into git repositories"; + homepage = "https://github.com/awslabs/git-secrets"; + license = licenses.asl20; + platforms = platforms.all; + mainProgram = "git-secrets"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-series/Cargo.lock b/nixpkgs/pkgs/applications/version-management/git-series/Cargo.lock new file mode 100644 index 000000000000..3d19f5acda9d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-series/Cargo.lock @@ -0,0 +1,517 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ansi_term" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9213f7cd7c27e95c2b57c49f0e69b1ea65b27138da84a170133fd21b07659c00" +dependencies = [ + "num", + "time", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term 0.12.1", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "colorparse" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "179f9a3462d05f4c15041d8ba8bd59534731fe6ddd89a65ca61ec67655f37379" +dependencies = [ + "ansi_term 0.9.0", +] + +[[package]] +name = "fixedbitset" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e780567ed7abc415d12fd464571d265eb4a5710ddc97cdb1a31a4c35bb479d" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "git-series" +version = "0.9.1" +dependencies = [ + "ansi_term 0.9.0", + "atty", + "chrono", + "clap", + "colorparse", + "git2", + "munkres", + "quick-error", + "tempdir", +] + +[[package]] +name = "git2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c1af51ea8a906616af45a4ce78eacf25860f7a13ae7bf8a814693f0f4037a26" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "openssl-probe", + "openssl-sys", + "url", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + +[[package]] +name = "libc" +version = "0.2.144" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" + +[[package]] +name = "libgit2-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4870c781f6063efb83150cd22c1ddf6ecf58531419e7570cdcced46970f64a16" +dependencies = [ + "cc", + "libc", + "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +] + +[[package]] +name = "libssh2-sys" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matrixmultiply" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "916806ba0031cd542105d916a97c8572e1fa6dd79c9c51e7eb43a09ec2dd84c1" +dependencies = [ + "rawpointer", +] + +[[package]] +name = "munkres" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74ce2515494bc1593d54364884e807c4a97c8c3210ddcc51c541a7ab391339ce" +dependencies = [ + "fixedbitset", + "ndarray", +] + +[[package]] +name = "ndarray" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c0d5c9540a691d153064dc47a4db2504587a75eae07bf1d73f7a596ebc73c04" +dependencies = [ + "matrixmultiply", + "num-complex", + "num-integer", + "num-traits", + "rawpointer", +] + +[[package]] +name = "num" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" +dependencies = [ + "num-integer", + "num-iter", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand", + "remove_dir_all", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi", + "winapi", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/nixpkgs/pkgs/applications/version-management/git-series/default.nix b/nixpkgs/pkgs/applications/version-management/git-series/default.nix new file mode 100644 index 000000000000..a055ccc868f2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-series/default.nix @@ -0,0 +1,68 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, stdenv +, curl +, libgit2 +, libssh2 +, openssl +, zlib +}: + +rustPlatform.buildRustPackage { + pname = "git-series"; + version = "unstable-2019-10-15"; + + src = fetchFromGitHub { + owner = "git-series"; + repo = "git-series"; + rev = "c570a015e15214be46a7fd06ba08526622738e20"; + sha256 = "1i0m2b7ma6xvkg95k57gaj1wpc1rfvka6h8jr5hglxmqqbz6cb6w"; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + }; + + nativeBuildInputs = [ + pkg-config + ] ++ lib.optionals stdenv.isDarwin [ + curl + ]; + + buildInputs = [ + libgit2 + libssh2 + openssl + zlib + ] ++ lib.optionals stdenv.isDarwin [ + curl + ]; + + LIBGIT2_SYS_USE_PKG_CONFIG = true; + LIBSSH2_SYS_USE_PKG_CONFIG = true; + + # update Cargo.lock to work with openssl 3 + postPatch = '' + ln -sf ${./Cargo.lock} Cargo.lock + ''; + + postInstall = '' + install -D "$src/git-series.1" "$out/man/man1/git-series.1" + ''; + + meta = with lib; { + description = "A tool to help with formatting git patches for review on mailing lists"; + longDescription = '' + git series tracks changes to a patch series over time. git + series also tracks a cover letter for the patch series, + formats the series for email, and prepares pull requests. + ''; + homepage = "https://github.com/git-series/git-series"; + + license = licenses.mit; + maintainers = with maintainers; [ edef vmandela ]; + mainProgram = "git-series"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix new file mode 100644 index 000000000000..b3d7f7a3a432 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix @@ -0,0 +1,31 @@ +{ lib, buildGoModule, fetchFromGitHub, testers, git-sizer }: + +buildGoModule rec { + pname = "git-sizer"; + version = "1.5.0"; + + src = fetchFromGitHub { + owner = "github"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-On7QBTzKfnuuzwMQ8m1odxGqfIKL+EDg5V05Kxuhmqw="; + }; + + vendorHash = "sha256-oRlsD99XiI/0ZWibjyRcycmGab+vMbXrV5hIdIyUDYg="; + + ldflags = [ "-s" "-w" "-X main.BuildVersion=${version}" ]; + + doCheck = false; + + passthru.tests.vesion = testers.testVersion { + package = git-sizer; + }; + + meta = with lib; { + description = "Compute various size metrics for a Git repository"; + homepage = "https://github.com/github/git-sizer"; + license = licenses.mit; + maintainers = with maintainers; [ matthewbauer ]; + mainProgram = "git-sizer"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-stack/default.nix b/nixpkgs/pkgs/applications/version-management/git-stack/default.nix new file mode 100644 index 000000000000..d9792654a94b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-stack/default.nix @@ -0,0 +1,42 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, Security +, testers +, git-stack +}: + +rustPlatform.buildRustPackage rec { + pname = "git-stack"; + version = "0.10.17"; + + src = fetchFromGitHub { + owner = "gitext-rs"; + repo = "git-stack"; + rev = "v${version}"; + hash = "sha256-foItJSZ6jsLuWkO/c1Ejb45dSdzZ/ripieyVIYsEyy0="; + }; + + cargoHash = "sha256-MEhUmy4ijR/zHm/qMt4PqNGYnCfIgjNaL9SlMmXCMmc="; + + buildInputs = lib.optionals stdenv.isDarwin [ + Security + ]; + + # Many tests try to access the file system. + doCheck = false; + + passthru.tests.version = testers.testVersion { + package = git-stack; + }; + + meta = with lib; { + description = "Stacked branch management for Git"; + homepage = "https://github.com/gitext-rs/git-stack"; + changelog = "https://github.com/gitext-rs/git-stack/releases/tag/v${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ stehessel ]; + mainProgram = "git-stack"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-standup/default.nix b/nixpkgs/pkgs/applications/version-management/git-standup/default.nix new file mode 100644 index 000000000000..2c4cdc02564b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-standup/default.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, git }: + +stdenv.mkDerivation rec { + pname = "git-standup"; + version = "2.3.2"; + + src = fetchFromGitHub { + owner = "kamranahmedse"; + repo = pname; + rev = version; + sha256 = "1xnn0jjha56v7l2vj45zzxncl6m5x2hq6nkffgc1bcikhp1pidn7"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -Dm755 -t $out/bin git-standup + + wrapProgram $out/bin/git-standup \ + --prefix PATH : "${lib.makeBinPath [ git ]}" + ''; + + meta = with lib; { + description = "Recall what you did on the last working day"; + homepage = "https://github.com/kamranahmedse/git-standup"; + license = licenses.mit; + maintainers = [ ]; + platforms = platforms.all; + mainProgram = "git-standup"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-stree/default.nix b/nixpkgs/pkgs/applications/version-management/git-stree/default.nix new file mode 100644 index 000000000000..53f43d69d4d4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-stree/default.nix @@ -0,0 +1,28 @@ +{ stdenv, lib, fetchFromGitHub, ... }: + +stdenv.mkDerivation { + pname = "git-stree"; + version = "0.4.5"; + + src = fetchFromGitHub { + owner = "tdd"; + repo = "git-stree"; + rev = "0.4.5"; + sha256 = "0y5h44n38w6rhy9m591dvibxpfggj3q950ll7y4h49bhpks4m0l9"; + }; + + installPhase = '' + mkdir -p $out/bin $out/share/bash-completion/completions + install -m 0755 git-stree $out/bin/ + install -m 0644 git-stree-completion.bash $out/share/bash-completion/completions/ + ''; + + meta = with lib; { + description = "A better Git subtree helper command"; + homepage = "http://deliciousinsights.github.io/git-stree"; + license = licenses.mit; + maintainers = [ maintainers.benley ]; + platforms = platforms.unix; + mainProgram = "git-stree"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix b/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix new file mode 100644 index 000000000000..e861bc17b8ca --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub, git, makeWrapper, which, installShellFiles }: + +stdenv.mkDerivation rec { + pname = "git-subrepo"; + version = "0.4.6"; + + src = fetchFromGitHub { + owner = "ingydotnet"; + repo = "git-subrepo"; + rev = version; + sha256 = "sha256-83N0Ek6DawUrOc6s2Utzi8776bX4UTGS/a/OffkV44Y="; + }; + + nativeBuildInputs = [ + makeWrapper + which + installShellFiles + ]; + + buildInputs = [ + git + ]; + + makeFlags = [ + "PREFIX=${placeholder "out"}" + "INSTALL_LIB=${placeholder "out"}/bin" + "INSTALL_MAN=${placeholder "out"}/share/man/man1" + ]; + + postInstall = '' + installShellCompletion --bash --name git-subrepo.bash share/completion.bash + installShellCompletion --zsh share/zsh-completion/_git-subrepo + ''; + + postFixup = '' + wrapProgram $out/bin/git-subrepo \ + --prefix PATH : "${git}/bin" + ''; + + meta = with lib; { + homepage = "https://github.com/ingydotnet/git-subrepo"; + description = "Git submodule alternative"; + mainProgram = "git-subrepo"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ ryantrinkle ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-subtrac/default.nix b/nixpkgs/pkgs/applications/version-management/git-subtrac/default.nix new file mode 100644 index 000000000000..43fb89661735 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-subtrac/default.nix @@ -0,0 +1,25 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "git-subtrac"; + version = "0.04"; + + src = fetchFromGitHub { + owner = "apenwarr"; + repo = pname; + rev = "v${version}"; + hash = "sha256-3Z1AbPPsTBa3rqfvNAMBz7CIRq/zc9q5/TcLJWYSNlw="; + }; + + vendorHash = "sha256-3mJoSsGE+f9hVbNctjMR7WmSkCaHmKIO125LWG1+xFQ="; + + doCheck = false; + + meta = with lib; { + description = "Keep the content for your git submodules all in one place: the parent repo"; + homepage = "https://github.com/apenwarr/git-subtrac"; + license = licenses.asl20; + maintainers = [ ]; + mainProgram = "git-subtrac"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-sync/default.nix b/nixpkgs/pkgs/applications/version-management/git-sync/default.nix new file mode 100644 index 000000000000..9180db63a813 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-sync/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub, coreutils, git, gnugrep, gnused, makeWrapper, inotify-tools }: + +stdenv.mkDerivation rec { + pname = "git-sync"; + version = "unstable-2022-03-20"; + + src = fetchFromGitHub { + owner = "simonthum"; + repo = "git-sync"; + rev = "8466b77a38b3d5e8b4ed9e3cb1b635e475eeb415"; + sha256 = "sha256-8rCwpmHV6wgFCLzPJOKzwN5mG8uD5KIlGFwcgQD+SK4="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin + cp -a git-* $out/bin/ + cp -a contrib/git-* $out/bin/ + ''; + + wrapperPath = with lib; makeBinPath ([ + coreutils + git + gnugrep + gnused + ] ++ lib.optionals stdenv.isLinux [ inotify-tools ]); + + postFixup = '' + wrap_path="${wrapperPath}":$out/bin + + wrapProgram $out/bin/git-sync \ + --prefix PATH : $wrap_path + + wrapProgram $out/bin/git-sync-on-inotify \ + --prefix PATH : $wrap_path + ''; + + meta = { + description = "A script to automatically synchronize a git repository"; + homepage = "https://github.com/simonthum/git-sync"; + maintainers = with lib.maintainers; [ imalison ]; + license = lib.licenses.cc0; + platforms = with lib.platforms; unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-team/default.nix b/nixpkgs/pkgs/applications/version-management/git-team/default.nix new file mode 100644 index 000000000000..19556366b1eb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-team/default.nix @@ -0,0 +1,46 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, go-mockery +, installShellFiles +}: + +buildGoModule rec { + pname = "git-team"; + version = "1.8.1"; + + src = fetchFromGitHub { + owner = "hekmekk"; + repo = "git-team"; + rev = "v${version}"; + hash = "sha256-+j5d1tImVHaTx63uzLdh2YNCFa1ErAVv4OMwxOutBQ4="; + }; + + vendorHash = "sha256-NTOUL1oE2IhgLyYYHwRCMW5yCxIRxUwqkfuhSSBXf6A="; + + nativeBuildInputs = [ + go-mockery + installShellFiles + ]; + + preBuild = '' + mockery --dir=src/ --all --keeptree + ''; + + postInstall = '' + go run main.go --generate-man-page > git-team.1 + installManPage git-team.1 + + installShellCompletion --cmd git-team \ + --bash <($out/bin/git-team completion bash) \ + --zsh <($out/bin/git-team completion zsh) + ''; + + meta = with lib; { + description = "Command line interface for managing and enhancing git commit messages with co-authors"; + homepage = "https://github.com/hekmekk/git-team"; + license = licenses.mit; + maintainers = with maintainers; [ lockejan ]; + mainProgram = "git-team"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-test/default.nix b/nixpkgs/pkgs/applications/version-management/git-test/default.nix new file mode 100644 index 000000000000..fb8619249b55 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-test/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, git }: + +stdenv.mkDerivation rec { + pname = "git-test"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "spotify"; + repo = "git-test"; + rev = "v${version}"; + sha256 = "01h3f0andv1p7pwir3k6n01v92hgr5zbjadfwl144yjw9x37fm2f"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + dontBuild = true; + + installPhase = '' + install -m755 -Dt $out/bin git-test + install -m444 -Dt $out/share/man/man1 git-test.1 + + wrapProgram $out/bin/git-test \ + --prefix PATH : "${lib.makeBinPath [ git ]}" + ''; + + meta = with lib; { + description = "Test your commits"; + homepage = "https://github.com/spotify/git-test"; + license = licenses.asl20; + maintainers = [ ]; + platforms = platforms.all; + mainProgram = "git-test"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-town/default.nix b/nixpkgs/pkgs/applications/version-management/git-town/default.nix new file mode 100644 index 000000000000..c47604d711c8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-town/default.nix @@ -0,0 +1,67 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles, git, testers, git-town, makeWrapper }: + +buildGoModule rec { + pname = "git-town"; + version = "14.2.0"; + + src = fetchFromGitHub { + owner = "git-town"; + repo = "git-town"; + rev = "v${version}"; + hash = "sha256-+OJ8aUA/VFOAzdCRcOCQKm6/RjRe13TITP1DAWqoAQI="; + }; + + vendorHash = null; + + nativeBuildInputs = [ installShellFiles makeWrapper ]; + + buildInputs = [ git ]; + + ldflags = + let + modulePath = "github.com/git-town/git-town/v${lib.versions.major version}"; in + [ + "-s" + "-w" + "-X ${modulePath}/src/cmd.version=v${version}" + "-X ${modulePath}/src/cmd.buildDate=nix" + ]; + + nativeCheckInputs = [ git ]; + preCheck = + let + skippedTests = [ + "TestGodog" + "TestMockingShell_MockCommand" + "TestShellRunner_RunStringWith_Input" + ]; + in + '' + HOME=$(mktemp -d) + # Disable tests requiring local operations + buildFlagsArray+=("-run" "[^(${builtins.concatStringsSep "|" skippedTests})]") + ''; + + postInstall = '' + installShellCompletion --cmd git-town \ + --bash <($out/bin/git-town completion bash) \ + --fish <($out/bin/git-town completion fish) \ + --zsh <($out/bin/git-town completion zsh) + + wrapProgram $out/bin/git-town --prefix PATH : ${lib.makeBinPath [ git ]} + ''; + + passthru.tests.version = testers.testVersion { + package = git-town; + command = "git-town --version"; + inherit version; + }; + + meta = with lib; { + description = "Generic, high-level git support for git-flow workflows"; + homepage = "https://www.git-town.com/"; + license = licenses.mit; + maintainers = with maintainers; [ allonsy blaggacao gabyx ]; + mainProgram = "git-town"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-trim/default.nix b/nixpkgs/pkgs/applications/version-management/git-trim/default.nix new file mode 100644 index 000000000000..a387ec706718 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-trim/default.nix @@ -0,0 +1,56 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, pkg-config +, openssl +, libgit2 +, IOKit +, CoreFoundation +, Security +, fetchpatch +}: + +rustPlatform.buildRustPackage rec { + pname = "git-trim"; + version = "0.4.4"; + + src = fetchFromGitHub { + owner = "foriequal0"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-XAO3Qg5I2lYZVNx4+Z5jKHRIFdNwBJsUQwJXFb4CbvM="; + }; + + cargoHash = "sha256-mS8kNkZs8jX99ryG4XkU+U/iWIIcmET2vOfG1YNNZFU="; + + cargoPatches = [ + # Update git2 https://github.com/foriequal0/git-trim/pull/202 + (fetchpatch { + url = "https://github.com/foriequal0/git-trim/commit/4355cd1d6f605455087c4d7ad16bfb92ffee941f.patch"; + sha256 = "sha256-C1pX4oe9ZCgvqYTBJeSjMdr0KFyjv2PNVMJDlwCAngY="; + }) + ]; + + OPENSSL_NO_VENDOR = 1; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl libgit2 ] + ++ lib.optionals stdenv.isDarwin [ IOKit CoreFoundation Security ]; + + postInstall = '' + install -Dm644 -t $out/share/man/man1/ docs/git-trim.1 + ''; + + # fails with sandbox + doCheck = false; + + meta = with lib; { + description = "Automatically trims your branches whose tracking remote refs are merged or gone"; + homepage = "https://github.com/foriequal0/git-trim"; + license = licenses.mit; + maintainers = with maintainers; [ cafkafk ]; + mainProgram = "git-trim"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-up/default.nix b/nixpkgs/pkgs/applications/version-management/git-up/default.nix new file mode 100644 index 000000000000..5f91aacf63d8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-up/default.nix @@ -0,0 +1,57 @@ +{ lib +, pythonPackages +, fetchPypi +, git +}: + +pythonPackages.buildPythonApplication rec { + pname = "git-up"; + version = "2.2.0"; + format = "pyproject"; + + src = fetchPypi { + pname = "git_up"; + inherit version; + hash = "sha256-GTX2IWLQ48yWfPnmtEa9HJ5umQLttqgTlgZQlaWgeE4="; + }; + + nativeBuildInputs = with pythonPackages; [ + poetry-core + ]; + + # git should be on path for tool to work correctly + propagatedBuildInputs = [ + git + ] ++ (with pythonPackages; [ + colorama + gitpython + termcolor + ]); + + nativeCheckInputs = [ + git + pythonPackages.pytest7CheckHook + ]; + + # 1. git fails to run as it cannot detect the email address, so we set it + # 2. $HOME is by default not a valid dir, so we have to set that too + # https://github.com/NixOS/nixpkgs/issues/12591 + preCheck = '' + export HOME=$TMPDIR + git config --global user.email "nobody@example.com" + git config --global user.name "Nobody" + ''; + + postInstall = '' + rm -r $out/${pythonPackages.python.sitePackages}/PyGitUp/tests + ''; + + meta = with lib; { + homepage = "https://github.com/msiemens/PyGitUp"; + description = "A git pull replacement that rebases all local branches when pulling"; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.all; + mainProgram = "git-up"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-vanity-hash/default.nix b/nixpkgs/pkgs/applications/version-management/git-vanity-hash/default.nix new file mode 100644 index 000000000000..55332c6c7287 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-vanity-hash/default.nix @@ -0,0 +1,33 @@ +{ + lib, + fetchFromGitHub, + rustPlatform, +}: + +rustPlatform.buildRustPackage { + pname = "git-vanity-hash"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "prasmussen"; + repo = "git-vanity-hash"; + # v1.0.0 + build fix + rev = "a80e7725ac6d0b7e6807cd7315cfdc7eaf0584f6"; + hash = "sha256-1z4jbtzUB3SH79dDXAITf7Vup1YZdTLHBieSrhrvSXc="; + }; + + cargoHash = "sha256-+SQ0HpURBjnnwH1Ue7IUReOtI4LxVPK9AGSAihs0qsc="; + + postInstall = '' + mkdir -p $out/share/doc/git-vanity-hash + cp README.md $out/share/doc/git-vanity-hash + ''; + + meta = with lib; { + homepage = "https://github.com/prasmussen/git-vanity-hash"; + description = "Tool for creating commit hashes with a specific prefix"; + license = [ licenses.mit ]; + maintainers = [ maintainers.kaction ]; + mainProgram = "git-vanity-hash"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-vendor/default.nix b/nixpkgs/pkgs/applications/version-management/git-vendor/default.nix new file mode 100644 index 000000000000..6722f94d503e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-vendor/default.nix @@ -0,0 +1,67 @@ +{ lib, stdenv, fetchFromGitHub, writeShellScriptBin, skawarePackages +}: + +let + version = "1.3.0"; + sha256 = "sha256-CFv9gZQHeEiZctJFyB6PJ1dVNkrQ7PlVtgZuteQQTJ0="; + +in stdenv.mkDerivation { + pname = "git-vendor"; + inherit version; + + src = fetchFromGitHub { + owner = "brettlangdon"; + repo = "git-vendor"; + rev = "v${version}"; + inherit sha256; + }; + + outputs = [ "bin" "man" "doc" "out" ]; + + PREFIX = (placeholder "out"); + BINPREFIX = "${placeholder "bin"}/bin"; + MANPREFIX = "${placeholder "man"}/share/man/man1"; + + buildInputs = [ + # stubbing out a `git config` check that `make install` tries to do + (writeShellScriptBin "git" "") + ]; + + postInstall = '' + ${skawarePackages.cleanPackaging.commonFileActions { + docFiles = [ + "LICENSE" + "README.md" + ]; + noiseFiles = [ + "bin/git-vendor" + "Makefile" + "etc/bash_completion.sh" + "man" + "install.sh" + ]; + }} $doc/share/doc/git-vendor + ''; + + postFixup = '' + ${skawarePackages.cleanPackaging.checkForRemainingFiles} + ''; + + meta = { + description = "A git command for managing vendored dependencies"; + longDescription = '' + git-vendor is a wrapper around git-subtree commands for checking out and updating vendored dependencies. + + By default git-vendor conforms to the pattern used for vendoring golang dependencies: + * Dependencies are stored under vendor/ directory in the repo. + * Dependencies are stored under the fully qualified project path. + e.g. https://github.com/brettlangdon/forge will be stored under vendor/github.com/brettlangdon/forge. + ''; + homepage = "https://github.com/brettlangdon/git-vendor"; + license = lib.licenses.mit; + maintainers = [ ]; + platforms = lib.platforms.all; + mainProgram = "git-vendor"; + }; + +} diff --git a/nixpkgs/pkgs/applications/version-management/git-when-merged/default.nix b/nixpkgs/pkgs/applications/version-management/git-when-merged/default.nix new file mode 100644 index 000000000000..36336d964cc3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-when-merged/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub, python3 }: + +stdenv.mkDerivation rec { + pname = "git-when-merged"; + version = "1.2.1"; + + src = fetchFromGitHub { + owner = "mhagger"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-Yp/GNzD+7EPlk/kzZnT1eiSNsSxpYEiZezRbUU3HfLc="; + }; + + buildInputs = [ python3 ]; + + installPhase = '' + install -D --target-directory $out/bin/ bin/git-when-merged + ''; + + meta = with lib; { + description = + "Helps you figure out when and why a commit was merged into a branch"; + longDescription = '' + If you use standard Git workflows, then you create a feature + branch for each feature that you are working on. When the feature + is complete, you merge it into your master branch. You might even + have sub-feature branches that are merged into a feature branch + before the latter is merged. + + In such a workflow, the first-parent history of master consists + mainly of merges of feature branches into the mainline. git + when-merged can be used to ask, "When (and why) was commit C + merged into the current branch?" + ''; + homepage = "https://github.com/mhagger/git-when-merged"; + license = licenses.gpl2Only; + platforms = python3.meta.platforms; + maintainers = with maintainers; [ DamienCassou ]; + mainProgram = "git-when-merged"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git-workspace/default.nix b/nixpkgs/pkgs/applications/version-management/git-workspace/default.nix new file mode 100644 index 000000000000..fc16e778f28c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-workspace/default.nix @@ -0,0 +1,44 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, libiconv +, Security +, pkg-config +, openssl +, nix-update-script +, testers +, git-workspace +}: + +rustPlatform.buildRustPackage rec { + pname = "git-workspace"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "orf"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-9/t2MDZ5bYTuzCYTodeATqk+xqST2aQMr7Z1x5fPIuw="; + }; + + cargoSha256 = "sha256-/drXVkYgdkFqZJsz2fNx3Ms21xYKQmwLXRJEmKSaikQ="; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ openssl ] + ++ lib.optionals stdenv.isDarwin [ libiconv Security ]; + + passthru = { + updateScript = nix-update-script { }; + tests.version = testers.testVersion { package = git-workspace; }; + }; + + meta = with lib; { + description = "Sync personal and work git repositories from multiple providers"; + homepage = "https://github.com/orf/git-workspace"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ misuzu ]; + mainProgram = "git-workspace"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/git/default.nix b/nixpkgs/pkgs/applications/version-management/git/default.nix new file mode 100644 index 000000000000..8f57c97230fb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/default.nix @@ -0,0 +1,394 @@ +{ fetchurl, lib, stdenv, buildPackages +, curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio +, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc +, openssh, pcre2, bash +, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45 +, libxslt, tcl, tk, makeWrapper, libiconv +, svnSupport ? false, subversionClient, perlLibs, smtpPerlLibs +, perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform +, nlsSupport ? true +, osxkeychainSupport ? stdenv.isDarwin +, guiSupport ? false +, withManual ? true +, pythonSupport ? true +, withpcre2 ? true +, sendEmailSupport ? perlSupport +, Security, CoreServices +, nixosTests +, withLibsecret ? false +, pkg-config, glib, libsecret +, gzip # needed at runtime by gitweb.cgi +, withSsh ? false +, sysctl +, doInstallCheck ? !stdenv.isDarwin # extremely slow on darwin +, tests +}: + +assert osxkeychainSupport -> stdenv.isDarwin; +assert sendEmailSupport -> perlSupport; +assert svnSupport -> perlSupport; + +let + version = "2.44.0"; + svn = subversionClient.override { perlBindings = perlSupport; }; + gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; +in + +stdenv.mkDerivation (finalAttrs: { + pname = "git" + + lib.optionalString svnSupport "-with-svn" + + lib.optionalString (!svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2) "-minimal"; + inherit version; + + src = fetchurl { + url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; + hash = "sha256-41hzjctbXqNAzpAKABXAOuhugE5/9k5HqkYx3e5oHeM="; + }; + + outputs = [ "out" ] ++ lib.optional withManual "doc"; + separateDebugInfo = true; + + hardeningDisable = [ "format" ]; + + enableParallelBuilding = true; + + patches = [ + ./docbook2texi.patch + ./git-sh-i18n.patch + ./git-send-email-honor-PATH.patch + ./installCheck-path.patch + ] ++ lib.optionals withSsh [ + ./ssh-path.patch + ]; + + postPatch = '' + # Fix references to gettext introduced by ./git-sh-i18n.patch + substituteInPlace git-sh-i18n.sh \ + --subst-var-by gettext ${gettext} + + # ensure we are using the correct shell when executing the test scripts + patchShebangs t/*.sh + '' + lib.optionalString withSsh '' + for x in connect.c git-gui/lib/remote_add.tcl ; do + substituteInPlace "$x" \ + --subst-var-by ssh "${openssh}/bin/ssh" + done + ''; + + nativeBuildInputs = [ gettext perlPackages.perl makeWrapper pkg-config ] + ++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x + docbook_xsl docbook_xml_dtd_45 libxslt ]; + buildInputs = [ curl openssl zlib expat cpio libiconv bash ] + ++ lib.optionals perlSupport [ perlPackages.perl ] + ++ lib.optionals guiSupport [tcl tk] + ++ lib.optionals withpcre2 [ pcre2 ] + ++ lib.optionals stdenv.isDarwin [ Security CoreServices ] + ++ lib.optionals withLibsecret [ glib libsecret ]; + + # required to support pthread_cancel() + NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s" + + lib.optionalString (stdenv.isFreeBSD) "-lthr"; + + configureFlags = [ + "ac_cv_prog_CURL_CONFIG=${lib.getDev curl}/bin/curl-config" + ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "ac_cv_fread_reads_directories=yes" + "ac_cv_snprintf_returns_bogus=no" + "ac_cv_iconv_omits_bom=no" + ]; + + preBuild = '' + makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') ) + ''; + + makeFlags = [ + "prefix=\${out}" + ] + # Git does not allow setting a shell separately for building and run-time. + # Therefore lets leave it at the default /bin/sh when cross-compiling + ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "SHELL_PATH=${stdenv.shell}" + ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"]) + ++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"]) + ++ lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="] + ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"]) + ++ lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"] + ++ lib.optional withpcre2 "USE_LIBPCRE2=1" + ++ lib.optional (!nlsSupport) "NO_GETTEXT=1" + # git-gui refuses to start with the version of tk distributed with + # macOS Catalina. We can prevent git from building the .app bundle + # by specifying an invalid tk framework. The postInstall step will + # then ensure that git-gui uses tcl/tk from nixpkgs, which is an + # acceptable version. + # + # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706 + ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent"; + + disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + stdenv.shellPackage + ]; + + + postBuild = '' + make -C contrib/subtree + '' + (lib.optionalString perlSupport '' + make -C contrib/diff-highlight + '') + (lib.optionalString osxkeychainSupport '' + make -C contrib/credential/osxkeychain + '') + (lib.optionalString withLibsecret '' + make -C contrib/credential/libsecret + ''); + + + ## Install + + # WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead. + # We need many of these files during the installCheckPhase. + + installFlags = [ "NO_INSTALL_HARDLINKS=1" ]; + + preInstall = (lib.optionalString osxkeychainSupport '' + mkdir -p $out/bin + ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/ + rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o + '') + (lib.optionalString withLibsecret '' + mkdir -p $out/bin + ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/ + rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o + ''); + + postInstall = + '' + notSupported() { + unlink $1 || true + } + + # Install git-subtree. + make -C contrib/subtree install ${lib.optionalString withManual "install-doc"} + rm -rf contrib/subtree + + # Install contrib stuff. + mkdir -p $out/share/git + cp -a contrib $out/share/git/ + mkdir -p $out/share/bash-completion/completions + ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/git + ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/ + # only readme, developed in another repo + rm -r contrib/hooks/multimail + mkdir -p $out/share/git-core/contrib + cp -a contrib/hooks/ $out/share/git-core/contrib/ + substituteInPlace $out/share/git-core/contrib/hooks/pre-auto-gc-battery \ + --replace ' grep' ' ${gnugrep}/bin/grep' \ + + # grep is a runtime dependency, need to patch so that it's found + substituteInPlace $out/libexec/git-core/git-sh-setup \ + --replace ' grep' ' ${gnugrep}/bin/grep' \ + --replace ' egrep' ' ${gnugrep}/bin/egrep' + + # Fix references to the perl, sed, awk and various coreutil binaries used by + # shell scripts that git calls (e.g. filter-branch) + SCRIPT="$(cat <<'EOS' + BEGIN{ + @a=( + '${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk', + '${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname', + '${coreutils}/bin/wc', '${coreutils}/bin/tr' + ${lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"} + ); + } + foreach $c (@a) { + $n=(split("/", $c))[-1]; + s|(?<=[^#][^/.-])\b''${n}(?=\s)|''${c}|g + } + EOS + )" + perl -0777 -i -pe "$SCRIPT" \ + $out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,submodule,subtree,web--browse} + + + # Also put git-http-backend into $PATH, so that we can use smart + # HTTP(s) transports for pushing + ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend + ln -s $out/share/git/contrib/git-jump/git-jump $out/bin/git-jump + '' + lib.optionalString perlSupport '' + # wrap perl commands + makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc.perl" $out/bin/git-credential-netrc \ + --set PERL5LIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-cvsimport \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-archimport \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-instaweb \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + wrapProgram $out/libexec/git-core/git-cvsexportcommit \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" + + # gzip (and optionally bzip2, xz, zip) are runtime dependencies for + # gitweb.cgi, need to patch so that it's found + sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \ + $out/share/gitweb/gitweb.cgi + # Give access to CGI.pm and friends (was removed from perl core in 5.22) + for p in ${lib.concatStringsSep " " gitwebPerlLibs}; do + sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \ + "$out/share/gitweb/gitweb.cgi" + done + '' + + + (if svnSupport then '' + # wrap git-svn + wrapProgram $out/libexec/git-core/git-svn \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath (perlLibs ++ [svn.out])}" \ + --prefix PATH : "${svn.out}/bin" '' + else '' # replace git-svn by notification script + notSupported $out/libexec/git-core/git-svn + '') + + + (if sendEmailSupport then '' + # wrap git-send-email + wrapProgram $out/libexec/git-core/git-send-email \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}" + '' else '' + # replace git-send-email by notification script + notSupported $out/libexec/git-core/git-send-email + '') + + + lib.optionalString withManual ''# Install man pages + make -j $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \ + -C Documentation '' + + + (if guiSupport then '' + # Wrap Tcl/Tk programs + for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do + sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \ + -e "s|exec wish|exec '${tk}/bin/wish'|g" \ + "$out/$prog" + done + ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/gitk + '' else '' + # Don't wrap Tcl/Tk, replace them by notification scripts + for prog in bin/gitk libexec/git-core/git-gui; do + notSupported "$out/$prog" + done + '') + + lib.optionalString osxkeychainSupport '' + # enable git-credential-osxkeychain on darwin if desired (default) + mkdir -p $out/etc + cat > $out/etc/gitconfig << EOF + [credential] + helper = osxkeychain + EOF + ''; + + + ## InstallCheck + + doCheck = false; + inherit doInstallCheck; + + installCheckTarget = "test"; + + # see also installCheckFlagsArray + installCheckFlags = [ + "DEFAULT_TEST_TARGET=prove" + "PERL_PATH=${buildPackages.perl}/bin/perl" + ]; + + nativeInstallCheckInputs = lib.optional stdenv.isDarwin sysctl; + + preInstallCheck = '' + installCheckFlagsArray+=( + GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save" + GIT_TEST_INSTALLED=$out/bin + ${lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"} + ) + + function disable_test { + local test=$1 pattern=$2 + if [ $# -eq 1 ]; then + mv t/{,skip-}$test.sh || true + else + sed -i t/$test.sh \ + -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}" + fi + } + + # Shared permissions are forbidden in sandbox builds: + substituteInPlace t/test-lib.sh \ + --replace "test_set_prereq POSIXPERM" "" + # TODO: Investigate while these still fail (without POSIXPERM): + disable_test t0001-init 'shared overrides system' + disable_test t0001-init 'init honors global core.sharedRepository' + disable_test t1301-shared-repo + # /build/git-2.44.0/contrib/completion/git-completion.bash: line 452: compgen: command not found + disable_test t9902-completion + + # Our patched gettext never fallbacks + disable_test t0201-gettext-fallbacks + '' + lib.optionalString (!sendEmailSupport) '' + # Disable sendmail tests + disable_test t9001-send-email + '' + '' + # XXX: I failed to understand why this one fails. + # Could someone try to re-enable it on the next release ? + # Tested to fail: 2.18.0 and 2.19.0 + disable_test t1700-split-index "null sha1" + + # Flaky tests: + disable_test t5319-multi-pack-index + disable_test t6421-merge-partial-clone + + # Fails reproducibly on ZFS on Linux with formD normalization + disable_test t0021-conversion + disable_test t3910-mac-os-precompose + + '' + lib.optionalString (!perlSupport) '' + # request-pull is a Bash script that invokes Perl, so it is not available + # when NO_PERL=1, and the test should be skipped, but the test suite does + # not check for the Perl prerequisite. + disable_test t5150-request-pull + '' + lib.optionalString stdenv.isDarwin '' + # XXX: Some tests added in 2.24.0 fail. + # Please try to re-enable on the next release. + disable_test t7816-grep-binary-pattern + # fail (as of 2.33.0) + #===( 18623;1208 8/? 224/? 2/? )= =fatal: Not a valid object name refs/tags/signed-empty + disable_test t6300-for-each-ref + # not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin) + disable_test t5003-archive-zip + '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' + disable_test t7527-builtin-fsmonitor + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + # Test fails (as of 2.17.0, musl 1.1.19) + disable_test t3900-i18n-commit + # Fails largely due to assumptions about BOM + # Tested to fail: 2.18.0 + disable_test t0028-working-tree-encoding + ''; + + stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ]; + + passthru = { + shellPath = "/bin/git-shell"; + tests = { + withInstallCheck = finalAttrs.finalPackage.overrideAttrs (_: { + doInstallCheck = true; + }); + buildbot-integration = nixosTests.buildbot; + } // tests.fetchgit; + }; + + meta = { + homepage = "https://git-scm.com/"; + description = "Distributed version control system"; + license = lib.licenses.gpl2; + changelog = "https://github.com/git/git/blob/v${version}/Documentation/RelNotes/${version}.txt"; + + longDescription = '' + Git, a popular distributed version control system designed to + handle very large projects with speed and efficiency. + ''; + + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ primeos wmertens globin kashw2 ]; + mainProgram = "git"; + }; +}) diff --git a/nixpkgs/pkgs/applications/version-management/git/docbook2texi.patch b/nixpkgs/pkgs/applications/version-management/git/docbook2texi.patch new file mode 100644 index 000000000000..f8f8ab86a9ce --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/docbook2texi.patch @@ -0,0 +1,38 @@ +This patch does two things: (1) use the right name for `docbook2texi', +and (2) make sure `gitman.info' isn't produced since it's broken (duplicate +node names). + +diff --git a/Documentation/Makefile b/Documentation/Makefile +index 26a2342bea..ceccd67ebb 100644 +--- a/Documentation/Makefile ++++ b/Documentation/Makefile +@@ -132,7 +132,7 @@ HTML_REPO = ../../git-htmldocs + + MAKEINFO = makeinfo + INSTALL_INFO = install-info +-DOCBOOK2X_TEXI = docbook2x-texi ++DOCBOOK2X_TEXI = docbook2texi + DBLATEX = dblatex + ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex + DBLATEX_COMMON = -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty +@@ -250,7 +250,7 @@ man1: $(DOC_MAN1) + man5: $(DOC_MAN5) + man7: $(DOC_MAN7) + +-info: git.info gitman.info ++info: git.info + + pdf: user-manual.pdf + +@@ -266,10 +266,9 @@ install-man: man + + install-info: info + $(INSTALL) -d -m 755 $(DESTDIR)$(infodir) +- $(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir) ++ $(INSTALL) -m 644 git.info $(DESTDIR)$(infodir) + if test -r $(DESTDIR)$(infodir)/dir; then \ + $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\ +- $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\ + else \ + echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \ + fi diff --git a/nixpkgs/pkgs/applications/version-management/git/git-send-email-honor-PATH.patch b/nixpkgs/pkgs/applications/version-management/git/git-send-email-honor-PATH.patch new file mode 100644 index 000000000000..c78400847418 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/git-send-email-honor-PATH.patch @@ -0,0 +1,31 @@ +diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt +index 3db4eab4ba..39bc0e77c9 100644 +--- a/Documentation/git-send-email.txt ++++ b/Documentation/git-send-email.txt +@@ -220,9 +220,9 @@ a password is obtained using 'git-credential'. + --smtp-server=<host>:: + If set, specifies the outgoing SMTP server to use (e.g. + `smtp.example.com` or a raw IP address). If unspecified, and if +- `--sendmail-cmd` is also unspecified, the default is to search +- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a +- program is available, falling back to `localhost` otherwise. ++ `--sendmail-cmd` is also unspecified, the default is to search for ++ `sendmail` in $PATH if such a program is available, falling back to ++ `localhost` otherwise. + + + For backward compatibility, this option can also specify a full pathname + of a sendmail-like program instead; the program must support the `-i` +diff --git a/git-send-email.perl b/git-send-email.perl +index e65d969d0b..508d49483d 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -1066,8 +1066,7 @@ sub expand_one_alias { + } + + if (!defined $sendmail_cmd && !defined $smtp_server) { +- my @sendmail_paths = qw( /usr/sbin/sendmail /usr/lib/sendmail ); +- push @sendmail_paths, map {"$_/sendmail"} split /:/, $ENV{PATH}; ++ my @sendmail_paths = map {"$_/sendmail"} split /:/, $ENV{PATH}; + foreach (@sendmail_paths) { + if (-x $_) { + $sendmail_cmd = $_; diff --git a/nixpkgs/pkgs/applications/version-management/git/git-sh-i18n.patch b/nixpkgs/pkgs/applications/version-management/git/git-sh-i18n.patch new file mode 100644 index 000000000000..721f2aa099c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/git-sh-i18n.patch @@ -0,0 +1,23 @@ +diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh +index e1d917fd27..e90f8e1414 100644 +--- a/git-sh-i18n.sh ++++ b/git-sh-i18n.sh +@@ -26,7 +26,7 @@ then + elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" + then + : no probing necessary +-elif type gettext.sh >/dev/null 2>&1 ++elif type @gettext@/bin/gettext.sh >/dev/null 2>&1 + then + # GNU libintl's gettext.sh + GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu +@@ -43,7 +43,8 @@ export GIT_INTERNAL_GETTEXT_SH_SCHEME + case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in + gnu) + # Use libintl's gettext.sh, or fall back to English if we can't. +- . gettext.sh ++ . @gettext@/bin/gettext.sh ++ export PATH=@gettext@/bin:$PATH + ;; + gettext_without_eval_gettext) + # Solaris has a gettext(1) but no eval_gettext(1) diff --git a/nixpkgs/pkgs/applications/version-management/git/installCheck-path.patch b/nixpkgs/pkgs/applications/version-management/git/installCheck-path.patch new file mode 100644 index 000000000000..4b73d11744ba --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/installCheck-path.patch @@ -0,0 +1,13 @@ +diff --git a/t/test-lib.sh b/t/test-lib.sh +index 8665b0a9b6..8bb892b1af 100644 +--- a/t/test-lib.sh ++++ b/t/test-lib.sh +@@ -1227,7 +1227,7 @@ elif test -n "$GIT_TEST_INSTALLED" + then + GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) || + error "Cannot run git from $GIT_TEST_INSTALLED." +- PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$PATH ++ PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$GIT_BUILD_DIR:$PATH + GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH} + else # normal case, use ../bin-wrappers only unless $with_dashes: + if test -n "$no_bin_wrappers" diff --git a/nixpkgs/pkgs/applications/version-management/git/ssh-path.patch b/nixpkgs/pkgs/applications/version-management/git/ssh-path.patch new file mode 100644 index 000000000000..71cdc694ac31 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/ssh-path.patch @@ -0,0 +1,26 @@ +diff --git a/connect.c b/connect.c +index 4813f005ab..b3f12f3268 100644 +--- a/connect.c ++++ b/connect.c +@@ -1183,7 +1183,7 @@ static void fill_ssh_args(struct child_process *conn, const char *ssh_host, + + ssh = getenv("GIT_SSH"); + if (!ssh) +- ssh = "ssh"; ++ ssh = "@ssh@"; + variant = determine_ssh_variant(ssh, 0); + } + +diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl +index 480a6b30d0..7817204241 100644 +--- a/git-gui/lib/remote_add.tcl ++++ b/git-gui/lib/remote_add.tcl +@@ -139,7 +139,7 @@ method _add {} { + # Parse the location + if { [regexp {(?:git\+)?ssh://([^/]+)(/.+)} $location xx host path] + || [regexp {([^:][^:]+):(.+)} $location xx host path]} { +- set ssh ssh ++ set ssh @ssh@ + if {[info exists env(GIT_SSH)]} { + set ssh $env(GIT_SSH) + } diff --git a/nixpkgs/pkgs/applications/version-management/git/update.sh b/nixpkgs/pkgs/applications/version-management/git/update.sh new file mode 100755 index 000000000000..54574722b02b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl common-updater-scripts jq git + +set -eu -o pipefail + +oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion git" | tr -d '"')" +latestTag="$(git ls-remote --tags --sort="v:refname" https://github.com/git/git.git | grep -v '\{\}' | grep -v '\-rc' | tail -1 | sed 's|^.*/v\(.*\)|\1|')" +targetVersion="${1:-$latestTag}" + +if [ ! "${oldVersion}" = "${targetVersion}" ]; then + update-source-version git "${targetVersion}" + nixpkgs="$(git rev-parse --show-toplevel)" + default_nix="$nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix" + nix-build -A git + git add "${default_nix}" + git commit -m "git: ${oldVersion} -> ${targetVersion}" +else + echo "git is already up-to-date" +fi diff --git a/nixpkgs/pkgs/applications/version-management/git2cl/default.nix b/nixpkgs/pkgs/applications/version-management/git2cl/default.nix new file mode 100644 index 000000000000..cddc6eb7e2fe --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git2cl/default.nix @@ -0,0 +1,25 @@ +{ fetchgit, lib, stdenv, perl }: + +stdenv.mkDerivation rec { + pname = "git2cl"; + version = "unstable-2008-08-27"; + + src = fetchgit { + url = "git://repo.or.cz/git2cl.git"; + rev = "8373c9f74993e218a08819cbcdbab3f3564bbeba"; + sha256 = "b0d39379640c8a12821442431e2121f7908ce1cc88ec8ec6bede218ea8c21f2f"; + }; + + buildInputs = [ perl ]; + installPhase = '' + install -D -m755 git2cl $out/bin/git2cl + install -D -m644 README $out/share/doc/git2cl/README + ''; + + meta = { + homepage = "https://savannah.nongnu.org/projects/git2cl"; + description = "Convert git logs to GNU style ChangeLog files"; + platforms = lib.platforms.unix; + mainProgram = "git2cl"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gita/default.nix b/nixpkgs/pkgs/applications/version-management/gita/default.nix new file mode 100644 index 000000000000..eba9f5ed7525 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gita/default.nix @@ -0,0 +1,44 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, git +, pytest +, pyyaml +, setuptools +, installShellFiles +}: + +buildPythonApplication rec { + version = "0.16.6.1"; + pname = "gita"; + + src = fetchFromGitHub { + sha256 = "sha256-kPyk13yd4rc63Nh73opuHsCTj4DgYAVfro8To96tteA="; + rev = "v${version}"; + repo = "gita"; + owner = "nosarthur"; + }; + + propagatedBuildInputs = [ + pyyaml + setuptools + ]; + + nativeBuildInputs = [ installShellFiles ]; + + # 3 of the tests are failing + doCheck = false; + + postInstall = '' + installShellCompletion --bash --name gita ${src}/.gita-completion.bash + installShellCompletion --zsh --name gita ${src}/.gita-completion.zsh + ''; + + meta = with lib; { + description = "A command-line tool to manage multiple git repos"; + homepage = "https://github.com/nosarthur/gita"; + license = licenses.mit; + maintainers = with maintainers; [ seqizz ]; + mainProgram = "gita"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitbatch/default.nix b/nixpkgs/pkgs/applications/version-management/gitbatch/default.nix new file mode 100644 index 000000000000..c880b9343f1a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitbatch/default.nix @@ -0,0 +1,36 @@ +{ lib, buildGoModule, fetchFromGitHub, git }: + +buildGoModule rec { + pname = "gitbatch"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "isacikgoz"; + repo = "gitbatch"; + rev = "v${version}"; + sha256 = "sha256-ovmdbyPRSebwmW6AW55jBgBKaNdY6w5/wrpUF2cMKw8="; + }; + + vendorHash = "sha256-wwpaJO5cXMsvqFXj+qGiIm4zg/SL4YCm2mNnG/qdilw="; + + ldflags = [ "-s" "-w" ]; + + nativeBuildInputs = [ + git # required by unit tests + ]; + + preCheck = '' + HOME=$(mktemp -d) + # Disable tests requiring network access to gitlab.com + buildFlagsArray+=("-run" "[^(Test(Run|Start|(Fetch|Pull)With(Go|)Git))]") + ''; + + meta = with lib; { + description = "Running git UI commands"; + homepage = "https://github.com/isacikgoz/gitbatch"; + license = licenses.mit; + maintainers = with maintainers; [ teto ]; + platforms = with platforms; linux; + mainProgram = "gitbatch"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix new file mode 100644 index 000000000000..4b2105fda93c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix @@ -0,0 +1,93 @@ +{ lib +, stdenv +, buildGoModule +, fetchurl +, makeWrapper +, git +, bash +, coreutils +, gitea +, gzip +, openssh +, pam +, sqliteSupport ? true +, pamSupport ? true +, runCommand +, brotli +, xorg +, nixosTests +}: + +buildGoModule rec { + pname = "gitea"; + version = "1.21.11"; + + # not fetching directly from the git repo, because that lacks several vendor files for the web UI + src = fetchurl { + url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz"; + hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM="; + }; + + vendorHash = null; + + patches = [ + ./static-root-path.patch + ]; + + postPatch = '' + substituteInPlace modules/setting/server.go --subst-var data + ''; + + subPackages = [ "." ]; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = lib.optional pamSupport pam; + + tags = lib.optional pamSupport "pam" + ++ lib.optionals sqliteSupport [ "sqlite" "sqlite_unlock_notify" ]; + + ldflags = [ + "-s" + "-w" + "-X main.Version=${version}" + "-X 'main.Tags=${lib.concatStringsSep " " tags}'" + ]; + + outputs = [ "out" "data" ]; + + postInstall = '' + mkdir $data + cp -R ./{public,templates,options} $data + mkdir -p $out + cp -R ./options/locale $out/locale + + wrapProgram $out/bin/gitea \ + --prefix PATH : ${lib.makeBinPath [ bash coreutils git gzip openssh ]} + ''; + + passthru = { + data-compressed = runCommand "gitea-data-compressed" { + nativeBuildInputs = [ brotli xorg.lndir ]; + } '' + mkdir $out + lndir ${gitea.data}/ $out/ + + # Create static gzip and brotli files + find -L $out -type f -regextype posix-extended -iregex '.*\.(css|html|js|svg|ttf|txt)' \ + -exec gzip --best --keep --force {} ';' \ + -exec brotli --best --keep --no-copy-stat {} ';' + ''; + + tests = nixosTests.gitea; + }; + + meta = with lib; { + description = "Git with a cup of tea"; + homepage = "https://gitea.io"; + license = licenses.mit; + maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ]; + broken = stdenv.isDarwin; + mainProgram = "gitea"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch new file mode 100644 index 000000000000..7f70329c6040 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch @@ -0,0 +1,13 @@ +diff --git a/modules/setting/server.go b/modules/setting/server.go +index 183906268..fa02e8915 100644 +--- a/modules/setting/server.go ++++ b/modules/setting/server.go +@@ -319,7 +319,7 @@ func loadServerFrom(rootCfg ConfigProvider) { + OfflineMode = sec.Key("OFFLINE_MODE").MustBool() + Log.DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool() + if len(StaticRootPath) == 0 { +- StaticRootPath = AppWorkPath ++ StaticRootPath = "@data@" + } + StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath) + StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour) diff --git a/nixpkgs/pkgs/applications/version-management/gitflow/default.nix b/nixpkgs/pkgs/applications/version-management/gitflow/default.nix new file mode 100644 index 000000000000..de291113daea --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitflow/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub, makeWrapper, getopt, git, coreutils }: + +stdenv.mkDerivation rec { + pname = "gitflow"; + version = "1.12.3"; + + src = fetchFromGitHub { + owner = "petervanderdoes"; + repo = pname; + rev = version; + sha256 = "sha256-kHirHG/bfsU6tKyQ0khNSTyChhzHfzib+HyA3LOtBI8="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + preBuild = '' + makeFlagsArray+=(prefix="$out") + ''; + + postInstall = '' + wrapProgram $out/bin/git-flow \ + --set FLAGS_GETOPT_CMD ${getopt}/bin/getopt \ + --suffix PATH : ${git}/bin \ + --prefix PATH : ${coreutils}/bin + ''; + + meta = with lib; { + homepage = "https://github.com/petervanderdoes/gitflow"; + description = "Extend git with the Gitflow branching model"; + mainProgram = "git-flow"; + longDescription = '' + A set of scripts that provide high-level repository operations + for managing feature/release/hotfix branches in a Git repository, + particularly suited to be utilised to follow Vincent Driessen's + branching model. + ''; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ offline ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix new file mode 100644 index 000000000000..a3160f1ce3a5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix @@ -0,0 +1,180 @@ +{ lib, stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curlWithGnuTls, alsa-lib +, libXfixes, atk, gtk3, libXrender, pango, gnome, cairo, freetype, fontconfig +, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst +, nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus +, makeDesktopItem, openssl, wrapGAppsHook, makeShellWrapper, at-spi2-atk, at-spi2-core, libuuid +, e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems, libxshmfence, libxkbcommon, git +, libGL, zlib, cacert +}: + +with lib; + +let + pname = "gitkraken"; + version = "9.13.0"; + + throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; + + srcs = { + x86_64-linux = fetchzip { + url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz"; + hash = "sha256-BBTa/MhfwTZ9YUJSGt8KocPn6f7m+W8G9yJr8I4NAtw="; + }; + + x86_64-darwin = fetchzip { + url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip"; + hash = "sha256-+1N4U5vV8XdHdtPeanjU38c8fzfY0uV0AA6exEe/FzQ="; + }; + + aarch64-darwin = fetchzip { + url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip"; + hash = "sha256-kNX8ptDL8vvFDhH3bDU24A2xN1D+tgpzsCj/zIGqctE="; + }; + }; + + src = srcs.${stdenv.hostPlatform.system} or throwSystem; + + meta = { + homepage = "https://www.gitkraken.com/"; + description = "The downright luxurious and most popular Git client for Windows, Mac & Linux"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + platforms = builtins.attrNames srcs; + maintainers = with maintainers; [ xnwdd evanjs arkivm nicolas-goudry ]; + mainProgram = "gitkraken"; + }; + + linux = stdenv.mkDerivation rec { + inherit pname version src meta; + + dontBuild = true; + dontConfigure = true; + + libPath = makeLibraryPath [ + stdenv.cc.cc.lib + curlWithGnuTls + udev + libX11 + libXext + libXcursor + libXi + libxcb + glib + libXScrnSaver + libxkbfile + libXtst + nss + nspr + cups + alsa-lib + expat + gdk-pixbuf + dbus + libXdamage + libXrandr + atk + pango + cairo + freetype + fontconfig + libXcomposite + libXfixes + libXrender + gtk3 + libgnome-keyring + openssl + at-spi2-atk + at-spi2-core + libuuid + e2fsprogs + krb5 + libdrm + mesa + libxshmfence + libxkbcommon + libGL + zlib + ]; + + desktopItems = [ (makeDesktopItem { + name = "GitKraken"; + exec = "gitkraken"; + icon = "gitkraken"; + desktopName = "GitKraken"; + genericName = "Git Client"; + categories = [ "Development" ]; + comment = "Graphical Git client from Axosoft"; + }) ]; + + nativeBuildInputs = [ copyDesktopItems (wrapGAppsHook.override { makeWrapper = makeShellWrapper; }) ]; + buildInputs = [ gtk3 gnome.adwaita-icon-theme ]; + + # avoid double-wrapping + dontWrapGApps = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/${pname}/ + cp -R $src/* $out/share/${pname} + + mkdir -p $out/share/pixmaps + cp gitkraken.png $out/share/pixmaps/ + + runHook postInstall + ''; + + preFixup = '' + gappsWrapperArgs+=(--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}") + ''; + + postFixup = '' + pushd $out/share/${pname} + for file in gitkraken chrome-sandbox chrome_crashpad_handler; do + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $file + done + + for file in $(find . -type f \( -name \*.node -o -name gitkraken -o -name git -o -name git-\* -o -name scalar -o -name \*.so\* \) ); do + patchelf --set-rpath ${libPath}:$out/share/${pname} $file || true + done + popd + + # SSL and permissions fix for bundled nodegit + pushd $out/share/${pname}/resources/app.asar.unpacked/node_modules/@axosoft/nodegit/build/Release + mv nodegit-ubuntu-18.node nodegit-ubuntu-18-ssl-1.1.1.node + mv nodegit-ubuntu-18-ssl-static.node nodegit-ubuntu-18.node + chmod 755 nodegit-ubuntu-18.node + popd + + # Devendor bundled git + rm -rf $out/share/${pname}/resources/app.asar.unpacked/git + ln -s ${git} $out/share/${pname}/resources/app.asar.unpacked/git + + # GitKraken expects the CA bundle to be located in the bundled git directory. Since we replace it with + # the one from nixpkgs, which doesn't provide a CA bundle, we need to explicitly set its location at runtime + makeWrapper $out/share/${pname}/gitkraken $out/bin/gitkraken \ + --set GIT_SSL_CAINFO "${cacert}/etc/ssl/certs/ca-bundle.crt" \ + "''${gappsWrapperArgs[@]}" + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ unzip ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications/GitKraken.app + cp -R . $out/Applications/GitKraken.app + + runHook postInstall + ''; + + dontFixup = true; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile new file mode 100644 index 000000000000..7549ada64050 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' do + gem 'gitlab-triage' +end diff --git a/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock new file mode 100644 index 000000000000..664080ccad8d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab-triage/Gemfile.lock @@ -0,0 +1,45 @@ +GEM + specs: + +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.0.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + concurrent-ruby (1.1.10) + gitlab-triage (1.23.1) + activesupport (>= 5.1) + globalid (~> 0.4) + graphql-client (~> 0.16) + httparty (~> 0.17) + globalid (0.6.0) + activesupport (>= 5.0) + graphql (2.0.11) + graphql-client (0.18.0) + activesupport (>= 3.0) + graphql + httparty (0.20.0) + mime-types (~> 3.0) + multi_xml (>= 0.5.2) + i18n (1.10.0) + concurrent-ruby (~> 1.0) + mime-types (3.4.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2022.0105) + minitest (5.16.2) + multi_xml (0.6.0) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + +PLATFORMS + ruby + x86_64-linux + +DEPENDENCIES + gitlab-triage! + +BUNDLED WITH + 2.3.9 diff --git a/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix new file mode 100644 index 000000000000..5397688ebf1f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab-triage/default.nix @@ -0,0 +1,17 @@ +{ lib, bundlerApp, bundlerUpdateScript }: + +bundlerApp { + pname = "gitlab-triage"; + gemdir = ./.; + exes = [ "gitlab-triage" ]; + + passthru.updateScript = bundlerUpdateScript "gitlab-triage"; + + meta = with lib; { + description = "GitLab's issues and merge requests triage, automated!"; + homepage = "https://gitlab.com/gitlab-org/gitlab-triage"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "gitlab-triage"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix new file mode 100644 index 000000000000..34d328d9ee9a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab-triage/gemset.nix @@ -0,0 +1,140 @@ +{ + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z05zyc57f8ywvdvls6nx93vrhyyzzpgz729mwampz1qb8vvcspj"; + type = "gem"; + }; + version = "7.0.3"; + }; + concurrent-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14"; + type = "gem"; + }; + version = "1.1.10"; + }; + gitlab-triage = { + dependencies = ["activesupport" "globalid" "graphql-client" "httparty"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vs120wyqm12xy66nv0723cy3m66g5lhhdd37izbc9qwyq03m729"; + type = "gem"; + }; + version = "1.23.1"; + }; + globalid = { + dependencies = ["activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xk28839pi36yzlqgh7k5wqmiphz7wg2c2r2wzfvs2s7g63hy3nv"; + type = "gem"; + }; + version = "0.6.0"; + }; + graphql = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18k3wh73mb7rs469wfn4m10d1rlg2v9chd89nf7vy8z3yjbf9nl4"; + type = "gem"; + }; + version = "2.0.11"; + }; + graphql-client = { + dependencies = ["activesupport" "graphql"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02r5qvfr176n051mp1c79xbpjhjqm92kk4118r0fbp131y0xralq"; + type = "gem"; + }; + version = "0.18.0"; + }; + httparty = { + dependencies = ["mime-types" "multi_xml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rs8c5wga6f1acyaj90d2hlv307gh2flfpb8y48wdk2si812l3a9"; + type = "gem"; + }; + version = "0.20.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg"; + type = "gem"; + }; + version = "1.10.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb"; + type = "gem"; + }; + version = "3.4.1"; + }; + mime-types-data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "003gd7mcay800k2q4pb2zn8lwwgci4bhi42v2jvlidm8ksx03i6q"; + type = "gem"; + }; + version = "3.2022.0105"; + }; + minitest = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14a9ign0hj3z3j4cpfplj2djaskx3skzyx4fl3x53d7saxmhrgn1"; + type = "gem"; + }; + version = "5.16.2"; + }; + multi_xml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + tzinfo = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z"; + type = "gem"; + }; + version = "2.0.4"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/Remove-unsupported-database-names.patch b/nixpkgs/pkgs/applications/version-management/gitlab/Remove-unsupported-database-names.patch new file mode 100644 index 000000000000..a87e7ac1618c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/Remove-unsupported-database-names.patch @@ -0,0 +1,79 @@ +From 054e2e2092e3f20267a5d2046978df6d33c72712 Mon Sep 17 00:00:00 2001 +From: Yaya <mak@nyantec.com> +Date: Tue, 23 May 2023 13:49:18 +0000 +Subject: [PATCH] Remove unsupported database names + +The only supported ones are main, ci, main_clusterwide. +--- + config/database.yml.postgresql | 37 ---------------------------------- + 1 file changed, 37 deletions(-) + +diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql +index da9f458ff..2d6d44e37 100644 +--- a/config/database.yml.postgresql ++++ b/config/database.yml.postgresql +@@ -26,13 +26,6 @@ production: + username: git + password: "secure password" + host: localhost +- geo: +- adapter: postgresql +- encoding: unicode +- database: gitlabhq_geo_production +- username: git +- password: "secure password" +- host: localhost + + # + # Development specific +@@ -57,13 +50,6 @@ development: + host: localhost + variables: + statement_timeout: 15s +- geo: +- adapter: postgresql +- encoding: unicode +- database: gitlabhq_geo_development +- username: postgres +- password: "secure password" +- host: localhost + + # + # Staging specific +@@ -84,13 +70,6 @@ staging: + username: git + password: "secure password" + host: localhost +- geo: +- adapter: postgresql +- encoding: unicode +- database: gitlabhq_geo_staging +- username: git +- password: "secure password" +- host: localhost + + # Warning: The database defined as "test" will be erased and + # re-generated from your development database when you run "rake". +@@ -119,19 +98,3 @@ test: &test + reaping_frequency: nil + variables: + statement_timeout: 15s +- geo: +- adapter: postgresql +- encoding: unicode +- database: gitlabhq_geo_test +- username: postgres +- password: +- host: localhost +- reaping_frequency: nil +- embedding: +- adapter: postgresql +- encoding: unicode +- database: gitlabhq_embedding_test +- username: postgres +- password: +- host: localhost +- reaping_frequency: nil +-- +2.40.1 + diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json new file mode 100644 index 000000000000..ff2bbcf877c0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json @@ -0,0 +1,15 @@ +{ + "version": "16.10.4", + "repo_hash": "sha256-ieS2MO5jBNBK0hmuWLfaDjRNhn98927hlTFrDbV0zCQ=", + "yarn_hash": "0yzywfg4lqxjwm5cqsm4bn97zcrfvpnrs8rjrv9wv3xqvi9h9skd", + "owner": "gitlab-org", + "repo": "gitlab", + "rev": "v16.10.4-ee", + "passthru": { + "GITALY_SERVER_VERSION": "16.10.4", + "GITLAB_PAGES_VERSION": "16.10.4", + "GITLAB_SHELL_VERSION": "14.34.0", + "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.8.0", + "GITLAB_WORKHORSE_VERSION": "16.10.4" + } +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix new file mode 100644 index 000000000000..2e440e2b9766 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix @@ -0,0 +1,257 @@ +{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitLab, bundlerEnv +, ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl +, defaultGemConfig, buildRubyGem +, gitlabEnterprise ? false, callPackage, yarn +, fixup-yarn-lock, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config +, cargo, rustc, rustPlatform +}: + +let + data = lib.importJSON ./data.json; + + version = data.version; + src = fetchFromGitLab { + owner = data.owner; + repo = data.repo; + rev = data.rev; + sha256 = data.repo_hash; + }; + + rubyEnv = bundlerEnv rec { + name = "gitlab-env-${version}"; + ruby = ruby_3_1; + gemdir = ./rubyEnv; + gemset = import (gemdir + "/gemset.nix") src; + gemConfig = defaultGemConfig // { + gpgme = attrs: { + nativeBuildInputs = [ pkg-config ]; + }; + # the openssl needs the openssl include files + openssl = attrs: { + buildInputs = [ openssl ]; + }; + ruby-magic = attrs: { + buildInputs = [ file ]; + buildFlags = [ "--enable-system-libraries" ]; + }; + gitlab-glfm-markdown = attrs: { + cargoDeps = rustPlatform.fetchCargoTarball { + src = stdenv.mkDerivation { + inherit (buildRubyGem { inherit (attrs) gemName version source; }) + name + src + unpackPhase + nativeBuildInputs + ; + dontBuilt = true; + installPhase = '' + cp -R ext/glfm_markdown $out + cp Cargo.lock $out + ''; + }; + hash = "sha256-7q2xWAsFkXHxkYNzIjPwJRy72xMXF278cpVzqGLt/9Y="; + }; + + dontBuild = false; + + nativeBuildInputs = [ + cargo + rustc + rustPlatform.cargoSetupHook + rustPlatform.bindgenHook + ]; + + disallowedReferences = [ + rustc.unwrapped + ]; + + preInstall = '' + export CARGO_HOME="$PWD/../.cargo/" + ''; + + postInstall = '' + mv -v $GEM_HOME/gems/${attrs.gemName}-${attrs.version}/lib/{glfm_markdown/glfm_markdown.so,} + find $out -type f -name .rustc_info.json -delete + ''; + }; + }; + groups = [ + "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos" + ]; + # N.B. omniauth_oauth2_generic and apollo_upload_server both provide a + # `console` executable. + ignoreCollisions = true; + + extraConfigPaths = [ "${src}/vendor" "${src}/gems" ]; + }; + + assets = stdenv.mkDerivation { + pname = "gitlab-assets"; + inherit version src; + + yarnOfflineCache = fetchYarnDeps { + yarnLock = src + "/yarn.lock"; + sha256 = data.yarn_hash; + }; + + nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert fixup-yarn-lock ]; + + patches = [ + # Since version 12.6.0, the rake tasks need the location of git, + # so we have to apply the location patches here too. + ./remove-hardcoded-locations.patch + + # Gitlab edited the default database config since [1] and the + # installer now complains about valid keywords only being "main", "ci" and "embedded". + # + # [1]: https://gitlab.com/gitlab-org/gitlab/-/commit/99c0fac52b10cd9df62bbe785db799352a2d9028 + ./Remove-unsupported-database-names.patch + ]; + # One of the patches uses this variable - if it's unset, execution + # of rake tasks fails. + GITLAB_LOG_PATH = "log"; + FOSS_ONLY = !gitlabEnterprise; + + SKIP_YARN_INSTALL = 1; + + configurePhase = '' + runHook preConfigure + + # Some rake tasks try to run yarn automatically, which won't work + rm lib/tasks/yarn.rake + + # The rake tasks won't run without a basic configuration in place + mv config/database.yml.postgresql config/database.yml + mv config/gitlab.yml.example config/gitlab.yml + + # Yarn and bundler wants a real home directory to write cache, config, etc to + export HOME=$NIX_BUILD_TOP/fake_home + + # Make yarn install packages from our offline cache, not the registry + yarn config --offline set yarn-offline-mirror $yarnOfflineCache + + # Fixup "resolved"-entries in yarn.lock to match our offline cache + fixup-yarn-lock yarn.lock + + yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive + + patchShebangs node_modules/ + patchShebangs scripts/frontend/ + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production SKIP_YARN_INSTALL=true + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mv public/assets $out + + runHook postInstall + ''; + }; +in +stdenv.mkDerivation { + name = "gitlab${lib.optionalString gitlabEnterprise "-ee"}-${version}"; + + inherit src; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ + rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git nettools + ]; + + patches = [ + # Change hardcoded paths to the NixOS equivalent + ./remove-hardcoded-locations.patch + ]; + + postPatch = '' + ${lib.optionalString (!gitlabEnterprise) '' + # Remove all proprietary components + rm -rf ee + sed -i 's/-ee//' ./VERSION + ''} + + # For reasons I don't understand "bundle exec" ignores the + # RAILS_ENV causing tests to be executed that fail because we're + # not installing development and test gems above. Deleting the + # tests works though. + rm lib/tasks/test.rake + + rm config/initializers/gitlab_shell_secret_token.rb + + sed -i '/ask_to_continue/d' lib/tasks/gitlab/two_factor.rake + sed -ri -e '/log_level/a config.logger = Logger.new(STDERR)' config/environments/production.rb + + mv config/puma.rb.example config/puma.rb + # Always require lib-files and application.rb through their store + # path, not their relative state directory path. This gets rid of + # warnings and means we don't have to link back to lib from the + # state directory. + ${replace}/bin/replace-literal -f -r -e '../../lib' "$out/share/gitlab/lib" config + ${replace}/bin/replace-literal -f -r -e '../lib' "$out/share/gitlab/lib" config + ${replace}/bin/replace-literal -f -r -e "require_relative 'application'" "require_relative '$out/share/gitlab/config/application'" config + ${replace}/bin/replace-literal -f -r -e 'require_relative "/home/git/gitlab/lib/gitlab/puma/error_handler"' "require_relative '$out/share/gitlab/lib/gitlab/puma/error_handler'" config + ''; + + buildPhase = '' + rm -f config/secrets.yml + mv config config.dist + rm -r tmp + ''; + + installPhase = '' + mkdir -p $out/share + cp -r . $out/share/gitlab + ln -sf ${assets} $out/share/gitlab/public/assets + rm -rf $out/share/gitlab/log + ln -sf /run/gitlab/log $out/share/gitlab/log + ln -sf /run/gitlab/uploads $out/share/gitlab/public/uploads + ln -sf /run/gitlab/config $out/share/gitlab/config + ln -sf /run/gitlab/tmp $out/share/gitlab/tmp + + # rake tasks to mitigate CVE-2017-0882 + # see https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/ + cp ${./reset_token.rake} $out/share/gitlab/lib/tasks/reset_token.rake + + # manually patch the shebang line in generate-loose-foreign-key + wrapProgram $out/share/gitlab/scripts/decomposition/generate-loose-foreign-key --set ENABLE_SPRING 0 --add-flags 'runner -e test' + ''; + + passthru = { + inherit rubyEnv assets; + ruby = rubyEnv.wrappedRuby; + GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION; + GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION; + GITLAB_SHELL_VERSION = data.passthru.GITLAB_SHELL_VERSION; + GITLAB_WORKHORSE_VERSION = data.passthru.GITLAB_WORKHORSE_VERSION; + gitlabEnv.FOSS_ONLY = lib.boolToString (!gitlabEnterprise); + tests = { + nixos-test-passes = nixosTests.gitlab; + }; + }; + + meta = with lib; { + homepage = "http://www.gitlab.com/"; + platforms = platforms.linux; + maintainers = teams.gitlab.members; + } // (if gitlabEnterprise then + { + license = licenses.unfreeRedistributable; # https://gitlab.com/gitlab-org/gitlab-ee/raw/master/LICENSE + description = "GitLab Enterprise Edition"; + } + else + { + license = licenses.mit; + description = "GitLab Community Edition"; + longDescription = "GitLab Community Edition (CE) is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab CE on your own servers, in a container, or on a cloud provider."; + }); +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix new file mode 100644 index 000000000000..ac63b4296b7a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix @@ -0,0 +1,60 @@ +{ lib +, fetchFromGitLab +, fetchFromGitHub +, buildGoModule +, pkg-config +}: + +let + version = "16.10.4"; + package_version = "v${lib.versions.major version}"; + gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}"; + + commonOpts = { + inherit version; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitaly"; + rev = "v${version}"; + hash = "sha256-dzHGnZwXomCUrlup9VD/0l084Swp9CVi4nJi6MtOwi8="; + }; + + vendorHash = "sha256-mPoz+y1LWpGr+zYqAhxzznMyKIPehsDW+WFxklYSC10="; + + ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ]; + + tags = [ "static" ]; + + nativeBuildInputs = [ pkg-config ]; + + doCheck = false; + }; + + auxBins = buildGoModule ({ + pname = "gitaly-aux"; + + subPackages = [ "cmd/gitaly-hooks" "cmd/gitaly-ssh" "cmd/gitaly-lfs-smudge" "cmd/gitaly-gpg" ]; + } // commonOpts); +in +buildGoModule ({ + pname = "gitaly"; + + subPackages = [ "cmd/gitaly" "cmd/gitaly-backup" ]; + + preConfigure = '' + mkdir -p _build/bin + cp -r ${auxBins}/bin/* _build/bin + ''; + + outputs = [ "out" ]; + + meta = with lib; { + homepage = "https://gitlab.com/gitlab-org/gitaly"; + description = "A Git RPC service for handling all the git calls made by GitLab"; + platforms = platforms.linux ++ [ "x86_64-darwin" ]; + maintainers = teams.gitlab.members; + license = licenses.mit; + }; +} // commonOpts) diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/Disable-inmemory-storage-driver-test.patch b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/Disable-inmemory-storage-driver-test.patch new file mode 100644 index 000000000000..16f47fb3ae18 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/Disable-inmemory-storage-driver-test.patch @@ -0,0 +1,38 @@ +From bc359e8f51a17ba759121339e87e90eed16e98fe Mon Sep 17 00:00:00 2001 +From: Yaya <mak@nyantec.com> +Date: Tue, 20 Jun 2023 10:01:23 +0000 +Subject: [PATCH] Disable inmemory storage driver test + +--- + .../storage/driver/inmemory/driver_test.go | 19 ------------------- + 1 file changed, 19 deletions(-) + delete mode 100644 registry/storage/driver/inmemory/driver_test.go + +diff --git a/registry/storage/driver/inmemory/driver_test.go b/registry/storage/driver/inmemory/driver_test.go +deleted file mode 100644 +index dbc1916f..00000000 +--- a/registry/storage/driver/inmemory/driver_test.go ++++ /dev/null +@@ -1,19 +0,0 @@ +-package inmemory +- +-import ( +- "testing" +- +- storagedriver "github.com/docker/distribution/registry/storage/driver" +- "github.com/docker/distribution/registry/storage/driver/testsuites" +- "gopkg.in/check.v1" +-) +- +-// Hook up gocheck into the "go test" runner. +-func Test(t *testing.T) { check.TestingT(t) } +- +-func init() { +- inmemoryDriverConstructor := func() (storagedriver.StorageDriver, error) { +- return New(), nil +- } +- testsuites.RegisterSuite(inmemoryDriverConstructor, testsuites.NeverSkip) +-} +-- +2.40.1 + diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix new file mode 100644 index 000000000000..c92cc3e0ddeb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoModule, fetchFromGitLab }: + +buildGoModule rec { + pname = "gitlab-container-registry"; + version = "3.93.0"; + rev = "v${version}-gitlab"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "container-registry"; + inherit rev; + hash = "sha256-4jsnfkHXs9FSnyQ6JP/zmW51x8fHyQ0n+B8EPOoTSAA="; + }; + + vendorHash = "sha256-KZWdM8Q8ipsgm7OoLyOuHo+4Vg2Nve+yZtTSUDgjOW4="; + + patches = [ + ./Disable-inmemory-storage-driver-test.patch + ]; + + postPatch = '' + substituteInPlace health/checks/checks_test.go \ + --replace \ + 'func TestHTTPChecker(t *testing.T) {' \ + 'func TestHTTPChecker(t *testing.T) { t.Skip("Test requires network connection")' + ''; + + meta = with lib; { + description = "The GitLab Docker toolset to pack, ship, store, and deliver content"; + license = licenses.asl20; + maintainers = with maintainers; [ yayayayaka xanderio ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix new file mode 100644 index 000000000000..9b31c3b300a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix @@ -0,0 +1,26 @@ +{ lib, buildGoModule, fetchFromGitLab, pkg-config, icu }: + +buildGoModule rec { + pname = "gitlab-elasticsearch-indexer"; + version = "4.8.0"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-elasticsearch-indexer"; + rev = "v${version}"; + sha256 = "sha256-JHUDZmGlZGyvsB4wgAnNyIEtosZG4ajZ4eBGumH97ZI="; + }; + + vendorHash = "sha256-ztRKXoXncY66XJVwlPn4ShLWTD4Cr0yYHoUdquJItDM="; + + buildInputs = [ icu ]; + nativeBuildInputs = [ pkg-config ]; + + meta = with lib; { + description = "Indexes Git repositories into Elasticsearch for GitLab."; + mainProgram = "gitlab-elasticsearch-indexer"; + license = licenses.mit; + maintainers = with maintainers; [ xanderio yayayayaka ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix new file mode 100644 index 000000000000..5ca4a1e561f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix @@ -0,0 +1,26 @@ +{ buildGoModule, lib, fetchFromGitLab }: + +buildGoModule rec { + pname = "gitlab-pages"; + version = "16.10.4"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-pages"; + rev = "v${version}"; + hash = "sha256-Jdg1cxHra4lHvf8+cojaE9OXR40w24OiwMhDYvmUBkI="; + }; + + vendorHash = "sha256-WrR4eZRAuYkhr7ZqP7OXqJ6uwvxzn+t+3OdBNcNaq0M="; + subPackages = [ "." ]; + + meta = with lib; { + description = "Daemon used to serve static websites for GitLab users"; + mainProgram = "gitlab-pages"; + homepage = "https://gitlab.com/gitlab-org/gitlab-pages"; + changelog = "https://gitlab.com/gitlab-org/gitlab-pages/-/blob/v${version}/CHANGELOG.md"; + license = licenses.mit; + maintainers = teams.helsinki-systems.members ++ teams.gitlab.members; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix new file mode 100644 index 000000000000..2b99cc36ba7e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix @@ -0,0 +1,34 @@ +{ lib, fetchFromGitLab, buildGoModule, ruby, libkrb5 }: + +buildGoModule rec { + pname = "gitlab-shell"; + version = "14.34.0"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-shell"; + rev = "v${version}"; + sha256 = "sha256-0LzZZn4kS5uRcj/uJgHvLvd6ZOLi1l4yaSqqRhmTYZs="; + }; + + buildInputs = [ ruby libkrb5 ]; + + patches = [ ./remove-hardcoded-locations.patch ]; + + vendorHash = "sha256-RtZ9d3cempY8PxaCPFJ2uEEorem6NDURHZPirr0SUjU="; + + postInstall = '' + cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin + cp -r "$NIX_BUILD_TOP/source"/{support,VERSION} $out/ + ''; + doCheck = false; + + meta = with lib; { + description = "SSH access and repository management app for GitLab"; + homepage = "http://www.gitlab.com/"; + platforms = platforms.linux; + maintainers = teams.gitlab.members; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch new file mode 100644 index 000000000000..8bbfd97e00ef --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch @@ -0,0 +1,48 @@ +diff --git a/internal/config/config.go b/internal/config/config.go +index 36f8625..72ede08 100644 +--- a/internal/config/config.go ++++ b/internal/config/config.go +@@ -12,7 +12,7 @@ import ( + ) + + const ( +- configFile = "config.yml" ++ configFile = "shell-config.yml" + defaultSecretFileName = ".gitlab_shell_secret" + ) + +@@ -91,7 +91,7 @@ func (c *Config) GetHttpClient() *client.HttpClient { + // NewFromDirExternal returns a new config from a given root dir. It also applies defaults appropriate for + // gitlab-shell running in an external SSH server. + func NewFromDirExternal(dir string) (*Config, error) { +- cfg, err := newFromFile(filepath.Join(dir, configFile)) ++ cfg, err := newFromFile(filepath.Join("/run/gitlab", configFile)) + if err != nil { + return nil, err + } +diff --git a/internal/keyline/key_line.go b/internal/keyline/key_line.go +index c6f2422..fb0426b 100644 +--- a/internal/keyline/key_line.go ++++ b/internal/keyline/key_line.go +@@ -37,7 +37,7 @@ func NewPrincipalKeyLine(keyId, principal string, config *config.Config) (*KeyLi + } + + func (k *KeyLine) ToString() string { +- command := fmt.Sprintf("%s %s-%s", path.Join(k.Config.RootDir, executable.BinDir, executable.GitlabShell), k.Prefix, k.Id) ++ command := fmt.Sprintf("%s %s-%s", path.Join("/run/current-system/sw/bin", executable.GitlabShell), k.Prefix, k.Id) + + return fmt.Sprintf(`command="%s",%s %s`, command, SshOptions, k.Value) + } +diff --git a/support/gitlab_config.rb b/support/gitlab_config.rb +index 52ac5ee..d96baa3 100644 +--- a/support/gitlab_config.rb ++++ b/support/gitlab_config.rb +@@ -7,7 +7,7 @@ class GitlabConfig + attr_reader :config + + def initialize +- @config = YAML.load_file(File.join(ROOT_PATH, 'config.yml')) ++ @config = YAML.load_file('/run/gitlab/shell-config.yml') + end + + def auth_file diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix new file mode 100644 index 000000000000..98404f4a4f6d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix @@ -0,0 +1,31 @@ +{ lib, fetchFromGitLab, git, buildGoModule }: +let + data = lib.importJSON ../data.json; +in +buildGoModule rec { + pname = "gitlab-workhorse"; + + version = "16.10.4"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = data.owner; + repo = data.repo; + rev = data.rev; + sha256 = data.repo_hash; + }; + + sourceRoot = "${src.name}/workhorse"; + + vendorHash = "sha256-bbKX22Tb2pM+Wnyl1ojdA1nmT40Z5R99mDP1hLD+lco="; + buildInputs = [ git ]; + ldflags = [ "-X main.Version=${version}" ]; + doCheck = false; + + meta = with lib; { + homepage = "http://www.gitlab.com/"; + platforms = platforms.linux; + maintainers = teams.gitlab.members; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch new file mode 100644 index 000000000000..1a468724e354 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch @@ -0,0 +1,217 @@ +diff --git a/config/environments/production.rb b/config/environments/production.rb +index e1a7db8d860..5823f170410 100644 +--- a/config/environments/production.rb ++++ b/config/environments/production.rb +@@ -71,10 +71,10 @@ + + config.action_mailer.delivery_method = :sendmail + # Defaults to: +- # # config.action_mailer.sendmail_settings = { +- # # location: '/usr/sbin/sendmail', +- # # arguments: '-i -t' +- # # } ++ config.action_mailer.sendmail_settings = { ++ location: '/run/wrappers/bin/sendmail', ++ arguments: '-i -t' ++ } + config.action_mailer.perform_deliveries = true + config.action_mailer.raise_delivery_errors = true + +diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example +index da1a15302da..c846db93e5c 100644 +--- a/config/gitlab.yml.example ++++ b/config/gitlab.yml.example +@@ -1191,7 +1191,7 @@ production: &base + # CAUTION! + # Use the default values unless you really know what you are doing + git: +- bin_path: /usr/bin/git ++ bin_path: git + + ## Webpack settings + # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running +diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb +index d096174fca3a..02d0f689c523 100644 +--- a/config/initializers/1_settings.rb ++++ b/config/initializers/1_settings.rb +@@ -206,7 +206,7 @@ + Settings.gitlab['user_home'] ||= begin + Etc.getpwnam(Settings.gitlab['user']).dir + rescue ArgumentError # no user configured +- '/home/' + Settings.gitlab['user'] ++ '/homeless-shelter' + end + Settings.gitlab['time_zone'] ||= nil + Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil? +@@ -959,7 +959,7 @@ + # Git + # + Settings['git'] ||= {} +-Settings.git['bin_path'] ||= '/usr/bin/git' ++Settings.git['bin_path'] ||= 'git' + + # Important: keep the satellites.path setting until GitLab 9.0 at + # least. This setting is fed to 'rm -rf' in +diff --git a/config/puma.rb.example b/config/puma.rb.example +index 07a6f6a25015..14a718a43202 100644 +--- a/config/puma.rb.example ++++ b/config/puma.rb.example +@@ -5,12 +5,8 @@ + # The default is "config.ru". + # + rackup 'config.ru' +-pidfile '/home/git/gitlab/tmp/pids/puma.pid' +-state_path '/home/git/gitlab/tmp/pids/puma.state' +- +-stdout_redirect '/home/git/gitlab/log/puma.stdout.log', +- '/home/git/gitlab/log/puma.stderr.log', +- true ++pidfile ENV['PUMA_PATH'] + '/tmp/pids/puma.pid' ++state_path ENV['PUMA_PATH'] + '/tmp/pids/puma.state' + + # Configure "min" to be the minimum number of threads to use to answer + # requests and "max" the maximum. +@@ -31,11 +27,11 @@ queue_requests false + + # Bind the server to "url". "tcp://", "unix://" and "ssl://" are the only + # accepted protocols. +-bind 'unix:///home/git/gitlab/tmp/sockets/gitlab.socket' ++bind "unix://#{ENV['PUMA_PATH']}/tmp/sockets/gitlab.socket" + + workers 3 + +-require_relative "/home/git/gitlab/lib/gitlab/cluster/lifecycle_events" ++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/cluster/lifecycle_events" + + on_restart do + # Signal application hooks that we're about to restart +@@ -74,7 +70,7 @@ worker_timeout 60 + wait_for_less_busy_worker ENV.fetch('PUMA_WAIT_FOR_LESS_BUSY_WORKER', 0.001).to_f + + # Use json formatter +-require_relative "/home/git/gitlab/lib/gitlab/puma_logging/json_formatter" ++require_relative ENV['GITLAB_PATH'] + "lib/gitlab/puma_logging/json_formatter" + + json_formatter = Gitlab::PumaLogging::JSONFormatter.new + log_formatter do |str| +diff --git a/lib/api/api.rb b/lib/api/api.rb +index a287ffbfcd8..1a5ca59183a 100644 +--- a/lib/api/api.rb ++++ b/lib/api/api.rb +@@ -4,7 +4,7 @@ module API + class API < ::API::Base + include APIGuard + +- LOG_FILENAME = Rails.root.join("log", "api_json.log") ++ LOG_FILENAME = File.join(ENV["GITLAB_LOG_PATH"], "api_json.log") + + NO_SLASH_URL_PART_REGEX = %r{[^/]+}.freeze + NAMESPACE_OR_PROJECT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze +diff --git a/lib/gitlab/authorized_keys.rb b/lib/gitlab/authorized_keys.rb +index 50cd15b7a10..3ac89e5b8e9 100644 +--- a/lib/gitlab/authorized_keys.rb ++++ b/lib/gitlab/authorized_keys.rb +@@ -157,7 +157,7 @@ def command(id) + raise KeyError, "Invalid ID: #{id.inspect}" + end + +- "#{File.join(Gitlab.config.gitlab_shell.path, 'bin', 'gitlab-shell')} #{id}" ++ "#{File.join('/run/current-system/sw/bin', 'gitlab-shell')} #{id}" + end + + def strip(key) +diff --git a/lib/gitlab/logger.rb b/lib/gitlab/logger.rb +index 89a4e36a232..ae379ffb27a 100644 +--- a/lib/gitlab/logger.rb ++++ b/lib/gitlab/logger.rb +@@ -37,7 +37,7 @@ def self.build + end + + def self.full_log_path +- Rails.root.join("log", file_name) ++ File.join(ENV["GITLAB_LOG_PATH"], file_name) + end + + def self.cache_key +diff --git a/lib/gitlab/uploads_transfer.rb b/lib/gitlab/uploads_transfer.rb +index e0e7084e27e..19fab855b90 100644 +--- a/lib/gitlab/uploads_transfer.rb ++++ b/lib/gitlab/uploads_transfer.rb +@@ -3,7 +3,7 @@ + module Gitlab + class UploadsTransfer < ProjectTransfer + def root_dir +- FileUploader.root ++ ENV['GITLAB_UPLOADS_PATH'] || FileUploader.root + end + end + end +diff --git a/lib/system_check/app/log_writable_check.rb b/lib/system_check/app/log_writable_check.rb +index 2c108f0c18d..3a16ff52d01 100644 +--- a/lib/system_check/app/log_writable_check.rb ++++ b/lib/system_check/app/log_writable_check.rb +@@ -23,7 +23,7 @@ def show_error + private + + def log_path +- Rails.root.join('log') ++ ENV["GITLAB_LOG_PATH"] + end + end + end +diff --git a/lib/system_check/app/uploads_directory_exists_check.rb b/lib/system_check/app/uploads_directory_exists_check.rb +index 54dff63ab61..882da702f29 100644 +--- a/lib/system_check/app/uploads_directory_exists_check.rb ++++ b/lib/system_check/app/uploads_directory_exists_check.rb +@@ -6,12 +6,13 @@ class UploadsDirectoryExistsCheck < SystemCheck::BaseCheck + set_name 'Uploads directory exists?' + + def check? +- File.directory?(Rails.root.join('public/uploads')) ++ File.directory?(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')) + end + + def show_error ++ uploads_dir = ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') + try_fixing_it( +- "sudo -u #{gitlab_user} mkdir #{Rails.root}/public/uploads" ++ "sudo -u #{gitlab_user} mkdir #{uploads_dir}" + ) + for_more_information( + see_installation_guide_section('GitLab') +diff --git a/lib/system_check/app/uploads_path_permission_check.rb b/lib/system_check/app/uploads_path_permission_check.rb +index 2e1cc687c43..ca69d63bcf6 100644 +--- a/lib/system_check/app/uploads_path_permission_check.rb ++++ b/lib/system_check/app/uploads_path_permission_check.rb +@@ -27,7 +27,7 @@ def show_error + private + + def rails_uploads_path +- Rails.root.join('public/uploads') ++ ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads') + end + + def uploads_fullpath +diff --git a/lib/system_check/app/uploads_path_tmp_permission_check.rb b/lib/system_check/app/uploads_path_tmp_permission_check.rb +index 567c7540777..29906b1c132 100644 +--- a/lib/system_check/app/uploads_path_tmp_permission_check.rb ++++ b/lib/system_check/app/uploads_path_tmp_permission_check.rb +@@ -35,7 +35,7 @@ def upload_path_tmp + end + + def uploads_fullpath +- File.realpath(Rails.root.join('public/uploads')) ++ File.realpath(ENV['GITLAB_UPLOADS_PATH'] || Rails.root.join('public/uploads')) + end + end + end +diff --git a/scripts/decomposition/generate-loose-foreign-key b/scripts/decomposition/generate-loose-foreign-key +index 35f84c64ce1..c2fecf3404c 100755 +--- a/scripts/decomposition/generate-loose-foreign-key ++++ b/scripts/decomposition/generate-loose-foreign-key +@@ -1,4 +1,4 @@ +-#!/usr/bin/env -S ENABLE_SPRING=0 bin/rails runner -e test ++#!/usr/bin/env rails + + # This is helper script to swap foreign key to loose foreign key + # using DB schema diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake new file mode 100644 index 000000000000..705b5830edfc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake @@ -0,0 +1,43 @@ +# Taken from: +# https://about.gitlab.com/2017/03/20/gitlab-8-dot-17-dot-4-security-release/ + +# lib/tasks/reset_token.rake +require_relative '../../app/models/concerns/token_authenticatable.rb' + +STDOUT.sync = true + +namespace :tokens do + desc "Reset all GitLab user auth tokens" + task reset_all: :environment do + reset_all_users_token(:reset_authentication_token!) + end + + desc "Reset all GitLab email tokens" + task reset_all_email: :environment do + reset_all_users_token(:reset_incoming_email_token!) + end + + def reset_all_users_token(token) + TmpUser.find_in_batches do |batch| + puts "Processing batch starting with user ID: #{batch.first.id}" + + batch.each(&token) + end + end +end + +class TmpUser < ActiveRecord::Base + include TokenAuthenticatable + + self.table_name = 'users' + + def reset_authentication_token! + write_new_token(:authentication_token) + save!(validate: false) + end + + def reset_incoming_email_token! + write_new_token(:incoming_email_token) + save!(validate: false) + end +end diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile new file mode 100644 index 000000000000..dccd147ca501 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile @@ -0,0 +1,662 @@ +# frozen_string_literal: true + +source 'https://rubygems.org' + +if ENV.fetch('BUNDLER_CHECKSUM_VERIFICATION_OPT_IN', 'false') != 'false' # this verification is still experimental + $LOAD_PATH.unshift(File.expand_path("vendor/gems/bundler-checksum/lib", __dir__)) + require 'bundler-checksum' + BundlerChecksum.patch! +end + +# Please see https://docs.gitlab.com/ee/development/feature_categorization/#gemfile +ignore_feature_category = Module.new do + def gem(*arguments, feature_category: nil, **keyword_arguments) # rubocop:disable Lint/UnusedMethodArgument + super(*arguments, **keyword_arguments) + end +end + +extend ignore_feature_category + +gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +# NOTE: When incrementing the major or minor version here, also increment activerecord_version +# in vendor/gems/attr_encrypted/attr_encrypted.gemspec until we resolve +# https://gitlab.com/gitlab-org/gitlab/-/issues/375713 +# +# See https://docs.gitlab.com/ee/development/gemfile.html#upgrade-rails for guidelines when upgrading Rails +gem 'rails', '~> 7.0.8.1' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'bootsnap', '~> 1.18.3', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'gitlab-safe_request_store', path: 'gems/gitlab-safe_request_store' # rubocop:todo Gemfile/MissingFeatureCategory + +# GitLab Monorepo Gems +group :monorepo do + gem 'gitlab-utils', path: 'gems/gitlab-utils' # rubocop:todo Gemfile/MissingFeatureCategory +end + +gem 'gitlab-backup-cli', path: 'gems/gitlab-backup-cli', require: 'gitlab/backup/cli', feature_category: :backup_restore + +gem 'gitlab-secret_detection', path: 'gems/gitlab-secret_detection', feature_category: :secret_detection + +# Responders respond_to and respond_with +gem 'responders', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'sprockets', '~> 3.7.0' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'view_component', '~> 3.11.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Supported DBs +gem 'pg', '~> 1.5.6' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'neighbor', '~> 0.2.3' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'rugged', '~> 1.6' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'faraday', '~> 1.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'marginalia', '~> 1.11.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# Authorization +gem 'declarative_policy', '~> 1.1.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Authentication libraries +gem 'devise', '~> 4.9.3', feature_category: :system_access +gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'vendor/gems/devise-pbkdf2-encryptable' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'bcrypt', '~> 3.1', '>= 3.1.14' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'doorkeeper', '~> 5.6', '>= 5.6.6' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'doorkeeper-openid_connect', '~> 1.8', '>= 1.8.7' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'rexml', '~> 3.2.6' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'ruby-saml', '~> 1.15.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-auth0', '~> 3.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-azure-activedirectory-v2', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-azure-oauth2', '~> 0.0.9', path: 'vendor/gems/omniauth-azure-oauth2' # See gem README.md # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-dingtalk-oauth2', '~> 1.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-alicloud', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-facebook', '~> 4.0.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-github', '2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-gitlab', '~> 4.0.0', path: 'vendor/gems/omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-google-oauth2', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-oauth2-generic', '~> 0.2.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-saml', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-shibboleth-redux', '~> 2.0', require: 'omniauth-shibboleth' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-twitter', '~> 1.4' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth_crowd', '~> 2.4.0', path: 'vendor/gems/omniauth_crowd' # See vendor/gems/omniauth_crowd/README.md # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth_openid_connect', '~> 0.6.1' # rubocop:todo Gemfile/MissingFeatureCategory +# Locked until Ruby 3.0 upgrade since upgrading will pull in an updated net-smtp gem. +# See https://docs.gitlab.com/ee/development/emails.html#rationale. +gem 'openid_connect', '= 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-salesforce', '~> 1.0.5', path: 'vendor/gems/omniauth-salesforce' # See gem README.md # rubocop:todo Gemfile/MissingFeatureCategory +gem 'omniauth-atlassian-oauth2', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'rack-oauth2', '~> 1.21.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'jwt', '~> 2.5' # rubocop:todo Gemfile/MissingFeatureCategory + +# Kerberos authentication. EE-only +gem 'gssapi', '~> 1.3.1', group: :kerberos # rubocop:todo Gemfile/MissingFeatureCategory +gem 'timfel-krb5-auth', '~> 0.8', group: :kerberos # rubocop:todo Gemfile/MissingFeatureCategory + +# Spam and anti-bot protection +gem 'recaptcha', '~> 5.12', require: 'recaptcha/rails' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'akismet', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'invisible_captcha', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Two-factor authentication +gem 'devise-two-factor', '~> 4.1.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'rqrcode', '~> 2.0', feature_category: :system_access + +gem 'attr_encrypted', '~> 3.2.4', path: 'vendor/gems/attr_encrypted' # rubocop:todo Gemfile/MissingFeatureCategory + +# GitLab Pages +gem 'validates_hostname', '~> 1.0.13' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'rubyzip', '~> 2.3.2', require: 'zip' # rubocop:todo Gemfile/MissingFeatureCategory +# GitLab Pages letsencrypt support +gem 'acme-client', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Browser detection +gem 'browser', '~> 5.3.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# OS detection for usage ping +gem 'ohai', '~> 18.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# GPG +gem 'gpgme', '~> 2.0.23' # rubocop:todo Gemfile/MissingFeatureCategory + +# LDAP Auth +# GitLab fork with several improvements to original library. For full list of changes +# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master +gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# API +gem 'grape', '~> 2.0.0', feature_category: :api +gem 'grape-entity', '~> 0.10.2', feature_category: :api +gem 'grape-swagger', '~> 2.0.1', group: [:development, :test], feature_category: :api +gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api +gem 'grape-path-helpers', '~> 2.0.1', feature_category: :api +gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory + +# GraphQL API +gem 'graphql', '~> 2.2.5', feature_category: :api +gem 'graphql-docs', '~> 4.0.0', group: [:development, :test], feature_category: :api +gem 'graphiql-rails', '~> 1.8.0', feature_category: :api +gem 'apollo_upload_server', '~> 2.1.5', feature_category: :api +gem 'graphlient', '~> 0.6.0', feature_category: :importers # Used by BulkImport feature (group::import) + +# Generate Fake data +gem 'ffaker', '~> 2.23' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'hashie', '~> 5.0.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Pagination +gem 'kaminari', '~> 1.2.2' # rubocop:todo Gemfile/MissingFeatureCategory + +# HAML +gem 'hamlit', '~> 2.15.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Files attachments +gem 'carrierwave', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'mini_magick', '~> 4.10.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# for backups +gem 'fog-aws', '~> 3.18' # rubocop:todo Gemfile/MissingFeatureCategory +# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421. +# Also see config/initializers/fog_core_patch.rb. +gem 'fog-core', '= 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'fog-google', '~> 1.19', require: 'fog/google' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'fog-local', '~> 0.8' # rubocop:todo Gemfile/MissingFeatureCategory +# NOTE: +# the fog-aliyun gem since v0.4 pulls in aliyun-sdk transitively, which monkey-patches +# the rest-client gem to drop the Content-Length header field for chunked transfers, +# which may have knock-on effects on other features using `RestClient`. +# We may want to update this dependency if this is ever addressed upstream, e.g. via +# https://github.com/aliyun/aliyun-oss-ruby-sdk/pull/93 +gem 'fog-aliyun', '~> 0.4' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'gitlab-fog-azure-rm', '~> 1.8.0', require: 'fog/azurerm' # rubocop:todo Gemfile/MissingFeatureCategory + +# for Google storage + +# Need this specific version of google-apis-storage_v1 so that fog-google will utilize the updated list_objects with +# match_glob support in google-apis-core 0.11.1. Because of this we also have to bump google-cloud-storage to 1.45.0. +gem 'google-apis-storage_v1', '~> 0.29' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-cloud-storage', '~> 1.45.0' # rubocop:todo Gemfile/MissingFeatureCategory +# We need >= 0.11.1 because that's when match_glob support is added to list_objects +gem 'google-apis-core', '~> 0.11.0', '>= 0.11.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-compute_v1', '~> 0.57.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-container_v1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-container_v1beta1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-cloudbilling_v1', '~> 0.21.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-cloudresourcemanager_v1', '~> 0.31.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-iam_v1', '~> 0.36.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-serviceusage_v1', '~> 0.28.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'googleauth', '~> 1.8.1', feature_category: :shared +gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared +gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared + +# Seed data +gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory + +# Search +gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'aws-sdk-core', '~> 3.191.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'aws-sdk-s3', '~> 1.144.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory + +# Markdown and HTML processing +gem 'html-pipeline', '~> 2.14.3', feature_category: :team_planning +gem 'deckar01-task_list', '2.3.4', feature_category: :team_planning +gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'commonmarker', '~> 0.23.10', feature_category: :team_planning +gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'RedCloth', '~> 4.3.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'org-ruby', '~> 0.9.12' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'creole', '~> 0.5.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'wikicloth', '0.8.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'asciidoctor', '~> 2.0.18' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'asciidoctor-include-ext', '~> 0.4.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'asciidoctor-plantuml', '~> 0.0.16' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'gitlab-glfm-markdown', '~> 0.0.13', feature_category: :team_planning + +# Calendar rendering +gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory + +# Diffs +gem 'diffy', '~> 3.4' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems/diff_match_patch', feature_category: :team_planning + +# Application server +gem 'rack', '~> 2.2.8.1' # rubocop:todo Gemfile/MissingFeatureCategory +# https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually +gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory + +group :puma do + gem 'puma', '= 6.4.0', require: false, feature_category: :shared + gem 'sd_notify', '~> 0.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory +end + +# State machine +gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# CI domain tags +gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Background jobs +gem 'sidekiq', path: 'vendor/gems/sidekiq-7.1.6', require: 'sidekiq' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'sidekiq-cron', '~> 1.12.0', feature_category: :shared +gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # rubocop:todo Gemfile/MissingFeatureCategory + +# Cron Parser +gem 'fugit', '~> 1.8.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# HTTP requests +gem 'httparty', '~> 0.21.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Colored output to console +gem 'rainbow', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Progress bar +gem 'ruby-progressbar', '~> 1.10' # rubocop:todo Gemfile/MissingFeatureCategory + +# Linear-time regex library for untrusted regular expressions +gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Misc + +gem 'semver_dialects', '~> 2.0', feature_category: :static_application_security_testing +gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory + +# Export Ruby Regex to Javascript +gem 'js_regex', '~> 3.8' # rubocop:todo Gemfile/MissingFeatureCategory + +# User agent parsing +gem 'device_detector' # rubocop:todo Gemfile/MissingFeatureCategory + +# Redis +gem 'redis-namespace', '~> 1.10.0', feature_category: :redis +gem 'redis', '~> 5.0.0', feature_category: :redis +gem 'redis-clustering', '~> 5.0.0', feature_category: :redis +gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory + +# Redis session store +gem 'redis-actionpack', '~> 5.4.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Discord integration +gem 'discordrb-webhooks', '~> 3.5', require: false, feature_category: :integrations + +# Jira integration +gem 'jira-ruby', '~> 2.3.0', feature_category: :integrations +gem 'atlassian-jwt', '~> 0.2.1', feature_category: :integrations + +# Slack integration +gem 'slack-messenger', '~> 2.3.4', feature_category: :integrations + +# FogBugz integration +gem 'ruby-fogbugz', '~> 0.3.0', feature_category: :importers + +# Kubernetes integration +gem 'kubeclient', '~> 4.11.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# AI +gem 'ruby-openai', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'circuitbox', '2.0.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Sanitize user input +gem 'sanitize', '~> 6.0.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'babosa', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Sanitizes SVG input +gem 'loofah', '~> 2.22.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Used to provide license templates +gem 'licensee', '~> 9.16' # rubocop:todo Gemfile/MissingFeatureCategory + +# Detect and convert string character encoding +gem 'charlock_holmes', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory + +# Detect mime content type from content +gem 'ruby-magic', '~> 0.6' # rubocop:todo Gemfile/MissingFeatureCategory + +# Faster blank +gem 'fast_blank', '~> 1.0.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# Parse time & duration +gem 'gitlab-chronic', '~> 0.10.5' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'gitlab_chronic_duration', '~> 0.12' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'rack-proxy', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'cssbundling-rails', '1.4.0', feature_category: :shared +gem 'terser', '1.0.2' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'click_house-client', path: 'gems/click_house-client', require: 'click_house/client' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'addressable', '~> 2.8' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'tanuki_emoji', '~> 0.9' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'gon', '~> 6.4.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'request_store', '~> 1.5.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'base32', '~> 0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'gitlab-license', '~> 2.4', feature_category: :shared + +# Protect against bruteforcing +gem 'rack-attack', '~> 6.7.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Sentry integration +gem 'sentry-raven', '~> 3.1', feature_category: :error_tracking +gem 'sentry-ruby', '~> 5.10.0', feature_category: :error_tracking +gem 'sentry-rails', '~> 5.10.0', feature_category: :error_tracking +gem 'sentry-sidekiq', '~> 5.10.0', feature_category: :error_tracking + +# PostgreSQL query parsing +# +gem 'pg_query', '~> 5.1.0', feature_category: :database + +gem 'gitlab-schema-validation', path: 'gems/gitlab-schema-validation' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'gitlab-http', path: 'gems/gitlab-http' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'premailer-rails', '~> 1.10.3' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'gitlab-labkit', '~> 0.35.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# I18n +gem 'rails-i18n', '~> 7.0', feature_category: :internationalization +gem 'gettext_i18n_rails', '~> 1.11.0', feature_category: :internationalization +gem 'gettext', '~> 3.4', '>= 3.4.9', + require: false, + group: [:development, :test], + feature_category: :internationalization + +gem 'batch-loader', '~> 2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# Perf bar +gem 'peek', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# Google Cloud Profiler support +gem 'cloud_profiler_agent', '~> 0.0.0', path: 'vendor/gems/cloud_profiler_agent', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +# Snowplow events tracking +gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Metrics +gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'prometheus-client-mmap', '~> 1.1', '>= 1.1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +group :development do + gem 'lefthook', '~> 1.5.6', require: false, feature_category: :tooling + gem 'rubocop', feature_category: :tooling + gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'letter_opener_web', '~> 2.0.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'lookbook', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory + + # Better errors handler + gem 'better_errors', '~> 2.10.1' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'sprite-factory', '~> 1.7' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'ruby-lsp', "~> 0.14.4", require: false, feature_category: :tooling + + gem 'ruby-lsp-rails', "~> 0.3.0", feature_category: :tooling + + gem 'ruby-lsp-rspec', "~> 0.1.10", require: false, feature_category: :tooling +end + +group :development, :test do + gem 'deprecation_toolkit', '~> 1.5.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory + gem 'bullet', '~> 7.1.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'parser', '~> 3.3', '>= 3.3.0.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'pry-byebug' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'pry-rails', '~> 0.3.9' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'pry-shell', '~> 0.6.4' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'awesome_print', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'database_cleaner-active_record', '~> 2.1.0', feature_category: :database + gem 'factory_bot_rails', '~> 6.4.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rspec-rails', '~> 6.1.1', feature_category: :shared + + # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) + gem 'minitest', '~> 5.11.0' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'spring', '~> 4.1.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'spring-commands-rspec', '~> 1.0.4' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'gitlab-styles', '~> 11.0.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'haml_lint', '~> 0.53', require: false # rubocop:todo Gemfile/MissingFeatureCategory + gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + # Benchmarking & profiling + gem 'benchmark-ips', '~> 2.11.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory + gem 'benchmark-memory', '~> 0.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + # Profiling data from CI/CD pipelines + gem 'influxdb-client', '~> 2.9', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'knapsack', '~> 1.22.0', feature_category: :tooling + gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling + gem 'test_file_finder', '~> 0.2.1', feature_category: :tooling + + gem 'simple_po_parser', '~> 1.1.6', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'png_quantizator', '~> 0.2.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'parallel', '~> 1.19', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'pact', '~> 1.64' # rubocop:todo Gemfile/MissingFeatureCategory + + # For now we only use vite in development / test, and not for production builds + # See: https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/106 + gem 'vite_rails', '~> 3.0.17', feature_category: :shared + gem 'vite_ruby', '~> 3.5.0', feature_category: :shared + + gem 'gitlab-housekeeper', path: 'gems/gitlab-housekeeper', feature_category: :tooling +end + +group :development, :test, :danger do + gem 'gitlab-dangerfiles', '~> 4.7.0', require: false, feature_category: :tooling +end + +group :development, :test, :coverage do + gem 'simplecov', '~> 0.22', require: false, feature_category: :tooling + gem 'simplecov-lcov', '~> 0.8.0', require: false, feature_category: :tooling + gem 'simplecov-cobertura', '~> 2.1.0', require: false, feature_category: :tooling + gem 'undercover', '~> 0.4.4', require: false, feature_category: :tooling +end + +# Gems required in omnibus-gitlab pipeline +group :development, :test, :omnibus do + gem 'license_finder', '~> 7.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory +end + +# Gems required in various pipelines +group :development, :test, :monorepo do + gem 'gitlab-rspec', path: 'gems/gitlab-rspec' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'gitlab-rspec_flaky', path: 'gems/gitlab-rspec_flaky', feature_category: :tooling +end + +group :test do + gem 'fuubar', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rspec-retry', '~> 0.6.2', feature_category: :tooling + gem 'rspec_profiling', '~> 0.0.8', feature_category: :tooling + gem 'rspec-benchmark', '~> 0.6.0', feature_category: :tooling + gem 'rspec-parameterized', '~> 1.0', require: false, feature_category: :tooling + gem 'os', '~> 1.1', '>= 1.1.4', feature_category: :tooling + + gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'selenium-webdriver', '~> 4.18', '>= 4.18.1' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory + gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'webmock', '~> 3.22.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'axe-core-rspec', '~> 4.8.2', feature_category: :tooling + + # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527 + gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'gitlab_quality-test_tooling', '~> 1.17.0', require: false, feature_category: :tooling +end + +gem 'octokit', '~> 8.0', feature_category: :importers + +gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared + +gem 'email_reply_trimmer', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'html2text' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'stackprof', '~> 0.2.25', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'rbtrace', '~> 0.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'memory_profiler', '~> 1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'activerecord-explain-analyze', '~> 0.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +# OAuth +gem 'oauth2', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Health check +gem 'health_check', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# System information +gem 'vmstat', '~> 2.3.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'sys-filesystem', '~> 1.4.3' # rubocop:todo Gemfile/MissingFeatureCategory + +# NTP client +gem 'net-ntp' # rubocop:todo Gemfile/MissingFeatureCategory + +# SSH keys support +gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory + +# Spamcheck GRPC protocol definitions +gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Gitaly GRPC protocol definitions +gem 'gitaly', '~> 16.10.0-rc1', feature_category: :gitaly + +# KAS GRPC protocol definitions +gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management + +gem 'grpc', '~> 1.60.0' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'google-protobuf', '~> 3.25', '>= 3.25.3' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Feature toggles +gem 'flipper', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'flipper-active_record', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'flipper-active_support_cache_store', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'unleash', '~> 3.2.2' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'gitlab-experiment', '~> 0.9.1', feature_category: :shared + +# Structured logging +gem 'lograge', '~> 0.5' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'grape_logging', '~> 1.8', '>= 1.8.4', feature_category: :api + +# DNS Lookup +gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfile/MissingFeatureCategory + +# Countries list +gem 'countries', '~> 4.0.0' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'retriable', '~> 3.1.2' # rubocop:todo Gemfile/MissingFeatureCategory + +# LRU cache +gem 'lru_redux' # rubocop:todo Gemfile/MissingFeatureCategory + +# Locked as long as quoted-printable encoding issues are not resolved +# Monkey-patched in `config/initializers/mail_encoding_patch.rb` +# See https://gitlab.com/gitlab-org/gitlab/issues/197386 +# +# `config/initializers/mail_starttls_patch.rb` has also been patched to +# fix STARTTLS handling until https://github.com/mikel/mail/pull/1536 is +# released. +gem 'mail', '= 2.8.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'mail-smtp_pool', '~> 0.1.0', path: 'vendor/gems/mail-smtp_pool', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'microsoft_graph_mailer', '~> 0.1.0', path: 'vendor/gems/microsoft_graph_mailer' # rubocop:todo Gemfile/MissingFeatureCategory + +# File encryption +gem 'lockbox', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Email validation +gem 'valid_email', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory + +# JSON +gem 'jsonb_accessor', '~> 1.3.10' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'json', '~> 2.6.3' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'json_schemer', '~> 0.2.18' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'oj', '~> 3.13.21' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'oj-introspect', '~> 0.7' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'multi_json', '~> 1.14.1' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'yajl-ruby', '~> 1.4.3', require: 'yajl' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'webauthn', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# IPAddress utilities +gem 'ipaddress', '~> 0.8.3' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'parslet', '~> 1.8' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'ipynbdiff', path: 'gems/ipynbdiff', require: 'ipynb_diff' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'ed25519', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + +# Error Tracking OpenAPI client +# See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature +gem 'error_tracking_open_api', path: 'gems/error_tracking_open_api' # rubocop:todo Gemfile/MissingFeatureCategory + +# Vulnerability advisories +gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' # rubocop:todo Gemfile/MissingFeatureCategory + +# Work with RPM packages +gem 'arr-pm', '~> 0.0.12' # rubocop:todo Gemfile/MissingFeatureCategory + +# Remote Development +gem 'devfile', '~> 0.0.25.pre.alpha1', feature_category: :remote_development + +# Apple plist parsing +gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory +gem 'app_store_connect' # rubocop:todo Gemfile/MissingFeatureCategory + +# For phone verification +gem 'telesignenterprise', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory + +# BufferedIO patch +# Updating this version will require updating scripts/allowed_warnings.txt +gem 'net-protocol', '~> 0.1.3' # rubocop:todo Gemfile/MissingFeatureCategory +# Lock this until we make DNS rebinding work with the updated net-http: +# https://gitlab.com/gitlab-org/gitlab/-/issues/413528 +gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory + +gem 'gitlab-sdk', '~> 0.3.0', feature_category: :application_instrumentation diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock new file mode 100644 index 000000000000..e00e49f2f69e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock @@ -0,0 +1,2147 @@ +PATH + remote: gems/activerecord-gitlab + specs: + activerecord-gitlab (0.2.0) + activerecord (>= 7) + +PATH + remote: gems/click_house-client + specs: + click_house-client (0.1.0) + activesupport (< 8) + addressable (~> 2.8) + json (~> 2.6.3) + +PATH + remote: gems/csv_builder + specs: + csv_builder (0.1.0) + +PATH + remote: gems/error_tracking_open_api + specs: + error_tracking_open_api (1.0.0) + typhoeus (~> 1.0, >= 1.0.1) + +PATH + remote: gems/gitlab-backup-cli + specs: + gitlab-backup-cli (0.0.1) + thor (~> 1.3) + +PATH + remote: gems/gitlab-housekeeper + specs: + gitlab-housekeeper (0.1.0) + activesupport + awesome_print + httparty + rubocop + +PATH + remote: gems/gitlab-http + specs: + gitlab-http (0.1.0) + activesupport (~> 7) + concurrent-ruby (~> 1.2) + httparty (~> 0.21.0) + ipaddress (~> 0.8.3) + railties (~> 7) + +PATH + remote: gems/gitlab-rspec_flaky + specs: + gitlab-rspec_flaky (0.1.0) + activesupport (>= 6.1, < 8) + rspec (~> 3.0) + +PATH + remote: gems/gitlab-rspec + specs: + gitlab-rspec (0.1.0) + activerecord (>= 6.1, < 8) + activesupport (>= 6.1, < 8) + rspec (~> 3.0) + +PATH + remote: gems/gitlab-safe_request_store + specs: + gitlab-safe_request_store (0.1.0) + rack (~> 2.2.8) + request_store + +PATH + remote: gems/gitlab-schema-validation + specs: + gitlab-schema-validation (0.1.0) + diffy + pg_query + +PATH + remote: gems/gitlab-secret_detection + specs: + gitlab-secret_detection (0.1.0) + parallel (~> 1.22) + re2 (~> 2.4) + toml-rb (~> 2.2) + +PATH + remote: gems/gitlab-utils + specs: + gitlab-utils (0.1.0) + actionview (>= 6.1.7.2) + activesupport (>= 6.1.7.2) + addressable (~> 2.8) + rake (~> 13.0) + +PATH + remote: gems/ipynbdiff + specs: + ipynbdiff (0.4.7) + diffy (~> 3.4) + oj (~> 3.13.16) + +PATH + remote: vendor/gems/attr_encrypted + specs: + attr_encrypted (3.2.4) + encryptor (~> 3.0.0) + +PATH + remote: vendor/gems/bundler-checksum + specs: + bundler-checksum (0.1.0) + bundler + +PATH + remote: vendor/gems/cloud_profiler_agent + specs: + cloud_profiler_agent (0.0.1.pre) + google-cloud-profiler-v2 (~> 0.3) + google-protobuf (~> 3.13) + googleauth (>= 0.14) + stackprof (~> 0.2) + +PATH + remote: vendor/gems/devise-pbkdf2-encryptable + specs: + devise-pbkdf2-encryptable (0.0.0) + devise (~> 4.0) + devise-two-factor (~> 4.1.1) + +PATH + remote: vendor/gems/diff_match_patch + specs: + diff_match_patch (0.1.0) + +PATH + remote: vendor/gems/mail-smtp_pool + specs: + mail-smtp_pool (0.1.0) + connection_pool (~> 2.0) + mail (~> 2.8) + +PATH + remote: vendor/gems/microsoft_graph_mailer + specs: + microsoft_graph_mailer (0.1.0) + mail (~> 2.7) + oauth2 (>= 1.4.4, < 3) + +PATH + remote: vendor/gems/omniauth-azure-oauth2 + specs: + omniauth-azure-oauth2 (0.0.10) + jwt (>= 1.0, < 3.0) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.4) + +PATH + remote: vendor/gems/omniauth-gitlab + specs: + omniauth-gitlab (4.0.0) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.8) + +PATH + remote: vendor/gems/omniauth-salesforce + specs: + omniauth-salesforce (1.0.5) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.0) + +PATH + remote: vendor/gems/omniauth_crowd + specs: + omniauth_crowd (2.4.0) + activesupport + nokogiri (>= 1.4.4) + omniauth (~> 2.0) + +PATH + remote: vendor/gems/sidekiq-7.1.6 + specs: + sidekiq (7.1.6) + concurrent-ruby (< 2) + connection_pool (>= 2.3.0) + rack (>= 2.2.4) + redis-client (>= 0.14.0) + +PATH + remote: vendor/gems/sidekiq-reliable-fetch + specs: + gitlab-sidekiq-fetcher (0.11.0) + json (>= 2.5) + sidekiq (~> 7.0) + +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.5) + rexml + RedCloth (4.3.3) + acme-client (2.0.11) + faraday (>= 1.0, < 3.0.0) + faraday-retry (~> 1.0) + actioncable (7.0.8.1) + actionpack (= 7.0.8.1) + activesupport (= 7.0.8.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (7.0.8.1) + actionpack (= 7.0.8.1) + activejob (= 7.0.8.1) + activerecord (= 7.0.8.1) + activestorage (= 7.0.8.1) + activesupport (= 7.0.8.1) + mail (>= 2.7.1) + net-imap + net-pop + net-smtp + actionmailer (7.0.8.1) + actionpack (= 7.0.8.1) + actionview (= 7.0.8.1) + activejob (= 7.0.8.1) + activesupport (= 7.0.8.1) + mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp + rails-dom-testing (~> 2.0) + actionpack (7.0.8.1) + actionview (= 7.0.8.1) + activesupport (= 7.0.8.1) + rack (~> 2.0, >= 2.2.4) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (7.0.8.1) + actionpack (= 7.0.8.1) + activerecord (= 7.0.8.1) + activestorage (= 7.0.8.1) + activesupport (= 7.0.8.1) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (7.0.8.1) + activesupport (= 7.0.8.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (7.0.8.1) + activesupport (= 7.0.8.1) + globalid (>= 0.3.6) + activemodel (7.0.8.1) + activesupport (= 7.0.8.1) + activerecord (7.0.8.1) + activemodel (= 7.0.8.1) + activesupport (= 7.0.8.1) + activerecord-explain-analyze (0.1.0) + activerecord (>= 4) + pg + activestorage (7.0.8.1) + actionpack (= 7.0.8.1) + activejob (= 7.0.8.1) + activerecord (= 7.0.8.1) + activesupport (= 7.0.8.1) + marcel (~> 1.0) + mini_mime (>= 1.1.0) + activesupport (7.0.8.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + acts-as-taggable-on (10.0.0) + activerecord (>= 6.1, < 7.2) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + aes_key_wrap (1.1.0) + akismet (3.0.0) + aliyun-sdk (0.8.0) + nokogiri (~> 1.6) + rest-client (~> 2.0) + amatch (0.4.1) + mize + tins (~> 1.0) + android_key_attestation (0.3.0) + apollo_upload_server (2.1.5) + actionpack (>= 6.1.6) + graphql (>= 1.8) + app_store_connect (0.29.0) + activesupport (>= 6.0.0) + jwt (>= 1.4, <= 2.5.0) + arr-pm (0.0.12) + asciidoctor (2.0.18) + asciidoctor-include-ext (0.4.0) + asciidoctor (>= 1.5.6, < 3.0.0) + asciidoctor-kroki (0.8.0) + asciidoctor (~> 2.0) + asciidoctor-plantuml (0.0.16) + asciidoctor (>= 2.0.17, < 3.0.0) + ast (2.4.2) + atlassian-jwt (0.2.1) + jwt (~> 2.1) + attr_required (1.0.1) + awesome_print (1.9.2) + awrence (1.2.1) + aws-eventstream (1.3.0) + aws-partitions (1.877.0) + aws-sdk-cloudformation (1.41.0) + aws-sdk-core (~> 3, >= 3.99.0) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.191.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.76.0) + aws-sdk-core (~> 3, >= 3.188.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.144.0) + aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.8) + aws-sigv4 (1.8.0) + aws-eventstream (~> 1, >= 1.0.2) + axe-core-api (4.8.0) + dumb_delegator + virtus + axe-core-rspec (4.8.2) + axe-core-api + dumb_delegator + virtus + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + azure-storage-blob (2.0.3) + azure-storage-common (~> 2.0) + nokogiri (~> 1, >= 1.10.8) + azure-storage-common (2.0.4) + faraday (~> 1.0) + faraday_middleware (~> 1.0, >= 1.0.0.rc1) + net-http-persistent (~> 4.0) + nokogiri (~> 1, >= 1.10.8) + babosa (2.0.0) + backport (1.2.0) + base32 (0.3.2) + base64 (0.2.0) + batch-loader (2.0.1) + bcrypt (3.1.18) + benchmark (0.2.0) + benchmark-ips (2.11.0) + benchmark-malloc (0.2.0) + benchmark-memory (0.2.0) + memory_profiler (~> 1) + benchmark-perf (0.6.0) + benchmark-trend (0.4.0) + better_errors (2.10.1) + erubi (>= 1.0.0) + rack (>= 0.9.0) + rouge (>= 1.0.0) + bindata (2.4.11) + binding_of_caller (1.0.0) + debug_inspector (>= 0.0.1) + bootsnap (1.18.3) + msgpack (~> 1.2) + browser (5.3.1) + builder (3.2.4) + bullet (7.1.2) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) + bundler-audit (0.9.1) + bundler (>= 1.2.0, < 3) + thor (~> 1.0) + byebug (11.1.3) + capybara (3.40.0) + addressable + matrix + mini_mime (>= 0.1.3) + nokogiri (~> 1.11) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + capybara-screenshot (1.0.26) + capybara (>= 1.0, < 4) + launchy + carrierwave (1.3.4) + activemodel (>= 4.0.0) + activesupport (>= 4.0.0) + mime-types (>= 1.16) + ssrf_filter (~> 1.0, < 1.1.0) + cbor (0.5.9.8) + character_set (1.8.0) + charlock_holmes (0.7.7) + chef-config (18.3.0) + addressable + chef-utils (= 18.3.0) + fuzzyurl + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + tomlrb (~> 1.2) + chef-utils (18.3.0) + concurrent-ruby + chunky_png (1.4.0) + circuitbox (2.0.0) + citrus (3.0.2) + claide (1.1.0) + claide-plugins (0.9.2) + cork + nap + open4 (~> 1.3) + coderay (1.1.3) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) + colored2 (3.1.2) + commonmarker (0.23.10) + concurrent-ruby (1.2.2) + connection_pool (2.4.1) + cork (0.3.0) + colored2 (~> 3.1) + cose (1.3.0) + cbor (~> 0.5.9) + openssl-signature_algorithm (~> 1.0) + countries (4.0.1) + i18n_data (~> 0.13.0) + sixarm_ruby_unaccent (~> 1.1) + crack (0.4.3) + safe_yaml (~> 1.0.0) + crass (1.0.6) + creole (0.5.0) + crystalball (0.7.0) + git + css_parser (1.14.0) + addressable + cssbundling-rails (1.4.0) + railties (>= 6.0.0) + cvss-suite (3.0.1) + danger (9.4.2) + claide (~> 1.0) + claide-plugins (>= 0.9.2) + colored2 (~> 3.1) + cork (~> 0.1) + faraday (>= 0.9.0, < 3.0) + faraday-http-cache (~> 2.0) + git (~> 1.13) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) + no_proxy_fix + octokit (>= 4.0) + terminal-table (>= 1, < 4) + danger-gitlab (8.0.0) + danger + gitlab (~> 4.2, >= 4.2.0) + dartsass (1.49.8) + database_cleaner-active_record (2.1.0) + activerecord (>= 5.a) + database_cleaner-core (~> 2.0.0) + database_cleaner-core (2.0.1) + date (3.3.3) + dead_end (3.1.1) + deb_version (1.0.2) + debug_inspector (1.1.0) + deckar01-task_list (2.3.4) + html-pipeline (~> 2.0) + declarative (0.0.20) + declarative_policy (1.1.0) + deprecation_toolkit (1.5.1) + activesupport (>= 4.2) + derailed_benchmarks (2.1.2) + benchmark-ips (~> 2) + dead_end + get_process_mem (~> 0) + heapy (~> 0) + memory_profiler (>= 0, < 2) + mini_histogram (>= 0.3.0) + rack (>= 1) + rack-test + rake (> 10, < 14) + ruby-statistics (>= 2.1) + thor (>= 0.19, < 2) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + devfile (0.0.25.pre.alpha1) + device_detector (1.0.0) + devise (4.9.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + devise-two-factor (4.1.1) + activesupport (~> 7.0) + attr_encrypted (>= 1.3, < 5, != 2) + devise (~> 4.0) + railties (~> 7.0) + rotp (~> 6.0) + diff-lcs (1.5.0) + diffy (3.4.2) + digest-crc (0.6.5) + rake (>= 12.0.0, < 14.0.0) + discordrb-webhooks (3.5.0) + rest-client (>= 2.0.0) + docile (1.4.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + doorkeeper (5.6.6) + railties (>= 5) + doorkeeper-openid_connect (1.8.7) + doorkeeper (>= 5.5, < 5.7) + jwt (>= 2.5) + dotenv (2.7.6) + dry-cli (1.0.0) + dry-core (1.0.1) + concurrent-ruby (~> 1.0) + zeitwerk (~> 2.6) + dry-inflector (1.0.0) + dry-logic (1.5.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-types (1.7.1) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + dumb_delegator (1.0.0) + duo_api (1.3.0) + e2mmap (0.1.0) + ecma-re-validator (0.3.0) + regexp_parser (~> 2.0) + ed25519 (1.3.0) + elasticsearch (7.13.3) + elasticsearch-api (= 7.13.3) + elasticsearch-transport (= 7.13.3) + elasticsearch-api (7.13.3) + multi_json + elasticsearch-model (7.2.0) + activesupport (> 3) + elasticsearch (~> 7) + hashie + elasticsearch-rails (7.2.1) + elasticsearch-transport (7.13.3) + faraday (~> 1) + multi_json + email_reply_trimmer (0.1.6) + email_spec (2.2.0) + htmlentities (~> 4.3.3) + launchy (~> 2.1) + mail (~> 2.7) + encryptor (3.0.0) + erubi (1.12.0) + escape_utils (1.3.0) + et-orbi (1.2.7) + tzinfo + ethon (0.16.0) + ffi (>= 1.15.0) + excon (0.99.0) + execjs (2.8.1) + expgen (0.1.1) + parslet + expression_parser (0.9.0) + extended-markdown-filter (0.7.0) + html-pipeline (~> 2.9) + factory_bot (6.4.5) + activesupport (>= 5.0.0) + factory_bot_rails (6.4.3) + factory_bot (~> 6.4) + railties (>= 5.0.0) + faraday (1.10.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-http-cache (2.5.0) + faraday (>= 0.8) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + faraday_middleware-aws-sigv4 (0.3.0) + aws-sigv4 (~> 1.0) + faraday (>= 0.15) + fast_blank (1.0.1) + fast_gettext (2.3.0) + ffaker (2.23.0) + ffi (1.15.5) + ffi-compiler (1.0.1) + ffi (>= 1.0.0) + rake + ffi-yajl (2.6.0) + libyajl2 (>= 1.2) + find_a_port (1.0.1) + flipper (0.26.2) + concurrent-ruby (< 2) + flipper-active_record (0.26.2) + activerecord (>= 4.2, < 8) + flipper (~> 0.26.2) + flipper-active_support_cache_store (0.26.2) + activesupport (>= 4.2, < 8) + flipper (~> 0.26.2) + fog-aliyun (0.4.0) + addressable (~> 2.8.0) + aliyun-sdk (~> 0.8.0) + fog-core + fog-json + ipaddress (~> 0.8) + xml-simple (~> 1.1) + fog-aws (3.18.0) + fog-core (~> 2.1) + fog-json (~> 1.1) + fog-xml (~> 0.1) + fog-core (2.1.0) + builder + excon (~> 0.58) + formatador (~> 0.2) + mime-types + fog-google (1.19.0) + fog-core (< 2.3) + fog-json (~> 1.2) + fog-xml (~> 0.1.0) + google-apis-compute_v1 (~> 0.14) + google-apis-dns_v1 (~> 0.12) + google-apis-iamcredentials_v1 (~> 0.6) + google-apis-monitoring_v3 (~> 0.12) + google-apis-pubsub_v1 (~> 0.7) + google-apis-sqladmin_v1beta4 (~> 0.13) + google-apis-storage_v1 (~> 0.6) + google-cloud-env (~> 1.2) + fog-json (1.2.0) + fog-core + multi_json (~> 1.10) + fog-local (0.8.0) + fog-core (>= 1.27, < 3.0) + fog-xml (0.1.3) + fog-core + nokogiri (>= 1.5.11, < 2.0.0) + formatador (0.2.5) + forwardable (1.3.3) + fugit (1.8.1) + et-orbi (~> 1, >= 1.2.7) + raabro (~> 1.4) + fuubar (2.2.0) + rspec-core (~> 3.0) + ruby-progressbar (~> 1.4) + fuzzyurl (0.9.0) + gapic-common (0.20.0) + faraday (>= 1.9, < 3.a) + faraday-retry (>= 1.0, < 3.a) + google-protobuf (~> 3.14) + googleapis-common-protos (>= 1.3.12, < 2.a) + googleapis-common-protos-types (>= 1.3.1, < 2.a) + googleauth (~> 1.0) + grpc (~> 1.36) + gemoji (3.0.1) + get_process_mem (0.2.7) + ffi (~> 1.0) + gettext (3.4.9) + erubi + locale (>= 2.0.5) + prime + racc + text (>= 1.3.0) + gettext_i18n_rails (1.11.0) + fast_gettext (>= 0.9.0) + git (1.18.0) + addressable (~> 2.8) + rchardet (~> 1.8) + gitaly (16.10.0.pre.rc1) + grpc (~> 1.0) + gitlab (4.19.0) + httparty (~> 0.20) + terminal-table (>= 1.5.1) + gitlab-chronic (0.10.5) + numerizer (~> 0.2) + gitlab-dangerfiles (4.7.0) + danger (>= 9.3.0) + danger-gitlab (>= 8.0.0) + rake (~> 13.0) + gitlab-experiment (0.9.1) + activesupport (>= 3.0) + request_store (>= 1.0) + gitlab-fog-azure-rm (1.8.0) + azure-storage-blob (~> 2.0) + azure-storage-common (~> 2.0) + fog-core (= 2.1.0) + fog-json (~> 1.2.0) + mime-types + gitlab-glfm-markdown (0.0.13) + rb_sys (~> 0.9.86) + gitlab-labkit (0.35.1) + actionpack (>= 5.0.0, < 8.0.0) + activesupport (>= 5.0.0, < 8.0.0) + grpc (>= 1.37) + jaeger-client (~> 1.1.0) + opentracing (~> 0.4) + pg_query (>= 4.2.3, < 6.0) + redis (> 3.0.0, < 6.0.0) + gitlab-license (2.4.0) + gitlab-mail_room (0.0.24) + jwt (>= 2.0) + net-imap (>= 0.2.1) + oauth2 (>= 1.4.4, < 3) + redis (>= 4, < 6) + redis-namespace (>= 1.8.2) + gitlab-markup (1.9.0) + gitlab-net-dns (0.9.2) + gitlab-sdk (0.3.0) + activesupport (>= 5.2.0) + rake (~> 13.0) + snowplow-tracker (~> 0.8.0) + gitlab-styles (11.0.0) + rubocop (~> 1.57.1) + rubocop-graphql (~> 0.18) + rubocop-performance (~> 1.15) + rubocop-rails (~> 2.17) + rubocop-rspec (~> 2.22) + gitlab_chronic_duration (0.12.0) + numerizer (~> 0.2) + gitlab_omniauth-ldap (2.2.0) + net-ldap (~> 0.16) + omniauth (>= 1.3, < 3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) + gitlab_quality-test_tooling (1.17.0) + activesupport (>= 6.1, < 7.1) + amatch (~> 0.4.1) + gitlab (~> 4.19) + http (~> 5.0) + nokogiri (~> 1.10) + parallel (>= 1, < 2) + rainbow (>= 3, < 4) + rspec-parameterized (~> 1.0.0) + table_print (= 1.5.7) + zeitwerk (>= 2, < 3) + globalid (1.1.0) + activesupport (>= 5.0) + gon (6.4.0) + actionpack (>= 3.0.20) + i18n (>= 0.7) + multi_json + request_store (>= 1.0) + google-apis-androidpublisher_v3 (0.34.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-cloudbilling_v1 (0.21.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-cloudresourcemanager_v1 (0.31.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-compute_v1 (0.57.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-container_v1 (0.43.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-container_v1beta1 (0.43.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-core (0.11.2) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + webrick + google-apis-dns_v1 (0.28.0) + google-apis-core (>= 0.9.0, < 2.a) + google-apis-iam_v1 (0.36.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-iamcredentials_v1 (0.15.0) + google-apis-core (>= 0.9.0, < 2.a) + google-apis-monitoring_v3 (0.37.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-pubsub_v1 (0.30.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-serviceusage_v1 (0.28.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-sqladmin_v1beta4 (0.41.0) + google-apis-core (>= 0.9.1, < 2.a) + google-apis-storage_v1 (0.29.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-artifact_registry-v1 (0.11.0) + gapic-common (>= 0.20.0, < 2.a) + google-cloud-errors (~> 1.0) + google-cloud-location (>= 0.4, < 2.a) + grpc-google-iam-v1 (~> 1.1) + google-cloud-common (1.1.0) + google-protobuf (~> 3.14) + googleapis-common-protos-types (~> 1.2) + google-cloud-compute-v1 (2.6.0) + gapic-common (>= 0.20.0, < 2.a) + google-cloud-common (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-core (1.6.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.3.0) + google-cloud-location (0.6.0) + gapic-common (>= 0.20.0, < 2.a) + google-cloud-errors (~> 1.0) + google-cloud-profiler-v2 (0.4.0) + gapic-common (>= 0.18.0, < 2.a) + google-cloud-errors (~> 1.0) + google-cloud-storage (1.45.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.29.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + google-protobuf (3.25.3) + googleapis-common-protos (1.4.0) + google-protobuf (~> 3.14) + googleapis-common-protos-types (~> 1.2) + grpc (~> 1.27) + googleapis-common-protos-types (1.5.0) + google-protobuf (~> 3.14) + googleauth (1.8.1) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + gpgme (2.0.23) + mini_portile2 (~> 2.7) + grape (2.0.0) + activesupport (>= 5) + builder + dry-types (>= 1.1) + mustermann-grape (~> 1.0.0) + rack (>= 1.3.0) + rack-accept + grape-entity (0.10.2) + activesupport (>= 3.0.0) + multi_json (>= 1.3.2) + grape-path-helpers (2.0.1) + activesupport + grape (~> 2.0) + rake (> 12) + ruby2_keywords (~> 0.0.2) + grape-swagger (2.0.1) + grape (>= 1.7, < 3.0) + rack-test (~> 2) + grape-swagger-entity (0.5.1) + grape-entity (>= 0.6.0) + grape-swagger (>= 1.2.0) + grape_logging (1.8.4) + grape + rack + graphiql-rails (1.8.0) + railties + sprockets-rails + graphlient (0.6.0) + faraday (>= 1.0) + faraday_middleware + graphql-client + graphlyte (1.0.0) + graphql (2.2.5) + racc (~> 1.4) + graphql-client (0.19.0) + activesupport (>= 3.0) + graphql + graphql-docs (4.0.0) + commonmarker (~> 0.23, >= 0.23.6) + dartsass (~> 1.49) + escape_utils (~> 1.2) + extended-markdown-filter (~> 0.4) + gemoji (~> 3.0) + graphql (~> 2.0) + html-pipeline (~> 2.14, >= 2.14.3) + grpc (1.60.0) + google-protobuf (~> 3.25) + googleapis-common-protos-types (~> 1.0) + grpc-google-iam-v1 (1.5.0) + google-protobuf (~> 3.18) + googleapis-common-protos (~> 1.4) + grpc (~> 1.41) + gssapi (1.3.1) + ffi (>= 1.0.1) + guard (2.16.2) + formatador (>= 0.2.4) + listen (>= 2.7, < 4.0) + lumberjack (>= 1.0.12, < 2.0) + nenv (~> 0.1) + notiffany (~> 0.0) + pry (>= 0.9.12) + shellany (~> 0.0) + thor (>= 0.18.1) + guard-compat (1.2.1) + guard-rspec (4.7.3) + guard (~> 2.1) + guard-compat (~> 1.1) + rspec (>= 2.99.0, < 4.0) + haml (5.2.2) + temple (>= 0.8.0) + tilt + haml_lint (0.53.0) + haml (>= 5.0) + parallel (~> 1.10) + rainbow + rubocop (>= 1.0) + sysexits (~> 1.1) + hamlit (2.15.0) + temple (>= 0.8.2) + thor + tilt + hana (1.3.7) + hashdiff (1.0.1) + hashie (5.0.0) + health_check (3.1.0) + railties (>= 5.0) + heapy (0.2.0) + thor + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + html2text (0.2.0) + nokogiri (~> 1.6) + htmlbeautifier (1.4.2) + htmlentities (4.3.4) + http (5.1.1) + addressable (~> 2.8) + http-cookie (~> 1.0) + http-form_data (~> 2.2) + llhttp-ffi (~> 0.4.0) + http-accept (1.7.0) + http-cookie (1.0.5) + domain_name (~> 0.5) + http-form_data (2.3.0) + httparty (0.21.0) + mini_mime (>= 1.0.0) + multi_xml (>= 0.5.2) + httpclient (2.8.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + i18n_data (0.13.1) + icalendar (2.8.0) + ice_cube (~> 0.16) + ice_cube (0.16.4) + ice_nine (0.11.2) + imagen (0.1.8) + parser (>= 2.5, != 2.5.1.1) + influxdb-client (2.9.0) + invisible_captcha (2.1.0) + rails (>= 5.2) + ipaddr (1.2.5) + ipaddress (0.8.3) + jaeger-client (1.1.0) + opentracing (~> 0.3) + thrift + jaro_winkler (1.5.6) + jira-ruby (2.3.0) + activesupport + atlassian-jwt + multipart-post + oauth (~> 0.5, >= 0.5.0) + jmespath (1.6.2) + js_regex (3.8.0) + character_set (~> 1.4) + regexp_parser (~> 2.5) + regexp_property_values (~> 1.0) + json (2.6.3) + json-jwt (1.15.3) + activesupport (>= 4.2) + aes_key_wrap + bindata + httpclient + json_schemer (0.2.18) + ecma-re-validator (~> 0.3) + hana (~> 1.3) + regexp_parser (~> 2.0) + uri_template (~> 0.7) + jsonb_accessor (1.3.10) + activerecord (>= 5.0) + activesupport (>= 5.0) + pg (>= 0.18.1) + jsonpath (1.1.2) + multi_json + jwt (2.5.0) + kaminari (1.2.2) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) + actionview + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) + activerecord + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) + kas-grpc (0.4.0) + grpc (~> 1.0) + knapsack (1.22.0) + rake + kramdown (2.3.2) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + kubeclient (4.11.0) + http (>= 3.0, < 6.0) + jsonpath (~> 1.0) + recursive-open-struct (~> 1.1, >= 1.1.1) + rest-client (~> 2.0) + language_server-protocol (3.17.0.3) + launchy (2.5.0) + addressable (~> 2.7) + lefthook (1.5.6) + letter_opener (1.7.0) + launchy (~> 2.2) + letter_opener_web (2.0.0) + actionmailer (>= 5.2) + letter_opener (~> 1.7) + railties (>= 5.2) + rexml + libyajl2 (2.1.0) + license_finder (7.0.1) + bundler + rubyzip (>= 1, < 3) + thor (~> 1.2) + tomlrb (>= 1.3, < 2.1) + with_env (= 1.1.0) + xml-simple (~> 1.1.9) + licensee (9.16.1) + dotenv (~> 2.0) + octokit (>= 4.20, < 9.0) + reverse_markdown (>= 1, < 3) + rugged (>= 0.24, < 2.0) + thor (>= 0.19, < 2.0) + listen (3.7.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + llhttp-ffi (0.4.0) + ffi-compiler (~> 1.0) + rake (~> 13.0) + locale (2.1.3) + lockbox (1.3.0) + lograge (0.11.2) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) + loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + lookbook (2.2.0) + activemodel + css_parser + htmlbeautifier (~> 1.3) + htmlentities (~> 4.3.4) + marcel (~> 1.0) + railties (>= 5.0) + redcarpet (~> 3.5) + rouge (>= 3.26, < 5.0) + view_component (>= 2.0) + yard (~> 0.9.25) + zeitwerk (~> 2.5) + lru_redux (1.1.0) + lumberjack (1.2.7) + mail (2.8.1) + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.0.2) + marginalia (1.11.1) + actionpack (>= 5.2) + activerecord (>= 5.2) + matrix (0.4.2) + memory_profiler (1.0.1) + method_source (1.0.0) + mime-types (3.5.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2023.1003) + mini_histogram (0.3.1) + mini_magick (4.10.1) + mini_mime (1.1.2) + mini_portile2 (2.8.5) + minitest (5.11.3) + mixlib-cli (2.1.8) + mixlib-config (3.0.27) + tomlrb + mixlib-log (3.0.9) + mixlib-shellout (3.2.7) + chef-utils + mize (0.4.1) + protocol (~> 2.0) + msgpack (1.5.4) + multi_json (1.14.1) + multi_xml (0.6.0) + multipart-post (2.2.3) + murmurhash3 (0.1.7) + mustermann (3.0.0) + ruby2_keywords (~> 0.0.1) + mustermann-grape (1.0.2) + mustermann (>= 1.0.0) + nap (1.1.0) + neighbor (0.2.3) + activerecord (>= 5.2) + nenv (0.3.0) + net-http (0.1.1) + net-protocol + uri + net-http-persistent (4.0.1) + connection_pool (~> 2.2) + net-imap (0.3.4) + date + net-protocol + net-ldap (0.17.1) + net-ntp (2.1.3) + net-pop (0.1.2) + net-protocol + net-protocol (0.1.3) + timeout + net-scp (4.0.0) + net-ssh (>= 2.6.5, < 8.0.0) + net-smtp (0.3.3) + net-protocol + net-ssh (7.2.0) + netrc (0.11.0) + nio4r (2.7.0) + no_proxy_fix (0.1.2) + nokogiri (1.16.0) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + notiffany (0.1.3) + nenv (~> 0.1) + shellany (~> 0.0) + numerizer (0.2.0) + oauth (0.5.6) + oauth2 (2.0.9) + faraday (>= 0.17.3, < 3.0) + jwt (>= 1.0, < 3.0) + multi_xml (~> 0.5) + rack (>= 1.2, < 4) + snaky_hash (~> 2.0) + version_gem (~> 1.1) + octokit (8.0.0) + faraday (>= 1, < 3) + sawyer (~> 0.9) + ohai (18.1.3) + chef-config (>= 14.12, < 19) + chef-utils (>= 16.0, < 19) + ffi (~> 1.9) + ffi-yajl (~> 2.2) + ipaddress + mixlib-cli (>= 1.7.0) + mixlib-config (>= 2.0, < 4.0) + mixlib-log (>= 2.0.1, < 4.0) + mixlib-shellout (~> 3.2, >= 3.2.5) + plist (~> 3.1) + train-core + wmi-lite (~> 1.0) + oj (3.13.23) + oj-introspect (0.7.2) + oj (>= 3.13.23) + omniauth (2.1.0) + hashie (>= 3.4.6) + rack (>= 2.2.3) + rack-protection + omniauth-alicloud (3.0.0) + omniauth-oauth2 (~> 1.8) + omniauth-atlassian-oauth2 (0.2.0) + omniauth (>= 1.1.1) + omniauth-oauth2 (>= 1.5) + omniauth-auth0 (3.1.0) + omniauth (~> 2) + omniauth-oauth2 (~> 1) + omniauth-azure-activedirectory-v2 (2.0.0) + omniauth-oauth2 (~> 1.8) + omniauth-dingtalk-oauth2 (1.0.1) + omniauth-oauth2 (~> 1.7) + omniauth-facebook (4.0.0) + omniauth-oauth2 (~> 1.2) + omniauth-github (2.0.1) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.8) + omniauth-google-oauth2 (1.1.1) + jwt (>= 2.0) + oauth2 (~> 2.0.6) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.8.0) + omniauth-oauth (1.2.0) + oauth + omniauth (>= 1.0, < 3) + omniauth-oauth2 (1.8.0) + oauth2 (>= 1.4, < 3) + omniauth (~> 2.0) + omniauth-oauth2-generic (0.2.8) + omniauth-oauth2 (~> 1.0) + rake + omniauth-saml (2.1.0) + omniauth (~> 2.0) + ruby-saml (~> 1.12) + omniauth-shibboleth-redux (2.0.0) + omniauth (>= 2.0.0) + omniauth-twitter (1.4.0) + omniauth-oauth (~> 1.1) + rack + omniauth_openid_connect (0.6.1) + omniauth (>= 1.9, < 3) + openid_connect (~> 1.1) + open4 (1.3.4) + openid_connect (1.3.0) + activemodel + attr_required (>= 1.0.0) + json-jwt (>= 1.5.0) + rack-oauth2 (>= 1.6.1) + swd (>= 1.0.0) + tzinfo + validate_email + validate_url + webfinger (>= 1.0.1) + openssl (3.1.0) + openssl-signature_algorithm (1.3.0) + openssl (> 2.0) + opentracing (0.5.0) + optimist (3.0.1) + org-ruby (0.9.12) + rubypants (~> 0.2) + orm_adapter (0.5.0) + os (1.1.4) + pact (1.64.0) + pact-mock_service (~> 3.0, >= 3.3.1) + pact-support (~> 1.16, >= 1.16.9) + rack-test (>= 0.6.3, < 3.0.0) + rspec (~> 3.0) + term-ansicolor (~> 1.7) + thor (>= 0.20, < 2.0) + webrick (~> 1.8) + pact-mock_service (3.11.2) + find_a_port (~> 1.0.1) + json + pact-support (~> 1.16, >= 1.16.4) + rack (~> 2.0) + rspec (>= 2.14) + thor (>= 0.19, < 2.0) + webrick (~> 1.8) + pact-support (1.20.0) + awesome_print (~> 1.9) + diff-lcs (~> 1.5) + expgen (~> 0.1) + rainbow (~> 3.1.1) + parallel (1.22.1) + parser (3.3.0.2) + ast (~> 2.4.1) + racc + parslet (1.8.2) + pastel (0.8.0) + tty-color (~> 0.5) + peek (1.1.0) + railties (>= 4.0.0) + pg (1.5.6) + pg_query (5.1.0) + google-protobuf (>= 3.22.3) + plist (3.7.0) + png_quantizator (0.2.1) + premailer (1.16.0) + addressable + css_parser (>= 1.6.0) + htmlentities (>= 4.0.0) + premailer-rails (1.10.3) + actionmailer (>= 3) + premailer (~> 1.7, >= 1.7.9) + prime (0.1.2) + forwardable + singleton + prism (0.24.0) + proc_to_ast (0.1.0) + coderay + parser + unparser + prometheus-client-mmap (1.1.1) + rb_sys (~> 0.9.86) + protocol (2.0.0) + ruby_parser (~> 3.0) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.10.1) + byebug (~> 11.0) + pry (>= 0.13, < 0.15) + pry-rails (0.3.9) + pry (>= 0.10.4) + pry-shell (0.6.4) + pry (>= 0.13.0) + tty-markdown + tty-prompt + public_suffix (5.0.0) + puma (6.4.0) + nio4r (~> 2.0) + pyu-ruby-sasl (0.0.3.3) + raabro (1.4.0) + racc (1.6.2) + rack (2.2.8.1) + rack-accept (0.4.5) + rack (>= 0.4) + rack-attack (6.7.0) + rack (>= 1.0, < 4) + rack-cors (2.0.1) + rack (>= 2.0.0) + rack-oauth2 (1.21.3) + activesupport + attr_required + httpclient + json-jwt (>= 1.11.0) + rack (>= 2.1.0) + rack-protection (2.2.2) + rack + rack-proxy (0.7.7) + rack + rack-session (1.0.2) + rack (< 3) + rack-test (2.1.0) + rack (>= 1.3) + rack-timeout (0.6.3) + rails (7.0.8.1) + actioncable (= 7.0.8.1) + actionmailbox (= 7.0.8.1) + actionmailer (= 7.0.8.1) + actionpack (= 7.0.8.1) + actiontext (= 7.0.8.1) + actionview (= 7.0.8.1) + activejob (= 7.0.8.1) + activemodel (= 7.0.8.1) + activerecord (= 7.0.8.1) + activestorage (= 7.0.8.1) + activesupport (= 7.0.8.1) + bundler (>= 1.15.0) + railties (= 7.0.8.1) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.6.0) + loofah (~> 2.21) + nokogiri (~> 1.14) + rails-i18n (7.0.3) + i18n (>= 0.7, < 2) + railties (>= 6.0.0, < 8) + railties (7.0.8.1) + actionpack (= 7.0.8.1) + activesupport (= 7.0.8.1) + method_source + rake (>= 12.2) + thor (~> 1.0) + zeitwerk (~> 2.5) + rainbow (3.1.1) + rake (13.0.6) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rb_sys (0.9.86) + rbtrace (0.5.1) + ffi (>= 1.0.6) + msgpack (>= 0.4.3) + optimist (>= 3.0.0) + rchardet (1.8.0) + re2 (2.7.0) + mini_portile2 (~> 2.8.5) + recaptcha (5.12.3) + json + recursive-open-struct (1.1.3) + redcarpet (3.6.0) + redis (5.0.8) + redis-client (>= 0.17.0) + redis-actionpack (5.4.0) + actionpack (>= 5, < 8) + redis-rack (>= 2.1.0, < 4) + redis-store (>= 1.1.0, < 2) + redis-client (0.21.1) + connection_pool + redis-cluster-client (0.7.5) + redis-client (~> 0.12) + redis-clustering (5.0.8) + redis (= 5.0.8) + redis-cluster-client (>= 0.7.0) + redis-namespace (1.10.0) + redis (>= 4) + redis-rack (3.0.0) + rack-session (>= 0.2.0) + redis-store (>= 1.2, < 2) + redis-store (1.10.0) + redis (>= 4, < 6) + regexp_parser (2.6.0) + regexp_property_values (1.0.0) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + request_store (1.5.1) + rack (>= 1.4) + responders (3.0.1) + actionpack (>= 5.0) + railties (>= 5.0) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + retriable (3.1.2) + reverse_markdown (1.4.0) + nokogiri + rexml (3.2.6) + rinku (2.0.0) + rotp (6.3.0) + rouge (4.2.0) + rqrcode (2.2.0) + chunky_png (~> 1.0) + rqrcode_core (~> 1.0) + rqrcode_core (1.2.0) + rspec (3.12.0) + rspec-core (~> 3.12.0) + rspec-expectations (~> 3.12.0) + rspec-mocks (~> 3.12.0) + rspec-benchmark (0.6.0) + benchmark-malloc (~> 0.2) + benchmark-perf (~> 0.6) + benchmark-trend (~> 0.4) + rspec (>= 3.0) + rspec-core (3.12.2) + rspec-support (~> 3.12.0) + rspec-expectations (3.12.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-mocks (3.12.6) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.12.0) + rspec-parameterized (1.0.0) + rspec-parameterized-core (< 2) + rspec-parameterized-table_syntax (< 2) + rspec-parameterized-core (1.0.0) + parser + proc_to_ast + rspec (>= 2.13, < 4) + unparser + rspec-parameterized-table_syntax (1.0.0) + binding_of_caller + rspec-parameterized-core (< 2) + rspec-rails (6.1.1) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.12) + rspec-expectations (~> 3.12) + rspec-mocks (~> 3.12) + rspec-support (~> 3.12) + rspec-retry (0.6.2) + rspec-core (> 3.3) + rspec-support (3.12.0) + rspec_junit_formatter (0.6.0) + rspec-core (>= 2, < 4, != 2.12.0) + rspec_profiling (0.0.8) + activerecord + get_process_mem + rails + rubocop (1.57.2) + json (~> 2.3) + language_server-protocol (>= 3.17.0) + parallel (~> 1.10) + parser (>= 3.2.2.4) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.29.0) + parser (>= 3.2.1.0) + rubocop-capybara (2.19.0) + rubocop (~> 1.41) + rubocop-factory_bot (2.24.0) + rubocop (~> 1.33) + rubocop-graphql (0.19.0) + rubocop (>= 0.87, < 2) + rubocop-performance (1.19.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) + rubocop-rails (2.22.1) + activesupport (>= 4.2.0) + rack (>= 1.1) + rubocop (>= 1.33.0, < 2.0) + rubocop-rspec (2.25.0) + rubocop (~> 1.40) + rubocop-capybara (~> 2.17) + rubocop-factory_bot (~> 2.22) + ruby-fogbugz (0.3.0) + crack (~> 0.4) + multipart-post (~> 2.0) + ruby-lsp (0.14.4) + language_server-protocol (~> 3.17.0) + prism (>= 0.22.0, < 0.25) + sorbet-runtime (>= 0.5.10782) + ruby-lsp-rails (0.3.1) + actionpack (>= 6.0) + activerecord (>= 6.0) + railties (>= 6.0) + ruby-lsp (>= 0.14.2, < 0.15.0) + sorbet-runtime (>= 0.5.9897) + ruby-lsp-rspec (0.1.10) + ruby-lsp (~> 0.14.0) + ruby-magic (0.6.0) + mini_portile2 (~> 2.8) + ruby-openai (3.7.0) + httparty (>= 0.18.1) + ruby-progressbar (1.11.0) + ruby-saml (1.15.0) + nokogiri (>= 1.13.10) + rexml + ruby-statistics (3.0.0) + ruby2_keywords (0.0.5) + ruby_parser (3.21.0) + racc (~> 1.5) + sexp_processor (~> 4.16) + rubyntlm (0.6.3) + rubypants (0.2.0) + rubyzip (2.3.2) + rugged (1.6.3) + safe_yaml (1.0.4) + safety_net_attestation (0.4.0) + jwt (~> 2.0) + sanitize (6.0.2) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + sd_notify (0.1.1) + seed-fu (2.3.7) + activerecord (>= 3.1) + activesupport (>= 3.1) + selenium-webdriver (4.18.1) + base64 (~> 0.2) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) + semver_dialects (2.0.0) + deb_version (~> 1.0.1) + pastel (~> 0.8.0) + thor (~> 1.3) + tty-command (~> 0.10.1) + sentry-rails (5.10.0) + railties (>= 5.0) + sentry-ruby (~> 5.10.0) + sentry-raven (3.1.2) + faraday (>= 1.0) + sentry-ruby (5.10.0) + concurrent-ruby (~> 1.0, >= 1.0.2) + sentry-sidekiq (5.10.0) + sentry-ruby (~> 5.10.0) + sidekiq (>= 3.0) + sexp_processor (4.17.1) + shellany (0.0.1) + shoulda-matchers (5.1.0) + activesupport (>= 5.2.0) + sidekiq-cron (1.12.0) + fugit (~> 1.8) + globalid (>= 1.0.1) + sidekiq (>= 6) + sigdump (0.2.4) + signet (0.18.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simple_po_parser (1.1.6) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-cobertura (2.1.0) + rexml + simplecov (~> 0.19) + simplecov-html (0.12.3) + simplecov-lcov (0.8.0) + simplecov_json_formatter (0.1.4) + singleton (0.1.1) + sixarm_ruby_unaccent (1.2.0) + slack-messenger (2.3.4) + snaky_hash (2.0.0) + hashie + version_gem (~> 1.1) + snowplow-tracker (0.8.0) + solargraph (0.47.2) + backport (~> 1.2) + benchmark + bundler (>= 1.17.2) + diff-lcs (~> 1.4) + e2mmap + jaro_winkler (~> 1.5) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.1) + parser (~> 3.0) + reverse_markdown (>= 1.0.5, < 3) + rubocop (>= 0.52) + thor (~> 1.0) + tilt (~> 2.0) + yard (~> 0.9, >= 0.9.24) + sorbet-runtime (0.5.11266) + spamcheck (1.3.0) + grpc (~> 1.0) + spring (4.1.0) + spring-commands-rspec (1.0.4) + spring (>= 0.9.1) + sprite-factory (1.7.1) + sprockets (3.7.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + sprockets (>= 3.0.0) + ssh_data (1.3.0) + ssrf_filter (1.0.8) + stackprof (0.2.25) + state_machines (0.5.0) + state_machines-activemodel (0.8.0) + activemodel (>= 5.1) + state_machines (>= 0.5.0) + state_machines-activerecord (0.8.0) + activerecord (>= 5.1) + state_machines-activemodel (>= 0.8.0) + strings (0.2.1) + strings-ansi (~> 0.2) + unicode-display_width (>= 1.5, < 3.0) + unicode_utils (~> 1.4) + strings-ansi (0.2.0) + swd (1.3.0) + activesupport (>= 3) + attr_required (>= 0.0.5) + httpclient (>= 2.4) + sync (0.5.0) + sys-filesystem (1.4.3) + ffi (~> 1.1) + sysexits (1.2.0) + table_print (1.5.7) + tanuki_emoji (0.9.0) + telesign (2.2.4) + net-http-persistent (>= 3.0.0, < 5.0) + telesignenterprise (2.2.2) + telesign (~> 2.2.3) + temple (0.8.2) + term-ansicolor (1.7.1) + tins (~> 1.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + terser (1.0.2) + execjs (>= 0.3.0, < 3) + test-prof (1.3.1) + test_file_finder (0.2.1) + faraday (>= 1.0, < 3.0, != 2.0.0) + text (1.3.1) + thor (1.3.1) + thread_safe (0.3.6) + thrift (0.16.0) + tilt (2.0.11) + timeout (0.3.2) + timfel-krb5-auth (0.8.3) + tins (1.31.1) + sync + toml-rb (2.2.0) + citrus (~> 3.0, > 3.0) + tomlrb (1.3.0) + tpm-key_attestation (0.12.0) + bindata (~> 2.4) + openssl (> 2.0) + openssl-signature_algorithm (~> 1.0) + trailblazer-option (0.1.2) + train-core (3.10.8) + addressable (~> 2.5) + ffi (!= 1.13.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) + net-scp (>= 1.2, < 5.0) + net-ssh (>= 2.9, < 8.0) + truncato (0.7.12) + htmlentities (~> 4.3.1) + nokogiri (>= 1.7.0, <= 2.0) + tty-color (0.6.0) + tty-command (0.10.1) + pastel (~> 0.8) + tty-cursor (0.7.1) + tty-markdown (0.7.2) + kramdown (>= 1.16.2, < 3.0) + pastel (~> 0.8) + rouge (>= 3.14, < 5.0) + strings (~> 0.2.0) + tty-color (~> 0.5) + tty-screen (~> 0.8) + tty-prompt (0.23.1) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uber (0.1.0) + undercover (0.4.6) + imagen (>= 0.1.8) + rainbow (>= 2.1, < 4.0) + rugged (>= 0.27, < 1.7) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (2.4.2) + unicode_utils (1.4.0) + uniform_notifier (1.16.0) + unleash (3.2.2) + murmurhash3 (~> 0.1.6) + unparser (0.6.7) + diff-lcs (~> 1.3) + parser (>= 3.2.0) + uri (0.13.0) + uri_template (0.7.0) + valid_email (0.1.3) + activemodel + mail (>= 2.6.1) + validate_email (0.1.6) + activemodel (>= 3.0) + mail (>= 2.2.5) + validate_url (1.0.15) + activemodel (>= 3.0.0) + public_suffix + validates_hostname (1.0.13) + activerecord (>= 3.0) + activesupport (>= 3.0) + version_gem (1.1.0) + version_sorter (2.3.0) + view_component (3.11.0) + activesupport (>= 5.2.0, < 8.0) + concurrent-ruby (~> 1.0) + method_source (~> 1.0) + virtus (2.0.0) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + vite_rails (3.0.17) + railties (>= 5.1, < 8) + vite_ruby (~> 3.0, >= 3.2.2) + vite_ruby (3.5.0) + dry-cli (>= 0.7, < 2) + rack-proxy (~> 0.6, >= 0.6.1) + zeitwerk (~> 2.2) + vmstat (2.3.0) + warden (1.2.9) + rack (>= 2.0.9) + warning (1.3.0) + webauthn (3.0.0) + android_key_attestation (~> 0.3.0) + awrence (~> 1.1) + bindata (~> 2.4) + cbor (~> 0.5.9) + cose (~> 1.1) + openssl (>= 2.2) + safety_net_attestation (~> 0.4.0) + tpm-key_attestation (~> 0.12.0) + webfinger (1.2.0) + activesupport + httpclient (>= 2.4) + webmock (3.22.0) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + webrick (1.8.1) + websocket (1.2.10) + websocket-driver (0.7.6) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + wikicloth (0.8.1) + builder + expression_parser + rinku + wisper (2.0.1) + with_env (1.1.0) + wmi-lite (1.0.7) + xml-simple (1.1.9) + rexml + xpath (3.2.0) + nokogiri (~> 1.8) + yajl-ruby (1.4.3) + yard (0.9.26) + zeitwerk (2.6.7) + +PLATFORMS + ruby + +DEPENDENCIES + CFPropertyList (~> 3.0.0) + RedCloth (~> 4.3.3) + acme-client (~> 2.0) + activerecord-explain-analyze (~> 0.1) + activerecord-gitlab! + acts-as-taggable-on (~> 10.0) + addressable (~> 2.8) + akismet (~> 3.0) + apollo_upload_server (~> 2.1.5) + app_store_connect + arr-pm (~> 0.0.12) + asciidoctor (~> 2.0.18) + asciidoctor-include-ext (~> 0.4.0) + asciidoctor-kroki (~> 0.8.0) + asciidoctor-plantuml (~> 0.0.16) + atlassian-jwt (~> 0.2.1) + attr_encrypted (~> 3.2.4)! + awesome_print + aws-sdk-cloudformation (~> 1) + aws-sdk-core (~> 3.191.3) + aws-sdk-s3 (~> 1.144.0) + axe-core-rspec (~> 4.8.2) + babosa (~> 2.0) + base32 (~> 0.3.0) + batch-loader (~> 2.0.1) + bcrypt (~> 3.1, >= 3.1.14) + benchmark-ips (~> 2.11.0) + benchmark-memory (~> 0.1) + better_errors (~> 2.10.1) + bootsnap (~> 1.18.3) + browser (~> 5.3.1) + bullet (~> 7.1.2) + bundler-audit (~> 0.9.1) + bundler-checksum (~> 0.1.0)! + capybara (~> 3.40) + capybara-screenshot (~> 1.0.26) + carrierwave (~> 1.3) + charlock_holmes (~> 0.7.7) + circuitbox (= 2.0.0) + click_house-client! + cloud_profiler_agent (~> 0.0.0)! + commonmarker (~> 0.23.10) + concurrent-ruby (~> 1.1) + connection_pool (~> 2.4) + countries (~> 4.0.0) + creole (~> 0.5.0) + crystalball (~> 0.7.0) + cssbundling-rails (= 1.4.0) + csv_builder! + cvss-suite (~> 3.0.1) + database_cleaner-active_record (~> 2.1.0) + deckar01-task_list (= 2.3.4) + declarative_policy (~> 1.1.0) + deprecation_toolkit (~> 1.5.1) + derailed_benchmarks + devfile (~> 0.0.25.pre.alpha1) + device_detector + devise (~> 4.9.3) + devise-pbkdf2-encryptable (~> 0.0.0)! + devise-two-factor (~> 4.1.1) + diff_match_patch (~> 0.1.0)! + diffy (~> 3.4) + discordrb-webhooks (~> 3.5) + doorkeeper (~> 5.6, >= 5.6.6) + doorkeeper-openid_connect (~> 1.8, >= 1.8.7) + duo_api (~> 1.3) + ed25519 (~> 1.3.0) + elasticsearch-api (= 7.13.3) + elasticsearch-model (~> 7.2) + elasticsearch-rails (~> 7.2) + email_reply_trimmer (~> 0.1) + email_spec (~> 2.2.0) + error_tracking_open_api! + factory_bot_rails (~> 6.4.3) + faraday (~> 1.0) + faraday_middleware-aws-sigv4 (~> 0.3.0) + fast_blank (~> 1.0.1) + ffaker (~> 2.23) + flipper (~> 0.26.2) + flipper-active_record (~> 0.26.2) + flipper-active_support_cache_store (~> 0.26.2) + fog-aliyun (~> 0.4) + fog-aws (~> 3.18) + fog-core (= 2.1.0) + fog-google (~> 1.19) + fog-local (~> 0.8) + fugit (~> 1.8.1) + fuubar (~> 2.2.0) + gettext (~> 3.4, >= 3.4.9) + gettext_i18n_rails (~> 1.11.0) + gitaly (~> 16.10.0.pre.rc1) + gitlab-backup-cli! + gitlab-chronic (~> 0.10.5) + gitlab-dangerfiles (~> 4.7.0) + gitlab-experiment (~> 0.9.1) + gitlab-fog-azure-rm (~> 1.8.0) + gitlab-glfm-markdown (~> 0.0.13) + gitlab-housekeeper! + gitlab-http! + gitlab-labkit (~> 0.35.1) + gitlab-license (~> 2.4) + gitlab-mail_room (~> 0.0.24) + gitlab-markup (~> 1.9.0) + gitlab-net-dns (~> 0.9.2) + gitlab-rspec! + gitlab-rspec_flaky! + gitlab-safe_request_store! + gitlab-schema-validation! + gitlab-sdk (~> 0.3.0) + gitlab-secret_detection! + gitlab-sidekiq-fetcher! + gitlab-styles (~> 11.0.0) + gitlab-utils! + gitlab_chronic_duration (~> 0.12) + gitlab_omniauth-ldap (~> 2.2.0) + gitlab_quality-test_tooling (~> 1.17.0) + gon (~> 6.4.0) + google-apis-androidpublisher_v3 (~> 0.34.0) + google-apis-cloudbilling_v1 (~> 0.21.0) + google-apis-cloudresourcemanager_v1 (~> 0.31.0) + google-apis-compute_v1 (~> 0.57.0) + google-apis-container_v1 (~> 0.43.0) + google-apis-container_v1beta1 (~> 0.43.0) + google-apis-core (~> 0.11.0, >= 0.11.1) + google-apis-iam_v1 (~> 0.36.0) + google-apis-serviceusage_v1 (~> 0.28.0) + google-apis-sqladmin_v1beta4 (~> 0.41.0) + google-apis-storage_v1 (~> 0.29) + google-cloud-artifact_registry-v1 (~> 0.11.0) + google-cloud-compute-v1 (~> 2.6.0) + google-cloud-storage (~> 1.45.0) + google-protobuf (~> 3.25, >= 3.25.3) + googleauth (~> 1.8.1) + gpgme (~> 2.0.23) + grape (~> 2.0.0) + grape-entity (~> 0.10.2) + grape-path-helpers (~> 2.0.1) + grape-swagger (~> 2.0.1) + grape-swagger-entity (~> 0.5.1) + grape_logging (~> 1.8, >= 1.8.4) + graphiql-rails (~> 1.8.0) + graphlient (~> 0.6.0) + graphlyte (~> 1.0.0) + graphql (~> 2.2.5) + graphql-docs (~> 4.0.0) + grpc (~> 1.60.0) + gssapi (~> 1.3.1) + guard-rspec + haml_lint (~> 0.53) + hamlit (~> 2.15.0) + hashie (~> 5.0.0) + health_check (~> 3.0) + html-pipeline (~> 2.14.3) + html2text + httparty (~> 0.21.0) + icalendar + influxdb-client (~> 2.9) + invisible_captcha (~> 2.1.0) + ipaddr (~> 1.2.5) + ipaddress (~> 0.8.3) + ipynbdiff! + jira-ruby (~> 2.3.0) + js_regex (~> 3.8) + json (~> 2.6.3) + json_schemer (~> 0.2.18) + jsonb_accessor (~> 1.3.10) + jwt (~> 2.5) + kaminari (~> 1.2.2) + kas-grpc (~> 0.4.0) + knapsack (~> 1.22.0) + kramdown (~> 2.3.1) + kubeclient (~> 4.11.0) + lefthook (~> 1.5.6) + letter_opener_web (~> 2.0.0) + license_finder (~> 7.0) + licensee (~> 9.16) + listen (~> 3.7) + lockbox (~> 1.3.0) + lograge (~> 0.5) + loofah (~> 2.22.0) + lookbook (~> 2.2) + lru_redux + mail (= 2.8.1) + mail-smtp_pool (~> 0.1.0)! + marginalia (~> 1.11.1) + memory_profiler (~> 1.0) + microsoft_graph_mailer (~> 0.1.0)! + mini_magick (~> 4.10.1) + minitest (~> 5.11.0) + multi_json (~> 1.14.1) + neighbor (~> 0.2.3) + net-http (= 0.1.1) + net-ldap (~> 0.17.1) + net-ntp + net-protocol (~> 0.1.3) + nokogiri (~> 1.16) + oauth2 (~> 2.0) + octokit (~> 8.0) + ohai (~> 18.1) + oj (~> 3.13.21) + oj-introspect (~> 0.7) + omniauth (~> 2.1.0) + omniauth-alicloud (~> 3.0.0) + omniauth-atlassian-oauth2 (~> 0.2.0) + omniauth-auth0 (~> 3.1) + omniauth-azure-activedirectory-v2 (~> 2.0) + omniauth-azure-oauth2 (~> 0.0.9)! + omniauth-dingtalk-oauth2 (~> 1.0) + omniauth-facebook (~> 4.0.0) + omniauth-github (= 2.0.1) + omniauth-gitlab (~> 4.0.0)! + omniauth-google-oauth2 (~> 1.1) + omniauth-oauth2-generic (~> 0.2.2) + omniauth-salesforce (~> 1.0.5)! + omniauth-saml (~> 2.1.0) + omniauth-shibboleth-redux (~> 2.0) + omniauth-twitter (~> 1.4) + omniauth_crowd (~> 2.4.0)! + omniauth_openid_connect (~> 0.6.1) + openid_connect (= 1.3.0) + openssl (~> 3.0) + org-ruby (~> 0.9.12) + os (~> 1.1, >= 1.1.4) + pact (~> 1.64) + parallel (~> 1.19) + parser (~> 3.3, >= 3.3.0.2) + parslet (~> 1.8) + peek (~> 1.1) + pg (~> 1.5.6) + pg_query (~> 5.1.0) + png_quantizator (~> 0.2.1) + premailer-rails (~> 1.10.3) + prometheus-client-mmap (~> 1.1, >= 1.1.1) + pry-byebug + pry-rails (~> 0.3.9) + pry-shell (~> 0.6.4) + puma (= 6.4.0) + rack (~> 2.2.8.1) + rack-attack (~> 6.7.0) + rack-cors (~> 2.0.1) + rack-oauth2 (~> 1.21.3) + rack-proxy (~> 0.7.7) + rack-timeout (~> 0.6.3) + rails (~> 7.0.8.1) + rails-controller-testing + rails-i18n (~> 7.0) + rainbow (~> 3.0) + rbtrace (~> 0.4) + re2 (= 2.7.0) + recaptcha (~> 5.12) + redis (~> 5.0.0) + redis-actionpack (~> 5.4.0) + redis-clustering (~> 5.0.0) + redis-namespace (~> 1.10.0) + request_store (~> 1.5.1) + responders (~> 3.0) + retriable (~> 3.1.2) + rexml (~> 3.2.6) + rouge (~> 4.2.0) + rqrcode (~> 2.0) + rspec-benchmark (~> 0.6.0) + rspec-parameterized (~> 1.0) + rspec-rails (~> 6.1.1) + rspec-retry (~> 0.6.2) + rspec_junit_formatter + rspec_profiling (~> 0.0.8) + rubocop + ruby-fogbugz (~> 0.3.0) + ruby-lsp (~> 0.14.4) + ruby-lsp-rails (~> 0.3.0) + ruby-lsp-rspec (~> 0.1.10) + ruby-magic (~> 0.6) + ruby-openai (~> 3.7) + ruby-progressbar (~> 1.10) + ruby-saml (~> 1.15.0) + rubyzip (~> 2.3.2) + rugged (~> 1.6) + sanitize (~> 6.0.2) + sd_notify (~> 0.1.0) + seed-fu (~> 2.3.7) + selenium-webdriver (~> 4.18, >= 4.18.1) + semver_dialects (~> 2.0) + sentry-rails (~> 5.10.0) + sentry-raven (~> 3.1) + sentry-ruby (~> 5.10.0) + sentry-sidekiq (~> 5.10.0) + shoulda-matchers (~> 5.1.0) + sidekiq! + sidekiq-cron (~> 1.12.0) + sigdump (~> 0.2.4) + simple_po_parser (~> 1.1.6) + simplecov (~> 0.22) + simplecov-cobertura (~> 2.1.0) + simplecov-lcov (~> 0.8.0) + slack-messenger (~> 2.3.4) + snowplow-tracker (~> 0.8.0) + solargraph (~> 0.47.2) + spamcheck (~> 1.3.0) + spring (~> 4.1.0) + spring-commands-rspec (~> 1.0.4) + sprite-factory (~> 1.7) + sprockets (~> 3.7.0) + ssh_data (~> 1.3) + stackprof (~> 0.2.25) + state_machines-activerecord (~> 0.8.0) + sys-filesystem (~> 1.4.3) + tanuki_emoji (~> 0.9) + telesignenterprise (~> 2.2) + terser (= 1.0.2) + test-prof (~> 1.3.1) + test_file_finder (~> 0.2.1) + thrift (>= 0.16.0) + timfel-krb5-auth (~> 0.8) + toml-rb (~> 2.2.0) + truncato (~> 0.7.12) + typhoeus (~> 1.4.0) + undercover (~> 0.4.4) + unleash (~> 3.2.2) + valid_email (~> 0.1) + validates_hostname (~> 1.0.13) + version_sorter (~> 2.3) + view_component (~> 3.11.0) + vite_rails (~> 3.0.17) + vite_ruby (~> 3.5.0) + vmstat (~> 2.3.0) + warning (~> 1.3.0) + webauthn (~> 3.0) + webmock (~> 3.22.0) + webrick (~> 1.8.1) + wikicloth (= 0.8.1) + yajl-ruby (~> 1.4.3) + +BUNDLED WITH + 2.5.6 diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix new file mode 100644 index 000000000000..2520955593de --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix @@ -0,0 +1,7030 @@ +src: +{ + acme-client = { + dependencies = ["faraday" "faraday-retry"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pl901hwqbx7sa058i006l7addvqg6wv73kkqsq3mgjx7jgxmxpd"; + type = "gem"; + }; + version = "2.0.11"; + }; + actioncable = { + dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j86qjs1zw34p0p7d5napa1vvwqlvm9nmv7ckxxhcba1qv4dspmw"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + actionmailbox = { + dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f68h8cl6dqbz7mq3x43s0s82291nani3bz1hrxkk2qpgda23mw9"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + actionmailer = { + dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "077j47jsg0wqwx5b13n4h0g3g409b6kfrlazpzgjpa3pal74f7sc"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + actionpack = { + dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jh83rqd6glys1b2wsihzsln8yk6zdwgiyn9xncyiav9rcwjpkax"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + actiontext = { + dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "044qi3zhzxlfq7slc2pb9ky9mdivp1m1sjyhjvnsi64ggq7cvr22"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + actionview = { + dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ygpg75f3ffdcbxvf7s14xw3hcjin1nnx1nk3mg9mj2xc1nb60aa"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + activejob = { + dependencies = ["activesupport" "globalid"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yql9v4cd1xbqgnzlf3cv4a6sm26v2y4gsgcbbfgvfc0hhlfjklg"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + activemodel = { + dependencies = ["activesupport"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grdpvglh0cj96qhlxjj9bcfqkh13c1pfpcwc9ld3aw0yzvsw5a1"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rlky1cr5kcdl0jad3nk5jpim6vjzbgkfhxnk7y492b3j2nznpcf"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + activerecord-explain-analyze = { + dependencies = ["activerecord" "pg"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yvz452ww0vn3n6197gx6zklwa591gc7f1m8accvjd9zw8gv3ssx"; + type = "gem"; + }; + version = "0.1.0"; + }; + activerecord-gitlab = { + dependencies = ["activerecord"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/activerecord-gitlab"; + type = "path"; + }; + version = "0.2.0"; + }; + activestorage = { + dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f4g3589i5ii4gdfazv6d9rjinr16aarh6g12v8378ck7jll3mhz"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ff3x7q400flzhml131ix8zfwmh13h70rs6yzbzf513g781gbbxh"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + acts-as-taggable-on = { + dependencies = ["activerecord"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10yvdqrmykjpfjchnbh7q85vm5fgz20g9ip5iwphl0922rpyjq6k"; + type = "gem"; + }; + version = "10.0.0"; + }; + addressable = { + dependencies = ["public_suffix"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw"; + type = "gem"; + }; + version = "2.8.1"; + }; + aes_key_wrap = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19bn0y70qm6mfj4y1m0j3s8ggh6dvxwrwrj5vfamhdrpddsz8ddr"; + type = "gem"; + }; + version = "1.1.0"; + }; + akismet = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c5jhqfgvpz84d8jai51hin018ldpfd0civbk7mfwmrj7n71p6bl"; + type = "gem"; + }; + version = "3.0.0"; + }; + aliyun-sdk = { + dependencies = ["nokogiri" "rest-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17avsza5r4f6d0f2ajgy6clmasrxs7jd16hz7ljq502jkczmv4b5"; + type = "gem"; + }; + version = "0.8.0"; + }; + amatch = { + dependencies = ["mize" "tins"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xs5j64cbbjc94lx72fgjq6f3r99p2fmg51fh1r7qqifd8i1bzyk"; + type = "gem"; + }; + version = "0.4.1"; + }; + android_key_attestation = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02spc1sh7zsljl02v9d5rdb717b628vw2k7jkkplifyjk4db0zj6"; + type = "gem"; + }; + version = "0.3.0"; + }; + apollo_upload_server = { + dependencies = ["actionpack" "graphql"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "198k6ikkz6wdnl9i4m569s384sx2r2pyn4l74yvyhz6zdflvwrhg"; + type = "gem"; + }; + version = "2.1.5"; + }; + app_store_connect = { + dependencies = ["activesupport" "jwt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03s3x8b6ifjrqk9ian59i9yyxxl65ykvbb4r424j2hjsh8iskmq1"; + type = "gem"; + }; + version = "0.29.0"; + }; + arr-pm = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fddw0vwdrr7v3a0lfqbmnd664j48a9psrjd3wh3k4i3flplizzx"; + type = "gem"; + }; + version = "0.0.12"; + }; + asciidoctor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11z3vnd8vh3ny1vx69bjrbck5b2g8zsbj94npyadpn7fdp8y3ldv"; + type = "gem"; + }; + version = "2.0.18"; + }; + asciidoctor-include-ext = { + dependencies = ["asciidoctor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y3qixbssfrzp04ng7g4lh3dq16pgrw3p8cwc0v5bhmz5yfxnsj0"; + type = "gem"; + }; + version = "0.4.0"; + }; + asciidoctor-kroki = { + dependencies = ["asciidoctor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dhsickf1i4cr1w3l9imbqizv67yx1iqh2dhj3lvvkk7j4s3yfz5"; + type = "gem"; + }; + version = "0.8.0"; + }; + asciidoctor-plantuml = { + dependencies = ["asciidoctor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14qppm3qzfra2g2lf8jl3mbnrhi4alp8232zqz6dbpl6276lfzj0"; + type = "gem"; + }; + version = "0.0.16"; + }; + ast = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + type = "gem"; + }; + version = "2.4.2"; + }; + atlassian-jwt = { + dependencies = ["jwt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08vqx5s0ax71lwis9l1bzy570sch0hpb53031ha2wgvp31sdilig"; + type = "gem"; + }; + version = "0.2.1"; + }; + attr_encrypted = { + dependencies = ["encryptor"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/attr_encrypted"; + type = "path"; + }; + version = "3.2.4"; + }; + attr_required = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2"; + type = "gem"; + }; + version = "1.0.1"; + }; + awesome_print = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9"; + type = "gem"; + }; + version = "1.9.2"; + }; + awrence = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gj8f8c54r9cabkm41s59sa1ca5wpbipw7gq3sfl87x9296227fx"; + type = "gem"; + }; + version = "1.2.1"; + }; + aws-eventstream = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi"; + type = "gem"; + }; + version = "1.3.0"; + }; + aws-partitions = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zcwrlg4in3gzvsiynpzp9fzlr5grrhc2881xcgfs01ppmxysllm"; + type = "gem"; + }; + version = "1.877.0"; + }; + aws-sdk-cloudformation = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09kb3k5vpymg846gajc5d3wznww63yiv3ygdf4v42d4pf4wpbr1i"; + type = "gem"; + }; + version = "1.41.0"; + }; + aws-sdk-core = { + dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "088nq8yz9n4p7pnhjwp9nbxlkj7jwchpkzvnl4nybfb1dkvk4dns"; + type = "gem"; + }; + version = "3.191.3"; + }; + aws-sdk-kms = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jfgw9a9c8xyjhkmgpd9rpi95h9i0rhbqszn8iqkbfm9rc9m1xz7"; + type = "gem"; + }; + version = "1.76.0"; + }; + aws-sdk-s3 = { + dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ypg31pfzbd43n1m20cyf6gyrlv6m0c8hmk2p5hidy1y4pi34f6g"; + type = "gem"; + }; + version = "1.144.0"; + }; + aws-sigv4 = { + dependencies = ["aws-eventstream"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g3w27wzjy4si6kp49w10as6ml6g6zl3xrfqs5ikpfciidv9kpc4"; + type = "gem"; + }; + version = "1.8.0"; + }; + axe-core-api = { + dependencies = ["dumb_delegator" "virtus"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bx67lskxslfd2mpim3kqrxa4sx4qhvnpjpr57j1ll2xppyl9kw8"; + type = "gem"; + }; + version = "4.8.0"; + }; + axe-core-rspec = { + dependencies = ["axe-core-api" "dumb_delegator" "virtus"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14h4abf5h242a0vn2r05pkr8311qbxgkl63py7vbhx8bfpk1kq3i"; + type = "gem"; + }; + version = "4.8.2"; + }; + axiom-types = { + dependencies = ["descendants_tracker" "ice_nine" "thread_safe"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1"; + type = "gem"; + }; + version = "0.1.1"; + }; + azure-storage-blob = { + dependencies = ["azure-storage-common" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qq3knsy7nj7a0r8m19spg2bgzns9b3j5vjbs9mpg49whhc63dv1"; + type = "gem"; + }; + version = "2.0.3"; + }; + azure-storage-common = { + dependencies = ["faraday" "faraday_middleware" "net-http-persistent" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0swmsvvpmy8cdcl305p3dl2pi7m3dqjd7zywfcxmhsz0n2m4v3v0"; + type = "gem"; + }; + version = "2.0.4"; + }; + babosa = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mqrnyizr1ipdp26vhrg0hwb851bwyvrs6xc29dk3ywljw8s8d6"; + type = "gem"; + }; + version = "2.0.0"; + }; + backport = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xbzzjrgah0f8ifgd449kak2vyf30micpz6x2g82aipfv7ypsb4i"; + type = "gem"; + }; + version = "1.2.0"; + }; + base32 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk"; + type = "gem"; + }; + version = "0.3.2"; + }; + base64 = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g"; + type = "gem"; + }; + version = "0.2.0"; + }; + batch-loader = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17d8wwj880zar5h8zxdmw878shgmljmmv957802fw5nkg3gi3xwk"; + type = "gem"; + }; + version = "2.0.1"; + }; + bcrypt = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "048z3fvcknqx7ikkhrcrykxlqmf9bzc7l0y5h1cnvrc9n2qf0k8m"; + type = "gem"; + }; + version = "3.1.18"; + }; + benchmark = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xwcnbwnbqq8jp92mvawn6y69cb53wsz84wwmk9vsfk1jjvqfw2z"; + type = "gem"; + }; + version = "0.2.0"; + }; + benchmark-ips = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v3db77blqz3g4z8nskd3jhdviz5d6q2xxvzxvq5m2bk2228kahy"; + type = "gem"; + }; + version = "2.11.0"; + }; + benchmark-malloc = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0svyac8alxbmip6b9rp34wq5lcimdaapjkaqdw1385i66l28ziip"; + type = "gem"; + }; + version = "0.2.0"; + }; + benchmark-memory = { + dependencies = ["memory_profiler"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p5bwqc828yai7h71b7ny77hgd7dll00dy34izp3b5dh6dj467na"; + type = "gem"; + }; + version = "0.2.0"; + }; + benchmark-perf = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08cngwnwk2h6cdxx3dyckxcg7d0yi3pm83c26kfzkq1xkyah2azy"; + type = "gem"; + }; + version = "0.6.0"; + }; + benchmark-trend = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10axhj80jan0b7c77hm0aj2yxv0dh9clfy4pppxvxfj3yjlh4nny"; + type = "gem"; + }; + version = "0.4.0"; + }; + better_errors = { + dependencies = ["erubi" "rack" "rouge"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wqazisnn6hn1wsza412xribpw5wzx6b5z5p4mcpfgizr6xg367p"; + type = "gem"; + }; + version = "2.10.1"; + }; + bindata = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0shg48ilaxn8ps8arvyb8pr6pqigdmccirks185c306dzychr3n3"; + type = "gem"; + }; + version = "2.4.11"; + }; + binding_of_caller = { + dependencies = ["debug_inspector"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "078n2dkpgsivcf0pr50981w95nfc2bsrp3wpf9wnxz1qsp8jbb9s"; + type = "gem"; + }; + version = "1.0.0"; + }; + bootsnap = { + dependencies = ["msgpack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1srlq3gqirzdkhv12ljpnp5cb0f8jfrl3n8xs9iivyz2c7khvdyp"; + type = "gem"; + }; + version = "1.18.3"; + }; + browser = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g4bcpax07kqqr9cp7cjc7i0pcij4nqpn1rdsg2wdwhzf00m6x32"; + type = "gem"; + }; + version = "5.3.1"; + }; + builder = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; + type = "gem"; + }; + version = "3.2.4"; + }; + bullet = { + dependencies = ["activesupport" "uniform_notifier"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fxkrdiarjgcyw2ihh79kvjhpf6a4azj15wvx45clx6bfk0jb5s2"; + type = "gem"; + }; + version = "7.1.2"; + }; + bundler-audit = { + dependencies = ["thor"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gdx0019vj04n1512shhdx7hwphzqmdpw4vva2k551nd47y1dixx"; + type = "gem"; + }; + version = "0.9.1"; + }; + bundler-checksum = { + dependencies = []; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/bundler-checksum"; + type = "path"; + }; + version = "0.1.0"; + }; + byebug = { + groups = ["default" "development" "test"]; + platforms = [{ + engine = "maglev"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194"; + type = "gem"; + }; + version = "11.1.3"; + }; + capybara = { + dependencies = ["addressable" "matrix" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2"; + type = "gem"; + }; + version = "3.40.0"; + }; + capybara-screenshot = { + dependencies = ["capybara" "launchy"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xqc7hdiw1ql42mklpfvqd2pyfsxmy55cpx0h9y0jlkpl1q96sw1"; + type = "gem"; + }; + version = "1.0.26"; + }; + carrierwave = { + dependencies = ["activemodel" "activesupport" "mime-types" "ssrf_filter"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "089s8rbwddzcyw1ky34h90flz5wzqzi2lvajykbxn3l3s6mjsxw1"; + type = "gem"; + }; + version = "1.3.4"; + }; + cbor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y"; + type = "gem"; + }; + version = "0.5.9.8"; + }; + CFPropertyList = { + dependencies = ["rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7"; + type = "gem"; + }; + version = "3.0.5"; + }; + character_set = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l9z2pihzc11f0jpq2sx789zwpmwf5nyhsjps45zzvfs5931fwrb"; + type = "gem"; + }; + version = "1.8.0"; + }; + charlock_holmes = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p"; + type = "gem"; + }; + version = "0.7.7"; + }; + chef-config = { + dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pvjf3qbb3apg9vdy4zykamm7801qz4m6256wjqn73fs87zs50y1"; + type = "gem"; + }; + version = "18.3.0"; + }; + chef-utils = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0087jwhqslfm3ygj507dmmdp3k0589j5jl54mkwgbabbwan7lzw2"; + type = "gem"; + }; + version = "18.3.0"; + }; + chunky_png = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9"; + type = "gem"; + }; + version = "1.4.0"; + }; + circuitbox = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "056snhim934xysz630ysfbfdxa64vin5y24h2ha1wvj9fqg9qvj9"; + type = "gem"; + }; + version = "2.0.0"; + }; + citrus = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf"; + type = "gem"; + }; + version = "3.0.2"; + }; + claide = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bpqhc0kqjp1bh9b7ffc395l9gfls0337rrhmab4v46ykl45qg3d"; + type = "gem"; + }; + version = "1.1.0"; + }; + claide-plugins = { + dependencies = ["cork" "nap" "open4"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bhw5j985qs48v217gnzva31rw5qvkf7qj8mhp73pcks0sy7isn7"; + type = "gem"; + }; + version = "0.9.2"; + }; + click_house-client = { + dependencies = ["activesupport" "addressable" "json"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/click_house-client"; + type = "path"; + }; + version = "0.1.0"; + }; + cloud_profiler_agent = { + dependencies = ["google-cloud-profiler-v2" "google-protobuf" "googleauth" "stackprof"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/cloud_profiler_agent"; + type = "path"; + }; + version = "0.0.1.pre"; + }; + coderay = { + groups = ["default" "development" "test"]; + platforms = [{ + engine = "maglev"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; + type = "gem"; + }; + version = "1.1.3"; + }; + coercible = { + dependencies = ["descendants_tracker"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah"; + type = "gem"; + }; + version = "1.0.0"; + }; + colored2 = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i"; + type = "gem"; + }; + version = "3.1.2"; + }; + commonmarker = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lb5slzbqrca49h0gaifg82xky5r7i9xgm4560pin1xl5fp15lzx"; + type = "gem"; + }; + version = "0.23.10"; + }; + concurrent-ruby = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q"; + type = "gem"; + }; + version = "1.2.2"; + }; + connection_pool = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g"; + type = "gem"; + }; + version = "2.4.1"; + }; + cork = { + dependencies = ["colored2"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g6l780z1nj4s3jr11ipwcj8pjbibvli82my396m3y32w98ar850"; + type = "gem"; + }; + version = "0.3.0"; + }; + cose = { + dependencies = ["cbor" "openssl-signature_algorithm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00c6x4ha7qiaaf88qdbyf240mk146zz78rbm4qwyaxmwlmk7q933"; + type = "gem"; + }; + version = "1.3.0"; + }; + countries = { + dependencies = ["i18n_data" "sixarm_ruby_unaccent"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ic1zbzqbrvb3myhgzpq4vigr3qnyl2r0vga84d9z5121cy8lbnk"; + type = "gem"; + }; + version = "4.0.1"; + }; + crack = { + dependencies = ["safe_yaml"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"; + type = "gem"; + }; + version = "0.4.3"; + }; + crass = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; + type = "gem"; + }; + version = "1.0.6"; + }; + creole = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"; + type = "gem"; + }; + version = "0.5.0"; + }; + crystalball = { + dependencies = ["git"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1why2py76hv2m7i3a1im3zi5zcjcvz2l1nvshzndlwah58vrywkf"; + type = "gem"; + }; + version = "0.7.0"; + }; + css_parser = { + dependencies = ["addressable"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj"; + type = "gem"; + }; + version = "1.14.0"; + }; + cssbundling-rails = { + dependencies = ["railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nzp4j1ll6llgbrvqk81gkz6fqgk33sx4k1fcvbm7v7h79jk8808"; + type = "gem"; + }; + version = "1.4.0"; + }; + csv_builder = { + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/csv_builder"; + type = "path"; + }; + version = "0.1.0"; + }; + cvss-suite = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yfkibv7c7aazh8p3v9mksa2rdkqacq1x3621pyl4ah3jjg9xjmm"; + type = "gem"; + }; + version = "3.0.1"; + }; + danger = { + dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "104x4p9rmk8frf4l858p171vjaif7mqgxspx61d26c0hfg355ra3"; + type = "gem"; + }; + version = "9.4.2"; + }; + danger-gitlab = { + dependencies = ["danger" "gitlab"]; + groups = ["danger" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a530kx5s5rbx5yx3jqay56lkksqh0yj468hcpg16faiyv8dfza9"; + type = "gem"; + }; + version = "8.0.0"; + }; + dartsass = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0i8kivfa4i1m2msw2h5zigxdnar5fvln7xhym85qyp35lmi74zi6"; + type = "gem"; + }; + version = "1.49.8"; + }; + database_cleaner-active_record = { + dependencies = ["activerecord" "database_cleaner-core"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12hdsqnws9gyc9sxiyc8pjiwr0xa7136m1qbhmd1pk3vsrrvk13k"; + type = "gem"; + }; + version = "2.1.0"; + }; + database_cleaner-core = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v44bn386ipjjh4m2kl53dal8g4d41xajn2jggnmjbhn6965fil6"; + type = "gem"; + }; + version = "2.0.1"; + }; + date = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1"; + type = "gem"; + }; + version = "3.3.3"; + }; + dead_end = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nrg9cwy21iwzl1djp1hamy24q3pfhvvrjqi9q0bwj81gizxy48h"; + type = "gem"; + }; + version = "3.1.1"; + }; + deb_version = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04z75v3wdghqbahgipvz8y75krkqq17jbbna349ddl9ggwfr27y2"; + type = "gem"; + }; + version = "1.0.2"; + }; + debug_inspector = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga"; + type = "gem"; + }; + version = "1.1.0"; + }; + deckar01-task_list = { + dependencies = ["html-pipeline"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rqn9jh45gsw045c6fm05875bpj2xbhnff5m5drmk9wy01zdrav6"; + type = "gem"; + }; + version = "2.3.4"; + }; + declarative = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0"; + type = "gem"; + }; + version = "0.0.20"; + }; + declarative_policy = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jri6fqpyrlnhl99mhqlqwpi6z8idb7g421rysxz40yyk8lwzx4s"; + type = "gem"; + }; + version = "1.1.0"; + }; + deprecation_toolkit = { + dependencies = ["activesupport"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fh4d98irhph3ri7c2rrvvmmjd4z14702r8baq9flh5f34dap8d8"; + type = "gem"; + }; + version = "1.5.1"; + }; + derailed_benchmarks = { + dependencies = ["benchmark-ips" "dead_end" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rack-test" "rake" "ruby-statistics" "thor"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kx1i7qsb5gvc24kxwq4bpcvsknm4c04mq7mz27m7dgfdhhcdbga"; + type = "gem"; + }; + version = "2.1.2"; + }; + descendants_tracker = { + dependencies = ["thread_safe"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79"; + type = "gem"; + }; + version = "0.0.4"; + }; + devfile = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p11hv0a2s4m29vvyr7z22wjr9f4cfmdjnqidrv62rfcg9r73w0g"; + type = "gem"; + }; + version = "0.0.25.pre.alpha1"; + }; + device_detector = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q"; + type = "gem"; + }; + version = "1.0.0"; + }; + devise = { + dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "121ljaaapil79dcsl5mkh5k613hv58z4z3g2lrnzb5qvqpb3h1j8"; + type = "gem"; + }; + version = "4.9.3"; + }; + devise-pbkdf2-encryptable = { + dependencies = ["devise" "devise-two-factor"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/devise-pbkdf2-encryptable"; + type = "path"; + }; + version = "0.0.0"; + }; + devise-two-factor = { + dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15cbgb0hyq78myc6aaszzdrd9qll9n3qdhykmrx22qiyac3mnpy9"; + type = "gem"; + }; + version = "4.1.1"; + }; + diff-lcs = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9"; + type = "gem"; + }; + version = "1.5.0"; + }; + diff_match_patch = { + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/diff_match_patch"; + type = "path"; + }; + version = "0.1.0"; + }; + diffy = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qcsv29ljfhy76gq4xi8zpn6dc6nv15c41r131bdr38kwpxjzd1n"; + type = "gem"; + }; + version = "3.4.2"; + }; + digest-crc = { + dependencies = ["rake"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09114ndpnnyamc2q07bmpzw7kp3rbbfv7plmxcbzzi9d6prmd92w"; + type = "gem"; + }; + version = "0.6.5"; + }; + discordrb-webhooks = { + dependencies = ["rest-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c933kq48sqja1a2fc4ki9w8x5ajl6lp67hslka5k05hwfyaiysj"; + type = "gem"; + }; + version = "3.5.0"; + }; + docile = { + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz"; + type = "gem"; + }; + version = "1.4.0"; + }; + domain_name = { + dependencies = ["unf"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; + type = "gem"; + }; + version = "0.5.20190701"; + }; + doorkeeper = { + dependencies = ["railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q2pywgyn6cbnm0fh3dln5z1qgd1g8hvb4x8rppjc1bpfxnfhi13"; + type = "gem"; + }; + version = "5.6.6"; + }; + doorkeeper-openid_connect = { + dependencies = ["doorkeeper" "jwt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11p7p3b0yb12xfdhxxsifc2mz0rj1hlgi8sbcwjzxvld24rszvbi"; + type = "gem"; + }; + version = "1.8.7"; + }; + dotenv = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94"; + type = "gem"; + }; + version = "2.7.6"; + }; + dry-cli = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w39jms4bsggxvl23cxanhccv1ngb6nqxsqhi784v5bjz1lx3si8"; + type = "gem"; + }; + version = "1.0.0"; + }; + dry-core = { + dependencies = ["concurrent-ruby" "zeitwerk"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03a5qn74c4lk2rpy6wlhv66synjlyzc4wn086xzphkpmw12l4bzk"; + type = "gem"; + }; + version = "1.0.1"; + }; + dry-inflector = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09hnvna3lg2x36li63988kv664d0zvy7y0z33803yvrdr9hj7lka"; + type = "gem"; + }; + version = "1.0.0"; + }; + dry-logic = { + dependencies = ["concurrent-ruby" "dry-core" "zeitwerk"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05nldkc154r0qzlhss7n5klfiyyz05x2fkq08y13s34py6023vcr"; + type = "gem"; + }; + version = "1.5.0"; + }; + dry-types = { + dependencies = ["concurrent-ruby" "dry-core" "dry-inflector" "dry-logic" "zeitwerk"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f6dz0hm67rhybh6xq2s3vvr700cp43kf50z2lids62s2i0mh5hj"; + type = "gem"; + }; + version = "1.7.1"; + }; + dumb_delegator = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "151fdn7y0gqs7f6y3y7rn3frv0z359qrw9hb4s7avn6j2qc42ppz"; + type = "gem"; + }; + version = "1.0.0"; + }; + duo_api = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xk1437b5vrjg8prk2khsva5rkx3apsj7c46n3yk5b8g34787jc7"; + type = "gem"; + }; + version = "1.3.0"; + }; + e2mmap = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5"; + type = "gem"; + }; + version = "0.1.0"; + }; + ecma-re-validator = { + dependencies = ["regexp_parser"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mz0nsl2093jd94nygw8qs13rwfwl1ax76xz3ypinr5hqbc5pab6"; + type = "gem"; + }; + version = "0.3.0"; + }; + ed25519 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji"; + type = "gem"; + }; + version = "1.3.0"; + }; + elasticsearch = { + dependencies = ["elasticsearch-api" "elasticsearch-transport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0havyxmvl157a653prspnbhgdchlx44xqxl170v1im5ggxwavcaq"; + type = "gem"; + }; + version = "7.13.3"; + }; + elasticsearch-api = { + dependencies = ["multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bmssarkk7lqkjdn8c9j7jvxcnn4hg1zcmhsky8bfvc99k33b3w8"; + type = "gem"; + }; + version = "7.13.3"; + }; + elasticsearch-model = { + dependencies = ["activesupport" "elasticsearch" "hashie"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ivcz5pcrp0760j26590bm3jvwc8548wcy7z7v2274k18l583h9c"; + type = "gem"; + }; + version = "7.2.0"; + }; + elasticsearch-rails = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r2nh6csdlbfk5hqq5qbvvw1kvv6qa382alil2ixjn33jl7dql07"; + type = "gem"; + }; + version = "7.2.1"; + }; + elasticsearch-transport = { + dependencies = ["faraday" "multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0blfii8qvj0m6bg9sbfynxc40in7zfmw2wpi4clv7d9gclk053db"; + type = "gem"; + }; + version = "7.13.3"; + }; + email_reply_trimmer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz"; + type = "gem"; + }; + version = "0.1.6"; + }; + email_spec = { + dependencies = ["htmlentities" "launchy" "mail"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0"; + type = "gem"; + }; + version = "2.2.0"; + }; + encryptor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb"; + type = "gem"; + }; + version = "3.0.0"; + }; + error_tracking_open_api = { + dependencies = ["typhoeus"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/error_tracking_open_api"; + type = "path"; + }; + version = "1.0.0"; + }; + erubi = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; + type = "gem"; + }; + version = "1.12.0"; + }; + escape_utils = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "029c7kynhkxw8fgq9q171xi68ajfqrb22r7drvkar018j8871yyz"; + type = "gem"; + }; + version = "1.3.0"; + }; + et-orbi = { + dependencies = ["tzinfo"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d2z4ky2v15dpcz672i2p7lb2nc793dasq3yq3660h2az53kss9v"; + type = "gem"; + }; + version = "1.2.7"; + }; + ethon = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17ix0mijpsy3y0c6ywrk5ibarmvqzjsirjyprpsy3hwax8fdm85v"; + type = "gem"; + }; + version = "0.16.0"; + }; + excon = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j826kfvzn7nc5pv950n270r0sx1702k988ad11cdlav3dcxxw09"; + type = "gem"; + }; + version = "0.99.0"; + }; + execjs = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd"; + type = "gem"; + }; + version = "2.8.1"; + }; + expgen = { + dependencies = ["parslet"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fd2sdh3lc3x0qds30czli8k5qr45bkb7ssx0kb038hhn9jhysjf"; + type = "gem"; + }; + version = "0.1.1"; + }; + expression_parser = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib"; + type = "gem"; + }; + version = "0.9.0"; + }; + extended-markdown-filter = { + dependencies = ["html-pipeline"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7isjr3vpvmyc3arqcgn1fc69axxd73xk87nk31ibpv15sfzvn8"; + type = "gem"; + }; + version = "0.7.0"; + }; + factory_bot = { + dependencies = ["activesupport"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1glq677vmd3xrdilcx6ar8sdaysm9ldrppg34yzw43jzr6dx47fp"; + type = "gem"; + }; + version = "6.4.5"; + }; + factory_bot_rails = { + dependencies = ["factory_bot" "railties"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j6w4rr2cb5wng9yrn2ya9k40q52m0pbz47kzw8xrwqg3jncwwza"; + type = "gem"; + }; + version = "6.4.3"; + }; + faraday = { + dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-multipart" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "faraday-retry" "ruby2_keywords"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00palwawk897p5gypw5wjrh93d4p0xz2yl9w93yicb4kq7amh8d4"; + type = "gem"; + }; + version = "1.10.0"; + }; + faraday-em_http = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-em_synchrony = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-excon = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"; + type = "gem"; + }; + version = "1.1.0"; + }; + faraday-http-cache = { + dependencies = ["faraday"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qvl49xpl2mwxgcj6aj11qrjk94xrqhbnpl5vp1y2275crnkddv4"; + type = "gem"; + }; + version = "2.5.0"; + }; + faraday-httpclient = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc"; + type = "gem"; + }; + version = "1.0.1"; + }; + faraday-multipart = { + dependencies = ["multipart-post"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09871c4hd7s5ws1wl4gs7js1k2wlby6v947m2bbzg43pnld044lh"; + type = "gem"; + }; + version = "1.0.4"; + }; + faraday-net_http = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"; + type = "gem"; + }; + version = "1.0.1"; + }; + faraday-net_http_persistent = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b"; + type = "gem"; + }; + version = "1.2.0"; + }; + faraday-patron = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-rack = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g"; + type = "gem"; + }; + version = "1.0.0"; + }; + faraday-retry = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd"; + type = "gem"; + }; + version = "1.0.3"; + }; + faraday_middleware = { + dependencies = ["faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bw8mfh4yin2xk7138rg3fhb2p5g2dlmdma88k82psah9mbmvlfy"; + type = "gem"; + }; + version = "1.2.0"; + }; + faraday_middleware-aws-sigv4 = { + dependencies = ["aws-sigv4" "faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gk2qakcvvbgfvvfd8cgf13sligv5mp816ykmra9llqmbfym8ikl"; + type = "gem"; + }; + version = "0.3.0"; + }; + fast_blank = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1shpmamyzyhyxmv95r96ja5rylzaw60r19647d0fdm7y2h2c77r6"; + type = "gem"; + }; + version = "1.0.1"; + }; + fast_gettext = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "112gsrqah2w03kgi9mjsn6hl74mrwckphf223h36iayc4djf4lq2"; + type = "gem"; + }; + version = "2.3.0"; + }; + ffaker = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1644hpjg7k08dsjhljwg4grs49riaw6bxp5xf62jrac4q9fgnbcx"; + type = "gem"; + }; + version = "2.23.0"; + }; + ffi = { + groups = ["default" "development" "kerberos" "puma" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg"; + type = "gem"; + }; + version = "1.15.5"; + }; + ffi-compiler = { + dependencies = ["ffi" "rake"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"; + type = "gem"; + }; + version = "1.0.1"; + }; + ffi-yajl = { + dependencies = ["libyajl2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dj3y95260rvlclkkcxak6c1dsrzbyr4wik7jv3y949r4w9adfk9"; + type = "gem"; + }; + version = "2.6.0"; + }; + find_a_port = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sswgpvn38yav4i21adrr7yy8c8299d7rj065gd3iwg6nn26lpb0"; + type = "gem"; + }; + version = "1.0.1"; + }; + flipper = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "127ryr9107719rfk9k638fxk2p38cnbz23h9ghxxbckiv4474mvd"; + type = "gem"; + }; + version = "0.26.2"; + }; + flipper-active_record = { + dependencies = ["activerecord" "flipper"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g10lck7p3776r2dshz185rd1hjzv47z95bhgpk7bxz2ikpsxpk1"; + type = "gem"; + }; + version = "0.26.2"; + }; + flipper-active_support_cache_store = { + dependencies = ["activesupport" "flipper"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c6j2frspzafqmha5wlkpv05n5vfzrglbprpgj1dxiz5s4x8ily2"; + type = "gem"; + }; + version = "0.26.2"; + }; + fog-aliyun = { + dependencies = ["addressable" "aliyun-sdk" "fog-core" "fog-json" "ipaddress" "xml-simple"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f6cwnq4vq628lgv1wn7fzmwgcpv840zbmcwpfpiwy7b9dh388wg"; + type = "gem"; + }; + version = "0.4.0"; + }; + fog-aws = { + dependencies = ["fog-core" "fog-json" "fog-xml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0127b2jx7lj82h96sm0rnmlgqzgiz5013m6z27vxnkmwrw78iigl"; + type = "gem"; + }; + version = "3.18.0"; + }; + fog-core = { + dependencies = ["builder" "excon" "formatador" "mime-types"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak"; + type = "gem"; + }; + version = "2.1.0"; + }; + fog-google = { + dependencies = ["fog-core" "fog-json" "fog-xml" "google-apis-compute_v1" "google-apis-dns_v1" "google-apis-iamcredentials_v1" "google-apis-monitoring_v3" "google-apis-pubsub_v1" "google-apis-sqladmin_v1beta4" "google-apis-storage_v1" "google-cloud-env"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "127l22c7lhg166sylfhxys41p0i3nlkxkpzzgw8q9zip10irm41w"; + type = "gem"; + }; + version = "1.19.0"; + }; + fog-json = { + dependencies = ["fog-core" "multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx"; + type = "gem"; + }; + version = "1.2.0"; + }; + fog-local = { + dependencies = ["fog-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yggsxd7c58p5i8zgvfw9rkqlg75l6hkbwnpgawd2sacwl4jsfr6"; + type = "gem"; + }; + version = "0.8.0"; + }; + fog-xml = { + dependencies = ["fog-core" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n"; + type = "gem"; + }; + version = "0.1.3"; + }; + formatador = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; + type = "gem"; + }; + version = "0.2.5"; + }; + forwardable = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b5g1i3xdvmxxpq4qp0z4v78ivqnazz26w110fh4cvzsdayz8zgi"; + type = "gem"; + }; + version = "1.3.3"; + }; + fugit = { + dependencies = ["et-orbi" "raabro"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cm2lrvhrpqq19hbdsxf4lq2nkb2qdldbdxh3gvi15l62dlb5zqq"; + type = "gem"; + }; + version = "1.8.1"; + }; + fuubar = { + dependencies = ["rspec-core" "ruby-progressbar"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv"; + type = "gem"; + }; + version = "2.2.0"; + }; + fuzzyurl = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03qchs33vfwbsv5awxg3acfmlcrf5xbhnbrc83fdpamwya0glbjl"; + type = "gem"; + }; + version = "0.9.0"; + }; + gapic-common = { + dependencies = ["faraday" "faraday-retry" "google-protobuf" "googleapis-common-protos" "googleapis-common-protos-types" "googleauth" "grpc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rlka373b2iva4dz2diz2zx7jyx617hwqvnfx2hs5xs0nh24fc5g"; + type = "gem"; + }; + version = "0.20.0"; + }; + gemoji = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vgklpmhdz98xayln5hhqv4ffdyrglzwdixkn5gsk9rj94pkymc0"; + type = "gem"; + }; + version = "3.0.1"; + }; + get_process_mem = { + dependencies = ["ffi"]; + groups = ["default" "puma" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fkyyyxjcx4iigm8vhraa629k2lxa1npsv4015y82snx84v3rzaa"; + type = "gem"; + }; + version = "0.2.7"; + }; + gettext = { + dependencies = ["erubi" "locale" "prime" "racc" "text"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16h0kda5z4s4zqygyk0f52xzs9mlz9r4lnhjwk729hhmdbz68a19"; + type = "gem"; + }; + version = "3.4.9"; + }; + gettext_i18n_rails = { + dependencies = ["fast_gettext"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gibn9j4k9ck54v7rxbqwa587fc2l92clv9r71zhyl3c4m57x771"; + type = "gem"; + }; + version = "1.11.0"; + }; + git = { + dependencies = ["addressable" "rchardet"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rf4603ffvdlvnzx1nmh2x5j8lic3p24115sm7bx6p2nwii09f69"; + type = "gem"; + }; + version = "1.18.0"; + }; + gitaly = { + dependencies = ["grpc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nwc8mlpznq9b7rgcbxwzaj936pn0syjasxdhplpiz3iqbr64ca8"; + type = "gem"; + }; + version = "16.10.0.pre.rc1"; + }; + gitlab = { + dependencies = ["httparty" "terminal-table"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ycnjjk1im5a82k02avix7c5c87vrkl87gsghgq29g2x34z5wr1z"; + type = "gem"; + }; + version = "4.19.0"; + }; + gitlab-backup-cli = { + dependencies = ["thor"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-backup-cli"; + type = "path"; + }; + version = "0.0.1"; + }; + gitlab-chronic = { + dependencies = ["numerizer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xf857vj55r1jafbkdpdzq6c22r964rj9186m1q8hw4vd7f1h3zq"; + type = "gem"; + }; + version = "0.10.5"; + }; + gitlab-dangerfiles = { + dependencies = ["danger" "danger-gitlab" "rake"]; + groups = ["danger" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jj5w7h457cm2q0ds63kp29ybkq1h02gibn37y2r0wnbimm8fxi5"; + type = "gem"; + }; + version = "4.7.0"; + }; + gitlab-experiment = { + dependencies = ["activesupport" "request_store"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j0zs29izmhqc1jvgfsvikqdyg6r8kf3j9azbmsmm02l45sfwc7j"; + type = "gem"; + }; + version = "0.9.1"; + }; + gitlab-fog-azure-rm = { + dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a3c3slg1iqlhyci9mnbasgw1qcsnznczyqjkn28hfr79cblpwp4"; + type = "gem"; + }; + version = "1.8.0"; + }; + gitlab-glfm-markdown = { + dependencies = ["rb_sys"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nk9kp3zb2x1hpqirq7x2qqpmfsqq4izprbicxjb20bqvm4mvvdb"; + type = "gem"; + }; + version = "0.0.13"; + }; + gitlab-housekeeper = { + dependencies = ["activesupport" "awesome_print" "httparty" "rubocop"]; + groups = ["development" "test"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-housekeeper"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-http = { + dependencies = ["activesupport" "concurrent-ruby" "httparty" "ipaddress" "railties"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-http"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-labkit = { + dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m41by1hly50yq9vsz5pbrb51yryf46n9pm7wnrinaisccrinl79"; + type = "gem"; + }; + version = "0.35.1"; + }; + gitlab-license = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "082ycgvq7j0kyqrbx8shipqk3lgz6i279caf1ljvk9h5wsqqy8zx"; + type = "gem"; + }; + version = "2.4.0"; + }; + gitlab-mail_room = { + dependencies = ["jwt" "net-imap" "oauth2" "redis" "redis-namespace"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1crw7k0mdzkrc94xw901dlmzzhhaa8a2bxyvk2y29h5w7pvkvgy7"; + type = "gem"; + }; + version = "0.0.24"; + }; + gitlab-markup = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m3ypny84jyvlxf060p3q3d8pb4yihxa2br5hh012bgc11d09nky"; + type = "gem"; + }; + version = "1.9.0"; + }; + gitlab-net-dns = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1785yfzgpzwkwsxi3wadwc3mlxvdj304aapi34482hwx8xwdj9pp"; + type = "gem"; + }; + version = "0.9.2"; + }; + gitlab-rspec = { + dependencies = ["activerecord" "activesupport" "rspec"]; + groups = ["development" "monorepo" "test"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-rspec"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-rspec_flaky = { + dependencies = ["activesupport" "rspec"]; + groups = ["development" "monorepo" "test"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-rspec_flaky"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-safe_request_store = { + dependencies = ["rack" "request_store"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-safe_request_store"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-schema-validation = { + dependencies = ["diffy" "pg_query"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-schema-validation"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-sdk = { + dependencies = ["activesupport" "rake" "snowplow-tracker"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00w9p1h3awari07vh33h65y1l1jh7sgym8fzgcp5q5aihha0y9i2"; + type = "gem"; + }; + version = "0.3.0"; + }; + gitlab-secret_detection = { + dependencies = ["parallel" "re2" "toml-rb"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-secret_detection"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab-sidekiq-fetcher = { + dependencies = ["json" "sidekiq"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/sidekiq-reliable-fetch"; + type = "path"; + }; + version = "0.11.0"; + }; + gitlab-styles = { + dependencies = ["rubocop" "rubocop-graphql" "rubocop-performance" "rubocop-rails" "rubocop-rspec"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ss0p7al6vyf5qwzyfbgaaxpa3ykvszwc5in3p2mm5g9dh3frn0d"; + type = "gem"; + }; + version = "11.0.0"; + }; + gitlab-utils = { + dependencies = ["actionview" "activesupport" "addressable" "rake"]; + groups = ["monorepo"]; + platforms = []; + source = { + path = "${src}/gems/gitlab-utils"; + type = "path"; + }; + version = "0.1.0"; + }; + gitlab_chronic_duration = { + dependencies = ["numerizer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vf1zw3z45m6ldwjvvzvbc6gr0spcbl1x1vny4qwid8msi26jxhd"; + type = "gem"; + }; + version = "0.12.0"; + }; + gitlab_omniauth-ldap = { + dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1343sax19jidp7nr4s8bxpkyqwy6zb9lfslg99jys8xinfn20kdv"; + type = "gem"; + }; + version = "2.2.0"; + }; + gitlab_quality-test_tooling = { + dependencies = ["activesupport" "amatch" "gitlab" "http" "nokogiri" "parallel" "rainbow" "rspec-parameterized" "table_print" "zeitwerk"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d59k5c0y8vkmz7fjh7x455d4d19fpw4r9agv02vqyvp7glrbm34"; + type = "gem"; + }; + version = "1.17.0"; + }; + globalid = { + dependencies = ["activesupport"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk"; + type = "gem"; + }; + version = "1.1.0"; + }; + gon = { + dependencies = ["actionpack" "i18n" "multi_json" "request_store"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1w6ji15jrl4p6q0gxy5mmqspvzbmgkqj1d3xmbqr0a1rb7b1i9p3"; + type = "gem"; + }; + version = "6.4.0"; + }; + google-apis-androidpublisher_v3 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09almff2kzdkciai63365q18wy0dfjhj48h8wa7lk77pjbfxgqfp"; + type = "gem"; + }; + version = "0.34.0"; + }; + google-apis-cloudbilling_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00hy54g38rwz71l5gh41zm7v9gywrz7mh6m1z3bwrqh98ixq8bga"; + type = "gem"; + }; + version = "0.21.0"; + }; + google-apis-cloudresourcemanager_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gzv5svbj62qcdw5ljva0sh8wifjx9wwx00kfj9bbff052i7597h"; + type = "gem"; + }; + version = "0.31.0"; + }; + google-apis-compute_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s40lzp1nvnpda45lvybira8gll8snkdd4v3x7sl8fmwi9a18ia0"; + type = "gem"; + }; + version = "0.57.0"; + }; + google-apis-container_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0914hq1wcnvg68vcdwpq5kxnm5h38ay7rrdsrzlqn9i7rca2a7bq"; + type = "gem"; + }; + version = "0.43.0"; + }; + google-apis-container_v1beta1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l0k0davbaaqx76jy9vb6vk6j0l9hl68jmkgn7m6r4nvi37qzi38"; + type = "gem"; + }; + version = "0.43.0"; + }; + google-apis-core = { + dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "webrick"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cly6ycryjhk15d60v3nqvhqpjk9f0nznnslbdnin90f5r54sbpd"; + type = "gem"; + }; + version = "0.11.2"; + }; + google-apis-dns_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k7k1nanm4wqyx19m5x9xzzm3nvf89gg5vr1dq4nfyvkl8g668zm"; + type = "gem"; + }; + version = "0.28.0"; + }; + google-apis-iam_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rhzka4h1zg83zdyalbic25xbp8wrywsdfi6hdp663axdf3y5dqd"; + type = "gem"; + }; + version = "0.36.0"; + }; + google-apis-iamcredentials_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06smnmn2s460xl9x9rh07a3fkqdrjjy6azmx8iywggqgv2k5d8p9"; + type = "gem"; + }; + version = "0.15.0"; + }; + google-apis-monitoring_v3 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0skk42y2y81jlj0qfk790wqz3sdaxrykrc4mp1ysr0zsinp654id"; + type = "gem"; + }; + version = "0.37.0"; + }; + google-apis-pubsub_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gg1br0pj16iag3xax942g101zk4rk48isdpz5abyhc070amk45q"; + type = "gem"; + }; + version = "0.30.0"; + }; + google-apis-serviceusage_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qmh25nvf8f9p9fribm18nszvamilshavrmwyq3xmrs76q17w2sz"; + type = "gem"; + }; + version = "0.28.0"; + }; + google-apis-sqladmin_v1beta4 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17bljsgmbp80d6wn3wjbzi537a9f5hmcr0zv776z2y8q92v565am"; + type = "gem"; + }; + version = "0.41.0"; + }; + google-apis-storage_v1 = { + dependencies = ["google-apis-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k432qgxf41c4m6d68rascm0gyj18r7ypmrnyzmxh7k7nh543awx"; + type = "gem"; + }; + version = "0.29.0"; + }; + google-cloud-artifact_registry-v1 = { + dependencies = ["gapic-common" "google-cloud-errors" "google-cloud-location" "grpc-google-iam-v1"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gkq82lsjz3yw9w819ifdqx9ixcbgydr5myy64wnczknx7fd505s"; + type = "gem"; + }; + version = "0.11.0"; + }; + google-cloud-common = { + dependencies = ["google-protobuf" "googleapis-common-protos-types"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yxmdxx933q48397jsczsmpshr4b61izv3spnhvzxd24s67v13bk"; + type = "gem"; + }; + version = "1.1.0"; + }; + google-cloud-compute-v1 = { + dependencies = ["gapic-common" "google-cloud-common" "google-cloud-errors"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07hly5qbdy0qddw48biw0ybi2cx13861l5i09mj2abzw7yrmjq5r"; + type = "gem"; + }; + version = "2.6.0"; + }; + google-cloud-core = { + dependencies = ["google-cloud-env" "google-cloud-errors"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0amp8vd16pzbdrfbp7k0k38rqxpwd88bkyp35l3x719hbb6l85za"; + type = "gem"; + }; + version = "1.6.0"; + }; + google-cloud-env = { + dependencies = ["faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05gshdqscg4kil6ppfzmikyavsx449bxyj47j33r4n4p8swsqyb1"; + type = "gem"; + }; + version = "1.6.0"; + }; + google-cloud-errors = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jynh1s93nl8njm5l5wcy86pnjmv112cq6m0443s52f04hg6h2s5"; + type = "gem"; + }; + version = "1.3.0"; + }; + google-cloud-location = { + dependencies = ["gapic-common" "google-cloud-errors"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l6j0i8flfdzl9c7db990632jmn5v7bmbh1i6x0sqp3f2p59jv1q"; + type = "gem"; + }; + version = "0.6.0"; + }; + google-cloud-profiler-v2 = { + dependencies = ["gapic-common" "google-cloud-errors"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qyknlvwji7vqhani490cacsrzlqfza10hv47him93yhfnqjmz2k"; + type = "gem"; + }; + version = "0.4.0"; + }; + google-cloud-storage = { + dependencies = ["addressable" "digest-crc" "google-apis-iamcredentials_v1" "google-apis-storage_v1" "google-cloud-core" "googleauth" "mini_mime"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0033bi8qwm0ksxsv5zhz4nzwsiaapq3xk79z8f8rx3v09vdap07j"; + type = "gem"; + }; + version = "1.45.0"; + }; + google-protobuf = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r"; + type = "gem"; + }; + version = "3.25.3"; + }; + googleapis-common-protos = { + dependencies = ["google-protobuf" "googleapis-common-protos-types" "grpc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10p3kl9xdxl4xsijkj2l6qn525xchkbfhx3ch603ammibbxq08ys"; + type = "gem"; + }; + version = "1.4.0"; + }; + googleapis-common-protos-types = { + dependencies = ["google-protobuf"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12w5bwaziz2iqb9dvgnskp2a7ifml6n4lyl9ypvnxj5bfrrwysap"; + type = "gem"; + }; + version = "1.5.0"; + }; + googleauth = { + dependencies = ["faraday" "jwt" "multi_json" "os" "signet"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ry9v23kndgx2pxq9v31l68k9lnnrcz1w4v75bkxq88jmbddljl1"; + type = "gem"; + }; + version = "1.8.1"; + }; + gpgme = { + dependencies = ["mini_portile2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "010wr6nnifi952bx4v5c49q25yx1g8lhib5wiv2sg7bip3yvlyy8"; + type = "gem"; + }; + version = "2.0.23"; + }; + grape = { + dependencies = ["activesupport" "builder" "dry-types" "mustermann-grape" "rack" "rack-accept"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jj98w80ry1ir8lc3347130s0z8yd7gk727r9ynwwk782x6gkvrs"; + type = "gem"; + }; + version = "2.0.0"; + }; + grape-entity = { + dependencies = ["activesupport" "multi_json"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wdm44s7l6jxqszybf58ar7699vlq7vj2zfsi8f9sh9mh5a89dcy"; + type = "gem"; + }; + version = "0.10.2"; + }; + grape-path-helpers = { + dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mq2cwy0jvprq3wdilds1n865jdl58sqg00im4w6fybf5kjiclmd"; + type = "gem"; + }; + version = "2.0.1"; + }; + grape-swagger = { + dependencies = ["grape" "rack-test"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1467ni6f0yy4z3qldjs8x0h50n9ym6zyjbx5gqqzbq6zhvgbx40g"; + type = "gem"; + }; + version = "2.0.1"; + }; + grape-swagger-entity = { + dependencies = ["grape-entity" "grape-swagger"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08smc3c2li1xa2nmgjkn742sp1xj9qzppy28v68cz5mc00nkf7pm"; + type = "gem"; + }; + version = "0.5.1"; + }; + grape_logging = { + dependencies = ["grape" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lcjqwal3wc2r41wsi01d09cyhxhglxp6y7hd0564pdx5lr3xk7g"; + type = "gem"; + }; + version = "1.8.4"; + }; + graphiql-rails = { + dependencies = ["railties" "sprockets-rails"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lcf0gc88i3wk8cs71qm62ac9lrc1a8v5sd0369c5ip2ic4wbqh2"; + type = "gem"; + }; + version = "1.8.0"; + }; + graphlient = { + dependencies = ["faraday" "faraday_middleware" "graphql-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h652p91zdbdigb155vhdlh0lnq4ia8wlg5y5h0ibhlf9i5ndn5q"; + type = "gem"; + }; + version = "0.6.0"; + }; + graphlyte = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kc0l67n5zlpwbnb8nrr27nm4fzpb7qih77a00grcvnygnv4mbxm"; + type = "gem"; + }; + version = "1.0.0"; + }; + graphql = { + dependencies = ["racc"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zmw8gslwqaydxvmvan0m2rpbgxplm77kwp64bg051cvnasb9vhm"; + type = "gem"; + }; + version = "2.2.5"; + }; + graphql-client = { + dependencies = ["activesupport" "graphql"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1iv9d6l14h05vnhrzmm5fn2cnjb469an28c9z7c6p4bgjy0rssgy"; + type = "gem"; + }; + version = "0.19.0"; + }; + graphql-docs = { + dependencies = ["commonmarker" "dartsass" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mq2zafz0n5yd0i251w1a37l3dk7dn2mhw5snzhjdnv3jaard0pn"; + type = "gem"; + }; + version = "4.0.0"; + }; + grpc = { + dependencies = ["google-protobuf" "googleapis-common-protos-types"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bzkhy5yy4a8nlp89wwfw9bv4h358gsa9rvzn6i2y0z2ha5vmgqn"; + type = "gem"; + }; + version = "1.60.0"; + }; + grpc-google-iam-v1 = { + dependencies = ["google-protobuf" "googleapis-common-protos" "grpc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kip34n9604j2cc9rkplv5ljq0n8f4aizix4yr8rginsa38md8yf"; + type = "gem"; + }; + version = "1.5.0"; + }; + gssapi = { + dependencies = ["ffi"]; + groups = ["kerberos"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qdfhj12aq8v0y961v4xv96a1y2z80h3xhvzrs9vsfgf884g6765"; + type = "gem"; + }; + version = "1.3.1"; + }; + guard = { + dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fwgvkmrg97xfswwgfrfcl1nc937yxwazfvpmf8vxj7cvnx7mfki"; + type = "gem"; + }; + version = "2.16.2"; + }; + guard-compat = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis"; + type = "gem"; + }; + version = "1.2.1"; + }; + guard-rspec = { + dependencies = ["guard" "guard-compat" "rspec"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4"; + type = "gem"; + }; + version = "4.7.3"; + }; + haml = { + dependencies = ["temple" "tilt"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "035fgbfr20m08w4603ls2lwqbggr0vy71mijz0p68ib1am394xbf"; + type = "gem"; + }; + version = "5.2.2"; + }; + haml_lint = { + dependencies = ["haml" "parallel" "rainbow" "rubocop" "sysexits"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "060vz5dx0ag3ggpwhwfcadfim0g8aabl0b1dvnzagizymfsw2g92"; + type = "gem"; + }; + version = "0.53.0"; + }; + hamlit = { + dependencies = ["temple" "thor" "tilt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13n3v9kbyrrm48hn1v0028cdrsq7pswb4s4w63x4b29kc99m1s6j"; + type = "gem"; + }; + version = "2.15.0"; + }; + hana = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03cvrv2wl25j9n4n509hjvqnmwa60k92j741b64a1zjisr1dn9al"; + type = "gem"; + }; + version = "1.3.7"; + }; + hashdiff = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c"; + type = "gem"; + }; + version = "1.0.1"; + }; + hashie = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x"; + type = "gem"; + }; + version = "5.0.0"; + }; + health_check = { + dependencies = ["railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mrv2323hx4lbcr6xii6ry89b3zvly5jsaacwbblxibx4c46a50h"; + type = "gem"; + }; + version = "3.1.0"; + }; + heapy = { + dependencies = ["thor"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sl56ma851i82g3ax08igbn48igriiy152xzx30wgzv1bn21w53l"; + type = "gem"; + }; + version = "0.2.0"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "180kjksi0sdlqb0aq0bhal96ifwqm25hzb3w709ij55j51qls7ca"; + type = "gem"; + }; + version = "2.14.3"; + }; + html2text = { + dependencies = ["nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii"; + type = "gem"; + }; + version = "0.2.0"; + }; + htmlbeautifier = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y55dx25l3wwc025mwl6jsbcsqrm30gs2d2pxnaxg07yh22ckq4x"; + type = "gem"; + }; + version = "1.4.2"; + }; + htmlentities = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; + type = "gem"; + }; + version = "4.3.4"; + }; + http = { + dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw"; + type = "gem"; + }; + version = "5.1.1"; + }; + http-accept = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09m1facypsdjynfwrcv19xcb1mqg8z6kk31g8r33pfxzh838c9n6"; + type = "gem"; + }; + version = "1.7.0"; + }; + http-cookie = { + dependencies = ["domain_name"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13rilvlv8kwbzqfb644qp6hrbsj82cbqmnzcvqip1p6vqx36sxbk"; + type = "gem"; + }; + version = "1.0.5"; + }; + http-form_data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc"; + type = "gem"; + }; + version = "2.3.0"; + }; + httparty = { + dependencies = ["mini_mime" "multi_xml"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "050jzsa6fbfvy2rldhk7mf1sigildaqvbplfz2zs6c0zlzwppvq0"; + type = "gem"; + }; + version = "0.21.0"; + }; + httpclient = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx"; + type = "gem"; + }; + version = "1.14.1"; + }; + i18n_data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rizqqss1bvb668mw72ls7rlj6im82aizz230jxn7d39kaq9kap5"; + type = "gem"; + }; + version = "0.13.1"; + }; + icalendar = { + dependencies = ["ice_cube"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11zfs0l8y2a6gpf0krm91d0ap2mnf04qky89dyzxwaspqxqgj174"; + type = "gem"; + }; + version = "2.8.0"; + }; + ice_cube = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dri4mcya1fwzrr9nzic8hj1jr28a2szjag63f9k7p2bw9fpw4fs"; + type = "gem"; + }; + version = "0.16.4"; + }; + ice_nine = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x"; + type = "gem"; + }; + version = "0.11.2"; + }; + imagen = { + dependencies = ["parser"]; + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qm1jcprs0xys8m72kgm9pasd1xzhiqiyv64baxwcygyshkvgrzx"; + type = "gem"; + }; + version = "0.1.8"; + }; + influxdb-client = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00lzkgzr6zmnlbqcfsb38b4d3762wslx0v32nsy6052jksvas7xm"; + type = "gem"; + }; + version = "2.9.0"; + }; + invisible_captcha = { + dependencies = ["rails"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07ibhphcvf9lfaar9g78cazbdrp03dzfks53bcaiss8vxgrm5d02"; + type = "gem"; + }; + version = "2.1.0"; + }; + ipaddr = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ypic2hrmvvcgw7al72raphqv5cs1zvq4w284pwrkvfqsrqrqrsf"; + type = "gem"; + }; + version = "1.2.5"; + }; + ipaddress = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45"; + type = "gem"; + }; + version = "0.8.3"; + }; + ipynbdiff = { + dependencies = ["diffy" "oj"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/gems/ipynbdiff"; + type = "path"; + }; + version = "0.4.7"; + }; + jaeger-client = { + dependencies = ["opentracing" "thrift"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a2qlkc1hkr5hkj2574l1a63sm04bdx98gfhh9m8vvp6psdrnpnb"; + type = "gem"; + }; + version = "1.1.0"; + }; + jaro_winkler = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10fd3i92897blalxfkgc0jjv0qqx31v7cm7j2b6a3b97an0bfz80"; + type = "gem"; + }; + version = "1.5.6"; + }; + jira-ruby = { + dependencies = ["activesupport" "atlassian-jwt" "multipart-post" "oauth"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qpbc97sag426h4hgcizqq2njxx5fridzxq6mq5s93jazxmnxwmb"; + type = "gem"; + }; + version = "2.3.0"; + }; + jmespath = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cdw9vw2qly7q7r41s7phnac264rbsdqgj4l0h4nqgbjb157g393"; + type = "gem"; + }; + version = "1.6.2"; + }; + js_regex = { + dependencies = ["character_set" "regexp_parser" "regexp_property_values"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1da4ccsq5bycg28iv0smmrra80jad3a8ya10lps5lv8fbbfvqd3r"; + type = "gem"; + }; + version = "3.8.0"; + }; + json = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6"; + type = "gem"; + }; + version = "2.6.3"; + }; + json-jwt = { + dependencies = ["activesupport" "aes_key_wrap" "bindata" "httpclient"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04315mf4p9qa97grdfqv922paghzdfrbb982ap0p99rqwla4znv6"; + type = "gem"; + }; + version = "1.15.3"; + }; + json_schemer = { + dependencies = ["ecma-re-validator" "hana" "regexp_parser" "uri_template"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rkb7gz819g82n3xshb5g8kgv1nvgwg1lm2fk7715pggzcgc4qik"; + type = "gem"; + }; + version = "0.2.18"; + }; + jsonb_accessor = { + dependencies = ["activerecord" "activesupport" "pg"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q2q9i2kf4p6vw8fbzvsd037wl837gpsiiikjazf6fdfayi803v7"; + type = "gem"; + }; + version = "1.3.10"; + }; + jsonpath = { + dependencies = ["multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fkdjic88hh0accp0sbx5mcrr9yaqwampf5c3214212d4i614138"; + type = "gem"; + }; + version = "1.1.2"; + }; + jwt = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kcmnx6rgjyd7sznai9ccns2nh7p7wnw3mi8a7vf2wkm51azwddq"; + type = "gem"; + }; + version = "2.5.0"; + }; + kaminari = { + dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gia8irryvfhcr6bsr64kpisbgdbqjsqfgrk12a11incmpwny1y4"; + type = "gem"; + }; + version = "1.2.2"; + }; + kaminari-actionview = { + dependencies = ["actionview" "kaminari-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02f9ghl3a9b5q7l079d3yzmqjwkr4jigi7sldbps992rigygcc0k"; + type = "gem"; + }; + version = "1.2.2"; + }; + kaminari-activerecord = { + dependencies = ["activerecord" "kaminari-core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c148z97s1cqivzbwrak149z7kl1rdmj7dxk6rpkasimmdxsdlqd"; + type = "gem"; + }; + version = "1.2.2"; + }; + kaminari-core = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zw3pg6kj39y7jxakbx7if59pl28lhk98fx71ks5lr3hfgn6zliv"; + type = "gem"; + }; + version = "1.2.2"; + }; + kas-grpc = { + dependencies = ["grpc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13bkqrdz1rdn23nn0zni7vdvwnm34apgi3xy42djhhxl698888dv"; + type = "gem"; + }; + version = "0.4.0"; + }; + knapsack = { + dependencies = ["rake"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jqs9shqg3nd6j3kzbh8gxv7ix1n877y64kdjzbrwjgz6ksqs9mx"; + type = "gem"; + }; + version = "1.22.0"; + }; + kramdown = { + dependencies = ["rexml"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0757lqaq593z8hzdv98nai73ag384dkk7jgj3mcq2r6ix7130ifb"; + type = "gem"; + }; + version = "2.3.2"; + }; + kramdown-parser-gfm = { + dependencies = ["kramdown"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv"; + type = "gem"; + }; + version = "1.1.0"; + }; + kubeclient = { + dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k1zi27fnasqpinfxnajm81pyr11k2j510wacr53d37v97bzr1a9"; + type = "gem"; + }; + version = "4.11.0"; + }; + language_server-protocol = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + type = "gem"; + }; + version = "3.17.0.3"; + }; + launchy = { + dependencies = ["addressable"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xdyvr5j0gjj7b10kgvh8ylxnwk3wx19my42wqn9h82r4p246hlm"; + type = "gem"; + }; + version = "2.5.0"; + }; + lefthook = { + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rc7fzg4rjchyv7rd6vlz35hg5n8k5625s78hj12zji0xhg1jznc"; + type = "gem"; + }; + version = "1.5.6"; + }; + letter_opener = { + dependencies = ["launchy"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09a7kgsmr10a0hrc9bwxglgqvppjxij9w8bxx91mnvh0ivaw0nq9"; + type = "gem"; + }; + version = "1.7.0"; + }; + letter_opener_web = { + dependencies = ["actionmailer" "letter_opener" "railties" "rexml"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vvvaz2ngaxv0s6sj25gdvp73vd8pfl8q3jharadg18p3va0m1ik"; + type = "gem"; + }; + version = "2.0.0"; + }; + libyajl2 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vx0mv0bbcy0qh3ik08b42vrq4kw1zg51121r18c0vvp4p3zcpda"; + type = "gem"; + }; + version = "2.1.0"; + }; + license_finder = { + dependencies = ["rubyzip" "thor" "tomlrb" "with_env" "xml-simple"]; + groups = ["development" "omnibus" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sig4ifxzvcz3fwjnz93dpv61v6sxpmlknj5f8n112ragrbcj8hb"; + type = "gem"; + }; + version = "7.0.1"; + }; + licensee = { + dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05g5w9c4jlfhwn0hfz117s1c7hfdm5yn7cywr4mah7xr41yvbh04"; + type = "gem"; + }; + version = "9.16.1"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0agybr37wpjv3xy4ipcmsvsibgdgphzrwbvcj4vfiykpmakwm01v"; + type = "gem"; + }; + version = "3.7.1"; + }; + llhttp-ffi = { + dependencies = ["ffi-compiler" "rake"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5"; + type = "gem"; + }; + version = "0.4.0"; + }; + locale = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0997465kxvpxm92fiwc2b16l49mngk7b68g5k35ify0m3q0yxpdn"; + type = "gem"; + }; + version = "2.1.3"; + }; + lockbox = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sm365iplg1iscizckjm6zy57zs0350czi9afqfnvig0wh35i3na"; + type = "gem"; + }; + version = "1.3.0"; + }; + lograge = { + dependencies = ["actionpack" "activesupport" "railties" "request_store"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vrjm4yqn5l6q5gsl72fmk95fl6j9z1a05gzbrwmsm3gp1a1bgac"; + type = "gem"; + }; + version = "0.11.2"; + }; + loofah = { + dependencies = ["crass" "nokogiri"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh"; + type = "gem"; + }; + version = "2.22.0"; + }; + lookbook = { + dependencies = ["activemodel" "css_parser" "htmlbeautifier" "htmlentities" "marcel" "railties" "redcarpet" "rouge" "view_component" "yard" "zeitwerk"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nd26yk8fwhb7lf7knzl6pf93v2spyf90gz4c6f8xfzq9hv6kj17"; + type = "gem"; + }; + version = "2.2.0"; + }; + lru_redux = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yxghzg7476sivz8yyr9nkak2dlbls0b89vc2kg52k0nmg6d0wgf"; + type = "gem"; + }; + version = "1.1.0"; + }; + lumberjack = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07rvqrizmqzbjzhdsh4l4fyif26a7czb506dvch18kr3nkkamim5"; + type = "gem"; + }; + version = "1.2.7"; + }; + mail = { + dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bf9pysw1jfgynv692hhaycfxa8ckay1gjw5hz3madrbrynryfzc"; + type = "gem"; + }; + version = "2.8.1"; + }; + mail-smtp_pool = { + dependencies = ["connection_pool" "mail"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/mail-smtp_pool"; + type = "path"; + }; + version = "0.1.0"; + }; + marcel = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0"; + type = "gem"; + }; + version = "1.0.2"; + }; + marginalia = { + dependencies = ["actionpack" "activerecord"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kw9l9gw9dqmbpjxs3ndifia2204n8n92pjr4xp78hiynqm22qyb"; + type = "gem"; + }; + version = "1.11.1"; + }; + matrix = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h2cgkpzkh3dd0flnnwfq6f3nl2b1zff9lvqz8xs853ssv5kq23i"; + type = "gem"; + }; + version = "0.4.2"; + }; + memory_profiler = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c81d68r4wx0ckbmqxlfqc2qpd94jwcmqdm0xgr0s46r48pv9k9q"; + type = "gem"; + }; + version = "1.0.1"; + }; + method_source = { + groups = ["default" "development" "metrics" "test"]; + platforms = [{ + engine = "maglev"; + } { + engine = "ruby"; + }]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; + type = "gem"; + }; + version = "1.0.0"; + }; + microsoft_graph_mailer = { + dependencies = ["mail" "oauth2"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/microsoft_graph_mailer"; + type = "path"; + }; + version = "0.1.0"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5"; + type = "gem"; + }; + version = "3.5.1"; + }; + mime-types-data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yjv0apysnrhbc70ralinfpcqn9382lxr643swp7a5sdwpa9cyqg"; + type = "gem"; + }; + version = "3.2023.1003"; + }; + mini_histogram = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "156xs8k7fqqcbk1fbf0ndz6gfw380fb2jrycfvhb06269r84n4ba"; + type = "gem"; + }; + version = "0.3.1"; + }; + mini_magick = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lpq12z70n10c1qshcddd5nib2pkcbkwzvmiqqzj60l01k3x4fg9"; + type = "gem"; + }; + version = "4.10.1"; + }; + mini_mime = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5"; + type = "gem"; + }; + version = "1.1.2"; + }; + mini_portile2 = { + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs"; + type = "gem"; + }; + version = "2.8.5"; + }; + minitest = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + mixlib-cli = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ydxlfgd7nnj3rp1y70k4yk96xz5cywldjii2zbnw3sq9pippwp6"; + type = "gem"; + }; + version = "2.1.8"; + }; + mixlib-config = { + dependencies = ["tomlrb"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j0122lv2qgccl61njqi0pj6sp6nb85y07gcmw16bwg4k0c8nx6p"; + type = "gem"; + }; + version = "3.0.27"; + }; + mixlib-log = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n5dm5iz90ijvjn59jfm8gb8hgsvbj0f1kpzbl38b02z0z4a4v7x"; + type = "gem"; + }; + version = "3.0.9"; + }; + mixlib-shellout = { + dependencies = ["chef-utils"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0zkwg76y96nkh1mv0k92ybq46cr06v1wmic16129ls3yqzwx3xj6"; + type = "gem"; + }; + version = "3.2.7"; + }; + mize = { + dependencies = ["protocol"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09zn7789ifzc13xraqsqxk762l4898n1f63scidgzjq1y06bmg2m"; + type = "gem"; + }; + version = "0.4.1"; + }; + msgpack = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02af38s49111wglqzcjcpa7bwg6psjgysrjvgk05h3x4zchb6gd5"; + type = "gem"; + }; + version = "1.5.4"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr"; + type = "gem"; + }; + version = "1.14.1"; + }; + multi_xml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"; + type = "gem"; + }; + version = "0.6.0"; + }; + multipart-post = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n0kvnrcrjn31jb97kcx3wj1f5kkjza7yygfq8rxzf3i57g7jaa6"; + type = "gem"; + }; + version = "2.2.3"; + }; + murmurhash3 = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dh9xnjs98a2by2rd8jlcmx94miryssk1ral2pji21xbx7i2q2ip"; + type = "gem"; + }; + version = "0.1.7"; + }; + mustermann = { + dependencies = ["ruby2_keywords"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rwbq20s2gdh8dljjsgj5s6wqqfmnbclhvv2c2608brv7jm6jdbd"; + type = "gem"; + }; + version = "3.0.0"; + }; + mustermann-grape = { + dependencies = ["mustermann"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zpmc099rcpxmlfxb71zd6l7f9fcsg1fhi6627r03y1qlgb0jlvg"; + type = "gem"; + }; + version = "1.0.2"; + }; + nap = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll"; + type = "gem"; + }; + version = "1.1.0"; + }; + neighbor = { + dependencies = ["activerecord"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r9k34xz7x7fpd18bix0cd5bk2wv6mj8z67f8fr7l30d2717m23h"; + type = "gem"; + }; + version = "0.2.3"; + }; + nenv = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr"; + type = "gem"; + }; + version = "0.3.0"; + }; + net-http = { + dependencies = ["net-protocol" "uri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11mymfxpsgpwr1qbv8vwj8av9kksqj0632p9s3x35bzrnq4y393m"; + type = "gem"; + }; + version = "0.1.1"; + }; + net-http-persistent = { + dependencies = ["connection_pool"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yfypmfg1maf20yfd22zzng8k955iylz7iip0mgc9lazw36g8li7"; + type = "gem"; + }; + version = "4.0.1"; + }; + net-imap = { + dependencies = ["date" "net-protocol"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1d996zf3g8xz244791b0qsl9vr7zg4lqnnmf9k2kshr9lki5jam8"; + type = "gem"; + }; + version = "0.3.4"; + }; + net-ldap = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj"; + type = "gem"; + }; + version = "0.17.1"; + }; + net-ntp = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv"; + type = "gem"; + }; + version = "2.1.3"; + }; + net-pop = { + dependencies = ["net-protocol"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4"; + type = "gem"; + }; + version = "0.1.2"; + }; + net-protocol = { + dependencies = ["timeout"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "051cc82dl41a66c9sxv4lx4slqk7sz1v4iy0hdk6gpjyjszf4hxd"; + type = "gem"; + }; + version = "0.1.3"; + }; + net-scp = { + dependencies = ["net-ssh"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1si2nq9l6jy5n2zw1q59a5gaji7v9vhy8qx08h4fg368906ysbdk"; + type = "gem"; + }; + version = "4.0.0"; + }; + net-smtp = { + dependencies = ["net-protocol"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x"; + type = "gem"; + }; + version = "0.3.3"; + }; + net-ssh = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jyj6j7w9zpj2zhp4dyhdjiwsn9rqwksj7s7fzpnn7rx2xvz2a1a"; + type = "gem"; + }; + version = "7.2.0"; + }; + netrc = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; + type = "gem"; + }; + version = "0.11.0"; + }; + nio4r = { + groups = ["default" "puma" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm"; + type = "gem"; + }; + version = "2.7.0"; + }; + no_proxy_fix = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "006dmdb640v1kq0sll3dnlwj1b0kpf3i1p27ygyffv8lpcqlr6sf"; + type = "gem"; + }; + version = "0.1.2"; + }; + nokogiri = { + dependencies = ["mini_portile2" "racc"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl"; + type = "gem"; + }; + version = "1.16.0"; + }; + notiffany = { + dependencies = ["nenv" "shellany"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f47h3bmg1apr4x51szqfv3rh2vq58z3grh4w02cp3bzbdh6jxnk"; + type = "gem"; + }; + version = "0.1.3"; + }; + numerizer = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ysxf30qcybh131r98frp38sqqkdhcjwpnajgrxl2w2kxvapd075"; + type = "gem"; + }; + version = "0.2.0"; + }; + oauth = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0"; + type = "gem"; + }; + version = "0.5.6"; + }; + oauth2 = { + dependencies = ["faraday" "jwt" "multi_xml" "rack" "snaky_hash" "version_gem"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yzpaghh8kwzgmvmrlbzf36ks5s2hf34rayzw081dp2jrzprs7xj"; + type = "gem"; + }; + version = "2.0.9"; + }; + octokit = { + dependencies = ["faraday" "sawyer"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11fhv1a43c51jkgmqf62aypf9yw74lc6ph4qmzsh2bydwwzbwqn3"; + type = "gem"; + }; + version = "8.0.0"; + }; + ohai = { + dependencies = ["chef-config" "chef-utils" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "train-core" "wmi-lite"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15fz0ws8q9635rl5y4jyiwxbibr9ilba4askazhrgy4pcmmgs34q"; + type = "gem"; + }; + version = "18.1.3"; + }; + oj = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lggrhlihxyfgiqqr9b2fqdxc4d2zff2czq30m3rgn8a0b2gsv90"; + type = "gem"; + }; + version = "3.13.23"; + }; + oj-introspect = { + dependencies = ["oj"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0g9ksljmlkg56xz8ddzsjkhjh89jv4hr99k3x7c70a7dcx2s85f4"; + type = "gem"; + }; + version = "0.7.2"; + }; + omniauth = { + dependencies = ["hashie" "rack" "rack-protection"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0013azz7kz2q6dy8131b1q5xwl7qa9nz5iqpn8i3ccn9br7j7xxz"; + type = "gem"; + }; + version = "2.1.0"; + }; + omniauth-alicloud = { + dependencies = ["omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gh1d69w6p62hj18bh2p5fdykg9za1yifpq18swp9ms0pcx4yp4w"; + type = "gem"; + }; + version = "3.0.0"; + }; + omniauth-atlassian-oauth2 = { + dependencies = ["omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jbnbp0pnasyrf0mgyig72hx8bdwhv78na6ffqrs1f4a3155f1zb"; + type = "gem"; + }; + version = "0.2.0"; + }; + omniauth-auth0 = { + dependencies = ["omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1g24cnisa3ic3kilx1is2h0wq303qlmx2q5a92yxaal1cgwxlzg7"; + type = "gem"; + }; + version = "3.1.0"; + }; + omniauth-azure-activedirectory-v2 = { + dependencies = ["omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wnhibz903ssnq9scl65a47d41zcczb3wjvc44y3w8ydabfwx164"; + type = "gem"; + }; + version = "2.0.0"; + }; + omniauth-azure-oauth2 = { + dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/omniauth-azure-oauth2"; + type = "path"; + }; + version = "0.0.10"; + }; + omniauth-dingtalk-oauth2 = { + dependencies = ["omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16qkd51f1ab1hw4az27qj3vk958aal67by8djsplwd1q3h7nfib5"; + type = "gem"; + }; + version = "1.0.1"; + }; + omniauth-facebook = { + dependencies = ["omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5"; + type = "gem"; + }; + version = "4.0.0"; + }; + omniauth-github = { + dependencies = ["omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m6a7kg3lxz2nm96prln2ja8r4wlm37m5vsy9199vnynqq5fgy4g"; + type = "gem"; + }; + version = "2.0.1"; + }; + omniauth-gitlab = { + dependencies = ["omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/omniauth-gitlab"; + type = "path"; + }; + version = "4.0.0"; + }; + omniauth-google-oauth2 = { + dependencies = ["jwt" "oauth2" "omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fahkghfa2iczmwss9bz5l4rh7siwzjnjp3akh7pdbsfx0kg35j4"; + type = "gem"; + }; + version = "1.1.1"; + }; + omniauth-oauth = { + dependencies = ["oauth" "omniauth"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7"; + type = "gem"; + }; + version = "1.2.0"; + }; + omniauth-oauth2 = { + dependencies = ["oauth2" "omniauth"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y4y122xm8zgrxn5nnzwg6w39dnjss8pcq2ppbpx9qn7kiayky5j"; + type = "gem"; + }; + version = "1.8.0"; + }; + omniauth-oauth2-generic = { + dependencies = ["omniauth-oauth2" "rake"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04vnmszmm1jmwvg6cwdy9jxliwa8yawp4w4690pvyplx04wqavnf"; + type = "gem"; + }; + version = "0.2.8"; + }; + omniauth-salesforce = { + dependencies = ["omniauth" "omniauth-oauth2"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/omniauth-salesforce"; + type = "path"; + }; + version = "1.0.5"; + }; + omniauth-saml = { + dependencies = ["omniauth" "ruby-saml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01k9rkg97npcgm8r4x3ja8y20hsg4zy0dcjpzafx148q4yxbg74n"; + type = "gem"; + }; + version = "2.1.0"; + }; + omniauth-shibboleth-redux = { + dependencies = ["omniauth"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qgzp0xaka6vqpx69mw6nbqaqmyqrawi11cyak4gq19l23ym7cz9"; + type = "gem"; + }; + version = "2.0.0"; + }; + omniauth-twitter = { + dependencies = ["omniauth-oauth" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65"; + type = "gem"; + }; + version = "1.4.0"; + }; + omniauth_crowd = { + dependencies = ["activesupport" "nokogiri" "omniauth"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/omniauth_crowd"; + type = "path"; + }; + version = "2.4.0"; + }; + omniauth_openid_connect = { + dependencies = ["omniauth" "openid_connect"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08yl0x203k6nrshc70zawfqh79ap1c3fyka9zwwy61cvn7sih4sz"; + type = "gem"; + }; + version = "0.6.1"; + }; + open4 = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1"; + type = "gem"; + }; + version = "1.3.4"; + }; + openid_connect = { + dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w474bz3s1hqhilvrddr33l2nkyikypaczp3808w0345jr88b5m7"; + type = "gem"; + }; + version = "1.3.0"; + }; + openssl = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873"; + type = "gem"; + }; + version = "3.1.0"; + }; + openssl-signature_algorithm = { + dependencies = ["openssl"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "103yjl68wqhl5kxaciir5jdnyi7iv9yckishdr52s5knh9g0pd53"; + type = "gem"; + }; + version = "1.3.0"; + }; + opentracing = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11lj1d8vq0hkb5hjz8q4lm82cddrggpbb33dhqfn7rxhwsmxgdfy"; + type = "gem"; + }; + version = "0.5.0"; + }; + optimist = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk"; + type = "gem"; + }; + version = "3.0.1"; + }; + org-ruby = { + dependencies = ["rubypants"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk"; + type = "gem"; + }; + version = "0.9.12"; + }; + orm_adapter = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda"; + type = "gem"; + }; + version = "0.5.0"; + }; + os = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gwd20smyhxbm687vdikfh1gpi96h8qb1x28s2pdcysf6dm6v0ap"; + type = "gem"; + }; + version = "1.1.4"; + }; + pact = { + dependencies = ["pact-mock_service" "pact-support" "rack-test" "rspec" "term-ansicolor" "thor" "webrick"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a3fbwzzzdsbzipv63mcq1q761mqc6w8k1vxkbrbf3aqi2489p8b"; + type = "gem"; + }; + version = "1.64.0"; + }; + pact-mock_service = { + dependencies = ["find_a_port" "json" "pact-support" "rack" "rspec" "thor" "webrick"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lds3xpkrx91lm74pa3n5167c8mkmqyki9axj7bjj0m18r2ybna2"; + type = "gem"; + }; + version = "3.11.2"; + }; + pact-support = { + dependencies = ["awesome_print" "diff-lcs" "expgen" "rainbow"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0waq8ywxhljm5sjk7m3q7f6s2pvcfshg3ncs9dl7kcsg2ail7hs1"; + type = "gem"; + }; + version = "1.20.0"; + }; + parallel = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb"; + type = "gem"; + }; + version = "1.22.1"; + }; + parser = { + dependencies = ["ast" "racc"]; + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "181faqz59p2mbfab5q4l1r298pq0nxl0k85rjcb58g0lardmv321"; + type = "gem"; + }; + version = "3.3.0.2"; + }; + parslet = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88"; + type = "gem"; + }; + version = "1.8.2"; + }; + pastel = { + dependencies = ["tty-color"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xash2gj08dfjvq4hy6l1z22s5v30fhizwgs10d6nviggpxsj7a8"; + type = "gem"; + }; + version = "0.8.0"; + }; + peek = { + dependencies = ["railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k1yggixrcj72jlc98hi3jjd04x71dpynn8dxpcdhinyijniwl6n"; + type = "gem"; + }; + version = "1.1.0"; + }; + pg = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb"; + type = "gem"; + }; + version = "1.5.6"; + }; + pg_query = { + dependencies = ["google-protobuf"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p8ljf694qvrf5875ljg6kp7gvmndy8490kasjzcq22ghryg9xxp"; + type = "gem"; + }; + version = "5.1.0"; + }; + plist = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wzhnbzraz60paxhm48c50fp9xi7cqka4gfhxmiq43mhgh5ajg3h"; + type = "gem"; + }; + version = "3.7.0"; + }; + png_quantizator = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sqhydp5g9ly1kgfiya1fc6srmhf6avrb74j09z3lp0jck8d88v0"; + type = "gem"; + }; + version = "0.2.1"; + }; + premailer = { + dependencies = ["addressable" "css_parser" "htmlentities"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11j7d6abxivj15yax47z3f751wz4pnl02qszzc9swswf8hn41r03"; + type = "gem"; + }; + version = "1.16.0"; + }; + premailer-rails = { + dependencies = ["actionmailer" "premailer"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bqi7d4f15vy3f1g0xb3bxmncfbzv9dd3ilhqj0plvw64xqbkp3w"; + type = "gem"; + }; + version = "1.10.3"; + }; + prime = { + dependencies = ["forwardable" "singleton"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1973kz8lbck6ga5v42f55jk8b8pnbgwp9p67dl1xw15gvz55dsfl"; + type = "gem"; + }; + version = "0.1.2"; + }; + prism = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pgxgng905jbhp0pr54w4w2pr4nqcq80ijj48204bj4x4nigj8ji"; + type = "gem"; + }; + version = "0.24.0"; + }; + proc_to_ast = { + dependencies = ["coderay" "parser" "unparser"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj"; + type = "gem"; + }; + version = "0.1.0"; + }; + prometheus-client-mmap = { + dependencies = ["rb_sys"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vg47xx3wgg24snqc6ychb08mbcyrjmvxym9fg69cpa4xvj133fx"; + type = "gem"; + }; + version = "1.1.1"; + }; + protocol = { + dependencies = ["ruby_parser"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1f8nvz0621gfsyiwy2nmwaliqafmf4p2wnln9qldd31vwl4wbmyw"; + type = "gem"; + }; + version = "2.0.0"; + }; + pry = { + dependencies = ["coderay" "method_source"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4"; + type = "gem"; + }; + version = "0.14.2"; + }; + pry-byebug = { + dependencies = ["byebug" "pry"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y41al94ks07166qbp2200yzyr5y60hm7xaiw4lxpgsm4b1pbyf8"; + type = "gem"; + }; + version = "3.10.1"; + }; + pry-rails = { + dependencies = ["pry"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6"; + type = "gem"; + }; + version = "0.3.9"; + }; + pry-shell = { + dependencies = ["pry" "tty-markdown" "tty-prompt"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "027jd53zjbimqb3n1329q4njs94bagmfnrfylxqv04lrsa14h0md"; + type = "gem"; + }; + version = "0.6.4"; + }; + public_suffix = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sqw1zls6227bgq38sxb2hs8nkdz4hn1zivs27mjbniswfy4zvi6"; + type = "gem"; + }; + version = "5.0.0"; + }; + puma = { + dependencies = ["nio4r"]; + groups = ["puma"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm"; + type = "gem"; + }; + version = "6.4.0"; + }; + pyu-ruby-sasl = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn"; + type = "gem"; + }; + version = "0.0.3.3"; + }; + raabro = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10m8bln9d00dwzjil1k42i5r7l82x25ysbi45fwyv4932zsrzynl"; + type = "gem"; + }; + version = "1.4.0"; + }; + racc = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq"; + type = "gem"; + }; + version = "1.6.2"; + }; + rack = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10mpk0hl6hnv324fp1pfimi2nw9acj0z4gyhrph36qg84pk1s4m7"; + type = "gem"; + }; + version = "2.2.8.1"; + }; + rack-accept = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936"; + type = "gem"; + }; + version = "0.4.5"; + }; + rack-attack = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0z6pj5vjgl6swq7a33gssf795k958mss8gpmdb4v4cydcs7px91w"; + type = "gem"; + }; + version = "6.7.0"; + }; + rack-cors = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02lvkg1nb4z3zc2nry545dap7a64bb9h2k8waxfz0jkabkgnpimw"; + type = "gem"; + }; + version = "2.0.1"; + }; + rack-oauth2 = { + dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fknwsxz4429w1hndl6y30cmm2n34wmmaaj2hhp6jrm8ssfsfwjf"; + type = "gem"; + }; + version = "1.21.3"; + }; + rack-protection = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "169jzzgvbjrqmz4q55wp9pg4ji2h90mggcdxy152gv5vp96l2hgx"; + type = "gem"; + }; + version = "2.2.2"; + }; + rack-proxy = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12jw7401j543fj8cc83lmw72d8k6bxvkp9rvbifi88hh01blnsj4"; + type = "gem"; + }; + version = "0.7.7"; + }; + rack-session = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xhxhlsz6shh8nm44jsmd9276zcnyzii364vhcvf0k8b8bjia8d0"; + type = "gem"; + }; + version = "1.0.2"; + }; + rack-test = { + dependencies = ["rack"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"; + type = "gem"; + }; + version = "2.1.0"; + }; + rack-timeout = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cqa9lh2rdqqvhfxbrdys7mj2x4vxhqmf57iww2x8961mhp8jm0p"; + type = "gem"; + }; + version = "0.6.3"; + }; + rails = { + dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v9dp9sgh8kk32r23mj66zjni7w1dv2h7mbaxgmazsf59a43gsvx"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + rails-controller-testing = { + dependencies = ["actionpack" "actionview" "activesupport"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "151f303jcvs8s149mhx2g5mn67487x0blrf9dzl76q1nb7dlh53l"; + type = "gem"; + }; + version = "1.0.5"; + }; + rails-dom-testing = { + dependencies = ["activesupport" "nokogiri"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + type = "gem"; + }; + version = "2.0.3"; + }; + rails-html-sanitizer = { + dependencies = ["loofah" "nokogiri"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6"; + type = "gem"; + }; + version = "1.6.0"; + }; + rails-i18n = { + dependencies = ["i18n" "railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lrbrx88ic42adcj36wip3dk1svmqld1f7qksngi4b9kqnc8w5g3"; + type = "gem"; + }; + version = "7.0.3"; + }; + railties = { + dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor" "zeitwerk"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08ga56kz6a37dnlmi7y45r19fcc7jzb62mrc3ifavbzggmhy7r62"; + type = "gem"; + }; + version = "7.0.8.1"; + }; + rainbow = { + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503"; + type = "gem"; + }; + version = "3.1.1"; + }; + rake = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w"; + type = "gem"; + }; + version = "13.0.6"; + }; + rb-fsevent = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423"; + type = "gem"; + }; + version = "0.11.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005"; + type = "gem"; + }; + version = "0.10.1"; + }; + rb_sys = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "131sa2jvc7b1yld3nzc0xq7lvwvql7b8c09i0xv2brzjybammlv5"; + type = "gem"; + }; + version = "0.9.86"; + }; + rbtrace = { + dependencies = ["ffi" "msgpack" "optimist"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p65p6f917al0f07sn5ca9yj92f7mk52xgnp0ahqpyrb8r6sdjz8"; + type = "gem"; + }; + version = "0.5.1"; + }; + rchardet = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9"; + type = "gem"; + }; + version = "1.8.0"; + }; + re2 = { + dependencies = ["mini_portile2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p0kxb1gwrsv2r38jwgsg8b5k2xx966qmrc6aajfncpzm398i79i"; + type = "gem"; + }; + version = "2.7.0"; + }; + recaptcha = { + dependencies = ["json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vmpppgdy64qa16bvkss0xyzmyyzxv5hwzvc1i6saw4yvm58kl9p"; + type = "gem"; + }; + version = "5.12.3"; + }; + recursive-open-struct = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nnyr6qsqrcszf6c10n4zfjs8h9n67zvsmx6mp8brkigamr8llx3"; + type = "gem"; + }; + version = "1.1.3"; + }; + redcarpet = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca"; + type = "gem"; + }; + version = "3.6.0"; + }; + RedCloth = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bb3yk2p12f1j4nr0grbadrwnr6gkzd7vn96jcnhswz2jsnbhhfr"; + type = "gem"; + }; + version = "4.3.3"; + }; + redis = { + dependencies = ["redis-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1n7k4sgx5vzsigp8c15flz4fclqy4j2a33vim7b2c2w5jyjhwxrv"; + type = "gem"; + }; + version = "5.0.8"; + }; + redis-actionpack = { + dependencies = ["actionpack" "redis-rack" "redis-store"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h1mx8shrzpcj27k9kw77f4cq7i217vxfd1ksqb4g485md4zc37i"; + type = "gem"; + }; + version = "5.4.0"; + }; + redis-client = { + dependencies = ["connection_pool"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0irk5j73aqhyv54q3vs88y5rp9a5fkvbdif7zn5q7m5d51h2375w"; + type = "gem"; + }; + version = "0.21.1"; + }; + redis-cluster-client = { + dependencies = ["redis-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12p7wi39zaldk8lr484j4j6w49502fxayinfs9f7l58pvag1rz8j"; + type = "gem"; + }; + version = "0.7.5"; + }; + redis-clustering = { + dependencies = ["redis" "redis-cluster-client"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rp1yrqpvi29ar6mlqsyk36nxgh1drijb4f5xa76c057n7iksbwf"; + type = "gem"; + }; + version = "5.0.8"; + }; + redis-namespace = { + dependencies = ["redis"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "154dfnrjpbv7fhwhfrcnp6jn9qv5qaj3mvlvbgkl7qy5qsknw71c"; + type = "gem"; + }; + version = "1.10.0"; + }; + redis-rack = { + dependencies = ["rack-session" "redis-store"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10438w0y1jbgr205zndvmz6md0mrqazh2j9fr88lvb8hms10pddb"; + type = "gem"; + }; + version = "3.0.0"; + }; + redis-store = { + dependencies = ["redis"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17mhr1g3lmacrgjndbmrklngy32g55165n53111q70kykx7qjn7j"; + type = "gem"; + }; + version = "1.10.0"; + }; + regexp_parser = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mm5sykyblc61a82zz3dag6yy3mvflj2z47060kjzjj5793blqzi"; + type = "gem"; + }; + version = "2.6.0"; + }; + regexp_property_values = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03q8dn4fg51mfk5d4sfcr0f9hqbs42ghafi76k9nc7ms1gf9j90n"; + type = "gem"; + }; + version = "1.0.0"; + }; + representable = { + dependencies = ["declarative" "trailblazer-option" "uber"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kms3r6w6pnryysnaqqa9fsn0v73zx1ilds9d1c565n3xdzbyafc"; + type = "gem"; + }; + version = "3.2.0"; + }; + request_store = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7"; + type = "gem"; + }; + version = "1.5.1"; + }; + responders = { + dependencies = ["actionpack" "railties"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14kjykc6rpdh24sshg9savqdajya2dislc1jmbzg91w9967f4gv1"; + type = "gem"; + }; + version = "3.0.1"; + }; + rest-client = { + dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qs74yzl58agzx9dgjhcpgmzfn61fqkk33k1js2y5yhlvc5l19im"; + type = "gem"; + }; + version = "2.1.0"; + }; + retriable = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha"; + type = "gem"; + }; + version = "3.1.2"; + }; + reverse_markdown = { + dependencies = ["nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53"; + type = "gem"; + }; + version = "1.4.0"; + }; + rexml = { + groups = ["coverage" "danger" "default" "development" "omnibus" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0"; + type = "gem"; + }; + version = "3.2.6"; + }; + rinku = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y"; + type = "gem"; + }; + version = "2.0.0"; + }; + rotp = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m"; + type = "gem"; + }; + version = "6.3.0"; + }; + rouge = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0"; + type = "gem"; + }; + version = "4.2.0"; + }; + rqrcode = { + dependencies = ["chunky_png" "rqrcode_core"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hggzz8i1l62pkkiybhiqv6ypxw7q844sddrrbbfczjcnj5sivi3"; + type = "gem"; + }; + version = "2.2.0"; + }; + rqrcode_core = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg"; + type = "gem"; + }; + version = "1.2.0"; + }; + rspec = { + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "171rc90vcgjl8p1bdrqa92ymrj8a87qf6w20x05xq29mljcigi6c"; + type = "gem"; + }; + version = "3.12.0"; + }; + rspec-benchmark = { + dependencies = ["benchmark-malloc" "benchmark-perf" "benchmark-trend" "rspec"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kyn7p409n75ikb7z9v3dbzjyyinkwi88f66alj9lnf2gssss50h"; + type = "gem"; + }; + version = "0.6.0"; + }; + rspec-core = { + dependencies = ["rspec-support"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm"; + type = "gem"; + }; + version = "3.12.2"; + }; + rspec-expectations = { + dependencies = ["diff-lcs" "rspec-support"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89"; + type = "gem"; + }; + version = "3.12.3"; + }; + rspec-mocks = { + dependencies = ["diff-lcs" "rspec-support"]; + groups = ["default" "development" "monorepo" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gq7gviwpck7fhp4y5ibljljvxgjklza18j62qf6zkm2icaa8lfy"; + type = "gem"; + }; + version = "3.12.6"; + }; + rspec-parameterized = { + dependencies = ["rspec-parameterized-core" "rspec-parameterized-table_syntax"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11mk52x34j957rqccxfqlsqjzg26dz04ipd1v4yx5yraqx1v01ww"; + type = "gem"; + }; + version = "1.0.0"; + }; + rspec-parameterized-core = { + dependencies = ["parser" "proc_to_ast" "rspec" "unparser"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hfc2q7g8f5s6kdh1chwlalvz3fvj57vlfpn18b23677hm4ljyr8"; + type = "gem"; + }; + version = "1.0.0"; + }; + rspec-parameterized-table_syntax = { + dependencies = ["binding_of_caller" "rspec-parameterized-core"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "134q0hki279np9dv7mgr85wspdrvhpj9lpvxr9kx6pcwzwg9bpyp"; + type = "gem"; + }; + version = "1.0.0"; + }; + rspec-rails = { + dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x"; + type = "gem"; + }; + version = "6.1.1"; + }; + rspec-retry = { + dependencies = ["rspec-core"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0n6qc0d16h6bgh1xarmc8vc58728mgjcsjj8wcd822c8lcivl0b1"; + type = "gem"; + }; + version = "0.6.2"; + }; + rspec-support = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12y52zwwb3xr7h91dy9k3ndmyyhr3mjcayk0nnarnrzz8yr48kfx"; + type = "gem"; + }; + version = "3.12.0"; + }; + rspec_junit_formatter = { + dependencies = ["rspec-core"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "059bnq1gcwl9g93cqf13zpz38zk7jxaa43anzz06qkmfwrsfdpa0"; + type = "gem"; + }; + version = "0.6.0"; + }; + rspec_profiling = { + dependencies = ["activerecord" "get_process_mem" "rails"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icl94f0mmw7g4h1qnsil0cw6zw7b5wv0ilxda01928vh5bf87mk"; + type = "gem"; + }; + version = "0.0.8"; + }; + rubocop = { + dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06qnp5zs233j4f59yyqrg8al6hr9n4a7vcdg3p31v0np8bz9srwg"; + type = "gem"; + }; + version = "1.57.2"; + }; + rubocop-ast = { + dependencies = ["parser"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni"; + type = "gem"; + }; + version = "1.29.0"; + }; + rubocop-capybara = { + dependencies = ["rubocop"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jwwi5a05947q9zsk6i599zxn657hdphbmmbbpx17qsv307rwcps"; + type = "gem"; + }; + version = "2.19.0"; + }; + rubocop-factory_bot = { + dependencies = ["rubocop"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1y79flwjwlaslyhfpg84di9n756ir6bm52n964620xsj658d661h"; + type = "gem"; + }; + version = "2.24.0"; + }; + rubocop-graphql = { + dependencies = ["rubocop"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hryrjmcl04br06ibjzzrbb2am8ybbhnl2l7w13xl3wz3k4jyjxs"; + type = "gem"; + }; + version = "0.19.0"; + }; + rubocop-performance = { + dependencies = ["rubocop" "rubocop-ast"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pzsrnjmrachdjxzl9jpw47cydicn3408vgdg3a4bss4v5r42rjj"; + type = "gem"; + }; + version = "1.19.1"; + }; + rubocop-rails = { + dependencies = ["activesupport" "rack" "rubocop"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0imxmki4qc5pji31wn491smaq531ncngnv6d4xvbpn11cgdkqryv"; + type = "gem"; + }; + version = "2.22.1"; + }; + rubocop-rspec = { + dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wwrgcigdrrlgg4nwbl18qfyjks519kqbbly5adrdffvh428lgq8"; + type = "gem"; + }; + version = "2.25.0"; + }; + ruby-fogbugz = { + dependencies = ["crack" "multipart-post"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mznsnhsgh1yg57j5gighr9vjricnix1l7ngf654k3v4fkjcs12y"; + type = "gem"; + }; + version = "0.3.0"; + }; + ruby-lsp = { + dependencies = ["language_server-protocol" "prism" "sorbet-runtime"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1v0dwirw4mq7qkf5a7wvagil4ppvk4dw4ln8hs6rmf2xrf56ga5f"; + type = "gem"; + }; + version = "0.14.4"; + }; + ruby-lsp-rails = { + dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "033kxj55pywnc4cjqcfb2jvn96nsa93m93qd2p636jf5hkqazq41"; + type = "gem"; + }; + version = "0.3.1"; + }; + ruby-lsp-rspec = { + dependencies = ["ruby-lsp"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0npxb9146yqfwpyx3bw375q8vx60ph2zgbvpai1dmgq8dfs3idki"; + type = "gem"; + }; + version = "0.1.10"; + }; + ruby-magic = { + dependencies = ["mini_portile2"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00b15fd74bkrxfqbx1gg2nw78fs7lvmn8mf92bway8vxgf3kh8bv"; + type = "gem"; + }; + version = "0.6.0"; + }; + ruby-openai = { + dependencies = ["httparty"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0l0q3f2sks2i0mdd9p8c1shsh1acjij9iasc4vg2la2y0m65swzv"; + type = "gem"; + }; + version = "3.7.0"; + }; + ruby-progressbar = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc"; + type = "gem"; + }; + version = "1.11.0"; + }; + ruby-saml = { + dependencies = ["nokogiri" "rexml"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18vnbzin5ypxrgcs9lllg7x311b69dyrdw2w1pwz84438hmxm79s"; + type = "gem"; + }; + version = "1.15.0"; + }; + ruby-statistics = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10fwxwhby6n1q1k61bic2s0mddlfwb9x7a7306vir4s60cvh20v1"; + type = "gem"; + }; + version = "3.0.0"; + }; + ruby2_keywords = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz"; + type = "gem"; + }; + version = "0.0.5"; + }; + ruby_parser = { + dependencies = ["racc" "sexp_processor"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sy5y7w89ii5iqym7b21glcwxqg8kizxfy8a7kcxq0j65wyqjhiq"; + type = "gem"; + }; + version = "3.21.0"; + }; + rubyntlm = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv"; + type = "gem"; + }; + version = "0.6.3"; + }; + rubypants = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph"; + type = "gem"; + }; + version = "0.2.0"; + }; + rubyzip = { + groups = ["default" "development" "omnibus" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz"; + type = "gem"; + }; + version = "2.3.2"; + }; + rugged = { + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "016bawsahkhxx7p8azxirpl7y2y7i8a027pj8910gwf6ipg329in"; + type = "gem"; + }; + version = "1.6.3"; + }; + safe_yaml = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; + type = "gem"; + }; + version = "1.0.4"; + }; + safety_net_attestation = { + dependencies = ["jwt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1khq0y5w7lf2b9a220298hphf3pakd216jc9a4x4a9pdwxs2vgln"; + type = "gem"; + }; + version = "0.4.0"; + }; + sanitize = { + dependencies = ["crass" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kymrjdpbmn4yaml3aaqyj1dzj8gqmm9h030dc2rj5mvja7fpi28"; + type = "gem"; + }; + version = "6.0.2"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps"; + type = "gem"; + }; + version = "0.9.2"; + }; + sd_notify = { + groups = ["puma"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c9imnjbakx25r2n7widfp00s19ndzmmwax761mx5vbwm9nariyb"; + type = "gem"; + }; + version = "0.1.1"; + }; + seed-fu = { + dependencies = ["activerecord" "activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi"; + type = "gem"; + }; + version = "2.3.7"; + }; + selenium-webdriver = { + dependencies = ["base64" "rexml" "rubyzip" "websocket"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1asysih4l1mv24wqxrbnz0c0454kw3dhqaj6nsa8pyn9fjjdms5b"; + type = "gem"; + }; + version = "4.18.1"; + }; + semver_dialects = { + dependencies = ["deb_version" "pastel" "thor" "tty-command"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11s5nr5v81qjlf2glgqjisvnv12vmwsmi9abbzqkb1nqjhw43691"; + type = "gem"; + }; + version = "2.0.0"; + }; + sentry-rails = { + dependencies = ["railties" "sentry-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gby2dx2h487y8ziisy57ba8mj6scpg6az49n4p989kc2fn2zalr"; + type = "gem"; + }; + version = "5.10.0"; + }; + sentry-raven = { + dependencies = ["faraday"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0jin9x4f43lplglhr9smv2wxsjgmph2ygqlci4s0v0aq5493ng8h"; + type = "gem"; + }; + version = "3.1.2"; + }; + sentry-ruby = { + dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "069n32qqhhv91slyvzh92vqw3gp232qqz652yc894c71mv028p0i"; + type = "gem"; + }; + version = "5.10.0"; + }; + sentry-sidekiq = { + dependencies = ["sentry-ruby" "sidekiq"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06pagbphvmwp8yk3rcnhl7mbnc0hnvhcjhanzgiipyrk0y6h30fc"; + type = "gem"; + }; + version = "5.10.0"; + }; + sexp_processor = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182x05kpdjlckh31qizws50fz7sjk86yjjfmy45z61q3f930j4ci"; + type = "gem"; + }; + version = "4.17.1"; + }; + shellany = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"; + type = "gem"; + }; + version = "0.0.1"; + }; + shoulda-matchers = { + dependencies = ["activesupport"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01svmyma958sbqfz0v29lbqbr0ibvgcng352nhx6bsc9k5c207d0"; + type = "gem"; + }; + version = "5.1.0"; + }; + sidekiq = { + dependencies = ["concurrent-ruby" "connection_pool" "rack" "redis-client"]; + groups = ["default"]; + platforms = []; + source = { + path = "${src}/vendor/gems/sidekiq-7.1.6"; + type = "path"; + }; + version = "7.1.6"; + }; + sidekiq-cron = { + dependencies = ["fugit" "globalid" "sidekiq"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v09lg8kza19jmigqv5hx2ibhm75j6pa639sfy4bv2208l50hqv6"; + type = "gem"; + }; + version = "1.12.0"; + }; + sigdump = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1mqf06iw7rymv54y7rgbmfi6ppddgjjmxzi3hrw658n1amp1gwhb"; + type = "gem"; + }; + version = "0.2.4"; + }; + signet = { + dependencies = ["addressable" "faraday" "jwt" "multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6"; + type = "gem"; + }; + version = "0.18.0"; + }; + simple_po_parser = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wybcipkfawg4pragmayiig03xc084x3hbwywsh1dr9x9pa8f9hj"; + type = "gem"; + }; + version = "1.1.6"; + }; + simplecov = { + dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"]; + groups = ["coverage" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"; + type = "gem"; + }; + version = "0.22.0"; + }; + simplecov-cobertura = { + dependencies = ["rexml" "simplecov"]; + groups = ["coverage" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00izmp202y48qvmvwrh5x56cc5ivbjhgkkkjklvqmqzj9pik4r9c"; + type = "gem"; + }; + version = "2.1.0"; + }; + simplecov-html = { + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"; + type = "gem"; + }; + version = "0.12.3"; + }; + simplecov-lcov = { + groups = ["coverage" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581"; + type = "gem"; + }; + version = "0.8.0"; + }; + simplecov_json_formatter = { + groups = ["coverage" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j"; + type = "gem"; + }; + version = "0.1.4"; + }; + singleton = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m0w97jmwp1ldg8x5jaidqyqf7n9lkdqsirdpkgppcfbgx0v045l"; + type = "gem"; + }; + version = "0.1.1"; + }; + sixarm_ruby_unaccent = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "11237b8r8p7fc0cpn04v9wa7ggzq0xm6flh10h1lnb6zgc3schq0"; + type = "gem"; + }; + version = "1.2.0"; + }; + slack-messenger = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h89asinyyyq88v89fdc3nw0g74vq2f7p59s18jrq3svpv913ij9"; + type = "gem"; + }; + version = "2.3.4"; + }; + snaky_hash = { + dependencies = ["hashie" "version_gem"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pl70rh92wsn15q4lwzikzi7j5a00vm77bqjg07k4sgzx0wjx2zy"; + type = "gem"; + }; + version = "2.0.0"; + }; + snowplow-tracker = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f2afcmwbfxfrkf0scc5yi3x5lyrfbd3xri8zm2ri0is8kqz99kv"; + type = "gem"; + }; + version = "0.8.0"; + }; + solargraph = { + dependencies = ["backport" "benchmark" "diff-lcs" "e2mmap" "jaro_winkler" "kramdown" "kramdown-parser-gfm" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0smcpi3x87chkdqdclhgh36xlbwm7r44r58m3k1w4mcikdwlpjl7"; + type = "gem"; + }; + version = "0.47.2"; + }; + sorbet-runtime = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fsq1k58isarg6ycg2ix9sw9a6391y12ss48m3hcryqi902w7cny"; + type = "gem"; + }; + version = "0.5.11266"; + }; + spamcheck = { + dependencies = ["grpc"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xclr7qk6fwpbwx2hlfcbpw9ki4y61p76i68hj28v0sp49sq4q54"; + type = "gem"; + }; + version = "1.3.0"; + }; + spring = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jx3y1krmx7flrp8fldb354cap1xxlln4yl97ik8smfzn07hhzzi"; + type = "gem"; + }; + version = "4.1.0"; + }; + spring-commands-rspec = { + dependencies = ["spring"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2"; + type = "gem"; + }; + version = "1.0.4"; + }; + sprite-factory = { + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18hvn14vz1v3j1gvbqjypa59hgj3c4mqbimby50k407c395551jm"; + type = "gem"; + }; + version = "1.7.1"; + }; + sprockets = { + dependencies = ["concurrent-ruby" "rack"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"; + type = "gem"; + }; + version = "3.7.2"; + }; + sprockets-rails = { + dependencies = ["actionpack" "activesupport" "sprockets"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min"; + type = "gem"; + }; + version = "3.4.2"; + }; + ssh_data = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h5aiqqlk51z12kgvanhdvd0ajvv2i68z6a7450yxgmflfaiwz7c"; + type = "gem"; + }; + version = "1.3.0"; + }; + ssrf_filter = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nx0vap3mrh62v37lr45h77ipp4li8x77v4kxr1psh3yhda9zx03"; + type = "gem"; + }; + version = "1.0.8"; + }; + stackprof = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8"; + type = "gem"; + }; + version = "0.2.25"; + }; + state_machines = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3"; + type = "gem"; + }; + version = "0.5.0"; + }; + state_machines-activemodel = { + dependencies = ["activemodel" "state_machines"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0b4dffzlj38adin6gm0ky72r5c507qdb1jprnm7h9gnlj2qxlcp9"; + type = "gem"; + }; + version = "0.8.0"; + }; + state_machines-activerecord = { + dependencies = ["activerecord" "state_machines-activemodel"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dmaf4f4cg3gamzgga3gamp0kv9lvianqzr9103dw0xbp00vfbq7"; + type = "gem"; + }; + version = "0.8.0"; + }; + strings = { + dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yynb0qhhhplmpzavfrrlwdnd1rh7rkwzcs4xf0mpy2wr6rr6clk"; + type = "gem"; + }; + version = "0.2.1"; + }; + strings-ansi = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh"; + type = "gem"; + }; + version = "0.2.0"; + }; + swd = { + dependencies = ["activesupport" "attr_required" "httpclient"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12b3q2sw42nnilfb51nlqdv07f31vdv2j595kd99asnkw4cjlf5w"; + type = "gem"; + }; + version = "1.3.0"; + }; + sync = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6"; + type = "gem"; + }; + version = "0.5.0"; + }; + sys-filesystem = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08bln6c3qmylakgpmpswv4zdis8bf96nkbrxpb9xcal2i7g1j29r"; + type = "gem"; + }; + version = "1.4.3"; + }; + sysexits = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr"; + type = "gem"; + }; + version = "1.2.0"; + }; + table_print = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jxmd1yg3h0g27wzfpvq1jnkkf7frwb5wy9m4f47nf4k3wl68rj3"; + type = "gem"; + }; + version = "1.5.7"; + }; + tanuki_emoji = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mj0qyapppbvlr81a4pcivgsbwi5082iyzbxypasxdv17wl0p7q0"; + type = "gem"; + }; + version = "0.9.0"; + }; + telesign = { + dependencies = ["net-http-persistent"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hjcaiy58zg7vpy5vsaaz6ss8w6nlkkvz1p758gdmd5wlxpfkinw"; + type = "gem"; + }; + version = "2.2.4"; + }; + telesignenterprise = { + dependencies = ["telesign"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cziz60q1pav635fln5xiag7vqvf992sk9xi1l5gxhm8ccra0izi"; + type = "gem"; + }; + version = "2.2.2"; + }; + temple = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "060zzj7c2kicdfk6cpnn40n9yjnhfrr13d0rsbdhdij68chp2861"; + type = "gem"; + }; + version = "0.8.2"; + }; + term-ansicolor = { + dependencies = ["tins"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj"; + type = "gem"; + }; + version = "1.7.1"; + }; + terminal-table = { + dependencies = ["unicode-display_width"]; + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14dfmfjppmng5hwj7c5ka6qdapawm3h6k9lhn8zj001ybypvclgr"; + type = "gem"; + }; + version = "3.0.2"; + }; + terser = { + dependencies = ["execjs"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13mj7ds6kwl1z5dp8zg6b9l3vq9012g8yr99hlpf3d1dgsyf1hl0"; + type = "gem"; + }; + version = "1.0.2"; + }; + test-prof = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda"; + type = "gem"; + }; + version = "1.3.1"; + }; + test_file_finder = { + dependencies = ["faraday"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cyd1wpi280w4v6f6panbvrli8493phzbb09nvxswxhcv1lv7sd5"; + type = "gem"; + }; + version = "0.2.1"; + }; + text = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"; + type = "gem"; + }; + version = "1.3.1"; + }; + thor = { + groups = ["default" "development" "omnibus" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps"; + type = "gem"; + }; + version = "1.3.1"; + }; + thread_safe = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + thrift = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1knw2xa3pkfql4np9qazz2mdi1vz21vdsa0wkx648c4ym1p2h8yh"; + type = "gem"; + }; + version = "0.16.0"; + }; + tilt = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "186nfbcsk0l4l86gvng1fw6jq6p6s7rc0caxr23b3pnbfb20y63v"; + type = "gem"; + }; + version = "2.0.11"; + }; + timeout = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1pfddf51n5fnj4f9ggwj3wbf23ynj0nbxlxqpz12y1gvl9g7d6r6"; + type = "gem"; + }; + version = "0.3.2"; + }; + timfel-krb5-auth = { + groups = ["default" "kerberos"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b"; + type = "gem"; + }; + version = "0.8.3"; + }; + tins = { + dependencies = ["sync"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1kxykx7ywc0i3y4dwakz4b46dql4zc7h8b5w1hqhsqswq93s7i2i"; + type = "gem"; + }; + version = "1.31.1"; + }; + toml-rb = { + dependencies = ["citrus"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19nr4wr5accc6l2y3avn7b02lqmk9035zxq42234k7fcqd5cbqm1"; + type = "gem"; + }; + version = "2.2.0"; + }; + tomlrb = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8"; + type = "gem"; + }; + version = "1.3.0"; + }; + tpm-key_attestation = { + dependencies = ["bindata" "openssl" "openssl-signature_algorithm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v8y5dibsyskv1ncdgszhxwzq0gzmvb0zl7sgmx0xvsgy86dhcz1"; + type = "gem"; + }; + version = "0.12.0"; + }; + trailblazer-option = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18s48fndi2kfvrfzmq6rxvjfwad347548yby0341ixz1lhpg3r10"; + type = "gem"; + }; + version = "0.1.2"; + }; + train-core = { + dependencies = ["addressable" "ffi" "json" "mixlib-shellout" "net-scp" "net-ssh"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fr2hydxs1rzmi7c1c1wcfi0m2piks3vl8hdhh8rpgjz041dm4w4"; + type = "gem"; + }; + version = "3.10.8"; + }; + truncato = { + dependencies = ["htmlentities" "nokogiri"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0k4wdj2l6p4ax4y6qxbywkglmbhvfs4j1k868nkd2px39yhfingy"; + type = "gem"; + }; + version = "0.7.12"; + }; + tty-color = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0aik4kmhwwrmkysha7qibi2nyzb4c8kp42bd5vxnf8sf7b53g73g"; + type = "gem"; + }; + version = "0.6.0"; + }; + tty-command = { + dependencies = ["pastel"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "14hi8xiahfrrnydw6g3i30lxvvz90wp4xsrlhx8mabckrcglfv0c"; + type = "gem"; + }; + version = "0.10.1"; + }; + tty-cursor = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr"; + type = "gem"; + }; + version = "0.7.1"; + }; + tty-markdown = { + dependencies = ["kramdown" "pastel" "rouge" "strings" "tty-color" "tty-screen"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04f599zn5rfndq4d9l0acllfpc041bzdkkz2h6x0dl18f2wivn0y"; + type = "gem"; + }; + version = "0.7.2"; + }; + tty-prompt = { + dependencies = ["pastel" "tty-reader"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j4y8ik82azjxshgd4i1v4wwhsv3g9cngpygxqkkz69qaa8cxnzw"; + type = "gem"; + }; + version = "0.23.1"; + }; + tty-reader = { + dependencies = ["tty-cursor" "tty-screen" "wisper"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6"; + type = "gem"; + }; + version = "0.9.0"; + }; + tty-screen = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235"; + type = "gem"; + }; + version = "0.8.1"; + }; + typhoeus = { + dependencies = ["ethon"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz"; + type = "gem"; + }; + version = "1.4.0"; + }; + tzinfo = { + dependencies = ["concurrent-ruby"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd"; + type = "gem"; + }; + version = "2.0.6"; + }; + uber = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv"; + type = "gem"; + }; + version = "0.1.0"; + }; + undercover = { + dependencies = ["imagen" "rainbow" "rugged"]; + groups = ["coverage" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bp644b1mxwhbkjlm8bmwv8sxkkwkpc7chqxff9a8yxy0n99ambj"; + type = "gem"; + }; + version = "0.4.6"; + }; + unf = { + dependencies = ["unf_ext"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; + type = "gem"; + }; + version = "0.1.4"; + }; + unf_ext = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch"; + type = "gem"; + }; + version = "0.0.8.2"; + }; + unicode-display_width = { + groups = ["danger" "default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a"; + type = "gem"; + }; + version = "2.4.2"; + }; + unicode_utils = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr"; + type = "gem"; + }; + version = "1.4.0"; + }; + uniform_notifier = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1dfvqixshwvm82b9qwdidvnkavdj7s0fbdbmyd4knkl6l3j9xcwr"; + type = "gem"; + }; + version = "1.16.0"; + }; + unleash = { + dependencies = ["murmurhash3"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fxr4q8bs5pbf3y57f3bckg3ls9k76wzzkhvl1kdw879im4mcvhg"; + type = "gem"; + }; + version = "3.2.2"; + }; + unparser = { + dependencies = ["diff-lcs" "parser"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1j6ym6cn43ry4lvcal7cv0n9g9awny7kcrn1crp7cwx2vwzffhmf"; + type = "gem"; + }; + version = "0.6.7"; + }; + uri = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96"; + type = "gem"; + }; + version = "0.13.0"; + }; + uri_template = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0p8qbxlpmg3msw0ihny6a3gsn0yvydx9ksh5knn8dnq06zhqyb1i"; + type = "gem"; + }; + version = "0.7.0"; + }; + valid_email = { + dependencies = ["activemodel" "mail"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0w3587sa7d1a51djyla57pbv9v105jsqvxhkg6vbxi343fsm455q"; + type = "gem"; + }; + version = "0.1.3"; + }; + validate_email = { + dependencies = ["activemodel" "mail"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx"; + type = "gem"; + }; + version = "0.1.6"; + }; + validate_url = { + dependencies = ["activemodel" "public_suffix"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lblym140w5n88ijyfgcvkxvpfj8m6z00rxxf2ckmmhk0x61dzkj"; + type = "gem"; + }; + version = "1.0.15"; + }; + validates_hostname = { + dependencies = ["activerecord" "activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06fspma67flsvwl3gfyrv2572l15pjsmqsncz5yp4kqbriw03i7a"; + type = "gem"; + }; + version = "1.0.13"; + }; + version_gem = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "104s7p4zp5yvf0bvbwd9mqmnkgz2z89h4hbvxi8pzd8d08c9a03b"; + type = "gem"; + }; + version = "1.1.0"; + }; + version_sorter = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1np1xy15xq5lcp0y5zr7sxnpwwgcq7bvfs6jc27vnkw0lfhz4ir1"; + type = "gem"; + }; + version = "2.3.0"; + }; + view_component = { + dependencies = ["activesupport" "concurrent-ruby" "method_source"]; + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1zy51z0whkm3fdpsbi8v4j8h5h3ia1zkc2j28amiznpqqvfc7539"; + type = "gem"; + }; + version = "3.11.0"; + }; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hniwgbdsjxa71qy47n6av8faf8qpwbaapms41rhkk3zxgjdlhc8"; + type = "gem"; + }; + version = "2.0.0"; + }; + vite_rails = { + dependencies = ["railties" "vite_ruby"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1k4bllg0zpmpkjfmk1gybc2ygca4v40l2fmlplf9h0jqwniqa3mr"; + type = "gem"; + }; + version = "3.0.17"; + }; + vite_ruby = { + dependencies = ["dry-cli" "rack-proxy" "zeitwerk"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wza7pnwz8ym92gw0x4zr1icialhlw0l032kn4f86vw1vlzxmrd3"; + type = "gem"; + }; + version = "3.5.0"; + }; + vmstat = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b"; + type = "gem"; + }; + version = "2.3.0"; + }; + warden = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1l7gl7vms023w4clg02pm4ky9j12la2vzsixi2xrv9imbn44ys26"; + type = "gem"; + }; + version = "1.2.9"; + }; + warning = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17h6x3fh0y46gpkzpknbh94qxcp0pqlvacc90r35rgahirfmls93"; + type = "gem"; + }; + version = "1.3.0"; + }; + webauthn = { + dependencies = ["android_key_attestation" "awrence" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "tpm-key_attestation"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ri09bf640kkw4v6k2g90q2nw1mx2hsghhngaqgb7958q8id8xrz"; + type = "gem"; + }; + version = "3.0.0"; + }; + webfinger = { + dependencies = ["activesupport" "httpclient"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18jj50b44a471ig7hw1ax90wxaaz40acmrf6cm7m2iyshlffy53q"; + type = "gem"; + }; + version = "1.2.0"; + }; + webmock = { + dependencies = ["addressable" "crack" "hashdiff"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13jb9q0qv9ajw1ajr4cawnqj4h0dws3w5j4v5n6v3xk7a8rnjzr7"; + type = "gem"; + }; + version = "3.22.0"; + }; + webrick = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r"; + type = "gem"; + }; + version = "1.8.1"; + }; + websocket = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1a4zc8d0d91c3xqwapda3j3zgpfwdbj76hkb69xn6qvfkfks9h9c"; + type = "gem"; + }; + version = "1.2.10"; + }; + websocket-driver = { + dependencies = ["websocket-extensions"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n"; + type = "gem"; + }; + version = "0.7.6"; + }; + websocket-extensions = { + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw"; + type = "gem"; + }; + version = "0.1.5"; + }; + wikicloth = { + dependencies = ["builder" "expression_parser" "rinku"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s"; + type = "gem"; + }; + version = "0.8.1"; + }; + wisper = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rpsi0ziy78cj82sbyyywby4d0aw0a5q84v65qd28vqn79fbq5yf"; + type = "gem"; + }; + version = "2.0.1"; + }; + with_env = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh"; + type = "gem"; + }; + version = "1.1.0"; + }; + wmi-lite = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1nnx4xz8g40dpi3ccqk5blj1ck06ydx09f9diksn1ghd8yxzavhi"; + type = "gem"; + }; + version = "1.0.7"; + }; + xml-simple = { + dependencies = ["rexml"]; + groups = ["default" "development" "omnibus" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0pb9plyl71mdbjr4kllfy53qx6g68ryxblmnq9dilvy837jk24fj"; + type = "gem"; + }; + version = "1.1.9"; + }; + xpath = { + dependencies = ["nokogiri"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; + type = "gem"; + }; + version = "3.2.0"; + }; + yajl-ruby = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1lni4jbyrlph7sz8y49q84pb0sbj82lgwvnjnsiv01xf26f4v5wc"; + type = "gem"; + }; + version = "1.4.3"; + }; + yard = { + groups = ["default" "development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h"; + type = "gem"; + }; + version = "0.9.26"; + }; + zeitwerk = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "028ld9qmgdllxrl7d0qkl65s58wb1n3gv8yjs28g43a8b1hplxk1"; + type = "gem"; + }; + version = "2.6.7"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/nixpkgs/pkgs/applications/version-management/gitlab/update.py new file mode 100755 index 000000000000..195fce350c28 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlab/update.py @@ -0,0 +1,394 @@ +#!/usr/bin/env nix-shell +#! nix-shell -I nixpkgs=../../../.. -i python3 -p bundix bundler nix-update nix nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log python3Packages.packaging prefetch-yarn-deps git + +import click +import click_log +import re +import logging +import subprocess +import json +import pathlib +import tempfile +from packaging.version import Version +from typing import Iterable + +import requests + +NIXPKGS_PATH = pathlib.Path(__file__).parent / "../../../../" +GITLAB_DIR = pathlib.Path(__file__).parent + +logger = logging.getLogger(__name__) +click_log.basic_config(logger) + + +class GitLabRepo: + version_regex = re.compile(r"^v\d+\.\d+\.\d+(\-rc\d+)?(\-ee)?(\-gitlab)?") + + def __init__(self, owner: str = "gitlab-org", repo: str = "gitlab"): + self.owner = owner + self.repo = repo + + @property + def url(self): + return f"https://gitlab.com/{self.owner}/{self.repo}" + + @property + def tags(self) -> Iterable[str]: + """Returns a sorted list of repository tags""" + r = requests.get(self.url + "/refs?sort=updated_desc&ref=master").json() + tags = r.get("Tags", []) + + # filter out versions not matching version_regex + versions = list(filter(self.version_regex.match, tags)) + + # sort, but ignore v, -ee and -gitlab for sorting comparisons + versions.sort( + key=lambda x: Version( + x.replace("v", "").replace("-ee", "").replace("-gitlab", "") + ), + reverse=True, + ) + return versions + + def get_git_hash(self, rev: str): + return ( + subprocess.check_output( + [ + "nix-universal-prefetch", + "fetchFromGitLab", + "--owner", + self.owner, + "--repo", + self.repo, + "--rev", + rev, + ] + ) + .decode("utf-8") + .strip() + ) + + def get_yarn_hash(self, rev: str): + with tempfile.TemporaryDirectory() as tmp_dir: + with open(tmp_dir + "/yarn.lock", "w") as f: + f.write(self.get_file("yarn.lock", rev)) + return ( + subprocess.check_output(["prefetch-yarn-deps", tmp_dir + "/yarn.lock"]) + .decode("utf-8") + .strip() + ) + + @staticmethod + def rev2version(tag: str) -> str: + """ + normalize a tag to a version number. + This obviously isn't very smart if we don't pass something that looks like a tag + :param tag: the tag to normalize + :return: a normalized version number + """ + # strip v prefix + version = re.sub(r"^v", "", tag) + # strip -ee and -gitlab suffixes + return re.sub(r"-(ee|gitlab)$", "", version) + + def get_file(self, filepath, rev): + """ + returns file contents at a given rev + :param filepath: the path to the file, relative to the repo root + :param rev: the rev to fetch at + :return: + """ + return requests.get(self.url + f"/raw/{rev}/{filepath}").text + + def get_data(self, rev): + version = self.rev2version(rev) + + passthru = { + v: self.get_file(v, rev).strip() + for v in [ + "GITALY_SERVER_VERSION", + "GITLAB_PAGES_VERSION", + "GITLAB_SHELL_VERSION", + "GITLAB_ELASTICSEARCH_INDEXER_VERSION", + ] + } + passthru["GITLAB_WORKHORSE_VERSION"] = version + + return dict( + version=self.rev2version(rev), + repo_hash=self.get_git_hash(rev), + yarn_hash=self.get_yarn_hash(rev), + owner=self.owner, + repo=self.repo, + rev=rev, + passthru=passthru, + ) + + +def _get_data_json(): + data_file_path = pathlib.Path(__file__).parent / "data.json" + with open(data_file_path, "r") as f: + return json.load(f) + + +def _call_nix_update(pkg, version): + """calls nix-update from nixpkgs root dir""" + return subprocess.check_output( + ["nix-update", pkg, "--version", version], cwd=NIXPKGS_PATH + ) + + +@click_log.simple_verbosity_option(logger) +@click.group() +def cli(): + pass + + +@cli.command("update-data") +@click.option("--rev", default="latest", help="The rev to use (vX.Y.Z-ee), or 'latest'") +def update_data(rev: str): + """Update data.json""" + logger.info("Updating data.json") + + repo = GitLabRepo() + if rev == "latest": + # filter out pre and rc releases + rev = next(filter(lambda x: not ("rc" in x or x.endswith("pre")), repo.tags)) + + data_file_path = pathlib.Path(__file__).parent / "data.json" + + data = repo.get_data(rev) + + with open(data_file_path.as_posix(), "w") as f: + json.dump(data, f, indent=2) + f.write("\n") + + +@cli.command("update-rubyenv") +def update_rubyenv(): + """Update rubyEnv""" + logger.info("Updating gitlab") + repo = GitLabRepo() + rubyenv_dir = pathlib.Path(__file__).parent / "rubyEnv" + + # load rev from data.json + data = _get_data_json() + rev = data["rev"] + version = data["version"] + + for fn in ["Gemfile.lock", "Gemfile"]: + with open(rubyenv_dir / fn, "w") as f: + f.write(repo.get_file(fn, rev)) + + # patch for openssl 3.x support + subprocess.check_output( + ["sed", "-i", "s:'openssl', '2.*':'openssl', '3.0.2':g", "Gemfile"], + cwd=rubyenv_dir, + ) + + # Fetch vendored dependencies temporarily in order to build the gemset.nix + subprocess.check_output(["mkdir", "-p", "vendor/gems", "gems"], cwd=rubyenv_dir) + subprocess.check_output( + [ + "sh", + "-c", + f"curl -L https://gitlab.com/gitlab-org/gitlab/-/archive/v{version}-ee/gitlab-v{version}-ee.tar.bz2?path=vendor/gems | tar -xj --strip-components=3", + ], + cwd=f"{rubyenv_dir}/vendor/gems", + ) + subprocess.check_output( + [ + "sh", + "-c", + f"curl -L https://gitlab.com/gitlab-org/gitlab/-/archive/v{version}-ee/gitlab-v{version}-ee.tar.bz2?path=gems | tar -xj --strip-components=3", + ], + cwd=f"{rubyenv_dir}/gems", + ) + + # Undo our gemset.nix patches so that bundix runs through + subprocess.check_output( + ["sed", "-i", "-e", "1d", "-e", "s:\\${src}/::g", "gemset.nix"], cwd=rubyenv_dir + ) + + subprocess.check_output(["bundle", "lock"], cwd=rubyenv_dir) + subprocess.check_output(["bundix"], cwd=rubyenv_dir) + + subprocess.check_output( + [ + "sed", + "-i", + "-e", + "1i\\src:", + "-e", + 's:path = \\(vendor/[^;]*\\);:path = "${src}/\\1";:g', + "-e", + 's:path = \\(gems/[^;]*\\);:path = "${src}/\\1";:g', + "gemset.nix", + ], + cwd=rubyenv_dir, + ) + subprocess.check_output(["rm", "-rf", "vendor", "gems"], cwd=rubyenv_dir) + + +@cli.command("update-gitaly") +def update_gitaly(): + """Update gitaly""" + logger.info("Updating gitaly") + data = _get_data_json() + gitaly_server_version = data['passthru']['GITALY_SERVER_VERSION'] + + _call_nix_update("gitaly", gitaly_server_version) + + +@cli.command("update-gitlab-pages") +def update_gitlab_pages(): + """Update gitlab-pages""" + logger.info("Updating gitlab-pages") + data = _get_data_json() + gitlab_pages_version = data["passthru"]["GITLAB_PAGES_VERSION"] + _call_nix_update("gitlab-pages", gitlab_pages_version) + + +def get_container_registry_version() -> str: + """Returns the version attribute of gitlab-container-registry""" + return subprocess.check_output( + [ + "nix", + "--experimental-features", + "nix-command", + "eval", + "-f", + ".", + "--raw", + "gitlab-container-registry.version", + ], + cwd=NIXPKGS_PATH, + ).decode("utf-8") + + +@cli.command("update-gitlab-shell") +def update_gitlab_shell(): + """Update gitlab-shell""" + logger.info("Updating gitlab-shell") + data = _get_data_json() + gitlab_shell_version = data["passthru"]["GITLAB_SHELL_VERSION"] + _call_nix_update("gitlab-shell", gitlab_shell_version) + + +@cli.command("update-gitlab-workhorse") +def update_gitlab_workhorse(): + """Update gitlab-workhorse""" + logger.info("Updating gitlab-workhorse") + data = _get_data_json() + gitlab_workhorse_version = data["passthru"]["GITLAB_WORKHORSE_VERSION"] + _call_nix_update("gitlab-workhorse", gitlab_workhorse_version) + + +@cli.command("update-gitlab-container-registry") +@click.option("--rev", default="latest", help="The rev to use (vX.Y.Z-ee), or 'latest'") +@click.option( + "--commit", is_flag=True, default=False, help="Commit the changes for you" +) +def update_gitlab_container_registry(rev: str, commit: bool): + """Update gitlab-container-registry""" + logger.info("Updading gitlab-container-registry") + repo = GitLabRepo(repo="container-registry") + old_container_registry_version = get_container_registry_version() + + if rev == "latest": + rev = next(filter(lambda x: not ("rc" in x or x.endswith("pre")), repo.tags)) + + version = repo.rev2version(rev) + _call_nix_update("gitlab-container-registry", version) + if commit: + new_container_registry_version = get_container_registry_version() + commit_container_registry( + old_container_registry_version, new_container_registry_version + ) + + +@cli.command('update-gitlab-elasticsearch-indexer') +def update_gitlab_elasticsearch_indexer(): + """Update gitlab-elasticsearch-indexer""" + data = _get_data_json() + gitlab_elasticsearch_indexer_version = data['passthru']['GITLAB_ELASTICSEARCH_INDEXER_VERSION'] + _call_nix_update('gitlab-elasticsearch-indexer', gitlab_elasticsearch_indexer_version) + + +@cli.command("update-all") +@click.option("--rev", default="latest", help="The rev to use (vX.Y.Z-ee), or 'latest'") +@click.option( + "--commit", is_flag=True, default=False, help="Commit the changes for you" +) +@click.pass_context +def update_all(ctx, rev: str, commit: bool): + """Update all gitlab components to the latest stable release""" + old_data_json = _get_data_json() + old_container_registry_version = get_container_registry_version() + + ctx.invoke(update_data, rev=rev) + + new_data_json = _get_data_json() + + ctx.invoke(update_rubyenv) + ctx.invoke(update_gitaly) + ctx.invoke(update_gitlab_pages) + ctx.invoke(update_gitlab_shell) + ctx.invoke(update_gitlab_workhorse) + ctx.invoke(update_gitlab_elasticsearch_indexer) + if commit: + commit_gitlab( + old_data_json["version"], new_data_json["version"], new_data_json["rev"] + ) + + ctx.invoke(update_gitlab_container_registry) + if commit: + new_container_registry_version = get_container_registry_version() + commit_container_registry( + old_container_registry_version, new_container_registry_version + ) + + +def commit_gitlab(old_version: str, new_version: str, new_rev: str) -> None: + """Commits the gitlab changes for you""" + subprocess.run( + [ + "git", + "add", + "data.json", + "rubyEnv", + "gitaly", + "gitlab-pages", + "gitlab-shell", + "gitlab-workhorse", + "gitlab-elasticsearch-indexer", + ], + cwd=GITLAB_DIR, + ) + subprocess.run( + [ + "git", + "commit", + "--message", + f"""gitlab: {old_version} -> {new_version}\n\nhttps://gitlab.com/gitlab-org/gitlab/-/blob/{new_rev}/CHANGELOG.md""", + ], + cwd=GITLAB_DIR, + ) + + +def commit_container_registry(old_version: str, new_version: str) -> None: + """Commits the gitlab-container-registry changes for you""" + subprocess.run(["git", "add", "gitlab-container-registry"], cwd=GITLAB_DIR) + subprocess.run( + [ + "git", + "commit", + "--message", + f"gitlab-container-registry: {old_version} -> {new_version}\n\nhttps://gitlab.com/gitlab-org/container-registry/-/blob/v{new_version}-gitlab/CHANGELOG.md", + ], + cwd=GITLAB_DIR, + ) + + +if __name__ == "__main__": + cli() diff --git a/nixpkgs/pkgs/applications/version-management/gitless/default.nix b/nixpkgs/pkgs/applications/version-management/gitless/default.nix new file mode 100644 index 000000000000..8bbb0eee971d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitless/default.nix @@ -0,0 +1,41 @@ +{ lib +, fetchFromGitHub +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gitless"; + version = "0.9.17"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "goldstar611"; + repo = pname; + rev = version; + hash = "sha256-XDB1i2b1reMCM6i1uK3IzTnsoLXO7jldYtNlYUo1AoQ="; + }; + + nativeBuildInputs = [ python3.pkgs.pythonRelaxDepsHook ]; + + propagatedBuildInputs = with python3.pkgs; [ + pygit2 + argcomplete + ]; + + pythonRelaxDeps = [ "pygit2" ]; + + doCheck = false; + + pythonImportsCheck = [ + "gitless" + ]; + + meta = with lib; { + description = "Version control system built on top of Git"; + homepage = "https://gitless.com/"; + license = licenses.mit; + maintainers = with maintainers; [ cransom ]; + platforms = platforms.all; + mainProgram = "gl"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitlint/default.nix b/nixpkgs/pkgs/applications/version-management/gitlint/default.nix new file mode 100644 index 000000000000..d29bf08855f0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitlint/default.nix @@ -0,0 +1,52 @@ +{ lib +, buildPythonApplication +, fetchFromGitHub +, gitMinimal +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "gitlint"; + version = "0.19.1"; + format = "pyproject"; + + src = fetchFromGitHub { + owner = "jorisroovers"; + repo = "gitlint"; + rev = "refs/tags/v${version}"; + hash = "sha256-4SGkkC4LjZXTDXwK6jMOIKXR1qX76CasOwSqv8XUrjs="; + }; + + # Upstream splitted the project into gitlint and gitlint-core to + # simplify the dependency handling + sourceRoot = "${src.name}/gitlint-core"; + + nativeBuildInputs = with python3.pkgs; [ + hatch-vcs + hatchling + ]; + + propagatedBuildInputs = with python3.pkgs; [ + arrow + click + sh + ]; + + nativeCheckInputs = with python3.pkgs; [ + gitMinimal + pytestCheckHook + ]; + + pythonImportsCheck = [ + "gitlint" + ]; + + meta = with lib; { + description = "Linting for your git commit messages"; + homepage = "https://jorisroovers.com/gitlint/"; + changelog = "https://github.com/jorisroovers/gitlint/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ ethancedwards8 fab ]; + mainProgram = "gitlint"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitls/default.nix b/nixpkgs/pkgs/applications/version-management/gitls/default.nix new file mode 100644 index 000000000000..16ae8c9e6a8b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitls/default.nix @@ -0,0 +1,35 @@ +{ lib +, buildGoModule +, gitls +, fetchFromGitHub +, testers +}: + +buildGoModule rec { + pname = "gitls"; + version = "1.0.4"; + + src = fetchFromGitHub { + owner = "hahwul"; + repo = pname; + rev = "v${version}"; + hash = "sha256-kLkH/nNidd1QNPKvo7fxZwMhTgd4AVB8Ofw0Wo0z6c0="; + }; + + vendorHash = null; + + passthru.tests.version = testers.testVersion { + package = gitls; + command = "gitls -version"; + version = "v${version}"; + }; + + meta = with lib; { + description = "Tools to enumerate git repository URL"; + homepage = "https://github.com/hahwul/gitls"; + changelog = "https://github.com/hahwul/gitls/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + mainProgram = "gitls"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitmux/default.nix b/nixpkgs/pkgs/applications/version-management/gitmux/default.nix new file mode 100644 index 000000000000..1a5d5c6b3893 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitmux/default.nix @@ -0,0 +1,36 @@ +{ fetchFromGitHub, buildGoModule, lib, testers, gitmux }: + +buildGoModule rec { + pname = "gitmux"; + version = "0.10.4"; + + src = fetchFromGitHub { + owner = "arl"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-toEKWkyCmeoG6eVK19RKipCqHM7OhZrkWRHNAclFgoI="; + }; + + vendorHash = "sha256-PHY020MIuLlC1LqNGyBJRNd7J+SzoHbNMPAil7CKP/M="; + + # GitHub source does contain a regression test for the module + # but it requires networking as it git clones a repo from github + doCheck = false; + + ldflags = [ "-X main.version=${version}" ]; + + passthru.tests.version = testers.testVersion { + package = gitmux; + command = "gitmux -V"; + }; + + subPackages = [ "." ]; + + meta = with lib; { + description = "Git in your tmux status bar"; + homepage = "https://github.com/arl/gitmux"; + license = licenses.mit; + maintainers = with maintainers; [ nialov ]; + mainProgram = "gitmux"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitnr/default.nix b/nixpkgs/pkgs/applications/version-management/gitnr/default.nix new file mode 100644 index 000000000000..a6d5a5bd61e3 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitnr/default.nix @@ -0,0 +1,49 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, libxkbcommon +, openssl +, stdenv +, darwin +, wayland +}: + +rustPlatform.buildRustPackage rec { + pname = "gitnr"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "reemus-dev"; + repo = "gitnr"; + rev = "v${version}"; + hash = "sha256-Hsro0y/avI20cFQveQF17NiR3JCNlBKqXbaIce7uxBM="; + }; + + cargoHash = "sha256-Ahzm23AStSwDSgks9j/J15/zo+EH/NgbfCBc3xBcTwQ="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.AppKit + ] ++ lib.optionals stdenv.isLinux [ + libxkbcommon + wayland + ]; + + # requires internet access + doCheck = false; + + meta = with lib; { + description = "Create `.gitignore` files using one or more templates from TopTal, GitHub or your own collection"; + homepage = "https://github.com/reemus-dev/gitnr"; + changelog = "https://github.com/reemus-dev/gitnr/blob/${src.rev}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "gitnr"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitnuro/default.nix b/nixpkgs/pkgs/applications/version-management/gitnuro/default.nix new file mode 100644 index 000000000000..e577cbaa6f61 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitnuro/default.nix @@ -0,0 +1,57 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, copyDesktopItems +, makeDesktopItem +, jre +}: + +stdenv.mkDerivation rec { + pname = "gitnuro"; + version = "1.1.1"; + + src = fetchurl { + url = "https://github.com/JetpackDuba/Gitnuro/releases/download/v${version}/Gitnuro-linux-${version}.jar"; + hash = "sha256-ugZBk/aQ2pjL9xY66g20MorAQ02GHIdJTv8ejadaBgY="; + }; + + icon = fetchurl { + url = "https://raw.githubusercontent.com/JetpackDuba/Gitnuro/4cfc45069c176f807d9bfb1a7cba410257078d3c/icons/logo.svg"; + hash = "sha256-QGJcWTSJesIpDArOWiS3Kn1iznzeMFzvqS+CuNXh3as="; + }; + + dontUnpack = true; + + nativeBuildInputs = [ + makeWrapper + copyDesktopItems + ]; + + installPhase = '' + runHook preInstall + makeWrapper ${jre}/bin/java $out/bin/gitnuro --add-flags "-jar $src" + install -Dm444 $icon $out/share/icons/hicolor/scalable/apps/com.jetpackduba.Gitnuro.svg + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "Gitnuro"; + exec = "gitnuro"; + icon = "com.jetpackduba.Gitnuro"; + desktopName = "Gitnuro"; + categories = [ "Development" ]; + comment = meta.description; + }) + ]; + + meta = with lib; { + description = "A FOSS Git multiplatform client based on Compose and JGit"; + homepage = "https://gitnuro.com/"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ zendo ]; + mainProgram = "gitnuro"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitolite/default.nix b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix new file mode 100644 index 000000000000..6e7a627f9cba --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix @@ -0,0 +1,54 @@ +{ stdenv, coreutils, fetchFromGitHub, git, lib, makeWrapper, nettools, perl, perlPackages, nixosTests }: + +stdenv.mkDerivation rec { + pname = "gitolite"; + version = "3.6.13"; + + src = fetchFromGitHub { + owner = "sitaramc"; + repo = "gitolite"; + rev = "v${version}"; + hash = "sha256-/VBu+aepIrxWc2padPa/WoXbIdKfIwqmA/M8d1GE5FI="; + }; + + buildInputs = [ nettools perl ]; + nativeBuildInputs = [ makeWrapper ]; + propagatedBuildInputs = [ git ]; + + dontBuild = true; + + postPatch = '' + substituteInPlace ./install --replace " 2>/dev/null" "" + substituteInPlace src/lib/Gitolite/Hooks/PostUpdate.pm \ + --replace /usr/bin/perl "${perl}/bin/perl" + substituteInPlace src/lib/Gitolite/Hooks/Update.pm \ + --replace /usr/bin/perl "${perl}/bin/perl" + substituteInPlace src/lib/Gitolite/Setup.pm \ + --replace hostname "${nettools}/bin/hostname" + substituteInPlace src/commands/sskm \ + --replace /bin/rm "${coreutils}/bin/rm" + ''; + + postFixup = '' + wrapProgram $out/bin/gitolite-shell \ + --prefix PATH : ${lib.makeBinPath [ git (perl.withPackages (p: [ p.JSON ])) ]} + ''; + + installPhase = '' + mkdir -p $out/bin + perl ./install -to $out/bin + echo ${version} > $out/bin/VERSION + ''; + + passthru.tests = { + gitolite = nixosTests.gitolite; + }; + + meta = with lib; { + description = "Finely-grained git repository hosting"; + homepage = "https://gitolite.com/gitolite/index.html"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = [ maintainers.thoughtpolice maintainers.lassulus maintainers.tomberek ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix b/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix new file mode 100644 index 000000000000..40c744e1aed4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix @@ -0,0 +1,55 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, cmake +, pkg-config +, stdenv +, libiconv +, Security +, SystemConfiguration +, curl +, openssl +, buildPackages +, installShellFiles +}: + +let + canRunCmd = stdenv.hostPlatform.emulatorAvailable buildPackages; + gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix"; +in rustPlatform.buildRustPackage rec { + pname = "gitoxide"; + version = "0.35.0"; + + src = fetchFromGitHub { + owner = "Byron"; + repo = "gitoxide"; + rev = "v${version}"; + hash = "sha256-Sl7nNYoiCdTZ50tIfJcq5x9KOBkgJsb5bq09chWbyQc="; + }; + + cargoHash = "sha256-G1NWRkhcmFrcHaIxQ7nzvRejPZUuZQDiNonZykkt4qM="; + + nativeBuildInputs = [ cmake pkg-config installShellFiles ]; + + buildInputs = [ curl ] ++ (if stdenv.isDarwin + then [ libiconv Security SystemConfiguration ] + else [ openssl ]); + + preFixup = lib.optionalString canRunCmd '' + installShellCompletion --cmd gix \ + --bash <(${gix} completions --shell bash) \ + --fish <(${gix} completions --shell fish) \ + --zsh <(${gix} completions --shell zsh) + ''; + + # Needed to get openssl-sys to use pkg-config. + env.OPENSSL_NO_VENDOR = 1; + + meta = with lib; { + description = "A command-line application for interacting with git repositories"; + homepage = "https://github.com/Byron/gitoxide"; + changelog = "https://github.com/Byron/gitoxide/blob/v${version}/CHANGELOG.md"; + license = with licenses; [ mit /* or */ asl20 ]; + maintainers = with maintainers; [ syberant ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitprompt-rs/default.nix b/nixpkgs/pkgs/applications/version-management/gitprompt-rs/default.nix new file mode 100644 index 000000000000..4df54080513c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitprompt-rs/default.nix @@ -0,0 +1,32 @@ +{ + lib, + fetchFromGitHub, + rustPlatform, + git, +}: +rustPlatform.buildRustPackage rec { + pname = "gitprompt-rs"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "9ary"; + repo = pname; + rev = version; + hash = "sha256-BqI3LbG7I/0wjzJaP8bxRwTM56joLqVaQCmAydX5vQM="; + }; + + cargoHash = "sha256-KBBdhiXEZz1/w6Zr/LogyceBdCn1ebfkVgGbtcdAeis="; + + postPatch = '' + substituteInPlace src/main.rs \ + --replace 'Command::new("git")' 'Command::new("${git}/bin/git")' + ''; + + meta = with lib; { + description = "Simple Git prompt"; + homepage = "https://github.com/9ary/gitprompt-rs"; + license = with licenses; [ mpl20 ]; + maintainers = with maintainers; [ isabelroses cafkafk ]; + mainProgram = "gitprompt-rs"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitqlient/default.nix b/nixpkgs/pkgs/applications/version-management/gitqlient/default.nix new file mode 100644 index 000000000000..c6b1e82cc873 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitqlient/default.nix @@ -0,0 +1,45 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, qmake +, qtwebengine +, gitUpdater +}: + +mkDerivation rec { + pname = "gitqlient"; + version = "1.6.2"; + + src = fetchFromGitHub { + owner = "francescmm"; + repo = "gitqlient"; + rev = "v${version}"; + fetchSubmodules = true; + hash = "sha256-fHrsDEHEUgQYkZdnSzJ/+gTsV0eX8tOqSlr7vNH6LVs="; + }; + + nativeBuildInputs = [ + qmake + ]; + + buildInputs = [ + qtwebengine + ]; + + qmakeFlags = [ + "GitQlient.pro" + ]; + + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + }; + + meta = with lib; { + homepage = "https://github.com/francescmm/GitQlient"; + description = "Multi-platform Git client written with Qt"; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ romildo ]; + mainProgram = "gitqlient"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitsign/default.nix b/nixpkgs/pkgs/applications/version-management/gitsign/default.nix new file mode 100644 index 000000000000..dffb905a6fd5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitsign/default.nix @@ -0,0 +1,44 @@ +{ lib, buildGoModule, fetchFromGitHub, stdenv, makeWrapper, gitMinimal, testers, gitsign }: + +buildGoModule rec { + pname = "gitsign"; + version = "0.10.1"; + + src = fetchFromGitHub { + owner = "sigstore"; + repo = pname; + rev = "v${version}"; + hash = "sha256-WaiGkbjqty/MsTWPvx5DmmaNwWTJAEFKwVqArt2oZZc="; + }; + vendorHash = "sha256-p2E010k7uozpLvl9VpfG5/JyQR4mVUBKv2p78UdFlac="; + + subPackages = [ + "." + "cmd/gitsign-credential-cache" + ]; + + nativeBuildInputs = [ makeWrapper ]; + + ldflags = [ "-s" "-w" "-X github.com/sigstore/gitsign/pkg/version.gitVersion=${version}" ]; + + preCheck = '' + # test all paths + unset subPackages + ''; + + postInstall = '' + for f in $out/bin/*; do + wrapProgram $f --prefix PATH : ${lib.makeBinPath [ gitMinimal ]} + done + ''; + + passthru.tests.version = testers.testVersion { package = gitsign; }; + + meta = { + homepage = "https://github.com/sigstore/gitsign"; + changelog = "https://github.com/sigstore/gitsign/releases/tag/v${version}"; + description = "Keyless Git signing using Sigstore"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ lesuisse developer-guy ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitstats/default.nix b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix new file mode 100644 index 000000000000..25fcd7247c22 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, installShellFiles +, perl +, python3 +, gnuplot +, coreutils +, gnugrep +}: + +stdenv.mkDerivation rec { + pname = "gitstats"; + version = "2016-01-08"; + + # upstream does not make releases + src = fetchFromGitHub { + owner = "hoxu"; + repo = "gitstats"; + rev = "55c5c285558c410bb35ebf421245d320ab9ee9fa"; + sha256 = "sha256-qUQB3aCRbPkbMoMf39kPQ0vil8RjXL8RqjdTryfkzK0="; + }; + + patches = [ + # make gitstats compatible with python3 + # https://github.com/hoxu/gitstats/pull/105 + (fetchpatch { + name = "convert-gitstats-to-use-python3.patch"; + url = "https://github.com/hoxu/gitstats/commit/ca415668ce6b739ca9fefba6acd29c63b89f4211.patch"; + hash = "sha256-sgjoj8eQ5CxQBffmhqymsmXb8peuaSbfFoWciLK3LOo="; + }) + ]; + + nativeBuildInputs = [ installShellFiles perl ]; + + buildInputs = [ python3 ]; + + strictDeps = true; + + postPatch = '' + sed -e "s|gnuplot_cmd = .*|gnuplot_cmd = '${gnuplot}/bin/gnuplot'|" \ + -e "s|\<wc\>|${coreutils}/bin/wc|g" \ + -e "s|\<grep\>|${gnugrep}/bin/grep|g" \ + -i gitstats + ''; + + makeFlags = [ + "PREFIX=$(out)" + "VERSION=${version}" + ]; + + buildFlags = [ "man" ]; + + postInstall = '' + installManPage doc/gitstats.1 + ''; + + meta = with lib; { + homepage = "https://gitstats.sourceforge.net/"; + description = "Git history statistics generator"; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = with maintainers; [ bjornfor ]; + mainProgram = "gitstats"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitstatus/default.nix b/nixpkgs/pkgs/applications/version-management/gitstatus/default.nix new file mode 100644 index 000000000000..2e2fc5af2c4c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitstatus/default.nix @@ -0,0 +1,92 @@ +{ callPackage, lib, stdenv, fetchFromGitHub, git, zsh }: + +stdenv.mkDerivation rec { + pname = "gitstatus"; + version = "1.5.5"; + + src = fetchFromGitHub { + owner = "romkatv"; + repo = "gitstatus"; + rev = "v${version}"; + sha256 = "sha256-b+9bwJ87VV6rbOPobkwMkDXGH34STjYPlt8wCRR5tEc="; + }; + + buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ]; + + postPatch = '' + sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.sh + sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.zsh + sed -i "1a GITSTATUS_DAEMON=$out/bin/gitstatusd" install + ''; + + installPhase = '' + install -Dm755 usrbin/gitstatusd $out/bin/gitstatusd + install -Dm444 gitstatus.plugin.sh -t $out/share/gitstatus/ + install -Dm444 gitstatus.plugin.zsh -t $out/share/gitstatus/ + install -Dm555 install -t $out/share/gitstatus/ + install -Dm444 build.info -t $out/share/gitstatus/ + + # the fallback path is wrong in the case of home-manager + # because the FHS directories don't start at / + substituteInPlace install \ + --replace "_gitstatus_install_main ." "_gitstatus_install_main $out" + ''; + + # Don't install the "install" and "build.info" files, which the end user + # should not need to worry about. + pathsToLink = [ + "/bin/gitstatusd" + "/share/gitstatus/gitstatus.plugin.sh" + "/share/gitstatus/gitstatus.plugin.zsh" + ]; + + # The install check sets up an empty Git repository and a minimal zshrc that + # invokes gitstatus.plugin.zsh. It runs zsh against this zshrc and verifies + # that the script was sourced successfully and that the "gitstatus_query" + # command ran successfully. This tests the binary itself and the zsh + # integration. + nativeInstallCheckInputs = [ git zsh ]; + doInstallCheck = true; + installCheckPhase = '' + TEMP=$(mktemp -d) + cd "$TEMP" + + git init + + echo ' + GITSTATUS_LOG_LEVEL=DEBUG + . $out/share/gitstatus/gitstatus.plugin.zsh || exit 1 + + gitstatus_stop NIX_TEST && gitstatus_start NIX_TEST + gitstatus_query NIX_TEST + if [[ $? -ne 0 ]]; then + print -- "Something went wrong with gitstatus" + exit 1 + elif [[ $VCS_STATUS_RESULT != "ok-sync" ]]; then + print -- "Not in a Git repo" + exit 1 + else + print -- "OK" + exit 0 + fi + ' > .zshrc + + # If we try to run zsh like "zsh -i -c true" or "zsh -i > output" then job + # control will be disabled in the shell and the gitstatus plugin script + # will fail when it tries to set the MONITOR option. As a workaround, we + # run zsh as a full-fledged independent process and then wait for it to + # exit. (The "exit" statements in the zshrc ensure that zsh will exit + # almost immediately after starting.) + ZDOTDIR=. zsh -i & + wait $! + ''; + + meta = with lib; { + description = "10x faster implementation of `git status` command"; + homepage = "https://github.com/romkatv/gitstatus"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ mmlb hexa SuperSandro2000 ]; + platforms = platforms.all; + mainProgram = "gitstatusd"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix b/nixpkgs/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix new file mode 100644 index 000000000000..9881bd480406 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitstatus/romkatv_libgit2.nix @@ -0,0 +1,29 @@ +{ fetchFromGitHub, libgit2, ... }: + +libgit2.overrideAttrs (oldAttrs: { + cmakeFlags = oldAttrs.cmakeFlags ++ [ + "-DBUILD_CLAR=OFF" + "-DBUILD_SHARED_LIBS=OFF" + "-DREGEX_BACKEND=builtin" + "-DUSE_BUNDLED_ZLIB=ON" + "-DUSE_GSSAPI=OFF" + "-DUSE_HTTPS=OFF" + "-DUSE_HTTP_PARSER=builtin" # overwritten from libgit2 + "-DUSE_NTLMCLIENT=OFF" + "-DUSE_SSH=OFF" + "-DZERO_NSEC=ON" + ]; + + src = fetchFromGitHub { + owner = "romkatv"; + repo = "libgit2"; + rev = "tag-2ecf33948a4df9ef45a66c68b8ef24a5e60eaac6"; + hash = "sha256-Bm3Gj9+AhNQMvkIqdrTkK5D9vrZ1qq6CS8Wrn9kfKiw="; + }; + + # this is a heavy fork of the original libgit2 + # the original checkPhase does not work for this fork + doCheck = false; + + patches = [ ]; +}) diff --git a/nixpkgs/pkgs/applications/version-management/gitty/default.nix b/nixpkgs/pkgs/applications/version-management/gitty/default.nix new file mode 100644 index 000000000000..ba677b2ba8e5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitty/default.nix @@ -0,0 +1,25 @@ +{ lib, fetchFromGitHub, buildGoModule }: + +buildGoModule rec { + pname = "gitty"; + version = "0.7.0"; + + src = fetchFromGitHub { + owner = "muesli"; + repo = "gitty"; + rev = "v${version}"; + sha256 = "sha256-g0D6nJiHY7cz72DSmdQZsj9Vgv/VOp0exTcLsaypGiU="; + }; + + vendorHash = "sha256-qrLECQkjXH0aTHmysq64jnXj9jgbunpVtBAIXJOEYIY="; + + ldflags = [ "-s" "-w" "-X=main.Version=${version}" ]; + + meta = with lib; { + homepage = "https://github.com/muesli/gitty/"; + description = "Contextual information about your git projects, right on the command-line"; + license = licenses.mit; + maintainers = with maintainers; [ izorkin ]; + mainProgram = "gitty"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gittyup/default.nix b/nixpkgs/pkgs/applications/version-management/gittyup/default.nix new file mode 100644 index 000000000000..822ff838df0c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gittyup/default.nix @@ -0,0 +1,78 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, cmark +, darwin +, git +, libssh2 +, lua5_4 +, hunspell +, ninja +, openssl +, pkg-config +, qtbase +, qttools +, wrapQtAppsHook +}: + +stdenv.mkDerivation rec { + pname = "gittyup"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "Murmele"; + repo = "Gittyup"; + rev = "gittyup_v${version}"; + hash = "sha256-/8Uipz2R/LuA3KUcFsROOmldIKnCVLfIpIQ9YLpPA+k="; + fetchSubmodules = true; + }; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=OFF" + "-DUSE_SYSTEM_CMARK=ON" + "-DUSE_SYSTEM_GIT=ON" + "-DUSE_SYSTEM_HUNSPELL=ON" + # upstream uses its own fork of libgit2 as of 1.2.2, however this may change in the future + # "-DUSE_SYSTEM_LIBGIT2=ON" + "-DUSE_SYSTEM_LIBSSH2=ON" + "-DUSE_SYSTEM_LUA=ON" + "-DUSE_SYSTEM_OPENSSL=ON" + "-DENABLE_UPDATE_OVER_GUI=OFF" + ]; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + cmark + git + hunspell + libssh2 + lua5_4 + openssl + qtbase + qttools + ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ + CoreFoundation + Security + ]); + + postInstall = '' + # Those are not program libs, just some Qt5 libs that the build system leaks for some reason + rm -rf $out/{include,lib} + ''; + + meta = with lib; { + description = "A graphical Git client designed to help you understand and manage your source code history"; + homepage = "https://murmele.github.io/Gittyup"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ ]; + platforms = platforms.unix; + broken = stdenv.isDarwin; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gitweb/default.nix b/nixpkgs/pkgs/applications/version-management/gitweb/default.nix new file mode 100644 index 000000000000..2c8d7eedc2d9 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gitweb/default.nix @@ -0,0 +1,27 @@ +{ lib, buildEnv, git, fetchFromGitHub +, gitwebTheme ? false }: + +let + gitwebThemeSrc = fetchFromGitHub { + owner = "kogakure"; + repo = "gitweb-theme"; + rev = "049b88e664a359f8ec25dc6f531b7e2aa60dd1a2"; + postFetch = '' + mkdir -p "$TMPDIR/gitwebTheme" + mv "$out"/* "$TMPDIR/gitwebTheme/" + mkdir "$out/static" + mv "$TMPDIR/gitwebTheme"/* "$out/static/" + ''; + sha256 = "17hypq6jvhy6zhh26lp3nyi52npfd5wy5752k6sq0shk4na2acqi"; + }; +in buildEnv { + name = "gitweb-${lib.getVersion git}"; + + ignoreCollisions = true; + paths = lib.optional gitwebTheme gitwebThemeSrc + ++ [ "${git}/share/gitweb" ]; + + meta = git.meta // { + maintainers = with lib.maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/glab/default.nix b/nixpkgs/pkgs/applications/version-management/glab/default.nix new file mode 100644 index 000000000000..2d704143bfda --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/glab/default.nix @@ -0,0 +1,48 @@ +{ lib, buildGoModule, fetchFromGitLab, installShellFiles, stdenv }: + +buildGoModule rec { + pname = "glab"; + version = "1.40.0"; + + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "cli"; + rev = "v${version}"; + hash = "sha256-setvszKdG2EQUlVJNbo7gPKE4b7lfdGT30MC82Kk2/s="; + }; + + vendorHash = "sha256-vx4dNFM0PfapRQxz9ef1vNs4RiZlZDNhcKlo87gjGTs="; + + ldflags = [ + "-s" + "-w" + "-X main.version=${version}" + ]; + + preCheck = '' + # failed to read configuration: mkdir /homeless-shelter: permission denied + export HOME=$TMPDIR + ''; + + subPackages = [ "cmd/glab" ]; + + nativeBuildInputs = [ installShellFiles ]; + + postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' + make manpage + installManPage share/man/man1/* + installShellCompletion --cmd glab \ + --bash <($out/bin/glab completion -s bash) \ + --fish <($out/bin/glab completion -s fish) \ + --zsh <($out/bin/glab completion -s zsh) + ''; + + meta = with lib; { + description = "GitLab CLI tool bringing GitLab to your command line"; + license = licenses.mit; + homepage = "https://gitlab.com/gitlab-org/cli"; + changelog = "https://gitlab.com/gitlab-org/cli/-/releases/v${version}"; + maintainers = with maintainers; [ freezeboy ]; + mainProgram = "glab"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/glitter/default.nix b/nixpkgs/pkgs/applications/version-management/glitter/default.nix new file mode 100644 index 000000000000..a6a81fb08782 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/glitter/default.nix @@ -0,0 +1,36 @@ +{ lib, rustPlatform, fetchFromGitHub, git }: + +rustPlatform.buildRustPackage rec { + pname = "glitter"; + version = "1.6.6"; + + src = fetchFromGitHub { + owner = "milo123459"; + repo = pname; + rev = "v${version}"; + hash = "sha256-dImQLC7owPf2EB5COO5vjN3a6k7gJ88D2hMSUW2/wn4="; + }; + + cargoHash = "sha256-7JQcY3HCG3UQ0Mfz/+ZZ0axGEpQoH410FT72tjHW7EE="; + + nativeCheckInputs = [ + git + ]; + + # tests require it to be in a git repository + preCheck = '' + git init + ''; + + # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context + checkFlags = [ "--skip" "runs_correctly" ]; + + meta = with lib; { + description = "A git wrapper that allows you to compress multiple commands into one"; + homepage = "https://github.com/milo123459/glitter"; + changelog = "https://github.com/Milo123459/glitter/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "glitter"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gogs/default.nix b/nixpkgs/pkgs/applications/version-management/gogs/default.nix new file mode 100644 index 000000000000..0f3c106a7e1f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gogs/default.nix @@ -0,0 +1,56 @@ +{ lib, buildGoModule, fetchFromGitHub, makeWrapper +, git, bash, gzip, openssh, pam +, sqliteSupport ? true +, pamSupport ? true +}: + +with lib; + +buildGoModule rec { + pname = "gogs"; + version = "0.13.0"; + + src = fetchFromGitHub { + owner = "gogs"; + repo = "gogs"; + rev = "v${version}"; + sha256 = "sha256-UfxE+NaqDr3XUXpvlV989Iwjq/lsAwpMTDAPkcOmma8="; + }; + + vendorHash = "sha256-ISJOEJ1DWO4nnMpDuZ36Nq528LhgekDh3XUF8adlj2w="; + + subPackages = [ "." ]; + + postPatch = '' + patchShebangs . + ''; + + nativeBuildInputs = [ makeWrapper openssh ]; + + buildInputs = optional pamSupport pam; + + tags = + ( optional sqliteSupport "sqlite" + ++ optional pamSupport "pam"); + + postInstall = '' + + wrapProgram $out/bin/gogs \ + --prefix PATH : ${makeBinPath [ bash git gzip openssh ]} + ''; + + meta = { + description = "A painless self-hosted Git service"; + homepage = "https://gogs.io"; + license = licenses.mit; + maintainers = [ maintainers.schneefux ]; + mainProgram = "gogs"; + knownVulnerabilities = [ '' + Gogs has known unpatched vulnerabilities and upstream maintainers appears to be unresponsive. + + More information can be found in forgejo's blogpost: https://forgejo.org/2023-11-release-v1-20-5-1/ + + You might want to consider migrating to Gitea or forgejo. + '' ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gomp/default.nix b/nixpkgs/pkgs/applications/version-management/gomp/default.nix new file mode 100644 index 000000000000..03385404e787 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gomp/default.nix @@ -0,0 +1,25 @@ +{ lib +, python3Packages +, fetchPypi +}: + +python3Packages.buildPythonApplication rec { + pname = "gomp"; + version = "1.1.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "11nq40igqbyfiygdzb1zyxx1n6d9xkv8vlmprbbi75mq54gfihhb"; + }; + + doCheck = false; # tests require interactive terminal + + meta = with lib; { + description = "A tool for comparing Git branches"; + homepage = "https://github.com/MarkForged/GOMP"; + license = licenses.mit; + maintainers = with maintainers; [ prusnak ]; + platforms = platforms.unix; + mainProgram = "gomp"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gource/default.nix b/nixpkgs/pkgs/applications/version-management/gource/default.nix new file mode 100644 index 000000000000..63c2202b4be9 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gource/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchurl, SDL2, ftgl, pkg-config, libpng, libjpeg, pcre2 +, SDL2_image, freetype, glew, libGLU, libGL, boost, glm, tinyxml +}: + +stdenv.mkDerivation rec { + pname = "gource"; + version = "0.54"; + + src = fetchurl { + url = "https://github.com/acaudwell/Gource/releases/download/${pname}-${version}/${pname}-${version}.tar.gz"; + hash = "sha256-HcvO32XSz01p/gtjPlTCApJsCLgpvK0Lc+r54pzW+uU="; + }; + + postPatch = '' + # remove bundled library + rm -r src/tinyxml + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + glew SDL2 ftgl libpng libjpeg pcre2 SDL2_image libGLU libGL + boost glm freetype tinyxml + ]; + + configureFlags = [ + "--with-boost-libdir=${boost.out}/lib" + "--with-tinyxml" + ]; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://gource.io/"; + description = "A Software version control visualization tool"; + license = licenses.gpl3Plus; + longDescription = '' + Software projects are displayed by Gource as an animated tree with + the root directory of the project at its centre. Directories + appear as branches with files as leaves. Developers can be seen + working on the tree at the times they contributed to the project. + + Currently Gource includes built-in log generation support for Git, + Mercurial and Bazaar and SVN. Gource can also parse logs produced + by several third party tools for CVS repositories. + ''; + platforms = platforms.unix; + maintainers = with maintainers; [ pSub ]; + mainProgram = "gource"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gql/default.nix b/nixpkgs/pkgs/applications/version-management/gql/default.nix new file mode 100644 index 000000000000..02a90ab2ec7c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gql/default.nix @@ -0,0 +1,39 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, libgit2 +, zlib +}: + +rustPlatform.buildRustPackage rec { + pname = "gql"; + version = "0.9.0"; + + src = fetchFromGitHub { + owner = "AmrDeveloper"; + repo = "GQL"; + rev = version; + hash = "sha256-A9gjCuWIRdNQhMjdRIH0B5cXGZAPQxK+qYSNI5WGZec="; + }; + + cargoHash = "sha256-aA7YPUKlBhfIBvT4D6zgZ8+lKNNazsVwGJC5VETAzOY="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + libgit2 + zlib + ]; + + meta = with lib; { + description = "A SQL like query language to perform queries on .git files"; + homepage = "https://github.com/AmrDeveloper/GQL"; + changelog = "https://github.com/AmrDeveloper/GQL/releases/tag/${src.rev}"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "gitql"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/gst/default.nix b/nixpkgs/pkgs/applications/version-management/gst/default.nix new file mode 100644 index 000000000000..c282da41c1eb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gst/default.nix @@ -0,0 +1,57 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, git +, ghq +}: + +buildGoModule rec { + pname = "gst"; + version = "5.0.5"; + + src = fetchFromGitHub { + owner = "uetchy"; + repo = "gst"; + rev = "v${version}"; + hash = "sha256-NhbGHTYucfqCloVirkaDlAtQfhWP2cw4I+t/ysvvkR0="; + }; + + vendorHash = "sha256-kGPg6NyhVfVOn0BFQY83/VYdpUjOqaf5I4bev0uhvUw="; + + doCheck = false; + + nativeBuildInputs = [ + git + ghq + ]; + + ldflags = [ + "-s" "-w" "-X=main.Version=${version}" + ]; + + doInstallCheck = true; + installCheckPhase = '' + if [[ "$("$out/bin/${pname}" --version)" == "${pname} version ${version}" ]]; then + export HOME=$(mktemp -d) + git config --global user.name "Test User" + git config --global user.email "test@example.com" + git config --global init.defaultBranch "main" + git config --global ghq.user "user" + ghq create test > /dev/null 2>&1 + touch $HOME/ghq/github.com/user/test/SmokeTest + $out/bin/${pname} list | grep SmokeTest > /dev/null + echo '${pname} smoke check passed' + else + echo '${pname} smoke check failed' + return 1 + fi + ''; + + meta = { + description = "Supercharge your ghq workflow"; + homepage = "https://github.com/uetchy/gst"; + maintainers = with lib.maintainers; [ _0x4A6F ]; + license = lib.licenses.asl20; + mainProgram = "gst"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/guilt/darwin-fix.patch b/nixpkgs/pkgs/applications/version-management/guilt/darwin-fix.patch new file mode 100644 index 000000000000..54c11059be64 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/guilt/darwin-fix.patch @@ -0,0 +1,20 @@ +uname -s is used to determine the differences between the command line +utilities like stat or awk in linux and darwin. However, in nix, guilt +will be using the nix versions of this programs, not the ones +installed in the system. Therefore, guilt should use the command-line +parameters that the linux forms of these commands expect, even if it +is being run on Darwin. + +diff --git a/guilt b/guilt +index bf50343..cfc9332 100755 +--- a/guilt ++++ b/guilt +@@ -986,7 +986,7 @@ guards_file="$GUILT_DIR/$branch/guards" + pager="more" + [ ! -z "$PAGER" ] && pager="$PAGER" + +-UNAME_S=`uname -s` ++UNAME_S="Linux" + + if [ -r "$GUILT_PATH/os.$UNAME_S" ]; then + . "$GUILT_PATH/os.$UNAME_S" diff --git a/nixpkgs/pkgs/applications/version-management/guilt/default.nix b/nixpkgs/pkgs/applications/version-management/guilt/default.nix new file mode 100644 index 000000000000..aeb0eaf43f11 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/guilt/default.nix @@ -0,0 +1,93 @@ +{ asciidoc +, docbook_xml_dtd_45 +, docbook_xsl +, fetchFromGitHub +, gawk +, git +, gnused +, lib +, makeWrapper +, openssl +, perl +, stdenv +, xmlto +}: + +stdenv.mkDerivation rec { + pname = "guilt"; + version = "0.37-rc1"; + + src = fetchFromGitHub { + owner = "jeffpc"; + repo = "guilt"; + rev = "v${version}"; + sha256 = "sha256-7OgRbMGYWtGvrZxKfJe0CkpmU3AUkPebF5NyTsfXeGA="; + }; + + doCheck = true; + + patches = [ + ./guilt-help-mandir.patch + ./darwin-fix.patch + ]; + nativeBuildInputs = [ + asciidoc + docbook_xml_dtd_45 + docbook_xsl + makeWrapper + perl + xmlto + ]; + buildInputs = [ + gawk + git + gnused + ] ++ lib.optionals stdenv.isDarwin [ openssl ]; + makeFlags = [ + "PREFIX=$(out)" + ]; + + postBuild = '' + make -j $NIX_BUILD_CORES doc + ''; + + preCheck = '' + patchShebangs regression/run-tests regression/*.sh + ''; + + postInstall = '' + make PREFIX=$out install-doc + ''; + + postFixup = '' + wrapProgram $out/bin/guilt --prefix PATH : ${lib.makeBinPath buildInputs} + ''; + + meta = with lib; { + description = "Manage patches like quilt, on top of a git repository"; + longDescription = '' + Andrew Morton originally developed a set of scripts for + maintaining kernel patches outside of any SCM tool. Others + extended these into a suite called quilt]. The basic idea behind + quilt is to maintain patches instead of maintaining source + files. Patches can be added, removed or reordered, and they can + be refreshed as you fix bugs or update to a new base + revision. quilt is very powerful, but it is not integrated with + the underlying SCM tools. This makes it difficult to visualize + your changes. + + Guilt allows one to use quilt functionality on top of a Git + repository. Changes are maintained as patches which are + committed into Git. Commits can be removed or reordered, and the + underlying patch can be refreshed based on changes made in the + working directory. The patch directory can also be placed under + revision control, so you can have a separate history of changes + made to your patches. + ''; + homepage = "https://github.com/jeffpc/guilt"; + maintainers = with lib.maintainers; [ javimerino ]; + license = [ licenses.gpl2 ]; + platforms = platforms.all; + mainProgram = "guilt"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/guilt/guilt-help-mandir.patch b/nixpkgs/pkgs/applications/version-management/guilt/guilt-help-mandir.patch new file mode 100644 index 000000000000..54f1149f291e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/guilt/guilt-help-mandir.patch @@ -0,0 +1,15 @@ +nixpkgs' post-installation fixup moves the pages to share/man. Tell guilt-help so that it can find them. + +diff --git a/guilt-help b/guilt-help +index 93442a3..b29e059 100755 +--- a/guilt-help ++++ b/guilt-help +@@ -34,7 +34,7 @@ case $# in + ;; + esac + +-MANDIR=`dirname $0`/../man ++MANDIR=`dirname $0`/../share/man + MANDIR=`(cd "$MANDIR"; pwd)` + exec man -M "$MANDIR" "$page" + diff --git a/nixpkgs/pkgs/applications/version-management/gut/default.nix b/nixpkgs/pkgs/applications/version-management/gut/default.nix new file mode 100644 index 000000000000..1254de70eb92 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/gut/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, nix-update-script +}: + +buildGoModule rec { + pname = "gut"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "julien040"; + repo = "gut"; + rev = version; + hash = "sha256-l7yjZEcpsnVisd93EqIug1n0k18m4tUmCQFXC6b63cg="; + }; + + vendorHash = "sha256-G9oDMHLmdv/vQfofTqKAf21xaGp+lvW+sedLmaj+A5A="; + + ldflags = [ "-s" "-w" "-X github.com/julien040/gut/src/telemetry.gutVersion=${version}" ]; + + # Depends on `/home` existing + doCheck = false; + + passthru.updateScript = nix-update-script { }; + + meta = with lib; { + description = "An alternative git CLI"; + homepage = "https://gut-cli.dev"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + mainProgram = "gut"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/hub/default.nix b/nixpkgs/pkgs/applications/version-management/hub/default.nix new file mode 100644 index 000000000000..4486c71605da --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/hub/default.nix @@ -0,0 +1,81 @@ +{ lib +, buildGoModule +, fetchpatch +, fetchFromGitHub +, git +, groff +, installShellFiles +, makeWrapper +, unixtools +, nixosTests +}: + +buildGoModule rec { + pname = "hub"; + version = "unstable-2022-12-01"; + + src = fetchFromGitHub { + owner = "github"; + repo = pname; + rev = "38bcd4ae469e5f53f01901340b715c7658ab417a"; + hash = "sha256-V2GvwKj0m2UXxE42G23OHXyAsTrVRNw1p5CAaJxGYog="; + }; + + patches = [ + # Fix `fish` completions + # https://github.com/github/hub/pull/3036 + (fetchpatch { + url = "https://github.com/github/hub/commit/439b7699e79471fc789929bcdea2f30bd719963e.patch"; + hash = "sha256-pR/OkGa2ICR4n1pLNx8E2UTtLeDwFtXxeeTB94KFjC4="; + }) + # Fix `bash` completions + # https://github.com/github/hub/pull/2948 + (fetchpatch { + url = "https://github.com/github/hub/commit/64b291006f208fc7db1d5be96ff7db5535f1d853.patch"; + hash = "sha256-jGFFIvSKEIpTQY0Wz63cqciUk25MzPHv5Z1ox8l7wmo="; + }) + ]; + + postPatch = '' + patchShebangs script/ + sed -i 's/^var Version = "[^"]\+"$/var Version = "${version}"/' version/version.go + ''; + + vendorHash = "sha256-wQH8V9jRgh45JGs4IfYS1GtmCIYdo93JG1UjJ0BGxXk="; + + # Only needed to build the man-pages + excludedPackages = [ "github.com/github/hub/md2roff-bin" ]; + + nativeBuildInputs = [ + groff + installShellFiles + makeWrapper + unixtools.col + ]; + + postInstall = '' + installShellCompletion --cmd hub \ + --bash etc/hub.bash_completion.sh \ + --fish etc/hub.fish_completion \ + --zsh etc/hub.zsh_completion + + LC_ALL=C.UTF8 make man-pages + installManPage share/man/man[1-9]/*.[1-9] + + wrapProgram $out/bin/hub \ + --suffix PATH : ${lib.makeBinPath [ git ]} + ''; + + nativeCheckInputs = [ + git + ]; + + passthru.tests = { inherit (nixosTests) hub; }; + + meta = with lib; { + description = "Command-line wrapper for git that makes you better at GitHub"; + homepage = "https://hub.github.com/"; + license = licenses.mit; + maintainers = with maintainers; [ globin ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/hut/default.nix b/nixpkgs/pkgs/applications/version-management/hut/default.nix new file mode 100644 index 000000000000..0a22f17fbf13 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/hut/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildGoModule +, fetchFromSourcehut +, scdoc +}: + +buildGoModule rec { + pname = "hut"; + version = "0.4.0"; + + src = fetchFromSourcehut { + owner = "~emersion"; + repo = "hut"; + rev = "v${version}"; + sha256 = "sha256-9RSJ+SRXYBjdiuHScgFm5i0/Xi81pJfURPKAGCk+l04="; + }; + + vendorHash = "sha256-OxnplvBx2sFctdNSVd0S0tgiRt5Yah3ga4mORT2Kz6U="; + + nativeBuildInputs = [ + scdoc + ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + postBuild = '' + make $makeFlags completions doc/hut.1 + ''; + + preInstall = '' + make $makeFlags install + ''; + + meta = with lib; { + homepage = "https://sr.ht/~emersion/hut/"; + description = "A CLI tool for Sourcehut / sr.ht"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ fgaz ]; + mainProgram = "hut"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/josh/default.nix b/nixpkgs/pkgs/applications/version-management/josh/default.nix new file mode 100644 index 000000000000..b127966176cd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/josh/default.nix @@ -0,0 +1,64 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, rustPlatform +, libgit2 +, openssl +, pkg-config +, makeWrapper +, git +, darwin +}: + +let + # josh-ui requires javascript dependencies, haven't tried to figure it out yet + cargoFlags = [ "--workspace" "--exclude" "josh-ui" ]; +in + +rustPlatform.buildRustPackage rec { + pname = "josh"; + version = "23.12.04"; + JOSH_VERSION = "r${version}"; + + src = fetchFromGitHub { + owner = "esrlabs"; + repo = "josh"; + rev = JOSH_VERSION; + sha256 = "10fspcafqnv6if5c1h8z9pf9140jvvlrch88w62wsg4w2vhaii0v"; + }; + + cargoSha256 = "1j0vl3h6f65ldg80bgryh1mz423lcrcdkn8rmajya1850pfxk3w3"; + + nativeBuildInputs = [ + pkg-config + makeWrapper + ]; + + buildInputs = [ + libgit2 + openssl + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + darwin.Security + ]; + + cargoBuildFlags = cargoFlags; + cargoTestFlags = cargoFlags; + + postInstall = '' + wrapProgram "$out/bin/josh-proxy" --prefix PATH : "${git}/bin" + ''; + + meta = { + description = "Just One Single History"; + homepage = "https://josh-project.github.io/josh/"; + downloadPage = "https://github.com/josh-project/josh"; + changelog = "https://github.com/josh-project/josh/releases/tag/${version}"; + license = lib.licenses.mit; + maintainers = [ + lib.maintainers.sternenseemann + lib.maintainers.tazjin + ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix b/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix new file mode 100644 index 000000000000..8b5580650b32 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix @@ -0,0 +1,88 @@ +{ stdenv +, lib +, fetchFromGitHub +, rustPlatform +, Security +, SystemConfiguration +, pkg-config +, libiconv +, openssl +, gzip +, libssh2 +, libgit2 +, zstd +, installShellFiles +, nix-update-script +, testers +, jujutsu +}: + +rustPlatform.buildRustPackage rec { + pname = "jujutsu"; + version = "0.16.0"; + + src = fetchFromGitHub { + owner = "martinvonz"; + repo = "jj"; + rev = "v${version}"; + hash = "sha256-7bMyboF1JG/roFgo3cusYTi7qd2a6W+u1RJHgoBXNL0="; + }; + + cargoHash = "sha256-nPBHIUBm4bQLuj93kE8CUfzA34uUyapVjswz9FFCiTk="; + + cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors + useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping + ZSTD_SYS_USE_PKG_CONFIG = "1"; # disable vendored zlib + LIBSSH2_SYS_USE_PKG_CONFIG = "1"; # disable vendored libssh2 + + nativeBuildInputs = [ + gzip + installShellFiles + pkg-config + ]; + + buildInputs = [ + openssl + zstd + libgit2 + libssh2 + ] ++ lib.optionals stdenv.isDarwin [ + Security + SystemConfiguration + libiconv + ]; + + postInstall = '' + $out/bin/jj util mangen > ./jj.1 + installManPage ./jj.1 + + installShellCompletion --cmd jj \ + --bash <($out/bin/jj util completion bash) \ + --fish <($out/bin/jj util completion fish) \ + --zsh <($out/bin/jj util completion zsh) + ''; + + checkFlags = [ + # signing tests spin up an ssh-agent and do git checkouts + "--skip=test_ssh_signing" + ]; + + passthru = { + updateScript = nix-update-script { }; + tests = { + version = testers.testVersion { + package = jujutsu; + command = "jj --version"; + }; + }; + }; + + meta = with lib; { + description = "A Git-compatible DVCS that is both simple and powerful"; + homepage = "https://github.com/martinvonz/jj"; + changelog = "https://github.com/martinvonz/jj/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ _0x4A6F thoughtpolice ]; + mainProgram = "jj"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/lab/default.nix b/nixpkgs/pkgs/applications/version-management/lab/default.nix new file mode 100644 index 000000000000..0a4637d533fb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/lab/default.nix @@ -0,0 +1,42 @@ +{ lib, buildGoModule, fetchFromGitHub, makeBinaryWrapper, xdg-utils, installShellFiles, git }: + +buildGoModule rec { + pname = "lab"; + version = "0.25.1"; + + src = fetchFromGitHub { + owner = "zaquestion"; + repo = "lab"; + rev = "v${version}"; + sha256 = "sha256-VCvjP/bSd/0ywvNWPsseXn/SPkdp+BsXc/jTvB11EOk="; + }; + + subPackages = [ "." ]; + + vendorHash = "sha256-ChysquNuUffcM3qaWUdqu3Av33gnKkdlotEoFKoedA0="; + + doCheck = false; + + nativeBuildInputs = [ makeBinaryWrapper installShellFiles ]; + + ldflags = [ "-s" "-w" "-X main.version=${version}" ]; + + postInstall = '' + # create shell completions before wrapProgram so that lab detects the right path for itself + installShellCompletion --cmd lab \ + --bash <($out/bin/lab completion bash) \ + --fish <($out/bin/lab completion fish) \ + --zsh <($out/bin/lab completion zsh) + # make xdg-open overrideable at runtime + wrapProgram $out/bin/lab \ + --suffix PATH ":" "${lib.makeBinPath [ git xdg-utils ]}" + ''; + + meta = with lib; { + description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab"; + homepage = "https://zaquestion.github.io/lab"; + license = licenses.cc0; + maintainers = with maintainers; [ dtzWill ]; + mainProgram = "lab"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/legit-web/default.nix b/nixpkgs/pkgs/applications/version-management/legit-web/default.nix new file mode 100644 index 000000000000..3c42284702d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/legit-web/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "legit"; + version = "0.2.2"; + + src = fetchFromGitHub { + repo = "legit"; + owner = "icyphox"; + rev = "v${version}"; + hash = "sha256-TBq1ILBhojMIxnLj108L0zLmFsZD/ET9w5cSbqk8+XM="; + }; + + vendorHash = "sha256-IeWgmUNkBU3W6ayfRkzMO/0XHNqm5zy5lLUNePzv+ug="; + + postInstall = '' + mkdir -p $out/lib/legit/templates + mkdir -p $out/lib/legit/static + + cp -r $src/templates/* $out/lib/legit/templates + cp -r $src/static/* $out/lib/legit/static + ''; + + meta = { + description = "Web frontend for git"; + homepage = "https://github.com/icyphox/legit"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.ratsclub ]; + mainProgram = "legit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/legit/default.nix b/nixpkgs/pkgs/applications/version-management/legit/default.nix new file mode 100644 index 000000000000..93d274ecaf2f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/legit/default.nix @@ -0,0 +1,33 @@ +{ lib +, python3Packages +, fetchPypi +}: + +python3Packages.buildPythonApplication rec { + pname = "legit"; + version = "1.2.0.post0"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-lJOWtoApqK9AWrIMkBkCNB72vVXH/sbatxFB1j1AaxE="; + }; + + propagatedBuildInputs = with python3Packages; [ + click + clint + crayons + gitpython + six + ]; + + # no tests + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/frostming/legit"; + description = "Git for Humans, Inspired by GitHub for Mac"; + license = licenses.bsd3; + maintainers = with maintainers; [ ryneeverett ]; + mainProgram = "legit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/lucky-commit/default.nix b/nixpkgs/pkgs/applications/version-management/lucky-commit/default.nix new file mode 100644 index 000000000000..dcaca33f0952 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/lucky-commit/default.nix @@ -0,0 +1,37 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, withOpenCL ? true +, stdenv +, OpenCL +, ocl-icd +}: + +rustPlatform.buildRustPackage rec { + pname = "lucky-commit"; + version = "2.2.3"; + + src = fetchFromGitHub { + owner = "not-an-aardvark"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-jxcsTtQcSuL+2vwdxIVxqTpKh8Bfvna+hkGt+Rx21FE="; + }; + + cargoHash = "sha256-8JkodGtMdYP/IIBqRcJFD5syiZi+VakDyX7VcvR0HLo="; + + buildInputs = lib.optional withOpenCL (if stdenv.isDarwin then OpenCL else ocl-icd); + + buildNoDefaultFeatures = !withOpenCL; + + # disable tests that require gpu + checkNoDefaultFeatures = true; + + meta = with lib; { + description = "Change the start of your git commit hashes to whatever you want"; + homepage = "https://github.com/not-an-aardvark/lucky-commit"; + license = licenses.mit; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "lucky_commit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/meld/default.nix b/nixpkgs/pkgs/applications/version-management/meld/default.nix new file mode 100644 index 000000000000..3b2f52f00774 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/meld/default.nix @@ -0,0 +1,74 @@ +{ lib +, fetchurl +, gettext +, itstool +, python3 +, meson +, ninja +, wrapGAppsHook +, libxml2 +, pkg-config +, desktop-file-utils +, gobject-introspection +, gtk3 +, gtksourceview4 +, gnome +, gsettings-desktop-schemas +}: + +python3.pkgs.buildPythonApplication rec { + pname = "meld"; + version = "3.22.2"; + + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-RqCnE/vNGxU7N3oeB1fIziVcmCJGdljqz72JsekjFu8="; + }; + + nativeBuildInputs = [ + meson + ninja + gettext + itstool + libxml2 + pkg-config + desktop-file-utils + gobject-introspection + wrapGAppsHook + gtk3 # for gtk-update-icon-cache + ]; + + buildInputs = [ + gtk3 + gtksourceview4 + gsettings-desktop-schemas + gnome.adwaita-icon-theme + ]; + + pythonPath = with python3.pkgs; [ + pygobject3 + pycairo + ]; + + postPatch = '' + patchShebangs meson_shebang_normalisation.py + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + versionPolicy = "none"; # should be odd-unstable but we are tracking unstable versions for now + }; + }; + + meta = with lib; { + description = "Visual diff and merge tool"; + homepage = "https://meld.app/"; + license = licenses.gpl2Plus; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ jtojnar mimame ]; + mainProgram = "meld"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix new file mode 100644 index 000000000000..19ba699abef4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix @@ -0,0 +1,228 @@ +{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles +, re2Support ? true +# depends on rust-cpython which won't support python312 +# https://github.com/dgrunwald/rust-cpython/commit/e815555629e557be084813045ca1ddebc2f76ef9 +, rustSupport ? (stdenv.hostPlatform.isLinux && python3Packages.pythonOlder "3.12"), cargo, rustPlatform, rustc +, fullBuild ? false +, gitSupport ? fullBuild +, guiSupport ? fullBuild, tk +, highlightSupport ? fullBuild +, ApplicationServices +# test dependencies +, runCommand +, unzip +, which +, sqlite +, git +, cacert +, gnupg +}: + +let + inherit (python3Packages) docutils python fb-re2 pygit2 pygments; + + self = python3Packages.buildPythonApplication rec { + pname = "mercurial${lib.optionalString fullBuild "-full"}"; + version = "6.6.3"; + + src = fetchurl { + url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; + hash = "sha256-911qSnWCOht9cTpJZ+yi9Zb0ZuWPxrwG1yZCky/X4wc="; + }; + + format = "other"; + + passthru = { inherit python; }; # pass it so that the same version can be used in hg2git + + cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball { + inherit src; + name = "mercurial-${version}"; + sha256 = "sha256-G5tzwoIGOgpVI35rYXDeelnBgTbAiq7BDcXCHQzqSrs="; + sourceRoot = "mercurial-${version}/rust"; + } else null; + cargoRoot = if rustSupport then "rust" else null; + + propagatedBuildInputs = lib.optional re2Support fb-re2 + ++ lib.optional gitSupport pygit2 + ++ lib.optional highlightSupport pygments; + nativeBuildInputs = [ makeWrapper gettext installShellFiles python3Packages.setuptools ] + ++ lib.optionals rustSupport [ + rustPlatform.cargoSetupHook + cargo + rustc + ]; + buildInputs = [ docutils ] + ++ lib.optionals stdenv.isDarwin [ ApplicationServices ]; + + makeFlags = [ "PREFIX=$(out)" ] + ++ lib.optional rustSupport "PURE=--rust"; + + postInstall = (lib.optionalString guiSupport '' + mkdir -p $out/etc/mercurial + cp contrib/hgk $out/bin + cat >> $out/etc/mercurial/hgrc << EOF + [extensions] + hgk=$out/${python.sitePackages}/hgext/hgk.py + EOF + # setting HG so that hgk can be run itself as well (not only hg view) + WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} + --set HG $out/bin/hg + --prefix PATH : ${tk}/bin " + '') + '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + $WRAP_TK + done + + # copy hgweb.cgi to allow use in apache + mkdir -p $out/share/cgi-bin + cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin + chmod u+x $out/share/cgi-bin/hgweb.cgi + + installShellCompletion --cmd hg \ + --bash contrib/bash_completion \ + --zsh contrib/zsh_completion + ''; + + passthru.tests = { + mercurial-tests = makeTests { flags = "--with-hg=$MERCURIAL_BASE/bin/hg"; }; + }; + + meta = with lib; { + description = "A fast, lightweight SCM system for very large distributed projects"; + homepage = "https://www.mercurial-scm.org"; + downloadPage = "https://www.mercurial-scm.org/release/"; + changelog = "https://wiki.mercurial-scm.org/Release${versions.majorMinor version}"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ]; + platforms = platforms.unix; + mainProgram = "hg"; + }; + }; + + makeTests = { mercurial ? self, nameSuffix ? "", flags ? "" }: runCommand "${mercurial.pname}${nameSuffix}-tests" { + inherit (mercurial) src; + + SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; # needed for git + MERCURIAL_BASE = mercurial; + nativeBuildInputs = [ + python + unzip + which + sqlite + git + gnupg + ]; + + postPatch = '' + patchShebangs . + + for f in **/*.{py,c,t}; do + # not only used in shebangs + substituteAllInPlace "$f" '/bin/sh' '${stdenv.shell}' + done + + for f in **/*.t; do + substituteInPlace 2>/dev/null "$f" \ + --replace '*/hg:' '*/*hg*:' \${/* paths emitted by our wrapped hg look like ..hg-wrapped-wrapped */""} + --replace '"$PYTHON" "$BINDIR"/hg' '"$BINDIR"/hg' ${/* 'hg' is a wrapper; don't run using python directly */""} + done + ''; + + # This runs Mercurial _a lot_ of times. + requiredSystemFeatures = [ "big-parallel" ]; + + # Don't run tests if not-Linux or if cross-compiling. + meta.broken = !stdenv.hostPlatform.isLinux || stdenv.buildPlatform != stdenv.hostPlatform; + } '' + addToSearchPathWithCustomDelimiter : PYTHONPATH "${mercurial}/${python.sitePackages}" + + unpackPhase + cd "$sourceRoot" + patchPhase + + cat << EOF > tests/blacklists/nix + # tests enforcing "/usr/bin/env" shebangs, which are patched for nix + test-run-tests.t + test-check-shbang.t + + # unstable experimental/unsupported features + # https://bz.mercurial-scm.org/show_bug.cgi?id=6633#c1 + test-git-interop.t + + # doesn't like the extra setlocale warnings emitted by our bash wrappers + test-locale.t + + # Python 3.10-3.12 deprecation warning: asyncore + # https://bz.mercurial-scm.org/show_bug.cgi?id=6727 + test-patchbomb-tls.t + EOF + + export HGTEST_REAL_HG="${mercurial}/bin/hg" + # include tests for native components + export HGMODULEPOLICY="rust+c" + # extended timeout necessary for tests to pass on the busy CI workers + export HGTESTFLAGS="--blacklist blacklists/nix --timeout 1800 -j$NIX_BUILD_CORES ${flags}" + make check + touch $out + ''; +in + self.overridePythonAttrs (origAttrs: { + passthru = origAttrs.passthru // rec { + # withExtensions takes a function which takes the python packages set and + # returns a list of extensions to install. + # + # for instance: mercurial.withExtension (pm: [ pm.hg-evolve ]) + withExtensions = f: let + python = self.python; + mercurialHighPrio = ps: (ps.toPythonModule self).overrideAttrs (oldAttrs: { + meta = oldAttrs.meta // { + priority = 50; + }; + }); + plugins = (f python.pkgs) ++ [ (mercurialHighPrio python.pkgs) ]; + env = python.withPackages (ps: plugins); + in stdenv.mkDerivation { + pname = "${self.pname}-with-extensions"; + + inherit (self) src version meta; + + buildInputs = self.buildInputs ++ self.propagatedBuildInputs; + nativeBuildInputs = self.nativeBuildInputs; + + dontUnpack = true; + dontPatch = true; + dontConfigure = true; + dontBuild = true; + doCheck = false; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + + for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do + for bin in $bindir/*; do + ln -s ${env}/bin/$(basename $bin) $out/bin/ + done + done + + ln -s ${self}/share $out/share + + runHook postInstall + ''; + + installCheckPhase = '' + runHook preInstallCheck + + $out/bin/hg help >/dev/null || exit 1 + + runHook postInstallCheck + ''; + }; + + tests = origAttrs.passthru.tests // { + withExtensions = withExtensions (pm: [ pm.hg-evolve ]); + }; + }; + }) diff --git a/nixpkgs/pkgs/applications/version-management/merge-fmt/default.nix b/nixpkgs/pkgs/applications/version-management/merge-fmt/default.nix new file mode 100644 index 000000000000..6a9a18aa992f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/merge-fmt/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchurl, buildDunePackage, cmdliner, base, stdio }: + +buildDunePackage rec { + pname = "merge-fmt"; + version = "0.3"; + + src = fetchurl { + url = + "https://github.com/hhugo/merge-fmt/releases/download/${version}/merge-fmt-${version}.tbz"; + hash = "sha256-F+ds0ToWcKD4NJU3yYSVW4B3m2LBnhR+4QVTDO79q14="; + }; + + minimalOCamlVersion = "4.06"; + duneVersion = "3"; + + buildInputs = [ cmdliner base stdio ]; + + meta = with lib; { + description = "Git mergetool leveraging code formatters"; + homepage = "https://github.com/hhugo/merge-fmt"; + license = licenses.mit; + longDescription = '' + `merge-fmt` is a small wrapper on top git commands to help resolve + conflicts by leveraging code formatters. + ''; + maintainers = [ maintainers.alizter ]; + mainProgram = "merge-fmt"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix new file mode 100644 index 000000000000..e8eac58e73f6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchurl, fetchpatch, ocamlPackages, gnome2, pkg-config, makeWrapper, glib +, libtool, libpng, bison, expat, fontconfig, gd, pango, libjpeg, libwebp, libX11, libXaw +}: +# We need an old version of Graphviz for format compatibility reasons. +# This version is vulnerable, but monotone-viz will never feed it bad input. +let graphviz_2_0 = import ./graphviz-2.0.nix { + inherit lib stdenv fetchurl pkg-config libX11 libpng libjpeg expat libXaw + bison libtool fontconfig pango gd libwebp; + }; in +let inherit (gnome2) libgnomecanvas; in +let inherit (ocamlPackages) ocaml lablgtk camlp4; in +stdenv.mkDerivation rec { + version = "1.0.2"; + pname = "monotone-viz"; + + nativeBuildInputs = [ pkg-config makeWrapper ocaml camlp4 ]; + buildInputs = [ lablgtk libgnomecanvas glib graphviz_2_0 ]; + src = fetchurl { + url = "http://oandrieu.nerim.net/monotone-viz/${pname}-${version}-nolablgtk.tar.gz"; + sha256 = "1l5x4xqz5g1aaqbc1x80mg0yzkiah9ma9k9mivmn08alkjlakkdk"; + }; + + prePatch="ln -s . a; ln -s . b"; + patchFlags = ["-p0"]; + patches = [ + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/monotone-viz/raw/c9f4c1bebe01bb471df05d8a37ca4b6d630574ec/f/monotone-viz-1.0.2-dot.patch"; + hash = "sha256-e348703+IzM4m/3cpe6Z9VebZgTK8+3lRLdaTfXHwSI="; + }) + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/monotone-viz/raw/c9f4c1bebe01bb471df05d8a37ca4b6d630574ec/f/monotone-viz-1.0.2-new-stdio.patch"; + hash = "sha256-9xQzJ+oYz06fDFOe1YOOisEZnwiwShqr2Rt7IXiu6Zo="; + }) + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/monotone-viz/raw/c9f4c1bebe01bb471df05d8a37ca4b6d630574ec/f/monotone-viz-1.0.2-typefix.patch"; + hash = "sha256-52VGXDJKx4ZGvZRO8QCXdTGsWR0m1pqQnEOby7PMQdg="; + }) + ]; + + preConfigure = '' + configureFlags="$configureFlags --with-lablgtk-dir=$(echo ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2)" + ''; + + postInstall = '' + wrapProgram "$out/bin/monotone-viz" --prefix PATH : "${graphviz_2_0}/bin/" + ''; + + meta = { + description = "Monotone ancestry visualiser"; + mainProgram = "monotone-viz"; + license = lib.licenses.gpl2Plus ; + maintainers = [lib.maintainers.raskin]; + platforms = lib.platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix new file mode 100644 index 000000000000..05a0abe93c52 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchurl +, pkg-config +, libX11 +, libpng +, libjpeg +, expat +, libXaw +, bison +, libtool +, fontconfig +, pango +, gd +, libwebp +}: + +stdenv.mkDerivation rec { + pname = "graphviz"; + version = "2.0"; + + src = fetchurl { + url = "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-${version}.tar.gz"; + sha256 = "39b8e1f2ba4cc1f5bdc8e39c7be35e5f831253008e4ee2c176984f080416676c"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libpng + libjpeg + expat + libXaw + bison + libtool + fontconfig + pango + gd + libwebp + ]; + + hardeningDisable = [ "format" "fortify" ]; + + configureFlags = + [ + "--with-pngincludedir=${libpng.dev}/include" + "--with-pnglibdir=${libpng.out}/lib" + "--with-jpegincludedir=${libjpeg.dev}/include" + "--with-jpeglibdir=${libjpeg.out}/lib" + "--with-expatincludedir=${expat.dev}/include" + "--with-expatlibdir=${expat.out}/lib" + "--with-ltdl-include=${libtool}/include" + "--with-ltdl-lib=${libtool.lib}/lib" + ] + ++ lib.optional (libX11 == null) "--without-x"; + + meta = { + description = "A program for visualising graphs"; + homepage = "http://www.graphviz.org/"; + branch = "2.0"; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone/default.nix b/nixpkgs/pkgs/applications/version-management/monotone/default.nix new file mode 100644 index 000000000000..56e23ee1f6bd --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/default.nix @@ -0,0 +1,81 @@ +{ lib, stdenv, fetchFromGitHub, boost, zlib, botan2, libidn +, lua, pcre, sqlite, perl, pkg-config, expect, less +, bzip2, gmp, openssl +, autoreconfHook, texinfo +, fetchpatch +}: + +let + version = "1.1-unstable-2021-05-01"; + perlVersion = lib.getVersion perl; +in + +assert perlVersion != ""; + +stdenv.mkDerivation rec { + pname = "monotone"; + inherit version; + + # src = fetchurl { + # url = "http://monotone.ca/downloads/${version}/monotone-${version}.tar.bz2"; + # sha256 = "124cwgi2q86hagslbk5idxbs9j896rfjzryhr6z63r6l485gcp7r"; + # }; + + # My mirror of upstream Monotone repository + # Could fetchmtn, but circular dependency; snapshot requested + # https://lists.nongnu.org/archive/html/monotone-devel/2021-05/msg00000.html + src = fetchFromGitHub { + owner = "7c6f434c"; + repo = "monotone-mirror"; + rev = "b30b0e1c16def043d2dad57d1467d5bfdecdb070"; + hash = "sha256:1hfy8vaap3184cd7h3qhz0da7c992idkc6q2nz9frhma45c5vgmd"; + }; + + patches = [ + ./monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch + ./monotone-1.1-adapt-to-botan2.patch + (fetchpatch { + name = "rm-clang-float128-hack.patch"; + url = "https://github.com/7c6f434c/monotone-mirror/commit/5f01a3a9326a8dbdae7fc911b208b7c319e5f456.patch"; + revert = true; + sha256 = "0fzjdv49dx5lzvqhkvk50lkccagwx8h0bfha4a0k6l4qh36f9j7c"; + }) + ./monotone-1.1-gcc-14.patch + ]; + + postPatch = '' + sed -e 's@/usr/bin/less@${less}/bin/less@' -i src/unix/terminal.cc + '' + lib.optionalString (lib.versionAtLeast boost.version "1.73") '' + find . -type f -exec sed -i \ + -e 's/ E(/ internal_E(/g' \ + -e 's/{E(/{internal_E(/g' \ + {} + + ''; + + CXXFLAGS=" --std=c++11 "; + + nativeBuildInputs = [ pkg-config autoreconfHook texinfo ]; + buildInputs = [ boost zlib botan2 libidn lua pcre sqlite expect + openssl gmp bzip2 perl ]; + + postInstall = '' + mkdir -p $out/share/${pname}-${version} + cp -rv contrib/ $out/share/${pname}-${version}/contrib + mkdir -p $out/${perl.libPrefix}/${perlVersion} + cp -v contrib/Monotone.pm $out/${perl.libPrefix}/${perlVersion} + + patchShebangs "$out/share/monotone" + patchShebangs "$out/share/${pname}-${version}" + + find "$out"/share/{doc/monotone,${pname}-${version}}/contrib/ -type f | xargs sed -e 's@! */usr/bin/@!/usr/bin/env @; s@! */bin/bash@!/usr/bin/env bash@' -i + ''; + + #doCheck = true; # some tests fail (and they take VERY long) + + meta = with lib; { + description = "A free distributed version control system"; + maintainers = [ maintainers.raskin ]; + platforms = platforms.unix; + license = licenses.gpl2Plus; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch new file mode 100644 index 000000000000..1ecda436c251 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch @@ -0,0 +1,66 @@ +From 70f209ad582121750d54e3692b1e62c7f36af6f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> +Date: Mon, 7 May 2018 14:09:06 +0200 +Subject: [PATCH] Adapt to changes in pcre-8.42 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +pcre-8.42 replaced internal real_pcre with real_pcre8_or_16. This +broke monotone that decided not to use the public "pcre" type. + +This patch adapts monotone to the pcre >= 8.42. + +Signed-off-by: Petr PÃsaÅ™ <ppisar@redhat.com> +--- + src/pcrewrap.cc | 4 ++-- + src/pcrewrap.hh | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/pcrewrap.cc b/src/pcrewrap.cc +index 8c0c9d1..30bafff 100644 +--- a/src/pcrewrap.cc ++++ b/src/pcrewrap.cc +@@ -74,7 +74,7 @@ get_capturecount(void const * bd) + namespace pcre + { + typedef map<char const *, +- pair<struct real_pcre const *, struct pcre_extra const *> > ++ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *> > + regex_cache; + + class regex_cache_manager +@@ -86,7 +86,7 @@ public: + } + + void store(char const * pattern, +- pair<struct real_pcre const *, struct pcre_extra const *> ++ pair<struct real_pcre8_or_16 const *, struct pcre_extra const *> + data) + { + cache[pattern] = data; +diff --git a/src/pcrewrap.hh b/src/pcrewrap.hh +index 3359cdd..5008e88 100644 +--- a/src/pcrewrap.hh ++++ b/src/pcrewrap.hh +@@ -18,7 +18,7 @@ + // definitions and so we don't actually expose it here. Unfortunately, this + // means we have to hope this pair of forward declarations will not change... + +-struct real_pcre; ++struct real_pcre8_or_16; + struct pcre_extra; + + namespace pcre +@@ -61,7 +61,7 @@ namespace pcre + regex & operator=(regex const &); + + // data +- struct real_pcre const * basedat; ++ struct real_pcre8_or_16 const * basedat; + struct pcre_extra const * extradat; + + // used by constructors +-- +2.14.3 + diff --git a/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-adapt-to-botan2.patch b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-adapt-to-botan2.patch new file mode 100644 index 000000000000..1df6a4717d5a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-adapt-to-botan2.patch @@ -0,0 +1,15 @@ +Botan2 has switched the parameter order in encryption descriptions + +--- monotone-upstream/src/botan_glue.hh 2021-08-17 19:06:32.736753732 +0200 ++++ monotone-patched/src/botan_glue.hh 2021-08-17 19:07:44.437750535 +0200 +@@ -45,7 +45,9 @@ + // In Botan revision d8021f3e (back when it still used monotone) the name + // of SHA-1 changed to SHA-160. + const static char * PBE_PKCS5_KEY_FORMAT = +-#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,11,0) ++#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(2,0,0) ++ "PBE-PKCS5v20(TripleDES/CBC,SHA-160)"; ++#elif BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,11,0) + "PBE-PKCS5v20(SHA-160,TripleDES/CBC)"; + #else + "PBE-PKCS5v20(SHA-1,TripleDES/CBC)"; diff --git a/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-gcc-14.patch b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-gcc-14.patch new file mode 100644 index 000000000000..a5b79b6d02fb --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-gcc-14.patch @@ -0,0 +1,17 @@ +Unsetting __STRICT_ANSI__ is not a supported configuration for gcc +nowadays. gcc-14 started failing libstdc++ build as it uses gcc +extensions without __STRICT_ANSI__: https://gcc.gnu.org/PR111824 +--- a/src/base.hh ++++ b/src/base.hh +@@ -34,11 +34,6 @@ + #define WIN32_LEAN_AND_MEAN + #endif + +-// Cygwin somehow enables strict ansi, which we don't want. +-#ifdef __STRICT_ANSI__ +-#undef __STRICT_ANSI__ +-#endif +- + #include <iosfwd> + #include <string> // it would be nice if there were a <stringfwd> + diff --git a/nixpkgs/pkgs/applications/version-management/mr/default.nix b/nixpkgs/pkgs/applications/version-management/mr/default.nix new file mode 100644 index 000000000000..4ff6c6733e6f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/mr/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchgit, perl }: + +stdenv.mkDerivation { + pname = "mr"; + version = "1.20180726"; + + src = fetchgit { + url = "git://myrepos.branchable.com/"; + # the repository moved its tags at least once + # when updating please continue using the revision hash here + rev = "0ad7a17bb455de1fec3b2375c7aac72ab2a22ac4"; + sha256 = "0jphw61plm8cgklja6hs639xhdvxgvjwbr6jpvjwpp7hc5gmhms5"; + }; + + postPatch = '' + patchShebangs . + ''; + + buildInputs = [ perl ]; + + makeFlags = [ "PREFIX=$(out)" ]; + + meta = { + description = "Multiple Repository management tool"; + longDescription = '' + mr is a tool to manage all your version control repos. It can + checkout, update, or perform other actions on a set of + repositories as if they were one combined repository. It + supports any combination of subversion, git, cvs, mercurial, + bzr, darcs, fossil and veracity repositories, and support for + other version control systems can easily be added. + ''; + homepage = "http://myrepos.branchable.com/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ antono ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix b/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix new file mode 100644 index 000000000000..854c66a6d5e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix @@ -0,0 +1,51 @@ +{ lib +, python3 +, fetchPypi +, coreutils +, git +, mercurial +}: + +python3.pkgs.buildPythonApplication rec { + version = "0.6.1"; + pname = "nbstripout"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-kGW83RSIs4bk88CB/8HUj0UTovjYv00NmiggjF2v6dM="; + }; + + # for some reason, darwin uses /bin/sh echo native instead of echo binary, so + # force using the echo binary + postPatch = '' + substituteInPlace tests/test-git.t --replace "echo" "${coreutils}/bin/echo" + ''; + + propagatedBuildInputs = with python3.pkgs; [ + ipython + nbformat + ]; + + nativeCheckInputs = [ + coreutils + git + mercurial + ] ++ (with python3.pkgs; [ + pytest-cram + pytestCheckHook + ]); + + preCheck = '' + export HOME=$(mktemp -d) + export PATH=$out/bin:$PATH + git config --global init.defaultBranch main + ''; + + meta = { + description = "Strip output from Jupyter and IPython notebooks"; + homepage = "https://github.com/kynan/nbstripout"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jluttine ]; + mainProgram = "nbstripout"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/nitpick/default.nix b/nixpkgs/pkgs/applications/version-management/nitpick/default.nix new file mode 100644 index 000000000000..56d3531f7219 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/nitpick/default.nix @@ -0,0 +1,40 @@ +{ fetchFromGitHub +, buildPythonPackage +, lib +, isPy27 +}: + +buildPythonPackage rec { + pname = "nitpick"; + version = "1.1"; + + format = "other"; + disabled = !isPy27; + + src = fetchFromGitHub { + owner = "travisb-ca"; + repo = pname; + rev = version; + sha256 = "11gn6nc6ypwivy20bx1r0rm2giblwx6jv485zk875a9pdbcwbrf6"; + }; + + installPhase = '' + mkdir -p $out/share/src + install -m 755 -t $out/share/src nitpick.py + + mkdir -p $out/bin + ln -s $out/share/src/nitpick.py $out/bin/nitpick + ''; + + meta = { + description = "A distributed issue tracker"; + longDescription = '' + Nitpick is a distributed issue tracker. It helps keep track of which nits you + should pick. It's intended to be used with source code such that the issues can + follow the code via whatever VCS or distribution mechanism. + ''; + homepage = "http://travisbrown.ca/projects/nitpick/docs/nitpick.html"; + license = with lib.licenses; gpl2; + maintainers = []; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/p4/default.nix b/nixpkgs/pkgs/applications/version-management/p4/default.nix new file mode 100644 index 000000000000..695e596e8c85 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/p4/default.nix @@ -0,0 +1,108 @@ +{ stdenv +, fetchurl +, fetchzip +, lib +, emptyDirectory +, linkFarm +, jam +, openssl +, xcbuild +, CoreServices +, Foundation +, Security +}: + +let + opensslStatic = openssl.override { + static = true; + }; + androidZlibContrib = + let + src = fetchzip { + url = "https://android.googlesource.com/platform/external/zlib/+archive/61174f4fd262c6075f88768465f308aae95a2f04.tar.gz"; + sha256 = "sha256-EMzKAHcEWOUugcHKH2Fj3ZaIHC9UlgO4ULKe3RvgxvI="; + stripRoot = false; + }; + in + linkFarm "android-zlib-contrib" [ + # We only want to keep the contrib directory as the other files conflict + # with p4's own zlib files. (For the same reason, we can't use the + # cone-based Git sparse checkout, either.) + { name = "contrib"; path = "${src}/contrib"; } + ]; +in +stdenv.mkDerivation rec { + pname = "p4"; + version = "2022.2.2407422"; + + src = fetchurl { + # Upstream replaces minor versions, so use archived URL. + url = "https://web.archive.org/web/20230512173806id_/https://ftp.perforce.com/perforce/r22.2/bin.tools/p4source.tgz"; + sha256 = "4355375def3f3d2256d4a92ac1b9960173e7aa97404346c0c74caf23a0905e1b"; + }; + + nativeBuildInputs = [ jam ]; + + buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Foundation Security ]; + + outputs = [ "out" "bin" "dev" ]; + + hardeningDisable = lib.optionals stdenv.isDarwin [ "strictoverflow" ]; + + jamFlags = + [ + "-sEXEC=bin.unix" + "-sCROSS_COMPILE=${stdenv.cc.targetPrefix}" + "-sMALLOC_OVERRIDE=no" + "-sSSLINCDIR=${lib.getDev opensslStatic}/include" + "-sSSLLIBDIR=${lib.getLib opensslStatic}/lib" + ] + ++ lib.optionals stdenv.cc.isClang [ "-sOSCOMP=clang" "-sCLANGVER=${stdenv.cc.cc.version}" ] + ++ lib.optionals stdenv.cc.isGNU [ "-sOSCOMP=gcc" "-sGCCVER=${stdenv.cc.cc.version}" ] + ++ lib.optionals stdenv.isLinux [ "-sOSVER=26" ] + ++ lib.optionals stdenv.isDarwin [ + "-sOSVER=1013" + "-sMACOSX_SDK=${emptyDirectory}" + "-sLIBC++DIR=${lib.getLib stdenv.cc.libcxx}/lib" + ]; + + CCFLAGS = + # The file contrib/optimizations/slide_hash_neon.h is missing from the + # upstream distribution. It comes from the Android/Chromium sources. + lib.optionals stdenv.isAarch64 [ "-I${androidZlibContrib}" ]; + + "C++FLAGS" = + # Avoid a compilation error that only occurs for 4-byte longs. + lib.optionals stdenv.isi686 [ "-Wno-narrowing" ] + # See the "Header dependency changes" section of + # https://www.gnu.org/software/gcc/gcc-11/porting_to.html for more + # information on why we need to include these. + ++ lib.optionals + (stdenv.cc.isClang || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.cc.version "11.0.0")) + [ "-include" "limits" "-include" "thread" ]; + + buildPhase = '' + runHook preBuild + jam $jamFlags -j$NIX_BUILD_CORES p4 + jam $jamFlags -j$NIX_BUILD_CORES -sPRODUCTION=yes p4api.tar + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $bin/bin $dev $out + cp bin.unix/p4 $bin/bin + cp -r bin.unix/p4api-${version}/include $dev + cp -r bin.unix/p4api-${version}/lib $out + runHook postInstall + ''; + + meta = with lib; { + description = "Perforce Helix Core command-line client and APIs"; + homepage = "https://www.perforce.com"; + license = licenses.bsd2; + mainProgram = "p4"; + platforms = platforms.unix; + maintainers = with maintainers; [ corngood impl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/p4d/default.nix b/nixpkgs/pkgs/applications/version-management/p4d/default.nix new file mode 100644 index 000000000000..d7dcd1405575 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/p4d/default.nix @@ -0,0 +1,48 @@ +{ stdenv +, fetchurl +, lib +, autoPatchelfHook +}: + +let + # Upstream replaces minor versions, so use cached URLs. + srcs = { + "x86_64-linux" = fetchurl { + url = "https://web.archive.org/web/20231109221336id_/https://ftp.perforce.com/perforce/r23.1/bin.linux26x86_64/helix-core-server.tgz"; + sha256 = "b68c4907cf9258ab47102e8f0e489c11d528a8f614bfa45e3a2fa198639e2362"; + }; + "x86_64-darwin" = fetchurl { + url = "https://web.archive.org/web/20231109221937id_/https://ftp.perforce.com/perforce/r23.1/bin.macosx1015x86_64/helix-core-server.tgz"; + sha256 = "fcbf09787ffc29f7237839711447bf19a37ae18a8a7e19b2d30deb3715ae2c11"; + }; + }; +in +stdenv.mkDerivation { + pname = "p4d"; + version = "2023.1.2513900"; + + src = + assert lib.assertMsg (builtins.hasAttr stdenv.hostPlatform.system srcs) "p4d is not available for ${stdenv.hostPlatform.system}"; + srcs.${stdenv.hostPlatform.system}; + + sourceRoot = "."; + + nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; + + dontBuild = true; + + installPhase = '' + install -D -t $out/bin p4broker p4d p4p + install -D -t $out/doc/p4d -m 0644 *.txt + ''; + + meta = with lib; { + description = "Perforce Helix Core Server"; + homepage = "https://www.perforce.com"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + mainProgram = "p4d"; + platforms = builtins.attrNames srcs; + maintainers = with maintainers; [ corngood impl ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/p4v/darwin.nix b/nixpkgs/pkgs/applications/version-management/p4v/darwin.nix new file mode 100644 index 000000000000..d3d3568b9f2e --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/p4v/darwin.nix @@ -0,0 +1,24 @@ +{ stdenv, undmg }: + +{ pname, version, src, meta }: +stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications $out/bin + + # Install Qt applications. + for f in p4admin.app p4merge.app p4v.app; do + mv $f $out/Applications + done + + # Install p4vc separately (it's a tiny shell script). + mv p4vc $out/bin + substituteInPlace $out/bin/p4vc \ + --replace /Applications $out/Applications + ''; +} diff --git a/nixpkgs/pkgs/applications/version-management/p4v/default.nix b/nixpkgs/pkgs/applications/version-management/p4v/default.nix new file mode 100644 index 000000000000..1004661499be --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/p4v/default.nix @@ -0,0 +1,38 @@ +{ stdenv +, fetchurl +, lib +, callPackage +, libsForQt5 +}: + +let + # Upstream replaces minor versions, so use archived URLs. + srcs = { + "x86_64-linux" = fetchurl { + url = "https://web.archive.org/web/20220902181457id_/https://ftp.perforce.com/perforce/r22.2/bin.linux26x86_64/p4v.tgz"; + sha256 = "8fdade4aafe25f568a61cfd80823aa90599c2a404b7c6b4a0862c84b07a9f8d2"; + }; + "x86_64-darwin" = fetchurl { + url = "https://web.archive.org/web/20220902194716id_/https://ftp.perforce.com/perforce/r22.2/bin.macosx1015x86_64/P4V.dmg"; + sha256 = "c4a9460c0f849be193c68496c500f8a785c740f5bea5b5e7f617969c20be3cd7"; + }; + }; + + mkDerivation = + if stdenv.isDarwin then callPackage ./darwin.nix { } + else libsForQt5.callPackage ./linux.nix { }; +in mkDerivation { + pname = "p4v"; + version = "2022.2.2336701"; + + src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + + meta = { + description = "Perforce Helix Visual Client"; + homepage = "https://www.perforce.com"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + license = lib.licenses.unfreeRedistributable; + platforms = builtins.attrNames srcs; + maintainers = with lib.maintainers; [ impl nathyong nioncode ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/p4v/linux.nix b/nixpkgs/pkgs/applications/version-management/p4v/linux.nix new file mode 100644 index 000000000000..6a9d6ba6aad4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/p4v/linux.nix @@ -0,0 +1,89 @@ +{ stdenv +, autoPatchelfHook +, cups +, dbus +, fontconfig +, gccForLibs +, libX11 +, libXcomposite +, libXcursor +, libXdamage +, libXext +, libXi +, libXrandr +, libXrender +, libXtst +, libinput +, libxcb +, libxkbcommon +, nss +, qttools +, qtwebengine +, xcbutilimage +, xcbutilkeysyms +, xcbutilrenderutil +, xcbutilwm +}: + +{ pname, version, src, meta }: +let + unwrapped = stdenv.mkDerivation { + pname = "${pname}-unwrapped"; + inherit version src meta; + + nativeBuildInputs = [ autoPatchelfHook ]; + buildInputs = [ + cups + dbus + fontconfig + gccForLibs + libX11 + libXcomposite + libXcursor + libXdamage + libXext + libXi + libXrandr + libXrender + libXtst + libinput + libxcb + libxkbcommon + nss + qttools + qtwebengine + xcbutilimage + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + ]; + + dontBuild = true; + + # Don't wrap the Qt apps; upstream has its own wrapper scripts. + dontWrapQtApps = true; + + installPhase = '' + mkdir -p $out + cp -r bin lib $out + addAutoPatchelfSearchPath $out/lib + ''; + }; +in +stdenv.mkDerivation { + inherit pname version; + + # Build a "clean" version of the package so that we don't add extra ".bin" or + # configuration files to users' PATHs. We can't easily put the unwrapped + # package files in libexec (where they belong, probably) because the upstream + # wrapper scripts have the bin directory hardcoded. + buildCommand = '' + mkdir -p $out/bin + for f in p4admin p4merge p4v p4vc; do + ln -s ${unwrapped}/bin/$f $out/bin + done + ''; + preferLocalBuild = true; + + inherit (unwrapped) meta passthru; +} diff --git a/nixpkgs/pkgs/applications/version-management/pass-git-helper/default.nix b/nixpkgs/pkgs/applications/version-management/pass-git-helper/default.nix new file mode 100644 index 000000000000..62e9a12a49df --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/pass-git-helper/default.nix @@ -0,0 +1,27 @@ +{ lib, buildPythonApplication, fetchFromGitHub, pyxdg, pytest, pytest-mock }: + +buildPythonApplication rec { + pname = "pass-git-helper"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "languitar"; + repo = "pass-git-helper"; + rev = "refs/tags/v${version}"; + sha256 = "sha256-wkayj7SvT3SOM+rol17+8LQJR/YXSC6I+iKbHRUbdZc="; + }; + + propagatedBuildInputs = [ pyxdg ]; + nativeCheckInputs = [ pytest pytest-mock ]; + preCheck = '' + export HOME=$(mktemp -d) + ''; + + meta = with lib; { + homepage = "https://github.com/languitar/pass-git-helper"; + description = "A git credential helper interfacing with pass, the standard unix password manager"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ hmenke vanzef ]; + mainProgram = "pass-git-helper"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/peru/default.nix b/nixpkgs/pkgs/applications/version-management/peru/default.nix new file mode 100644 index 000000000000..5637471711b1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/peru/default.nix @@ -0,0 +1,29 @@ +{ lib, fetchFromGitHub, python3Packages }: + +python3Packages.buildPythonApplication rec { + pname = "peru"; + version = "1.2.0"; + + disabled = python3Packages.pythonOlder "3.5"; + + src = fetchFromGitHub { + owner = "buildinspace"; + repo = "peru"; + rev = version; + sha256 = "0p4j51m89glx12cd65lcnbwpvin0v49wkhrx06755skr7v37pm2a"; + }; + + propagatedBuildInputs = with python3Packages; [ pyyaml docopt ]; + + # No tests in archive + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/buildinspace/peru"; + description = "A tool for including other people's code in your projects"; + license = licenses.mit; + platforms = platforms.unix; + mainProgram = "peru"; + }; + +} diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix new file mode 100644 index 000000000000..bb6e7aeb9114 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix @@ -0,0 +1,49 @@ +{ lib, stdenv +, fetchCrate +, rustPlatform +, installShellFiles +, pkg-config +, libsodium +, openssl +, xxHash +, darwin +, gitImportSupport ? true +, libgit2 ? null +}: + +rustPlatform.buildRustPackage rec { + pname = "pijul"; + version = "1.0.0-beta.9"; + + src = fetchCrate { + inherit version pname; + hash = "sha256-jy0mzgLw9iWuoWe2ictMTL3cHnjJ5kzs6TAK+pdm28g="; + }; + + cargoHash = "sha256-iXGvb4qmZK7Sjbf/Jkyzj+nhpZFV3ngjtJfz6x/8z2s="; + + doCheck = false; + nativeBuildInputs = [ installShellFiles pkg-config ]; + buildInputs = [ openssl libsodium xxHash ] + ++ (lib.optionals gitImportSupport [ libgit2 ]) + ++ (lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ + CoreServices Security SystemConfiguration + ])); + + buildFeatures = lib.optional gitImportSupport "git"; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd pijul \ + --bash <($out/bin/pijul completion bash) \ + --fish <($out/bin/pijul completion fish) \ + --zsh <($out/bin/pijul completion zsh) + ''; + + meta = with lib; { + description = "A distributed version control system"; + homepage = "https://pijul.org"; + license = with licenses; [ gpl2Plus ]; + maintainers = with maintainers; [ gal_bolle dywedir fabianhjr ]; + mainProgram = "pijul"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/qgit/default.nix b/nixpkgs/pkgs/applications/version-management/qgit/default.nix new file mode 100644 index 000000000000..a0038554d86c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/qgit/default.nix @@ -0,0 +1,26 @@ +{ mkDerivation, lib, fetchFromGitHub, cmake, qtbase }: + +mkDerivation rec { + pname = "qgit"; + version = "2.10"; + + src = fetchFromGitHub { + owner = "tibirna"; + repo = "qgit"; + rev = "${pname}-${version}"; + sha256 = "sha256-xM0nroWs4WByc2O469zVeAlzKn6LLr+8WDlEdSjtRYI="; + }; + + buildInputs = [ qtbase ]; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + license = licenses.gpl2Only; + homepage = "https://github.com/tibirna/qgit"; + description = "Graphical front-end to Git"; + maintainers = with maintainers; [ peterhoeg markuskowa ]; + inherit (qtbase.meta) platforms; + mainProgram = "qgit"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix b/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix new file mode 100644 index 000000000000..7cc0a92d4c94 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix @@ -0,0 +1,46 @@ +{ fetchFromGitHub, lib, python3Packages, meld, subversion, gvfs, xdg-utils, gtk3 }: + +python3Packages.buildPythonApplication rec { + pname = "rabbitvcs"; + version = "0.18"; + namePrefix = ""; + + src = fetchFromGitHub { + owner = "rabbitvcs"; + repo = "rabbitvcs"; + rev = "v${version}"; + hash = "sha256-gVrdf8vQWAGORZqlTS/axs4U7aZlS8OAgPM3iKgqAtM="; + }; + + buildInputs = [ gtk3 ]; + pythonPath = with python3Packages; [ configobj pygobject3 pysvn dulwich tkinter gvfs xdg-utils ]; + + prePatch = '' + sed -ie 's|if sys\.argv\[1\] == "install":|if False:|' ./setup.py + sed -ie "s|PREFIX = sys.prefix|PREFIX = \"$out\"|" ./setup.py + sed -ie 's|/usr/bin/meld|${meld}/bin/meld|' ./rabbitvcs/util/configspec/configspec.ini + sed -ie 's|/usr/bin/svnadmin|${subversion.out}/bin/svnadmin|' ./rabbitvcs/ui/create.py + sed -ie "s|/usr/share/doc|$out/share/doc|" ./rabbitvcs/ui/about.py + sed -ie "s|gnome-open|xdg-open|" ./rabbitvcs/util/helper.py + ''; + + outputs = [ "out" "cli" ]; + + postInstall = '' + mkdir -p $cli/bin + cp clients/cli/rabbitvcs $cli/bin + wrapPythonProgramsIn $cli "$out $pythonPath" + ''; + + doCheck = false; + + meta = { + description = "Graphical tools for working with version control systems"; + homepage = "http://rabbitvcs.org/"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.linux; + maintainers = [ lib.maintainers.mathnerd314 ]; + # ModuleNotFoundError: No module named 'rabbitvcs' + broken = true; # Added 2024-01-28 + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/radicle-cli/Cargo.lock b/nixpkgs/pkgs/applications/version-management/radicle-cli/Cargo.lock new file mode 100644 index 000000000000..be6c304884ed --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/radicle-cli/Cargo.lock @@ -0,0 +1,6892 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures", + "opaque-debug 0.3.0", +] + +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.6", + "once_cell", + "serde", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anyhow" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" + +[[package]] +name = "arc-swap" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d78ce20460b82d3fa150275ed9d55e21064fc7951177baacf86a145c4a4b1f" + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "assay" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6400785ccafeab7f18a4d23d726f9090dd1195386f06026c6e59db36e11938" +dependencies = [ + "assay-proc-macro", + "pretty_assertions", + "rusty-fork", + "tempfile", + "tokio", +] + +[[package]] +name = "assay-proc-macro" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d94121b572ccf1d1b38a1004155e59c64f4c6ff7793070d84a8807e0550881e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "assert_cmd" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ae1ddd39efd67689deb1979d80bad3bf7f2b09c6e6117c8d1f2443b5e2f83e" +dependencies = [ + "bstr", + "doc-comment", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "async-channel" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-io" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +dependencies = [ + "concurrent-queue", + "futures-lite", + "libc", + "log", + "once_cell", + "parking", + "polling", + "slab", + "socket2 0.4.4", + "waker-fn", + "winapi 0.3.9", +] + +[[package]] +name = "async-lock" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-process" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c" +dependencies = [ + "async-io", + "blocking", + "cfg-if 1.0.0", + "event-listener", + "futures-lite", + "libc", + "once_cell", + "signal-hook", + "winapi 0.3.9", +] + +[[package]] +name = "async-stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-task" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" + +[[package]] +name = "async-trait" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "atomic-waker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "auto_impl" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7862e21c893d65a1650125d157eaeec691439379a1cee17ee49031b79236ada4" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "automerge" +version = "0.0.2" +source = "git+https://github.com/automerge/automerge-rs.git?rev=e72571962b51c2f0726fb534890ef3b4f7c74dfc#e72571962b51c2f0726fb534890ef3b4f7c74dfc" +dependencies = [ + "automerge-backend", + "automerge-frontend", + "automerge-protocol", + "serde", + "serde_json", + "thiserror", + "uuid", +] + +[[package]] +name = "automerge" +version = "0.1.0" +source = "git+https://github.com/automerge/automerge-rs?rev=291557a019acac283e54ea31a9fad81ed65736ab#291557a019acac283e54ea31a9fad81ed65736ab" +dependencies = [ + "flate2", + "fxhash", + "hex", + "itertools 0.10.3", + "leb128", + "nonzero_ext 0.2.0", + "rand 0.8.5", + "serde", + "sha2 0.10.2", + "smol_str", + "thiserror", + "tinyvec", + "tracing", + "uuid", +] + +[[package]] +name = "automerge-backend" +version = "0.0.1" +source = "git+https://github.com/automerge/automerge-rs.git?rev=e72571962b51c2f0726fb534890ef3b4f7c74dfc#e72571962b51c2f0726fb534890ef3b4f7c74dfc" +dependencies = [ + "automerge-protocol", + "flate2", + "fxhash", + "hex", + "itertools 0.9.0", + "js-sys", + "leb128", + "maplit", + "nonzero_ext 0.2.0", + "rand 0.8.5", + "serde", + "serde_json", + "sha2 0.9.9", + "smol_str", + "thiserror", + "tracing", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "automerge-frontend" +version = "0.1.0" +source = "git+https://github.com/automerge/automerge-rs.git?rev=e72571962b51c2f0726fb534890ef3b4f7c74dfc#e72571962b51c2f0726fb534890ef3b4f7c74dfc" +dependencies = [ + "automerge-protocol", + "getrandom 0.2.6", + "maplit", + "serde", + "serde_json", + "smol_str", + "thiserror", + "unicode-segmentation", + "uuid", +] + +[[package]] +name = "automerge-protocol" +version = "0.1.0" +source = "git+https://github.com/automerge/automerge-rs.git?rev=e72571962b51c2f0726fb534890ef3b4f7c74dfc#e72571962b51c2f0726fb534890ef3b4f7c74dfc" +dependencies = [ + "hex", + "serde", + "smol_str", + "strum", + "thiserror", + "tinyvec", + "uuid", +] + +[[package]] +name = "backoff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fe17f59a06fe8b87a6fc8bf53bb70b3aba76d7685f432487a68cd5552853625" +dependencies = [ + "getrandom 0.2.6", + "instant", + "rand 0.8.5", +] + +[[package]] +name = "base-x" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc19a4937b4fbd3fe3379793130e42060d10627a360f2127802b10b87e7baf74" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base58" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" + +[[package]] +name = "base58check" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee2fe4c9a0c84515f136aaae2466744a721af6d63339c18689d9e995d74d99b" +dependencies = [ + "base58", + "sha2 0.8.2", +] + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "base64ct" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179" + +[[package]] +name = "bech32" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dabbe35f96fb9507f7330793dc490461b2962659ac5d427181e451a623751d1" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" +dependencies = [ + "either", + "radium 0.3.0", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty", + "radium 0.6.2", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake2s_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "cc", + "cfg-if 0.1.10", + "constant_time_eq", + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding 0.1.5", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array 0.14.5", +] + +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "blocking" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +dependencies = [ + "async-channel", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "once_cell", +] + +[[package]] +name = "bloom-filters" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f178e62ed3e8b7338f2cb581fc19bebcbc0814e009f305ab1d6954ff15a4b99" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "lazy_static", + "memchr", + "regex-automata", +] + +[[package]] +name = "btoi" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c0869a9faa81f8bbf8102371105d6d0a7b79167a04c340b04ab16892246a11" +dependencies = [ + "num-traits", +] + +[[package]] +name = "bumpalo" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" + +[[package]] +name = "byte-slice-cast" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c5fdd0166095e1d463fc6cc01aa8ce547ad77a4e84d42eb6762b084e28067e" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "bytecount" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72feb31ffc86498dacdbd0fcebb56138e7177a8cc5cea4516031d15ae85a742e" + +[[package]] +name = "bytemuck" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "iovec", +] + +[[package]] +name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +dependencies = [ + "serde", +] + +[[package]] +name = "bytesize" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70" + +[[package]] +name = "cache-padded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" + +[[package]] +name = "camino" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", +] + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chacha20" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures", + "zeroize", +] + +[[package]] +name = "chacha20poly1305" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "checked_int_cast" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" + +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time 0.1.43", + "winapi 0.3.9", +] + +[[package]] +name = "chunked_transfer" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e" + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "clap" +version = "3.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "535434c063ced786eb04aaf529308092c5ab60889e8fe24275d15de07b01fa97" +dependencies = [ + "atty", + "bitflags", + "clap_derive", + "clap_lex", + "indexmap", + "lazy_static", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap_derive" +version = "3.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1" +dependencies = [ + "heck 0.4.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213" +dependencies = [ + "os_str_bytes 6.0.0", +] + +[[package]] +name = "clru" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "218d6bd3dde8e442a975fa1cd233c0e5fded7596bccfe39f58eca98d22421e0a" + +[[package]] +name = "cmake" +version = "0.1.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +dependencies = [ + "cc", +] + +[[package]] +name = "cob" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "automerge 0.0.2", + "either", + "git-trailers", + "git2", + "jsonschema", + "lazy_static", + "link-crypto", + "link-identities", + "lru", + "minicbor", + "multibase", + "multihash 0.11.4", + "petgraph", + "radicle-git-ext", + "regex", + "serde", + "serde_json", + "tempfile", + "thiserror", + "toml", + "tracing", +] + +[[package]] +name = "coins-bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b669993c632e5fec4a297085ec57381f53e4646c123cb77a7ca754e005c921" +dependencies = [ + "bincode", + "bs58", + "coins-core", + "digest 0.9.0", + "hmac", + "k256 0.9.6", + "lazy_static", + "serde", + "sha2 0.9.9", + "thiserror", +] + +[[package]] +name = "coins-bip32" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "471b39eadc9323de375dce5eff149a5a1ebd21c67f1da34a56f87ee62191d4ea" +dependencies = [ + "bincode", + "bs58", + "coins-core", + "digest 0.9.0", + "getrandom 0.2.6", + "hmac", + "k256 0.10.4", + "lazy_static", + "serde", + "sha2 0.9.9", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38426029442f91bd49973d6f59f28e3dbb14e633e3019ac4ec6bce402c44f81c" +dependencies = [ + "bitvec 0.17.4", + "coins-bip32 0.3.0", + "getrandom 0.2.6", + "hex", + "hmac", + "pbkdf2 0.8.0", + "rand 0.8.5", + "sha2 0.9.9", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257d975731955ee86fa7f348000c3fea09c262e84c70c11e994a85aa4f467a7" +dependencies = [ + "base58check", + "base64 0.12.3", + "bech32", + "blake2", + "digest 0.9.0", + "generic-array 0.14.5", + "hex", + "ripemd160", + "serde", + "serde_derive", + "sha2 0.9.9", + "sha3", + "thiserror", +] + +[[package]] +name = "coins-ledger" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c8e824e53993514a62d2012e6e20cacf7c7761dea19824036f37dc0407b9bb" +dependencies = [ + "async-trait", + "blake2b_simd", + "byteorder", + "cfg-if 0.1.10", + "futures", + "hidapi-rusb", + "js-sys", + "lazy_static", + "libc", + "log", + "matches", + "nix 0.13.1", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colored" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59" +dependencies = [ + "atty", + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "colored" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +dependencies = [ + "atty", + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "colored_json" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd32eb54d016e203b7c2600e3a7802c75843a92e38ccc4869aefeca21771a64" +dependencies = [ + "ansi_term", + "atty", + "libc", + "serde", + "serde_json", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "console" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "regex", + "terminal_size", + "unicode-width", + "winapi 0.3.9", +] + +[[package]] +name = "const-oid" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6f2aa4d0537bcc1c74df8755072bd31c1ef1a3a1b85a68e8404a8c353b7b8b" + +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cpufeatures" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae5588f6b3c3cb05239e90bd110f257254aecd01e4635400391aeae07497845" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +dependencies = [ + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83bd3bb4314701c568e340cd8cf78c975aa0ca79e03d3f6d1677d5b0c9c0c03" +dependencies = [ + "generic-array 0.14.5", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +dependencies = [ + "generic-array 0.14.5", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array 0.14.5", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.5", + "subtle", +] + +[[package]] +name = "crypto-mac" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +dependencies = [ + "generic-array 0.14.5", + "subtle", +] + +[[package]] +name = "ctor" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ctr" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "dashmap" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +dependencies = [ + "cfg-if 1.0.0", + "num_cpus", +] + +[[package]] +name = "dashmap" +version = "5.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b5a84352d6654d195b2365e38b5a7eacfdca4ad1b375196a1f76c6d7dd01ce" +dependencies = [ + "cfg-if 1.0.0", + "hashbrown 0.12.0", + "lock_api", +] + +[[package]] +name = "data-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" + +[[package]] +name = "data-encoding-macro" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +dependencies = [ + "data-encoding", + "syn", +] + +[[package]] +name = "deadpool" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d126179d86aee4556e54f5f3c6bf6d9884e7cc52cef82f77ee6f90a7747616d" +dependencies = [ + "async-trait", + "crossbeam-queue", + "num_cpus", + "tokio", +] + +[[package]] +name = "der" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4" +dependencies = [ + "const-oid 0.6.2", +] + +[[package]] +name = "der" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +dependencies = [ + "const-oid 0.7.1", +] + +[[package]] +name = "dialoguer" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8c8ae48e400addc32a8710c8d62d55cb84249a7d58ac4cd959daecfbaddc545" +dependencies = [ + "console", + "tempfile", + "zeroize", +] + +[[package]] +name = "diff" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.5", +] + +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer 0.10.2", + "crypto-common", +] + +[[package]] +name = "directories" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" +dependencies = [ + "cfg-if 0.1.10", + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "dyn-clone" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e50f3adc76d6a43f5ed73b698a87d0760ca74617f60f7c3b879003536fdd28" + +[[package]] +name = "ecdsa" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43ee23aa5b4f68c7a092b5c3beb25f50c406adc75e2363634f242f28ab255372" +dependencies = [ + "der 0.4.5", + "elliptic-curve 0.10.6", + "hmac", + "signature", +] + +[[package]] +name = "ecdsa" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +dependencies = [ + "der 0.5.1", + "elliptic-curve 0.11.12", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519-zebra" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403ef3e961ab98f0ba902771d29f842058578bb1ce7e3c59dad5a6a93e784c69" +dependencies = [ + "curve25519-dalek", + "hex", + "rand_core 0.6.3", + "serde", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +dependencies = [ + "serde", +] + +[[package]] +name = "elliptic-curve" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beca177dcb8eb540133e7680baff45e7cc4d93bf22002676cec549f82343721b" +dependencies = [ + "crypto-bigint 0.2.11", + "ff 0.10.1", + "generic-array 0.14.5", + "group 0.10.0", + "pkcs8 0.7.6", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +dependencies = [ + "base16ct", + "crypto-bigint 0.3.2", + "der 0.5.1", + "ff 0.11.0", + "generic-array 0.14.5", + "group 0.11.0", + "rand_core 0.6.3", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding_rs" +version = "0.8.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "eth-keystore" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d47d900a7dea08593d398104f8288e37858b0ad714c8d08cd03fdb86563e6402" +dependencies = [ + "aes", + "ctr", + "digest 0.9.0", + "hex", + "hmac", + "pbkdf2 0.8.0", + "rand 0.8.5", + "scrypt 0.7.0", + "serde", + "serde_json", + "sha2 0.9.9", + "sha3", + "thiserror", + "uuid", +] + +[[package]] +name = "ethabi" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f76ef192b63e8a44b3d08832acebbb984c3fba154b5c26f70037c860202a0d4b" +dependencies = [ + "anyhow", + "ethereum-types", + "hex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + +[[package]] +name = "ethers" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59989141d334913ea2784f923e014ff9f7da373455aa12f884ab5f71378eb465" +dependencies = [ + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-contract" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c49f7c627973e1fcb46404d7846b3bc6c2a7a33616628258f61d26c6e6b89a" +dependencies = [ + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "hex", + "once_cell", + "pin-project 1.0.10", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658ab90a1fc5f338e8bf6fa6cd614ef4c8d573da40d0c89f45d21c595bda5f3b" +dependencies = [ + "Inflector", + "anyhow", + "cfg-if 1.0.0", + "ethers-core", + "getrandom 0.2.6", + "hex", + "once_cell", + "proc-macro2", + "quote", + "reqwest", + "serde", + "serde_json", + "syn", + "url", +] + +[[package]] +name = "ethers-contract-derive" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f974650dae34a335f3e2f32166be0739d7f87c3825842ad6f8195164cb5ea433" +dependencies = [ + "ethers-contract-abigen", + "ethers-core", + "hex", + "proc-macro2", + "quote", + "serde_json", + "syn", +] + +[[package]] +name = "ethers-core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f15e1a2a54bc6bc3f8ea94afafbb374264f8322fcacdae06fefda80a206739ac" +dependencies = [ + "arrayvec 0.7.2", + "bytes 1.1.0", + "cargo_metadata", + "convert_case", + "ecdsa 0.12.4", + "elliptic-curve 0.11.12", + "ethabi", + "generic-array 0.14.5", + "hex", + "k256 0.9.6", + "once_cell", + "proc-macro2", + "quote", + "rand 0.8.5", + "rlp", + "rlp-derive", + "serde", + "serde_json", + "syn", + "thiserror", + "tiny-keccak", +] + +[[package]] +name = "ethers-etherscan" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa6bfff9fc96e83d3a25390fe7a505b6c1ae4290314251bf0825cfed90d1b750" +dependencies = [ + "ethers-core", + "reqwest", + "serde", + "serde-aux", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-middleware" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d3831e5e98736715e848ec966dd76ce216a8e4f531f7d3e09ef43eead1c63df" +dependencies = [ + "async-trait", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e68d511a99f39a26c9b32a6f62360789ba0e214d8f4c012bf1fbdc7b00da0e4f" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-core", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "hex", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-timer", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9e76778f397d5185bb09d9ea4238f41880394e4fb3b6d5fdc75541c0a70df55" +dependencies = [ + "async-trait", + "coins-bip32 0.3.0", + "coins-bip39", + "coins-ledger", + "elliptic-curve 0.11.12", + "eth-keystore", + "ethers-core", + "futures-executor", + "futures-util", + "hex", + "rand 0.8.5", + "semver", + "sha2 0.9.9", + "thiserror", +] + +[[package]] +name = "ethers-solc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b73d8386c8a965c90a4fd3accea7e409d20051f613950efa9c442560bd4f03" +dependencies = [ + "colored 2.0.0", + "ethers-core", + "getrandom 0.2.6", + "glob", + "hex", + "home", + "md-5", + "once_cell", + "regex", + "semver", + "serde", + "serde_json", + "sha2 0.9.9", + "thiserror", + "tracing", + "walkdir", +] + +[[package]] +name = "event-listener" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" + +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + +[[package]] +name = "fancy-regex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6b8560a05112eb52f04b00e5d3790c0dd75d9d980eb8a122fb23b92a623ccf" +dependencies = [ + "bit-set", + "regex", +] + +[[package]] +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "ff" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f40b2dcd8bc322217a5f6559ae5f9e9d1de202a2ecee2e9eafcbece7562a4f" +dependencies = [ + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "ff" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e" +dependencies = [ + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "filebuffer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b41bfe1d74263ea9d084be951077614b3b98b4e59a9dafab1467645a9e52305" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "filetime" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "winapi 0.3.9", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "flate2" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +dependencies = [ + "cfg-if 1.0.0", + "crc32fast", + "libc", + "libz-sys", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "fraction" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba3510011eee8825018be07f08d9643421de007eaf62a3bde58d89b058abfa7" +dependencies = [ + "lazy_static", + "num", +] + +[[package]] +name = "fsevent" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" +dependencies = [ + "bitflags", + "fsevent-sys", +] + +[[package]] +name = "fsevent-sys" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" +dependencies = [ + "libc", +] + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "futures" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" + +[[package]] +name = "futures-executor" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" + +[[package]] +name = "futures-task" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + +[[package]] +name = "futures-util" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "futures_codec" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" +dependencies = [ + "bytes 0.5.6", + "futures", + "memchr", + "pin-project 0.4.29", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +dependencies = [ + "serde", + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "git-actor" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c4ab49d848cf4221daa5f80bd9969009ce5c1fb090acfec4e1ce3267fb488b" +dependencies = [ + "bstr", + "btoi", + "itoa 0.4.8", + "nom 7.1.1", + "quick-error 2.0.1", +] + +[[package]] +name = "git-diff" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d4e019a3029f25c7c17aa5fefd113b5852f7d7796403c57a5ea54735700b2e3" +dependencies = [ + "git-hash", + "git-object", + "quick-error 2.0.1", +] + +[[package]] +name = "git-features" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39932de8e019bab9a827e408ad7f96cebb65d4cdc25849ebfe4c70545d46f81f" +dependencies = [ + "crc32fast", + "crossbeam-channel", + "crossbeam-utils", + "flate2", + "git-hash", + "jwalk", + "num_cpus", + "prodash", + "quick-error 2.0.1", + "sha1", + "walkdir", +] + +[[package]] +name = "git-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99707b9c4943f76a8875b6dd8a2e7291228c9e23c68253e403059ebf8117864e" +dependencies = [ + "hex", + "quick-error 2.0.1", +] + +[[package]] +name = "git-lock" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24c6c0e6c2d893be08d8e10e61d01fbbbcfb8647d0dafc9ebdc6a8ee51bcf0b2" +dependencies = [ + "fastrand", + "git-tempfile", + "quick-error 2.0.1", +] + +[[package]] +name = "git-object" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60af270db623e4af0968a07c39300c521a11fdb27d94928afbb91784d52411ec" +dependencies = [ + "bstr", + "git-actor", + "git-hash", + "git-validate", + "hex", + "nom 7.1.1", + "quick-error 2.0.1", + "smallvec", +] + +[[package]] +name = "git-odb" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "452480a78d0a1befe19cd16bf4edf72bce50a3eac7d73dc10a9817b2edc2ac1a" +dependencies = [ + "btoi", + "git-features", + "git-hash", + "git-object", + "git-pack", + "tempfile", + "thiserror", +] + +[[package]] +name = "git-pack" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee1cf8862969ad70a5ffb2b62378bc193067773bd172816071458ffdac6d6487" +dependencies = [ + "btoi", + "byteorder", + "bytesize", + "clru", + "dashmap 4.0.2", + "filebuffer", + "git-diff", + "git-features", + "git-hash", + "git-object", + "git-tempfile", + "git-traverse", + "itoa 0.4.8", + "parking_lot 0.11.2", + "smallvec", + "thiserror", + "uluru", +] + +[[package]] +name = "git-packetline" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd72d1851a70ec9dbffb5e70bf59848ae0a5d86bfc3f1d764c65bbf958a881d" +dependencies = [ + "bstr", + "futures-io", + "futures-lite", + "hex", + "pin-project-lite", + "quick-error 2.0.1", +] + +[[package]] +name = "git-protocol" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48b559bd03df1bee77c16b06cdeb5592b412e4035a3492e646f3c87114c4f4e" +dependencies = [ + "async-trait", + "bstr", + "btoi", + "futures-io", + "futures-lite", + "git-features", + "git-hash", + "git-transport", + "maybe-async", + "nom 7.1.1", + "quick-error 2.0.1", +] + +[[package]] +name = "git-ref" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f86152528fbcc6f1ce78b7b4fb18dd0258183bd2de690b25ed422b56bd63117" +dependencies = [ + "filebuffer", + "git-actor", + "git-features", + "git-hash", + "git-lock", + "git-object", + "git-tempfile", + "git-validate", + "nom 7.1.1", + "os_str_bytes 3.1.0", + "quick-error 2.0.1", +] + +[[package]] +name = "git-ref-format" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "git-ref-format-core", + "git-ref-format-macro", +] + +[[package]] +name = "git-ref-format-core" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "bstr", + "minicbor", + "thiserror", +] + +[[package]] +name = "git-ref-format-macro" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "git-ref-format-core", + "proc-macro-error", + "quote", + "syn", +] + +[[package]] +name = "git-tempfile" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6d78c8a68ab3ba1cd42684dbe0233e81a28301321c4a66417285e47cd79c6b" +dependencies = [ + "dashmap 5.3.2", + "libc", + "once_cell", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "git-trailers" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "nom 7.1.1", + "thiserror", +] + +[[package]] +name = "git-transport" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2c0d09673a172071670aa2db9a04ab459c2dbf9130ba3ad549a92520ef2473" +dependencies = [ + "async-trait", + "bstr", + "futures-io", + "futures-lite", + "git-features", + "git-packetline", + "git-url", + "pin-project-lite", + "quick-error 2.0.1", + "thiserror", +] + +[[package]] +name = "git-traverse" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3aa135b6cf4525deeb70dde2420ce886780dc2ef24a871cebe25291b9f26088a" +dependencies = [ + "git-hash", + "git-object", + "quick-error 2.0.1", +] + +[[package]] +name = "git-url" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9fcc88c679f3dc55e1e4fe0324142abec612cafaafae1bf6a951c324c9d96f8" +dependencies = [ + "bstr", + "home", + "quick-error 2.0.1", + "url", +] + +[[package]] +name = "git-validate" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58bafc6cd6f455a95997c47823182dd62cdb47f03564c44c6b6d910221801dc" +dependencies = [ + "bstr", + "quick-error 2.0.1", +] + +[[package]] +name = "git2" +version = "0.13.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "governor" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06c5d2f987ee8f6dff3fa1a352058dc59b990e447e4c7846aa7d804971314f7b" +dependencies = [ + "dashmap 4.0.2", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext 0.2.0", + "parking_lot 0.11.2", + "quanta", + "rand 0.8.5", + "smallvec", +] + +[[package]] +name = "group" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912" +dependencies = [ + "ff 0.10.1", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "group" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +dependencies = [ + "ff 0.11.0", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hashbrown" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +dependencies = [ + "ahash 0.3.8", + "autocfg", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hidapi-rusb" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6664e89e7c267621ea65a3453f7883a47a9ead4638d4dc44ccc3b695cc45d3c2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "rusb", +] + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac 0.11.1", + "digest 0.9.0", +] + +[[package]] +name = "home" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "http" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +dependencies = [ + "bytes 1.1.0", + "fnv", + "itoa 1.0.1", +] + +[[package]] +name = "http-body" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +dependencies = [ + "bytes 1.1.0", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "human_format" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86cce260d758a9aa3d7c4b99d55c815a540f8a37514ba6046ab6be402a157cb0" + +[[package]] +name = "hyper" +version = "0.14.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +dependencies = [ + "bytes 1.1.0", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.1", + "pin-project-lite", + "socket2 0.4.4", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +dependencies = [ + "http", + "hyper", + "rustls 0.20.4", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes 1.1.0", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if-addrs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" +dependencies = [ + "if-addrs-sys", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "if-addrs-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "if-watch" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" +dependencies = [ + "async-io", + "futures", + "futures-lite", + "if-addrs", + "ipnet", + "libc", + "log", + "winapi 0.3.9", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.3", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "image" +version = "0.23.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-iter", + "num-rational 0.3.2", + "num-traits", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "indexmap" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +dependencies = [ + "autocfg", + "hashbrown 0.11.2", +] + +[[package]] +name = "indicatif" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +dependencies = [ + "console", + "lazy_static", + "number_prefix", + "regex", +] + +[[package]] +name = "inotify" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" +dependencies = [ + "bitflags", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "ipnet" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" + +[[package]] +name = "iso8601" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a59a3f2be6271b2a844cd0dd13bf8ccc88a9540482d872c7ce58ab1c4db9fab" +dependencies = [ + "nom 7.1.1", +] + +[[package]] +name = "itertools" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "jobserver" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "jsonschema" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877e398ffb23c1c311c417ef5e72e8699c3822dbf835468f009c6ce91b6c206b" +dependencies = [ + "ahash 0.7.6", + "base64 0.13.0", + "bytecount", + "fancy-regex", + "fraction", + "iso8601", + "itoa 0.4.8", + "lazy_static", + "num-cmp", + "parking_lot 0.12.0", + "percent-encoding", + "regex", + "serde", + "serde_json", + "time 0.3.9", + "url", + "uuid", +] + +[[package]] +name = "jwalk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "172752e853a067cbce46427de8470ddf308af7fd8ceaf9b682ef31a5021b6bb9" +dependencies = [ + "crossbeam", + "rayon", +] + +[[package]] +name = "k256" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903ae2481bcdfdb7b68e0a9baa4b7c9aff600b9ae2e8e5bb5833b8c91ab851ea" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa 0.12.4", + "elliptic-curve 0.10.6", + "sha2 0.9.9", + "sha3", +] + +[[package]] +name = "k256" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa 0.13.4", + "elliptic-curve 0.11.12", + "sec1", + "sha2 0.9.9", +] + +[[package]] +name = "keccak" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "lexopt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de7513aea7d10dc0694d719ac53de3b74f1600e41b9f81ed9f395d8ec36a2a70" + +[[package]] +name = "libc" +version = "0.2.125" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" + +[[package]] +name = "libgit2-sys" +version = "0.12.26+1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "librad" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "async-lock", + "async-stream", + "async-trait", + "backoff", + "blocking", + "bloom-filters", + "bstr", + "bytes 0.5.6", + "cob", + "dashmap 4.0.2", + "deadpool", + "directories", + "either", + "futures", + "futures_codec", + "git-ref-format", + "git-trailers", + "git2", + "globset", + "governor", + "if-watch", + "indexmap", + "itertools 0.10.3", + "lazy_static", + "libc", + "libgit2-sys", + "link-async", + "link-canonical", + "link-crypto", + "link-git", + "link-identities", + "link-replication", + "link-tracking", + "minicbor", + "multibase", + "multihash 0.11.4", + "nom 7.1.1", + "nonempty", + "nonzero_ext 0.3.0", + "notify", + "num_cpus", + "once_cell", + "parking_lot 0.12.0", + "percent-encoding", + "picky-asn1", + "picky-asn1-der", + "picky-asn1-x509", + "quinn", + "radicle-data", + "radicle-git-ext", + "radicle-macros", + "radicle-std-ext", + "rand 0.8.5", + "rand_pcg 0.3.1", + "regex", + "rustc-hash", + "rustls 0.19.1", + "serde", + "serde_bytes", + "serde_json", + "sized-vec", + "socket2 0.4.4", + "tempfile", + "thiserror", + "time 0.3.9", + "tokio", + "toml", + "tracing", + "tracing-attributes", + "typenum", + "url", + "uuid", + "webpki 0.21.4", + "xorf", +] + +[[package]] +name = "libusb1-sys" +version = "0.6.2" +source = "git+https://github.com/a1ien/rusb.git?rev=050f5091c7b0fb69c0fc25edec0910abe8afadf1#050f5091c7b0fb69c0fc25edec0910abe8afadf1" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e" +dependencies = [ + "cc", + "cmake", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "link-async" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "blocking", + "futures", + "futures-util", + "radicle-std-ext", + "rand 0.8.5", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "link-canonical" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "link-canonical-derive", + "nom 7.1.1", + "serde", + "serde_bytes", + "serde_json", + "thiserror", + "unicode-normalization", +] + +[[package]] +name = "link-canonical-derive" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "link-crypto" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "async-trait", + "dyn-clone", + "ed25519-zebra", + "futures-lite", + "git-ref-format", + "minicbor", + "multibase", + "radicle-git-ext", + "radicle-keystore", + "rand 0.8.5", + "rustls 0.19.1", + "serde", + "thiserror", + "tracing", + "webpki 0.21.4", + "zeroize", +] + +[[package]] +name = "link-git" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "arc-swap", + "async-process", + "async-trait", + "blocking", + "bstr", + "futures-lite", + "futures-util", + "git-actor", + "git-features", + "git-hash", + "git-lock", + "git-object", + "git-odb", + "git-pack", + "git-packetline", + "git-protocol", + "git-ref", + "git-traverse", + "git2", + "im", + "lazy_static", + "once_cell", + "parking_lot 0.12.0", + "pin-project 1.0.10", + "regex", + "rustc-hash", + "tempfile", + "thiserror", + "tracing", + "versions", +] + +[[package]] +name = "link-identities" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "either", + "futures-lite", + "git-ref-format", + "git-trailers", + "git2", + "lazy_static", + "link-canonical", + "link-crypto", + "minicbor", + "multibase", + "multihash 0.11.4", + "percent-encoding", + "radicle-data", + "radicle-git-ext", + "radicle-macros", + "radicle-std-ext", + "serde", + "serde_json", + "sized-vec", + "thiserror", + "tracing", + "typenum", + "url", + "xorf", +] + +[[package]] +name = "link-replication" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "async-trait", + "blocking", + "bstr", + "either", + "futures-lite", + "git-ref-format", + "itertools 0.10.3", + "link-crypto", + "link-git", + "parking_lot 0.12.0", + "radicle-data", + "radicle-std-ext", + "rand 0.8.5", + "thiserror", + "tracing", +] + +[[package]] +name = "link-tracking" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "cob", + "either", + "git-ref-format", + "link-canonical", + "link-crypto", + "link-identities", + "multihash 0.11.4", + "radicle-git-ext", + "thiserror", + "tracing", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" + +[[package]] +name = "lnk-clib" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "async-trait", + "futures", + "itertools 0.10.3", + "librad", + "lnk-thrussh-agent", + "minicbor", + "nix 0.23.1", + "once_cell", + "serde", + "serde_json", + "socket2 0.4.4", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "lnk-cryptovec" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae312ad9efaa2ad4c57d6f63b4e5d5261486875125b7bd04d4c685dbc687ff5b" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "lnk-identities" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "anyhow", + "clap", + "either", + "git2", + "lazy_static", + "libgit2-sys", + "librad", + "lnk-clib", + "lnk-thrussh-agent", + "nonempty", + "radicle-git-ext", + "radicle-std-ext", + "serde", + "serde_json", + "similar", + "thiserror", + "tracing", + "url", +] + +[[package]] +name = "lnk-profile" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "anyhow", + "clap", + "futures-lite", + "librad", + "lnk-clib", + "lnk-thrussh-agent", + "serde", + "thiserror", +] + +[[package]] +name = "lnk-thrussh-agent" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9692c2ff209b052e9e6f658dbb56fe76eaa4761fcbcebc0a36ebd25a968d0f62" +dependencies = [ + "async-trait", + "byteorder", + "data-encoding", + "futures", + "lnk-cryptovec", + "lnk-thrussh-encoding", + "log", + "thiserror", + "tokio", +] + +[[package]] +name = "lnk-thrussh-encoding" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b3c40451361c5691987b7eeeb0428f069fb07fa70367e9aa352704982f6f1a6" +dependencies = [ + "byteorder", + "lnk-cryptovec", + "thiserror", +] + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "lru" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32613e41de4c47ab04970c348ca7ae7382cf116625755af070b008a15516a889" +dependencies = [ + "hashbrown 0.11.2", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "maybe-async" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6007f9dad048e0a224f27ca599d669fca8cfa0dac804725aab542b2eb032bce6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "md-5" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "minicbor" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "124d887cb82f0b1469bdac3d1b65764a381eed1a54fdab0070e5772b13114521" +dependencies = [ + "minicbor-derive", +] + +[[package]] +name = "minicbor-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58f79d5d3fb4f93c77ef7b97065fb65efe6abe670795ad8bc5be9c0e12005290" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow 0.2.2", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +dependencies = [ + "libc", + "log", + "miow 0.3.7", + "ntapi", + "winapi 0.3.9", +] + +[[package]] +name = "mio" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +dependencies = [ + "libc", + "log", + "miow 0.3.7", + "ntapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "winapi 0.3.9", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio 0.6.23", + "slab", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567122ab6492f49b59def14ecc36e13e64dca4188196dd0cd41f9f3f979f3df6" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "digest 0.9.0", + "sha-1 0.9.8", + "sha2 0.9.9", + "sha3", + "unsigned-varint 0.5.1", +] + +[[package]] +name = "multihash" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "digest 0.9.0", + "generic-array 0.14.5", + "multihash-derive", + "sha-1 0.9.8", + "sha2 0.9.9", + "sha3", + "unsigned-varint 0.7.1", +] + +[[package]] +name = "multihash-derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nix" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbdc256eaac2e3bd236d93ad999d3479ef775c863dbda3068c4006a92eec51b" +dependencies = [ + "bitflags", + "cc", + "cfg-if 0.1.10", + "libc", + "void", +] + +[[package]] +name = "nix" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +dependencies = [ + "bitflags", + "cc", + "cfg-if 1.0.0", + "libc", + "memoffset", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" +dependencies = [ + "hashbrown 0.8.2", +] + +[[package]] +name = "nom" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +dependencies = [ + "memchr", + "version_check", +] + +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" +dependencies = [ + "serde", +] + +[[package]] +name = "nonzero_ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44a1290799eababa63ea60af0cbc3f03363e328e58f32fb0294798ed3e85f444" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "notify" +version = "4.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" +dependencies = [ + "bitflags", + "filetime", + "fsevent", + "fsevent-sys", + "inotify", + "libc", + "mio 0.6.23", + "mio-extras", + "walkdir", + "winapi 0.3.9", +] + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational 0.2.4", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-cmp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63335b2e2c34fae2fb0aa2cecfd9f0832a1e24b3b32ecec612c3426d46dc8aaa" + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba1801fb138d8e85e11d0fc70baf4fe1cdfffda7c6cd34a854905df588e5ed0" +dependencies = [ + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "oid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2" +dependencies = [ + "serde", +] + +[[package]] +name = "once_cell" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "os_str_bytes" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6acbef58a60fe69ab50510a55bc8cdd4d6cf2283d27ad338f54cb52747a9cf2d" + +[[package]] +name = "os_str_bytes" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" + +[[package]] +name = "output_vt100" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec 0.7.2", + "bitvec 0.20.4", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "password-hash" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" +dependencies = [ + "base64ct", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "pbkdf2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +dependencies = [ + "base64ct", + "crypto-mac 0.11.1", + "hmac", + "password-hash", + "sha2 0.9.9", +] + +[[package]] +name = "pbkdf2" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05894bce6a1ba4be299d0c5f29563e08af2bc18bb7d48313113bed71e904739" +dependencies = [ + "crypto-mac 0.11.1", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared", + "rand 0.7.3", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "picky-asn1" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde" +dependencies = [ + "oid", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-der" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe" +dependencies = [ + "picky-asn1", + "serde", + "serde_bytes", +] + +[[package]] +name = "picky-asn1-x509" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba" +dependencies = [ + "base64 0.13.0", + "oid", + "picky-asn1", + "picky-asn1-der", + "serde", +] + +[[package]] +name = "pin-project" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909" +dependencies = [ + "pin-project-internal 0.4.29", +] + +[[package]] +name = "pin-project" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +dependencies = [ + "pin-project-internal 1.0.10", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee3ef9b64d26bad0536099c816c6734379e45bbd5f14798def6809e5cc350447" +dependencies = [ + "der 0.4.5", + "spki 0.4.1", +] + +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der 0.5.1", + "spki 0.5.4", + "zeroize", +] + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[package]] +name = "polling" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "log", + "wepoll-ffi", + "winapi 0.3.9", +] + +[[package]] +name = "poly1305" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" +dependencies = [ + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "predicates" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c" +dependencies = [ + "difflib", + "itertools 0.10.3", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb" + +[[package]] +name = "predicates-tree" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "pretty_assertions" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89f989ac94207d048d92db058e4f6ec7342b0971fc58d1271ca148b799b3563" +dependencies = [ + "ansi_term", + "ctor", + "diff", + "output_vt100", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "prodash" +version = "16.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79b828b82b039761e012573c3f4b73c16bc549205bd288ae65f1b99f2e394317" +dependencies = [ + "bytesize", + "human_format", +] + +[[package]] +name = "qrcode" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" +dependencies = [ + "checked_int_cast", + "image", +] + +[[package]] +name = "quanta" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98dc777a7a39b76b1a26ae9d3f691f4c1bc0455090aa0b64dfa8cb7fc34c135" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quickcheck" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +dependencies = [ + "env_logger", + "log", + "rand 0.8.5", +] + +[[package]] +name = "quinn" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c82c0a393b300104f989f3db8b8637c0d11f7a32a9c214560b47849ba8f119aa" +dependencies = [ + "bytes 1.1.0", + "futures", + "lazy_static", + "libc", + "mio 0.7.14", + "quinn-proto", + "rustls 0.19.1", + "socket2 0.3.19", + "thiserror", + "tokio", + "tracing", + "webpki 0.21.4", +] + +[[package]] +name = "quinn-proto" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "047aa96ec7ee6acabad7a1318dff72e9aff8994316bf2166c9b94cbec78ca54c" +dependencies = [ + "bytes 1.1.0", + "rand 0.8.5", + "ring", + "rustls 0.19.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki 0.21.4", +] + +[[package]] +name = "quote" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rad" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "rad-help", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-account" +version = "0.1.0" +dependencies = [ + "anyhow", + "ethers", + "lexopt", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-anchor" +version = "0.1.0" +dependencies = [ + "anyhow", + "coins-bip32 0.6.0", + "colored 1.9.3", + "ethers", + "lexopt", + "link-identities", + "log", + "multihash 0.14.0", + "radicle-cli", + "radicle-common", + "rpassword 5.0.1", + "safe-transaction-client", + "serde_json", + "thiserror", +] + +[[package]] +name = "rad-auth" +version = "0.1.0" +dependencies = [ + "anyhow", + "assay", + "atty", + "lexopt", + "librad", + "lnk-profile", + "radicle-common", + "radicle-terminal", + "zeroize", +] + +[[package]] +name = "rad-checkout" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-profile", + "rad-init", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-clone" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "rad-checkout", + "rad-init", + "rad-sync", + "rad-track", + "radicle-common", + "radicle-terminal", + "url", +] + +[[package]] +name = "rad-edit" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "link-identities", + "radicle-common", + "radicle-terminal", + "serde_json", +] + +[[package]] +name = "rad-ens" +version = "0.1.0" +dependencies = [ + "anyhow", + "ethers", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", + "serde_json", + "thiserror", + "url", +] + +[[package]] +name = "rad-gov" +version = "0.1.0" +dependencies = [ + "anyhow", + "ethers", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", + "regex", + "serde_json", + "thiserror", +] + +[[package]] +name = "rad-help" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-clib", + "lnk-profile", + "rad-account", + "rad-auth", + "rad-checkout", + "rad-clone", + "rad-edit", + "rad-ens", + "rad-init", + "rad-inspect", + "rad-ls", + "rad-pull", + "rad-push", + "rad-remote", + "rad-rm", + "rad-self", + "rad-sync", + "rad-track", + "rad-untrack", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-init" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-profile", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-inspect" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "colored_json", + "lexopt", + "librad", + "link-identities", + "lnk-profile", + "radicle-common", + "radicle-terminal", + "serde_json", +] + +[[package]] +name = "rad-issue" +version = "0.1.0" +dependencies = [ + "anyhow", + "automerge 0.1.0", + "lazy_static", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", + "serde", + "serde_json", + "serde_yaml", +] + +[[package]] +name = "rad-ls" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-merge" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-identities", + "lnk-profile", + "rad-sync", + "radicle-common", + "radicle-terminal", + "serde", + "serde_json", +] + +[[package]] +name = "rad-patch" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-identities", + "lnk-profile", + "rad-sync", + "radicle-common", + "radicle-terminal", + "serde", + "serde_json", +] + +[[package]] +name = "rad-path" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-profile", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-pull" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "rad-sync", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-push" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "rad-sync", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-remote" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-reward" +version = "0.1.0" +dependencies = [ + "anyhow", + "ethers", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-rm" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "rad-untrack", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-self" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "lnk-profile", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-sync" +version = "0.1.0" +dependencies = [ + "anyhow", + "fastrand", + "lexopt", + "librad", + "lnk-clib", + "lnk-profile", + "radicle-common", + "radicle-terminal", + "url", +] + +[[package]] +name = "rad-track" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "rad-untrack" +version = "0.1.0" +dependencies = [ + "anyhow", + "lexopt", + "librad", + "rad-track", + "radicle-common", + "radicle-terminal", +] + +[[package]] +name = "radicle-cli" +version = "0.6.1" +dependencies = [ + "anyhow", + "assay", + "assert_cmd", + "atty", + "colored 1.9.3", + "ethers", + "futures", + "futures-lite", + "lexopt", + "librad", + "link-identities", + "lnk-profile", + "log", + "rad", + "rad-account", + "rad-auth", + "rad-checkout", + "rad-clone", + "rad-edit", + "rad-ens", + "rad-gov", + "rad-help", + "rad-init", + "rad-inspect", + "rad-issue", + "rad-ls", + "rad-merge", + "rad-patch", + "rad-path", + "rad-pull", + "rad-push", + "rad-remote", + "rad-reward", + "rad-rm", + "rad-self", + "rad-sync", + "rad-track", + "rad-untrack", + "radicle-common", + "radicle-git-helpers", + "radicle-terminal", + "url", +] + +[[package]] +name = "radicle-common" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "automerge 0.1.0", + "base64 0.13.0", + "byteorder", + "chrono", + "coins-bip32 0.6.0", + "either", + "ethers", + "git-trailers", + "git2", + "hex", + "lazy_static", + "lexopt", + "librad", + "lnk-clib", + "lnk-identities", + "lnk-profile", + "log", + "nonempty", + "quickcheck", + "radicle-git-ext", + "serde", + "serde_json", + "sha2 0.10.2", + "thiserror", + "tokio", + "ureq", + "url", + "walletconnect", + "zeroize", +] + +[[package]] +name = "radicle-data" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "minicbor", + "nonempty", + "serde", + "thiserror", + "typenum", +] + +[[package]] +name = "radicle-git-ext" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "git-ref-format", + "git2", + "link-git", + "minicbor", + "multihash 0.11.4", + "percent-encoding", + "radicle-std-ext", + "serde", + "thiserror", +] + +[[package]] +name = "radicle-git-helpers" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "anyhow", + "git2", + "libgit2-sys", + "librad", +] + +[[package]] +name = "radicle-keystore" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "128583c70269a44d3e2144585b1f41a7f43ba11a2d8580266977268004a78a7b" +dependencies = [ + "async-trait", + "byteorder", + "chacha20poly1305", + "ed25519-zebra", + "futures", + "generic-array 0.14.5", + "lazy_static", + "lnk-cryptovec", + "lnk-thrussh-agent", + "lnk-thrussh-encoding", + "rand 0.8.5", + "rpassword 4.0.5", + "scrypt 0.8.0", + "secstr", + "serde", + "serde_cbor", + "thiserror", +] + +[[package]] +name = "radicle-macros" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" +dependencies = [ + "proc-macro-error", + "quote", + "radicle-git-ext", + "syn", +] + +[[package]] +name = "radicle-std-ext" +version = "0.1.0" +source = "git+https://github.com/radicle-dev/radicle-link?rev=a9485b78b5c78d252c92f61d990cf34622d1c8f1#a9485b78b5c78d252c92f61d990cf34622d1c8f1" + +[[package]] +name = "radicle-terminal" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "console", + "dialoguer", + "indicatif", + "lexopt", + "librad", + "lnk-profile", + "radicle-common", + "thiserror", + "zeroize", +] + +[[package]] +name = "radium" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg 0.2.1", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.6", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core 0.6.3", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.3", +] + +[[package]] +name = "rayon" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.6", + "redox_syscall", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" + +[[package]] +name = "regex-syntax" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "reqwest" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +dependencies = [ + "base64 0.13.0", + "bytes 1.1.0", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls 0.20.4", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "rfc6979" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +dependencies = [ + "crypto-bigint 0.3.2", + "hmac", + "zeroize", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "ripemd160" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "rlp" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" +dependencies = [ + "bytes 1.1.0", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rpassword" +version = "4.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "rpassword" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "rusb" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703aa035c21c589b34fb5136b12e68fc8dcf7ea46486861381361dd8ebf5cee0" +dependencies = [ + "libc", + "libusb1-sys", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64 0.13.0", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", +] + +[[package]] +name = "rustls" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +dependencies = [ + "log", + "ring", + "sct 0.7.0", + "webpki 0.22.0", +] + +[[package]] +name = "rustls-pemfile" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" +dependencies = [ + "base64 0.13.0", +] + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error 1.2.3", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" + +[[package]] +name = "safe-transaction-client" +version = "0.1.0" +dependencies = [ + "ethers", + "futures-executor", + "hex", + "rand_chacha 0.3.1", + "serde", + "thiserror", + "tiny-keccak", + "ureq", +] + +[[package]] +name = "salsa20" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scrypt" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" +dependencies = [ + "base64ct", + "hmac", + "password-hash", + "pbkdf2 0.8.0", + "salsa20", + "sha2 0.9.9", +] + +[[package]] +name = "scrypt" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f2cc535b6997b0c755bf9344e71ca0e1be070d07ff792f1fcd31e7b90e07d5f" +dependencies = [ + "hmac", + "pbkdf2 0.9.0", + "salsa20", + "sha2 0.9.9", +] + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +dependencies = [ + "der 0.5.1", + "generic-array 0.14.5", + "pkcs8 0.8.0", + "subtle", + "zeroize", +] + +[[package]] +name = "secstr" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb003d53cef244a97516226b01155057c7fa6eb52914933c32f6c98a84182188" +dependencies = [ + "libc", +] + +[[package]] +name = "security-framework" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "930c0acf610d3fdb5e2ab6213019aaa04e227ebe9547b0649ba599b16d788bd7" + +[[package]] +name = "serde" +version = "1.0.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-aux" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93abf9799c576f004252b2a05168d58527fb7c54de12e94b4d12fe3475ffad24" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "serde_bytes" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_cbor" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7081ed758ec726a6ed8ee7e92f5d3f6e6f8c3901b1f972e3a4a2f2599fad14f" +dependencies = [ + "byteorder", + "half", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f972498cf015f7c0746cac89ebe1d6ef10c293b94175a243a2d9442c163d9944" +dependencies = [ + "itoa 1.0.1", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.1", + "ryu", + "serde", +] + +[[package]] +name = "serde_yaml" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc" +dependencies = [ + "indexmap", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + +[[package]] +name = "sha2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.0", + "sha2-asm", +] + +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.3", +] + +[[package]] +name = "sha2-asm" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf27176fb5d15398e3a479c652c20459d9dac830dedd1fa55b42a77dbcdbfcea" +dependencies = [ + "cc", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug 0.3.0", +] + +[[package]] +name = "signal-hook" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2807892cfa58e081aa1f1111391c7a0649d4fa127a4ffbe34bcbfb35a1171a4" +dependencies = [ + "digest 0.9.0", + "rand_core 0.6.3", +] + +[[package]] +name = "similar" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3" + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "sized-vec" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5985e3944437a472b2059be8671eae6ab8e067324fd3a7161af28c22d1f11367" +dependencies = [ + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "smol_str" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7475118a28b7e3a2e157ce0131ba8c5526ea96e90ee601d9f6bb2e286a35ab44" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "socket2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c01a0c15da1b0b0e1494112e7af814a678fec9bd157881b49beac661e9b6f32" +dependencies = [ + "der 0.4.5", +] + +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der 0.5.1", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "terminfo" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76971977e6121664ec1b960d1313aacfa75642adc93b9d4d53b247bd4cb1747e" +dependencies = [ + "dirs", + "fnv", + "nom 5.1.2", + "phf", + "phf_codegen", +] + +[[package]] +name = "termtree" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b" + +[[package]] +name = "textwrap" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" + +[[package]] +name = "thiserror" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "time" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +dependencies = [ + "libc", + "num_threads", + "time-macros", +] + +[[package]] +name = "time-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f48b6d60512a392e34dbf7fd456249fd2de3c83669ab642e021903f4015185b" +dependencies = [ + "bytes 1.1.0", + "libc", + "memchr", + "mio 0.8.2", + "num_cpus", + "once_cell", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.4.4", + "tokio-macros", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" +dependencies = [ + "rustls 0.20.4", + "tokio", + "webpki 0.22.0", +] + +[[package]] +name = "tokio-util" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +dependencies = [ + "bytes 1.1.0", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +dependencies = [ + "cfg-if 1.0.0", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project 1.0.10", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "uint" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "uluru" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794a32261a1f5eb6a4462c81b59cec87b5c27d5deea7dd1ac8fc781c41d226db" +dependencies = [ + "arrayvec 0.7.2", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-normalization" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "universal-hash" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +dependencies = [ + "generic-array 0.14.5", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" + +[[package]] +name = "unsigned-varint" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "ureq" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9399fa2f927a3d327187cbd201480cee55bee6ac5d3c77dd27f0c6814cff16d5" +dependencies = [ + "base64 0.13.0", + "chunked_transfer", + "log", + "once_cell", + "rustls 0.20.4", + "serde", + "serde_json", + "url", + "webpki 0.22.0", + "webpki-roots", +] + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", + "serde", +] + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.6", + "serde", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cd9a7a22c45daf5aeb6bea3dff4ecbb8eb43e492582d467b18ce2979b512cbe" +dependencies = [ + "itertools 0.10.3", + "nom 7.1.1", +] + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] + +[[package]] +name = "walletconnect" +version = "0.1.0" +source = "git+https://github.com/xphoniex/walletconnect-rs?branch=v0.1.0#82ab29227318b03254203d9cae62ea9ab9630d06" +dependencies = [ + "atty", + "data-encoding", + "ethers-core", + "futures", + "jsonrpc-core", + "lazy_static", + "log", + "openssl", + "qrcode", + "rand 0.8.5", + "ring", + "serde", + "serde_json", + "termcolor", + "terminfo", + "thiserror", + "url", + "uuid", + "ws", + "zeroize", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +dependencies = [ + "webpki 0.22.0", +] + +[[package]] +name = "wepoll-ffi" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +dependencies = [ + "cc", +] + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ws" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25fe90c75f236a0a00247d5900226aea4f2d7b05ccc34da9e7a8880ff59b5848" +dependencies = [ + "byteorder", + "bytes 0.4.12", + "httparse", + "log", + "mio 0.6.23", + "mio-extras", + "openssl", + "rand 0.7.3", + "sha-1 0.8.2", + "slab", + "url", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47ca1ab42f5afed7fc332b22b6e932ca5414b209465412c8cdf0ad23bc0de645" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "pharos", + "rustc_version", + "send_wrapper", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "xorf" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0b223640dfbc22009679ce79f6777ae1db79add62a07345605777f69274a052" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "zeroize" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] diff --git a/nixpkgs/pkgs/applications/version-management/radicle-cli/default.nix b/nixpkgs/pkgs/applications/version-management/radicle-cli/default.nix new file mode 100644 index 000000000000..3f4073945106 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/radicle-cli/default.nix @@ -0,0 +1,88 @@ +{ lib +, stdenv +, fetchFromGitHub +, rustPlatform +, pkg-config +, cmake +, installShellFiles +, asciidoctor +, DarwinTools +, openssl +, libusb1 +, AppKit +, git +, openssh +, testers +, radicle-cli +}: + +rustPlatform.buildRustPackage rec { + pname = "radicle-cli"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "radicle-dev"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-LS6zYpMg0LanRL2M8ioGG8Ys07TPT/3hP7geEGehwxg="; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "automerge-0.0.2" = "sha256-MZ1/rca8ZsEUhd3bhd502PHlBbvqAOtnWFEdp7XWmYE="; + "automerge-0.1.0" = "sha256-dwbmx3W13oZ1O0Uw3/D5Z0ht1BO1PmVVoWc/tLCm0/4="; + "cob-0.1.0" = "sha256-ewPJEx7OSr8X6e5QJ4dh2SbzZ2TDa8G4zBR5euBbABo="; + "libusb1-sys-0.6.2" = "sha256-577ld1xqJkHp2bqALNq5IuZivD8y+VO8vNy9Y+hfq6c="; + "walletconnect-0.1.0" = "sha256-fdgdhotTYBmWbR4r0OMplOwhYq1C7jkuOdhKASjH+Fs="; + }; + }; + + # Otherwise, there are errors due to the `abigen` macro from `ethers`. + auditable = false; + + nativeBuildInputs = [ + pkg-config + cmake + installShellFiles + asciidoctor + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + DarwinTools + ]; + + buildInputs = [ + openssl + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + libusb1 + AppKit + ]; + + postInstall = '' + for f in $(find . -name '*.adoc'); do + mf=''${f%.*} + asciidoctor --doctype manpage --backend manpage $f -o $mf + installManPage $mf + done + ''; + + nativeCheckInputs = [ + git + openssh + ]; + preCheck = '' + eval $(ssh-agent) + ''; + + passthru.tests = { + version = testers.testVersion { package = radicle-cli; }; + }; + + meta = { + description = "Command-line tooling for Radicle, a decentralized code collaboration network"; + homepage = "https://radicle.xyz"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ amesgen ]; + platforms = lib.platforms.unix; + mainProgram = "rad"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix b/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix new file mode 100644 index 000000000000..ff12f008f4b2 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix @@ -0,0 +1,82 @@ +{ lib, stdenv, appimageTools, autoPatchelfHook, zlib, fetchurl, undmg, libgcc }: + +let + pname = "radicle-upstream"; + version = "0.3.0"; + + srcs = { + x86_64-linux = fetchurl { + url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage"; + sha256 = "sha256-Y7V89G+nXRtknOukvBN8Q+sNx91YNPDT0p5hrFYe/Sk="; + }; + x86_64-darwin = fetchurl { + url = "https://releases.radicle.xyz/radicle-upstream-${version}.dmg"; + sha256 = "sha256-EuWGbn6qggi8/9Rci8iaXfuVKE+QXb1BHEYDvotR/q4="; + }; + }; + src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"); + + contents = appimageTools.extract { inherit pname version src; }; + + git-remote-rad = stdenv.mkDerivation rec { + pname = "git-remote-rad"; + inherit version; + src = contents; + + nativeBuildInputs = [ autoPatchelfHook ]; + buildInputs = [ libgcc zlib ]; + + installPhase = '' + mkdir -p $out/bin/ + install -Dm755 ${contents}/resources/git-remote-rad $out/bin/git-remote-rad + ''; + }; + + # FIXME: a dependency of the `proxy` component of radicle-upstream (radicle-macros + # v0.1.0) uses unstable rust features, making a from source build impossible at + # this time. See this PR for discussion: https://github.com/NixOS/nixpkgs/pull/105674 + linux = appimageTools.wrapType2 { + inherit pname version src meta; + + extraInstallCommands = '' + # this automatically adds the git-remote-rad binary to the users `PATH` so + # they don't need to mess around with shell profiles... + ln -s ${git-remote-rad}/bin/git-remote-rad $out/bin/git-remote-rad + + # desktop item + install -m 444 -D ${contents}/${pname}.desktop $out/share/applications/${pname}.desktop + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace 'Exec=AppRun' 'Exec=${pname}' + + # icon + install -m 444 -D ${contents}/${pname}.png \ + $out/share/icons/hicolor/512x512/apps/${pname}.png + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "."; + + installPhase = '' + mkdir -p $out/Applications + cp -r *.app $out/Applications + ''; + }; + + meta = with lib; { + description = "A decentralized app for code collaboration"; + homepage = "https://radicle.xyz/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ d-xo ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + broken = stdenv.isLinux; # last successful build 2023-04-11 + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix b/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix new file mode 100644 index 000000000000..53df3af4a79d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, wxGTK32 +, subversion +, apr +, aprutil +, python3 +, darwin +}: + +stdenv.mkDerivation rec { + pname = "rapidsvn"; + version = "unstable-2021-08-02"; + + src = fetchFromGitHub { + owner = "RapidSVN"; + repo = "RapidSVN"; + rev = "3a564e071c3c792f5d733a9433b9765031f8eed0"; + hash = "sha256-6bQTHAOZAP+06kZDHjDx9VnGm4vrZUDyLHZdTpiyP08="; + }; + + postPatch = '' + substituteInPlace configure.ac \ + --replace "[3.0.*]" "[3.*]" + ''; + + nativeBuildInputs = [ + autoreconfHook + ]; + + buildInputs = [ + wxGTK32 + subversion + apr + aprutil + python3 + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Cocoa + ]; + + configureFlags = [ + "--with-svn-include=${subversion.dev}/include" + "--with-svn-lib=${subversion.out}/lib" + ]; + + env.NIX_CFLAGS_COMPILE = "-std=c++14"; + + meta = { + description = "Multi-platform GUI front-end for the Subversion revision system"; + homepage = "http://rapidsvn.tigris.org/"; + license = lib.licenses.gpl3Plus; + maintainers = [ lib.maintainers.viric ]; + platforms = lib.platforms.unix; + mainProgram = "rapidsvn"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch b/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch new file mode 100644 index 000000000000..ca4bc394c2c6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch @@ -0,0 +1,122 @@ +--- a/src/svncpp/client_ls.cpp ++++ b/src/svncpp/client_ls.cpp +@@ -25,6 +25,7 @@ + #include "svn_client.h" + #include "svn_path.h" + #include "svn_sorts.h" ++#include "svn_version.h" + //#include "svn_utf.h" + + // svncpp +@@ -35,6 +36,7 @@ + #include "m_is_empty.hpp" + + ++#if SVN_VER_MAJOR == 1 && SVN_VER_MINOR < 8 + static int + compare_items_as_paths(const svn_sort__item_t *a, const svn_sort__item_t *b) + { +@@ -84,6 +86,72 @@ namespace svn + } + } + ++#else ++ ++#include <algorithm> ++ ++static svn_error_t* store_entry( ++ void *baton, ++ const char *path, ++ const svn_dirent_t *dirent, ++ const svn_lock_t *, ++ const char *abs_path, ++ const char *, ++ const char *, ++ apr_pool_t *scratch_pool) ++{ ++ svn::DirEntries *entries = reinterpret_cast<svn::DirEntries*>(baton); ++ if (path[0] == '\0') { ++ if (dirent->kind == svn_node_file) { ++ // for compatibility with svn_client_ls behaviour, listing a file ++ // stores that file name ++ entries->push_back(svn::DirEntry(svn_path_basename(abs_path, scratch_pool), dirent)); ++ } ++ } else { ++ entries->push_back(svn::DirEntry(path, dirent)); ++ } ++ return SVN_NO_ERROR; ++} ++ ++static bool sort_by_path(svn::DirEntry const& a, svn::DirEntry const& b) ++{ ++ return svn_path_compare_paths(a.name(), b.name()) < 0; ++} ++ ++namespace svn ++{ ++ DirEntries ++ Client::list(const char * pathOrUrl, ++ svn_opt_revision_t * revision, ++ bool recurse) throw(ClientException) ++ { ++ Pool pool; ++ DirEntries entries; ++ ++ svn_error_t * error = ++ svn_client_list3(pathOrUrl, ++ revision, ++ revision, ++ SVN_DEPTH_INFINITY_OR_IMMEDIATES(recurse), ++ SVN_DIRENT_ALL, ++ FALSE, // fetch locks ++ FALSE, // include externals ++ &store_entry, ++ &entries, ++ *m_context, ++ pool); ++ ++ if (error != SVN_NO_ERROR) ++ throw ClientException(error); ++ ++ std::sort(entries.begin(), entries.end(), &sort_by_path); ++ ++ return entries; ++ } ++} ++ ++#endif ++ + /* ----------------------------------------------------------------- + * local variables: + * eval: (load-file "../../rapidsvn-dev.el") +--- a/src/svncpp/dirent.cpp 2017-03-19 15:48:58.956827337 +0100 ++++ b/src/svncpp/dirent.cpp 2017-03-19 15:50:19.111527279 +0100 +@@ -47,7 +47,7 @@ + { + } + +- Data(const char * _name, svn_dirent_t * dirEntry) ++ Data(const char * _name, const svn_dirent_t * dirEntry) + : name(_name), kind(dirEntry->kind), size(dirEntry->size), + hasProps(dirEntry->has_props != 0), + createdRev(dirEntry->created_rev), time(dirEntry->time) +@@ -78,7 +78,7 @@ + { + } + +- DirEntry::DirEntry(const char * name, svn_dirent_t * DirEntry) ++ DirEntry::DirEntry(const char * name, const svn_dirent_t * DirEntry) + : m(new Data(name, DirEntry)) + { + } +--- a/include/svncpp/dirent.hpp 2017-03-19 15:50:54.860506116 +0100 ++++ b/include/svncpp/dirent.hpp 2017-03-19 15:50:58.314407598 +0100 +@@ -41,7 +41,7 @@ + /** + * constructor for existing @a svn_dirent_t entries + */ +- DirEntry(const char * name, svn_dirent_t * dirEntry); ++ DirEntry(const char * name, const svn_dirent_t * dirEntry); + + /** + * copy constructor diff --git a/nixpkgs/pkgs/applications/version-management/rcs/default.nix b/nixpkgs/pkgs/applications/version-management/rcs/default.nix new file mode 100644 index 000000000000..40d909c8e028 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rcs/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchurl, buildPackages, diffutils, ed, lzip }: + +stdenv.mkDerivation rec { + pname = "rcs"; + version = "5.10.1"; + + src = fetchurl { + url = "mirror://gnu/rcs/${pname}-${version}.tar.lz"; + sha256 = "sha256-Q93+EHJKi4XiRo9kA7YABzcYbwHmDgvWL95p2EIjTMU="; + }; + + ac_cv_path_ED = "${ed}/bin/ed"; + DIFF = "${diffutils}/bin/diff"; + DIFF3 = "${diffutils}/bin/diff3"; + + disallowedReferences = + lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) + [ buildPackages.diffutils buildPackages.ed ]; + + env.NIX_CFLAGS_COMPILE = "-std=c99"; + + hardeningDisable = lib.optional stdenv.cc.isClang "format"; + + nativeBuildInputs = [ lzip ]; + + meta = { + homepage = "https://www.gnu.org/software/rcs/"; + description = "Revision control system"; + longDescription = + '' The GNU Revision Control System (RCS) manages multiple revisions of + files. RCS automates the storing, retrieval, logging, + identification, and merging of revisions. RCS is useful for text + that is revised frequently, including source code, programs, + documentation, graphics, papers, and form letters. + ''; + + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ eelco ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/rcshist/default.nix b/nixpkgs/pkgs/applications/version-management/rcshist/default.nix new file mode 100644 index 000000000000..f11c515b5399 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rcshist/default.nix @@ -0,0 +1,28 @@ +{ lib +, stdenv +, fetchurl +, musl-fts +}: + +stdenv.mkDerivation { + pname = "rcshist"; + version = "1.04"; + + configureFlags = lib.optional stdenv.hostPlatform.isMusl "LIBS=-lfts"; + + buildInputs = lib.optional stdenv.hostPlatform.isMusl musl-fts; + + src = fetchurl { + url = "https://web.archive.org/web/20220508220019/https://invisible-island.net/datafiles/release/rcshist.tar.gz"; + sha256 = "01ab3xwgm934lxr8bm758am3vxwx4hxx7cc9prbgqj5nh30vdg1n"; + }; + + meta = { + description = "Utitity to display complete revision history of a set of RCS files"; + homepage = "https://invisible-island.net/rcshist/rcshist.html"; + license = lib.licenses.bsd2; + maintainers = [ lib.maintainers.kaction ]; + platforms = lib.platforms.unix; + mainProgram = "rcshist"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix new file mode 100644 index 000000000000..ea34252f68a8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix @@ -0,0 +1,35 @@ +{ lib, fetchurl, buildGoModule, asciidoctor, ruby +}: + +buildGoModule rec { + pname = "reposurgeon"; + version = "4.26"; + + src = fetchurl { + url = "http://www.catb.org/~esr/reposurgeon/reposurgeon-${version}.tar.xz"; + sha256 = "sha256-FuL5pvIM468hEm6rUBKGW6+WlYv4DPHNnpwpRGzMwlY="; + }; + + vendorHash = "sha256-QpgRCnsOOZujE405dCe+PYg/zNkqnrfZFfbBFo7adjY="; + + subPackages = [ "." ]; + + nativeBuildInputs = [ asciidoctor ruby ]; + + postBuild = '' + patchShebangs . + make all HTMLFILES= + ''; + + postInstall = '' + make install prefix=$out HTMLFILES= + ''; + + meta = { + description = "A tool for editing version-control repository history"; + license = lib.licenses.bsd3; + homepage = "http://www.catb.org/esr/reposurgeon/"; + maintainers = with lib.maintainers; [ dfoxfranke ]; + platforms = lib.platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch b/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch new file mode 100644 index 000000000000..0a659c93406d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch @@ -0,0 +1,12 @@ +diff -Naur reposurgeon-3.44/Makefile reposurgeon-3.44-new/Makefile +--- reposurgeon-3.44/Makefile 2018-04-29 12:27:43.000000000 -0700 ++++ reposurgeon-3.44-new/Makefile 2018-08-01 17:38:15.582789739 -0700 +@@ -36,7 +36,7 @@ + MANPAGES = reposurgeon.1 repotool.1 repodiffer.1 repomapper.1 repocutter.1 + HTMLFILES = $(MANPAGES:.1=.html) \ + dvcs-migration-guide.html features.html reporting-bugs.html +-SHARED = README.md NEWS TODO reposurgeon-git-aliases $(HTMLFILES) ++SHARED = reposurgeon-git-aliases $(HTMLFILES) + + all: $(MANPAGES) $(HTMLFILES) + diff --git a/nixpkgs/pkgs/applications/version-management/rs-git-fsmonitor/default.nix b/nixpkgs/pkgs/applications/version-management/rs-git-fsmonitor/default.nix new file mode 100644 index 000000000000..8d6c7f072d04 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/rs-git-fsmonitor/default.nix @@ -0,0 +1,34 @@ +{ lib +, fetchFromGitHub +, rustPlatform +, makeWrapper +, watchman +}: + +rustPlatform.buildRustPackage rec { + pname = "rs-git-fsmonitor"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "jgavris"; + repo = pname; + rev = "v${version}"; + sha256 = "021vdk5i7yyrnh4apn0gnsh6ycnx15wm3g2jrfsg7fycnq8167wc"; + }; + + cargoSha256 = "0hx5nhxci6p0gjjn1f3vpfykq0f7hdvhlv8898vrv0lh5r9hybsn"; + + nativeBuildInputs = [ makeWrapper ]; + + fixupPhase = '' + wrapProgram $out/bin/rs-git-fsmonitor --prefix PATH ":" "${lib.makeBinPath [ watchman ]}" ; + ''; + + meta = with lib; { + description = "A fast git core.fsmonitor hook written in Rust"; + homepage = "https://github.com/jgavris/rs-git-fsmonitor"; + license = licenses.mit; + maintainers = [ ]; + mainProgram = "rs-git-fsmonitor"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sapling/Cargo.lock b/nixpkgs/pkgs/applications/version-management/sapling/Cargo.lock new file mode 100644 index 000000000000..7b3f1c7d58c4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sapling/Cargo.lock @@ -0,0 +1,8449 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "abomonation" +version = "0.7.3+smallvec1" +source = "git+https://github.com/markbt/abomonation?rev=0f43346d2afa2aedc64d61f3f4273e8d1e454642#0f43346d2afa2aedc64d61f3f4273e8d1e454642" +dependencies = [ + "smallvec", +] + +[[package]] +name = "abomonation_derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e50e2a046af56a864c62d97b7153fda72c596e646be1b0c7963736821f6e1efa" +dependencies = [ + "proc-macro2", + "quote", + "synstructure", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289" + +[[package]] +name = "ahash" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anstream" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "assert-json-diff" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4259cbe96513d2f1073027a259fc2ca917feb3026a5a8d984e3628e490255cc0" +dependencies = [ + "extend", + "serde", + "serde_json", +] + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-compression" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c" +dependencies = [ + "brotli", + "bzip2", + "flate2", + "futures-core", + "futures-io", + "memchr", + "pin-project-lite", + "tokio", + "zstd", + "zstd-safe", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock", + "autocfg", + "cfg-if 1.0.0", + "concurrent-queue", + "futures-lite", + "log", + "parking", + "polling", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-runtime" +version = "0.1.0" +dependencies = [ + "futures 0.3.30", + "num_cpus", + "once_cell", + "tokio", +] + +[[package]] +name = "async-trait" +version = "0.1.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "atexit" +version = "0.1.0" +dependencies = [ + "once_cell", + "tracing", +] + +[[package]] +name = "atomic" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" + +[[package]] +name = "atomicfile" +version = "0.1.0" +dependencies = [ + "tempfile", + "tracing", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "auth" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "configmodel", + "indexmap 2.1.0", + "once_cell", + "pem", + "simple_asn1", + "staticconfig", + "thiserror", + "tracing", + "url", + "util", +] + +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backingstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "arc-swap", + "configloader", + "constructors", + "cxx", + "eagerepo", + "edenapi", + "env_logger 0.10.2", + "identity", + "indexedlog", + "log", + "manifest", + "parking_lot", + "repo", + "storemodel", + "tracing", + "tracing-collector", + "tracing-subscriber", + "types", +] + +[[package]] +name = "backingstore-benches" +version = "0.1.0" +dependencies = [ + "backingstore", + "configloader", + "identity", + "minibench", + "procinfo", + "repo", + "tempfile", + "types", +] + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if 1.0.0", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bindag" +version = "0.1.0" +dependencies = [ + "dag", + "drawdag", + "nonblocking", + "tempfile", + "vlqencoding", +] + +[[package]] +name = "bindings" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "paste", + "pyatexit", + "pyauth", + "pyblackbox", + "pybytes", + "pycats", + "pycbor", + "pycext", + "pycheckout", + "pyclientinfo", + "pycliparser", + "pyconchparser", + "pyconfigloader", + "pycopytrace", + "pydag", + "pydiffhelpers", + "pydirs", + "pydoctor", + "pydrawdag", + "pyeagerepo", + "pyedenapi", + "pyedenclient", + "pyerror", + "pyexchange", + "pyfail", + "pyfs", + "pygitstore", + "pyhgmetrics", + "pyhgtime", + "pyidentity", + "pyindexedlog", + "pyio", + "pylinelog", + "pylock", + "pylz4", + "pymanifest", + "pymetalog", + "pymodules", + "pymutationstore", + "pynodeipc", + "pynodemap", + "pypathhistory", + "pypathmatcher", + "pypprint", + "pyprocess", + "pyprogress", + "pyrefencode", + "pyregex", + "pyrenderdag", + "pyrepo", + "pyrevisionstore", + "pyrevlogindex", + "pysptui", + "pystatus", + "pythreading", + "pytoml", + "pytracing", + "pytreestate", + "pyversion", + "pyvlq", + "pywebview", + "pyworker", + "pyworkingcopy", + "pyxdiff", + "pyzstd", + "pyzstore", +] + +[[package]] +name = "bindings-lib" +version = "0.1.0" +dependencies = [ + "cpython", + "hgcommands", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "blackbox" +version = "0.1.0" +dependencies = [ + "anyhow", + "byteorder", + "clientinfo", + "indexedlog", + "lazy_static", + "libc", + "minibench", + "parking_lot", + "serde", + "serde_alt", + "serde_cbor", + "serde_derive", + "serde_json", + "tempfile", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if 1.0.0", + "constant_time_eq", + "digest 0.10.7", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bufsize" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7864afba28009cd99a4d973c3de89cc766b800cdf1bd909966d454906f3bce5d" +dependencies = [ + "bytes", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cats" +version = "0.1.0" +dependencies = [ + "anyhow", + "configmodel", + "indexmap 2.1.0", + "serde", + "serde_json", + "thiserror", + "tracing", + "util", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "checkout" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "atexit", + "configmodel", + "crossbeam", + "edenfs-client", + "fail", + "fs-err", + "hg-metrics", + "manifest", + "manifest-tree", + "minibytes", + "parking_lot", + "pathmatcher", + "progress-model", + "quickcheck", + "repo", + "repolock", + "serde_json", + "spawn-ext", + "status", + "storemodel", + "tempfile", + "termlogger", + "thiserror", + "toml", + "tracing", + "treestate", + "types", + "util", + "vfs", + "walkdir", + "workingcopy", +] + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.48.5", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags 1.3.2", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap 1.9.3", + "once_cell", + "regex", + "strsim 0.10.0", + "termcolor", + "terminal_size 0.2.6", + "textwrap 0.16.0", + "unicase", +] + +[[package]] +name = "clap" +version = "4.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +dependencies = [ + "clap_builder", + "clap_derive 4.4.7", +] + +[[package]] +name = "clap_builder" +version = "4.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 0.6.0", + "strsim 0.10.0", + "terminal_size 0.3.0", + "unicase", + "unicode-width", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "clidispatch" +version = "0.1.0" +dependencies = [ + "anyhow", + "blackbox", + "cliparser", + "configloader", + "configmodel", + "hgplain", + "hostname 0.1.0", + "identity", + "indexedlog", + "io", + "network-doctor", + "repo", + "sampling", + "termlogger", + "thiserror", + "thrift-types", + "tracing", + "types", + "util", + "workingcopy", +] + +[[package]] +name = "clientinfo" +version = "0.1.0" +dependencies = [ + "anyhow", + "hostname 0.1.0", + "lazy_static", + "rand 0.8.5", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "clientinfo_async" +version = "0.1.0" +dependencies = [ + "clientinfo", + "tokio", +] + +[[package]] +name = "cliparser" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "indexmap 2.1.0", + "serde", + "shlex", + "thiserror", +] + +[[package]] +name = "clone" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "checkout", + "configmodel", + "manifest-tree", + "repo", + "tempfile", + "termlogger", + "thiserror", + "tracing", + "treestate", + "types", + "util", + "vfs", +] + +[[package]] +name = "cloned" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" + +[[package]] +name = "codegen" +version = "0.1.0" +dependencies = [ + "zstdelta", +] + +[[package]] +name = "codegen_includer_proc_macro" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "quote", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "colored" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" +dependencies = [ + "is-terminal", + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "comfy-table" +version = "6.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" +dependencies = [ + "crossterm", + "strum", + "strum_macros", + "unicode-width", +] + +[[package]] +name = "commandserver" +version = "0.1.0" +dependencies = [ + "anyhow", + "atexit", + "configmodel", + "dirs 2.0.2", + "fn-error-context", + "fs2", + "identity", + "libc", + "nodeipc", + "once_cell", + "procutil", + "serde", + "spawn-ext", + "system-command", + "tracing", + "udsipc", + "version", +] + +[[package]] +name = "commitcloudsubscriber" +version = "0.1.0" +dependencies = [ + "anyhow", + "base64 0.13.1", + "filetime", + "hostcaps", + "identity", + "lazy_static", + "log", + "mime", + "parking_lot", + "regex", + "reqwest", + "rust-ini", + "serde", + "serde_json", + "tempfile", + "thiserror", + "tokio", +] + +[[package]] +name = "commits-git" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "commits-trait", + "dag", + "factory", + "fs-err", + "futures 0.3.30", + "gitdag", + "metalog", + "minibytes", + "parking_lot", + "refencode", + "storemodel", + "tracing", + "types", +] + +[[package]] +name = "commits-trait" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "dag", + "futures 0.3.30", + "metalog", + "minibytes", + "serde", + "storemodel", + "types", +] + +[[package]] +name = "conch-parser" +version = "0.1.1" +dependencies = [ + "serde", + "void", +] + +[[package]] +name = "conch_parser" +version = "0.1.0" +dependencies = [ + "conch-parser", + "cpython", +] + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "config" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "codegen_includer_proc_macro", + "config_types", + "const-cstr", + "fbthrift", + "futures 0.3.30", + "ref-cast", + "thiserror", + "thrift_compiler", + "tracing", + "tracing-futures", +] + +[[package]] +name = "config_thrift" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "codegen_includer_proc_macro", + "config_thrift_types", + "const-cstr", + "fbthrift", + "futures 0.3.30", + "ref-cast", + "thiserror", + "thrift_compiler", + "tracing", + "tracing-futures", +] + +[[package]] +name = "config_thrift_types" +version = "0.1.0" +dependencies = [ + "anyhow", + "codegen_includer_proc_macro", + "fbthrift", + "futures 0.3.30", + "once_cell", + "ref-cast", + "serde", + "serde_derive", + "thiserror", + "thrift_compiler", +] + +[[package]] +name = "config_types" +version = "0.1.0" +dependencies = [ + "anyhow", + "codegen_includer_proc_macro", + "fbthrift", + "futures 0.3.30", + "once_cell", + "ref-cast", + "serde", + "serde_derive", + "thiserror", + "thrift_compiler", +] + +[[package]] +name = "configloader" +version = "0.1.0" +dependencies = [ + "anyhow", + "base64 0.13.1", + "configmodel", + "configset", + "dirs 2.0.2", + "filetime", + "hgplain", + "hgtime", + "hostcaps", + "hostname 0.3.1", + "http-client", + "identity", + "minibench", + "minibytes", + "once_cell", + "regex", + "serde", + "serde_json", + "serde_urlencoded 0.7.1", + "sha2 0.10.8", + "staticconfig", + "tempfile", + "testutil", + "tracing", + "types", + "unionconfig", + "url", + "util", + "version", + "zstd", +] + +[[package]] +name = "configmodel" +version = "0.1.0" +dependencies = [ + "anyhow", + "auto_impl", + "minibytes", + "thiserror", + "util", +] + +[[package]] +name = "configset" +version = "0.1.0" +dependencies = [ + "configmodel", + "hgrc-parser", + "indexmap 2.1.0", + "minibytes", + "tempfile", + "tracing", + "util", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-cstr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "constructors" +version = "0.1.0" +dependencies = [ + "commits-git", + "eagerepo", + "edenapi", + "gitstore", + "hgcommits", + "manifest-tree", + "once_cell", +] + +[[package]] +name = "control-point" +version = "0.1.0" +dependencies = [ + "anyhow", + "lazy_static", + "parking_lot", + "serde_json", + "tempfile", + "tracing", + "util", +] + +[[package]] +name = "cookie" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d606d0fba62e13cf04db20536c05cb7f13673c161cb47a47a82b9b9e7d3f1daa" +dependencies = [ + "cookie", + "idna 0.2.3", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + +[[package]] +name = "copytrace" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "async-trait", + "configmodel", + "dag", + "git2", + "hg-metrics", + "lru-cache", + "manifest", + "manifest-tree", + "parking_lot", + "pathhistory", + "pathmatcher", + "serde", + "storemodel", + "thiserror", + "tokio", + "tracing", + "tracing-test", + "types", + "xdiff", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "cpython" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3052106c29da7390237bc2310c1928335733b286287754ea85e6093d2495280e" +dependencies = [ + "libc", + "num-traits", + "paste", + "python3-sys", + "serde", +] + +[[package]] +name = "cpython_async" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "cpython", + "cpython_ext", + "futures 0.3.30", + "itertools", + "tokio", +] + +[[package]] +name = "cpython_ext" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "libc", + "once_cell", + "parking_lot", + "python3-sys", + "serde", + "serde_bytes", + "serde_cbor", + "thiserror", + "types", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel 0.5.11", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "crossbeam-channel" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa" +dependencies = [ + "crossbeam-utils 0.6.6", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +dependencies = [ + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "crossbeam-utils" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" +dependencies = [ + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crossterm" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", + "signal-hook 0.3.17", + "signal-hook-mio", + "winapi 0.3.9", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "csscolorparser" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" +dependencies = [ + "lab", + "phf 0.11.2", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ctrlc" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b" +dependencies = [ + "nix 0.27.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "curl" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.4.10", + "winapi 0.3.9", +] + +[[package]] +name = "curl-sys" +version = "0.4.70+curl-8.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e" +dependencies = [ + "cc", + "libc", + "libnghttp2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.48.0", +] + +[[package]] +name = "cxx" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de00f15a6fa069c99b88c5c78c4541d0e7899a33b86f7480e23df2431fce0bc" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a71e1e631fa2f2f5f92e8b0d860a00c198c6771623a6cefcc863e3554f0d8d6" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.48", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3fed61d56ba497c4efef9144dfdbaa25aa58f2f6b3a7cf441d4591c583745c" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8908e380a8efd42150c017b0cfa31509fc49b6d47f7cb6b33e93ffb8f4e3661e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "dag" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "bitflags 2.4.2", + "byteorder", + "dag-types", + "dev-logger", + "drawdag", + "fail", + "fs2", + "futures 0.3.30", + "indexedlog", + "indexmap 2.1.0", + "mincode", + "minibytes", + "nonblocking", + "once_cell", + "quickcheck", + "rand 0.8.5", + "renderdag", + "serde", + "tempfile", + "thiserror", + "tokio", + "tracing", + "vlqencoding", +] + +[[package]] +name = "dag-benches" +version = "0.1.0" +dependencies = [ + "bindag", + "dag", + "dev-logger", + "mincode", + "minibench", + "nonblocking", + "serde_cbor", + "tempfile", +] + +[[package]] +name = "dag-types" +version = "0.1.0" +dependencies = [ + "abomonation", + "abomonation_derive", + "minibytes", + "quickcheck", + "serde", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if 1.0.0", + "hashbrown 0.14.3", + "lock_api", + "once_cell", + "parking_lot_core", + "rayon", + "serde", +] + +[[package]] +name = "debugtop" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "runlog", +] + +[[package]] +name = "deltae" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "dev-logger" +version = "0.1.0" +dependencies = [ + "ctor", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" +dependencies = [ + "cfg-if 0.1.10", + "dirs-sys", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dlv-list" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68df3f2b690c1b86e65ef7830956aededf3cb0a16f898f79b9a6f421a7b6211b" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "drawdag" +version = "0.1.0" + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "eagerepo" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "configmodel", + "dag", + "edenapi_trait", + "factory", + "fail", + "futures 0.3.30", + "hgstore", + "http", + "identity", + "manifest-tree", + "metalog", + "minibytes", + "nonblocking", + "parking_lot", + "storemodel", + "tempfile", + "thiserror", + "tokio", + "tracing", + "zstore", +] + +[[package]] +name = "eden_apfs_mount_helper" +version = "0.1.0" +dependencies = [ + "anyhow", + "libc", + "once_cell", + "plist", + "pretty_assertions", + "serde", + "serde_json", + "sha2 0.10.8", + "structopt", +] + +[[package]] +name = "edenapi" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "async-trait", + "bytes", + "chrono", + "clientinfo", + "clientinfo_async", + "configmodel", + "edenapi_trait", + "edenapi_types", + "futures 0.3.30", + "hg-http", + "http-client", + "itertools", + "metrics", + "minibytes", + "once_cell", + "parking_lot", + "pprint", + "progress-model", + "repo_name", + "serde", + "serde_cbor", + "serde_json", + "tokio", + "tracing", + "types", + "url", + "version", +] + +[[package]] +name = "edenapi_ext" +version = "0.1.0" +dependencies = [ + "anyhow", + "blake2", + "cloned", + "crossbeam", + "edenapi", + "edenapi_types", + "futures 0.3.30", + "itertools", + "minibytes", + "tokio", + "types", + "vfs", +] + +[[package]] +name = "edenapi_trait" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "auth", + "configmodel", + "edenapi_types", + "futures 0.3.30", + "http", + "http-client", + "minibytes", + "serde_cbor", + "thiserror", + "types", + "url", +] + +[[package]] +name = "edenapi_types" +version = "0.1.0" +dependencies = [ + "anyhow", + "blake2", + "blake3", + "bytes", + "dag-types", + "insta_ext", + "paste", + "quickcheck", + "quickcheck_arbitrary_derive", + "quickcheck_macros", + "revisionstore_types", + "serde", + "serde_bytes", + "serde_derive", + "serde_json", + "sha1", + "sha2 0.10.8", + "thiserror", + "type_macros", + "types", +] + +[[package]] +name = "edenfs-client" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "clientinfo", + "fbthrift_socket", + "fs-err", + "identity", + "serde", + "thrift-types", + "tokio-uds-compat", + "toml", + "tracing", + "types", +] + +[[package]] +name = "edenfs_ffi" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "cxx", + "cxx-build", + "identity", + "manifest", + "once_cell", + "parking_lot", + "pathmatcher", + "repo", + "sparse", + "types", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encoding" +version = "0.1.0" +dependencies = [ + "local-encoding", + "types", + "winapi 0.3.9", +] + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erased-serde" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55d05712b2d8d88102bc9868020c9e5c7a1f5527c452b9b97450a1d006140ba7" +dependencies = [ + "serde", +] + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "exchange" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "dag", + "edenapi", + "hgcommits", + "metalog", + "refencode", + "tracing", + "types", +] + +[[package]] +name = "extend" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "factory" +version = "0.1.0" +dependencies = [ + "anyhow", + "tracing", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fancy-regex" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0678ab2d46fa5195aaf59ad034c083d351377d4af57f3e073c074d0da3e3c766" +dependencies = [ + "bit-set", + "regex", +] + +[[package]] +name = "faster-hex" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e2ce894d53b295cf97b05685aa077950ff3e8541af83217fc720a6437169f8" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fb303_core" +version = "0.0.0" +source = "git+https://github.com/facebook/fb303.git?branch=main#1dd3544a29690edacb8da2910cd6e788a9f6c66b" +dependencies = [ + "anyhow", + "async-trait", + "codegen_includer_proc_macro", + "const-cstr", + "fb303_core_types", + "fbthrift", + "futures 0.3.30", + "ref-cast", + "thiserror", + "thrift_compiler", + "tracing", + "tracing-futures", +] + +[[package]] +name = "fb303_core_types" +version = "0.0.0" +source = "git+https://github.com/facebook/fb303.git?branch=main#1dd3544a29690edacb8da2910cd6e788a9f6c66b" +dependencies = [ + "anyhow", + "codegen_includer_proc_macro", + "fbthrift", + "futures 0.3.30", + "once_cell", + "ref-cast", + "serde", + "serde_derive", + "thiserror", + "thrift_compiler", +] + +[[package]] +name = "fbinit" +version = "0.1.2" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "fbinit_macros", + "quickcheck", +] + +[[package]] +name = "fbinit_macros" +version = "0.1.2" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "fbthrift" +version = "0.0.1+unstable" +source = "git+https://github.com/facebook/fbthrift.git?branch=main#f0eefaa2734bce13d861e0182b90a98d13250f17" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.13.1", + "bufsize", + "bytes", + "futures 0.3.30", + "ghost", + "num-derive", + "num-traits", + "ordered-float", + "panic-message", + "serde_json", + "thiserror", +] + +[[package]] +name = "fbthrift_framed" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "byteorder", + "bytes", + "tokio-util 0.7.10", +] + +[[package]] +name = "fbthrift_socket" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "anyhow", + "bytes", + "fbthrift", + "fbthrift_framed", + "fbthrift_util", + "futures 0.3.30", + "tokio", + "tokio-tower", + "tokio-util 0.7.10", + "tower-service", +] + +[[package]] +name = "fbthrift_util" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "tokio", +] + +[[package]] +name = "filedescriptor" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70cb4dda2f343f3b7a98a6536559d04a700136cada190822e5d6a99e4184c06" +dependencies = [ + "anyhow", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "filedescriptor" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7199d965852c3bac31f779ef99cbb4537f80e952e2d6aa0ffeb30cce00f4f46e" +dependencies = [ + "libc", + "thiserror", + "winapi 0.3.9", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "windows-sys 0.52.0", +] + +[[package]] +name = "finl_unicode" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fn-error-context" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd66269887534af4b0c3e3337404591daa8dc8b9b2b3db71f9523beb4bafb41" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "formatter" +version = "0.1.0" +dependencies = [ + "anyhow", + "configmodel", + "serde", + "serde_json", + "termstyle", + "thiserror", +] + +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "fsinfo" +version = "0.1.0" +dependencies = [ + "anyhow", + "identity", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "fsprobe" +version = "0.1.0" +dependencies = [ + "anyhow", + "structopt", +] + +[[package]] +name = "fsyncglob" +version = "0.1.0" +dependencies = [ + "glob", + "tempfile", + "tracing", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures 0.1.31", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghost" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0e085ded9f1267c32176b40921b9754c474f7dd96f7e808d4a982e48aa1e854" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "git2" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c" +dependencies = [ + "bitflags 1.3.2", + "libc", + "libgit2-sys", + "log", + "openssl-probe", + "openssl-sys", + "url", +] + +[[package]] +name = "gitdag" +version = "0.1.0" +dependencies = [ + "anyhow", + "dag", + "git2", + "nonblocking", + "parking_lot", + "tracing", +] + +[[package]] +name = "gitstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "factory", + "fs-err", + "git2", + "minibytes", + "storemodel", + "types", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", + "serde", +] + +[[package]] +name = "h2" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util 0.7.10", + "tracing", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash 0.4.8", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.7", + "allocator-api2", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hg-http" +version = "0.1.0" +dependencies = [ + "async-runtime", + "auth", + "clientinfo", + "configmodel", + "hg-metrics", + "http-client", + "once_cell", + "progress-model", + "url", +] + +[[package]] +name = "hg-metrics" +version = "0.1.0" +dependencies = [ + "once_cell", + "parking_lot", +] + +[[package]] +name = "hgcommands" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "atexit", + "bindings", + "blackbox", + "checkout", + "chrono", + "clidispatch", + "cliparser", + "clone", + "comfy-table", + "commandserver", + "configloader", + "configmodel", + "constructors", + "cpython", + "cpython_ext", + "ctrlc", + "dag", + "debugtop", + "eagerepo", + "edenapi", + "edenfs-client", + "exchange", + "fail", + "flate2", + "formatter", + "fs-err", + "fsyncglob", + "hg-http", + "hg-metrics", + "hgplain", + "hgtime", + "hostname 0.3.1", + "identity", + "indexedlog", + "libc", + "metalog", + "metrics-render", + "migration", + "mincode", + "minibytes", + "network-doctor", + "nodeipc", + "parking_lot", + "pathmatcher", + "procinfo", + "progress-model", + "progress-render", + "pycheckout", + "pyconfigloader", + "pyedenclient", + "pyio", + "pymodules", + "python3-sys", + "pytracing", + "pyworkingcopy", + "rand 0.8.5", + "repo", + "repo_name", + "repostate", + "revisionstore", + "runlog", + "sampling", + "serde", + "serde_json", + "status", + "termstyle", + "tracing", + "tracing-collector", + "tracing-reload", + "tracing-sampler", + "tracing-subscriber", + "treestate", + "types", + "url", + "util", + "version", + "workingcopy", + "zstd", +] + +[[package]] +name = "hgcommits" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "commits-trait", + "dag", + "edenapi", + "factory", + "fs-err", + "futures 0.3.30", + "minibytes", + "parking_lot", + "revlogindex", + "storemodel", + "streams", + "tracing", + "types", + "zstore", +] + +[[package]] +name = "hgmain" +version = "0.1.0" +dependencies = [ + "anyhow", + "atexit", + "clidispatch", + "configloader", + "dirs 2.0.2", + "encoding", + "hgcommands", + "identity", + "libc", + "pyblackbox", + "tracing", + "webview-app", + "winapi 0.3.9", +] + +[[package]] +name = "hgplain" +version = "0.1.0" +dependencies = [ + "identity", +] + +[[package]] +name = "hgrc-parser" +version = "0.1.0" + +[[package]] +name = "hgstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "minibytes", + "types", +] + +[[package]] +name = "hgtime" +version = "0.1.0" +dependencies = [ + "chrono", + "humantime", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "hostcaps" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "once_cell", +] + +[[package]] +name = "hostname" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "anyhow", + "hostname 0.3.1", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi 0.3.9", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.10", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-client" +version = "0.1.0" +dependencies = [ + "anyhow", + "assert_matches", + "async-compression", + "async-runtime", + "auto_impl", + "clientinfo", + "crossbeam", + "curl", + "curl-sys", + "env_logger 0.10.2", + "futures 0.3.30", + "http", + "lru-cache", + "maplit", + "mockito", + "once_cell", + "openssl", + "parking_lot", + "paste", + "pin-project 0.4.30", + "regex", + "serde", + "serde_cbor", + "serde_json", + "structopt", + "thiserror", + "tokio", + "tokio-util 0.7.10", + "tracing", + "url", + "zstd", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.10", + "pin-project-lite", + "socket2 0.5.5", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "identity" +version = "0.1.0" +dependencies = [ + "anyhow", + "dirs 2.0.2", + "once_cell", + "parking_lot", + "tempfile", + "tracing", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.3", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "indexedlog" +version = "0.1.0" +dependencies = [ + "atomicfile", + "byteorder", + "configmodel", + "dev-logger", + "fs2", + "hex", + "libc", + "memmap2", + "minibench", + "minibytes", + "once_cell", + "quickcheck", + "rand 0.8.5", + "rand_chacha 0.3.1", + "tempfile", + "tracing", + "twox-hash", + "vlqencoding", + "winapi 0.3.9", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "arbitrary", + "equivalent", + "hashbrown 0.14.3", + "rayon", + "serde", +] + +[[package]] +name = "insta" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "serde", + "similar", + "yaml-rust", +] + +[[package]] +name = "insta_ext" +version = "0.1.0" +dependencies = [ + "insta", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "io" +version = "0.1.0" +dependencies = [ + "configmodel", + "hgplain", + "once_cell", + "parking_lot", + "pipe", + "streampager", + "terminal_size 0.3.0", + "termwiz", + "time-interval", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.4", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-terminal" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +dependencies = [ + "hermit-abi 0.3.4", + "rustix 0.38.30", + "windows-sys 0.52.0", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "lab" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazystr" +version = "0.1.0" + +[[package]] +name = "lfs_protocol" +version = "0.1.0" +dependencies = [ + "anyhow", + "faster-hex", + "http", + "mime", + "once_cell", + "quickcheck", + "serde", +] + +[[package]] +name = "libc" +version = "0.2.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" + +[[package]] +name = "libgit2-sys" +version = "0.13.5+1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e5ea06c26926f1002dd553fded6cfcdc9784c1f60feeb58368b4d9b07b6dba" +dependencies = [ + "cc", + "libc", + "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +] + +[[package]] +name = "libnghttp2-sys" +version = "0.1.9+1.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.2", + "libc", + "redox_syscall", +] + +[[package]] +name = "libssh2-sys" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "line-wrap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +dependencies = [ + "safemem", +] + +[[package]] +name = "linelog" +version = "0.1.0" +dependencies = [ + "im", + "rand_chacha 0.3.1", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "local-encoding" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ceb20f39ff7ae42f3ff9795f3986b1daad821caaa1e1732a0944103a5a1a66" +dependencies = [ + "kernel32-sys", + "skeptic", + "winapi 0.2.8", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +dependencies = [ + "value-bag", +] + +[[package]] +name = "lru" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" +dependencies = [ + "hashbrown 0.14.3", +] + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "lz4-pyframe" +version = "0.1.0" +dependencies = [ + "byteorder", + "libc", + "lz4-sys", + "quickcheck", + "thiserror", +] + +[[package]] +name = "lz4-sys" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "manifest" +version = "0.1.0" +dependencies = [ + "anyhow", + "pathmatcher", + "quickcheck", + "quickcheck_arbitrary_derive", + "types", +] + +[[package]] +name = "manifest-tree" +version = "0.1.0" +dependencies = [ + "anyhow", + "crossbeam", + "factory", + "manifest", + "minibench", + "minibytes", + "once_cell", + "parking_lot", + "pathmatcher", + "progress-model", + "quickcheck", + "rand 0.8.5", + "rand_chacha 0.3.1", + "sha1", + "storemodel", + "thiserror", + "tracing", + "types", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metalog" +version = "0.1.0" +dependencies = [ + "anyhow", + "hex", + "indexedlog", + "lazy_static", + "mincode", + "minibytes", + "parking_lot", + "quickcheck", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "serde", + "serde_json", + "tempfile", + "tracing", + "types", + "zstore", +] + +[[package]] +name = "metrics" +version = "0.1.0" +dependencies = [ + "futures 0.3.30", + "once_cell", +] + +[[package]] +name = "metrics-render" +version = "0.1.0" +dependencies = [ + "async-runtime", + "metrics", + "once_cell", + "progress-model", + "tracing", +] + +[[package]] +name = "migration" +version = "0.1.0" +dependencies = [ + "configmodel", + "thiserror", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "mincode" +version = "0.1.0" +dependencies = [ + "byteorder", + "quickcheck", + "serde", + "vlqencoding", +] + +[[package]] +name = "minibench" +version = "0.1.0" + +[[package]] +name = "minibench_examples" +version = "0.1.0" +dependencies = [ + "crossbeam", + "futures 0.3.30", + "minibench", + "tokio", +] + +[[package]] +name = "minibytes" +version = "0.1.0" +dependencies = [ + "bytes", + "memmap2", + "quickcheck", + "serde", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mkscratch" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap 3.2.25", + "dirs 2.0.2", + "hex", + "identity", + "libc", + "serde", + "sha2 0.10.8", + "toml", +] + +[[package]] +name = "mockito" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3ae325bcceb48a24302ac57e1055f9173f5fd53be535603ea0ed41dea92db5" +dependencies = [ + "assert-json-diff", + "colored", + "difference", + "httparse", + "lazy_static", + "log", + "rand 0.7.3", + "regex", + "serde_json", + "serde_urlencoded 0.6.1", +] + +[[package]] +name = "mpatch" +version = "0.1.0" +dependencies = [ + "libc", + "mpatch-sys", +] + +[[package]] +name = "mpatch-sys" +version = "0.1.0" +dependencies = [ + "cc", +] + +[[package]] +name = "mutationstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "bitflags 2.4.2", + "dag", + "drawdag", + "futures 0.3.30", + "indexedlog", + "rand 0.8.5", + "rand_chacha 0.3.1", + "tempfile", + "types", + "vlqencoding", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "network-doctor" +version = "0.1.0" +dependencies = [ + "auth", + "configmodel", + "curl", + "hg-http", + "http", + "http-client", + "tempfile", + "thiserror", + "tracing", + "url", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if 1.0.0", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.2", + "cfg-if 1.0.0", + "libc", +] + +[[package]] +name = "nodeipc" +version = "0.1.0" +dependencies = [ + "anyhow", + "filedescriptor 0.7.3", + "libc", + "nodeipc_derive", + "paste", + "serde", + "serde_json", + "winapi 0.3.9", +] + +[[package]] +name = "nodeipc_derive" +version = "0.1.0" + +[[package]] +name = "nodemap" +version = "0.1.0" +dependencies = [ + "anyhow", + "indexedlog", + "quickcheck", + "tempfile", + "thiserror", + "types", +] + +[[package]] +name = "nom" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" +dependencies = [ + "memchr", + "version_check", +] + +[[package]] +name = "nonblocking" +version = "0.1.0" +dependencies = [ + "futures 0.3.30", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.4", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a083c0c7e5e4a8ec4176346cf61f67ac674e8bfb059d9226e1c54a96b377c12" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl" +version = "0.10.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" +dependencies = [ + "bitflags 2.4.2", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "ordered-multimap" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c672c7ad9ec066e428c00eb917124a06f08db19e2584de982cc34b1f4c12485" +dependencies = [ + "dlv-list", + "hashbrown 0.9.1", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "panic-message" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384e52fd8fbd4cbe3c317e8216260c21a0f9134de108cea8a4dd4e7e152c472d" + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "pathhistory" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "async-trait", + "dag", + "dev-logger", + "manifest", + "manifest-tree", + "sha1", + "storemodel", + "tokio", + "tracing", + "types", +] + +[[package]] +name = "pathmatcher" +version = "0.1.0" +dependencies = [ + "anyhow", + "bitflags 2.4.2", + "fancy-regex", + "fs-err", + "glob", + "globset", + "ignore", + "parking_lot", + "regex-automata 0.3.9", + "tempfile", + "thiserror", + "tracing", + "types", + "util", +] + +[[package]] +name = "pem" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" +dependencies = [ + "base64 0.21.7", + "serde", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "perthread" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" + +[[package]] +name = "pest" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "pest_meta" +version = "2.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a" +dependencies = [ + "pin-project-internal 0.4.30", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal 1.1.3", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pipe" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f763a706963c2af5e4e7f5b29a93a42809568b857d73ab8c0c4ecf8edf7f8f" +dependencies = [ + "crossbeam-channel 0.3.9", +] + +[[package]] +name = "pkg-config" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" + +[[package]] +name = "plist" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" +dependencies = [ + "base64 0.21.7", + "indexmap 2.1.0", + "line-wrap", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if 1.0.0", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "pprint" +version = "0.1.0" +dependencies = [ + "serde", + "serde_cbor", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "procinfo" +version = "0.1.0" +dependencies = [ + "cc", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "procutil" +version = "0.1.0" +dependencies = [ + "libc", + "once_cell", + "tracing", + "winapi 0.3.9", +] + +[[package]] +name = "progress-model" +version = "0.1.0" +dependencies = [ + "arc-swap", + "once_cell", + "parking_lot", + "paste", + "thread_local", + "tokio", + "tracing", +] + +[[package]] +name = "progress-render" +version = "0.1.0" +dependencies = [ + "progress-model", + "termwiz", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" +dependencies = [ + "idna 0.3.0", + "psl-types", +] + +[[package]] +name = "pulldown-cmark" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8361e81576d2e02643b04950e487ec172b687180da65c731c03cf336784e6c07" +dependencies = [ + "getopts", +] + +[[package]] +name = "pyatexit" +version = "0.1.0" +dependencies = [ + "atexit", + "cpython", + "cpython_ext", + "procutil", +] + +[[package]] +name = "pyauth" +version = "0.1.0" +dependencies = [ + "anyhow", + "auth", + "cpython", + "cpython_ext", + "pyconfigloader", + "url", +] + +[[package]] +name = "pyblackbox" +version = "0.1.0" +dependencies = [ + "blackbox", + "cpython", + "cpython_ext", +] + +[[package]] +name = "pybytes" +version = "0.1.0" +dependencies = [ + "cpython", + "minibytes", + "python3-sys", +] + +[[package]] +name = "pycats" +version = "0.1.0" +dependencies = [ + "cats", + "cpython", + "cpython_ext", + "pyconfigloader", +] + +[[package]] +name = "pycbor" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "serde_cbor", +] + +[[package]] +name = "pycext" +version = "0.1.0" +dependencies = [ + "cc", + "cpython", + "python3-sys", +] + +[[package]] +name = "pycheckout" +version = "0.1.0" +dependencies = [ + "anyhow", + "checkout", + "configmodel", + "cpython", + "cpython_ext", + "io", + "manifest-tree", + "parking_lot", + "pathmatcher", + "progress-model", + "pymanifest", + "pypathmatcher", + "pystatus", + "pytreestate", + "storemodel", + "termlogger", + "vfs", + "workingcopy", +] + +[[package]] +name = "pyclientinfo" +version = "0.1.0" +dependencies = [ + "clientinfo", + "cpython", + "cpython_ext", +] + +[[package]] +name = "pycliparser" +version = "0.1.0" +dependencies = [ + "clidispatch", + "cliparser", + "configmodel", + "cpython", + "pyconfigloader", +] + +[[package]] +name = "pyconchparser" +version = "0.1.0" +dependencies = [ + "conch-parser", + "cpython", + "cpython_ext", +] + +[[package]] +name = "pyconfigloader" +version = "0.1.0" +dependencies = [ + "configloader", + "cpython", + "cpython_ext", + "util", +] + +[[package]] +name = "pycopytrace" +version = "0.1.0" +dependencies = [ + "async-runtime", + "configmodel", + "copytrace", + "cpython", + "cpython_ext", + "dag", + "parking_lot", + "storemodel", + "types", +] + +[[package]] +name = "pydag" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "cpython", + "cpython_ext", + "dag", + "futures 0.3.30", + "hgcommits", + "minibytes", + "parking_lot", + "pyedenapi", + "pyio", + "pymetalog", + "storemodel", +] + +[[package]] +name = "pydiffhelpers" +version = "0.1.0" +dependencies = [ + "cpython", +] + +[[package]] +name = "pydirs" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "dirs 2.0.2", +] + +[[package]] +name = "pydoctor" +version = "0.1.0" +dependencies = [ + "cpython", + "network-doctor", + "pyconfigloader", +] + +[[package]] +name = "pydrawdag" +version = "0.1.0" +dependencies = [ + "cpython", + "drawdag", +] + +[[package]] +name = "pyeagerepo" +version = "0.1.0" +dependencies = [ + "async-runtime", + "cpython", + "cpython_ext", + "dag", + "eagerepo", + "edenapi_types", + "pydag", + "pyedenapi", + "storemodel", +] + +[[package]] +name = "pyedenapi" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "cpython", + "cpython_async", + "cpython_ext", + "dag-types", + "edenapi", + "edenapi_ext", + "edenapi_types", + "futures 0.3.30", + "hgstore", + "minibytes", + "progress-model", + "pyconfigloader", + "pyrevisionstore", + "revisionstore", + "types", +] + +[[package]] +name = "pyedenclient" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "edenfs-client", + "types", +] + +[[package]] +name = "pyerror" +version = "0.1.0" +dependencies = [ + "auth", + "configmodel", + "cpython", + "cpython_ext", + "dag", + "edenapi", + "http-client", + "indexedlog", + "metalog", + "pathmatcher", + "repo", + "repolock", + "revisionstore", + "revlogindex", + "types", +] + +[[package]] +name = "pyexchange" +version = "0.1.0" +dependencies = [ + "configmodel", + "cpython", + "cpython_ext", + "exchange", + "pydag", + "pyedenapi", + "pymetalog", + "types", +] + +[[package]] +name = "pyfail" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "fail", +] + +[[package]] +name = "pyfs" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "fsinfo", +] + +[[package]] +name = "pygitstore" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "gitstore", + "storemodel", +] + +[[package]] +name = "pyhgmetrics" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "hg-metrics", + "sampling", +] + +[[package]] +name = "pyhgtime" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "hgtime", +] + +[[package]] +name = "pyidentity" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "identity", +] + +[[package]] +name = "pyindexedlog" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "indexedlog", + "pybytes", +] + +[[package]] +name = "pyio" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "io", + "pyconfigloader", + "termstyle", +] + +[[package]] +name = "pylinelog" +version = "0.1.0" +dependencies = [ + "cpython", + "linelog", +] + +[[package]] +name = "pylock" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "repolock", +] + +[[package]] +name = "pylz4" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "lz4-pyframe", +] + +[[package]] +name = "pymanifest" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "cpython_ext", + "manifest", + "manifest-tree", + "parking_lot", + "pathmatcher", + "pypathmatcher", + "types", +] + +[[package]] +name = "pymetalog" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "metalog", + "parking_lot", +] + +[[package]] +name = "pymodules" +version = "0.1.0" +dependencies = [ + "cpython", + "minibytes", + "pybytes", + "python-modules", +] + +[[package]] +name = "pymutationstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "byteorder", + "cpython", + "cpython_ext", + "mutationstore", + "pydag", + "thiserror", + "types", + "vlqencoding", +] + +[[package]] +name = "pynodeipc" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "nodeipc", + "serde_json", +] + +[[package]] +name = "pynodemap" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "nodemap", + "types", +] + +[[package]] +name = "pypathhistory" +version = "0.1.0" +dependencies = [ + "async-runtime", + "cpython", + "cpython_ext", + "dag", + "pathhistory", + "storemodel", + "types", +] + +[[package]] +name = "pypathmatcher" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "cpython_ext", + "io", + "pathmatcher", + "tracing", + "types", +] + +[[package]] +name = "pypprint" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "pprint", +] + +[[package]] +name = "pyprocess" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "procutil", + "spawn-ext", +] + +[[package]] +name = "pyprogress" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "progress-model", + "progress-render", +] + +[[package]] +name = "pyrefencode" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "refencode", +] + +[[package]] +name = "pyregex" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "regex", +] + +[[package]] +name = "pyrenderdag" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "minibytes", + "parking_lot", + "renderdag", +] + +[[package]] +name = "pyrepo" +version = "0.1.0" +dependencies = [ + "configmodel", + "cpython", + "cpython_ext", + "parking_lot", + "pyconfigloader", + "pydag", + "pyeagerepo", + "pyedenapi", + "pymetalog", + "pyrevisionstore", + "pyworkingcopy", + "repo", + "repolock", + "revisionstore", + "util", + "workingcopy", +] + +[[package]] +name = "pyrevisionstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "configmodel", + "cpython", + "cpython_ext", + "minibytes", + "parking_lot", + "pyconfigloader", + "revisionstore", + "storemodel", + "types", +] + +[[package]] +name = "pyrevlogindex" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "pybytes", + "pydag", + "revlogindex", +] + +[[package]] +name = "pysptui" +version = "0.1.0" +dependencies = [ + "clidispatch", + "cpython", + "cpython_ext", + "pipe", + "streampager", +] + +[[package]] +name = "pystatus" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "status", + "types", + "util", +] + +[[package]] +name = "python-modules" +version = "0.1.0" +dependencies = [ + "codegen", + "once_cell", + "phf 0.11.2", + "zstdelta", +] + +[[package]] +name = "python3-sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f8b50d72fb3015735aa403eebf19bbd72c093bfeeae24ee798be5f2f1aab52" +dependencies = [ + "libc", + "regex", +] + +[[package]] +name = "pythreading" +version = "0.1.0" +dependencies = [ + "cpython", + "rand 0.8.5", +] + +[[package]] +name = "pytoml" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "toml", +] + +[[package]] +name = "pytracing" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "lazy_static", + "mincode", + "parking_lot", + "python3-sys", + "serde_json", + "tracing", + "tracing-collector", + "tracing-reload", + "tracing-runtime-callsite", +] + +[[package]] +name = "pytreestate" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "cpython_ext", + "parking_lot", + "pathmatcher", + "pypathmatcher", + "treestate", + "types", + "vfs", +] + +[[package]] +name = "pyversion" +version = "0.1.0" +dependencies = [ + "cpython", + "version", +] + +[[package]] +name = "pyvlq" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "pyio", + "vlqencoding", +] + +[[package]] +name = "pywebview" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "webview-app", +] + +[[package]] +name = "pyworker" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "cpython_ext", + "crossbeam", + "memmap2", + "minibytes", + "pyrevisionstore", + "quickcheck", + "revisionstore", + "tempfile", + "tracing", + "types", + "vfs", +] + +[[package]] +name = "pyworkingcopy" +version = "0.1.0" +dependencies = [ + "anyhow", + "cpython", + "cpython_ext", + "fs-err", + "io", + "parking_lot", + "pathmatcher", + "pyconfigloader", + "pyedenclient", + "pypathmatcher", + "pystatus", + "pytreestate", + "repostate", + "sparse", + "termlogger", + "types", + "workingcopy", +] + +[[package]] +name = "pyxdiff" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "xdiff", +] + +[[package]] +name = "pyzstd" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "zstd", + "zstd-safe", + "zstdelta", +] + +[[package]] +name = "pyzstore" +version = "0.1.0" +dependencies = [ + "cpython", + "cpython_ext", + "zstore", +] + +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + +[[package]] +name = "quickcheck" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6" +dependencies = [ + "env_logger 0.8.4", + "log", + "rand 0.8.5", +] + +[[package]] +name = "quickcheck_arbitrary_derive" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "proc-macro2", + "quickcheck", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quickcheck_macros" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radixbuf" +version = "0.1.0" +dependencies = [ + "minibench", + "quickcheck", + "rand 0.8.5", + "thiserror", + "vlqencoding", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "serde", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.12", + "serde", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rayon" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils 0.8.19", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom 0.2.12", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "refencode" +version = "0.1.0" +dependencies = [ + "types", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.5", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "renderdag" +version = "0.1.0" +dependencies = [ + "bitflags 2.4.2", + "dag", + "itertools", + "nonblocking", + "serde", + "unicode-width", +] + +[[package]] +name = "repo" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "commits-trait", + "configloader", + "configmodel", + "constructors", + "eagerepo", + "edenapi", + "factory", + "fail", + "fs-err", + "identity", + "manifest-tree", + "metalog", + "once_cell", + "parking_lot", + "refencode", + "repolock", + "revisionstore", + "revsets", + "storemodel", + "tempfile", + "thiserror", + "tracing", + "treestate", + "types", + "util", + "workingcopy", +] + +[[package]] +name = "repo_name" +version = "0.1.0" +dependencies = [ + "anyhow", + "percent-encoding", +] + +[[package]] +name = "repolock" +version = "0.1.0" +dependencies = [ + "anyhow", + "configmodel", + "fs-err", + "fs2", + "parking_lot", + "tempfile", + "thiserror", + "tracing", + "util", +] + +[[package]] +name = "repostate" +version = "0.1.0" +dependencies = [ + "anyhow", + "byteorder", + "fs-err", + "identity", + "repolock", + "serde", + "tempfile", + "types", + "util", +] + +[[package]] +name = "reqwest" +version = "0.11.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" +dependencies = [ + "base64 0.21.7", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded 0.7.1", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tokio-util 0.7.10", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "revisionstore" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "async-trait", + "byteorder", + "clientinfo", + "clientinfo_async", + "configmodel", + "crossbeam", + "curl", + "edenapi", + "edenapi_types", + "fbinit", + "fn-error-context", + "fs-err", + "futures 0.3.30", + "hex", + "hg-http", + "hg-metrics", + "hgstore", + "hgtime", + "http", + "http-client", + "indexedlog", + "lfs_protocol", + "lz4-pyframe", + "manifest-tree", + "maplit", + "memmap2", + "mincode", + "minibytes", + "mockito", + "mpatch", + "once_cell", + "parking_lot", + "progress-model", + "quickcheck", + "quickcheck_arbitrary_derive", + "rand 0.8.5", + "rand_chacha 0.3.1", + "regex", + "repo_name", + "revisionstore_types", + "serde", + "serde_derive", + "serde_json", + "sha1", + "sha2 0.10.8", + "stats", + "storemodel", + "tempfile", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "types", + "url", + "util", + "version", + "vlqencoding", +] + +[[package]] +name = "revisionstore_types" +version = "0.1.0" +dependencies = [ + "anyhow", + "byteorder", + "quickcheck", + "quickcheck_arbitrary_derive", + "serde", + "serde_derive", +] + +[[package]] +name = "revlogindex" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "bit-vec", + "byteorder", + "dag", + "indexedlog", + "lz4-pyframe", + "minibytes", + "nonblocking", + "parking_lot", + "radixbuf", + "tempfile", + "thiserror", + "util", +] + +[[package]] +name = "revsets" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "configmodel", + "dag", + "edenapi", + "metalog", + "refencode", + "thiserror", + "treestate", + "types", +] + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom 0.2.12", + "libc", + "spin", + "untrusted", + "windows-sys 0.48.0", +] + +[[package]] +name = "runlog" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "configmodel", + "fs2", + "hg-http", + "libc", + "parking_lot", + "progress-model", + "rand 0.8.5", + "repo", + "serde", + "serde_json", + "tempfile", + "util", +] + +[[package]] +name = "rust-ini" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63471c4aa97a1cf8332a5f97709a79a4234698de6a1f5087faf66f2dae810e22" +dependencies = [ + "cfg-if 1.0.0", + "ordered-multimap", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +dependencies = [ + "bitflags 2.4.2", + "errno", + "libc", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "sampling" +version = "0.1.0" +dependencies = [ + "configmodel", + "parking_lot", + "serde", + "serde_json", + "tracing", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scm_daemon" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap 2.34.0", + "commitcloudsubscriber", + "env_logger 0.10.2", + "libc", + "log", + "serde", + "thiserror", + "tokio", + "toml", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.195" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_alt" +version = "0.1.0" + +[[package]] +name = "serde_bser" +version = "0.3.1" +source = "git+https://github.com/facebook/watchman.git?branch=main#d52738785ded4c290fb08adcb244e4c34ef1ffdd" +dependencies = [ + "anyhow", + "byteorder", + "bytes", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_cbor" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" +dependencies = [ + "half", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.195" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "serde_fmt" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_json" +version = "1.0.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +dependencies = [ + "itoa 1.0.10", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" +dependencies = [ + "dtoa", + "itoa 0.4.8", + "serde", + "url", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.10", + "ryu", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shellexpand" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +dependencies = [ + "dirs 4.0.0", +] + +[[package]] +name = "shlex" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "signal-hook" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook 0.3.17", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "similar" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" + +[[package]] +name = "simple_asn1" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80" +dependencies = [ + "chrono", + "num-bigint", + "num-traits", + "thiserror", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "skeptic" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ebf8a06f5f8bae61ae5bbc7af7aac4ef6907ae975130faba1199e5fe82256a" +dependencies = [ + "pulldown-cmark", + "tempdir", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "sorted_vector_map" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "itertools", + "quickcheck", +] + +[[package]] +name = "sparse" +version = "0.1.0" +dependencies = [ + "anyhow", + "futures 0.3.30", + "globset", + "once_cell", + "pathmatcher", + "regex", + "syncify", + "thiserror", + "tokio", + "tracing", + "types", +] + +[[package]] +name = "spawn-ext" +version = "0.1.0" +dependencies = [ + "libc", + "tempfile", + "winapi 0.3.9", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "staticconfig" +version = "0.1.0" +dependencies = [ + "configmodel", + "phf 0.11.2", + "staticconfig_macros", +] + +[[package]] +name = "staticconfig_macros" +version = "0.1.0" +dependencies = [ + "hgrc-parser", + "indexmap 2.1.0", +] + +[[package]] +name = "stats" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "fbinit", + "futures 0.3.30", + "once_cell", + "perthread", + "stats_traits", + "tokio", + "tokio-stream", +] + +[[package]] +name = "stats_traits" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "auto_impl", + "dashmap", + "fbinit", +] + +[[package]] +name = "status" +version = "0.1.0" +dependencies = [ + "types", +] + +[[package]] +name = "storemodel" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "configmodel", + "edenapi_trait", + "edenapi_types", + "factory", + "futures 0.3.30", + "minibytes", + "once_cell", + "serde", + "types", +] + +[[package]] +name = "streampager" +version = "0.10.3" +dependencies = [ + "bit-set", + "dirs 2.0.2", + "enum_dispatch", + "indexmap 2.1.0", + "lazy_static", + "lru", + "memmap2", + "regex", + "scopeguard", + "serde", + "smallvec", + "tempfile", + "terminfo", + "termwiz", + "thiserror", + "toml", + "unicode-segmentation", + "unicode-width", + "vec_map", +] + +[[package]] +name = "streams" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "futures 0.3.30", + "pin-project 0.4.30", + "tokio", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "sval" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1604e9ab506f4805bc62d2868c6d20f23fa6ced4c7cfe695a1d20589ba5c63d0" + +[[package]] +name = "sval_buffer" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2831b6451148d344f612016d4277348f7721b78a0869a145fd34ef8b06b3fa2e" +dependencies = [ + "sval", + "sval_ref", +] + +[[package]] +name = "sval_dynamic" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "238ac5832a23099a413ffd22e66f7e6248b9af4581b64c758ca591074be059fc" +dependencies = [ + "sval", +] + +[[package]] +name = "sval_fmt" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8474862431bac5ac7aee8a12597798e944df33f489c340e17e886767bda0c4e" +dependencies = [ + "itoa 1.0.10", + "ryu", + "sval", +] + +[[package]] +name = "sval_json" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f348030cc3d2a11eb534145600601f080cf16bf9ec0783efecd2883f14c21e" +dependencies = [ + "itoa 1.0.10", + "ryu", + "sval", +] + +[[package]] +name = "sval_nested" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6659c3f6be1e5e99dc7c518877f48a8a39088ace2504b046db789bd78ce5969d" +dependencies = [ + "sval", + "sval_buffer", + "sval_ref", +] + +[[package]] +name = "sval_ref" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829ad319bd82d0da77be6f3d547623686c453502f8eebdeb466cfa987972bd28" +dependencies = [ + "sval", +] + +[[package]] +name = "sval_serde" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a9da6c3efaedf8b8c0861ec5343e8e8c51d838f326478623328bd8728b79bca" +dependencies = [ + "serde", + "sval", + "sval_nested", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syncify" +version = "0.1.0" +dependencies = [ + "tree-pattern-match", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-command" +version = "0.1.0" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand 0.4.6", + "remove_dir_all", +] + +[[package]] +name = "tempfile" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +dependencies = [ + "cfg-if 1.0.0", + "fastrand 2.0.1", + "redox_syscall", + "rustix 0.38.30", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" +dependencies = [ + "rustix 0.37.27", + "windows-sys 0.48.0", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix 0.38.30", + "windows-sys 0.48.0", +] + +[[package]] +name = "terminfo" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da31aef70da0f6352dbcb462683eb4dd2bfad01cf3fc96cf204547b9a839a585" +dependencies = [ + "dirs 4.0.0", + "fnv", + "nom", + "phf 0.11.2", + "phf_codegen", +] + +[[package]] +name = "termios" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" +dependencies = [ + "libc", +] + +[[package]] +name = "termlogger" +version = "0.1.0" +dependencies = [ + "identity", + "io", + "lazystr", + "tracing", +] + +[[package]] +name = "termstyle" +version = "0.1.0" +dependencies = [ + "configmodel", + "hgplain", + "io", + "termwiz", + "tracing", +] + +[[package]] +name = "termwiz" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e302bfaa2555ca7fb55eee19051ad43e510153b19cb880d6da5acb65a72ab9" +dependencies = [ + "anyhow", + "base64 0.13.1", + "bitflags 1.3.2", + "cassowary", + "cfg-if 1.0.0", + "filedescriptor 0.8.2", + "finl_unicode", + "fixedbitset", + "fnv", + "hex", + "lazy_static", + "libc", + "log", + "memmem", + "nix 0.24.3", + "num-derive", + "num-traits", + "ordered-float", + "pest", + "pest_derive", + "phf 0.10.1", + "regex", + "semver", + "sha2 0.9.9", + "signal-hook 0.1.17", + "siphasher", + "terminfo", + "termios", + "thiserror", + "ucd-trie", + "unicode-segmentation", + "vtparse", + "wezterm-bidi", + "wezterm-color-types", + "wezterm-dynamic", + "winapi 0.3.9", +] + +[[package]] +name = "testutil" +version = "0.1.0" +dependencies = [ + "once_cell", + "parking_lot", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +dependencies = [ + "terminal_size 0.2.6", + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + +[[package]] +name = "thrift" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "codegen_includer_proc_macro", + "config_thrift", + "const-cstr", + "fb303_core", + "fbthrift", + "futures 0.3.30", + "ref-cast", + "sorted_vector_map", + "thiserror", + "thrift_compiler", + "thrift_types", + "tracing", + "tracing-futures", +] + +[[package]] +name = "thrift-types" +version = "0.1.0" +dependencies = [ + "anyhow", + "config", + "config_thrift", + "fb303_core", + "fbthrift", + "futures 0.3.30", + "thiserror", + "thrift", +] + +[[package]] +name = "thrift_compiler" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "anyhow", + "clap 4.4.18", + "serde", + "which", +] + +[[package]] +name = "thrift_types" +version = "0.1.0" +dependencies = [ + "anyhow", + "codegen_includer_proc_macro", + "config_thrift", + "fb303_core", + "fbthrift", + "futures 0.3.30", + "once_cell", + "ref-cast", + "serde", + "serde_derive", + "sorted_vector_map", + "thiserror", + "thrift_compiler", +] + +[[package]] +name = "time" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +dependencies = [ + "deranged", + "itoa 1.0.10", + "libc", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-interval" +version = "0.1.0" + +[[package]] +name = "time-macros" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyfiledialogs" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25fa0bc43a6566e2cc6d7ac96df3fa5a57beba34445bead1b368ba8fe9ca568" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.35.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.5", + "tokio-macros", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.10", +] + +[[package]] +name = "tokio-tower" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4322b6e2ebfd3be4082c16df4341505ef333683158b55f22afaf3f61565d728" +dependencies = [ + "crossbeam", + "futures-core", + "futures-sink", + "futures-util", + "pin-project 1.1.3", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "tokio-uds-compat" +version = "0.1.0" +source = "git+https://github.com/facebookexperimental/rust-shed.git?branch=main#76d2159747b056901daa362c3404b6d7b781eec5" +dependencies = [ + "async-io", + "futures 0.3.30", + "tokio", + "tracing", + "uds_windows", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "log", + "pin-project-lite", + "slab", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.14.3", + "pin-project-lite", + "slab", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-analyzer" +version = "0.1.0" +dependencies = [ + "serde_json", + "tracing-collector", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "tracing-collector" +version = "0.1.0" +dependencies = [ + "indexmap 2.1.0", + "libc", + "parking_lot", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", + "winapi 0.3.9", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures 0.3.30", + "futures-task", + "pin-project 1.1.3", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-reload" +version = "0.1.0" +dependencies = [ + "anyhow", + "once_cell", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-runtime-callsite" +version = "0.1.0" +dependencies = [ + "once_cell", + "parking_lot", + "regex", + "tracing", +] + +[[package]] +name = "tracing-sampler" +version = "0.1.0" +dependencies = [ + "sampling", + "tempfile", + "tracing", + "tracing-serde", + "tracing-subscriber", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "chrono", + "matchers", + "nu-ansi-term", + "once_cell", + "parking_lot", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "tracing-test" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a2c0ff408fe918a94c428a3f2ad04e4afd5c95bbc08fcf868eff750c15728a4" +dependencies = [ + "lazy_static", + "tracing-core", + "tracing-subscriber", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bc1c4f8e2e73a977812ab339d503e6feeb92700f6d07a6de4d321522d5c08" +dependencies = [ + "lazy_static", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tree-pattern-match" +version = "0.1.0" + +[[package]] +name = "treestate" +version = "0.1.0" +dependencies = [ + "anyhow", + "atomicfile", + "bitflags 2.4.2", + "byteorder", + "fs-err", + "fs2", + "identity", + "itertools", + "pretty_assertions", + "quickcheck", + "rand 0.8.5", + "rand_chacha 0.3.1", + "repolock", + "sha2 0.10.8", + "tempfile", + "thiserror", + "tracing", + "twox-hash", + "types", + "util", + "uuid", + "vlqencoding", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if 1.0.0", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "type_macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "types" +version = "0.1.0" +dependencies = [ + "anyhow", + "byteorder", + "lazy_static", + "quickcheck", + "quickcheck_arbitrary_derive", + "rand 0.8.5", + "ref-cast", + "serde", + "serde_bytes", + "serde_cbor", + "serde_derive", + "serde_json", + "sha1", + "thiserror", + "util", + "vlqencoding", +] + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.0", + "tempfile", + "winapi 0.3.9", +] + +[[package]] +name = "udsipc" +version = "0.1.0" +dependencies = [ + "anyhow", + "fn-error-context", + "fs-err", + "nodeipc", + "uds_windows", +] + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unionconfig" +version = "0.1.0" +dependencies = [ + "configmodel", + "indexmap 2.1.0", + "staticconfig", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna 0.5.0", + "percent-encoding", +] + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "util" +version = "0.1.0" +dependencies = [ + "anyhow", + "atomicfile", + "dirs 2.0.2", + "fn-error-context", + "fs2", + "hostname 0.3.1", + "lazystr", + "libc", + "memmap2", + "once_cell", + "rand 0.8.5", + "shellexpand", + "tempfile", + "thiserror", + "widestring", + "winapi 0.3.9", +] + +[[package]] +name = "uuid" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +dependencies = [ + "atomic", + "getrandom 0.2.12", + "serde", + "sha1_smol", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "value-bag" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cdbaf5e132e593e9fc1de6a15bbec912395b11fb9719e061cf64f804524c503" +dependencies = [ + "value-bag-serde1", + "value-bag-sval2", +] + +[[package]] +name = "value-bag-serde1" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92cad98b1b18d06b6f38b3cd04347a9d7a3a0111441a061f71377fb6740437e4" +dependencies = [ + "erased-serde", + "serde", + "serde_fmt", +] + +[[package]] +name = "value-bag-sval2" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc7271d6b3bf58dd2e610a601c0e159f271ffdb7fbb21517c40b52138d64f8e" +dependencies = [ + "sval", + "sval_buffer", + "sval_dynamic", + "sval_fmt", + "sval_json", + "sval_ref", + "sval_serde", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version" +version = "0.1.0" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vfs" +version = "0.1.0" +dependencies = [ + "anyhow", + "crossbeam", + "dashmap", + "fsinfo", + "identity", + "libc", + "minibytes", + "once_cell", + "tempfile", + "thiserror", + "tokio", + "tracing", + "types", + "util", +] + +[[package]] +name = "vlqencoding" +version = "0.1.0" +dependencies = [ + "quickcheck", +] + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "vtparse" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" + +[[package]] +name = "wasm-streams" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "watchman_client" +version = "0.8.0" +source = "git+https://github.com/facebook/watchman.git?branch=main#d52738785ded4c290fb08adcb244e4c34ef1ffdd" +dependencies = [ + "anyhow", + "bytes", + "futures 0.3.30", + "maplit", + "serde", + "serde_bser", + "thiserror", + "tokio", + "tokio-util 0.6.10", + "winapi 0.3.9", +] + +[[package]] +name = "web-sys" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" + +[[package]] +name = "webview-app" +version = "0.1.0" +dependencies = [ + "anyhow", + "base64 0.13.1", + "dirs 2.0.2", + "open", + "serde", + "serde_json", + "tinyfiledialogs", + "tracing", + "version", + "webview-sys", +] + +[[package]] +name = "webview-sys" +version = "0.6.2" +dependencies = [ + "cc", +] + +[[package]] +name = "wezterm-bidi" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1560382cf39b0fa92473eae4d5b3772f88c63202cbf5a72c35db72ba99e66c36" +dependencies = [ + "log", + "wezterm-dynamic", +] + +[[package]] +name = "wezterm-color-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6e7a483dd2785ba72705c51e8b1be18300302db2a78368dac9bc8773857777" +dependencies = [ + "csscolorparser", + "deltae", + "lazy_static", + "wezterm-dynamic", +] + +[[package]] +name = "wezterm-dynamic" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75e78c0cc60a76de5d93f9dad05651105351e151b6446ab305514945d7588aa" +dependencies = [ + "log", + "ordered-float", + "strsim 0.10.0", + "thiserror", + "wezterm-dynamic-derive", +] + +[[package]] +name = "wezterm-dynamic-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9f5ef318442d07b3d071f9f43ea40b80992f87faee14bb4d017b6991c307f0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.30", +] + +[[package]] +name = "widestring" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if 1.0.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "workingcopy" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-runtime", + "async-trait", + "bitflags 2.4.2", + "configloader", + "configmodel", + "crossbeam", + "edenfs-client", + "fs-err", + "hgtime", + "identity", + "manifest", + "manifest-tree", + "parking_lot", + "pathmatcher", + "progress-model", + "repolock", + "repostate", + "serde", + "serde_json", + "sparse", + "status", + "storemodel", + "tempfile", + "termlogger", + "thiserror", + "tokio", + "tracing", + "treestate", + "types", + "util", + "vfs", + "watchman_client", +] + +[[package]] +name = "xdiff" +version = "0.1.0" +dependencies = [ + "structopt", + "xdiff-sys", +] + +[[package]] +name = "xdiff-sys" +version = "0.1.0" +dependencies = [ + "cc", +] + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "zstd" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zstdelta" +version = "0.1.0" +dependencies = [ + "libc", + "quickcheck", + "rand 0.8.5", + "rand_chacha 0.3.1", + "zstd-sys", +] + +[[package]] +name = "zstore" +version = "0.1.0" +dependencies = [ + "indexedlog", + "lazy_static", + "lru-cache", + "mincode", + "minibytes", + "parking_lot", + "quickcheck", + "serde", + "sha1", + "tempfile", + "tracing", + "types", + "zstdelta", +] diff --git a/nixpkgs/pkgs/applications/version-management/sapling/default.nix b/nixpkgs/pkgs/applications/version-management/sapling/default.nix new file mode 100644 index 000000000000..c5f2adf153f5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sapling/default.nix @@ -0,0 +1,201 @@ +{ lib +, stdenv +, python3Packages +, fetchFromGitHub +, fetchurl +, sd +, cargo +, curl +, pkg-config +, openssl +, rustPlatform +, rustc +, fetchYarnDeps +, yarn +, nodejs +, fixup-yarn-lock +, glibcLocales +, libiconv +, Cocoa +, CoreFoundation +, CoreGraphics +, CoreServices +, Security +, WebKit + +, enableMinimal ? false +}: + +let + inherit (lib.importJSON ./deps.json) links version versionHash; + # Sapling sets a Cargo config containing lines like so: + # [target.aarch64-apple-darwin] + # rustflags = ["-C", "link-args=-Wl,-undefined,dynamic_lookup"] + # + # The default cargo config that's set by the build hook will set + # unstable.host-config and unstable.target-applies-to-host which seems to + # result in the link arguments above being ignored and thus link failures. + # All it is there to do anyway is just to do stuff with musl and cross + # compilation, which doesn't work on macOS anyway so we can just stub it + # on macOS. + # + # See https://github.com/NixOS/nixpkgs/pull/198311#issuecomment-1326894295 + myCargoSetupHook = rustPlatform.cargoSetupHook.overrideAttrs (old: { + cargoConfig = lib.optionalString (!stdenv.isDarwin) old.cargoConfig; + }); + + src = fetchFromGitHub { + owner = "facebook"; + repo = "sapling"; + rev = version; + hash = "sha256-uzev4x9jY6foop35z4dvUMIfjRtRqhNFDVFpagOosAc"; + }; + + addonsSrc = "${src}/addons"; + + # Fetches the Yarn modules in Nix to to be used as an offline cache + yarnOfflineCache = fetchYarnDeps { + yarnLock = "${addonsSrc}/yarn.lock"; + sha256 = "sha256-3JFrVk78EiNVLLXkCFbuRnXwYHNfVv1pBPBS1yCHtPU"; + }; + + # Builds the NodeJS server that runs with `sl web` + isl = stdenv.mkDerivation { + pname = "sapling-isl"; + src = addonsSrc; + inherit version; + + nativeBuildInputs = [ + fixup-yarn-lock + nodejs + yarn + ]; + + buildPhase = '' + runHook preBuild + + export HOME=$(mktemp -d) + fixup-yarn-lock yarn.lock + yarn config --offline set yarn-offline-mirror ${yarnOfflineCache} + yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress + patchShebangs node_modules + + # TODO: build-tar.py tries to run 'yarn install'. We patched + # shebangs node_modules, so we don't want 'yarn install' + # changing files. We should disable the 'yarn install' in + # build-tar.py to be safe. + ${python3Packages.python}/bin/python3 build-tar.py \ + --output isl-dist.tar.xz \ + --yarn 'yarn --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress' + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + install isl-dist.tar.xz $out/isl-dist.tar.xz + + runHook postInstall + ''; + }; +in +# Builds the main `sl` binary and its Python extensions +python3Packages.buildPythonApplication { + pname = "sapling"; + inherit src version; + + sourceRoot = "${src.name}/eden/scm"; + + # Upstream does not commit Cargo.lock + cargoDeps = rustPlatform.importCargoLock { + lockFile = ./Cargo.lock; + outputHashes = { + "abomonation-0.7.3+smallvec1" = "sha256-AxEXR6GC8gHjycIPOfoViP7KceM29p2ZISIt4iwJzvM="; + "cloned-0.1.0" = "sha256-mzAqjM8qovZAd4ZF0GDuD0Ns/UztAO1pAJhukuKc5a0="; + "fb303_core-0.0.0" = "sha256-x8I0Lty+sRclpkNMqTMc29J46z/vMsVwOUS3EX7Shes="; + "fbthrift-0.0.1+unstable" = "sha256-yTS1wkh8tETZ4K43V0G+TbkN5jgSlXT0endDPBHa1Ps="; + "serde_bser-0.3.1" = "sha256-vvMCa6mlcr+xazxZVl2bcF8/r+ufzZmiQ79KofZGWrA="; + }; + }; + postPatch = '' + cp ${./Cargo.lock} Cargo.lock + '' + lib.optionalString (!enableMinimal) '' + # If asked, we optionally patch in a hardcoded path to the + # 'nodejs' package, so that 'sl web' always works. Without the + # patch, 'sl web' will still work if 'nodejs' is in $PATH. + substituteInPlace lib/config/loader/src/builtin_static/core.rs \ + --replace '"#);' $'[web]\nnode-path=${nodejs}/bin/node\n"#);' + ''; + + # Since the derivation builder doesn't have network access to remain pure, + # fetch the artifacts manually and link them. Then replace the hardcoded URLs + # with filesystem paths for the curl calls. + postUnpack = '' + mkdir $sourceRoot/hack_pydeps + ${lib.concatStrings (map (li: "ln -s ${fetchurl li} $sourceRoot/hack_pydeps/${baseNameOf li.url}\n") links)} + sed -i "s|https://files.pythonhosted.org/packages/[[:alnum:]]*/[[:alnum:]]*/[[:alnum:]]*/|file://$NIX_BUILD_TOP/$sourceRoot/hack_pydeps/|g" $sourceRoot/setup.py + ''; + + postInstall = '' + install ${isl}/isl-dist.tar.xz $out/lib/isl-dist.tar.xz + ''; + + postFixup = lib.optionalString stdenv.isLinux '' + wrapProgram $out/bin/sl \ + --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" + ''; + + nativeBuildInputs = [ + curl + pkg-config + myCargoSetupHook + cargo + rustc + ]; + + buildInputs = [ + openssl + ] ++ lib.optionals stdenv.isDarwin [ + curl + libiconv + Cocoa + CoreFoundation + CoreGraphics + CoreServices + Security + WebKit + ]; + + HGNAME = "sl"; + SAPLING_OSS_BUILD = "true"; + SAPLING_VERSION_HASH = versionHash; + + # Python setuptools version 66 and newer does not support upstream Sapling's + # version numbers (e.g. "0.2.20230124-180750-hf8cd450a"). Change the version + # number to something supported by setuptools (e.g. "0.2.20230124"). + # https://github.com/facebook/sapling/issues/571 + SAPLING_VERSION = builtins.elemAt (builtins.split "-" version) 0; + + # just a simple check phase, until we have a running test suite. this should + # help catch issues like lack of a LOCALE_ARCHIVE setting (see GH PR #202760) + doCheck = true; + installCheckPhase = '' + echo -n "testing sapling version; should be \"$SAPLING_VERSION\"... " + $out/bin/sl version | grep -qw "$SAPLING_VERSION" + echo "OK!" + ''; + + # Expose isl to nix repl as sapling.isl. + passthru.isl = isl; + + meta = with lib; { + description = "A Scalable, User-Friendly Source Control System"; + homepage = "https://sapling-scm.com"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ pbar thoughtpolice ]; + platforms = platforms.unix; + mainProgram = "sl"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sapling/deps.json b/nixpkgs/pkgs/applications/version-management/sapling/deps.json new file mode 100644 index 000000000000..adad0c94afbe --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sapling/deps.json @@ -0,0 +1,5 @@ +{ + "links": [], + "version": "0.2.20240116-133042+8acecb66", + "versionHash": "11094621090461381576" +} diff --git a/nixpkgs/pkgs/applications/version-management/sapling/gen-deps.py b/nixpkgs/pkgs/applications/version-management/sapling/gen-deps.py new file mode 100755 index 000000000000..ddab0080f640 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sapling/gen-deps.py @@ -0,0 +1,69 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p cargo -p "python3.withPackages (ps: with ps; [ requests ])" +import json +import pathlib +import re +import tempfile +import os +import shutil +from hashlib import sha1 +from struct import unpack +from subprocess import run +import subprocess + +from requests import get + +# Fetch the latest stable release metadata from GitHub +releaseMetadata = get("https://api.github.com/repos/facebook/sapling/releases/latest").json() +latestTag = releaseMetadata["tag_name"] +latestTarballURL = releaseMetadata["tarball_url"] + +[_tarballHash, sourceDirectory] = run( + ["nix-prefetch-url", "--print-path", "--unpack", latestTarballURL], + check=True, + text=True, + stdout=subprocess.PIPE, +).stdout.rstrip().splitlines() + +def updateCargoLock(): + with tempfile.TemporaryDirectory() as tempDir: + tempDir = pathlib.Path(tempDir) + + # NOTE(strager): We cannot use shutil.tree because it copies the + # read-only permissions. + for dirpath, dirnames, filenames in os.walk(sourceDirectory): + relativeDirpath = os.path.relpath(dirpath, sourceDirectory) + for filename in filenames: + shutil.copy(os.path.join(dirpath, filename), tempDir / relativeDirpath / filename) + for dirname in dirnames: + os.mkdir(tempDir / relativeDirpath / dirname) + + run(["cargo", "fetch"], check=True, cwd=tempDir / "eden" / "scm") + shutil.copy(tempDir / "eden" / "scm" / "Cargo.lock", "Cargo.lock") + +updateCargoLock() + +def nixPrefetchUrl(url): + return run( + ["nix-prefetch-url", "--type", "sha256", url], + check=True, + text=True, + capture_output=True, + ).stdout.rstrip() + + +# Fetch the `setup.py` source and look for instances of assets being downloaded +# from files.pythonhosted.org. +setupPy = (pathlib.Path(sourceDirectory) / "eden/scm/setup.py").read_text() +foundUrls = re.findall(r'(https://files\.pythonhosted\.org/packages/[^\s]+)"', setupPy) + +dataDeps = { + "links": [{"url": url, "sha256": nixPrefetchUrl(url)} for url in foundUrls], + "version": latestTag, + # Find latest's git tag which corresponds to the Sapling version. Also + # needed is a hash of the version, so calculate that here. Taken from + # Sapling source `$root/eden/scm/setup_with_version.py`. + "versionHash": str(unpack(">Q", sha1(latestTag.encode("ascii")).digest()[:8])[0]), +} + +open("deps.json", "w").write(json.dumps(dataDeps, indent=2, sort_keys=True) + "\n") diff --git a/nixpkgs/pkgs/applications/version-management/scmpuff/default.nix b/nixpkgs/pkgs/applications/version-management/scmpuff/default.nix new file mode 100644 index 000000000000..a94099e30478 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/scmpuff/default.nix @@ -0,0 +1,30 @@ +{ lib, buildGoModule, fetchFromGitHub, testers, scmpuff }: + +buildGoModule rec { + pname = "scmpuff"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "mroth"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-+L0W+M8sZdUSCWj9Ftft1gkRRfWMHdxon2xNnotx8Xs="; + }; + + vendorHash = "sha256-7WHVSEz3y1nxWfbxkzkfHhINLC8+snmWknHyUUpNy7c="; + + ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ]; + + passthru.tests.version = testers.testVersion { + package = scmpuff; + command = "scmpuff version"; + }; + + meta = with lib; { + description = "Add numbered shortcuts to common git commands"; + homepage = "https://github.com/mroth/scmpuff"; + license = licenses.mit; + maintainers = with maintainers; [ cpcloud ]; + mainProgram = "scmpuff"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/scriv/default.nix b/nixpkgs/pkgs/applications/version-management/scriv/default.nix new file mode 100644 index 000000000000..3724c55032a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/scriv/default.nix @@ -0,0 +1,59 @@ +{ lib +, python3 +, fetchPypi +, pandoc +, git +, scriv +, testers +}: + +python3.pkgs.buildPythonApplication rec { + pname = "scriv"; + version = "1.5.1"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-MK6f+NFE+ODPOUxOHTeVQvGzgjdnZClVtU7EDcALMrY="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + attrs + click + click-log + jinja2 + markdown-it-py + requests + ] ++ lib.optionals (python3.pythonOlder "3.11") [ + tomli + ]; + + nativeCheckInputs = with python3.pkgs; [ + pytestCheckHook + coverage + freezegun + pudb + pytest-mock + responses + pyyaml + + pandoc + git + ]; + disabledTests = [ + # assumes we have checked out the full repo (including remotes) + "test_real_get_github_repos" + ]; + + passthru.tests = { + version = testers.testVersion { package = scriv; }; + }; + + meta = { + description = "Command-line tool for helping developers maintain useful changelogs."; + homepage = "https://github.com/nedbat/scriv"; + changelog = "https://github.com/nedbat/scriv/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ amesgen ]; + mainProgram = "scriv"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/silver-platter/default.nix b/nixpkgs/pkgs/applications/version-management/silver-platter/default.nix new file mode 100644 index 000000000000..f1653cf10389 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/silver-platter/default.nix @@ -0,0 +1,53 @@ +{ buildPythonApplication +, lib +, stdenv +, fetchFromGitHub +, pkg-config +, setuptools +, setuptools-rust +, rustPlatform +, cargo +, rustc +, breezy +, dulwich +, jinja2 +, libiconv +, openssl +, pyyaml +, ruamel-yaml +}: + +buildPythonApplication rec { + pname = "silver-platter"; + version = "0.5.20"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jelmer"; + repo = "silver-platter"; + rev = version; + hash = "sha256-k+C4jrC4FO/yy9Eb6x4lv1zyyp/eGkpMcDqZ0KoxfBs="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-+EUj6iBnHF4zlOAAfaHy5V/z6CCD/LFksBClE4FaHHc="; + }; + + propagatedBuildInputs = [ setuptools breezy dulwich jinja2 pyyaml ruamel-yaml ]; + nativeBuildInputs = [ setuptools-rust rustPlatform.cargoSetupHook cargo rustc ] + ++ lib.optionals stdenv.isLinux [ pkg-config ]; + buildInputs = lib.optionals stdenv.isLinux [ openssl ] + ++ lib.optionals stdenv.isDarwin [ libiconv ]; + + pythonImportsCheck = [ "silver_platter" ]; + + meta = with lib; { + description = "Automate the creation of merge proposals for scriptable changes"; + homepage = "https://jelmer.uk/code/silver-platter"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ lukegb ]; + mainProgram = "svp"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix new file mode 100644 index 000000000000..72d69678fb75 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix @@ -0,0 +1,94 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, srht +, redis +, celery +, pyyaml +, markdown +, ansi2html +, lxml +, python +, unzip +, pip +, pythonOlder +, setuptools +}: +let + version = "0.89.15"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.39"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "builds.sr.ht"; + rev = version; + hash = "sha256-rmNaBnTPDDQO/ImkGkMwW8fyjQyBUBchTEnbtAK24pw="; + }; + + buildsrht-api = buildGoModule ({ + inherit src version; + pname = "buildsrht-api"; + modRoot = "api"; + vendorHash = "sha256-dwpuB+aYqzhGSdGVq/F9FTdHWMBkGMtVuZ7I3hB3b+Q="; + } // gqlgen); + + buildsrht-worker = buildGoModule ({ + inherit src version; + pname = "buildsrht-worker"; + modRoot = "worker"; + vendorHash = "sha256-dwpuB+aYqzhGSdGVq/F9FTdHWMBkGMtVuZ7I3hB3b+Q="; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "buildsrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api worker" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + srht + redis + celery + pyyaml + markdown + # Unofficial dependencies + ansi2html + lxml + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + mkdir -p $out/lib + mkdir -p $out/bin/builds.sr.ht + + cp -r images $out/lib + cp contrib/submit_image_build $out/bin/builds.sr.ht + ln -s ${buildsrht-api}/bin/api $out/bin/buildsrht-api + ln -s ${buildsrht-worker}/bin/worker $out/bin/buildsrht-worker + ''; + + pythonImportsCheck = [ "buildsrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht"; + description = "Continuous integration service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix new file mode 100644 index 000000000000..c0180cf805fa --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix @@ -0,0 +1,94 @@ +{ lib +, fetchFromSourcehut +, buildPythonPackage +, flask +, humanize +, sqlalchemy +, sqlalchemy-utils +, psycopg2 +, markdown +, mistletoe +, bleach +, requests +, beautifulsoup4 +, pygments +, cryptography +, prometheus-client +, alembic +, redis +, celery +, html5lib +, importlib-metadata +, tinycss2 +, sassc +, pythonOlder +, minify +, setuptools +}: + +buildPythonPackage rec { + pname = "srht"; + version = "0.71.8"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "core.sr.ht"; + rev = version; + hash = "sha256-rDpm2HJOWScvIxOmHcat6y4CWdBE9T2gE/jZskYAFB0="; + fetchSubmodules = true; + }; + + patches = [ + # Fix Unix socket support in RedisQueueCollector + patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch + ]; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedNativeBuildInputs = [ + sassc + minify + ]; + + propagatedBuildInputs = [ + flask + humanize + sqlalchemy + sqlalchemy-utils + psycopg2 + markdown + mistletoe + bleach + requests + beautifulsoup4 + pygments + cryptography + prometheus-client + alembic + redis + celery + # Used transitively through beautifulsoup4 + html5lib + # Used transitively trough bleach.css_sanitizer + tinycss2 + # Used by srht.debug + importlib-metadata + ]; + + PKGVER = version; + + dontUseSetuptoolsCheck = true; + pythonImportsCheck = [ "srht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/srht"; + description = "Core modules for sr.ht"; + license = licenses.bsd3; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix new file mode 100644 index 000000000000..4a1311d578be --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix @@ -0,0 +1,110 @@ +{ lib +, stdenv +, python3 +, callPackage +, recurseIntoAttrs +, nixosTests +, config +, fetchPypi +}: + +# To expose the *srht modules, they have to be a python module so we use `buildPythonModule` +# Then we expose them through all-packages.nix as an application through `toPythonApplication` +# https://github.com/NixOS/nixpkgs/pull/54425#discussion_r250688781 +let + python = python3.override { + packageOverrides = self: super: { + srht = self.callPackage ./core.nix { }; + + buildsrht = self.callPackage ./builds.nix { }; + gitsrht = self.callPackage ./git.nix { }; + hgsrht = self.callPackage ./hg.nix { }; + hubsrht = self.callPackage ./hub.nix { }; + listssrht = self.callPackage ./lists.nix { }; + mansrht = self.callPackage ./man.nix { }; + metasrht = self.callPackage ./meta.nix { }; + pastesrht = self.callPackage ./paste.nix { }; + todosrht = self.callPackage ./todo.nix { }; + + scmsrht = self.callPackage ./scm.nix { }; + + # sourcehut is not (yet) compatible with SQLAlchemy 2.x + sqlalchemy = super.sqlalchemy_1_4; + + # sourcehut is not (yet) compatible with flask-sqlalchemy 3.x + flask-sqlalchemy = super.flask-sqlalchemy.overridePythonAttrs (oldAttrs: rec { + version = "2.5.1"; + format = "setuptools"; + src = fetchPypi { + pname = "Flask-SQLAlchemy"; + inherit version; + hash = "sha256-K9pEtD58rLFdTgX/PMH4vJeTbMRkYjQkECv8LDXpWRI="; + }; + propagatedBuildInputs = with self; [ + flask + sqlalchemy + ]; + }); + + # flask-sqlalchemy 2.x requires flask 2.x + flask = super.flask.overridePythonAttrs (oldAttrs: rec { + version = "2.3.3"; + src = fetchPypi { + inherit (oldAttrs) pname; + inherit version; + hash = "sha256-CcNHqSqn/0qOfzIGeV8w2CZlS684uHPQdEzVccpgnvw="; + }; + }); + + # flask 2.x requires werkzeug 2.x + werkzeug = super.werkzeug.overridePythonAttrs (oldAttrs: rec { + version = "2.3.8"; + src = fetchPypi { + inherit (oldAttrs) pname; + inherit version; + hash = "sha256-VUslfHS763oNJUFgpPj/4YUkP1KlIDUGC3Ycpi2XfwM="; + }; + }); + + # sourcehut is not (yet) compatible with factory-boy 3.x + factory-boy = super.factory-boy.overridePythonAttrs (oldAttrs: rec { + version = "2.12.0"; + src = fetchPypi { + pname = "factory_boy"; + inherit version; + hash = "sha256-+vSNYIoXNfDQo8nL9TbWT5EytUfa57pFLE2Zp56Eo3A="; + }; + nativeCheckInputs = (with super; [ + django + mongoengine + pytestCheckHook + ]) ++ (with self; [ + sqlalchemy + flask + flask-sqlalchemy + ]); + postPatch = ""; + }); + }; + }; +in +with python.pkgs; recurseIntoAttrs ({ + inherit python; + coresrht = toPythonApplication srht; + buildsrht = toPythonApplication buildsrht; + gitsrht = toPythonApplication gitsrht; + hgsrht = toPythonApplication hgsrht; + hubsrht = toPythonApplication hubsrht; + listssrht = toPythonApplication listssrht; + mansrht = toPythonApplication mansrht; + metasrht = toPythonApplication metasrht; + pagessrht = callPackage ./pages.nix { }; + pastesrht = toPythonApplication pastesrht; + todosrht = toPythonApplication todosrht; + passthru.tests = { + nixos-sourcehut = nixosTests.sourcehut; + }; +} // lib.optionalAttrs config.allowAliases { + # Added 2022-10-29 + dispatchsrht = throw "dispatch is deprecated. See https://sourcehut.org/blog/2022-08-01-dispatch-deprecation-plans/ for more information."; +}) diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix new file mode 100644 index 000000000000..42ec1589a643 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix @@ -0,0 +1,32 @@ +{ unzip +, gqlgenVersion +}: +{ + overrideModAttrs = (_: { + # No need to workaround -trimpath: it's not used in goModules, + # but do download `go generate`'s dependencies nonetheless. + preBuild = '' + if [ -d ./loaders ]; then go generate ./loaders; fi + if [ -d ./graph ]; then go generate ./graph; fi + ''; + }); + + # Workaround this error: + # go: git.sr.ht/~emersion/go-emailthreads@v0.0.0-20220412093310-4fd792e343ba: module lookup disabled by GOPROXY=off + # tidy failed: go mod tidy failed: exit status 1 + # graph/generate.go:10: running "go": exit status 1 + proxyVendor = true; + + nativeBuildInputs = [ unzip ]; + + # Workaround -trimpath in the package derivation: + # https://github.com/99designs/gqlgen/issues/1537 + # This is to give `go generate ./graph` access to gqlgen's *.gotpl files + # If it fails, the gqlgenVersion may have to be updated. + preBuild = '' + unzip ''${GOPROXY#"file://"}/github.com/99designs/gqlgen/@v/v${gqlgenVersion}.zip + if [ -d ./loaders ]; then go generate ./loaders; fi + if [ -d ./graph ]; then go generate ./graph; fi + rm -rf github.com + ''; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix new file mode 100644 index 000000000000..d7ffc0e2cf83 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix @@ -0,0 +1,127 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, python +, srht +, scmsrht +, pygit2 +, minio +, pythonOlder +, unzip +, pip +, setuptools +}: +let + version = "0.85.9"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.42"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "git.sr.ht"; + rev = version; + hash = "sha256-tmbBw6x3nqN9nRIR3xOXQ+L5EACXLQYLXQYK3lsOsAI="; + }; + + gitApi = buildGoModule ({ + inherit src version; + pname = "gitsrht-api"; + modRoot = "api"; + vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc="; + } // gqlgen); + + gitDispatch = buildGoModule ({ + inherit src version; + pname = "gitsrht-dispatch"; + modRoot = "gitsrht-dispatch"; + vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc="; + + postPatch = '' + substituteInPlace gitsrht-dispatch/main.go \ + --replace /var/log/gitsrht-dispatch /var/log/sourcehut/gitsrht-dispatch + ''; + } // gqlgen); + + gitKeys = buildGoModule ({ + inherit src version; + pname = "gitsrht-keys"; + modRoot = "gitsrht-keys"; + vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc="; + + postPatch = '' + substituteInPlace gitsrht-keys/main.go \ + --replace /var/log/gitsrht-keys /var/log/sourcehut/gitsrht-keys + ''; + } // gqlgen); + + gitShell = buildGoModule ({ + inherit src version; + pname = "gitsrht-shell"; + modRoot = "gitsrht-shell"; + vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc="; + + postPatch = '' + substituteInPlace gitsrht-shell/main.go \ + --replace /var/log/gitsrht-shell /var/log/sourcehut/gitsrht-shell + ''; + } // gqlgen); + + gitUpdateHook = buildGoModule ({ + inherit src version; + pname = "gitsrht-update-hook"; + modRoot = "gitsrht-update-hook"; + vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc="; + + postPatch = '' + substituteInPlace gitsrht-update-hook/main.go \ + --replace /var/log/gitsrht-update-hook /var/log/sourcehut/gitsrht-update-hook + ''; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "gitsrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api gitsrht-dispatch gitsrht-keys gitsrht-shell gitsrht-update-hook" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + srht + scmsrht + pygit2 + minio + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + mkdir -p $out/bin + ln -s ${gitApi}/bin/api $out/bin/gitsrht-api + ln -s ${gitDispatch}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch + ln -s ${gitKeys}/bin/gitsrht-keys $out/bin/gitsrht-keys + ln -s ${gitShell}/bin/gitsrht-shell $out/bin/gitsrht-shell + ln -s ${gitUpdateHook}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook + ''; + + pythonImportsCheck = [ "gitsrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht"; + description = "Git repository hosting service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix new file mode 100644 index 000000000000..3e7e1f55c65a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix @@ -0,0 +1,93 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, srht +, python-hglib +, scmsrht +, unidiff +, python +, unzip +, pip +, pythonOlder +, setuptools +}: + +let + version = "0.33.0"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; }; + + pyproject = true; + + disabled = pythonOlder "3.7"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "hg.sr.ht"; + rev = version; + hash = "sha256-+BYeE+8dXY/MLLYyBBLD+eKqmrPiKyyCGIZLkCPzNYM="; + vc = "hg"; + }; + + hgsrht-api = buildGoModule ({ + inherit src version; + pname = "hgsrht-api"; + modRoot = "api"; + vendorHash = "sha256-K+KMhcvkG/qeQTnlHS4xhLCcvBQNNp2DcScJPm8Dbic="; + } // gqlgen); + + hgsrht-keys = buildGoModule { + inherit src version; + pname = "hgsrht-keys"; + modRoot = "hgsrht-keys"; + vendorHash = "sha256-7ti8xCjSrxsslF7/1X/GY4FDl+69hPL4UwCDfjxmJLU="; + + postPatch = '' + substituteInPlace hgsrht-keys/main.go \ + --replace /var/log/hgsrht-keys /var/log/sourcehut/hgsrht-keys + ''; + }; +in +buildPythonPackage rec { + inherit src version; + pname = "hgsrht"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api hgsrht-keys" "" + + substituteInPlace hgsrht-shell \ + --replace /var/log/hgsrht-shell /var/log/sourcehut/hgsrht-shell + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + python-hglib + scmsrht + srht + unidiff + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + ln -s ${hgsrht-api}/bin/api $out/bin/hgsrht-api + ln -s ${hgsrht-keys}/bin/hgsrht-keys $out/bin/hgsrht-keys + ''; + + pythonImportsCheck = [ "hgsrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/hg.sr.ht"; + description = "Mercurial repository hosting service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix new file mode 100644 index 000000000000..4a0d2cda8931 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix @@ -0,0 +1,76 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, python +, srht +, setuptools +, pip +, pyyaml +, pythonOlder +, unzip +}: + +let + version = "0.17.7"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.43"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "hub.sr.ht"; + rev = version; + hash = "sha256-IyY7Niy/vZSAXjYZMlxY6uuQ8nH/4yT4+MaRjHtl6G4="; + }; + + hubsrht-api = buildGoModule ({ + inherit src version; + pname = "hubsrht-api"; + modRoot = "api"; + vendorHash = "sha256-GVN11nEJqIHh8MtKvIXe4zcUwJph9eTSkJ2R+ufD+ic="; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "hubsrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile --replace "all: api" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + srht + pyyaml + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + ln -s ${hubsrht-api}/bin/api $out/bin/hubsrht-api + ''; + + + # Module has no tests + doCheck = false; + + pythonImportsCheck = [ + "hubsrht" + ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht"; + description = "Project hub service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix new file mode 100644 index 000000000000..77d499f695e4 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix @@ -0,0 +1,78 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, srht +, aiosmtpd +, asyncpg +, pygit2 +, emailthreads +, python +, unzip +, pip +, pythonOlder +, setuptools +}: + +let + version = "0.57.18"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "lists.sr.ht"; + rev = version; + hash = "sha256-l+QPocnwHTjrU+M0wnm4tBrbz8KmSb6DovC+skuAnLc="; + }; + + listssrht-api = buildGoModule ({ + inherit src version; + pname = "listssrht-api"; + modRoot = "api"; + vendorHash = "sha256-UeVs/+uZNtv296bzXIBio2wcg3Uzu3fBM4APzF9O0hY="; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "listssrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + srht + aiosmtpd + asyncpg + pygit2 + # Unofficial dependency + emailthreads + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + ln -s ${listssrht-api}/bin/api $out/bin/listssrht-api + ''; + + pythonImportsCheck = [ "listssrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht"; + description = "Mailing list service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix new file mode 100644 index 000000000000..f5cd6be139ac --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix @@ -0,0 +1,70 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, srht +, pygit2 +, python +, unzip +, pip +, pythonOlder +, setuptools +}: + +let + version = "0.16.5"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.43"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "man.sr.ht"; + rev = version; + hash = "sha256-JFMtif2kIE/fs5PNcQtkJikAFNszgZTU7BG/8fTncTI="; + }; + + mansrht-api = buildGoModule ({ + inherit src version; + pname = "mansrht-api"; + modRoot = "api"; + vendorHash = "sha256-GVN11nEJqIHh8MtKvIXe4zcUwJph9eTSkJ2R+ufD+ic="; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "mansrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile --replace "all: api" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + srht + pygit2 + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + ln -s ${mansrht-api}/bin/api $out/bin/mansrht-api + ''; + + pythonImportsCheck = [ "mansrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht"; + description = "Wiki service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix new file mode 100644 index 000000000000..8ae078bea5f1 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix @@ -0,0 +1,85 @@ +{ lib +, fetchFromSourcehut +, buildPythonPackage +, buildGoModule +, alembic +, bcrypt +, dnspython +, qrcode +, redis +, srht +, stripe +, prometheus-client +, zxcvbn +, python +, unzip +, pip +, pythonOlder +, setuptools +}: +let + version = "0.69.8"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.43"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "meta.sr.ht"; + rev = version; + hash = "sha256-K7p6cytkPYgUuYr7BVfU/+sVbSr2YEmreIDnTatUMyk="; + }; + + metasrht-api = buildGoModule ({ + inherit src version; + pname = "metasrht-api"; + modRoot = "api"; + vendorHash = "sha256-vIkUK1pigVU8vZL5xpHLeinOga5eXXHTuDkHxwUz6uM="; + } // gqlgen); +in +buildPythonPackage rec { + pname = "metasrht"; + inherit version src; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + alembic + bcrypt + dnspython + qrcode + redis + srht + stripe + prometheus-client + zxcvbn + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + mkdir -p $out/bin + ln -s ${metasrht-api}/bin/api $out/bin/metasrht-api + ''; + + pythonImportsCheck = [ "metasrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht"; + description = "Account management service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix new file mode 100644 index 000000000000..5fc140548dc7 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix @@ -0,0 +1,43 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, unzip +}: + +buildGoModule (rec { + pname = "pagessrht"; + version = "0.15.7"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "pages.sr.ht"; + rev = version; + hash = "sha256-Lobuf12ybSO7Y4ztOLMFW0dmPFaBSEPCy4Nmh89tylI="; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: server" "" + + # fix build failure due to unused import + substituteInPlace server.go \ + --replace-warn ' "fmt"' "" + ''; + + vendorHash = "sha256-9hpOkP6AYSZe7MW1mrwFEKq7TvVt6OcF6eHWY4jARuU="; + + postInstall = '' + mkdir -p $out/share/sql/ + cp -r -t $out/share/sql/ schema.sql migrations + ''; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/pages.sr.ht"; + description = "Web hosting service for the sr.ht network"; + mainProgram = "pages.sr.ht"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; + # There is no ./loaders but this does not cause troubles + # to go generate +} // import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.42"; }) diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix new file mode 100644 index 000000000000..b7e662492896 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix @@ -0,0 +1,72 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, srht +, pip +, pyyaml +, python +, pythonOlder +, setuptools +, unzip +}: + +let + version = "0.15.4"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "paste.sr.ht"; + rev = version; + hash = "sha256-M38hAMRdMzcqxJv7j7foOIYEImr/ZYz/lbYOF9R9g2M="; + }; + + pastesrht-api = buildGoModule ({ + inherit src version; + pname = "pastesrht-api"; + modRoot = "api"; + vendorHash = "sha256-vt5nSPcx+Y/SaWcqjV38DTL3ZtzmdjbkJYMv5Fhhnq4="; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "pastesrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api" "" + ''; + + nativeBuildInputs = [ + pip + setuptools + ]; + + propagatedBuildInputs = [ + srht + pyyaml + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + mkdir -p $out/bin + ln -s ${pastesrht-api}/bin/api $out/bin/pastesrht-api + ''; + + pythonImportsCheck = [ "pastesrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht"; + description = "Ad-hoc text file hosting service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu nessdoor christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch b/nixpkgs/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch new file mode 100644 index 000000000000..889331f3e07f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/patches/redis-socket/core/0001-Fix-Unix-socket-support-in-RedisQueueCollector.patch @@ -0,0 +1,42 @@ +From 76dd636151735671be74ba9d55f773e190e22827 Mon Sep 17 00:00:00 2001 +From: Julien Moutinho <julm+srht@sourcephile.fr> +Date: Fri, 13 May 2022 22:40:46 +0200 +Subject: [PATCH core.sr.ht] Fix Unix socket support in RedisQueueCollector + +The broker URL is not necessarily in the format expected by Redis.from_url + +Especially, Redis.from_url supports this format for Unix sockets: + unix:///run/redis-sourcehut-metasrht/redis.sock?db=0 +See https://redis-py.readthedocs.io/en/stable/#redis.ConnectionPool.from_url + +Whereas Celery+Kombu support Redis but also other transports +and thus expect another scheme: + redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1 +See https://docs.celeryproject.org/en/stable/userguide/configuration.html#redis-backend-settings +and https://github.com/celery/celery/blob/e5d99801e4b56a02af4a2e183879c767228d2817/celery/backends/redis.py#L299-L352 +and https://github.com/celery/kombu/blob/master/kombu/utils/url.py +--- + srht/metrics.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/srht/metrics.py b/srht/metrics.py +index 68caf8e..2df5777 100644 +--- a/srht/metrics.py ++++ b/srht/metrics.py +@@ -1,11 +1,12 @@ + import time ++from celery import Celery + from prometheus_client.metrics_core import GaugeMetricFamily + from redis import Redis, ResponseError + + + class RedisQueueCollector: + def __init__(self, broker, name, documentation, queue_name="celery"): +- self.redis = Redis.from_url(broker) ++ self.redis = Celery("collector", broker=broker).connection_for_read().channel().client + self.queue_name = queue_name + self.name = name + self.documentation = documentation +-- +2.35.1 + diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix new file mode 100644 index 000000000000..a60eb4b74788 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix @@ -0,0 +1,49 @@ +{ lib +, fetchFromSourcehut +, buildPythonPackage +, srht +, pyyaml +, buildsrht +, pythonOlder +, setuptools +}: + +buildPythonPackage rec { + pname = "scmsrht"; + version = "0.22.24"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "scm.sr.ht"; + rev = version; + hash = "sha256-9IgMmYzInfrten7z8bznlSFJlUjHf3k3z76lkP6tP50="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + srht + pyyaml + buildsrht + ]; + + preBuild = '' + export PKGVER=${version} + ''; + + dontUseSetuptoolsCheck = true; + + pythonImportsCheck = [ "scmsrht" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/scm.sr.ht"; + description = "Shared support code for sr.ht source control services."; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix new file mode 100644 index 000000000000..1f8172728391 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix @@ -0,0 +1,78 @@ +{ lib +, fetchFromSourcehut +, buildGoModule +, buildPythonPackage +, srht +, alembic +, pytest +, factory-boy +, python +, unzip +, pythonOlder +, setuptools +}: + +let + version = "0.75.10"; + gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; }; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "todo.sr.ht"; + rev = version; + hash = "sha256-3dVZdupsygM7/6T1Mn7yRc776aa9pKgwF0hgZX6uVQ0="; + }; + + todosrht-api = buildGoModule ({ + inherit src version; + pname = "todosrht-api"; + modRoot = "api"; + vendorHash = "sha256-fImOQLnQLHTrg5ikuYRZ+u+78exAiYA19DGQoUjQBOM="; + } // gqlgen); +in +buildPythonPackage rec { + inherit src version; + pname = "todosrht"; + pyproject = true; + + disabled = pythonOlder "3.7"; + + postPatch = '' + substituteInPlace Makefile \ + --replace "all: api" "" + ''; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + srht + alembic + ]; + + preBuild = '' + export PKGVER=${version} + export SRHT_PATH=${srht}/${python.sitePackages}/srht + ''; + + postInstall = '' + ln -s ${todosrht-api}/bin/api $out/bin/todosrht-api + ''; + + # pytest tests fail + nativeCheckInputs = [ + pytest + factory-boy + ]; + + dontUseSetuptoolsCheck = true; + pythonImportsCheck = [ "todosrht" ]; + + meta = with lib; { + homepage = "https://todo.sr.ht/~sircmpwn/todo.sr.ht"; + description = "Ticket tracking service for the sr.ht network"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ eadwu christoph-heiss ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh b/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh new file mode 100755 index 000000000000..e5dd0b5baed0 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh @@ -0,0 +1,95 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p gnused git mercurial common-updater-scripts +set -eux -o pipefail + +cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 +root=../../../.. +tmp=$(mktemp -d) +trap 'rm -rf "$tmp"' EXIT + +attr_path() { + case "$1" in + pagessrht) printf "sourcehut.$1";; + *) printf "sourcehut.python.pkgs.$1";; + esac +} + +default() { + local p="$(attr_path "$1")" + (cd "$root" && nix-instantiate --eval --strict -A $p.meta.position | sed -re 's/^"(.*):[0-9]+"$/\1/') +} + +version() { + local p="$(attr_path "$1")" + (cd "$root" && nix-instantiate --eval --strict -A $p.version | tr -d '"') +} + +src_url() { + local p="$(attr_path "$1")" + nix-instantiate --eval --strict --expr " with import $root {}; let src = $p.drvAttrs.src; in src.meta.homepage" | tr -d '"' +} + +get_latest_version() { + src="$(src_url "$1")" + rm -rf "$tmp" + if [ "$1" = "hgsrht" ]; then + hg clone "$src" "$tmp" >/dev/null + printf "%s %s\n" \ + "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')" \ + "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)" + else + git clone "$src" "$tmp" >/dev/null + printf "%s %s\n" \ + "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")" \ + "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)" + fi +} + +update_version() { + default_nix="$(default "$1")" + oldVersion="$(version "$1")" + read -r version gqlgen_ver < <(get_latest_version "$1") + local p="$(attr_path "$1")" + + (cd "$root" && update-source-version "$p" "$version") + + # update `gqlgenVersion` if necessary + old_gqlgen_ver="$(sed -ne 's/^.*gqlgenVersion = "\(.*\)".*$/\1/p' "$default_nix")" + sed -ri "s|gqlgenVersion = \"$old_gqlgen_ver\";|gqlgenVersion = \"$gqlgen_ver\";|w /dev/stdout" "$default_nix" + + # Update vendorHash of Go modules + retry=true + while "$retry"; do + retry=false; + exec < <(exec nix -L build -f "$root" sourcehut.python.pkgs."$1" 2>&1) + while IFS=' :' read -r origin hash; do + case "$origin" in + (expected|specified) oldHash="$hash";; + (got) sed -i "s|$oldHash|$hash|" "$default_nix"; retry=true; break;; + (*) printf >&2 "%s\n" "$origin${hash:+:$hash}" + esac + done + done + + if [ "$oldVersion" != "$version" ] || [ "$old_gqlgen_ver" != "$gqlgen_ver" ]; then + git add "$default_nix" + git commit -m "sourcehut.$1: $oldVersion -> $version" + fi +} + +if [ $# -gt 0 ]; then + services=("$@") +else + # Beware that some packages must be updated before others, + # eg. buildsrht must be updated before gitsrht, + # otherwise this script would enter an infinite loop + # because the reported $oldHash to be changed + # may not actually be in $default_nix + # but in the file of one of its dependencies. + services=( "srht" "scmsrht" "buildsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht" + "metasrht" "pagessrht" "pastesrht" "todosrht" ) +fi + +for service in "${services[@]}"; do + update_version "$service" +done diff --git a/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix b/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix new file mode 100644 index 000000000000..ef7da9d880bf --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix @@ -0,0 +1,95 @@ +{ + appindicator-sharp, + bash, + coreutils, + fetchFromGitHub, + git, + git-lfs, + glib, + gtk-sharp-3_0, + lib, + makeWrapper, + meson, + mono, + ninja, + notify-sharp, + openssh, + openssl, + pkg-config, + stdenv, + symlinkJoin, + webkit2-sharp, + xdg-utils, +}: + +stdenv.mkDerivation rec { + pname = "sparkleshare"; + version = "3.38"; + + src = fetchFromGitHub { + owner = "hbons"; + repo = "SparkleShare"; + rev = version; + sha256 = "1a9csflmj96iyr1l0mdm3ziv1bljfcjnzm9xb2y4qqk7ha2p6fbq"; + }; + + nativeBuildInputs = [ + makeWrapper + meson + mono + ninja + pkg-config + ]; + + buildInputs = [ + appindicator-sharp + gtk-sharp-3_0 + notify-sharp + webkit2-sharp + ]; + + patchPhase = '' + # SparkleShare's default desktop file falls back to flatpak. + sed -ie "s_^Exec=.*_Exec=$out/bin/sparkleshare_" SparkleShare/Linux/SparkleShare.Autostart.desktop + + # Nix will manage the icon cache. + echo '#!/bin/sh' >scripts/post-install.sh + ''; + + postInstall = '' + wrapProgram $out/bin/sparkleshare \ + --set PATH ${symlinkJoin { + name = "mono-path"; + paths = [ + bash + coreutils + git + git-lfs + glib + mono + openssh + openssl + xdg-utils + ]; + }}/bin \ + --set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [ + appindicator-sharp + gtk-sharp-3_0 + webkit2-sharp + ]} \ + --set LD_LIBRARY_PATH ${lib.makeLibraryPath [ + appindicator-sharp + gtk-sharp-3_0.gtk3 + webkit2-sharp + webkit2-sharp.webkitgtk + ]} + ''; + + meta = { + description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows"; + homepage = "https://sparkleshare.org"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ kevincox ]; + mainProgram = "sparkleshare"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/srvc/default.nix b/nixpkgs/pkgs/applications/version-management/srvc/default.nix new file mode 100644 index 000000000000..c2dc0d8bd2be --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/srvc/default.nix @@ -0,0 +1,34 @@ +{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin, git }: + +rustPlatform.buildRustPackage rec { + pname = "srvc"; + version = "0.20.0"; + + src = fetchFromGitHub { + owner = "insilica"; + repo = "rs-srvc"; + rev = "v${version}"; + hash = "sha256-pnlbMU/uoP9ZK8kzTRYTMY9+X9VIKJHwW2qMXXD8Udg="; + }; + + cargoHash = "sha256-+m8WJMn1aq3FBDO5c/ZwbcK2G+UE5pSwHTgOl2s6pDw="; + + buildInputs = lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.CoreServices + darwin.apple_sdk.frameworks.Security + ]; + + nativeCheckInputs = [ git ]; + + # remove timeouts in tests to make them less flaky + TEST_SRVC_DISABLE_TIMEOUT = 1; + + meta = with lib; { + description = "Sysrev version control"; + homepage = "https://github.com/insilica/rs-srvc"; + changelog = "https://github.com/insilica/rs-srvc/blob/v${version}/CHANGELOG.md"; + license = licenses.asl20; + maintainers = with maintainers; [ john-shaffer ]; + mainProgram = "sr"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/stgit/default.nix b/nixpkgs/pkgs/applications/version-management/stgit/default.nix new file mode 100644 index 000000000000..94583ba93bc8 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/stgit/default.nix @@ -0,0 +1,89 @@ +{ stdenv +, lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, installShellFiles +, makeWrapper +, asciidoc +, docbook_xsl +, docbook_xml_dtd_45 +, xmlto +, curl +, git +, perl +, darwin +, libiconv +}: + +rustPlatform.buildRustPackage rec { + pname = "stgit"; + version = "2.4.6"; + + src = fetchFromGitHub { + owner = "stacked-git"; + repo = "stgit"; + rev = "v${version}"; + hash = "sha256-ZQU9AkemAMpMb2GhdfHaF6r6r6MbMXnmA0pq6Zq9Sek="; + }; + cargoHash = "sha256-DHTo0jRZlLmw/B042uqzpMLUhBwm+sbFj9pze5l1Kpk="; + + nativeBuildInputs = [ + pkg-config installShellFiles makeWrapper asciidoc xmlto docbook_xsl + docbook_xml_dtd_45 perl + ]; + buildInputs = [ curl ]; + + nativeCheckInputs = [ + git perl + ] ++ lib.optionals stdenv.isDarwin [ + darwin.system_cmds libiconv + ]; + + postPatch = '' + for f in Documentation/*.xsl; do + substituteInPlace $f \ + --replace http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl \ + ${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl \ + --replace http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \ + ${docbook_xsl}/xml/xsl/docbook/html/docbook.xsl + done + + substituteInPlace Documentation/texi.xsl \ + --replace http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd \ + ${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd + ''; + + makeFlags = [ + "prefix=${placeholder "out"}" + "XMLTO_EXTRA=--skip-validation" + "PERL_PATH=${perl}/bin/perl" + ]; + + dontCargoBuild = true; + buildFlags = [ "all" ]; + + dontCargoCheck = true; + checkTarget = "test"; + + dontCargoInstall = true; + installTargets = [ "install" "install-man" "install-html" ]; + + postInstall = '' + wrapProgram $out/bin/stg --prefix PATH : ${lib.makeBinPath [ git ]} + + installShellCompletion --cmd stg \ + --fish completion/stg.fish \ + --bash completion/stgit.bash \ + --zsh completion/stgit.zsh + ''; + + meta = with lib; { + description = "A patch manager implemented on top of Git"; + homepage = "https://stacked-git.github.io/"; + license = licenses.gpl2Only; + platforms = platforms.unix; + maintainers = with maintainers; [ jshholland ]; + mainProgram = "stg"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/subgit/default.nix b/nixpkgs/pkgs/applications/version-management/subgit/default.nix new file mode 100644 index 000000000000..3aca6673589c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/subgit/default.nix @@ -0,0 +1,27 @@ +{ lib, stdenv, fetchurl, unzip, makeWrapper, jre }: + +stdenv.mkDerivation rec { + pname = "subgit"; + version = "3.3.17"; + + meta = { + description = "A tool for a smooth, stress-free SVN to Git migration"; + longDescription = "Create writable Git mirror of a local or remote Subversion repository and use both Subversion and Git as long as you like. You may also do a fast one-time import from Subversion to Git."; + homepage = "https://subgit.com"; + license = lib.licenses.unfree; + platforms = lib.platforms.all; + }; + + nativeBuildInputs = [ unzip makeWrapper ]; + + installPhase = '' + mkdir $out; + cp -r bin lib $out; + wrapProgram $out/bin/subgit --set JAVA_HOME ${jre}; + ''; + + src = fetchurl { + url = "https://subgit.com/download/subgit-${version}.zip"; + sha256 = "sha256-u8YhaF4zOlDpEYd/0VUN8k4X8E1G4PB+UkJjBfQKkJY="; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix b/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix new file mode 100644 index 000000000000..39157edf809b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix @@ -0,0 +1,223 @@ +{ + buildVersion, + dev ? false, + aarch64sha256, + x64sha256, +}: + +{ + fetchurl, + lib, + stdenv, + xorg, + glib, + libGL, + glibcLocales, + gtk3, + cairo, + pango, + libredirect, + makeWrapper, + wrapGAppsHook, + pkexecPath ? "/run/wrappers/bin/pkexec", + writeShellScript, + common-updater-scripts, + curl, + gnugrep, + coreutils, +}: + +let + pnameBase = "sublime-merge"; + packageAttribute = "sublime-merge${lib.optionalString dev "-dev"}"; + binaries = [ + "sublime_merge" + crashHandlerBinary + "git-credential-sublime" + "ssh-askpass-sublime" + ]; + primaryBinary = "sublime_merge"; + primaryBinaryAliases = [ + "smerge" + ]; + crashHandlerBinary = + if lib.versionAtLeast buildVersion "2086" then "crash_handler" else "crash_reporter"; + downloadUrl = + arch: "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz"; + versionUrl = "https://www.sublimemerge.com/${if dev then "dev" else "download"}"; + versionFile = builtins.toString ./default.nix; + + neededLibraries = [ + xorg.libX11 + glib + gtk3 + cairo + pango + curl + ]; + + redirects = [ + "/usr/bin/pkexec=${pkexecPath}" + "/bin/true=${coreutils}/bin/true" + ]; +in +let + binaryPackage = stdenv.mkDerivation rec { + pname = "${pnameBase}-bin"; + version = buildVersion; + + src = passthru.sources.${stdenv.hostPlatform.system}; + + dontStrip = true; + dontPatchELF = true; + buildInputs = [ + glib + # for GSETTINGS_SCHEMAS_PATH + gtk3 + ]; + nativeBuildInputs = [ + makeWrapper + wrapGAppsHook + ]; + + buildPhase = '' + runHook preBuild + + for binary in ${builtins.concatStringsSep " " binaries}; do + patchelf \ + --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${lib.makeLibraryPath neededLibraries}:${libGL}/lib:${stdenv.cc.cc.lib}/lib${lib.optionalString stdenv.is64bit "64"} \ + $binary + done + + # Rewrite pkexec argument. Note that we cannot delete bytes in binary. + sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' ${primaryBinary} + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -r * $out/ + + runHook postInstall + ''; + + dontWrapGApps = true; # non-standard location, need to wrap the executables manually + + postFixup = '' + wrapProgram $out/${primaryBinary} \ + --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \ + --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \ + --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \ + "''${gappsWrapperArgs[@]}" + + # We need to replace the ssh-askpass-sublime executable because the default one + # will not function properly, in order to work it needs to pass an argv[0] to + # the sublime_merge binary, and the built-in version will will try to call the + # sublime_merge wrapper script which cannot pass through the original argv[0] to + # the sublime_merge binary. Thankfully the ssh-askpass-sublime functionality is + # very simple and can be replaced with a simple wrapper script. + rm $out/ssh-askpass-sublime + makeWrapper $out/.${primaryBinary}-wrapped $out/ssh-askpass-sublime \ + --argv0 "/ssh-askpass-sublime" + ''; + + passthru = { + sources = { + "aarch64-linux" = fetchurl { + url = downloadUrl "arm64"; + sha256 = aarch64sha256; + }; + "x86_64-linux" = fetchurl { + url = downloadUrl "x64"; + sha256 = x64sha256; + }; + }; + }; + }; +in +stdenv.mkDerivation (rec { + pname = pnameBase; + version = buildVersion; + + dontUnpack = true; + + ${primaryBinary} = binaryPackage; + + nativeBuildInputs = [ + makeWrapper + ]; + + installPhase = + '' + mkdir -p "$out/bin" + makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}" + '' + + builtins.concatStringsSep "" ( + map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases + ) + + '' + mkdir -p "$out/share/applications" + + substitute \ + "''$${primaryBinary}/${primaryBinary}.desktop" \ + "$out/share/applications/${primaryBinary}.desktop" \ + --replace-fail "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}" + + for directory in ''$${primaryBinary}/Icon/*; do + size=$(basename $directory) + mkdir -p "$out/share/icons/hicolor/$size/apps" + ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps + done + ''; + + passthru = { + updateScript = + let + script = writeShellScript "${packageAttribute}-update-script" '' + set -o errexit + PATH=${ + lib.makeBinPath [ + common-updater-scripts + curl + gnugrep + ] + } + + versionFile=$1 + latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=<p class="latest"><i>Version:</i> Build )([0-9]+)') + + if [[ "${buildVersion}" = "$latestVersion" ]]; then + echo "The new version same as the old version." + exit 0 + fi + + for platform in ${lib.escapeShellArgs meta.platforms}; do + # The script will not perform an update when the version attribute is up to date from previous platform run + # We need to clear it before each run + update-source-version "${packageAttribute}.${primaryBinary}" 0 "${lib.fakeSha256}" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" + update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform" + done + ''; + in + [ + script + versionFile + ]; + }; + + meta = with lib; { + description = "Git client from the makers of Sublime Text"; + homepage = "https://www.sublimemerge.com"; + maintainers = with maintainers; [ zookatron ]; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; + }; +}) diff --git a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix new file mode 100644 index 000000000000..490a0c464404 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix @@ -0,0 +1,19 @@ +{ callPackage }: + +let + common = opts: callPackage (import ./common.nix opts); +in +{ + sublime-merge = common { + buildVersion = "2096"; + aarch64sha256 = "IHPJJ/oQ3SLemRyey5syTL0sf5GEeHSylDX+EQNNQGU="; + x64sha256 = "41I6p5wNx2pF56np7gHqp396RHpXtQu5ruksUywF/Ug="; + } { }; + + sublime-merge-dev = common { + buildVersion = "2095"; + dev = true; + aarch64sha256 = "FmXz8VAWS7e0bB9NeXbihnhdhWMyNJJs6PNt+K2G0Bk="; + x64sha256 = "83Hw27RgGPgugpf4eMuWT6/MSQ2Q2VBCbaXoSGFtTPI="; + } { }; +} diff --git a/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch b/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch new file mode 100644 index 000000000000..240d94f3f977 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch @@ -0,0 +1,11 @@ +--- a/subversion/bindings/swig/perl/native/Makefile.PL.in ++++ b/subversion/bindings/swig/perl/native/Makefile.PL.in +@@ -72,7 +72,7 @@ + # According to the log of r7937, the flags guarded by the conditional break + # the build on FreeBSD if not conditionalized. + my $apr_ldflags = '@SVN_APR_LIBS@' +- if $^O eq 'darwin' or $^O eq 'cygwin'; ++ if $^O eq 'darwin' or $^O eq 'cygwin' or $^O eq 'linux'; + + chomp $apr_shlib_path_var; + diff --git a/nixpkgs/pkgs/applications/version-management/subversion/default.nix b/nixpkgs/pkgs/applications/version-management/subversion/default.nix new file mode 100644 index 000000000000..0c83d080716c --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/subversion/default.nix @@ -0,0 +1,134 @@ +{ bdbSupport ? true # build support for Berkeley DB repositories +, httpServer ? false # build Apache DAV module +, httpSupport ? true # client must support http +, pythonBindings ? false +, perlBindings ? false +, javahlBindings ? false +, saslSupport ? false +, lib, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc +, CoreServices, Security +, autoconf, libtool +, apacheHttpd ? null, expat, swig ? null, jdk ? null, python3 ? null, py3c ? null, perl ? null +, sasl ? null, serf ? null +}: + +assert bdbSupport -> aprutil.bdbSupport; +assert httpServer -> apacheHttpd != null; +assert pythonBindings -> swig != null && python3 != null && py3c != null; +assert javahlBindings -> jdk != null && perl != null; + +let + # Update libtool for macOS 11 support + needsAutogen = stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11"; + + common = { version, sha256, extraPatches ? [ ] }: stdenv.mkDerivation (rec { + inherit version; + pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}"; + + src = fetchurl { + url = "mirror://apache/subversion/subversion-${version}.tar.bz2"; + inherit sha256; + }; + + # Can't do separate $lib and $bin, as libs reference bins + outputs = [ "out" "dev" "man" ]; + + nativeBuildInputs = lib.optionals needsAutogen [ autoconf libtool python3 ]; + + buildInputs = [ zlib apr aprutil sqlite openssl lz4 utf8proc ] + ++ lib.optional httpSupport serf + ++ lib.optionals pythonBindings [ python3 py3c ] + ++ lib.optional perlBindings perl + ++ lib.optional saslSupport sasl + ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices Security ]; + + patches = [ ./apr-1.patch ] ++ extraPatches; + + # We are hitting the following issue even with APR 1.6.x + # -> https://issues.apache.org/jira/browse/SVN-4813 + # "-P" CPPFLAG is needed to build Python bindings and subversionClient + CPPFLAGS = [ "-P" ]; + + preConfigure = lib.optionalString needsAutogen '' + ./autogen.sh + ''; + + configureFlags = [ + (lib.withFeature bdbSupport "berkeley-db") + (lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs") + (lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig) + (lib.withFeatureAs saslSupport "sasl" sasl) + (lib.withFeatureAs httpSupport "serf" serf) + "--with-zlib=${zlib.dev}" + "--with-sqlite=${sqlite.dev}" + "--with-apr=${apr.dev}" + "--with-apr-util=${aprutil.dev}" + ] ++ lib.optionals javahlBindings [ + "--enable-javahl" + "--with-jdk=${jdk}" + ]; + + preBuild = '' + makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules) + ''; + + postInstall = '' + if test -n "$pythonBindings"; then + make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + fi + + if test -n "$perlBindings"; then + make swig-pl-lib + make install-swig-pl-lib + cd subversion/bindings/swig/perl/native + perl Makefile.PL PREFIX=$out + make install + cd - + fi + + mkdir -p $out/share/bash-completion/completions + cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion + + for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do + substituteInPlace $f \ + --replace "${expat.dev}/lib" "${expat.out}/lib" \ + --replace "${zlib.dev}/lib" "${zlib.out}/lib" \ + --replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \ + --replace "${openssl.dev}/lib" "${lib.getLib openssl}/lib" + done + ''; + + inherit perlBindings pythonBindings; + + enableParallelBuilding = true; + # Missing install dependencies: + # libtool: error: error: relink 'libsvn_ra_serf-1.la' with the above command before installing it + # make: *** [build-outputs.mk:1316: install-serf-lib] Error 1 + enableParallelInstalling = false; + + nativeCheckInputs = [ python3 ]; + doCheck = false; # fails 10 out of ~2300 tests + + meta = with lib; { + description = "A version control system intended to be a compelling replacement for CVS in the open source community"; + license = licenses.asl20; + homepage = "https://subversion.apache.org/"; + mainProgram = "svn"; + maintainers = with maintainers; [ eelco lovek323 ]; + platforms = platforms.linux ++ platforms.darwin; + }; + + } // lib.optionalAttrs stdenv.isDarwin { + CXX = "clang++"; + CC = "clang"; + CPP = "clang -E"; + CXXCPP = "clang++ -E"; + }); + +in { + subversion = common { + version = "1.14.3"; + sha256 = "sha256-lJ79RRoJQ19+hXNXTHHHtxsZTYRIkPpJzWHSJi6hpEA="; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/svn-all-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/svn-all-fast-export/default.nix new file mode 100644 index 000000000000..5fc67ef47d78 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/svn-all-fast-export/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv, fetchFromGitHub, qmake, qtbase, qttools, subversion, apr }: + +let + version = "1.0.18"; +in +stdenv.mkDerivation { + pname = "svn-all-fast-export"; + inherit version; + + src = fetchFromGitHub { + owner = "svn-all-fast-export"; + repo = "svn2git"; + rev = version; + sha256 = "1b5yx2316hbyvw3v30vn1ljma9yd21nd59wis1gi34g92lgvqcd6"; + }; + + nativeBuildInputs = [ qmake qttools ]; + buildInputs = [ apr.dev subversion.dev qtbase ]; + + qmakeFlags = [ + "VERSION=${version}" + "APR_INCLUDE=${apr.dev}/include/apr-1" + "SVN_INCLUDE=${subversion.dev}/include/subversion-1" + ]; + + NIX_LDFLAGS = "-lsvn_fs-1"; + + dontWrapQtApps = true; + + meta = with lib; { + homepage = "https://github.com/svn-all-fast-export/svn2git"; + description = "A fast-import based converter for an svn repo to git repos"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.flokli ]; + mainProgram = "svn-all-fast-export"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/svn2git/default.nix b/nixpkgs/pkgs/applications/version-management/svn2git/default.nix new file mode 100644 index 000000000000..89ea5c0e84ae --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/svn2git/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv, fetchFromGitHub, ruby, makeWrapper, git }: + +stdenv.mkDerivation rec { + pname = "svn2git"; + version = "2.4.0"; + + src = fetchFromGitHub { + owner = "nirvdrum"; + repo = "svn2git"; + rev = "v${version}"; + sha256 = "sha256-w649l/WO68vYYxZOBKzI8XhGFkaSwWx/O3oVOtnGg6w="; + }; + + nativeBuildInputs = [ ruby makeWrapper ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out + cp -r lib $out/ + + mkdir -p $out/bin + substituteInPlace bin/svn2git --replace '/usr/bin/env ruby' ${ruby}/bin/ruby + cp bin/svn2git $out/bin/ + chmod +x $out/bin/svn2git + + wrapProgram $out/bin/svn2git \ + --set RUBYLIB $out/lib \ + --prefix PATH : ${git}/bin + ''; + + meta = { + homepage = "https://github.com/nirvdrum/svn2git"; + description = "Tool for importing Subversion repositories into git"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + mainProgram = "svn2git"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/tailor/default.nix b/nixpkgs/pkgs/applications/version-management/tailor/default.nix new file mode 100644 index 000000000000..3e2e6a848008 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tailor/default.nix @@ -0,0 +1,38 @@ +{ lib +, python3 +, fetchurl +}: + +python3.pkgs.buildPythonApplication rec { + pname = "tailor"; + version = "0.9.37"; + + src = fetchurl { + url = "https://gitlab.com/ports1/tailor/-/archive/0.937/tailor-0.937.tar.gz"; + hash = "sha256-Bdf8ZCRsbCsFz1GRxyQxxndXSsm8oOL2738m9UxOTVc="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + future + ]; + + # AssertionError: Tailor Darcs repository not found! + doCheck = false; + + meta = with lib; { + description = "A tool to migrate changesets between various kinds of version control system."; + longDescription = '' + With its ability to "translate the history" from one VCS kind to another, + this tool makes it easier to keep the upstream changes merged in + a own branch of a product. + + Tailor is able to fetch the history from Arch, Bazaar, CVS, Darcs, Monotone, + Perforce or Subversion and rewrite it over Aegis, Bazaar, CVS, Darcs, Git, + Mercurial, Monotone and Subversion. + ''; + homepage = "https://gitlab.com/ports1/tailor"; + license = licenses.gpl1Plus; + platforms = platforms.unix; + mainProgram = "tailor"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/thicket/default.nix b/nixpkgs/pkgs/applications/version-management/thicket/default.nix new file mode 100644 index 000000000000..710cdda4f94a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/thicket/default.nix @@ -0,0 +1,31 @@ +{ lib +, crystal +, fetchFromGitHub +}: + +crystal.buildCrystalPackage rec { + pname = "thicket"; + version = "0.1.6"; + + src = fetchFromGitHub { + owner = "taylorthurlow"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-sF+fNKEZEfjpW3buh6kFUpL1P0yO9g4SrTb0rhx1uNc="; + }; + + format = "shards"; + + crystalBinaries.thicket.src = "src/thicket.cr"; + + # there is one test that tries to clone a repo + doCheck = false; + + meta = with lib; { + description = "A better one-line git log"; + homepage = "https://github.com/taylorthurlow/thicket"; + license = licenses.mit; + maintainers = with maintainers; [ Br1ght0ne ]; + mainProgram = "thicket"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/tig/default.nix b/nixpkgs/pkgs/applications/version-management/tig/default.nix new file mode 100644 index 000000000000..d7bd912b44d5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tig/default.nix @@ -0,0 +1,57 @@ +{ lib, stdenv, fetchFromGitHub, ncurses, asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45 +, readline, makeWrapper, git, libiconv, autoreconfHook, findXMLCatalogs, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "tig"; + version = "2.5.9"; + + src = fetchFromGitHub { + owner = "jonas"; + repo = pname; + rev = "${pname}-${version}"; + sha256 = "sha256-RASZgQUlt/5ivImowM+sNw8Oe8aVkuUNErfgddmFjic="; + }; + + nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ]; + + autoreconfFlags = [ "-I" "tools" "-v" ]; + + buildInputs = [ ncurses readline git ] + ++ lib.optionals stdenv.isDarwin [ libiconv ]; + + # those files are inherently impure, we'll handle the corresponding dependencies. + postPatch = '' + rm contrib/config.make-* + ''; + + enableParallelBuilding = true; + + installPhase = '' + make install + make install-doc + + # fixes tig-completion __git-complete dependency + sed -i '1s;^;source ${git}/share/bash-completion/completions/git\n;' contrib/tig-completion.bash + + install -D contrib/tig-completion.bash $out/share/bash-completion/completions/tig + cp contrib/vim.tigrc $out/etc/ + + # Note: Until https://github.com/jonas/tig/issues/940 is resolved it is best + # not to install the ZSH completion so that the fallback implementation from + # ZSH can be used (Completion/Unix/Command/_git: "_tig () { _git-log }"): + #install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig + + wrapProgram $out/bin/tig \ + --prefix PATH ':' "${git}/bin" + ''; + + meta = with lib; { + homepage = "https://jonas.github.io/tig/"; + description = "Text-mode interface for git"; + maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 ]; + license = licenses.gpl2Plus; + platforms = platforms.unix; + mainProgram = "tig"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/tkrev/default.nix b/nixpkgs/pkgs/applications/version-management/tkrev/default.nix new file mode 100644 index 000000000000..66c1aa4d0e12 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tkrev/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchurl, tcl, tk }: + +stdenv.mkDerivation rec { + pname = "tkrev"; + version = "9.4.1"; + + src = fetchurl { + url = "mirror://sourceforge/tkcvs/tkrev_${version}.tar.gz"; + sha256 = "sha256-WHDZPShEB9Q+Bjbb37mogJLUZk2GuWoO8bz+Zydc7i4="; + }; + + buildInputs = [ tcl tk ]; + + patchPhase = '' + for file in tkrev/tkrev.tcl tkdiff/tkdiff; do + substituteInPlace "$file" \ + --replace "exec wish" "exec ${tk}/bin/wish" + done + ''; + + installPhase = '' + ./doinstall.tcl $out + ''; + + meta = { + homepage = "https://tkcvs.sourceforge.io"; + description = "TCL/TK GUI for cvs and subversion"; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/topgit/default.nix b/nixpkgs/pkgs/applications/version-management/topgit/default.nix new file mode 100644 index 000000000000..0a5dd908c663 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/topgit/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchFromGitHub, git, perl }: + +stdenv.mkDerivation rec { + pname = "topgit"; + version = "0.19.13"; + + src = fetchFromGitHub { + owner = "mackyle"; + repo = "topgit"; + rev = "${pname}-${version}"; + sha256 = "sha256-K0X1DGc1LQsoteUhoHLxVJRrZaaPLKSSF61OKyGB5Qg="; + }; + + makeFlags = [ "prefix=${placeholder "out"}" ]; + + nativeBuildInputs = [ perl git ]; + + postInstall = '' + install -Dm644 README -t "$out/share/doc/${pname}-${version}/" + install -Dm755 contrib/tg-completion.bash -t "$out/share/bash-completion/completions/" + ''; + + meta = with lib; { + description = "TopGit manages large amount of interdependent topic branches"; + mainProgram = "tg"; + homepage = "https://github.com/mackyle/topgit"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ marcweber ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix new file mode 100644 index 000000000000..e4ad91a8713f --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix @@ -0,0 +1,70 @@ +{ lib +, fetchurl +, python3Packages +, mercurial +, qt5 +}: + +python3Packages.buildPythonApplication rec { + pname = "tortoisehg"; + version = "6.6.3"; + + src = fetchurl { + url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${version}.tar.gz"; + sha256 = "sha256-9pg1N5uj1ZaZCAm4N8toRwfVHme7nAsNMZkXSRgFves="; + }; + + nativeBuildInputs = [ + qt5.wrapQtAppsHook + ]; + propagatedBuildInputs = with python3Packages; [ + mercurial + # The one from python3Packages + qscintilla-qt5 + iniparse + ]; + buildInputs = [ + # Makes wrapQtAppsHook add these qt libraries to the wrapper search paths + qt5.qtwayland + ]; + + # In order to spare double wrapping, we use: + preFixup = '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + # Convenient alias + postInstall = '' + ln -s $out/bin/thg $out/bin/tortoisehg + ''; + + # In python3Packages.buildPythonApplication doCheck is always true, and we + # override it to not run the default unittests + checkPhase = '' + runHook preCheck + + $out/bin/thg version | grep -q "${version}" + # Detect breakage of thg in case of out-of-sync mercurial update. In that + # case any thg subcommand just opens up an gui dialog with a description of + # version mismatch. + echo "thg smoke test" + $out/bin/thg -h > help.txt & + sleep 1s + grep -q "list of commands" help.txt + + runHook postCheck + ''; + + passthru = { + # If at some point we'll override this argument, it might be useful to have + # access to it here. + inherit mercurial; + }; + + meta = { + description = "Qt based graphical tool for working with Mercurial"; + homepage = "https://tortoisehg.bitbucket.io/"; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ danbst gbtb ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/transcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/transcrypt/default.nix new file mode 100644 index 000000000000..5000037b0c8a --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/transcrypt/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, fetchFromGitHub, git, makeWrapper, openssl, coreutils, util-linux, gnugrep, gnused, gawk, testers, transcrypt }: + +stdenv.mkDerivation rec { + pname = "transcrypt"; + version = "2.2.3"; + + src = fetchFromGitHub { + owner = "elasticdog"; + repo = "transcrypt"; + rev = "v${version}"; + sha256 = "+B8CYHDneDd0GwiTwQK6YVScDMKao2JXFpGk9PY6/EE="; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ git openssl coreutils util-linux gnugrep gnused gawk ]; + + installPhase = '' + install -m 755 -D transcrypt $out/bin/transcrypt + install -m 644 -D man/transcrypt.1 $out/share/man/man1/transcrypt.1 + install -m 644 -D contrib/bash/transcrypt $out/share/bash-completion/completions/transcrypt + install -m 644 -D contrib/zsh/_transcrypt $out/share/zsh/site-functions/_transcrypt + + wrapProgram $out/bin/transcrypt \ + --prefix PATH : "${lib.makeBinPath [ git openssl coreutils util-linux gnugrep gnused gawk ]}" + + cat > $out/bin/transcrypt-depspathprefix << EOF + #!${stdenv.shell} + echo "${lib.makeBinPath [ git openssl coreutils gawk ]}:" + EOF + chmod +x $out/bin/transcrypt-depspathprefix + ''; + + passthru.tests.version = testers.testVersion { + package = transcrypt; + command = "transcrypt --version"; + version = "transcrypt ${version}"; + }; + + meta = with lib; { + description = "Transparently encrypt files within a Git repository"; + longDescription = '' + A script to configure transparent encryption of sensitive files stored in + a Git repository. Files that you choose will be automatically encrypted + when you commit them, and automatically decrypted when you check them + out. The process will degrade gracefully, so even people without your + encryption password can safely commit changes to the repository's + non-encrypted files. + ''; + homepage = "https://github.com/elasticdog/transcrypt"; + license = licenses.mit; + maintainers = [ maintainers.elasticdog ]; + platforms = platforms.all; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/ungit/default.nix b/nixpkgs/pkgs/applications/version-management/ungit/default.nix new file mode 100644 index 000000000000..5d5c8336987b --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/ungit/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage rec { + pname = "ungit"; + version = "1.5.26"; + + src = fetchFromGitHub { + owner = "FredrikNoren"; + repo = "ungit"; + rev = "v${version}"; + hash = "sha256-HTo0z/y7thUrDm6ofHiUtv1UDuqGN+kpMFLuIvxyxZQ="; + }; + + npmDepsHash = "sha256-f/CtNYoy5ZOgdVTG2ZdBpXOSNUKSG5wCy0eIl4ov80U="; + + env = { + ELECTRON_SKIP_BINARY_DOWNLOAD = true; + PUPPETEER_SKIP_DOWNLOAD = true; + }; + + meta = { + changelog = "https://github.com/FredrikNoren/ungit/blob/${src.rev}/CHANGELOG.md"; + description = "Git made easy"; + homepage = "https://github.com/FredrikNoren/ungit"; + license = lib.licenses.mit; + mainProgram = "ungit"; + maintainers = with lib.maintainers; [ ]; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix b/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix new file mode 100644 index 000000000000..ff4968d7166d --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix @@ -0,0 +1,31 @@ +{ lib, stdenv, fetchhg, autoconf, sqlite }: + +stdenv.mkDerivation rec { + pname = "vcprompt"; + version = "1.2.1"; + + src = fetchhg { + url = "http://hg.gerg.ca/vcprompt/"; + rev = version; + sha256 = "03xqvp6bfl98bpacrw4n82qv9cw6a4fxci802s3vrygas989v1kj"; + }; + + buildInputs = [ sqlite autoconf ]; + + preConfigure = '' + autoconf + makeFlags="$makeFlags PREFIX=$out" + ''; + + meta = with lib; { + description = '' + A little C program that prints a short string with barebones information + about the current working directory for various version control systems + ''; + homepage = "http://hg.gerg.ca/vcprompt"; + maintainers = with maintainers; [ ]; + platforms = with platforms; linux ++ darwin; + license = licenses.gpl2Plus; + mainProgram = "vcprompt"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/vcsh/default.nix b/nixpkgs/pkgs/applications/version-management/vcsh/default.nix new file mode 100644 index 000000000000..1477695506e6 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/vcsh/default.nix @@ -0,0 +1,39 @@ +{ lib, stdenv +, fetchurl +, makeWrapper +, pkg-config +, git +, perlPackages +}: + +stdenv.mkDerivation rec { + pname = "vcsh"; + version = "2.0.8"; + + src = fetchurl { + url = "https://github.com/RichiH/vcsh/releases/download/v${version}/${pname}-${version}.tar.xz"; + sha256 = "sha256-VgRA3v5PIKwizmXoc8f/YMoMCDGFJK/m2uhq3EsT1xQ="; + }; + + nativeBuildInputs = [ + pkg-config + makeWrapper + ]; + + buildInputs = [ git ]; + + nativeCheckInputs = [] + ++ (with perlPackages; [ perl ShellCommand TestMost ]); + + outputs = [ "out" "doc" "man" ]; + + meta = with lib; { + description = "Version Control System for $HOME"; + homepage = "https://github.com/RichiH/vcsh"; + changelog = "https://github.com/RichiH/vcsh/blob/v${version}/changelog"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ttuegel alerque ]; + platforms = platforms.unix; + mainProgram = "vcsh"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/verco/default.nix b/nixpkgs/pkgs/applications/version-management/verco/default.nix new file mode 100644 index 000000000000..4597a87b4721 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/verco/default.nix @@ -0,0 +1,23 @@ +{ fetchFromGitHub, lib, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "verco"; + version = "6.12.0"; + + src = fetchFromGitHub { + owner = "vamolessa"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-M3Utrt350I67kqzEH130tgBIiI7rY8ODCSxgMohWWWM="; + }; + + cargoSha256 = "sha256-urnTPlQTmOPq7mHZjsTqxql/FQe7NYHE8sVJJ4fno+U="; + + meta = with lib; { + description = "A simple Git/Mercurial/PlasticSCM tui client based on keyboard shortcuts"; + homepage = "https://vamolessa.github.io/verco"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ figsoda ]; + mainProgram = "verco"; + }; +} diff --git a/nixpkgs/pkgs/applications/version-management/yadm/default.nix b/nixpkgs/pkgs/applications/version-management/yadm/default.nix new file mode 100644 index 000000000000..0dab32e57acc --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/yadm/default.nix @@ -0,0 +1,140 @@ +{ lib +, stdenv +, resholve +, fetchFromGitHub +, git +, bash +, openssl +, gawk +/* +TODO: yadm can use git-crypt and transcrypt +but it does so in a way that resholve 0.6.0 +can't yet do anything smart about. It looks +like these are for interactive use, so the +main impact should just be that users still +need both of these packages in their profile +to support their use in yadm. +*/ +# , git-crypt +# , transcrypt +, j2cli +, esh +, gnupg +, coreutils +, gnutar +, installShellFiles +, runCommand +, yadm +}: + +resholve.mkDerivation rec { + pname = "yadm"; + version = "3.2.2"; + + nativeBuildInputs = [ installShellFiles ]; + + src = fetchFromGitHub { + owner = "TheLocehiliosan"; + repo = "yadm"; + rev = version; + hash = "sha256-GcuqMlE8oef9+LIqKoCotktU7GcgPBE9CTVrZ8bKhv4="; + }; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + install -Dt $out/bin yadm + runHook postInstall + ''; + + postInstall = '' + installManPage yadm.1 + installShellCompletion --cmd yadm \ + --zsh completion/zsh/_yadm \ + --bash completion/bash/yadm + ''; + + solutions = { + yadm = { + scripts = [ "bin/yadm" ]; + interpreter = "${bash}/bin/sh"; + inputs = [ + git + gnupg + openssl + gawk + # see head comment + # git-crypt + # transcrypt + j2cli + esh + bash + coreutils + gnutar + ]; + fake = { + external = if stdenv.isCygwin then [ ] else [ "cygpath" ]; + }; + fix = { + "$GPG_PROGRAM" = [ "gpg" ]; + "$OPENSSL_PROGRAM" = [ "openssl" ]; + "$GIT_PROGRAM" = [ "git" ]; + "$AWK_PROGRAM" = [ "awk" ]; + # see head comment + # "$GIT_CRYPT_PROGRAM" = [ "git-crypt" ]; + # "$TRANSCRYPT_PROGRAM" = [ "transcrypt" ]; + "$J2CLI_PROGRAM" = [ "j2" ]; + "$ESH_PROGRAM" = [ "esh" ]; + # not in nixpkgs (yet) + # "$ENVTPL_PROGRAM" = [ "envtpl" ]; + # "$LSB_RELEASE_PROGRAM" = [ "lsb_release" ]; + }; + keep = { + "$YADM_COMMAND" = true; # internal cmds + "$template_cmd" = true; # dynamic, template-engine + "$SHELL" = true; # probably user env? unsure + "$hook_command" = true; # ~git hooks? + "exec" = [ "$YADM_BOOTSTRAP" ]; # yadm bootstrap script + + # not in nixpkgs + "$ENVTPL_PROGRAM" = true; + "$LSB_RELEASE_PROGRAM" = true; + }; + /* + TODO: these should be dropped as fast as they can be dealt + with properly in binlore and/or resholve. + */ + execer = [ + "cannot:${j2cli}/bin/j2" + "cannot:${esh}/bin/esh" + "cannot:${git}/bin/git" + "cannot:${gnupg}/bin/gpg" + ]; + }; + }; + + passthru.tests = { + minimal = runCommand "${pname}-test" {} '' + export HOME=$out + ${yadm}/bin/yadm init + ''; + }; + + meta = { + homepage = "https://github.com/TheLocehiliosan/yadm"; + description = "Yet Another Dotfiles Manager"; + longDescription = '' + yadm is a dotfile management tool with 3 main features: + * Manages files across systems using a single Git repository. + * Provides a way to use alternate files on a specific OS or host. + * Supplies a method of encrypting confidential data so it can safely be stored in your repository. + ''; + changelog = "https://github.com/TheLocehiliosan/yadm/blob/${version}/CHANGES"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ abathur ]; + platforms = lib.platforms.unix; + mainProgram = "yadm"; + }; +} |