go4

module
v0.0.0-...-40d72ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2016 License: Apache-2.0

README

go4

travis badge

go4.org is a collection of packages for Go programmers.

They started out living in Camlistore's repo and elsewhere but they have nothing to do with Camlistore, so we're moving them here.

Details

  • single repo. go4 is a single repo. That means things can be changed and rearranged globally atomically with ease and confidence.

  • no backwards compatibility. go4 makes no backwards compatibility promises. If you want to use go4, vendor it. And next time you update your vendor tree, update to the latest API if things in go4 changed. The plan is to eventually provide tools to make this easier.

  • forward progress because we have no backwards compatibility, it's always okay to change things to make things better. That also means the bar for contributions is lower. We don't have to get the API 100% correct in the first commit.

  • code review contributions must be code-reviewed. We're trying out Gerrithub, to see if we can find a mix of Github Pull Requests and Gerrit that works well for many people. We'll see.

  • CLA compliant contributors must agree to the Google CLA (the same as Go itself). This ensures we can move things into Go as necessary in the future. It also makes lawyers at various companies happy. The CLA is not a copyright assignment; you retain the copyright on your work. The CLA just says that your work is open source and you have permission to open source it. See https://golang.org/doc/contribute.html#tmp_6

  • docs, tests, portability all code should be documented in the normal Go style, have tests, and be portable to different operating systems and architectures. We'll try to get builders in place to help run the tests on different OS/arches. For now we have Travis at least.

Contributing

To add code to go4, send a pull request or push a change to Gerrithub.

We assume you already have your $GOPATH set and the go4 code cloned at $GOPATH/src/go4.org. For example:

  • git clone https://review.gerrithub.io/camlistore/go4 $GOPATH/src/go4.org
To push a code review to Gerrithub directly:
  • Sign in to http://gerrithub.io with your Github account.

  • Install the git hook that adds the magic "Change-Id" line to your commit messages:

    curl -o $GOPATH/src/go4.org/.git/hooks/commit-msg https://camlistore.googlesource.com/camlistore/+/master/misc/commit-msg.githook

  • make changes

  • commit (the unit of code review is a single commit identified by the Change-ID, NOT a series of commits on a branch)

  • git push ssh://$YOUR_GITHUB_USERNAME@review.gerrithub.io:29418/camlistore/go4 HEAD:refs/for/master

Using Github Pull Requests
Problems contributing?

See https://review.gerrithub.io/Documentation/user-upload.html for more generic documentation.

(TODO: more docs on Gerrit, integrate git-codereview, etc.)

Directories

Path Synopsis
Package bytereplacer provides a utility for replacing parts of byte slices.
Package bytereplacer provides a utility for replacing parts of byte slices.
cloud
cloudlaunch
Package cloudlaunch helps binaries run themselves on The Cloud, copying themselves to GCE.
Package cloudlaunch helps binaries run themselves on The Cloud, copying themselves to GCE.
google/gceutil
Package gceutil provides utility functions to help with instances on Google Compute Engine.
Package gceutil provides utility functions to help with instances on Google Compute Engine.
google/gcsutil
Package gcsutil provides tools for accessing Google Cloud Storage until they can be completely replaced by google.golang.org/cloud/storage.
Package gcsutil provides tools for accessing Google Cloud Storage until they can be completely replaced by google.golang.org/cloud/storage.
Package ctxutil contains golang.org/x/net/context related utilities.
Package ctxutil contains golang.org/x/net/context related utilities.
Package errorutil helps make better error messages.
Package errorutil helps make better error messages.
Package fault handles fault injection for testing.
Package fault handles fault injection for testing.
Package jsonconfig defines a helper type for JSON objects to be used for configuration.
Package jsonconfig defines a helper type for JSON objects to be used for configuration.
Package legal provides in-process storage for compiled-in licenses.
Package legal provides in-process storage for compiled-in licenses.
Package lock is a file locking library.
Package lock is a file locking library.
net
throttle
Package throttle provides a net.Listener that returns artificially-delayed connections for testing real-world connectivity.
Package throttle provides a net.Listener that returns artificially-delayed connections for testing real-world connectivity.
Package oauthutil contains OAuth 2 related utilities.
Package oauthutil contains OAuth 2 related utilities.
Package osutil contains os level functions.
Package osutil contains os level functions.
Package readerutil contains io.Reader types.
Package readerutil contains io.Reader types.
Package strutil contains string and byte processing functions.
Package strutil contains string and byte processing functions.
Package syncutil provides various concurrency mechanisms.
Package syncutil provides various concurrency mechanisms.
singleflight
Package singleflight provides a duplicate function call suppression mechanism.
Package singleflight provides a duplicate function call suppression mechanism.
syncdebug
Package syncdebug contains facilities for debugging synchronization problems.
Package syncdebug contains facilities for debugging synchronization problems.
Package types provides various common types.
Package types provides various common types.
Package wkfs implements the pluggable "well-known filesystem" abstraction layer.
Package wkfs implements the pluggable "well-known filesystem" abstraction layer.
gcs
Package gcs registers a Google Cloud Storage filesystem at the well-known /gcs/ filesystem path if the current machine is running on Google Compute Engine.
Package gcs registers a Google Cloud Storage filesystem at the well-known /gcs/ filesystem path if the current machine is running on Google Compute Engine.
Package writerutil contains io.Writer types.
Package writerutil contains io.Writer types.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL