diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 39449a6..284bfbf 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @initializ-buildpacks/utilities-maintainers
\ No newline at end of file
+* @paketo-buildpacks/utilities-maintainers
\ No newline at end of file
diff --git a/.github/pipeline-version b/.github/pipeline-version
index 2b17ffd..5f24410 100644
--- a/.github/pipeline-version
+++ b/.github/pipeline-version
@@ -1 +1 @@
-1.34.0
+1.41.2
diff --git a/.github/workflows/pb-create-package.yml b/.github/workflows/pb-create-package.yml
index 016d3a1..ba3eb92 100644
--- a/.github/workflows/pb-create-package.yml
+++ b/.github/workflows/pb-create-package.yml
@@ -9,16 +9,23 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
+            - name: Docker login gcr.io
+              if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }}
+              uses: docker/login-action@v3
+              with:
+                password: ${{ secrets.GCR_PUSH_BOT_JSON_KEY }}
+                registry: gcr.io
+                username: _json_key
             - name: Docker login docker.io
               if: ${{ (github.event_name != 'pull_request' || ! github.event.pull_request.head.repo.fork) && (github.actor != 'dependabot[bot]') }}
-              uses: docker/login-action@v2
+              uses: docker/login-action@v3
               with:
-                password: ${{ secrets.INITIALIZ_BUILDPACKS_DOCKERHUB_PASSWORD }}
+                password: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_PASSWORD }}
                 registry: docker.io
-                username: ${{ secrets.INITIALIZ_BUILDPACKS_DOCKERHUB_USERNAME }}
-            - uses: actions/setup-go@v4
+                username: ${{ secrets.PAKETO_BUILDPACKS_DOCKERHUB_USERNAME }}
+            - uses: actions/setup-go@v5
               with:
-                go-version: "stable"
+                go-version: "1.23"
             - name: Install create-package
               run: |
                 #!/usr/bin/env bash
@@ -26,44 +33,13 @@ jobs:
                 set -euo pipefail
 
                 go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/create-package@latest
-            - name: Install crane
-              run: |
-                #!/usr/bin/env bash
-
-                set -euo pipefail
-
-                echo "Installing crane ${CRANE_VERSION}"
-
-                mkdir -p "${HOME}"/bin
-                echo "${HOME}/bin" >> "${GITHUB_PATH}"
-
-                curl \
-                  --show-error \
-                  --silent \
-                  --location \
-                  "https://github.com/google/go-containerregistry/releases/download/v${CRANE_VERSION}/go-containerregistry_Linux_x86_64.tar.gz" \
-                | tar -C "${HOME}/bin" -xz crane
-              env:
-                CRANE_VERSION: 0.8.0
-            - name: Install pack
-              run: |
-                #!/usr/bin/env bash
-
-                set -euo pipefail
-
-                echo "Installing pack ${PACK_VERSION}"
-
-                mkdir -p "${HOME}"/bin
-                echo "${HOME}/bin" >> "${GITHUB_PATH}"
-
-                curl \
-                  --location \
-                  --show-error \
-                  --silent \
-                  "https://github.com/buildpacks/pack/releases/download/v${PACK_VERSION}/pack-v${PACK_VERSION}-linux.tgz" \
-                | tar -C "${HOME}"/bin -xz pack
-              env:
-                PACK_VERSION: 0.36.0
+            - uses: buildpacks/github-actions/setup-tools@v5.7.2
+              with:
+                crane-version: 0.19.1
+                yj-version: 5.1.0
+            - uses: buildpacks/github-actions/setup-pack@v5.7.2
+              with:
+                pack-version: 0.34.2
             - name: Enable pack Experimental
               if: ${{ false }}
               run: |
@@ -75,9 +51,9 @@ jobs:
 
                 mkdir -p "${HOME}"/.pack
                 echo "experimental = true" >> "${HOME}"/.pack/config.toml
-            - uses: actions/checkout@v3
+            - uses: actions/checkout@v4
             - if: ${{ false }}
