{"id":16112493,"url":"https://github.com/abdulsametileri/go-binary-version-manager","last_synced_at":"2025-03-18T09:31:08.082Z","repository":{"id":243935476,"uuid":"812624473","full_name":"Abdulsametileri/go-binary-version-manager","owner":"Abdulsametileri","description":"Version manager for binaries that installed via go install command","archived":false,"fork":false,"pushed_at":"2024-06-27T18:59:31.000Z","size":161,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T08:37:03.660Z","etag":null,"topics":["cli","go","golang","version-manager"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Abdulsametileri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-09T12:27:41.000Z","updated_at":"2024-07-03T13:49:19.000Z","dependencies_parsed_at":"2024-06-27T22:12:35.369Z","dependency_job_id":null,"html_url":"https://github.com/Abdulsametileri/go-binary-version-manager","commit_stats":{"total_commits":42,"total_committers":2,"mean_commits":21.0,"dds":"0.023809523809523836","last_synced_commit":"a53e71184bc918f21e8e7b11619fd800bad665c2"},"previous_names":["abdulsametileri/go-binary-version-manager"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abdulsametileri%2Fgo-binary-version-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abdulsametileri%2Fgo-binary-version-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abdulsametileri%2Fgo-binary-version-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abdulsametileri%2Fgo-binary-version-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Abdulsametileri","download_url":"https://codeload.github.com/Abdulsametileri/go-binary-version-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243911223,"owners_count":20367647,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","go","golang","version-manager"],"created_at":"2024-10-09T20:08:11.327Z","updated_at":"2025-03-18T09:31:07.580Z","avatar_url":"https://github.com/Abdulsametileri.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-binary-version-manager (gbvm)\n\nVersion manager of libraries which installed via `go install` command.\n\n\n[![🔨Build And Test](https://github.com/Abdulsametileri/go-binary-version-manager/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/Abdulsametileri/go-binary-version-manager/actions/workflows/test.yml)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/Abdulsametileri/go-binary-version-manager)](https://goreportcard.com/report/github.com/Abdulsametileri/go-binary-version-manager)\n\n# Motivation\n\nThe projects I worked on used different versions of the `golangci-lint` and `mockery` libraries. When I use their\ncommands, inconsistent, strange errors occur.\nI am aiming to solve this problem by writing a basic binary manager that uses symlink under the hood. \n\nThis project is not specific to golangci-lint, mockery. You can use any library you want. The condition is the library\nmust be installed via `go install` command.\n\n**Note**: Executable binaries must be within ($GOPATH/go/bin) before using gbvm.\nFor example, if you installed golangci-lint via homebrew, you need to delete it first. \nYou should install with `gbvm install` command. Please check demo.\n\n# Demo\n\n[![asciicast](https://asciinema.org/a/665884.svg)](https://asciinema.org/a/665884)\n\n# Installation\n\n### via Brew\n\n`brew install abdulsametileri/tap/gbvm`\n\n# Behind the scenes\n\n![behind-the-scenes.png](.github%2Fimages%2Fbehind-the-scenes.png)\n\n# Commands\n\n| Command                       | Explanation                                          | Example                                               |\n|-------------------------------|------------------------------------------------------|-------------------------------------------------------|\n| gbvm listall $LIBRARY         | it lists all installed versions of the given library | `gbvm listall mockery`                                |\n| gbvm enable $LIBRARY@$VERSION | it enables given version of the library              | `gbvm enable golangci-lint@v1.55.1`                   |\n| gbvm install $package         | it installs given version of the library             | `gbvm install github.com/vektra/mockery/v2@v2.20.0`   |\n| gbvm uninstall $package       | it uninstalls given version of the library           | `gbvm uninstall github.com/vektra/mockery/v2@v2.20.0` |\n\n# Having issue\n\n## Enable logs\n```\nYou can enable debug logs via -v=5\n    \ngbvm enable golangci-lint@v1.59.0 -v=5\n    \nPanicLevel (0), Fatal (1), Error (2)\nWarn (3), Info (4), Debug (5), Trace (6)\n```\n\n## Check your zshrc/bashrc\n\n```\nThis library heavily used `go env GOPATH`, please check\nexport PATH=$PATH:$(go env GOPATH)/bin\ndefined your zshrc/bashrc\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdulsametileri%2Fgo-binary-version-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdulsametileri%2Fgo-binary-version-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdulsametileri%2Fgo-binary-version-manager/lists"}