diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8412022 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,32 @@ +{ + "name": "go-docker (shared dev-container)", + "image": "esacteksab/dev-container:2026-03-14-18-56", + "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", + "mounts": [ + "source=go-docker-gh-config,target=/root/.config/gh,type=volume", + "source=go-docker-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume", + "source=go-docker-zshhistory,target=/commandhistory,type=volume" + ], + "postCreateCommand": "pre-commit install --install-hooks", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh" + }, + "extensions": [ + "ms-vscode-remote.remote-containers", + "golang.go", + "ms-python.python", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "EditorConfig.EditorConfig", + "casualjim.gotemplate", + "tamasfe.even-better-toml", + "bradlc.vscode-tailwindcss", + "redhat.vscode-yaml", + "timonwong.shellcheck", + "emeraldwalk.RunOnSave" + ] + } + } +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 97f8165..9f13548 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,25 +1,6 @@ --- version: 2 updates: - - package-ecosystem: "pip" - directory: "/" - labels: - - "python" - commit-message: - prefix: "chore(dev-deps)" - groups: - python-minor-and-patch: - update-types: - - "minor" - - "patch" - schedule: - interval: "weekly" - day: "thursday" - time: "19:00" - timezone: "America/Chicago" - cooldown: - default-days: 7 - - package-ecosystem: "github-actions" directory: "/" labels: @@ -52,22 +33,3 @@ updates: timezone: "America/Chicago" cooldown: default-days: 7 - - - package-ecosystem: "npm" - directory: "/" - labels: - - "javascript" - commit-message: - prefix: "chore(dev-deps)" - groups: - npm-minor-and-patch: - update-types: - - "minor" - - "patch" - schedule: - interval: "weekly" - day: "thursday" - time: "19:00" - timezone: "America/Chicago" - cooldown: - default-days: 7 diff --git a/.mise.toml b/.mise.toml deleted file mode 100644 index 789462e..0000000 --- a/.mise.toml +++ /dev/null @@ -1,16 +0,0 @@ -[env] - - [env._] - - [env._.python] - - [env._.python.venv] - create = true - path = ".venv" - -[tools] - golang = "1.25.8" - nodejs = "22.22.1" - pnpm = "10.32.0" - python = "3.12.10" - uv = "latest" diff --git a/README.md b/README.md index d3996a2..6640cb5 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,33 @@ This repository builds and publishes one or more Go images on a schedule using G - Runtime base: Ubuntu 24.04 (digest pinned) - Build schedule: Every Friday at 9:00 AM Central Time (US/Chicago) +## Local Development (VS Code Dev Container) + +Local development is standardized through a shared dev-container instead of per-repo bootstrap files. + +- Dev container config: [.devcontainer/devcontainer.json](.devcontainer/devcontainer.json) +- Shared environment image: `docker.io/esacteksab/dev-container:2026-03-13-20-04@sha256:ff0997d094d0ffadfc73a278ac6b2316a15f0a6025fbfc067c2348929071ded3` + +### Getting started + +1. Open this repository in VS Code. +1. Run the command: `Dev Containers: Reopen in Container`. +1. Wait for the container build to complete. +1. Start working with the preinstalled toolchain inside the container. + +The container post-create step installs pre-commit hooks automatically. + +### First-pass boilerplate removed from this repo + +The following local bootstrap files were intentionally removed in favor of the shared dev-container: + +- `package.json` +- `pnpm-lock.yaml` +- `requirements.txt` +- `.mise.toml` + +Project policy/config files such as `.pre-commit-config.yaml`, `.prettierrc`, `.prettierignore`, and GitHub workflow files remain in this repository. + ## How Versions Are Selected The workflow resolves the build matrix in one of two ways: diff --git a/package.json b/package.json deleted file mode 100644 index ca0d57a..0000000 --- a/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "devDependencies": { - "npm": "^11.12.1", - "prettier": "^3.8.1", - "prettier-plugin-pkg": "^0.22.0", - "prettier-plugin-sh": "^0.18.0", - "prettier-plugin-toml": "^2.0.6" - }, - "packageManager": "pnpm@10.32.0" -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 6e0bda2..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,173 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - devDependencies: - npm: - specifier: ^11.12.1 - version: 11.12.1 - prettier: - specifier: ^3.8.1 - version: 3.8.1 - prettier-plugin-pkg: - specifier: ^0.22.0 - version: 0.22.0(prettier@3.8.1) - prettier-plugin-sh: - specifier: ^0.18.0 - version: 0.18.0(prettier@3.8.1) - prettier-plugin-toml: - specifier: ^2.0.6 - version: 2.0.6(prettier@3.8.1) - -packages: - - '@reteps/dockerfmt@0.3.6': - resolution: {integrity: sha512-Tb5wIMvBf/nLejTQ61krK644/CEMB/cpiaIFXqGApfGqO3GwcR3qnI0DbmkFVCl2OyEp8LnLX3EkucoL0+tbFg==} - engines: {node: ^v12.20.0 || ^14.13.0 || >=16.0.0} - - '@taplo/core@0.2.0': - resolution: {integrity: sha512-r8bl54Zj1In3QLkiW/ex694bVzpPJ9EhwqT9xkcUVODnVUGirdB1JTsmiIv0o1uwqZiwhi8xNnTOQBRQCpizrQ==} - - '@taplo/lib@0.5.0': - resolution: {integrity: sha512-+xIqpQXJco3T+VGaTTwmhxLa51qpkQxCjRwezjFZgr+l21ExlywJFcDfTrNmL6lG6tqb0h8GyJKO3UPGPtSCWg==} - - npm@11.12.1: - resolution: {integrity: sha512-zcoUuF1kezGSAo0CqtvoLXX3mkRqzuqYdL6Y5tdo8g69NVV3CkjQ6ZBhBgB4d7vGkPcV6TcvLi3GRKPDFX+xTA==} - engines: {node: ^20.17.0 || >=22.9.0} - hasBin: true - bundledDependencies: - - '@isaacs/string-locale-compare' - - '@npmcli/arborist' - - '@npmcli/config' - - '@npmcli/fs' - - '@npmcli/map-workspaces' - - '@npmcli/metavuln-calculator' - - '@npmcli/package-json' - - '@npmcli/promise-spawn' - - '@npmcli/redact' - - '@npmcli/run-script' - - '@sigstore/tuf' - - abbrev - - archy - - cacache - - chalk - - ci-info - - fastest-levenshtein - - fs-minipass - - glob - - graceful-fs - - hosted-git-info - - ini - - init-package-json - - is-cidr - - json-parse-even-better-errors - - libnpmaccess - - libnpmdiff - - libnpmexec - - libnpmfund - - libnpmorg - - libnpmpack - - libnpmpublish - - libnpmsearch - - libnpmteam - - libnpmversion - - make-fetch-happen - - minimatch - - minipass - - minipass-pipeline - - ms - - node-gyp - - nopt - - npm-audit-report - - npm-install-checks - - npm-package-arg - - npm-pick-manifest - - npm-profile - - npm-registry-fetch - - npm-user-validate - - p-map - - pacote - - parse-conflict-json - - proc-log - - qrcode-terminal - - read - - semver - - spdx-expression-parse - - ssri - - supports-color - - tar - - text-table - - tiny-relative-date - - treeverse - - validate-npm-package-name - - which - - prettier-plugin-pkg@0.22.0: - resolution: {integrity: sha512-jqkbvnIG7YLWRkcu/5Gj04B5Rr+0FeygtsD8g0EvQa86KYWYLjzcMwLbpVY042rBSPsKp88QnMt2b/ndSHIuxA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - prettier: ^3.0.3 - - prettier-plugin-sh@0.18.0: - resolution: {integrity: sha512-cW1XL27FOJQ/qGHOW6IHwdCiNWQsAgK+feA8V6+xUTaH0cD3Mh+tFAtBvEEWvuY6hTDzRV943Fzeii+qMOh7nQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - prettier: ^3.6.0 - - prettier-plugin-toml@2.0.6: - resolution: {integrity: sha512-12N/wBuHa9jd/KVy9pRP20NMKxQfQLMseQCt66lIbLaPLItvGUcSIryE1eZZMJ7loSws6Ig3M2Elc2EreNh76w==} - engines: {node: '>=16.0.0'} - peerDependencies: - prettier: ^3.0.3 - - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} - engines: {node: '>=14'} - hasBin: true - - sh-syntax@0.5.8: - resolution: {integrity: sha512-JfVoxf4FxQI5qpsPbkHhZo+n6N9YMJobyl4oGEUBb/31oQYlgTjkXQD8PBiafS2UbWoxrTO0Z5PJUBXEPAG1Zw==} - engines: {node: '>=16.0.0'} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - -snapshots: - - '@reteps/dockerfmt@0.3.6': {} - - '@taplo/core@0.2.0': {} - - '@taplo/lib@0.5.0': - dependencies: - '@taplo/core': 0.2.0 - - npm@11.12.1: {} - - prettier-plugin-pkg@0.22.0(prettier@3.8.1): - dependencies: - prettier: 3.8.1 - - prettier-plugin-sh@0.18.0(prettier@3.8.1): - dependencies: - '@reteps/dockerfmt': 0.3.6 - prettier: 3.8.1 - sh-syntax: 0.5.8 - - prettier-plugin-toml@2.0.6(prettier@3.8.1): - dependencies: - '@taplo/lib': 0.5.0 - prettier: 3.8.1 - - prettier@3.8.1: {} - - sh-syntax@0.5.8: - dependencies: - tslib: 2.8.1 - - tslib@2.8.1: {} diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index fc23792..0000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -pre-commit==4.5.1