This repository exists to collect commonly shared Go code within Mesosphere. It can include code that is specific to DC/OS and can also include code that is more utilitarian in nature.
Everyone is welcome to submit Pull Requests.
If you find yourself writing the same code more than once in separate projects, or have seen the same code in more than one project, it may be a good candidate for inclusion into this repository. Be sure to ask on the mailing list if you are unsure before contributing.
Pull requests should adhere to the following guidelines:
- Reviewer first: create your changeset with care for the reviewer.
- The changeset should have a good description.
- Each commit in the changeset should have a description as well as be focused on one thing.
- Code must be tested
- Code should be written with care to allow for non-breaking changes going forward
- If introducing a new package, the package should have a
doc.go
file which describes the purpose of the package. - Try not to introduce external dependencies unless necessary.
This project uses go mod
to manage external dependencies. External libs are vendored into the /vendor
directory. There is one set of dependencies for all of the packages that live in this project. If you need to make a change to one of the dependencies, at the current time it will need to be compatible with all of the packages. A passing CI build will ensure this.
- dcos: Common constants and helpers
- dcos/http/transport : HTTP transport with JWT token support
- dcos/nodeutil : Interact with DC/OS services and variables
- store : In-Memory key/value store.
- zkstore: ZK-based blob storage.
- elector: Leadership election.
Note that this package list is manually updated in this README. There is some discussion about automating this process. You can track the progress of this effort by following this ticket.
Licensed under the Apache License, Version 2.0.