diff --git a/.envrc b/.envrc new file mode 100644 index 0000000000000..379f0549498a3 --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +if [ -z "${FLOX_VERSION}" ]; then # Don't activate if already activated + flox activate +fi diff --git a/.flox/.gitignore b/.flox/.gitignore new file mode 100644 index 0000000000000..15d71a169ff75 --- /dev/null +++ b/.flox/.gitignore @@ -0,0 +1,4 @@ +run/ +cache/ +lib/ +log/ diff --git a/.flox/env.json b/.flox/env.json new file mode 100644 index 0000000000000..e913909c9bf54 --- /dev/null +++ b/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "posthog", + "version": 1 +} diff --git a/.flox/env/direnv-setup.sh b/.flox/env/direnv-setup.sh new file mode 100755 index 0000000000000..705ab57b076f1 --- /dev/null +++ b/.flox/env/direnv-setup.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +if ! command -v direnv &> /dev/null; then + # Install direnv based on platform + if command -v brew &> /dev/null; then + echo "šŸ”„ Installing direnv using 'brew install direnv'..." + HOMEBREW_NO_ENV_HINTS=1 brew install -q direnv + elif command -v apt &> /dev/null; then + echo "šŸ”„ Installing direnv using 'apt install direnv'..." + sudo apt update && sudo apt install -yq direnv + elif command -v dnf &> /dev/null; then + echo "šŸ”„ Installing direnv using 'dnf install direnv'..." + sudo dnf install -yq direnv + else + echo "šŸ”„ Installing direnv using 'curl -sfL https://direnv.net/install.sh | bash'" + curl -sfL https://direnv.net/install.sh | bash + fi + echo "āœ… Installed direnv" +else + echo "ā© direnv already installed" +fi + +# Determine shell and config file +shell_name=$(basename "$SHELL") +case "$shell_name" in + "bash") + config_file="$HOME/.bashrc" + hook_command='eval "$(direnv hook bash)"' + ;; + "zsh") + config_file="$HOME/.zshrc" + hook_command='eval "$(direnv hook zsh)"' + ;; + "fish") + config_file="$HOME/.config/fish/config.fish" + hook_command='direnv hook fish | source' + mkdir -p "$(dirname "$config_file")" + ;; + "tcsh") + config_file="$HOME/.cshrc" + hook_command='eval `direnv hook tcsh`' + ;; + *) + echo "Unsupported shell: $shell_name" + return 1 + ;; +esac + +echo "šŸš Configuring your default shell, $SHELL, for direnv" + +# Add hook to shell config if not already present +if ! grep -q "direnv hook" "$config_file" 2>/dev/null; then + echo -e "\n# Initialize direnv - added by PostHog's Flox activation hook (../posthog/.flox/env/manifest.toml)\n$hook_command" >> "$config_file" + echo "āœ… Injected direnv hook into $config_file" +else + echo "ā© direnv hook already present in $config_file" +fi + +# Add hook to shell config if not already present +if ! grep -q "warn_timeout" "$HOME/.config/direnv/direnv.toml" 2>/dev/null; then + echo "[global]\nwarn_timeout = 0 # Ignore timeout from this issue: https://github.com/direnv/direnv/issues/1065 - added by PostHog's Flox activation hook (../posthog/.flox/env/manifest.toml)" >> "$HOME/.config/direnv/direnv.toml" + echo "āœ… Configured ~/.config/direnv/direnv.toml" +else + echo "ā© ~/.config/direnv/direnv.toml already configured" +fi + +echo "šŸ’« direnv is now active" + +# Allow this directory's .envrc to be loaded +direnv allow diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock new file mode 100644 index 0000000000000..3a5e9e7a57a5f --- /dev/null +++ b/.flox/env/manifest.lock @@ -0,0 +1,1833 @@ +{ + "lockfile-version": 1, + "manifest": { + "version": 1, + "install": { + "brotli": { + "pkg-path": "brotli", + "pkg-group": "nodejs" + }, + "cargo": { + "pkg-path": "cargo", + "pkg-group": "rust-toolchain", + "version": "1.80.1" + }, + "clippy": { + "pkg-path": "clippy", + "pkg-group": "rust-toolchain" + }, + "corepack": { + "pkg-path": "corepack", + "pkg-group": "nodejs" + }, + "go": { + "pkg-path": "go", + "pkg-group": "go", + "version": "1.22" + }, + "libiconv": { + "pkg-path": "libiconv", + "pkg-group": "rust-toolchain", + "systems": [ + "aarch64-darwin" + ] + }, + "libtool": { + "pkg-path": "libtool", + "pkg-group": "python" + }, + "mprocs": { + "pkg-path": "mprocs" + }, + "nodejs": { + "pkg-path": "nodejs_18", + "pkg-group": "nodejs" + }, + "python3": { + "pkg-path": "python3", + "pkg-group": "python", + "version": "3.11" + }, + "rust-lib-src": { + "pkg-path": "rustPlatform.rustLibSrc", + "pkg-group": "rust-toolchain" + }, + "rustc": { + "pkg-path": "rustc", + "pkg-group": "rust-toolchain" + }, + "rustfmt": { + "pkg-path": "rustfmt", + "pkg-group": "rust-toolchain" + }, + "uv": { + "pkg-path": "uv", + "pkg-group": "python" + }, + "xmlsec": { + "pkg-path": "xmlsec", + "pkg-group": "python", + "version": "1.2.34" + } + }, + "vars": { + "DEBUG": "1", + "DIRENV_LOG_FORMAT": "", + "POSTHOG_SKIP_MIGRATION_CHECKS": "1" + }, + "hook": { + "on-activate": "# Set up a Python virtual environment\nexport PYTHON_DIR=\"$FLOX_ENV_CACHE/venv\"\nif [ ! -d \"$PYTHON_DIR\" ]; then\n uv venv \"$PYTHON_DIR\" --allow-existing\nfi\n\necho -e \"Python virtual environment path: \\033[33m.flox/cache/venv\\033[0m\"\necho -e \"Python interpreter path, for your code editor: \\033[33m.flox/cache/venv/bin/python\\033[0m\"\n\nsource \"$PYTHON_DIR/bin/activate\"\n\n# Install Python dependencies (this is practically instant thanks to uv)\nuv pip install -q -r requirements.txt -r requirements-dev.txt\n\n# Install top-level Node dependencies (only if not present all yet, because this takes almost a second even with pnpm)\n# This also sets up pre-commit hooks via Husky\nif [ ! -d \"node_modules\" ]; then\n pnpm install -s\nfi\n\nif [[ -t 0 ]]; then # Check if running in an interactive shell\n # Add required entries to /etc/hosts if not present\n if ! grep -q \"127.0.0.1 kafka clickhouse\" /etc/hosts; then\n echo \"\"\n echo \"šŸšØ Amending /etc/hosts to map hostnames 'kafka' and 'clickhouse' to 127.0.0.1...\"\n echo \"127.0.0.1 kafka clickhouse\" | sudo tee -a /etc/hosts 1> /dev/null\n echo \"āœ… /etc/hosts amended\"\n fi\n\n # Guide through installing and configuring direnv if not present (optionally)\n if [ ! -d \"$DIRENV_DIR\" ] && [ ! -f \"$FLOX_ENV_CACHE/.hush-direnv\" ]; then\n read -p \"\nšŸ‘‰ Use direnv (https://direnv.net) for automatic activation of this environment by your shell.\nā“ Would you like direnv to be set up now? (y/n, default: y): \" -n 1 -r\n if [[ $REPLY =~ ^[Yy]$ || -z $REPLY ]]; then\n $FLOX_ENV_CACHE/../bin/direnv-setup.sh\n else\n echo \"ā­ļø Skipping direnv setup. This message will not be shown again, but if you change your mind, just run '.flox/bin/direnv-setup.sh'\"\n touch $FLOX_ENV_CACHE/.hush-direnv\n fi\n fi\n\n # Print intro message\n echo -e \"\nIT'S DANGEROUS TO GO ALONE! RUN THIS:\n1. \\033[31mbin/migrate\\033[0m - to run all migrations\n2. \\033[32mbin/start\\033[0m - to start the entire stack\n3. \\033[34m./manage.py generate_demo_data\\033[0m - to create a user with demo data\n\"\nfi\n" + }, + "profile": { + "bash": " source \"$PYTHON_DIR/bin/activate\"\n", + "zsh": " source \"$PYTHON_DIR/bin/activate\"\n", + "fish": " source \"$PYTHON_DIR/bin/activate.fish\"\n", + "tcsh": " source \"$PYTHON_DIR/bin/activate.csh\"\n" + }, + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-darwin", + "x86_64-linux" + ], + "allow": { + "licenses": [] + }, + "semver": {} + } + }, + "packages": [ + { + "attr_path": "go", + "broken": false, + "derivation": "/nix/store/x1p2gf1jcqn29l4agdqrb0w09rib7w3m-go-1.22.7.drv", + "description": "Go Programming language", + "install_id": "go", + "license": "BSD-3-Clause", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "go-1.22.7", + "pname": "go", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.22.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/rfcwglhhspqx5v5h0sl4b3py14i6vpxa-go-1.22.7" + }, + "system": "aarch64-darwin", + "group": "go", + "priority": 5 + }, + { + "attr_path": "go", + "broken": false, + "derivation": "/nix/store/qk95aryv3n1mhmk0lxf55sg9yr0l6138-go-1.22.7.drv", + "description": "Go Programming language", + "install_id": "go", + "license": "BSD-3-Clause", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "go-1.22.7", + "pname": "go", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.22.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/64z59pb0ss407rbv1fcvq0ynngrwfa6k-go-1.22.7" + }, + "system": "aarch64-linux", + "group": "go", + "priority": 5 + }, + { + "attr_path": "go", + "broken": false, + "derivation": "/nix/store/4bjrs6k4a0xjyy5zanbc8igv0cffsi0a-go-1.22.7.drv", + "description": "Go Programming language", + "install_id": "go", + "license": "BSD-3-Clause", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "go-1.22.7", + "pname": "go", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.22.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/r8199g59rmp6ac0lnx86fpk57fbxc3bk-go-1.22.7" + }, + "system": "x86_64-darwin", + "group": "go", + "priority": 5 + }, + { + "attr_path": "go", + "broken": false, + "derivation": "/nix/store/gp0ma9f4n4nxmgbgl1g65kvlf05cl22y-go-1.22.7.drv", + "description": "Go Programming language", + "install_id": "go", + "license": "BSD-3-Clause", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "go-1.22.7", + "pname": "go", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.22.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/chzgk756zb2cqlzbjr86m0lfxi63cdfy-go-1.22.7" + }, + "system": "x86_64-linux", + "group": "go", + "priority": 5 + }, + { + "attr_path": "brotli", + "broken": false, + "derivation": "/nix/store/6cwflld1b78lmqr3mj7c8jgysbfq32qk-brotli-1.1.0.drv", + "description": "Generic-purpose lossless compression algorithm and tool", + "install_id": "brotli", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "brotli-1.1.0", + "pname": "brotli", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "1.1.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/x9x8kz1dm5mlk9shcs1d802ynj6w61y2-brotli-1.1.0-dev", + "lib": "/nix/store/r7fvblydd9smajp3asaqhm6jvqc38qmb-brotli-1.1.0-lib", + "out": "/nix/store/ns2pn7hja7k1rmviv52zrf2xbb0xx1wn-brotli-1.1.0" + }, + "system": "aarch64-darwin", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "brotli", + "broken": false, + "derivation": "/nix/store/4p76dm63fspxbwhng9mhkr9qh9y449hs-brotli-1.1.0.drv", + "description": "Generic-purpose lossless compression algorithm and tool", + "install_id": "brotli", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "brotli-1.1.0", + "pname": "brotli", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "1.1.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/j3am2m4jn6pkiv0bm2r45z51243qf45x-brotli-1.1.0-dev", + "lib": "/nix/store/0w6nm7j7w5b27gxmb6kfang0n69ybx94-brotli-1.1.0-lib", + "out": "/nix/store/xq716j0dkf2pwxvvl426ga1vxsmyjgbj-brotli-1.1.0" + }, + "system": "aarch64-linux", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "brotli", + "broken": false, + "derivation": "/nix/store/p3y1bh5164jlw6gy45037wnrd7rzdncx-brotli-1.1.0.drv", + "description": "Generic-purpose lossless compression algorithm and tool", + "install_id": "brotli", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "brotli-1.1.0", + "pname": "brotli", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "1.1.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/hxz478davwb39pcs9p40chhmj6igh5hn-brotli-1.1.0-dev", + "lib": "/nix/store/v8zhc6am8gqbc16w6ik20yj9wbpn015i-brotli-1.1.0-lib", + "out": "/nix/store/azlw8ri487sa8rmwg86cdysf3j8xh1c5-brotli-1.1.0" + }, + "system": "x86_64-darwin", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "brotli", + "broken": false, + "derivation": "/nix/store/rbwgzdy86dfwp0nlvqy7k39n61486979-brotli-1.1.0.drv", + "description": "Generic-purpose lossless compression algorithm and tool", + "install_id": "brotli", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "brotli-1.1.0", + "pname": "brotli", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "1.1.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/m69rxkn1154drqhcbnqjr6i7xbar4yb4-brotli-1.1.0-dev", + "lib": "/nix/store/2vgwd43vqxm66grkgsy7z1d87z31nzph-brotli-1.1.0-lib", + "out": "/nix/store/2ww03dm6fbyp76fp0kv1dv9cxd39fiis-brotli-1.1.0" + }, + "system": "x86_64-linux", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "corepack", + "broken": false, + "derivation": "/nix/store/fjjlk4g8ybfl2lh9kdi1j3k52rssif0z-corepack-nodejs-20.18.1.drv", + "description": "Wrappers for npm, pnpm and Yarn via Node.js Corepack", + "install_id": "corepack", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "corepack-nodejs-20.18.1", + "pname": "corepack", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-20.18.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/xb7rzh9a99dwidaaks5dhkbq3g5qx2fi-corepack-nodejs-20.18.1" + }, + "system": "aarch64-darwin", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "corepack", + "broken": false, + "derivation": "/nix/store/39wdrzfmghz3j4jr6sh6z4ndhfzq6kmg-corepack-nodejs-20.18.1.drv", + "description": "Wrappers for npm, pnpm and Yarn via Node.js Corepack", + "install_id": "corepack", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "corepack-nodejs-20.18.1", + "pname": "corepack", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-20.18.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/64m1bmya4yvz2pfpa4li800m8caxawwy-corepack-nodejs-20.18.1" + }, + "system": "aarch64-linux", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "corepack", + "broken": false, + "derivation": "/nix/store/0nxs6aij505x6c8lr747gfmfryv5gh03-corepack-nodejs-20.18.1.drv", + "description": "Wrappers for npm, pnpm and Yarn via Node.js Corepack", + "install_id": "corepack", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "corepack-nodejs-20.18.1", + "pname": "corepack", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-20.18.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/2apr9lhsr6gvcbr92dhvall1qvjc2d1h-corepack-nodejs-20.18.1" + }, + "system": "x86_64-darwin", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "corepack", + "broken": false, + "derivation": "/nix/store/hdmcwb8m1l9lkcrqhc4s32vyfrrv9xsf-corepack-nodejs-20.18.1.drv", + "description": "Wrappers for npm, pnpm and Yarn via Node.js Corepack", + "install_id": "corepack", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "corepack-nodejs-20.18.1", + "pname": "corepack", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-20.18.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/y7kznvfcjl2y8cpivy6vbp1j0x5rdqlm-corepack-nodejs-20.18.1" + }, + "system": "x86_64-linux", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "nodejs_18", + "broken": false, + "derivation": "/nix/store/1xpdiwn64w121hqam7a572x76j05k59b-nodejs-18.20.5.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "nodejs-18.20.5", + "pname": "nodejs_18", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-18.20.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "libv8": "/nix/store/a40q0j0m27m1dxy9i94accm5zaknpx2k-nodejs-18.20.5-libv8", + "out": "/nix/store/6dlw5588gs7whckfx2l0iyd8xi4gklq6-nodejs-18.20.5" + }, + "system": "aarch64-darwin", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "nodejs_18", + "broken": false, + "derivation": "/nix/store/vhpwx7fmj5zcmm8jn8zj4kr7559kfwaf-nodejs-18.20.5.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "nodejs-18.20.5", + "pname": "nodejs_18", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-18.20.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "libv8": "/nix/store/1plafrvq3c9vhdwilizkfl1wff0n5n6h-nodejs-18.20.5-libv8", + "out": "/nix/store/x07wndwyr9f6xhk6rk7iq5rn2qbw4d3y-nodejs-18.20.5" + }, + "system": "aarch64-linux", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "nodejs_18", + "broken": false, + "derivation": "/nix/store/rm9x0h8ap163r25lqjppxny4y7d5h6vv-nodejs-18.20.5.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "nodejs-18.20.5", + "pname": "nodejs_18", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-18.20.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "libv8": "/nix/store/rdx8vcizxv9q5kqd1qydz5gkagar5xy8-nodejs-18.20.5-libv8", + "out": "/nix/store/24kh8yc1g5d9whhbdykf58zymfbxbki6-nodejs-18.20.5" + }, + "system": "x86_64-darwin", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "nodejs_18", + "broken": false, + "derivation": "/nix/store/9hq82dni4ix0h26rdrvysrkdqvfxgfwl-nodejs-18.20.5.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=a73246e2eef4c6ed172979932bc80e1404ba2d56", + "name": "nodejs-18.20.5", + "pname": "nodejs_18", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", + "rev_count": 719504, + "rev_date": "2024-12-09T15:59:59Z", + "scrape_date": "2024-12-11T03:49:32Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "nodejs-18.20.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "libv8": "/nix/store/3kp2j4w0k9cb7r29wq2iv8kyp7hw1dqs-nodejs-18.20.5-libv8", + "out": "/nix/store/nmmgwk1a0cakhmhwgf1v2b5ws3zf899h-nodejs-18.20.5" + }, + "system": "x86_64-linux", + "group": "nodejs", + "priority": 5 + }, + { + "attr_path": "libtool", + "broken": false, + "derivation": "/nix/store/pnicfn49l8gglh4admyrgz7c2mlhv2kh-libtool-2.4.7.drv", + "description": "GNU Libtool, a generic library support script", + "install_id": "libtool", + "license": "GPL-2.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "libtool-2.4.7", + "pname": "libtool", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.4.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "lib": "/nix/store/yhi9n11d9lg80h98rhwq7cdfymlrkc2k-libtool-2.4.7-lib", + "out": "/nix/store/abhrfb6g3jcp78l35ajj2aqa11pspjp0-libtool-2.4.7" + }, + "system": "aarch64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "libtool", + "broken": false, + "derivation": "/nix/store/n8nyg3q3nw96prqz1qbrfqr74j5fczf4-libtool-2.4.7.drv", + "description": "GNU Libtool, a generic library support script", + "install_id": "libtool", + "license": "GPL-2.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "libtool-2.4.7", + "pname": "libtool", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.4.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "lib": "/nix/store/sbf540sfh2nw3v2c0i08p9v48805dghh-libtool-2.4.7-lib", + "out": "/nix/store/kjcyrwjlzlwavmwxqfr6655ammnb3ifm-libtool-2.4.7" + }, + "system": "aarch64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "libtool", + "broken": false, + "derivation": "/nix/store/vx663mr0pkr4z52nayq8f180qwfa5d36-libtool-2.4.7.drv", + "description": "GNU Libtool, a generic library support script", + "install_id": "libtool", + "license": "GPL-2.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "libtool-2.4.7", + "pname": "libtool", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.4.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "lib": "/nix/store/wa20n47ny35i71gd8iwp52i98bizb2ys-libtool-2.4.7-lib", + "out": "/nix/store/n72sxky85d97zk1cxmjhy56bm3pfxqxh-libtool-2.4.7" + }, + "system": "x86_64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "libtool", + "broken": false, + "derivation": "/nix/store/bp5w7dy2xvag67wcrm4ccrp3s4siapa4-libtool-2.4.7.drv", + "description": "GNU Libtool, a generic library support script", + "install_id": "libtool", + "license": "GPL-2.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "libtool-2.4.7", + "pname": "libtool", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.4.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "lib": "/nix/store/msg5sk7rqi638605l412fqkwyn71kvka-libtool-2.4.7-lib", + "out": "/nix/store/ijhlqlas42l7i8fdkhn2rkf0bpcyq3z1-libtool-2.4.7" + }, + "system": "x86_64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "python3", + "broken": false, + "derivation": "/nix/store/wfykwnxr7b3yf52iq1mvrj6xsyki9xh3-python3-3.11.9.drv", + "description": "High-level dynamically-typed programming language", + "install_id": "python3", + "license": "Python-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "python3-3.11.9", + "pname": "python3", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.11.9", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/327bf08j5b7l9cnzink3g4vp32y5352j-python3-3.11.9" + }, + "system": "aarch64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "python3", + "broken": false, + "derivation": "/nix/store/k8rfpimvg8943kffa0dhlfc0fcswp6sf-python3-3.11.9.drv", + "description": "High-level dynamically-typed programming language", + "install_id": "python3", + "license": "Python-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "python3-3.11.9", + "pname": "python3", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.11.9", + "outputs_to_install": [ + "out" + ], + "outputs": { + "debug": "/nix/store/kl8hjhf6x7dz7brs1ylkxy26qb8argaq-python3-3.11.9-debug", + "out": "/nix/store/q3x28mimkawkdjlvd78jxv3s0fk25vz8-python3-3.11.9" + }, + "system": "aarch64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "python3", + "broken": false, + "derivation": "/nix/store/23x4lr8y0y7d2gch5vnhmxw927ciqm60-python3-3.11.9.drv", + "description": "High-level dynamically-typed programming language", + "install_id": "python3", + "license": "Python-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "python3-3.11.9", + "pname": "python3", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.11.9", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/9lcbaggnygcqpgzakib5lwisks8gnn5i-python3-3.11.9" + }, + "system": "x86_64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "python3", + "broken": false, + "derivation": "/nix/store/9v1jlbifgwgfw0l9v745kifpj9zdpl60-python3-3.11.9.drv", + "description": "High-level dynamically-typed programming language", + "install_id": "python3", + "license": "Python-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "python3-3.11.9", + "pname": "python3", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.11.9", + "outputs_to_install": [ + "out" + ], + "outputs": { + "debug": "/nix/store/61rzpp3v8dsf6h17h3jnnwlm5hwc2brr-python3-3.11.9-debug", + "out": "/nix/store/6b1fqdwb3g56j5pazv8zkx9qd0mv3wiz-python3-3.11.9" + }, + "system": "x86_64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/x2ik7hjn0q4c94qyyajhhsrnxw24rm4b-uv-0.2.15.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "uv-0.2.15", + "pname": "uv", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.2.15", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/7a7h8y05b60cnccr18mchfagwibrhy0v-uv-0.2.15-dist", + "out": "/nix/store/zi83zbl2l4vw2sgygsgs6ib5587mizag-uv-0.2.15" + }, + "system": "aarch64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/1svddx8162ibj8v26fs8z709k79pdm24-uv-0.2.15.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "uv-0.2.15", + "pname": "uv", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.2.15", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/x0nx8qn17ljf84jpsc1hn1gg90if3a2a-uv-0.2.15-dist", + "out": "/nix/store/5f7vfq5gaz36xvf170agrad04ybhl8bn-uv-0.2.15" + }, + "system": "aarch64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/d0xzqj82pddbb8q5y3vdw7wbbm3bbfx0-uv-0.2.15.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "uv-0.2.15", + "pname": "uv", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.2.15", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/x172v7f4gr2zkkd51k0g80vz55513yis-uv-0.2.15-dist", + "out": "/nix/store/qw6i3mng0mr6hz28d0m87i18badysgk0-uv-0.2.15" + }, + "system": "x86_64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/lxc1d49wc3yp25pzmb3sgixsrwxq5ml0-uv-0.2.15.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "uv-0.2.15", + "pname": "uv", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.2.15", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/ap7bl4yas61vz3k0fh98wn08b9x8s79a-uv-0.2.15-dist", + "out": "/nix/store/6pxd9hxps14jr88mmixpvp5z3ygcdpdy-uv-0.2.15" + }, + "system": "x86_64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "xmlsec", + "broken": false, + "derivation": "/nix/store/p85izfrfdj8n22pm9iv1b8a511pm2i5n-xmlsec-1.2.34.drv", + "description": "XML Security Library in C based on libxml2", + "install_id": "xmlsec", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "xmlsec-1.2.34", + "pname": "xmlsec", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.2.34", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/mnrmn6vndrfgxyxmbqvmrwi7qjwr3d0m-xmlsec-1.2.34-dev", + "out": "/nix/store/ff6sr1v2q8gqmnyvpl6xfxw3r2lb56i3-xmlsec-1.2.34" + }, + "system": "aarch64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "xmlsec", + "broken": false, + "derivation": "/nix/store/7zscs792mb7v53i43jf4qq0gypgrql8g-xmlsec-1.2.34.drv", + "description": "XML Security Library in C based on libxml2", + "install_id": "xmlsec", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "xmlsec-1.2.34", + "pname": "xmlsec", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.2.34", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/k8n1j04qrbhlzxklrxhk32aphh58jqcf-xmlsec-1.2.34-dev", + "out": "/nix/store/qdscjbwglk2953azhhhsibf0xlsjig1h-xmlsec-1.2.34" + }, + "system": "aarch64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "xmlsec", + "broken": false, + "derivation": "/nix/store/cbl3q86h6vzzzi50ph82syrkha9g9mah-xmlsec-1.2.34.drv", + "description": "XML Security Library in C based on libxml2", + "install_id": "xmlsec", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "xmlsec-1.2.34", + "pname": "xmlsec", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.2.34", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/jc3nxrj9kv447gb5ywxqal45b7ick5c7-xmlsec-1.2.34-dev", + "out": "/nix/store/fzhimicsixlzc8k6l0f5vh5lzbxsl39c-xmlsec-1.2.34" + }, + "system": "x86_64-darwin", + "group": "python", + "priority": 5 + }, + { + "attr_path": "xmlsec", + "broken": false, + "derivation": "/nix/store/5z6p8lb90900s6k8lml62mlwjjx6whm2-xmlsec-1.2.34.drv", + "description": "XML Security Library in C based on libxml2", + "install_id": "xmlsec", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "xmlsec-1.2.34", + "pname": "xmlsec", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.2.34", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/z0k51x5cg15f2r058ypjzhf9bakzq16g-xmlsec-1.2.34-dev", + "out": "/nix/store/rrnig5ybklsrf8kiwn15lvci0rfq6379-xmlsec-1.2.34" + }, + "system": "x86_64-linux", + "group": "python", + "priority": 5 + }, + { + "attr_path": "cargo", + "broken": false, + "derivation": "/nix/store/a6j07nsrmnqhv0mm2bbnvnjcfkv3bxpz-cargo-1.80.1.drv", + "description": "Downloads your Rust project's dependencies and builds your project", + "install_id": "cargo", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "cargo-1.80.1", + "pname": "cargo", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/idfq37bavykpfahg0q8cpawj90sckagq-cargo-1.80.1" + }, + "system": "aarch64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "cargo", + "broken": false, + "derivation": "/nix/store/piqkpmwr5m4bn8p0d0j8q94y0bb7yfkw-cargo-1.80.1.drv", + "description": "Downloads your Rust project's dependencies and builds your project", + "install_id": "cargo", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "cargo-1.80.1", + "pname": "cargo", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/hgycsvahrwxwkq56zj5by28pxwx9sfqh-cargo-1.80.1" + }, + "system": "aarch64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "cargo", + "broken": false, + "derivation": "/nix/store/lw8a7gvkhkjfwfccpyy0p2i2kq1bq5qk-cargo-1.80.1.drv", + "description": "Downloads your Rust project's dependencies and builds your project", + "install_id": "cargo", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "cargo-1.80.1", + "pname": "cargo", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/rc3niv9fvii3lc862h81qbqca89yagg9-cargo-1.80.1" + }, + "system": "x86_64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "cargo", + "broken": false, + "derivation": "/nix/store/gjrrcbbsmjq4dp6gfrss50l6zm628qpw-cargo-1.80.1.drv", + "description": "Downloads your Rust project's dependencies and builds your project", + "install_id": "cargo", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "cargo-1.80.1", + "pname": "cargo", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/c0r47wb8xm1dbsvppw6gh75jfjakal1y-cargo-1.80.1" + }, + "system": "x86_64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "clippy", + "broken": false, + "derivation": "/nix/store/4bh8wbqf05jvl888ls2395iq2w5yksq1-clippy-1.80.1.drv", + "description": "Bunch of lints to catch common mistakes and improve your Rust code", + "install_id": "clippy", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "clippy-1.80.1", + "pname": "clippy", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/aswyg8bfc3y5nzv6asaz6xlr5b79vvr6-clippy-1.80.1" + }, + "system": "aarch64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "clippy", + "broken": false, + "derivation": "/nix/store/hf78d32s4l9ynzigdyfsqimp58s00d42-clippy-1.80.1.drv", + "description": "Bunch of lints to catch common mistakes and improve your Rust code", + "install_id": "clippy", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "clippy-1.80.1", + "pname": "clippy", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "debug": "/nix/store/xlmkc4xzv3wjbr00vgwxy3k6d1k5hqa5-clippy-1.80.1-debug", + "out": "/nix/store/1dh3cz88wnf12i8cylllgn8j7m0z2j7i-clippy-1.80.1" + }, + "system": "aarch64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "clippy", + "broken": false, + "derivation": "/nix/store/3a0yk18a8h7cqvca1mzma1fc97vz7f6a-clippy-1.80.1.drv", + "description": "Bunch of lints to catch common mistakes and improve your Rust code", + "install_id": "clippy", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "clippy-1.80.1", + "pname": "clippy", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/2qw6a3ay1da4c2l2rcalqi35n27my591-clippy-1.80.1" + }, + "system": "x86_64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "clippy", + "broken": false, + "derivation": "/nix/store/avz5cyyj22cz4dc53bx4p8mfrx6frzj9-clippy-1.80.1.drv", + "description": "Bunch of lints to catch common mistakes and improve your Rust code", + "install_id": "clippy", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "clippy-1.80.1", + "pname": "clippy", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "debug": "/nix/store/zfbf9qngj05s22fbg8dbcarjgzn9hff0-clippy-1.80.1-debug", + "out": "/nix/store/6pblw8l1ipgj2g1jvd7grhs1cnpqp9vm-clippy-1.80.1" + }, + "system": "x86_64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "libiconv", + "broken": false, + "derivation": "/nix/store/5g94mlh38xmfwq5wpik66jsaw1g026ss-libiconv-99.drv", + "description": "Iconv(3) implementation", + "install_id": "libiconv", + "license": "[ BSD-2-Clause, BSD-3-Clause, APSL-1.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "libiconv-99", + "pname": "libiconv", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "99", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dev": "/nix/store/r2jkk7lsmi17m5lp3r7aip9626n07qfz-libiconv-99-dev", + "out": "/nix/store/cjzmz9dskblgkbv4by2wnsyvdjw6jpcm-libiconv-99" + }, + "system": "aarch64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustPlatform.rustLibSrc", + "broken": false, + "derivation": "/nix/store/za8qn1akdaglwdm4sv2ndnsa92hy54j7-rust-lib-src.drv", + "install_id": "rust-lib-src", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rust-lib-src", + "pname": "rustLibSrc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "rust-lib-src", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/9mwdk449lws263ykk01xrbywpdzqmgh3-rust-lib-src" + }, + "system": "aarch64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustPlatform.rustLibSrc", + "broken": false, + "derivation": "/nix/store/nin524xcp0l7xzw4ccbgpzxsncf5y447-rust-lib-src.drv", + "install_id": "rust-lib-src", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rust-lib-src", + "pname": "rustLibSrc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "rust-lib-src", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/b2kn9wlf1bhz2kry46d1xv0ir402vfrw-rust-lib-src" + }, + "system": "aarch64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustPlatform.rustLibSrc", + "broken": false, + "derivation": "/nix/store/7g5crphsvw21gbwm5ij3b5pbhx0i0m8j-rust-lib-src.drv", + "install_id": "rust-lib-src", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rust-lib-src", + "pname": "rustLibSrc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "rust-lib-src", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/p84mx4ksfzlvpi12rcxhsaihy0pkynxs-rust-lib-src" + }, + "system": "x86_64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustPlatform.rustLibSrc", + "broken": false, + "derivation": "/nix/store/4ix01cdzxqcpk452lndkw3d3pib10d4w-rust-lib-src.drv", + "install_id": "rust-lib-src", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rust-lib-src", + "pname": "rustLibSrc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "rust-lib-src", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/5dh2vfghjizfwgci0z00hbrpx5vwv6zc-rust-lib-src" + }, + "system": "x86_64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustc", + "broken": false, + "derivation": "/nix/store/sw1xd1imm58b2bq23fasx7jk9yfalw40-rustc-wrapper-1.80.1.drv", + "description": "Safe, concurrent, practical language (wrapper script)", + "install_id": "rustc", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustc-wrapper-1.80.1", + "pname": "rustc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "wrapper-1.80.1", + "outputs_to_install": [ + "out", + "man" + ], + "outputs": { + "doc": "/nix/store/pwm2c3c2msxiy78ms1g1syqcf4zjwidx-rustc-wrapper-1.80.1-doc", + "man": "/nix/store/7irfsbn1g91hn132755l5nr0sajrip7v-rustc-wrapper-1.80.1-man", + "out": "/nix/store/3gggf0knmsc6srxq89gm424rffwma6rv-rustc-wrapper-1.80.1" + }, + "system": "aarch64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustc", + "broken": false, + "derivation": "/nix/store/fs6xy3p7x30l7yx7q8q1cjrdswry8sy9-rustc-wrapper-1.80.1.drv", + "description": "Safe, concurrent, practical language (wrapper script)", + "install_id": "rustc", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustc-wrapper-1.80.1", + "pname": "rustc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "wrapper-1.80.1", + "outputs_to_install": [ + "out", + "man" + ], + "outputs": { + "doc": "/nix/store/ycyqn2r84lmhkd0vf605nz28ngb6qbbm-rustc-wrapper-1.80.1-doc", + "man": "/nix/store/4d1nnd97sdqy7rvndqb9jzcni6q8ibc9-rustc-wrapper-1.80.1-man", + "out": "/nix/store/1b35qfalqp7jdwhd2642cki5b29mlg9w-rustc-wrapper-1.80.1" + }, + "system": "aarch64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustc", + "broken": false, + "derivation": "/nix/store/w4n4a5cvwygrnqfn889s6f1ndsjxbs10-rustc-wrapper-1.80.1.drv", + "description": "Safe, concurrent, practical language (wrapper script)", + "install_id": "rustc", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustc-wrapper-1.80.1", + "pname": "rustc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "wrapper-1.80.1", + "outputs_to_install": [ + "out", + "man" + ], + "outputs": { + "doc": "/nix/store/0b1mwhz7l71wdwxf925q4k8cvmcpx3aq-rustc-wrapper-1.80.1-doc", + "man": "/nix/store/nysgy2cz1bsjixn7igrzglj9s1bh0cfn-rustc-wrapper-1.80.1-man", + "out": "/nix/store/hl60dz242vrknfd15i984xwmzjm36z1b-rustc-wrapper-1.80.1" + }, + "system": "x86_64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustc", + "broken": false, + "derivation": "/nix/store/m5g06mxcks61p06zn7fr5yi822v99x3q-rustc-wrapper-1.80.1.drv", + "description": "Safe, concurrent, practical language (wrapper script)", + "install_id": "rustc", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustc-wrapper-1.80.1", + "pname": "rustc", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "wrapper-1.80.1", + "outputs_to_install": [ + "out", + "man" + ], + "outputs": { + "doc": "/nix/store/iyl50h2sik10vb40kiipiavzlgrrks04-rustc-wrapper-1.80.1-doc", + "man": "/nix/store/6ijm3z013cgcwjs60g5sjmd8i8nscq10-rustc-wrapper-1.80.1-man", + "out": "/nix/store/n4nnqpcaxk621i8lwr86116fv5kfy3jl-rustc-wrapper-1.80.1" + }, + "system": "x86_64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustfmt", + "broken": false, + "derivation": "/nix/store/cqa5g8hhr7l15gzymwb5gdkiq4ixwygy-rustfmt-1.80.1.drv", + "description": "Tool for formatting Rust code according to style guidelines", + "install_id": "rustfmt", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustfmt-1.80.1", + "pname": "rustfmt", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/p2xnaif204agqsmdlgmkypbhlk3isnx8-rustfmt-1.80.1" + }, + "system": "aarch64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustfmt", + "broken": false, + "derivation": "/nix/store/z4j918159p6jfssbf4ky03l0f6kx6bnf-rustfmt-1.80.1.drv", + "description": "Tool for formatting Rust code according to style guidelines", + "install_id": "rustfmt", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustfmt-1.80.1", + "pname": "rustfmt", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/6pwc4hkrsk5pxsd38zcdyjzjcml3hlvh-rustfmt-1.80.1" + }, + "system": "aarch64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustfmt", + "broken": false, + "derivation": "/nix/store/nandqymhz263w22xyrlf83k7njjnpg6f-rustfmt-1.80.1.drv", + "description": "Tool for formatting Rust code according to style guidelines", + "install_id": "rustfmt", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustfmt-1.80.1", + "pname": "rustfmt", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/kh259aj4gv6xnnaa2ayi0q1qmsf98ck0-rustfmt-1.80.1" + }, + "system": "x86_64-darwin", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "rustfmt", + "broken": false, + "derivation": "/nix/store/f5c8hrz13dx5rp6v0j0jnhqyvn9q0c1s-rustfmt-1.80.1.drv", + "description": "Tool for formatting Rust code according to style guidelines", + "install_id": "rustfmt", + "license": "[ MIT, Apache-2.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "name": "rustfmt-1.80.1", + "pname": "rustfmt", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev_count": 690827, + "rev_date": "2024-10-09T16:51:18Z", + "scrape_date": "2024-10-11T03:53:01Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.80.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mawqalpjhg4764l6rl8nygnzmmph3zbj-rustfmt-1.80.1" + }, + "system": "x86_64-linux", + "group": "rust-toolchain", + "priority": 5 + }, + { + "attr_path": "mprocs", + "broken": false, + "derivation": "/nix/store/5hckam5lgqqmlkjd1r6a0bzkkvhfm349-mprocs-0.7.1.drv", + "description": "TUI tool to run multiple commands in parallel and show the output of each command separately", + "install_id": "mprocs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "mprocs-0.7.1", + "pname": "mprocs", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.7.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/pk1mb41ryrw2izq15pymxjwqvw8mr29p-mprocs-0.7.1" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "mprocs", + "broken": false, + "derivation": "/nix/store/lg4yvv4az18g59l7rgfvn2pqxidx5qgb-mprocs-0.7.1.drv", + "description": "TUI tool to run multiple commands in parallel and show the output of each command separately", + "install_id": "mprocs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "mprocs-0.7.1", + "pname": "mprocs", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.7.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/dynm867fg992nb5wlysvrg1p14cwgsca-mprocs-0.7.1" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "mprocs", + "broken": false, + "derivation": "/nix/store/xbicacfnn0gnz08rri7jwc40byxrm404-mprocs-0.7.1.drv", + "description": "TUI tool to run multiple commands in parallel and show the output of each command separately", + "install_id": "mprocs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "mprocs-0.7.1", + "pname": "mprocs", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.7.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/kx138kp8rxjwph6wqp3lk8v6fybij2bz-mprocs-0.7.1" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "mprocs", + "broken": false, + "derivation": "/nix/store/ydrq0m8lp0m3pjpd9ndg1x30z3bg81qx-mprocs-0.7.1.drv", + "description": "TUI tool to run multiple commands in parallel and show the output of each command separately", + "install_id": "mprocs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=9f4128e00b0ae8ec65918efeba59db998750ead6", + "name": "mprocs-0.7.1", + "pname": "mprocs", + "rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", + "rev_count": 647193, + "rev_date": "2024-07-03T18:27:49Z", + "scrape_date": "2024-07-05T00:14:29Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.7.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/ky3hbhjvsr4l5nh1xjipkbswll37j0dq-mprocs-0.7.1" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ] +} \ No newline at end of file diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml new file mode 100644 index 0000000000000..eae42ba88603c --- /dev/null +++ b/.flox/env/manifest.toml @@ -0,0 +1,138 @@ +# +# This is a Flox environment manifest. +# Visit flox.dev/docs/concepts/manifest/ +# or see flox-edit(1), manifest.toml(5) for more information. +# +# Flox manifest version managed by Flox CLI +version = 1 + +# List packages you wish to install in your environment inside +# the `[install]` section. +[install] +# Python +python3 = { pkg-path = "python3", version = "3.11", pkg-group = "python" } +uv = { pkg-path = "uv", pkg-group = "python" } +xmlsec = { pkg-path = "xmlsec", pkg-group = "python", version = "1.2.34" } +libtool = { pkg-path = "libtool", pkg-group = "python" } +# Node +nodejs = { pkg-path = "nodejs_18", pkg-group = "nodejs" } +corepack = { pkg-path = "corepack", pkg-group = "nodejs" } +brotli = { pkg-path = "brotli", pkg-group = "nodejs" } +# Rust toolchain (based on https://flox.dev/docs/cookbook/languages/rust/) +cargo.pkg-path = "cargo" +cargo.pkg-group = "rust-toolchain" +cargo.version = "1.80.1" +rustc.pkg-path = "rustc" +rustc.pkg-group = "rust-toolchain" +clippy.pkg-path = "clippy" +clippy.pkg-group = "rust-toolchain" +rustfmt.pkg-path = "rustfmt" +rustfmt.pkg-group = "rust-toolchain" +rust-lib-src.pkg-path = "rustPlatform.rustLibSrc" +rust-lib-src.pkg-group = "rust-toolchain" +libiconv.pkg-path = "libiconv" +libiconv.systems = ["aarch64-darwin"] +libiconv.pkg-group = "rust-toolchain" +# Go +go = { pkg-path = "go", version = "1.22", pkg-group = "go" } +# General CLI tools +mprocs.pkg-path = "mprocs" + +# Set environment variables in the `[vars]` section. These variables may not +# reference one another, and are added to the environment without first +# expanding them. They are available for use in the `[profile]` and `[hook]` +# scripts. +[vars] +DEBUG = "1" +POSTHOG_SKIP_MIGRATION_CHECKS = "1" +DIRENV_LOG_FORMAT = "" # Disable direnv activation logging (in case direnv is present) + +# The `hook.on-activate` script is run by the *bash* shell immediately upon +# activating an environment, and will not be invoked if Flox detects that the +# environment has previously been activated. Variables set by the script will +# be inherited by `[profile]` scripts defined below. Note that any stdout +# generated by the script will be redirected to stderr. +[hook] +on-activate = ''' +# Guide through installing and configuring direnv if it's not present (optionally) +if [[ -t 0 ]] && [ ! -d "$DIRENV_DIR" ] && [ ! -f "$FLOX_ENV_CACHE/.hush-direnv" ]; then + read -p " +šŸ‘‰ Use direnv (https://direnv.net) for automatic activation of this environment by your shell. +ā“ Would you like direnv to be set up now? (y/n, default: y)" -n 1 -r + if [[ $REPLY =~ ^[Yy]$ || -z $REPLY ]]; then + $FLOX_ENV_CACHE/../env/direnv-setup.sh + else + echo "ā­ļø Skipping direnv setup. This message will not be shown again, but if you change your mind, just run '.flox/bin/direnv-setup.sh'" + touch $FLOX_ENV_CACHE/.hush-direnv + fi + echo +fi + +# Set up a Python virtual environment +export PYTHON_DIR="$FLOX_ENV_CACHE/venv" +if [ ! -d "$PYTHON_DIR" ]; then + uv venv "$PYTHON_DIR" --allow-existing +fi + +echo -e "Python virtual environment path: \033[33m.flox/cache/venv\033[0m" +echo -e "Python interpreter path, for your code editor: \033[33m.flox/cache/venv/bin/python\033[0m" + +source "$PYTHON_DIR/bin/activate" + +# Install Python dependencies (this is practically instant thanks to uv) +uv pip install -q -r requirements.txt -r requirements-dev.txt + +# Install top-level Node dependencies (only if not present all yet, because this takes almost a second even with pnpm) +# This also sets up pre-commit hooks via Husky +if [ ! -d "node_modules" ]; then + pnpm install -s +fi + +if [[ -t 0 ]]; then # The block below only runs when in an interactive shell + # Add required entries to /etc/hosts if not present + if ! grep -q "127.0.0.1 kafka clickhouse" /etc/hosts; then + echo + echo "šŸšØ Amending /etc/hosts to map hostnames 'kafka' and 'clickhouse' to 127.0.0.1..." + echo "127.0.0.1 kafka clickhouse" | sudo tee -a /etc/hosts 1> /dev/null + echo "āœ… /etc/hosts amended" + fi + + # Print intro message + echo -e " +IT'S DANGEROUS TO GO ALONE! RUN THIS: +1. \033[31mbin/migrate\033[0m - to run all migrations +2. \033[32mbin/start\033[0m - to start the entire stack +3. \033[34m./manage.py generate_demo_data\033[0m - to create a user with demo data +" +fi +''' + +# Scripts defined in the `[profile]` section are *sourced* by *your shell* and +# inherit environment variables set in the `[vars]` section and by `[hook]` scripts. +# The `profile.common` script is sourced by all shells and special care should be +# taken to ensure compatibility with all shells, after which exactly one of +# `profile.{bash,fish,tcsh,zsh}` is sourced by the corresponding shell. +[profile] +bash = ''' + source "$PYTHON_DIR/bin/activate" +''' +zsh = ''' + source "$PYTHON_DIR/bin/activate" +''' +fish = ''' + source "$PYTHON_DIR/bin/activate.fish" +''' +tcsh = ''' + source "$PYTHON_DIR/bin/activate.csh" +''' + +# The `[services]` section of the manifest allows you to define services. +# Services defined here use the packages provided by the `[install]` section +# and any variables you've defined in the `[vars]` section or `hook.on-activate` script. +[services] +# db.command = "postgres -D $FLOX_ENV_CACHE/postgres" + +# Additional options can be set in the `[options]` section. Refer to +# manifest.toml(5) for a list of available options. +[options] +systems = ["aarch64-darwin", "aarch64-linux", "x86_64-darwin", "x86_64-linux"] diff --git a/.gitignore b/.gitignore index 362ec30bce107..9228d5f666415 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ +/env venv -env .venv *.pyc __pycache__/ @@ -12,7 +12,6 @@ debug.log *.swo node_modules/ *.code-workspace -node_modules .mypy_cache frontend/.cache/ frontend/dist/ @@ -76,4 +75,4 @@ pyrightconfig.json .temporal-worker-settings temp_test_run_data.json .temp-deepeval-cache.json -.eslintcache \ No newline at end of file +.eslintcache diff --git a/bin/migrate b/bin/migrate index 2f2aa49ed749b..76645d6ae3714 100755 --- a/bin/migrate +++ b/bin/migrate @@ -1,5 +1,6 @@ #!/bin/bash set -e + SCRIPT_DIR=$(dirname "$(readlink -f "$0")") # NOTE when running in docker, rust might not exist so we need to check for it @@ -7,8 +8,12 @@ if [ -d "$SCRIPT_DIR/../rust" ]; then bash $SCRIPT_DIR/../rust/bin/migrate-cyclotron fi +( + python manage.py migrate_clickhouse + python manage.py sync_replicated_schema +) & # ClickHouse migrations can run in parallel to Postgres ones + python manage.py migrate -python manage.py migrate_clickhouse # NOTE: we do not apply any non-noop migrations here. Rather these are run # manually within the UI. See https://posthog.com/docs/runbook/async-migrations @@ -20,4 +25,4 @@ python manage.py run_async_migrations --complete-noop-migrations # k8s pod deployments. python manage.py run_async_migrations --check -python manage.py sync_replicated_schema +wait $(jobs -p) # Make sure CH migrations are done before we exit diff --git a/bin/mprocs.yaml b/bin/mprocs.yaml index c7831d818d589..cb3761250d035 100644 --- a/bin/mprocs.yaml +++ b/bin/mprocs.yaml @@ -1,24 +1,26 @@ procs: celery-worker: - shell: 'source ./bin/celery-queues.env && python manage.py run_autoreload_celery --type=worker' + shell: 'bin/check_kafka_clickhouse_up && source ./bin/celery-queues.env && python manage.py run_autoreload_celery --type=worker' celery-beat: - shell: 'source ./bin/celery-queues.env && python manage.py run_autoreload_celery --type=beat' + shell: 'bin/check_kafka_clickhouse_up && source ./bin/celery-queues.env && python manage.py run_autoreload_celery --type=beat' plugin-server: - shell: './bin/plugin-server' + shell: 'bin/check_kafka_clickhouse_up && ./bin/plugin-server' backend: - shell: './bin/start-backend' + shell: 'bin/check_kafka_clickhouse_up && ./bin/start-backend' frontend: - shell: './bin/start-frontend' + shell: 'bin/check_kafka_clickhouse_up && ./bin/start-frontend' temporal-worker: # added a sleep to give the docker stuff time to start - shell: 'sleep 10 && python3 manage.py start_temporal_worker' + shell: 'bin/check_kafka_clickhouse_up && bin/check_temporal_up && python manage.py start_temporal_worker' docker-compose: shell: 'docker compose -f docker-compose.dev.yml up' stop: send-keys: [''] + +mouse_scroll_speed: 1 diff --git a/bin/start b/bin/start index 171656ed0e3ec..ceaddede2140f 100755 --- a/bin/start +++ b/bin/start @@ -2,25 +2,11 @@ set -e -trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT - export DEBUG=${DEBUG:-1} -export SKIP_SERVICE_VERSION_REQUIREMENTS=1 +export SKIP_SERVICE_VERSION_REQUIREMENTS=${SKIP_SERVICE_VERSION_REQUIREMENTS:-1} export BILLING_SERVICE_URL=${BILLING_SERVICE_URL:-https://billing.dev.posthog.dev} export HOG_HOOK_URL=${HOG_HOOK_URL:-http://localhost:3300/hoghook} -service_warning() { - echo -e "\033[0;31m$1 isn't ready. You can run the stack with:\ndocker compose -f docker-compose.dev.yml up\nIf you have already ran that, just make sure that services are starting properly, and sit back.\nWaiting for $1 to start...\033[0m" -} - -nc -z localhost 9092 || ( service_warning 'Kafka'; bin/check_kafka_clickhouse_up ) -curl -s 'http://localhost:8123/ping' || ( service_warning 'ClickHouse'; bin/check_kafka_clickhouse_up ) - [ ! -f ./share/GeoLite2-City.mmdb ] && ( curl -L "https://mmdbcdn.posthog.net/" --http1.1 | brotli --decompress --output=./share/GeoLite2-City.mmdb ) -./bin/start-worker & -./bin/start-backend & -./bin/start-frontend & -./bin/temporal-django-worker & - -wait +exec mprocs --config bin/mprocs.yaml diff --git a/bin/start-mprocs b/bin/start-mprocs deleted file mode 100755 index ceaddede2140f..0000000000000 --- a/bin/start-mprocs +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -e - -export DEBUG=${DEBUG:-1} -export SKIP_SERVICE_VERSION_REQUIREMENTS=${SKIP_SERVICE_VERSION_REQUIREMENTS:-1} -export BILLING_SERVICE_URL=${BILLING_SERVICE_URL:-https://billing.dev.posthog.dev} -export HOG_HOOK_URL=${HOG_HOOK_URL:-http://localhost:3300/hoghook} - -[ ! -f ./share/GeoLite2-City.mmdb ] && ( curl -L "https://mmdbcdn.posthog.net/" --http1.1 | brotli --decompress --output=./share/GeoLite2-City.mmdb ) - -exec mprocs --config bin/mprocs.yaml