Skip to content

Releases: jhonsferg/gvsn

gvsn v1.0.2

Choose a tag to compare

@github-actions github-actions released this 24 Aug 08:27
3112c2e

What's Changed in v1.0.2

Bug Fixes

  • gvsn implode now cleans the registry path in Windows

Full changelog: v1.0.1...v1.0.2

Install or upgrade

# Windows
irm https://raw.githubusercontent.com/jhonsferg/gvsn/main/install/install.ps1 | iex

# Or upgrade in-place
gvsn upgrade
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/jhonsferg/gvsn/main/install/install.sh | sh

# Or upgrade in-place
gvsn upgrade

VirusTotal Scan Results

File Analysis
gvsn_windows_x86_64.zip https://www.virustotal.com/gui/file-analysis/MTk0MTQ1MWI2ZDgwYmU3NGNhMzVhNjQ2NzQzZDBjNjE6MTc4NzU2MDA0MQ==/detection
gvsn_windows_arm64.zip https://www.virustotal.com/gui/file-analysis/NmZhZWZhZmMzZTllZTc2NzY2MjNmMGJmNWFlNzg2OGQ6MTc4NzU2MDA0MQ==/detection
gvsn_linux_x86_64.tar.gz https://www.virustotal.com/gui/file-analysis/MTZhOGZiOGExYWRhMjA2MmQzMmI1OWM4ODJiYzE2N2M6MTc4NzU2MDA0Mg==/detection
gvsn_linux_s390x.tar.gz https://www.virustotal.com/gui/file-analysis/ZmVhNDhiODNjNTg1MzkyYjlhZTQyODAyZTJjMDE2YTI6MTc4NzU2MDA0Mw==/detection
gvsn_linux_riscv64.tar.gz https://www.virustotal.com/gui/file-analysis/OGNkNzc1NWU0NmY2MjYzZmVmNDczMWUxMmM0NDMxZmM6MTc4NzU2MDEwMQ==/detection
gvsn_linux_ppc64le.tar.gz https://www.virustotal.com/gui/file-analysis/NmI5NjVlNjBmMWJjZmIxYTY1Y2Y4NjBiYzJhODJiYjM6MTc4NzU2MDEwMg==/detection
gvsn_linux_armv7.tar.gz https://www.virustotal.com/gui/file-analysis/ZThjNjY0YjlkNWE1YThkNTNjNWUzZmI5NzUwZDlmODM6MTc4NzU2MDEwMw==/detection
gvsn_linux_aarch64.tar.gz https://www.virustotal.com/gui/file-analysis/YTU5YTlhOTlmMWYzNzkxZGExMDQ2MjFjYzhhODYyYTg6MTc4NzU2MDEwNA==/detection
gvsn_linux_386.tar.gz https://www.virustotal.com/gui/file-analysis/MzViZmQ0OWE1ZTgxMmM5MmViZTVhY2FhM2IzZTk0NjU6MTc4NzU2MDExNQ==/detection
gvsn_darwin_x86_64.tar.gz https://www.virustotal.com/gui/file-analysis/Yjk1MDY1ZGZmNjU5OGViNmJmOWIyNDYxN2JhYWVjZmI6MTc4NzU2MDE2MQ==/detection
gvsn_darwin_aarch64.tar.gz https://www.virustotal.com/gui/file-analysis/NjljNTBhYjRkZTljZGIxOTg1ZTg2MDE3ZTUxYzY0YTc6MTc4NzU2MDE2Mg==/detection
gvsn_android_aarch64.tar.gz https://www.virustotal.com/gui/file-analysis/Mzg1MDcwYjIyMTZiOGYwNTgwOTQxN2VkYjRiZmU5YzM6MTc4NzU2MDE2NA==/detection

gvsn v1.0.1

Choose a tag to compare

@github-actions github-actions released this 24 Aug 08:05
bcac4a2

What's Changed in v1.0.1

Maintenance

  • chore(deps): bump clap_complete from 4.6.8 to 4.6.9
  • chore(deps): bump ureq from 3.3.0 to 3.4.0
  • chore(ci): bump actions/checkout from 5 to 7
  • chore(ci): bump codeql-action init and analyze together to 4.37.8
  • chore(ci): bump trufflesecurity/trufflehog from 3.95.9 to 3.97.0
  • chore(ci): bump dorny/paths-filter from 3.0.3 to 4.0.3
  • docs: explain why gvsn is written in Rust