-              uses: actions/cache@v3
+              uses: actions/cache@v4
               with:
                 key: ${{ runner.os }}-go-${{ hashFiles('**/buildpack.toml', '**/package.toml') }}
                 path: |-
@@ -91,8 +67,8 @@ jobs:
 
                 set -euo pipefail
 
-                if [ -z "${GITHUB_REF+set}" ]; then
-                  echo "GITHUB_REF set to [${GITHUB_REF-<unset>}], but should never be empty or unset"
+                if [[ ${GITHUB_REF:-} != "refs/"* ]]; then
+                  echo "GITHUB_REF set to [${GITHUB_REF:-}], but that is unexpected. It should start with 'refs/*'"
                   exit 255
                 fi
 
@@ -130,21 +106,23 @@ jobs:
 
                 if [[ "${INCLUDE_DEPENDENCIES}" == "true" ]]; then
                   create-package \
-                    --source ${SOURCE_PATH:-.} \
+                    --source "${SOURCE_PATH:-.}" \
                     --cache-location "${HOME}"/carton-cache \
                     --destination "${HOME}"/buildpack \
                     --include-dependencies \
                     --version "${VERSION}"
                 else
                   create-package \
-                    --source ${SOURCE_PATH:-.} \
+                    --source "${SOURCE_PATH:-.}" \
                     --destination "${HOME}"/buildpack \
                     --version "${VERSION}"
                 fi
 
-                PACKAGE_FILE=${SOURCE_PATH:-.}/package.toml
-                [[ -e ${PACKAGE_FILE} ]] && cp ${PACKAGE_FILE} "${HOME}"/package.toml
-                printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}"/buildpack "${OS}" >> "${HOME}"/package.toml
+                PACKAGE_FILE="${SOURCE_PATH:-.}/package.toml"
+                if [ -f "${PACKAGE_FILE}" ]; then
+                  cp "${PACKAGE_FILE}" "${HOME}/buildpack/package.toml"
+                  printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}/buildpack" "${OS}" >> "${HOME}/buildpack/package.toml"
+                fi
               env:
                 INCLUDE_DEPENDENCIES: "false"
                 OS: linux
@@ -157,15 +135,23 @@ jobs:
 
                 set -euo pipefail
 
+                COMPILED_BUILDPACK="${HOME}/buildpack"
+
+                # create-package puts the buildpack here, we need to run from that directory
+                #   for component buildpacks so that pack doesn't need a package.toml
+                cd "${COMPILED_BUILDPACK}"
+                CONFIG=""
+                if [ -f "${COMPILED_BUILDPACK}/package.toml" ]; then
+                  CONFIG="--config ${COMPILED_BUILDPACK}/package.toml"
+                fi
 
                 PACKAGE_LIST=($PACKAGES)
                 # Extract first repo (Docker Hub) as the main to package & register
                 PACKAGE=${PACKAGE_LIST[0]}
 
                 if [[ "${PUBLISH:-x}" == "true" ]]; then
-                  pack buildpack package \
-                    "${PACKAGE}:${VERSION}" \
-                    --config "${HOME}"/package.toml \
+                  pack -v buildpack package \
+                    "${PACKAGE}:${VERSION}" ${CONFIG} \
                     --publish
 
                   if [[ -n ${VERSION_MINOR:-} && -n ${VERSION_MAJOR:-} ]]; then
@@ -189,13 +175,12 @@ jobs:
                     done
 
                 else
-                  pack buildpack package \
-                    "${PACKAGE}:${VERSION}" \
-                    --config "${HOME}"/package.toml \
-                    --format "${FORMAT}"
+                  pack -v buildpack package \
+                    "${PACKAGE}:${VERSION}" ${CONFIG} \
+                    --format "${FORMAT}" $([ -n "$TTL_SH_PUBLISH" ] && [ "$TTL_SH_PUBLISH" = "true" ] && echo "--publish")
                 fi
               env:
