{"id":17985822,"url":"https://github.com/sah4ez/gosvm","last_synced_at":"2025-07-06T20:05:06.504Z","repository":{"id":64305303,"uuid":"122760697","full_name":"sah4ez/gosvm","owner":"sah4ez","description":"gosvm is a tool for managing dependencies of services in microservices architecture approach.","archived":false,"fork":false,"pushed_at":"2019-04-08T16:01:05.000Z","size":6557,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T14:17:45.484Z","etag":null,"topics":["dependency-manager","glide","golang","gomod","microservices"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sah4ez.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}},"created_at":"2018-02-24T17:04:31.000Z","updated_at":"2019-04-08T16:00:14.000Z","dependencies_parsed_at":"2023-01-15T10:30:30.804Z","dependency_job_id":null,"html_url":"https://github.com/sah4ez/gosvm","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sah4ez%2Fgosvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sah4ez%2Fgosvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sah4ez%2Fgosvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sah4ez%2Fgosvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sah4ez","download_url":"https://codeload.github.com/sah4ez/gosvm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247109373,"owners_count":20885076,"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":["dependency-manager","glide","golang","gomod","microservices"],"created_at":"2024-10-29T18:26:24.766Z","updated_at":"2025-04-04T02:25:31.665Z","avatar_url":"https://github.com/sah4ez.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gosvm\n\nGolang services version manager\n\n# Install\n\nFor install on Linux run:\n```bash\nsudo wget https://github.com/sah4ez/gosvm/releases/download/v0.0.13/gosvm-v0.0.13-linux-amd64 -O /usr/local/bin/gosvm\nsudo chmod +x /usr/local/bin/gosvm\n```\nFor install on OS X run:\n```bash\nsudo wget https://github.com/sah4ez/gosvm/releases/download/v0.0.13/gosvm-v0.0.13-darwin-amd64 -O /usr/local/bin/gosvm\nsudo chmod +x /usr/local/bin/gosvm\n```\n\n# Background\n\nFor development many services, each can used common packages, example: logger, DB driver, data model and etc.\n\nEach service using own repository and vendoring (dep, glide or go.mod)\n\ngosvm provide tool for version management for several repositoreis\n\nExample:\n``` bash\n$ pwd\n/go/src/github.com/sah4ez/\n$ ls -lah\ndrwxr-xr-x   2 sah4ez  sah4ez    64B 27 feb 21:45 events\ndrwxr-xr-x   2 sah4ez  sah4ez    64B 27 feb 21:45 logger-wrap\ndrwxr-xr-x   2 sah4ez  sah4ez    64B 27 feb 21:45 models\ndrwxr-xr-x   2 sah4ez  sah4ez    64B 27 feb 21:45 mongo\ndrwxr-xr-x   2 sah4ez  sah4ez    64B 27 feb 21:45 processor\ndrwxr-xr-x   2 sah4ez  sah4ez    64B 27 feb 21:45 scheduler\n```\nWe have the project structure:\n\n- events - event implement package for send between sevices or server-client\n- logger-warp - wrapper for logger implement own format/logic\n- mongo - wrapper for MongoDB driver\n- models -  data model for persist document to MongoDB\n- processor - simple service which process input events and persist to MongoDB\n- schdeudler - to execute deferred events\n\nAnd we can simple describe all structure in `svm.toml` and version manage or update it for all services. Examlpe:\n\n```toml\nTitle = \"exmaple-project\"\nDescription = \"Example project with library and services\"\nVersion = \"1.0.0\"\nBasePath = \"github.com/sah4ez\"\n\n[[SubProject]]\nTitle = \"events\"\nDescription = \"package implement event for send between sevices or server-client\"\nVersion = \"1.1.0\"\n\n[[SubProject]]\nTitle = \"logger-warp\"\nDescription = \"wrapper for logger implement own format/logic\"\nVersion = \"0.2.1\"\n\n[[SubProject]]\nTitle = \"mongo\"\nDescription = \"wrapper for MongoDB driver\"\nVersion = \"0.2.1\"\n\n[[SubProject]]\nTitle = \"models\"\nDescription = \"structure of models for persist document to MongoDB\"\nVersion = \"0.2.1\"\n\n[[SubProject]]\nTitle = \"processor\"\nDescription = \"simple service which process input events and store to MongoDB\"\nVersion = \"0.2.1\"\n\n[[SubProject]]\nTitle = \"schdeudler\"\nDescription = \"execute deferred events\"\nVersion = \"0.2.1\"\n\n[[Library]]\nTitle = \"library\"\nDescription = \"some utilites library\"\nVersion = \"0.2.1\"\n```\n\n# Commands\n\n| name | description |\n|-----:|-------------|\n| list | formatted output svm.toml |\n| libs | analyse of packages usage in all packages and formatted output |\n| version | print current version, revision number and date build |\n| clone | clone repositories if not exists in basePath |\n| pull | pull last changes from remote repos |\n| doc | generate spec for all project from svm.toml file of each repository |\n| generate | generate template spec for SubProject in automationMode or custom |\n| set | (plan) set version for all or specifict packages (implemented for glide) |\n| get | (plan) get specific package version or all  version package usage for specifict package |\n| update | (plan) update vendor or v and .lock and commit changes |\n| revert | (plan) revert commit from gosvm |\n| ... | you can contribute your ideas here or issues... |\n\n\nExample commands:\n```bash\n$ ls\nsvm.toml\n\n$ gosvm list\nTitle:\t\t exmaple-project\nDescription:\t Example project with library and services\nVersion:\t 1.0.0\n\t\n\tSubPackages:\n\t\n\tevents@1.1.0\n\tlogger-warp@0.2.1\n\tmongo@0.2.1\n\tmodels@0.2.1\n\tprocessor@0.2.1\n\tschdeudler@0.2.1\n\n$ gosvm libs\nTitle:\t\t exmaple-project\nDescription:\t Example project with library and services\nVersion:\t 1.0.0\n\n====================Libs====================\n\n\t github.com/sah4ez/events\n\t !!!2 differnt vesrion are used!!!\n\t\t^1.2.0 :\n\t\t\tprocessor\n\t\t^1.2.2 :\n\t\t\tscheduler\n\n\t github.com/sah4ez/logger-wrap\n\t !!!4 differnt vesrion are used!!!\n\t\t^1.0.0 :\n\t\t\tevents\n\t\t^1.3.0 :\n\t\t\tmodels\n\t\t^3.2.0 :\n\t\t\tprocessor\n\t\t^4.2.1 :\n\t\t\tscheduler\n\n\t github.com/sah4ez/models\n\t !!!2 differnt vesrion are used!!!\n\t\t^1.0.0 :\n\t\t\tprocessor\n\t\t^1.2.1 :\n\t\t\tscheduler\n\n\t github.com/sah4ez/mongo\n\t !!!3 differnt vesrion are used!!!\n\t\t^2.3.1 :\n\t\t\tscheduler\n\t\t^2.3.0 :\n\t\t\tmodels\n\t\t^2.2.0 :\n\t\t\tprocessor\n\n\t github.com/sirupsen/logrus\n\t\tmaster :\n\t\t\tlogger-wrap\n```\n\n\n# Known troubles\n\nCloning via public key not work. Using `ssh-add` and `ssh-agent`.\n\n# dependecy manager\n\nSupported:\n\n- dep\n- glide\n- go.mod\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsah4ez%2Fgosvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsah4ez%2Fgosvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsah4ez%2Fgosvm/lists"}