Full changelog: v1.0.0...v1.0.1

Install or upgrade

# Windows
irm https://raw.githubusercontent.com/jhonsferg/gvsn/main/install/install.ps1 | iex

# Or upgrade in-place
gvsn upgrade
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/jhonsferg/gvsn/main/install/install.sh | sh

# Or upgrade in-place
gvsn upgrade

VirusTotal Scan Results

File Analysis
gvsn_windows_x86_64.zip https://www.virustotal.com/gui/file-analysis/ZGFiODk3YWMzN2I4MjlkZWNiOWQ4YjEyOWEwMWZhNWU6MTc4NzU1ODc3MQ==/detection
gvsn_windows_arm64.zip https://www.virustotal.com/gui/file-analysis/ZWM4ZjdmZmJhODZkZDlmYmRmNzdiMWU0YWNmOGI4ZGY6MTc4NzU1ODc3Mg==/detection
gvsn_linux_x86_64.tar.gz https://www.virustotal.com/gui/file-analysis/NTk1NmQwNmFlMWE1MjFmYWFjMGU1NGM0MWNlYTI1NGI6MTc4NzU1ODc3Mw==/detection
gvsn_linux_s390x.tar.gz https://www.virustotal.com/gui/file-analysis/ZTJjNjA0OWQ3MDFjMjFkMGVkNTI0YzYyMzJmNWM1Nzc6MTc4NzU1ODc3NA==/detection
gvsn_linux_riscv64.tar.gz https://www.virustotal.com/gui/file-analysis/ZTFiNDVkMTZmYTlmZGMzZGRhNzIzYzQ5YTliNzY4M2I6MTc4NzU1ODgzMQ==/detection
gvsn_linux_ppc64le.tar.gz https://www.virustotal.com/gui/file-analysis/MjQ5NmJjYzgzZDI2Mzg5ZGIzNTUxMThhMzQ4YzAzZTQ6MTc4NzU1ODgzMg==/detection
gvsn_linux_armv7.tar.gz https://www.virustotal.com/gui/file-analysis/YjgxNWNmOTc2ODZhNjJlNmU3OTc3ZGJkZDNlNzhmMDU6MTc4NzU1ODgzMg==/detection
gvsn_linux_aarch64.tar.gz https://www.virustotal.com/gui/file-analysis/MWY0ZmNiNWVkMGFkMDc3NDk2N2EyZGNjMzU4N2EyYzc6MTc4NzU1ODgzMw==/detection
gvsn_linux_386.tar.gz https://www.virustotal.com/gui/file-analysis/OWIxOGIzMDVkNGVlYjE0NWFhZmRjOTMwNDc2OTJjY2E6MTc4NzU1ODg0Ng==/detection
gvsn_darwin_x86_64.tar.gz https://www.virustotal.com/gui/file-analysis/ZmE2ZDg5M2MxZWU0NWI3NmIyMTVmZDQ0ZmE1MmJiZjA6MTc4NzU1ODg5Mg==/detection
gvsn_darwin_aarch64.tar.gz https://www.virustotal.com/gui/file-analysis/NDczYTY2ZWZjZmNiMzQyN2YzMDQ4MzVmNDFiZjFjZjU6MTc4NzU1ODg5Mg==/detection
gvsn_android_aarch64.tar.gz https://www.virustotal.com/gui/file-analysis/NWE1NDNkMDU0MTNlZTYzZTBkMWJmNjJiZmIxOWM4ODk6MTc4NzU1ODg5Mw==/detection

gvsn v1.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 07:21
5d736a7

What's Changed in v1.0.0