-                PACKAGES: docker.io/initializbuildpacks/watchexec docker.io/initializbuildpacks/watchexec
+                PACKAGES: docker.io/paketobuildpacks/watchexec gcr.io/paketo-buildpacks/watchexec
                 PUBLISH: "true"
                 VERSION: ${{ steps.version.outputs.version }}
                 VERSION_MAJOR: ${{ steps.version.outputs.version-major }}
@@ -221,11 +206,11 @@ jobs:
                   --field "body=${RELEASE_BODY//<!-- DIGEST PLACEHOLDER -->/\`${DIGEST}\`}"
               env:
                 DIGEST: ${{ steps.package.outputs.digest }}
-                GITHUB_TOKEN: ${{ secrets.PAT }}
+                GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
             - if: ${{ true }}
-              uses: docker://ghcr.io/buildpacks/actions/registry/request-add-entry:4.0.1
+              uses: docker://ghcr.io/buildpacks/actions/registry/request-add-entry:5.7.2
               with:
-                address: docker.io/initializbuildpacks/watchexec@${{ steps.package.outputs.digest }}
+                address: docker.io/paketobuildpacks/watchexec@${{ steps.package.outputs.digest }}
                 id: initializ-buildpacks/watchexec
-                token: ${{ secrets.PAT }}
+                token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
                 version: ${{ steps.version.outputs.version }}
diff --git a/.github/workflows/pb-minimal-labels.yml b/.github/workflows/pb-minimal-labels.yml
index 75ea2ac..767ff02 100644
--- a/.github/workflows/pb-minimal-labels.yml
+++ b/.github/workflows/pb-minimal-labels.yml
@@ -12,7 +12,7 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: mheap/github-action-required-labels@v4
+            - uses: mheap/github-action-required-labels@v5
               with:
                 count: 1
                 labels: semver:major, semver:minor, semver:patch
@@ -22,7 +22,7 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: mheap/github-action-required-labels@v4
+            - uses: mheap/github-action-required-labels@v5
               with:
                 count: 1
                 labels: type:bug, type:dependency-upgrade, type:documentation, type:enhancement, type:question, type:task
diff --git a/.github/workflows/pb-synchronize-labels.yml b/.github/workflows/pb-synchronize-labels.yml
index e699dad..21464b5 100644
--- a/.github/workflows/pb-synchronize-labels.yml
+++ b/.github/workflows/pb-synchronize-labels.yml
@@ -11,7 +11,7 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: actions/checkout@v3
+            - uses: actions/checkout@v4
             - uses: micnncim/action-label-syncer@v1
               env:
-                GITHUB_TOKEN: ${{ secrets.PAT }}
+                GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
diff --git a/.github/workflows/pb-tests.yml b/.github/workflows/pb-tests.yml
index 72d5f17..107cd25 100644
--- a/.github/workflows/pb-tests.yml
+++ b/.github/workflows/pb-tests.yml
@@ -15,9 +15,9 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: actions/setup-go@v4
+            - uses: actions/setup-go@v5
               with:
-                go-version: "stable"
+                go-version: "1.23"
             - name: Install create-package
               run: |
                 #!/usr/bin/env bash
@@ -25,25 +25,9 @@ jobs:
                 set -euo pipefail
 
                 go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/create-package@latest
-            - name: Install pack
-              run: |
-                #!/usr/bin/env bash
-
-                set -euo pipefail
-
-                echo "Installing pack ${PACK_VERSION}"
-
-                mkdir -p "${HOME}"/bin
-                echo "${HOME}/bin" >> "${GITHUB_PATH}"
-
-                curl \
-                  --location \
-                  --show-error \
-                  --silent \
-                  "https://github.com/buildpacks/pack/releases/download/v${PACK_VERSION}/pack-v${PACK_VERSION}-linux.tgz" \
-                | tar -C "${HOME}"/bin -xz pack
-              env:
-                PACK_VERSION: 0.34.2
+            - uses: buildpacks/github-actions/setup-pack@v5.7.2
+              with:
+                pack-version: 0.34.2
             - name: Enable pack Experimental
               if: ${{ false }}
               run: |
@@ -55,8 +39,8 @@ jobs:
 
                 mkdir -p "${HOME}"/.pack
                 echo "experimental = true" >> "${HOME}"/.pack/config.toml
-            - uses: actions/checkout@v3
-            - uses: actions/cache@v3
+            - uses: actions/checkout@v4
+            - uses: actions/cache@v4
               with:
                 key: ${{ runner.os }}-go-${{ hashFiles('**/buildpack.toml', '**/package.toml') }}
                 path: |-
@@ -70,8 +54,8 @@ jobs:
 
                 set -euo pipefail
 
-                if [ -z "${GITHUB_REF+set}" ]; then
-                  echo "GITHUB_REF set to [${GITHUB_REF-<unset>}], but should never be empty or unset"
+                if [[ ${GITHUB_REF:-} != "refs/"* ]]; then
+                  echo "GITHUB_REF set to [${GITHUB_REF:-}], but that is unexpected. It should start with 'refs/*'"
                   exit 255
                 fi
 
@@ -109,21 +93,23 @@ jobs:
 
                 if [[ "${INCLUDE_DEPENDENCIES}" == "true" ]]; then
                   create-package \
-                    --source ${SOURCE_PATH:-.} \
+                    --source "${SOURCE_PATH:-.}" \
                     --cache-location "${HOME}"/carton-cache \
                     --destination "${HOME}"/buildpack \
                     --include-dependencies \
                     --version "${VERSION}"
                 else
                   create-package \
-                    --source ${SOURCE_PATH:-.} \
+                    --source "${SOURCE_PATH:-.}" \
                     --destination "${HOME}"/buildpack \
                     --version "${VERSION}"
                 fi
 
-                PACKAGE_FILE=${SOURCE_PATH:-.}/package.toml
-                [[ -e ${PACKAGE_FILE} ]] && cp ${PACKAGE_FILE} "${HOME}"/package.toml
-                printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}"/buildpack "${OS}" >> "${HOME}"/package.toml
+                PACKAGE_FILE="${SOURCE_PATH:-.}/package.toml"
+                if [ -f "${PACKAGE_FILE}" ]; then
+                  cp "${PACKAGE_FILE}" "${HOME}/buildpack/package.toml"
+                  printf '[buildpack]\nuri = "%s"\n\n[platform]\nos = "%s"\n' "${HOME}/buildpack" "${OS}" >> "${HOME}/buildpack/package.toml"
+                fi
               env:
                 INCLUDE_DEPENDENCIES: "true"
                 OS: linux
@@ -134,15 +120,23 @@ jobs:
 
                 set -euo pipefail
 
+                COMPILED_BUILDPACK="${HOME}/buildpack"
+
+                # create-package puts the buildpack here, we need to run from that directory
+                #   for component buildpacks so that pack doesn't need a package.toml
+                cd "${COMPILED_BUILDPACK}"
+                CONFIG=""
+                if [ -f "${COMPILED_BUILDPACK}/package.toml" ]; then
+                  CONFIG="--config ${COMPILED_BUILDPACK}/package.toml"
+                fi
 
                 PACKAGE_LIST=($PACKAGES)
                 # Extract first repo (Docker Hub) as the main to package & register
                 PACKAGE=${PACKAGE_LIST[0]}
 
                 if [[ "${PUBLISH:-x}" == "true" ]]; then
-                  pack buildpack package \
-                    "${PACKAGE}:${VERSION}" \
-                    --config "${HOME}"/package.toml \
+                  pack -v buildpack package \
+                    "${PACKAGE}:${VERSION}" ${CONFIG} \
                     --publish
 
                   if [[ -n ${VERSION_MINOR:-} && -n ${VERSION_MAJOR:-} ]]; then
