{"id":13437395,"url":"https://github.com/yaa110/rubigo","last_synced_at":"2025-03-19T06:31:04.835Z","repository":{"id":87559495,"uuid":"88535498","full_name":"yaa110/rubigo","owner":"yaa110","description":"[DEPRECATED] Golang vendor utility and package manager","archived":true,"fork":false,"pushed_at":"2018-12-15T10:37:54.000Z","size":67,"stargazers_count":43,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-27T21:51:20.699Z","etag":null,"topics":["dependency-manager","golang","package-manager","rust","vendoring"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/yaa110.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2017-04-17T18:03:53.000Z","updated_at":"2023-09-17T04:38:29.000Z","dependencies_parsed_at":"2023-03-13T18:44:04.153Z","dependency_job_id":null,"html_url":"https://github.com/yaa110/rubigo","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaa110%2Frubigo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaa110%2Frubigo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaa110%2Frubigo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaa110%2Frubigo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaa110","download_url":"https://codeload.github.com/yaa110/rubigo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244370966,"owners_count":20442319,"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","golang","package-manager","rust","vendoring"],"created_at":"2024-07-31T03:00:56.608Z","updated_at":"2025-03-19T06:31:04.829Z","avatar_url":"https://github.com/yaa110.png","language":"Rust","funding_links":[],"categories":["Applications","应用","应用 Applications"],"sub_categories":["Utilities","实用","公用事业 Utilities"],"readme":"Rubigo\n======\n[![Build Status](https://travis-ci.org/yaa110/rubigo.svg?branch=master)](https://travis-ci.org/yaa110/rubigo) [![Build status](https://ci.appveyor.com/api/projects/status/gaj2qh18963d0hp1?svg=true)](https://ci.appveyor.com/project/yaa110/rubigo) [![License](http://img.shields.io/:license-mit-blue.svg)](https://github.com/yaa110/rubigo/blob/master/LICENSE) [![Version](https://img.shields.io/badge/version-1.0.4-blue.svg)](https://github.com/yaa110/rubigo/releases)\n\n**Rubigo** is a *DEPRECATED* dependency tool and package manager for [Golang](https://golang.org/), written in [Rust](https://www.rust-lang.org/en-US/). Rubigo uses `vendor` directory (starting from Go 1.5) to install packages, however it is possible to add packages globally (in `GOPATH/src` directory) or make a local package in `vendor` directory. Rubigo respects to manual changes in `vendor` directory and does not delete custom packages. Currently, Rubigo only supports `git` repositories. This source code is licensed under MIT license that can be found in the LICENSE file.\n\n## Deprecation\nConsider using [Go versioned modules](https://github.com/golang/go/wiki/Modules):\n\n- `rm -r vendor rubigo.json rubigo.lock`\n- `export GO111MODULE=on`\n- `go mod init`\n\n## Features\n- Manage `vendor`, `global` and `local` packages\n- Use a custom repository to clone a package\n- Support [semantic versioning](http://semver.org/)\n- Define package information\n- Start a new project (binary or library)\n\n## How it works\nRubigo creates two JSON (manifest) files (`rubigo.json` and `rubigo.lock`) inside the directory of Golang project. The `rubigo.json` contains the information of the project and packages which should be installed and maintained, and `rubigo.lock` contains the information of packages which have already been installed in `vendor` directory or globally in `GOPATH/src`. You could edit both files manually or using Rubigo sub-commands, then you can apply them to project's dependencies. Also, it is feasible to start Rubigo in an existing project.\n\n## How to install\nYou can download a pre-built binary from [releases](https://github.com/yaa110/rubigo/releases) page or you can build it manually as following:\n1. Install [Rust](https://www.rust-lang.org/en-US/) programming language.\n  * On Linux and Mac OS: install `cmake`, `libcurl4-openssl-dev`, `libelf-dev`, `libssl-dev` and `libdw-dev`.\n  * On Windows: install `cmake`, `Visual Studio C++`.\n2. Use Rust's package manager `cargo` to install the application: `cargo install --git https://github.com/yaa110/rubigo.git`\n\n## Sub-commands\n- **init, start**: Initializes Rubigo project in an existing directory, e.g. `rubigo init`. This sub-command searches the `vendor` directory for packages which has already been installed.\n- **new, create**: Creates a new Golang project, e.g. `rubigo new my-project` or `rubigo new --lib my-library`. This sub-command creates a new directory with the name provided to it containing a new `.go` file and manifest files.\n- **get, add**: Adds a package to dependencies and clones it into `vendor` directory, e.g. `rubigo get github.com/blah/blah --repo=github.com/my/custom/repo` (the `--repo` argument is optional). This sub-command could also install packages globally to `GOPATH/src` directory using `--global` flag or create a local package using `--local` flag.\n- **update, up**: Updates one or all packages and applies the changes of `rubigo.json` to `rubigo.lock` and packages in `vendor` directory, e.g. `rubigo update github.com/blah/blah`. This sub-command could also delete the package's directory and clone it again using `--clean` flag. If no package name is provided, it updates all the packages.\n- **remove, rm**: Removes a package from manifest files and `vendor` directory, e.g. `rubigo remove github.com/blah/blah`.\n- **apply, install**: Applies the changes of `rubigo.lock` to packages in `vendor` directory, e.g. `rubigo apply`. This sub-command could also delete the package's directory and clone it again using `--clean` flag. Most of the time, it is used when you have cloned a project and wanted to install missing packages.\n- **reset, sync**: Updates manifest files to the list of packages which have already been installed in `vendor` directory, e.g. `rubigo reset`. It is used when you have manually changed the `vendor` directory and wanted to update manifest files. Please note that this subcommand only collects git packages and ignores local packages.\n- **list, ls**: Displays a list of packages from `rubigo.lock` file, e.g. `rubigo list`. This sub-command could only list git, local or global packages (or a combination of them) using `--remote`, `--local` or `--global` flags, respectively.\n- **info, about**: Displays the information about the project from `rubigo.json` file, e.g. `rubigo info`.\n- **help**: Displays the help message, e.g. `rubigo help`. It is also possible to get the information of a sub-command, e.g. `rubigo help get`.\n\n## Flags\n- **--verbose, -v**: Uses verbose output.\n- **--quiet, -q**: Prints no output.\n- **--yes, -y**: Continues without prompt for a confirmation.\n- **--help, -h**: Displays the help message.\n- **--version, -V**: Displays the version of Rubigo.\n\n## The manifest format\nYou can find the template of [rubigo.json](https://github.com/yaa110/rubigo/blob/master/templates/rubigo.json) and [rubigo.lock](https://github.com/yaa110/rubigo/blob/master/templates/rubigo.lock) files in `templates` directory. Both files have a JSON format with the following objects:\n\n- **info**: Contains the (optional) information about the project. Only `rubigo.json` contains this object.\n  * **name**: The name of project\n  * **import**: The import path of project\n  * **description**: Short description about the project\n  * **homepage**: Url to the project homepage (should contain the protocol scheme, such as `http://`)\n  * **license**: The license of the project\n  * **authors**: An array of project's authors\n    * **name**: The name of author\n    * **email**: The email address of author\n    * **website**: The website url of author (should contain the protocol scheme, such as `http://`)\n- **packages**: Containg the information about packages.\n  * **git**: An array of dependencies cloned from a git repository\n    * **import**: The import path of package\n    * **repo**: A custom url to clone the repository\n    * **version**: The version (a git revision or semantic version) of the project. For more information about the semantic rules, please check [semver](https://github.com/steveklabnik/semver) documentation.\n  * **local**: An array of local packages in `vendor` directory.\n  * **global**: An array of global packages in `GOPATH/src` directory.\n\n## Contribution\nPlease feel free to open an issue to report a bug or ask a question, or open a pull request to debug or add more features to Rubigo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaa110%2Frubigo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaa110%2Frubigo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaa110%2Frubigo/lists"}