|
2 | 2 |
|
3 | 3 | ## Unreleased |
4 | 4 |
|
| 5 | + |
| 6 | +## 1.0.0 - 2026-05-26 |
| 7 | + |
| 8 | +This release makes `g` safer, more reliable, and easier to install, while keeping the same tiny POSIX shell script you can inspect, copy, and patch. |
| 9 | + |
| 10 | +`g` is a simple Go version manager, gluten-free. It installs official prebuilt Go archives as an unprivileged user, keeps your environment simple, and avoids shims, plugins, daemons, and runtime dependencies. |
| 11 | + |
| 12 | +Release highlights include: |
| 13 | + |
| 14 | +- **Official Go metadata** for version discovery and archive selection |
| 15 | +- **SHA-256 verification** before extracting downloaded Go archives |
| 16 | +- **Archive mirror support** with upstream metadata as the trust source |
| 17 | +- **Hardened installer behavior** across common shells and Linux distributions |
| 18 | +- **GitHub Release assets** for fresh installs and self-upgrades |
| 19 | +- **Clearer errors and recovery guidance** for unsupported platforms and incomplete installs |
| 20 | +- **Expanded CI coverage** across pinned Linux environments |
| 21 | +- **Automated release publishing** for future releases |
| 22 | + |
| 23 | +### Upgrade now |
| 24 | + |
| 25 | +If you already have `g` installed, upgrade with: |
| 26 | + |
| 27 | +```sh |
| 28 | +g self-upgrade |
| 29 | +``` |
| 30 | + |
| 31 | +For a fresh install: |
| 32 | + |
| 33 | +```sh |
| 34 | +curl -fsSL https://github.com/stefanmaric/g/releases/latest/download/install | sh |
| 35 | +``` |
| 36 | + |
| 37 | +Or with `wget`: |
| 38 | + |
| 39 | +```sh |
| 40 | +wget -qO- https://github.com/stefanmaric/g/releases/latest/download/install | sh |
| 41 | +``` |
| 42 | + |
| 43 | +### Official Go metadata |
| 44 | + |
| 45 | +`g` now uses Go's official download metadata instead of scraping version information from HTML. |
| 46 | + |
| 47 | +That means version discovery, archive selection, platform overrides, unstable releases, and checksum verification now all come from the same upstream source of truth. |
| 48 | + |
| 49 | +### Verified downloads |
| 50 | + |
| 51 | +Downloaded Go archives are now verified with SHA-256 checksums from official Go metadata before extraction. |
| 52 | + |
| 53 | +If a download is corrupted, incomplete, or unexpected, `g` stops before it can become an active Go installation. |
| 54 | + |
| 55 | +### Archive mirrors |
| 56 | + |
| 57 | +You can now download Go archives from a mirror while still trusting official Go metadata for version and checksum information. |
| 58 | + |
| 59 | +```sh |
| 60 | +G_GO_ARCHIVE_URL=https://mirror.example/golang g install latest |
| 61 | +``` |
| 62 | + |
| 63 | +Or per command: |
| 64 | + |
| 65 | +```sh |
| 66 | +g install latest --archive-url https://mirror.example/golang |
| 67 | +``` |
| 68 | + |
| 69 | +### A tougher installer |
| 70 | + |
| 71 | +The installer now handles more real-world systems and shells, including environments without `/etc/shells`, improved `ash` and `dash` setup guidance, fixed `tcsh` detection, duplicate shell selection prevention, and safer alias collision handling. |
| 72 | + |
| 73 | +The goal is still the same: configure `GOROOT`, `GOPATH`, and `$GOPATH/bin` with as little magic as possible. |
| 74 | + |
| 75 | +### GitHub Release assets |
| 76 | + |
| 77 | +Fresh installs and self-upgrades now use GitHub Release assets instead of deprecated `git.io` short links. |
| 78 | + |
| 79 | +This makes the install path more transparent, inspectable, and aligned with how releases are published. |
| 80 | + |
| 81 | +### Better CLI resilience |
| 82 | + |
| 83 | +`g` now reports clearer errors for unknown operating systems, unknown architectures, unsupported Go archive combinations, incomplete installs, and missing `$GOPATH/bin` entries in `PATH`. |
| 84 | + |
| 85 | +This release also adds familiar command aliases: |
| 86 | + |
| 87 | +```sh |
| 88 | +g use latest |
| 89 | +g fetch 1.22.2 |
| 90 | +g ls |
| 91 | +g rm 1.21.9 |
| 92 | +g self-update |
| 93 | +``` |
| 94 | + |
| 95 | +### CI and releases |
| 96 | + |
| 97 | +The test suite now covers more metadata, checksum, installer, shell, and smoke-test behavior. CI also runs across pinned Linux environments to catch portability issues earlier. |
| 98 | + |
| 99 | +Future releases are now prepared through a release PR and published automatically after merge. |
| 100 | + |
5 | 101 | ## 0.11.0 - 2026-05-26 |
6 | 102 |
|
7 | 103 | - Upgrade all dev dependencies and CI environment |
|
0 commit comments