@@ -166,29 +160,29 @@ jobs:
                     done
 
                 else
-                  pack buildpack package \
-                    "${PACKAGE}:${VERSION}" \
-                    --config "${HOME}"/package.toml \
-                    --format "${FORMAT}"
+                  pack -v buildpack package \
+                    "${PACKAGE}:${VERSION}" ${CONFIG} \
+                    --format "${FORMAT}" $([ -n "$TTL_SH_PUBLISH" ] && [ "$TTL_SH_PUBLISH" = "true" ] && echo "--publish")
                 fi
               env:
                 FORMAT: image
                 PACKAGES: test
+                TTL_SH_PUBLISH: "false"
                 VERSION: ${{ steps.version.outputs.version }}
     unit:
         name: Unit Test
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: actions/checkout@v3
-            - uses: actions/cache@v3
+            - uses: actions/checkout@v4
+            - uses: actions/cache@v4
               with:
                 key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
                 path: ${{ env.HOME }}/go/pkg/mod
                 restore-keys: ${{ runner.os }}-go-
-            - uses: actions/setup-go@v4
+            - uses: actions/setup-go@v5
               with:
-                go-version: "stable"
+                go-version: "1.23"
             - name: Install richgo
               run: |
                 #!/usr/bin/env bash
diff --git a/.github/workflows/pb-update-draft-release.yml b/.github/workflows/pb-update-draft-release.yml
index 2dc438c..48e91ab 100644
--- a/.github/workflows/pb-update-draft-release.yml
+++ b/.github/workflows/pb-update-draft-release.yml
@@ -12,12 +12,12 @@ jobs:
             - id: release-drafter
               uses: release-drafter/release-drafter@v5
               env:
-                GITHUB_TOKEN: ${{ secrets.PAT }}
-            - uses: actions/checkout@v3
+                GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
+            - uses: actions/checkout@v4
             - name: Update draft release with buildpack information
               uses: docker://ghcr.io/paketo-buildpacks/actions/draft-release:main
               with:
-                github_token: ${{ secrets.PAT }}
+                github_token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
                 release_body: ${{ steps.release-drafter.outputs.body }}
                 release_id: ${{ steps.release-drafter.outputs.id }}
                 release_name: ${{ steps.release-drafter.outputs.name }}
diff --git a/.github/workflows/pb-update-go.yml b/.github/workflows/pb-update-go.yml
index 71e4e2c..1b907c5 100644
--- a/.github/workflows/pb-update-go.yml
+++ b/.github/workflows/pb-update-go.yml
@@ -1,7 +1,7 @@
 name: Update Go
 "on":
     schedule:
-        - cron: 13 2 * * 1
+        - cron: 17 2 * * 1
     workflow_dispatch: {}
 jobs:
     update:
@@ -9,10 +9,10 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: actions/setup-go@v4
+            - uses: actions/setup-go@v5
               with:
-                go-version: "stable"
-            - uses: actions/checkout@v3
+                go-version: "1.23"
+            - uses: actions/checkout@v4
             - name: Update Go Version & Modules
               id: update-go
               run: |
@@ -25,7 +25,7 @@ jobs:
                     exit 1
                 fi
 
-                OLD_GO_VERSION=$(grep -P '^go \d\.\d+' go.mod | cut -d ' ' -f 2)
+                OLD_GO_VERSION=$(grep -P '^go \d\.\d+' go.mod | cut -d ' ' -f 2 | cut -d '.' -f 1-2)
 
                 go mod edit -go="$GO_VERSION"
                 go mod tidy
@@ -49,8 +49,8 @@ jobs:
                 echo "commit-body=${COMMIT_BODY}" >> "$GITHUB_OUTPUT"
                 echo "commit-semver=${COMMIT_SEMVER}" >> "$GITHUB_OUTPUT"
               env:
