Go Version Manager

Overview

gvm

Build Status

By Josh Bussdieker (jbuss, jaja, jbussdieker) while working at Moovweb

Currently lovingly maintained by Benjamin Knigge

Pull requests and other any other contributions would be very much appreciated.

GVM provides an interface to manage Go versions.

Features

  • Install/Uninstall Go versions with gvm install [tag] where tag is "60.3", "go1", "weekly.2011-11-08", or "tip"
  • List added/removed files in GOROOT with gvm diff
  • Manage GOPATHs with gvm pkgset [create/use/delete] [name]. Use --local as name to manage repository under local path (/path/to/repo/.gvm_local).
  • List latest release tags with gvm listall. Use --all to list weekly as well.
  • Cache a clean copy of the latest Go source for multiple version installs.
  • Link project directories into GOPATH

Background

When we started developing in Go mismatched dependencies and API changes plauged our build process and made it extremely difficult to merge with other peoples changes.

After nuking my entire GOROOT several times and rebuilding I decided to come up with a tool to oversee the process. It eventually evolved into what gvm is today.

Installing

To install:

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

Or if you are using zsh just change bash with zsh

Installing Go

gvm install go1.4
gvm use go1.4 [--default]

Once this is done Go will be in the path and ready to use. $GOROOT and $GOPATH are set automatically.

Additional options can be specified when installing Go:

Usage: gvm install [version] [options]
    -s,  --source=SOURCE      Install Go from specified source.
    -n,  --name=NAME          Override the default name for this version.
    -pb, --with-protobuf      Install Go protocol buffers.
    -b,  --with-build-tools   Install package build tools.
    -B,  --binary             Only install from binary.
         --prefer-binary      Attempt a binary install, falling back to source.
    -h,  --help               Display this message.

A Note on Compiling Go 1.5+

Go 1.5+ removed the C compilers from the toolchain and replaced them with one written in Go. Obviously, this creates a bootstrapping problem if you don't already have a working Go install. In order to compile Go 1.5+, make sure Go 1.4 is installed first.

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.5

List Go Versions

To list all installed Go versions (The current version is prefixed with "=>"):

gvm list

To list all Go versions available for download:

gvm listall

Uninstalling

To completely remove gvm and all installed Go versions and packages:

gvm implode

If that doesn't work see the troubleshooting steps at the bottom of this page.

Mac OS X Requirements

xcode-select --install
brew update
brew install mercurial

Linux Requirements

Debian/Ubuntu

sudo apt-get install curl git mercurial make binutils bison gcc build-essential

Redhat/Centos

sudo yum install curl
sudo yum install git
sudo yum install make
sudo yum install bison
sudo yum install gcc
sudo yum install glibc-devel

FreeBSD Requirements

sudo pkg_add -r bash
sudo pkg_add -r git
sudo pkg_add -r mercurial

Vendoring Native Code and Dependencies

GVM supports vendoring package set-specific native code and related dependencies, which is useful if you need to qualify a new configuration or version of one of these dependencies against a last-known-good version in an isolated manner. Such behavior is critical to maintaining good release engineering and production environment hygiene.

As a convenience matter, GVM will furnish the following environment variables to aid in this manner if you want to decouple your work from what the operating system provides:

  1. ${GVM_OVERLAY_PREFIX} functions in a manner akin to a root directory hierarchy suitable for auto{conf,make,tools} where it could be passed in to ./configure --prefix=${GVM_OVERLAY_PREFIX} and not conflict with any existing operating system artifacts and hermetically be used by your workspace. This is suitable to use with C{PP,XX}FLAGS and LDFLAGS, but you will have to manage these yourself, since each tool that uses them is different.

  2. ${PATH} includes ${GVM_OVERLAY_PREFIX}/bin so that any tools you manually install will reside there, available for you.

  3. ${LD_LIBRARY_PATH} includes ${GVM_OVERLAY_PREFIX}/lib so that any runtime library searching can be fulfilled there on FreeBSD and Linux.

  4. ${DYLD_LIBRARY_PATH} includes ${GVM_OVERLAY_PREFIX}/lib so that any runtime library searching can be fulfilled there on Mac OS X.

  5. ${PKG_CONFIG_PATH} includes ${GVM_OVERLAY_PREFIX}/lib/pkgconfig so that pkg-config can automatically resolve any vendored dependencies.

