diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..120dcb9c6a --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,18 @@ +FROM jetpackio/devbox:latest + +# Installing your devbox project +WORKDIR /code +USER root:root +RUN mkdir -p /code && chown ${DEVBOX_USER}:${DEVBOX_USER} /code +USER ${DEVBOX_USER}:${DEVBOX_USER} +COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} devbox.json devbox.json +COPY --chown=${DEVBOX_USER}:${DEVBOX_USER} devbox.lock devbox.lock + + +# Step 6: Copying local flakes directories +COPY local-flake local-flake +COPY local-flake local-flake + +RUN devbox run -- echo "Installed Packages." + +RUN devbox shellenv --init-hook >> ~/.profile diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..e7ae9f11fe --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,16 @@ +{ + "name": "Devbox Remote Container", + "build": { + "dockerfile": "./Dockerfile", + "context": ".." + }, + "customizations": { + "vscode": { + "settings": {}, + "extensions": [ + "jetpack-io.devbox" + ] + } + }, + "remoteUser": "devbox" +} \ No newline at end of file diff --git a/.envrc b/.envrc index 8b77fd60b6..84fc8e5361 100644 --- a/.envrc +++ b/.envrc @@ -1,7 +1,7 @@ -strict_env -if has nix -then - unset GOPATH # Required for editors to discover the go-tools in the flake. - use flake - layout ruby -fi \ No newline at end of file +# Automatically sets up your devbox environment whenever you cd into this +# directory via our direnv integration: + +eval "$(devbox generate direnv --print-envrc)" + +# check out https://www.jetpack.io/devbox/docs/ide_configuration/direnv/ +# for more details diff --git a/.github/workflows/asdf2devbox.yaml b/.github/workflows/asdf2devbox.yaml new file mode 100644 index 0000000000..405a86e316 --- /dev/null +++ b/.github/workflows/asdf2devbox.yaml @@ -0,0 +1,87 @@ +name: "ASDF to Devbox dependency version sync" +# This is only required until https://github.com/renovatebot/renovate/issues/27543 is resolved +on: + pull_request: + paths: + - ".tool-versions" +jobs: + asdf2devbox: + runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: write + steps: + # We potentially want to add at the end a commit by the author of the most recent + # commit in this branch. However github has some protection which prevents workflows + # to run in case a commit has been pushed with the default job-specific github-token. + # For this case we need to use another one here. + # + # For more information, see: + # + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + token: ${{ secrets.APP_AUTOSCALER_CI_TOKEN }} # With push token that can trigger new PR jobs + + - name: Configure git + id: configure_git + shell: bash + run: | + #! /usr/bin/env bash + set -eu -o pipefail + + git config --global --add safe.directory "${GITHUB_WORKSPACE}" + + commit_author_name="$(git log -1 --pretty=format:'%an')" + commit_author_email="$(git log -1 --pretty=format:'%ae')" + commit_subject="$(git log -1 --pretty=format:'%s')" + readonly commit_author_name commit_author_email commit_subject + + git config user.name "${commit_author_name}" + git config user.email "${commit_author_email}" + + echo "commit_subject=${commit_subject}" >> "$GITHUB_OUTPUT" + + - name: Install devbox + uses: jetify-com/devbox-install-action@v0.9.0 + with: + enable-cache: 'true' + + - name: asdf2devbox.py + shell: bash + run: | + #! /usr/bin/env bash + set -eu -o pipefail + + # We need the subsequent standard-message to determine if the last commit + # has already cleaned up everything. In this case this workflow should not + # change anything and we exit early. + # An alternative would be to use a tag for this. But this does affect the whole + # PR instead of just the latest commit. + tidy_message='πŸ€–πŸ¦ΎπŸ› οΈ scripts/asdf2devbox.py' + readonly tidy_message + + commit_message='${{steps.configure_git.outputs.commit_subject}}' + readonly commit_message + + if [[ "${commit_message}" == "${tidy_message}" ]] + then + echo 'This commit was by the asdf2devbox workflow! Exiting …' + exit 0 + fi + + devbox run scripts/asdf2devbox.py + + num_changed_files="$(git status --porcelain | wc --lines)" + declare -i -r num_changed_files + if ((num_changed_files > 0)) + then + echo 'Changes to some files were necessary!' + git add . + git commit --message="${tidy_message}" + git push origin "HEAD:${GITHUB_HEAD_REF}" + else + echo 'No files changed!' + fi + echo '🏁' diff --git a/.tool-versions b/.tool-versions index ddc660fcb5..95c1f81d33 100644 --- a/.tool-versions +++ b/.tool-versions @@ -2,7 +2,7 @@ act 0.2.62 actionlint 1.6.27 bosh 7.5.6 cf 8.7.10 -concourse 7.11.2 +concourse 7.10.0 direnv 2.34.0 gcloud 473.0.0 ginkgo 2.17.2 diff --git a/devbox.json b/devbox.json new file mode 100644 index 0000000000..137c585c81 --- /dev/null +++ b/devbox.json @@ -0,0 +1,46 @@ +{ + "packages": [ + "path:local-flake#bosh-bootloader", + "path:local-flake#app-autoscaler-cli-plugin", + "credhub-cli@latest", + "delve@latest", + "gh@latest", + "go-tools@latest", + "gopls@latest", + "nodejs@latest", + "nodePackages.yaml-language-server@latest", + "rubocop@latest", + "rubyPackages.solargraph@latest", + "swagger-cli@latest", + "go@1.21.4", + "actionlint@1.6.27", + "direnv@2.34.0", + "gnumake@4.4", + "maven@3.8.6", + "pre-commit@latest", + "bosh-cli@7.5.6", + "golangci-lint@1.57.2", + "yq-go@4.43.1", + "which@latest", + "jq@latest", + "fly@7.10.0", + "python@latest", + "act@latest", + "cloudfoundry-cli@8.7.10", + "google-cloud-sdk@latest", + "ginkgo@latest", + "temurin-bin-17@latest", + "ruby@latest", + "shellcheck@0.10.0" + ], + "shell": { + "init_hook": [ + "cf install-plugin -f $(which app-autoscaler-cli-plugin)" + ], + "scripts": { + "test": [ + "echo \"Error: no test specified\" && exit 1" + ] + } + } +} diff --git a/devbox.lock b/devbox.lock new file mode 100644 index 0000000000..a6fd1b8a16 --- /dev/null +++ b/devbox.lock @@ -0,0 +1,1164 @@ +{ + "lockfile_version": "1", + "packages": { + "act@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#act", + "source": "devbox-search", + "version": "0.2.61", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/0vv50cajcl1vsadkz0rwhzzdzcphfym9-act-0.2.61", + "default": true + } + ], + "store_path": "/nix/store/0vv50cajcl1vsadkz0rwhzzdzcphfym9-act-0.2.61" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/cix9yxzisv5vpiz16lq42jm06gksr1lj-act-0.2.61", + "default": true + } + ], + "store_path": "/nix/store/cix9yxzisv5vpiz16lq42jm06gksr1lj-act-0.2.61" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/zsbb15dvpzp9cim1hc1xng201rm9l65r-act-0.2.61", + "default": true + } + ], + "store_path": "/nix/store/zsbb15dvpzp9cim1hc1xng201rm9l65r-act-0.2.61" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/5iz6aqqdyr8drz64ic8vx86kr0hir0vk-act-0.2.61", + "default": true + } + ], + "store_path": "/nix/store/5iz6aqqdyr8drz64ic8vx86kr0hir0vk-act-0.2.61" + } + } + }, + "actionlint@1.6.27": { + "last_modified": "2024-03-17T01:03:25Z", + "resolved": "github:NixOS/nixpkgs/299d4668ba61600311553920d9fd9c102145b2cb#actionlint", + "source": "devbox-search", + "version": "1.6.27", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/nnhjp60w14pdy1hjgxn9dfsg4nbfs93v-actionlint-1.6.27" + }, + "aarch64-linux": { + "store_path": "/nix/store/p8rc44x83sld3wk1m4y27za9n1mjyk48-actionlint-1.6.27" + }, + "x86_64-darwin": { + "store_path": "/nix/store/7v1lh7c3pwlax5fy7pw233czn4hs89hl-actionlint-1.6.27" + }, + "x86_64-linux": { + "store_path": "/nix/store/56xxvs3yijdmhhxbfvps38nz95xdxgyl-actionlint-1.6.27" + } + } + }, + "bosh-cli@7.5.6": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#bosh-cli", + "source": "devbox-search", + "version": "7.5.6", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/p2sm9lj0jlikhh69xi55larmyqh61ryw-bosh-cli-7.5.6", + "default": true + } + ], + "store_path": "/nix/store/p2sm9lj0jlikhh69xi55larmyqh61ryw-bosh-cli-7.5.6" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/w3sby9zipmphdgsjd2xbaqna9qsb3db1-bosh-cli-7.5.6", + "default": true + } + ], + "store_path": "/nix/store/w3sby9zipmphdgsjd2xbaqna9qsb3db1-bosh-cli-7.5.6" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/i7csc1lqbrw76hhibxyi799blf1mi6fm-bosh-cli-7.5.6", + "default": true + } + ], + "store_path": "/nix/store/i7csc1lqbrw76hhibxyi799blf1mi6fm-bosh-cli-7.5.6" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dila416vvd6zjr1rb54ygl39b84x4mc4-bosh-cli-7.5.6", + "default": true + } + ], + "store_path": "/nix/store/dila416vvd6zjr1rb54ygl39b84x4mc4-bosh-cli-7.5.6" + } + } + }, + "cloudfoundry-cli@8.7.10": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#cloudfoundry-cli", + "source": "devbox-search", + "version": "8.7.10", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/1aigw2nm7is18821nqxpx2ml090ir97j-cloudfoundry-cli-8.7.10", + "default": true + } + ], + "store_path": "/nix/store/1aigw2nm7is18821nqxpx2ml090ir97j-cloudfoundry-cli-8.7.10" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dy0559nm61x9n1kanibppr1kzrwkbvxc-cloudfoundry-cli-8.7.10", + "default": true + } + ], + "store_path": "/nix/store/dy0559nm61x9n1kanibppr1kzrwkbvxc-cloudfoundry-cli-8.7.10" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/y5wk93kiyank5np7cxfgndp4jhlgnk1d-cloudfoundry-cli-8.7.10", + "default": true + } + ], + "store_path": "/nix/store/y5wk93kiyank5np7cxfgndp4jhlgnk1d-cloudfoundry-cli-8.7.10" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/y80g7qab72ym96bn766x6rpx58bsd9g7-cloudfoundry-cli-8.7.10", + "default": true + } + ], + "store_path": "/nix/store/y80g7qab72ym96bn766x6rpx58bsd9g7-cloudfoundry-cli-8.7.10" + } + } + }, + "credhub-cli@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#credhub-cli", + "source": "devbox-search", + "version": "2.9.27", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/7yp4g9gxairkvf2jdx0a22iz6assfnvc-credhub-cli-2.9.27" + }, + "aarch64-linux": { + "store_path": "/nix/store/2aaxi9nxnkr7d3mzqadb8yab2d7p4q3s-credhub-cli-2.9.27" + }, + "x86_64-darwin": { + "store_path": "/nix/store/jb12m850bbkv2w2hfgxranyw8zdzvy0w-credhub-cli-2.9.27" + }, + "x86_64-linux": { + "store_path": "/nix/store/gcqisc7987hwfxhqgrx5lqdprhdpj1xw-credhub-cli-2.9.27" + } + } + }, + "delve@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#delve", + "source": "devbox-search", + "version": "1.22.1", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/ll01c177yyphhw32rpfw8v11vbm1rhf7-delve-1.22.1" + }, + "aarch64-linux": { + "store_path": "/nix/store/5njigh11h33wq57qass6a0lb91fjwmnb-delve-1.22.1" + }, + "x86_64-darwin": { + "store_path": "/nix/store/zbzlc5nkyp4mad0cm2gy8ys1jm3qqafa-delve-1.22.1" + }, + "x86_64-linux": { + "store_path": "/nix/store/8nh4mcw7gql6xk3pxp538hi1ndsa51y1-delve-1.22.1" + } + } + }, + "direnv@2.34.0": { + "last_modified": "2024-03-08T13:51:52Z", + "resolved": "github:NixOS/nixpkgs/a343533bccc62400e8a9560423486a3b6c11a23b#direnv", + "source": "devbox-search", + "version": "2.34.0", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/4bqjfmrf3w2q1aqjmmcq0c012gavc7ci-direnv-2.34.0" + }, + "aarch64-linux": { + "store_path": "/nix/store/yj744ay9rf1nf2wj09sdi64nnvdv4n7r-direnv-2.34.0" + }, + "x86_64-darwin": { + "store_path": "/nix/store/ncwb752y0avqkb8kpx7xn5xw8zs0aryg-direnv-2.34.0" + }, + "x86_64-linux": { + "store_path": "/nix/store/3bmgmpaqm8p34hi6xb1y4fisf5n0pbbh-direnv-2.34.0" + } + } + }, + "fly@7.10.0": { + "last_modified": "2023-10-25T16:49:13-04:00", + "resolved": "github:NixOS/nixpkgs/75a52265bda7fd25e06e3a67dee3f0354e73243c#fly", + "source": "devbox-search", + "version": "7.10.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/8izh5mrp88vpv2p22r5djhg1l3yijcir-fly-7.10.0", + "default": true + } + ], + "store_path": "/nix/store/8izh5mrp88vpv2p22r5djhg1l3yijcir-fly-7.10.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/bjhdz4zxq77av8rlvg32agpd8aixh7bh-fly-7.10.0", + "default": true + } + ], + "store_path": "/nix/store/bjhdz4zxq77av8rlvg32agpd8aixh7bh-fly-7.10.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/60jgzhcj2s4rchrmqc479gi46fkydjyc-fly-7.10.0", + "default": true + } + ], + "store_path": "/nix/store/60jgzhcj2s4rchrmqc479gi46fkydjyc-fly-7.10.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/ddyvlw35d8skg4r7gv732g19ch7bwrh0-fly-7.10.0", + "default": true + } + ], + "store_path": "/nix/store/ddyvlw35d8skg4r7gv732g19ch7bwrh0-fly-7.10.0" + } + } + }, + "gh@latest": { + "last_modified": "2024-03-06T17:57:40Z", + "resolved": "github:NixOS/nixpkgs/58ae79ea707579c40102ddf62d84b902a987c58b#gh", + "source": "devbox-search", + "version": "2.45.0", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/n5hz2hmaxy8mr4qs91pvqwzbdza53bck-gh-2.45.0" + }, + "aarch64-linux": { + "store_path": "/nix/store/8321g2vjajybabcvl9kyjklknx7bl7qp-gh-2.45.0" + }, + "x86_64-darwin": { + "store_path": "/nix/store/7mbb381r18qa1lp9yhrakigypnvvcxd1-gh-2.45.0" + }, + "x86_64-linux": { + "store_path": "/nix/store/yrlmd02lfgzz3f5g2n3s8ink2f72y6j1-gh-2.45.0" + } + } + }, + "ginkgo@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#ginkgo", + "source": "devbox-search", + "version": "2.17.1", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/94622rky2ffpbz6vpyqdmi86knm3czkw-ginkgo-2.17.1", + "default": true + } + ], + "store_path": "/nix/store/94622rky2ffpbz6vpyqdmi86knm3czkw-ginkgo-2.17.1" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/d06nha7nl3f8iw5vf06vsfircmvlj852-ginkgo-2.17.1", + "default": true + } + ], + "store_path": "/nix/store/d06nha7nl3f8iw5vf06vsfircmvlj852-ginkgo-2.17.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/ihm49vvp0z4aifblx362ramg8spinkz5-ginkgo-2.17.1", + "default": true + } + ], + "store_path": "/nix/store/ihm49vvp0z4aifblx362ramg8spinkz5-ginkgo-2.17.1" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/rsq6y6wxhdvh6xr5sk39pp9agxd9vvf5-ginkgo-2.17.1", + "default": true + } + ], + "store_path": "/nix/store/rsq6y6wxhdvh6xr5sk39pp9agxd9vvf5-ginkgo-2.17.1" + } + } + }, + "gnumake@4.4": { + "last_modified": "2024-03-18T12:38:16Z", + "resolved": "github:NixOS/nixpkgs/e367f7a1fb93137af22a3908f00b9a35e2d286a7#gnumake", + "source": "devbox-search", + "version": "4.4.1", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/b4jbbx01f3n4r97g49jnxw3clf4p1szv-gnumake-4.4.1" + }, + "aarch64-linux": { + "store_path": "/nix/store/hfyyfn6h7cw2fvdc0jmpfigwi3rp7d2x-gnumake-4.4.1" + }, + "x86_64-darwin": { + "store_path": "/nix/store/ry772inn49ra4vmns2vg67bjpqv29j0k-gnumake-4.4.1" + }, + "x86_64-linux": { + "store_path": "/nix/store/0pkbh7939p7npr02ayama32pa389m5p7-gnumake-4.4.1" + } + } + }, + "go-tools@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#go-tools", + "source": "devbox-search", + "version": "2023.1.7", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/rl80in8hbi1rhz9ih6shyy8faxk0mmz8-go-tools-2023.1.7" + }, + "aarch64-linux": { + "store_path": "/nix/store/82cwimrkpyjhqx7wfnilr46a2nlqjana-go-tools-2023.1.7" + }, + "x86_64-darwin": { + "store_path": "/nix/store/z7y51ka323njb7xjza1lkj75bs8v2prx-go-tools-2023.1.7" + }, + "x86_64-linux": { + "store_path": "/nix/store/49qp9pm1nm6vq4jhcxagary4xfwa7hkb-go-tools-2023.1.7" + } + } + }, + "go@1.21.4": { + "last_modified": "2023-11-17T14:14:56Z", + "resolved": "github:NixOS/nixpkgs/a71323f68d4377d12c04a5410e214495ec598d4c#go", + "source": "devbox-search", + "version": "1.21.4", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/02cpvad60np366kmsqc3gnixbsw9jvg1-go-1.21.4" + }, + "aarch64-linux": { + "store_path": "/nix/store/7y75b2ac80chlh6knld3943y46n3v9kf-go-1.21.4" + }, + "x86_64-darwin": { + "store_path": "/nix/store/0djljz0g4s6f55xcnw7fpzcy7af7rxid-go-1.21.4" + }, + "x86_64-linux": { + "store_path": "/nix/store/y7abhs9glxfcg7lgcdc8i4ml5wg5ly92-go-1.21.4" + } + } + }, + "golangci-lint@1.57.2": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#golangci-lint", + "source": "devbox-search", + "version": "1.57.2", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/v65kn6pxwkj281pyx3ns5d7rlp0sp762-golangci-lint-1.57.2", + "default": true + } + ], + "store_path": "/nix/store/v65kn6pxwkj281pyx3ns5d7rlp0sp762-golangci-lint-1.57.2" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/8gn8xyjpw24670wixdy2hrqpy91fjgv5-golangci-lint-1.57.2", + "default": true + } + ], + "store_path": "/nix/store/8gn8xyjpw24670wixdy2hrqpy91fjgv5-golangci-lint-1.57.2" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/ws2rl2l8p4zjqx0zqwm1r57qqjwbzxly-golangci-lint-1.57.2", + "default": true + } + ], + "store_path": "/nix/store/ws2rl2l8p4zjqx0zqwm1r57qqjwbzxly-golangci-lint-1.57.2" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/n2ng9hhfwvr480wvv45837hqsivaaqdp-golangci-lint-1.57.2", + "default": true + } + ], + "store_path": "/nix/store/n2ng9hhfwvr480wvv45837hqsivaaqdp-golangci-lint-1.57.2" + } + } + }, + "google-cloud-sdk@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#google-cloud-sdk", + "source": "devbox-search", + "version": "467.0.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/rcgpjzwm11fy37ff03g4qm9lyak8by3q-google-cloud-sdk-467.0.0", + "default": true + } + ], + "store_path": "/nix/store/rcgpjzwm11fy37ff03g4qm9lyak8by3q-google-cloud-sdk-467.0.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/d3g4xrjxpz7p4zm6gc3lgfbgqwidqk92-google-cloud-sdk-467.0.0", + "default": true + } + ], + "store_path": "/nix/store/d3g4xrjxpz7p4zm6gc3lgfbgqwidqk92-google-cloud-sdk-467.0.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/px0rjif67b8k9lgs9pczbl7v21fxavrg-google-cloud-sdk-467.0.0", + "default": true + } + ], + "store_path": "/nix/store/px0rjif67b8k9lgs9pczbl7v21fxavrg-google-cloud-sdk-467.0.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/0wxgc7yl52c5pzda9f7r7hp1fnha4s03-google-cloud-sdk-467.0.0", + "default": true + } + ], + "store_path": "/nix/store/0wxgc7yl52c5pzda9f7r7hp1fnha4s03-google-cloud-sdk-467.0.0" + } + } + }, + "gopls@latest": { + "last_modified": "2024-02-29T18:14:35Z", + "resolved": "github:NixOS/nixpkgs/b5f6e3881acf8ca8a35b8cdb8d4021e5bd469a4e#gopls", + "source": "devbox-search", + "version": "0.15.1", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/5rm9fvahy3xgb4q42rhf6dsggp4r442b-gopls-0.15.1" + }, + "aarch64-linux": { + "store_path": "/nix/store/8rryibahn2i86zb9846j954r3dasyz7c-gopls-0.15.1" + }, + "x86_64-darwin": { + "store_path": "/nix/store/gd5yy3xfjhz4lgf7vw01mzzjp5qb5355-gopls-0.15.1" + }, + "x86_64-linux": { + "store_path": "/nix/store/sa9fczlr6rcip8inlb9z6l3hd2hy9gs2-gopls-0.15.1" + } + } + }, + "jq@latest": { + "last_modified": "2024-04-21T11:44:28-04:00", + "resolved": "github:NixOS/nixpkgs/69ee1d82f1fa4c70a3dc9a64111e7eef3b8e4527#jq", + "source": "devbox-search", + "version": "1.7.1", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/cpd390lw7hzsbvsq02d3prxjyj987ykg-jq-1.7.1-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/nm26pqk8f9cfdk42x0fzdhccfhijcycd-jq-1.7.1-man", + "default": true + }, + { + "name": "out", + "path": "/nix/store/2il8xa2rsv55i0a86ivm59pndqfardhc-jq-1.7.1" + }, + { + "name": "dev", + "path": "/nix/store/j1rai51ycjm9y5bayrfii1y0rqldbxxv-jq-1.7.1-dev" + }, + { + "name": "doc", + "path": "/nix/store/a1sscyljd5lx674lh8ab7wjlb0d03x86-jq-1.7.1-doc" + }, + { + "name": "lib", + "path": "/nix/store/05mw0b8ririsykj8fpc1dy9lgnnlp77i-jq-1.7.1-lib" + } + ], + "store_path": "/nix/store/cpd390lw7hzsbvsq02d3prxjyj987ykg-jq-1.7.1-bin" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/www2wsy5azig3si2mcvcbig36npvz8p0-jq-1.7.1-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/f8kd7zxmlciy87xrf1j36q2rymld3a22-jq-1.7.1-man", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/b8ji00dhcknd1p9afa80ydral59z6dzp-jq-1.7.1-dev" + }, + { + "name": "doc", + "path": "/nix/store/xmam34cnczr17warmz692jd3dyip25aq-jq-1.7.1-doc" + }, + { + "name": "lib", + "path": "/nix/store/88miljr5qkqdzlhm7ib26fws4hkz04s8-jq-1.7.1-lib" + }, + { + "name": "out", + "path": "/nix/store/dkpfzwwl049kk1dwnyjacabjvszjknww-jq-1.7.1" + } + ], + "store_path": "/nix/store/www2wsy5azig3si2mcvcbig36npvz8p0-jq-1.7.1-bin" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/7v052gsm0fs3n9bcr9hdffspq8fnq872-jq-1.7.1-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/dfsyxb7dqxwp3n1bnrzrvbz6lkmz8wyl-jq-1.7.1-man", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/p0q6vmks1ql07g9hv1p63mkvbs7331xq-jq-1.7.1-dev" + }, + { + "name": "doc", + "path": "/nix/store/3mj72b0gx9kz2y04pcbnfvv6sk8y4jbi-jq-1.7.1-doc" + }, + { + "name": "lib", + "path": "/nix/store/j5qzf4k1c747ci0fp2wdp9xa1czkb5s5-jq-1.7.1-lib" + }, + { + "name": "out", + "path": "/nix/store/fni2q2wmlr64d70j0dw97zhhzmay1nm3-jq-1.7.1" + } + ], + "store_path": "/nix/store/7v052gsm0fs3n9bcr9hdffspq8fnq872-jq-1.7.1-bin" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/sxmad6bc8j8qgqvcc7278fjsrgm89qkc-jq-1.7.1-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/4d9grvh3ssqdqqzycbiyh535ikbs7rg7-jq-1.7.1-man", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/82ma9xbiyybcqxmcqxd625hmv4nig19r-jq-1.7.1-dev" + }, + { + "name": "doc", + "path": "/nix/store/q55rnn9jh9h3r6imb07w53dyk8d9sd1l-jq-1.7.1-doc" + }, + { + "name": "lib", + "path": "/nix/store/rg32apprx9b1bidimbpypjcb3j4zp0vy-jq-1.7.1-lib" + }, + { + "name": "out", + "path": "/nix/store/4isj4w52vpavwfd8yj9r78dmyg4zy48y-jq-1.7.1" + } + ], + "store_path": "/nix/store/sxmad6bc8j8qgqvcc7278fjsrgm89qkc-jq-1.7.1-bin" + } + } + }, + "maven@3.8.6": { + "last_modified": "2023-06-18T07:20:12Z", + "resolved": "github:NixOS/nixpkgs/4d887ae7666a6ffb79e1767d8fd417daf9e4220f#maven", + "source": "devbox-search", + "version": "3.8.6", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/hiliyg5gw445k20qk3p7hd1572i6p1fx-apache-maven-3.8.6" + }, + "aarch64-linux": { + "store_path": "/nix/store/a703r0bwa5d7m217wdnpq40jk9a7gijc-apache-maven-3.8.6" + }, + "x86_64-darwin": { + "store_path": "/nix/store/d784rwc10i3xh4hp17mbvry60jaaxvh4-apache-maven-3.8.6" + }, + "x86_64-linux": { + "store_path": "/nix/store/762jpndgbab1b9nwv2g622gf85v120wh-apache-maven-3.8.6" + } + } + }, + "nodePackages.yaml-language-server@latest": { + "last_modified": "2023-08-30T00:25:28Z", + "resolved": "github:NixOS/nixpkgs/a63a64b593dcf2fe05f7c5d666eb395950f36bc9#nodePackages.yaml-language-server", + "source": "devbox-search", + "version": "1.14.0", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/y6fas525j1x0g8kpn8aw9wmvpn685a3q-yaml-language-server-1.14.0" + }, + "aarch64-linux": { + "store_path": "/nix/store/nwx1kb9mfmx781jwmrpz10hp30mlgk8j-yaml-language-server-1.14.0" + }, + "x86_64-darwin": { + "store_path": "/nix/store/6b2084iqvkpxga9615b5z77rg2xxlb7v-yaml-language-server-1.14.0" + }, + "x86_64-linux": { + "store_path": "/nix/store/lninjw78g05qq8d3bwdrax8m11pxawda-yaml-language-server-1.14.0" + } + } + }, + "nodejs@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "plugin_version": "0.0.2", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#nodejs_21", + "source": "devbox-search", + "version": "21.6.2", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/n9xcy53g63rk8vwb2yx5fb7i72rprpd1-nodejs-21.6.2" + }, + "aarch64-linux": { + "store_path": "/nix/store/mqvmpikgnk7bxvi977ysd0z81bjpflzj-nodejs-21.6.2" + }, + "x86_64-darwin": { + "store_path": "/nix/store/mdwxb1kdajvahhbpq3dhnaf3b01h7yb8-nodejs-21.6.2" + }, + "x86_64-linux": { + "store_path": "/nix/store/va3sggfgfb709lm31bzvpjfyapjdy435-nodejs-21.6.2" + } + } + }, + "pre-commit@latest": { + "last_modified": "2024-03-17T01:03:25Z", + "resolved": "github:NixOS/nixpkgs/299d4668ba61600311553920d9fd9c102145b2cb#pre-commit", + "source": "devbox-search", + "version": "3.6.2", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/nwrn3g5v9bsrnd88v84q4q9japllx0jb-pre-commit-3.6.2" + }, + "aarch64-linux": { + "store_path": "/nix/store/61bnh53x2c6laq7vd7ssr23wm85zifs6-pre-commit-3.6.2" + }, + "x86_64-darwin": { + "store_path": "/nix/store/dpimv11qs1l3yyzb5nj94p2inpn35yj7-pre-commit-3.6.2" + }, + "x86_64-linux": { + "store_path": "/nix/store/1n78gswil3nq9fdrff4rb2li4y45y5w4-pre-commit-3.6.2" + } + } + }, + "python@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "plugin_version": "0.0.3", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#python312", + "source": "devbox-search", + "version": "3.12.3", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/7bz0d53vngyxzhs6axavfw2dhl9vwlww-python3-3.12.3", + "default": true + } + ], + "store_path": "/nix/store/7bz0d53vngyxzhs6axavfw2dhl9vwlww-python3-3.12.3" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/nw7n1zgfiwxvrlxcn6nkggvxvk6msvl9-python3-3.12.3", + "default": true + }, + { + "name": "debug", + "path": "/nix/store/arq3230cyyd6lnwrjc2h5dz994ar4410-python3-3.12.3-debug" + } + ], + "store_path": "/nix/store/nw7n1zgfiwxvrlxcn6nkggvxvk6msvl9-python3-3.12.3" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/g8jihlbhc9sv3d2i4lnagyn2mj74mmjf-python3-3.12.3", + "default": true + } + ], + "store_path": "/nix/store/g8jihlbhc9sv3d2i4lnagyn2mj74mmjf-python3-3.12.3" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/m51f0kclg01xdc0mjxqs5cpyaxqbqhg5-python3-3.12.3", + "default": true + }, + { + "name": "debug", + "path": "/nix/store/f7z0xg5zf1c2b7lc8qjpd0p48lpc7rf1-python3-3.12.3-debug" + } + ], + "store_path": "/nix/store/m51f0kclg01xdc0mjxqs5cpyaxqbqhg5-python3-3.12.3" + } + } + }, + "rubocop@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#rubocop", + "source": "devbox-search", + "version": "1.60.2", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/apma16wkjmhdbdxhzrcg0iq302jfams4-ruby3.1-rubocop-1.60.2" + }, + "aarch64-linux": { + "store_path": "/nix/store/inl276a41s48gd7n22aqbnv27d4d8vjm-ruby3.1-rubocop-1.60.2" + }, + "x86_64-darwin": { + "store_path": "/nix/store/lgcwywmpz7hp9cxpcjjmlbpbfvsr64rz-ruby3.1-rubocop-1.60.2" + }, + "x86_64-linux": { + "store_path": "/nix/store/bhi3dzxgvc577y9pzzsxbm07xj7lsd6s-ruby3.1-rubocop-1.60.2" + } + } + }, + "ruby@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "plugin_version": "0.0.2", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#ruby_3_3", + "source": "devbox-search", + "version": "3.3.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/v2985rr69yd20k3gpv0h0xfncx7fz7ri-ruby-3.3.0", + "default": true + }, + { + "name": "devdoc", + "path": "/nix/store/ad7zlahvwsdwpy4rl2j4874zm48r9r52-ruby-3.3.0-devdoc" + } + ], + "store_path": "/nix/store/v2985rr69yd20k3gpv0h0xfncx7fz7ri-ruby-3.3.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/sb5npxqnf38ganslr4211lwsdakq7vp9-ruby-3.3.0", + "default": true + }, + { + "name": "devdoc", + "path": "/nix/store/ddkprabv23gcxri2hq18mjivjn98s2md-ruby-3.3.0-devdoc" + } + ], + "store_path": "/nix/store/sb5npxqnf38ganslr4211lwsdakq7vp9-ruby-3.3.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/qjgy5y7q07naykii8jc4c94kn0bgb8gq-ruby-3.3.0", + "default": true + }, + { + "name": "devdoc", + "path": "/nix/store/j7vfiblaw5mslksm31s6jfc8am832sp8-ruby-3.3.0-devdoc" + } + ], + "store_path": "/nix/store/qjgy5y7q07naykii8jc4c94kn0bgb8gq-ruby-3.3.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/sbwg3visqb0njszbkarj645azj00951m-ruby-3.3.0", + "default": true + }, + { + "name": "devdoc", + "path": "/nix/store/3d7k5b5dwl0iyw86id8w1brrlbrd3szj-ruby-3.3.0-devdoc" + } + ], + "store_path": "/nix/store/sbwg3visqb0njszbkarj645azj00951m-ruby-3.3.0" + } + } + }, + "rubyPackages.solargraph@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#rubyPackages.solargraph", + "source": "devbox-search", + "version": "0.50.0", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/b5ij391a832x87fphs2m2176bfjnndrv-ruby3.1-solargraph-0.50.0" + }, + "aarch64-linux": { + "store_path": "/nix/store/lw1b56xzrzwpzdwdl4w4qvc0mlcxc4i4-ruby3.1-solargraph-0.50.0" + }, + "x86_64-darwin": { + "store_path": "/nix/store/djw25l2sj8abrxy1fh9qc9jcj2cwn0mk-ruby3.1-solargraph-0.50.0" + }, + "x86_64-linux": { + "store_path": "/nix/store/5ck319amxz2ab48j5gyxgnn6dhsx1f6d-ruby3.1-solargraph-0.50.0" + } + } + }, + "shellcheck@0.10.0": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#shellcheck", + "source": "devbox-search", + "version": "0.10.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/49ncfws5qrd7rkgwz6dv2gvmqv0rsrrw-shellcheck-0.10.0-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/s6j4yx6qbnln5nxmljx0qy8jf59adz5p-shellcheck-0.10.0-man", + "default": true + }, + { + "name": "doc", + "path": "/nix/store/2dfy2v96fv9542s4m7z7yxinwil9ngyp-shellcheck-0.10.0-doc", + "default": true + }, + { + "name": "out", + "path": "/nix/store/q2jz8khcx1a3kfmb77yspp85vlb973iz-shellcheck-0.10.0" + } + ], + "store_path": "/nix/store/49ncfws5qrd7rkgwz6dv2gvmqv0rsrrw-shellcheck-0.10.0-bin" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/q1hs93pxrpr388r8b4bj7rpqvd2daq1c-shellcheck-0.10.0-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/6hz9inqbkawax0lcdig54sx2fh9ygq1k-shellcheck-0.10.0-man", + "default": true + }, + { + "name": "doc", + "path": "/nix/store/6iv0bbwzc4c4p364474j37acbcj85ncg-shellcheck-0.10.0-doc", + "default": true + }, + { + "name": "out", + "path": "/nix/store/2xlv5aw7b8zj5sn20bn0r7j5xbpq3lqj-shellcheck-0.10.0" + } + ], + "store_path": "/nix/store/q1hs93pxrpr388r8b4bj7rpqvd2daq1c-shellcheck-0.10.0-bin" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/jnsl9dzp3smhbkzxjj42spmlbkixzh8k-shellcheck-0.10.0-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/yv9i4zbnsbc3f9552718lsxifvz44xzp-shellcheck-0.10.0-man", + "default": true + }, + { + "name": "doc", + "path": "/nix/store/vdggbwa31i0vv021ik69mczg21mf5160-shellcheck-0.10.0-doc", + "default": true + }, + { + "name": "out", + "path": "/nix/store/qdfv3dw1rr5hxygz3h2h17zilkd7fd34-shellcheck-0.10.0" + } + ], + "store_path": "/nix/store/jnsl9dzp3smhbkzxjj42spmlbkixzh8k-shellcheck-0.10.0-bin" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "bin", + "path": "/nix/store/f321hrckks8jq89ipz48jmzdp7d0pj7r-shellcheck-0.10.0-bin", + "default": true + }, + { + "name": "man", + "path": "/nix/store/nc6ym17bdcnv8xm5qixywrlnvyj62qjf-shellcheck-0.10.0-man", + "default": true + }, + { + "name": "doc", + "path": "/nix/store/0csxlgjfdjadv9i1cz5bjmq8mhqyxlkj-shellcheck-0.10.0-doc", + "default": true + }, + { + "name": "out", + "path": "/nix/store/64zid87pr32msyp2i91zf7p08qj5v0bp-shellcheck-0.10.0" + } + ], + "store_path": "/nix/store/f321hrckks8jq89ipz48jmzdp7d0pj7r-shellcheck-0.10.0-bin" + } + } + }, + "swagger-cli@latest": { + "last_modified": "2024-02-24T23:06:34Z", + "resolved": "github:NixOS/nixpkgs/9a9dae8f6319600fa9aebde37f340975cab4b8c0#swagger-cli", + "source": "devbox-search", + "version": "4.0.4", + "systems": { + "aarch64-darwin": { + "store_path": "/nix/store/sq8vajgd81q526ax8j52m1mg8r7q9wwi-swagger-cli-4.0.4" + }, + "aarch64-linux": { + "store_path": "/nix/store/aa8i6vbiqjmc711f0qhbiiiz356j7r5x-swagger-cli-4.0.4" + }, + "x86_64-darwin": { + "store_path": "/nix/store/r2kfmh0f7dzfc460v9nafvpbs792whbh-swagger-cli-4.0.4" + }, + "x86_64-linux": { + "store_path": "/nix/store/r8rrihaysmidw6wam6c85f9sjfv2jq3h-swagger-cli-4.0.4" + } + } + }, + "temurin-bin-17@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#temurin-bin-17", + "source": "devbox-search", + "version": "17.0.9", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/150lqcf9xmjz3543z5my0n4b1kncyr5z-temurin-bin-17.0.9", + "default": true + } + ], + "store_path": "/nix/store/150lqcf9xmjz3543z5my0n4b1kncyr5z-temurin-bin-17.0.9" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/8k4kyhhvlxkzzfpgl0p0yn147585hf60-temurin-bin-17.0.9", + "default": true + } + ], + "store_path": "/nix/store/8k4kyhhvlxkzzfpgl0p0yn147585hf60-temurin-bin-17.0.9" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/j58pbnd0rnfyn3akxb8zx3s1kc5p9dy8-temurin-bin-17.0.9", + "default": true + } + ], + "store_path": "/nix/store/j58pbnd0rnfyn3akxb8zx3s1kc5p9dy8-temurin-bin-17.0.9" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/z16qjcmxxiki2ah8wvg4qp0kp96a5s84-temurin-bin-17.0.9", + "default": true + } + ], + "store_path": "/nix/store/z16qjcmxxiki2ah8wvg4qp0kp96a5s84-temurin-bin-17.0.9" + } + } + }, + "which@latest": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#which", + "source": "devbox-search", + "version": "2.21", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/6fdwardrg3jpmipgysb98vmgs43vkvl3-which-2.21", + "default": true + } + ], + "store_path": "/nix/store/6fdwardrg3jpmipgysb98vmgs43vkvl3-which-2.21" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/8wy729ckp0xf1mk4i4qd7wzlgc0w01vs-which-2.21", + "default": true + } + ], + "store_path": "/nix/store/8wy729ckp0xf1mk4i4qd7wzlgc0w01vs-which-2.21" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/57y8a1gq7yxcf7cmnj04z9rhhqf9q5pg-which-2.21", + "default": true + } + ], + "store_path": "/nix/store/57y8a1gq7yxcf7cmnj04z9rhhqf9q5pg-which-2.21" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/6mz4dj8c5g2z9mpca6l3qf3bjj41vxcz-which-2.21", + "default": true + } + ], + "store_path": "/nix/store/6mz4dj8c5g2z9mpca6l3qf3bjj41vxcz-which-2.21" + } + } + }, + "yq-go@4.43.1": { + "last_modified": "2024-04-19T17:36:04-04:00", + "resolved": "github:NixOS/nixpkgs/92d295f588631b0db2da509f381b4fb1e74173c5#yq-go", + "source": "devbox-search", + "version": "4.43.1", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/rfiv0y75hj8730n1a6drnjhkk7vhdl9j-yq-go-4.43.1", + "default": true + } + ], + "store_path": "/nix/store/rfiv0y75hj8730n1a6drnjhkk7vhdl9j-yq-go-4.43.1" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/jni4dcywxfmwabxqmadp6lha4bn2sv2a-yq-go-4.43.1", + "default": true + } + ], + "store_path": "/nix/store/jni4dcywxfmwabxqmadp6lha4bn2sv2a-yq-go-4.43.1" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/kd7h15ml6ypamdm65vdw1961zmcrqswk-yq-go-4.43.1", + "default": true + } + ], + "store_path": "/nix/store/kd7h15ml6ypamdm65vdw1961zmcrqswk-yq-go-4.43.1" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/3im0h6slqakpx47p6y87var90hsvxqsy-yq-go-4.43.1", + "default": true + } + ], + "store_path": "/nix/store/3im0h6slqakpx47p6y87var90hsvxqsy-yq-go-4.43.1" + } + } + } + } +} diff --git a/local-flake/flake.lock b/local-flake/flake.lock new file mode 100644 index 0000000000..fa62f4a298 --- /dev/null +++ b/local-flake/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1710272261, + "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/local-flake/flake.nix b/local-flake/flake.nix new file mode 100644 index 0000000000..2e65bd5eb8 --- /dev/null +++ b/local-flake/flake.nix @@ -0,0 +1,48 @@ +{ + description = "Dependencies of app-autoscaler-release"; + + inputs = { + nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable; + }; + + outputs = { self, nixpkgs }: + let + supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + + # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'. + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + + # Nixpkgs instantiated for supported system types. + nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); + in { + packages = forAllSystems (system: { + app-autoscaler-cli-plugin = nixpkgsFor.${system}.buildGoModule rec { + pname = "app-autoscaler-cli-plugin"; + gitCommit = "f46dc1ea62c4c7bd426c82f4e2a525b3a3c42300"; + version = "${gitCommit}"; + src = nixpkgsFor.${system}.fetchgit { + url = "https://github.com/cloudfoundry/app-autoscaler-cli-plugin"; + rev = "${gitCommit}"; + hash = "sha256-j8IAUhjYjEFvtRbA6o2vA7P2uUmKVYsd9uJmN0WtVCM="; + fetchSubmodules = true; + }; + doCheck = false; + vendorHash = "sha256-NzEStcOv8ZQsHOA8abLABKy+ZE3/SiYbRD/ZVxo0CEk="; + }; + + # this bosh-bootloader custom build can be removed once https://github.com/cloudfoundry/bosh-bootloader/issues/596 is implemented. + bosh-bootloader = nixpkgsFor.${system}.buildGoModule rec { + pname = "bosh-bootloader"; + version = "9.0.17"; + src = nixpkgsFor.${system}.fetchgit { + url = "https://github.com/cloudfoundry/bosh-bootloader"; + rev = "v${version}"; + fetchSubmodules = true; + hash = "sha256-P4rS7Nv/09+9dD198z4NOXnldSE5fx3phEK24Acatps="; + }; + doCheck = false; + vendorHash = null; + }; + }); + }; +} diff --git a/renovate.json b/renovate.json index 67f7ece07a..a0980b7dd1 100644 --- a/renovate.json +++ b/renovate.json @@ -70,14 +70,6 @@ "datasourceTemplate": "github-releases", "extractVersionTemplate": "^v(?\\S+)" }, - { - "customType": "regex", - "fileMatch": ["\\.tool-versions$"], - "matchStrings": ["(^|\\n)concourse (?.+?)\\n"], - "depNameTemplate": "concourse/concourse", - "datasourceTemplate": "github-releases", - "extractVersionTemplate": "^v(?\\S+)" - }, { "customType": "regex", "fileMatch": ["\\.tool-versions$"], diff --git a/scripts/asdf2devbox.py b/scripts/asdf2devbox.py new file mode 100755 index 0000000000..84604416e8 --- /dev/null +++ b/scripts/asdf2devbox.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +import json +import os +import subprocess + +# Determine the script directory +script_dir = os.path.dirname(os.path.realpath(__file__)) + +# Function to determine the currently installed version of the package and return it +def get_installed_version(package): + with open(os.path.join(script_dir, '..', 'devbox.json'), 'r') as f: + data = json.load(f) + for pkg in data['packages']: + if pkg.startswith(f"{package}@"): + return pkg.split('@')[1] + return None + +# Read the .tool-versions file and process each line +if __name__ == "__main__": + with open(os.path.join(script_dir, '..', '.tool-versions'), 'r') as f: + for line in f: + program, version = line.strip().split(' ') + + # Mapping of ASDF to Nix program names + program_mapping = { + "bosh": "bosh-cli", + "cf": "cloudfoundry-cli", + "concourse": "fly", + "gcloud": "google-cloud-sdk", + "golang": "go", + "java": "temurin-bin-17", + "make": "gnumake", + "yq": "yq-go" + } + program = program_mapping.get(program, program) + + # Check if the package is already installed in the desired version + installed_version = get_installed_version(program) + if installed_version != version: + # Try to add the package with the specified version + try: + subprocess.run(['devbox', 'add', f"{program}@{version}"], check=True) + except subprocess.CalledProcessError: + # Fallback to latest in case the exact version is not available + subprocess.run(['devbox', 'add', f"{program}@latest"], check=True) + print(f"Could not find {program}@{version}, using latest instead:") + subprocess.run(['devbox', 'info', program], check=True) + else: + print(f"{program}@{version} is already installed")