Melody - Dependency Manager for Go
Melody is a dependency manager with a focus on speed and reliability. In some instances, it is up to 3x faster than
go get -d and other dependency managers.
Sponsored by Gemfury, Melody has been used for production builds since July 2016.
Melody is a tool that enables Go developers to manage project's dependencies and ensure fast, consistent, and repeatable builds. We've adopted the following principles to make this happen:
All dependencies are vendored to prevent multiple projects from clobbering shared repositories in GOPATH.
Human-friendly config file explicitly specifies project details and dependencies with corresponding version restrictions.
Human-readable lock file to record and track exact revision of each installed repository. This file is used to deterministically recreate the
Cloud-assisted repository indexing and caching allows for much faster and more-reliable builds. melodyAPI integration makes sure your build is fast, and that a deleted repository or tag does not break future builds.
Please note that the melodyAPI cloud cache may be cold during the beta period due to a low traffic. This may cause slowness during your installs, but it will get faster as our userbase grows.
Melody requires Go 1.6+. Although it may work with GO15VENDOREXPERIMENT flag, Go 1.5 is not supported.
- Installing Melody
- Start a new Go project
- Command reference
- Go project layout
- Specifying dependencies
Contribution and Improvements
We encourage you to contribute to Melody! The current iteration of Melody is just a preview of what it could be. Check GitHub issues to see how you can help.
Building from source
Although you can use
go get to install Melody, we, of course, recommend using Melody to prepare the project:
$ git clone https://github.com/mdy/melody.git $ cd melody; melody install $ make build
Once you have all the requirements to build Melody, you can run the tests after populating the test data:
$ make install $ make test
If you would like to contribute to this project, just do the following:
- Fork the repo on Github.
- Add your features and make commits to your forked repo.
- Make a pull request to this repo.
- Review will be done and changes will be requested.
- Once changes are done or no changes are required, pull request will be merged.
- The next release will have your changes in it.
Please take a look at the issues page if you want to get started.
If you think it would be nice to have a particular feature that is presently not implemented, we would love to hear your ideas and consider working on it. Just open an issue in Github.
Credits and inspiration
Aside from the dependencies specified in the
Melody.toml file that make Melody possible, we drew ideas, inspiration, and sometimes ported code directly from:
Melody was started as an internal project at Gemfury, and the company will continue to sponsor its maintenance and future development.