Go dependency management tool experiment (deprecated)
Перейти к файлу
sam boyer cd11da188c Split proc termination paths for UNIX vs. Windows
This allows us to rely on gentler termination semantics (os.Interrupt)
for UNIX-y systems, as such interrupts do not work on Windows.
Terminations are triggered by e.g. ctrl-C interrupts. Relying generally
on Process.Kill() for such purposes was causing git to often exit in
unclean ways, resulting in a dirty cache dir and putting users in an
awkward position.

We maintain the invariant that we ensure the process IS either exited,
or forcibly Process.Kill()ed, before exiting monitoredCmd.run(). This
allows us to ensure we do not have orphan subprocesses that exist beyond
the lifetime of the parent sourceMgr.
2017-07-19 22:20:54 -04:00
.github Make @sdboyer general maintainer/of last resort 2017-07-17 13:01:46 -04:00
cmd/dep Revert "Merge pull request #825 from grepory/dep-ensure-errors" 2017-07-17 12:30:04 -04:00
docs Move version examples to Gopkg.toml doc 2017-07-14 17:36:41 +05:30
hack Fixed validate-vendor.bash to work with current dep implementation. 2017-05-25 13:18:26 +03:00
internal Split proc termination paths for UNIX vs. Windows 2017-07-19 22:20:54 -04:00
testdata Remove trailing spaces from generated Gopkg.toml 2017-06-19 11:54:00 +09:00
vendor/github.com Support importing glide configuration 2017-06-01 16:22:46 -05:00
.codeclimate.yml Exclude testdata dirs from codeclimate 2017-05-26 08:47:29 -04:00
.gitattributes Prevent problems comparing golden files on Windows 2017-02-20 23:45:11 -05:00
.gitignore Ignore output files from a test run 2017-06-08 17:54:30 -05:00
.travis.yml #662 Move HOMEBREW_NO_AUTO_UPDATE to env section 2017-05-28 22:43:22 +02:00
AUTHORS Add repo boilerplate and readme 2016-10-07 11:28:24 +11:00
CODE_OF_CONDUCT.md (To Squash) Moving CODE_OF_CONDUCT.md ../ 2017-04-25 09:11:55 -06:00
CONTRIBUTING.md Clarify aligning with toolchain a bit more 2017-06-06 12:26:15 -04:00
CONTRIBUTORS Add repo boilerplate and readme 2016-10-07 11:28:24 +11:00
FAQ.md Update README, FAQ to reflect production-readiness 2017-07-19 19:23:40 -04:00
Gopkg.lock Support importing glide configuration 2017-06-01 16:22:46 -05:00
Gopkg.toml Support importing glide configuration 2017-06-01 16:22:46 -05:00
LICENSE Add repo boilerplate and readme 2016-10-07 11:28:24 +11:00
MAINTAINERS.md Add MAINTAINERS.md 2017-06-09 15:29:41 -04:00
PATENTS Add repo boilerplate and readme 2016-10-07 11:28:24 +11:00
README.md Update README, FAQ to reflect production-readiness 2017-07-19 19:23:40 -04:00
analyzer.go add new ProjectAnalyzerInfo type to return from ProjectAnalyzer.Info 2017-06-14 18:31:47 -05:00
analyzer_notwindows_test.go Add Windows specific function for making a file unreadable during tests. 2017-05-02 02:34:40 -04:00
analyzer_test.go add new ProjectAnalyzerInfo type to return from ProjectAnalyzer.Info 2017-06-14 18:31:47 -05:00
analyzer_windows_test.go Add Windows specific function for making a file unreadable during tests. 2017-05-02 02:34:40 -04:00
appveyor.yml Only test against Go 1.8 on Windows 2017-06-26 23:59:16 -04:00
context.go Merge pull request #682 from jmank88/split_absolute_project_root 2017-06-27 00:58:48 -04:00
context_test.go updated fs.isDir to always return an error even if the directory is not found 2017-07-10 10:05:03 -04:00
doc.go improve godoc; replace Loggers with embeded fields; refactor Ctx api 2017-06-07 08:46:44 -05:00
lock.go rename UnpairedVersion.Is() to Pair() 2017-06-14 09:44:59 -05:00
lock_test.go Modified test files to use project uri's that point to project root rather then submodules. 2017-06-16 08:24:47 -04:00
manifest.go Fixes #429. Removed Manifest.TestDependencyConstraints() and all usage. 2017-06-19 07:02:41 -04:00
manifest_test.go Added check for multiple overrides in manifes files. 2017-06-15 17:35:58 -04:00
project.go updated fs.isDir to always return an error even if the directory is not found 2017-07-10 10:05:03 -04:00
project_test.go improve godoc; replace Loggers with embeded fields; refactor Ctx api 2017-06-07 08:46:44 -05:00
test_project_context_test.go improve godoc; replace Loggers with embeded fields; refactor Ctx api 2017-06-07 08:46:44 -05:00
txn_writer.go unexport and re-locate PruneProject and helpers 2017-07-13 07:50:29 -05:00
txn_writer_test.go unexport and re-locate PruneProject and helpers 2017-07-13 07:50:29 -05:00

README.md

Dep

Linux: Build Status | Windows: Build status | Code Climate

Dep is a prototype dependency management tool. It requires Go 1.7 or newer to compile.

dep is NOT an official tool. Yet. Check out the Roadmap!

Current status

dep is safe for production use. That means two things:

  • Any valid metadata file (Gopkg.toml and Gopkg.lock) will be readable and considered valid by any future version of dep.
  • Generally speaking, it has comparable or fewer bugs than other tools out there.

That said, keep in mind the following:

  • dep is still changing rapidly. If you need stability (e.g. for CI), it's best to rely on a released version, not tip.
  • Some changes are pending to the CLI interface. Scripting on dep before they land is unwise.
  • dep's exported API interface will continue to change in unpredictable, backwards-incompatible ways until we tag a v1.0.0 release.

Context

Usage

Get the tool via

$ go get -u github.com/golang/dep/cmd/dep

Typical usage on a new repo might be

$ dep init
$ dep ensure -update

To update a dependency to a new version, you might run

$ dep ensure github.com/pkg/errors@^0.8.0

See the help text for more detailed usage instructions.

Feedback

Feedback is greatly appreciated. At this stage, the maintainers are most interested in feedback centered on the user experience (UX) of the tool. Do you have workflows that the tool supports well, or doesn't support at all? Do any of the commands have surprising effects, output, or results? Please check the existing issues and FAQ to see if your feedback has already been reported. If not, please file an issue, describing what you did or wanted to do, what you expected to happen, and what actually happened.

Contributing

Contributions are greatly appreciated. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers. The project follows the typical GitHub pull request model. See CONTRIBUTING.md for more details. Before starting any work, please either comment on an existing issue, or file a new one.