New Features

  • benchmark the .tool-versions golang-line parser
  • wire --json/--fix flags through the command dispatcher
  • declare --json and --fix CLI flags
  • add --fix to gvm doctor for auto-remediation
  • add --json output to gvm outdated
  • add --json output to gvm list-remote
  • add --json output to gvm list
  • cache the go.dev release index with a 1-hour TTL
  • recognize .tool-versions in prune's reference scan
  • resolve .tool-versions in active version lookup
  • derive Serialize for Release/ReleaseFile
  • support asdf .tool-versions files for local version pins
  • add criterion benchmarks for hot parsing/hashing paths
  • add criterion dev-dependency and local-only bench target
  • add gvm_rs library crate exposing internal modules
  • add behavior-based deep scan to clone-watch findings
  • gate clone-watch on content-similarity to cut false positives
  • notify when a newer gvm version is available (#62)
  • add Refactoring section to generated release notes (#28)
  • parallel chunk engine with resume and retry
  • wire --connections and --retries into http globals
  • add --connections/-j and --retries global flags
  • add CONNECTIONS and RETRIES globals for download engine
  • live spinner and verbose line streaming during compile
  • log GitHub API request and response in verbose mode
  • log HTTP request and response in verbose mode
  • activate verbose mode from cli flag before dispatch
  • add global --verbose / -v flag
  • add VERBOSE flag, log_request/log_response helpers
  • add gvm build - compile Go from source (#14)
  • add aarch64-linux-android target for Termux
  • compressed-only distribution and multi-arch support (#7)
  • validate shell is installed before configuring, list available shells on error
  • add binary_name, is_available, available_shells, find_binary for shell validation
  • invoke gvm setup after binary placement to configure the environment
  • invoke gvm setup after binary placement to configure the environment
  • dispatch --reset flag to setup command
  • rewrite to configure shell hook, login profile PATH, and Windows registry
  • add --reset flag to gvm setup subcommand
  • add login_profile_path, inject_login_profile, public remove_gvm_lines, strip_profile
  • add winreg dependency for Windows registry PATH injection
  • update ~/.gvm/current junction on every version switch
  • add update_current_link to maintain the current junction
  • add ~/.gvm/current/bin to Windows user PATH registry
  • add set_version_link for cross-platform junction/symlink
  • add current_dir path for junction/symlink support
  • add PowerShell installer script for Windows
  • add shell installer script for Linux and macOS
  • add main entry point with command dispatch
  • add CLI argument definitions with clap derive
  • add use command to set the global default Go version
  • add upgrade command for in-place self-update
  • add uninstall command to remove an installed Go version
  • add shell command for session-scoped version activation
  • add setup command to inject the shell hook into the profile
  • add prune command to remove unreferenced Go versions
  • add path command to print the bin dir of a Go version
  • add outdated command to detect installed patch updates
  • add local command to pin a Go version per project
  • add list-remote command to show available Go releases
  • add list command to show locally installed Go versions
  • add install command to download and install a Go version
  • add implode command to fully remove gvm from the system
  • add exec command to run a command with a specific Go version
  • add doctor command to diagnose the gvm installation
  • add default command as alias for use
  • add current command to print the active Go version
  • add completions command for shell tab-completion scripts
  • add env command to emit shell activation exports
  • add commands module declaration
  • add PowerShell shell integration implementation
  • add Fish shell integration implementation
  • add Zsh shell integration implementation
  • add Bash shell integration implementation
  • add shell module with inject_profile and stale-update logic
  • add archive extractor for tar.gz and zip formats
  • add HTTPS downloader with progress bar and SHA-256 verification
  • add archive module declaration
  • add remote index for fetching go.dev release list
  • add remote module declaration
  • add toolchain helpers for installed version management
  • add Release type for go.dev release JSON deserialization
  • add VersionSpec for user-facing version input parsing
  • add Config for resolving gvm runtime paths
  • add fs helpers for atomic writes and directory utilities
  • add GoVersion type with parsing and comparison

Bug Fixes

  • separate 'nothing to fix' from 'fix attempt failed' in doctor --fix
  • ensure gvm root exists and unify status logic in outdated
  • ensure gvm root exists before caching the release index in list-remote
  • check .tool-versions consistency alongside .go-version in doctor
  • mention .tool-versions in the 'not installed' env hint
  • propagate .go-version/.tool-versions read errors again
  • stage upgrade binary same-volume before swap on Windows
  • reject invalid semver segments instead of skipping them
  • require exact marker match in shell profile parsing
  • trigger workflow on docs-only changes so required checks post
  • guard powershell init hook against blocked gvm binary
  • route secrets through env before use in if: conditionals (#66)
  • broadcast WM_SETTINGCHANGE after updating the registry PATH (#63)
  • pass --allow-dirty to cargo publish (#52)
  • make GitHub Release creation idempotent (#49)
  • remove invalid 'day' field from monthly dependabot schedule (#29)
  • enable steady tick on chunk bars for real-time updates
  • clear parallel progress panel on completion
  • stable MultiProgress rendering for parallel chunks
  • handle x-identity-content-length and disable gzip on ranges
  • use RangedU64ValueParser for --connections validation
  • replace flatten() with map_while(Result::ok) for clippy
  • real progress bar with speed and ETA, spinner for unknown size
  • redirect Go build temp into .gvm/tmp, add AV hint on Windows failure
  • use previous patch version as bootstrap, not highest installed
  • update Cargo.lock perl patch for gvm-rs package name
  • update repo URL to gvm-rs in PowerShell installer
  • update repo URL to gvm-rs in shell installer
  • update upgrade help URL to gvm-rs
  • update repo slug to jhonsferg/gvm-rs
  • update Build help text for cross-platform
  • add Windows support via make.bat
  • add all missing Unwind symbols to libunwind stub (#13)
  • add all missing Unwind symbols to libunwind stub
  • compile libunwind stub with aarch64-linux-android-clang (#12)
  • compile libunwind stub with aarch64-linux-android-clang
  • copy real libunwind.a from NDK clang dir (#11)
  • copy real libunwind.a from NDK clang dir instead of empty stub
  • stub libunwind.a for NDK r21 linker in cross image (#10)
  • stub libunwind.a for NDK r21 linker in cross image
  • use android archive name when self-updating on Termux
  • detect Termux and download android/bionic binary
  • use bundled Mozilla CA roots to fix Termux CA cert error
  • fire fish hook at startup via fish_prompt event and track PWD changes
  • warn when .go-version names an uninstalled Go version
  • fire zsh hook at startup via precmd and track PWD changes
  • fire bash hook at startup via PROMPT_COMMAND and track PWD changes
  • shared client with timeout and full error chain display (#6)
  • use TMPDIR env var for mktemp instead of hardcoded /tmp (#5)
  • silence 'gvm: command not found' on SSH login (#4)
  • move Context import inside cfg(windows) functions to fix unused import on Linux
  • remove shell configuration from install.ps1 - delegate to gvm setup
  • remove shell configuration from install.sh - delegate to gvm setup
  • don't label gvm-managed paths as non-gvm shadowed installations
  • add junction check and accept ~/.gvm/current/bin/go as gvm-managed
  • handle CRLF in Cargo.lock version patch on Windows runner
  • remove unused bail import on non-Windows targets
  • restore version to 1.0.0 after spurious bot downgrade

Refactoring

  • pass config root to fetch_releases in install
  • pass config root to fetch_releases in build
  • make main.rs a thin wrapper around gvm_rs::run
  • implement Command trait dispatch, remove dead code, fix clippy warnings (#27)
  • drop http::set_connections calls
  • remove connection-count global
  • remove -j/--connections flag
  • replace parallel segment engine with single-stream fetch
  • extract download args from per-command variants
  • move --connections/-j and --retries to per-command flags
  • adapt GitHub API call to ureq error-on-status model
  • use ureq agent and body read_json
  • adapt fetch() to ureq response body API
  • rewrite agent() for ureq Agent API
  • replace reqwest with ureq for lighter blocking HTTP
  • remove local remove_gvm_lines, use shell::strip_profile, clean login profile

Security

  • replace curl-pipe-sh syft install with anchore/sbom-action
  • pin trivy-action and trufflehog to verified commit SHAs

Install or upgrade

# Windows
irm https://raw.githubusercontent.com/jhonsferg/gvsn/main/install/install.ps1 | iex

# Or upgrade in-place
gvsn upgrade
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/jhonsferg/gvsn/main/install/install.sh | sh

# Or upgrade in-place
gvsn upgrade

VirusTotal Scan Results

File Analysis
gvsn_windows_x86_64.zip https://www.virustotal.com/gui/file-analysis/NjI1Y2YwNzFkMzI5M2VkOTE5OWE5NTU0NWQzMDc5Mjg6MTc4NzU1NjMwNQ==/detection
gvsn_windows_arm64.zip https://www.virustotal.com/gui/file-analysis/MjA2NDY1ZTRmY2RjOWM5ODRlYTQ3OTIzODJiN2Q3ZDg6MTc4NzU1NjMwNg==/detection
gvsn_linux_x86_64.tar.gz https://www.virustotal.com/gui/file-analysis/N2UxYzdlZjA5YzQxMDNiNDAwMGZkZmRjMzZhOGUzNjE6MTc4NzU1NjMwNg==/detection
gvsn_linux_s390x.tar.gz https://www.virustotal.com/gui/file-analysis/MGMwOGJlM2VjMDE1MjNjODQ5ZDA1NDQ2M2JiZDVkNzQ6MTc4NzU1NjMwNw==/detection
gvsn_linux_riscv64.tar.gz https://www.vi...
Read more