-                GO_VERSION: "1.20"
-            - uses: peter-evans/create-pull-request@v5
+                GO_VERSION: "1.23"
+            - uses: peter-evans/create-pull-request@v6
               with:
                 author: ${{ secrets.JAVA_GITHUB_USERNAME }} <${{ secrets.JAVA_GITHUB_USERNAME }}@users.noreply.github.com>
                 body: |-
@@ -69,4 +69,4 @@ jobs:
                 labels: ${{ steps.update-go.outputs.commit-semver }}, type:task
                 signoff: true
                 title: ${{ steps.update-go.outputs.commit-title }}
-                token: ${{ secrets.PAT }}
+                token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
diff --git a/.github/workflows/pb-update-pipeline.yml b/.github/workflows/pb-update-pipeline.yml
index 5bb0dd9..f028b84 100644
--- a/.github/workflows/pb-update-pipeline.yml
+++ b/.github/workflows/pb-update-pipeline.yml
@@ -14,9 +14,9 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: actions/setup-go@v4
+            - uses: actions/setup-go@v5
               with:
-                go-version: "stable"
+                go-version: "1.23"
             - name: Install octo
               run: |
                 #!/usr/bin/env bash
@@ -24,7 +24,7 @@ jobs:
                 set -euo pipefail
 
                 go install -ldflags="-s -w" github.com/paketo-buildpacks/pipeline-builder/cmd/octo@latest
-            - uses: actions/checkout@v3
+            - uses: actions/checkout@v4
             - name: Update Pipeline
               id: pipeline
               run: |
@@ -55,6 +55,12 @@ jobs:
                 )
 
                 git add .github/
+                git add .gitignore
+
+                if [ -f scripts/build.sh ]; then
+                  git add scripts/build.sh
+                fi
+
                 git checkout -- .
 
                 echo "old-version=${OLD_VERSION}" >> "$GITHUB_OUTPUT"
@@ -64,8 +70,8 @@ jobs:
                 printf "release-notes<<%s\n%s\n%s\n" "${DELIMITER}" "${RELEASE_NOTES}" "${DELIMITER}" >> "${GITHUB_OUTPUT}" # see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
               env:
                 DESCRIPTOR: .github/pipeline-descriptor.yml
-                GITHUB_TOKEN: ${{ secrets.PAT }}
-            - uses: peter-evans/create-pull-request@v5
+                GITHUB_TOKEN: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
+            - uses: peter-evans/create-pull-request@v6
               with:
                 author: ${{ secrets.JAVA_GITHUB_USERNAME }} <${{ secrets.JAVA_GITHUB_USERNAME }}@users.noreply.github.com>
                 body: |-
@@ -84,4 +90,4 @@ jobs:
                 labels: semver:patch, type:task
                 signoff: true
                 title: Bump pipeline from ${{ steps.pipeline.outputs.old-version }} to ${{ steps.pipeline.outputs.new-version }}
-                token: ${{ secrets.PAT }}
+                token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
diff --git a/.github/workflows/pb-update-watchexec-cli.yml b/.github/workflows/pb-update-watchexec-cli.yml
index 8921c64..529207f 100644
--- a/.github/workflows/pb-update-watchexec-cli.yml
+++ b/.github/workflows/pb-update-watchexec-cli.yml
@@ -9,9 +9,9 @@ jobs:
         runs-on:
             - ubuntu-latest
         steps:
-            - uses: actions/setup-go@v4
+            - uses: actions/setup-go@v5
               with:
-                go-version: "stable"
+                go-version: "1.23"
             - name: Install update-buildpack-dependency
               run: |
                 #!/usr/bin/env bash
@@ -19,28 +19,11 @@ jobs:
                 set -euo pipefail
 
                 go install -ldflags="-s -w" github.com/paketo-buildpacks/libpak/cmd/update-buildpack-dependency@latest