Recipe for success:

gvm use go1.1
gvm pkgset use current-known-good
# Let's assume that this includes some C headers and native libraries, which
# Go's CGO facility wraps for us.  Let's assume that these native
# dependencies are at version V.
gvm pkgset create trial-next-version
# Let's assume that V+1 has come along and you want to safely trial it in
# your workspace.
gvm pkgset use trial-next-version
# Do your work here replicating current-known-good from above, but install
# V+1 into ${GVM_OVERLAY_PREFIX}.

See examples/native for a working example.

Troubleshooting

Sometimes especially during upgrades the state of gvm's files can get mixed up. This is mostly true for upgrade from older version than 0.0.8. Changes are slowing down and a LTR is imminent. But for now rm -rf ~/.gvm will always remove gvm. Stay tuned!

Gitter

Issues
  • Error with go1.5 install

    Error with go1.5 install

    ~  gvm install go1.5                                                                                                                                
    Installing go1.5...
     * Compiling...
    ERROR: Failed to compile. Check the logs at /home/xxxxx/.gvm/logs/go-go1.5-compile.log
    ERROR: Failed to use installed version
    ~ cat /home/xxxxx/.gvm/logs/go-go1.5-compile.log                                                                                                   
    ##### Building Go bootstrap tool.
    cmd/dist
    ERROR: Cannot find /home/xxxxx/go1.4/bin/go.
    Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
    ./make.bash: line 121: /home/xxxxx/go1.4/bin/go: No such file or directory
    
    opened by 1xch 32
  • gvm install go1.9.2 fails on macOS 10.12.6

    gvm install go1.9.2 fails on macOS 10.12.6

    I have already install go1.4 successed use: gvm install go1.4 -B when i install go1.9.2 got error:

    Downloading Go source... Installing go1.9.2...

    • Compiling... ERROR: Failed to compile. Check the logs at /Users/defned/.gvm/logs/go-go1.9.2-compile.log ERROR: Failed to use installed version

    cat /Users/defned/.gvm/logs/go-go1.9.2-compile.log

    Building Go bootstrap tool.

    cmd/dist

    Building Go toolchain using /Users/defned/.gvm/gos/go1.4.

    bootstrap/cmd/internal/dwarf bootstrap/cmd/internal/objabi bootstrap/cmd/internal/src bootstrap/cmd/internal/sys bootstrap/cmd/asm/internal/flags bootstrap/cmd/internal/bio bootstrap/math/bits bootstrap/cmd/compile/internal/syntax bootstrap/math/big bootstrap/cmd/internal/obj bootstrap/cmd/asm/internal/lex bootstrap/cmd/internal/gcprog bootstrap/debug/pe bootstrap/cmd/link/internal/ld bootstrap/cmd/internal/obj/arm bootstrap/cmd/internal/obj/arm64 bootstrap/cmd/internal/obj/mips bootstrap/cmd/internal/obj/ppc64 bootstrap/cmd/internal/obj/s390x bootstrap/cmd/internal/obj/x86 bootstrap/cmd/compile/internal/types bootstrap/cmd/asm/internal/arch bootstrap/cmd/compile/internal/ssa bootstrap/cmd/asm/internal/asm bootstrap/cmd/asm bootstrap/cmd/link/internal/amd64 bootstrap/cmd/link/internal/arm bootstrap/cmd/link/internal/arm64 bootstrap/cmd/link/internal/mips bootstrap/cmd/link/internal/mips64 bootstrap/cmd/link/internal/ppc64 bootstrap/cmd/link/internal/s390x bootstrap/cmd/link/internal/x86 bootstrap/cmd/link bootstrap/cmd/compile/internal/gc bootstrap/cmd/compile/internal/amd64 bootstrap/cmd/compile/internal/arm bootstrap/cmd/compile/internal/arm64 bootstrap/cmd/compile/internal/mips bootstrap/cmd/compile/internal/mips64 bootstrap/cmd/compile/internal/ppc64 bootstrap/cmd/compile/internal/s390x bootstrap/cmd/compile/internal/x86 bootstrap/cmd/compile

    Building go_bootstrap for host, darwin/amd64.

    runtime/internal/sys runtime/internal/atomic runtime encoding errors internal/cpu internal/race internal/syscall/windows/sysdll math/bits sync/atomic unicode unicode/utf16 unicode/utf8 math sync io internal/singleflight syscall cmd/go/internal/web hash bytes strings hash/adler32 bufio strconv path internal/syscall/windows internal/syscall/windows/registry time reflect encoding/base64 crypto crypto/sha1 internal/poll os os/signal sort encoding/binary fmt unexpected fault address 0x4cbfdb9a1a9 fatal error: fault [signal 0xb code=0x1 addr=0x4cbfdb9a1a9 pc=0xfda3f]

    goroutine 1 [running]: runtime.gothrow(0x70a230, 0x5) /usr/local/go/src/runtime/panic.go:503 +0x8e fp=0xc2083ff438 sp=0xc2083ff420 runtime.sigpanic() /usr/local/go/src/runtime/sigpanic_unix.go:29 +0x261 fp=0xc2083ff488 sp=0xc2083ff438 bootstrap/cmd/compile/internal/gc.livenessShouldTrack(0x4cbfdb9a12b, 0x7354b0) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/plive.go:149 +0x1f fp=0xc2083ff4a0 sp=0xc2083ff488 bootstrap/cmd/compile/internal/gc.getvariables(0xc2083abe40, 0x0, 0x0, 0x0, 0x1) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/plive.go:157 +0xd2 fp=0xc2083ff568 sp=0xc2083ff4a0 bootstrap/cmd/compile/internal/gc.liveness(0xc2085c8570, 0xc2085bd2c0, 0xc2085c8570) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/plive.go:1287 +0x2b fp=0xc2083ff5d0 sp=0xc2083ff568 bootstrap/cmd/compile/internal/gc.genssa(0xc2085bd2c0, 0xc208588780) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/ssa.go:4383 +0xb8 fp=0xc2083ff7f0 sp=0xc2083ff5d0 bootstrap/cmd/compile/internal/gc.compileSSA(0xc2083abe40, 0x0) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/pgen.go:242 +0x85 fp=0xc2083ff880 sp=0xc2083ff7f0 bootstrap/cmd/compile/internal/gc.compile(0xc2083abe40) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/pgen.go:219 +0x11a fp=0xc2083ff8f8 sp=0xc2083ff880 bootstrap/cmd/compile/internal/gc.funccompile(0xc2083abe40) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/dcl.go:1049 +0x1a3 fp=0xc2083ff970 sp=0xc2083ff8f8 bootstrap/cmd/compile/internal/gc.Main(0x8275e8) /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/internal/gc/main.go:585 +0x30e9 fp=0xc2083ffee8 sp=0xc2083ff970 main.main() /Users/defned/.gvm/gos/go1.9.2/src/cmd/compile/main.go:49 +0x1c5 fp=0xc2083fff98 sp=0xc2083ffee8 runtime.main() /usr/local/go/src/runtime/proc.go:63 +0xf3 fp=0xc2083fffe0 sp=0xc2083fff98 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2232 +0x1 fp=0xc2083fffe8 sp=0xc2083fffe0 go tool dist: FAILED: /Users/defned/.gvm/gos/go1.9.2/pkg/tool/darwin_amd64/compile -pack -o /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/sort/go.a -p sort /Users/defned/.gvm/gos/go1.9.2/src/sort/search.go /Users/defned/.gvm/gos/go1.9.2/src/sort/sort.go /Users/defned/.gvm/gos/go1.9.2/src/sort/zfuncversion.go: exit status 2 can't create /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/encoding/binary/go.a: open /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/encoding/binary/go.a: no such file or directory can't create /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/fmt/go.a: open /var/folders/h1/sdy0c6v907z7ylyw7650364w0000gp/T/go-tool-dist-513999791/fmt/go.a: no such file or directory

    hope help me

    opened by Fengxq2014 21
  • Automatically `gvm use`... on per-directory .go-version files

    Automatically `gvm use`... on per-directory .go-version files

    chruby and ndenv help Ruby and Node.js programmers by automatically the right version of a programming language based on per-directory files like .ruby-version and .node-version. Could gvm do the same with .go-version files?

    opened by mcandre 18
  • Conflict with GVM (Groovy enVironment Manager)

    Conflict with GVM (Groovy enVironment Manager)

    I had installed GVM (Groovy enVironment Manager) in my Ubuntu system.

    When I try to install gvm with

    bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer),

    I get ERROR: Already installed!.

    Is there anyway to install gvm without conflicting with GVM?

    opened by TheKojuEffect 15
  • Use git repositories

    Use git repositories

    Golang has officially made the switch from Mercurial to git. GVM needs to be updated with respect to that, and mercurial needs to be removed from the requirements as a result.

    opened by CoolOppo 14
  • Failed to install gb

    Failed to install gb

    Hey Guys,

    Sorry to bug you again, I don't know if it is a real issue or not, and it probably isn't a gvm issue, but when I try to install I get:

    ➜  ~  gvm install release.r60.3
    Downloading Go source...
    Installing release.r60.3...
     * Compiling...
     * Installing gb...
    Failed to install gb
     * Installing gpkg...
    

    Any and all help/advice is loved :)

    Thanks,

    Josh

    opened by joshk 13
  • gvm install fails on Ubuntu 12.04

    gvm install fails on Ubuntu 12.04

    After installing gvm (and it's prerequisites) and confirming that it works with gvm version: Go Version Manager v1.0.22 installed at /home/rihards/.gvm

    I get the following output when I try to run gvm install go1.4: Downloading Go source... Installing go1.4...

    • Compiling... ERROR: Failed to compile. Check the logs at /home/rihards/.gvm/logs/go-go1.4-compile.log ERROR: Failed to use installed version

    And the content of the said log file is:

    Building Go bootstrap tool.

    cmd/dist ERROR: Cannot find /home/rihards/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. ./make.bash: line 121: /home/rihards/go1.4/bin/go: No such file or directory

    This happens with other versions of go as well, and with different users on the system, including root. I've also tried removing .gvm and reinstalling it, still no luck.

    opened by rihards 11
  • .gvmrc Support

    .gvmrc Support

    This is a great project, and I can see myself using this to vendor my dependencies.

    Are there any plans or thoughts around adding .gvmrc support like .rvmrc from RVM? I am working on multiple Go projects at the moment, and auto switching between pkgsets when I switch directories would be fantastic.

    Thanks, -Phil

    opened by pfeairheller 11
  • Issues on OSX

    Issues on OSX

    Hi! Cool project :+1:

    I notice you don't mention use on OSX, is it supported? If so, I'm having this issue:

    $ gvm install go1
    Installing go1...
     * Compiling...
    ERROR: Failed to compile
    ERROR: Failed to use installed version
    

    Is there a way to turn verbosity up so I can see the full stack trace and figure out what's going on?

    opened by petems 10
  • odd error when running gvm command

    odd error when running gvm command

    Hey @moovweb,

    I installed gvm as per the instructions, and added the source line to my .zsh_profile but get the following error when I run the gvm command:

    ➜  ~  gvm
    gvm:20: = not found
    

    I am not sure how to diagnose this error, any help or advice would be greatly appreciated.

    Thanks a bundle,

    Josh

    opened by joshk 10
  • gvm install fails with

    gvm install fails with "go: command not found" on Ubuntu 18.04

    At 6ecd46d8b58c18f2a7bd5a1ab604cb57443cd35c:

    $ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
    $ gvm install go1.11
    Downloading Go source...
    Installing go1.11...
     * Compiling...
    /home/ciro/.gvm/scripts/install: line 84: go: command not found
    ERROR: Failed to compile. Check the logs at /home/ciro/.gvm/logs/go-go1.11-compile.log
    ERROR: Failed to use installed version
    

    Installing Go with package manager solved it:

    sudo apt-get install golang-go
    

    but feels a bit bad to need go to install go. At least document the dep at: https://github.com/moovweb/gvm/tree/6ecd46d8b58c18f2a7bd5a1ab604cb57443cd35c#debianubuntu

    opened by cirosantilli 7
  • Add a step for installing Bison before

    Add a step for installing Bison before

    After installing gvm, when I tried to use it, I got an error about needing Bison:

    $ gvm install go1.17 gvm use go1.17 [--default]

    Could not find bison linux: apt-get install bison ERROR: Missing requirements.

    opened by navinger 0
  • Install latest stable Go version

    Install latest stable Go version

    Is there a way to just install whatever is the latest stable version of Go? For example, NVM (Node Version Manager) has nvm install node to install the latest version or nvm install --lts to install the lts version. Would be nice if this has the same too

    opened by misaalanshori 0
  • Feature: verify sha256 of curl downloaded binaries

    Feature: verify sha256 of curl downloaded binaries

    In looking at https://github.com/moovweb/gvm/blob/master/scripts/install I noticed that download_binary() downloads the go tarball via curl and then proceeds to untar the binary without verifying it, which is susceptible to a supply chain issue (eg, codecov, where users would download a script via curl and execute[1]).

    Feature request: Go upstream doesn't appear to provide signed build artifacts or a signed document of sha256sums, but Go upstream does provide individual sha256's of each tarball and they can be seen on https://go.dev/dl/ so it should be possible to incorporate a sha256sum check of the tarball and a meaningful security improvement would be to store the known valid sha256sums within the gvm project somewhere and comparing the downloaded tarball against them since that would detect changes to the tarball on the webserver.

    Rationale: note that today the downloads are happening over HTTPS, so a successful supply chain attack requires changes to the files on the webserver. Some might argue that changing files on a Google server would require more sophistication than can be protected against in gvm, but serving build artifacts is different than creating them in the first place (different systems, different credentials, different attack surface, different availability from the internet, etc) and verifying a build artifact against a known checksum would detect changes in the tarball and help protect gvm users against attacks on the webserver (it does not protect against attacks on the build server of course). Since there doesn't seem to be a signed document of valid sha256sums that we could verify the signature of and compare the downloaded tarball against, gvm must store the sha256sums locally (since it is reasonable to assume that if an attacker could replace the tarball on the webserver, the attacker may also be able to replace the sha256sum on the same webserver).

    It looks like gvm users can use install_go() functionality in the meantime to compile go releases from source (coming from git clone) rather than using unverified precompiled binaries.

    Thanks for considering this improvement!

    [1] note, I understand that gvm is primarily for local development as opposed to integration with CI systems like codecov is. I mention codecov only to highlight how supply chain attacks are conducted

    opened by jdstrand 0
  • Update GVM to support ARM and fix issues encountered under x86

    Update GVM to support ARM and fix issues encountered under x86

    If anyone wants to run gvm on a Macbook M1 chip device OR macOS after Catalina, You can try this:

    curl -sSL https://github.com/soulteary/gvm/raw/master/binscripts/gvm-installer | bash
    
    opened by soulteary 0
  • gvm v1.0.22 issue installing on ubuntu

    gvm v1.0.22 issue installing on ubuntu

    No go installed I wanted to start clean:

    My prerequisite installation step: install go version manager: bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) than, because ubuntu: sudo apt-get install curl git mercurial make binutils bison gcc build-essential vm version returns: Go Version Manager v1.0.22 installed at /home/nkostic/.gvm So now to golang instalation step gvm install go1.4 In terminal:

    Downloading Go source...
    Installing go1.4...
     * Compiling...
    /home/nkostic/.gvm/scripts/install: line 84: go: command not found
    ERROR: Failed to compile. Check the logs at /home/nkostic/.gvm/logs/go-go1.4-compile.log
    ERROR: Failed to use installed version
    

    if I check the log:

    at /home/nkostic/.gvm/logs/go-go1.4-compile.log
    # Building C bootstrap tool.
    cmd/dist
    
    # Building compilers and Go bootstrap tool for host, linux/amd64.
    lib9
    /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c: In function '__efgfmt':
    /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c:437:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
      437 |   if(ndigits > prec) {
          |     ^
    /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c:451:2: note: here
      451 |  default:
          |  ^~~~~~~
    cc1: all warnings being treated as errors
    go tool dist: FAILED: gcc -Wall -Wstrict-prototypes -Wextra -Wunused -Wno-sign-compare -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -Wno-switch -Wno-comment -Wno-missing-field-initializers -Werror -fno-common -ggdb -pipe -Wuninitialized -O2 -fmessage-length=0 -c -m64 -I /home/nkostic/.gvm/gos/go1.4/include -DPLAN9PORT -I /home/nkostic/.gvm/gos/go1.4/src/lib9 -o $WORK/fltfmt.o /home/nkostic/.gvm/gos/go1.4/src/lib9/fmt/fltfmt.c
    

    Installed go 1.18 manually tried again from the top and same result. If zlog used the issue might be coming from there, not sure but unable to use this tool on Ubuntu 20.04.3 LTS following the readme instruction.

    opened by nkostic 7
Owner
Moovweb
Moovweb XDN delivers unparalleled site speeds via progressive web apps with server-side rendering, auto AMP creation, and CDN-as-code.
Moovweb
Go version manager. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash.

gobrew Go version manager Install or update With curl $ curl -sLk https://git.io/gobrew | sh - or with go $ go get -u github.com/kevincobain2000/gobre

Pulkit Kathuria 117 Aug 2, 2022
Golangver - Go's distributives version manager

golangver Go's distributive version manager (knitted myself with love :) Require

Alexander Orlovsky 2 Aug 3, 2022
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

null 0 Oct 16, 2021
"go build" wrapper to add version info to Golang applications

govvv The simple Go binary versioning tool that wraps the go build command. Stop worrying about -ldflags and go get github.com/ahmetb/govvv now. Build

Ahmet Alp Balkan 527 Jul 25, 2022
A live-updating version of the UNIX wc command.

lwc A live-updating version of the UNIX wc command. Installation You can get a prebuilt binary for every major platform from the Releases page. Just e

Tim De Pauw 27 Jul 26, 2022
"go build" wrapper to add version info to Golang applications

govvv The simple Go binary versioning tool that wraps the go build command. Stop worrying about -ldflags and go get github.com/ahmetb/govvv now. Build

Ahmet Alp Balkan 527 Jul 25, 2022
A tool to restart a Docker container with a newer version of the image

repull A tool to restart a Docker container with a newer version of an image used by the container Often you may need to pull a newer version of an im

Eugene 23 May 14, 2022
Semantic version generator using git commit keywords and overrides

Semantic version generator Project created overnight, to prove that management of semantic versioning is NOT painful and do not require arguments and

Lukasz Raczylo 25 May 4, 2022
Mutagen Compose is a modified version of Docker Compose that offers automated integration with Mutagen.

Mutagen Compose Mutagen Compose is a (minimally) modified version of Docker Compose that offers automated integration with Mutagen. This allows you to

Mutagen 62 Jul 30, 2022
Transform latin letters to runes & vice versa. Go version.

Riimut Transform latin letters to runes & vice versa. Go version. Includes transformers for four main runic alphabets: Elder Futhark Younger Futhark M

Sampo Silvennoinen 0 Dec 26, 2021
Minified version of Project Sherlock written in GO

Minified version of Project Sherlock written in GO

Davis Tibbz 0 Dec 15, 2021
UpdatedFlowtbag - An updated version of Flowtbag

License Copyright 2011 Daniel Arndt Licensed under the Apache License, Version 2

null 0 Jan 5, 2022
Valse is an kubernetes exporter application that discovers resources such as version

What is the Valse? Valse is an kubernetes exporter application that discovers resources such as version, namespaces, node, pod, deployment, daemonset,

Ali 25 Jul 22, 2022
A golang package for comparing and working with k0s version numbers

version A go-language package for managing k0s version numbers. It is based on hashicorp/go-version but adds sorting and comparison capabilities for t

k0s - The Zero Friction Kubernetes by Team Lens 0 Feb 7, 2022
🛹 A version management tool for kusion

Introduction ?? kusionup is a version management tool for kusion. It is heavily inspired by goup. ??️ Language English | 简体中文 ✨ Functional Overview su

KusionStack 3 May 30, 2022
A simple and powerful SSH keys manager

SKM is a simple and powerful SSH Keys Manager. It helps you to manage your multiple SSH keys easily! Features Create, List, Delete your SSH key(s) Man

Timothy 789 Jul 28, 2022
Kubernetes Lazy User Manager

klum - Kubernetes Lazy User Manager klum does the following basic tasks: Create/Delete/Modify users Easily manage roles associated with users Issues k

Darren Shepherd 281 Aug 5, 2022
network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of kubernetes.

Network Node Manager network-node-manager is a kubernetes controller that controls the network configuration of a node to resolve network issues of ku

kakao 97 Aug 6, 2022
The smart virtual machines manager. A modern CLI for Vagrant Boxes.

The smart virtual machines manager Table of Contents: What is Vermin Install Vermin Usage Contributors TODO What is Vermin Vermin is a smart, simple a

Muhammad Hewedy 123 Jul 27, 2022