-            - name: Install yj
-              run: |
-                #!/usr/bin/env bash
-
-                set -euo pipefail
-
-                echo "Installing yj ${YJ_VERSION}"
-
-                mkdir -p "${HOME}"/bin
-                echo "${HOME}/bin" >> "${GITHUB_PATH}"
-
-                curl \
-                  --location \
-                  --show-error \
-                  --silent \
-                  --output "${HOME}"/bin/yj \
-                  "https://github.com/sclevine/yj/releases/download/v${YJ_VERSION}/yj-linux"
-
-                chmod +x "${HOME}"/bin/yj
-              env:
-                YJ_VERSION: 5.0.0
-            - uses: actions/checkout@v3
+            - uses: buildpacks/github-actions/setup-tools@v5.7.2
+              with:
+                crane-version: 0.19.1
+                yj-version: 5.1.0
+            - uses: actions/checkout@v4
             - id: dependency
               uses: docker://ghcr.io/paketo-buildpacks/actions/github-release-dependency:main
               with:
@@ -48,7 +31,7 @@ jobs:
                 owner: watchexec
                 repository: watchexec
                 tag_filter: cli-v(1.*)
-                token: ${{ secrets.PAT }}
+                token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}
             - name: Update Buildpack Dependency
               id: buildpack
               run: |
@@ -56,15 +39,19 @@ jobs:
 
                 set -euo pipefail
 
-                OLD_VERSION=$(yj -tj < buildpack.toml | jq -r "
-                  .metadata.dependencies[] |
-                  select( .id == env.ID ) |
-                  select( .version | test( env.VERSION_PATTERN ) ) |
-                  .version")
+                VERSION_DEPS=$(yj -tj < buildpack.toml | jq -r ".metadata.dependencies[] | select( .id == env.ID ) | select( .version | test( env.VERSION_PATTERN ) )")
+                ARCH=${ARCH:-amd64}
+                OLD_VERSION=$(echo "$VERSION_DEPS" | jq -r 'select( .purl | contains( env.ARCH ) ) | .version')
+
+                if [ -z "$OLD_VERSION" ]; then
+                  ARCH="" # empty means noarch
+                  OLD_VERSION=$(echo "$VERSION_DEPS" | jq -r ".version")
+                fi
 
                 update-buildpack-dependency \
                   --buildpack-toml buildpack.toml \
                   --id "${ID}" \
+                  --arch "${ARCH}" \
                   --version-pattern "${VERSION_PATTERN}" \
                   --version "${VERSION}" \
                   --cpe-pattern "${CPE_PATTERN:-}" \
@@ -91,6 +78,7 @@ jobs:
                 echo "new-version=${VERSION}" >> "$GITHUB_OUTPUT"
                 echo "version-label=${LABEL}" >> "$GITHUB_OUTPUT"
               env:
+                ARCH: ""
                 CPE: ${{ steps.dependency.outputs.cpe }}
                 CPE_PATTERN: ""
                 ID: watchexec
@@ -102,7 +90,7 @@ jobs:
                 URI: ${{ steps.dependency.outputs.uri }}
                 VERSION: ${{ steps.dependency.outputs.version }}
                 VERSION_PATTERN: '[\d]+\.[\d]+\.[\d]+'
-            - uses: peter-evans/create-pull-request@v5
+            - uses: peter-evans/create-pull-request@v6
               with:
                 author: ${{ secrets.JAVA_GITHUB_USERNAME }} <${{ secrets.JAVA_GITHUB_USERNAME }}@users.noreply.github.com>
                 body: Bumps `Watchexec CLI` from `${{ steps.buildpack.outputs.old-version }}` to `${{ steps.buildpack.outputs.new-version }}`.
@@ -115,4 +103,4 @@ jobs:
                 labels: ${{ steps.buildpack.outputs.version-label }}, type:dependency-upgrade
                 signoff: true
                 title: Bump Watchexec CLI from ${{ steps.buildpack.outputs.old-version }} to ${{ steps.buildpack.outputs.new-version }}
-                token: ${{ secrets.PAT }}
+                token: ${{ secrets.PAKETO_BOT_GITHUB_TOKEN }}