README.md
1# go4
2
3[![travis badge](https://travis-ci.org/go4org/go4.svg?branch=master)](https://travis-ci.org/go4org/go4 "Travis CI")
4
5[go4.org](http://go4.org) is a collection of packages for
6Go programmers.
7
8They started out living in [Perkeep](https://perkeep.org)'s repo
9and elsewhere but they have nothing to do with Perkeep, so we're
10moving them here.
11
12## Details
13
14* **single repo**. go4 is a single repo. That means things can be
15 changed and rearranged globally atomically with ease and
16 confidence.
17
18* **no backwards compatibility**. go4 makes no backwards compatibility
19 promises. If you want to use go4, vendor it. And next time you
20 update your vendor tree, update to the latest API if things in go4
21 changed. The plan is to eventually provide tools to make this
22 easier.
23
24* **forward progress** because we have no backwards compatibility,
25 it's always okay to change things to make things better. That also
26 means the bar for contributions is lower. We don't have to get the
27 API 100% correct in the first commit.
28
29* **no Go version policy** go4 packages are usually built and tested
30 with the latest Go stable version. However, go4 has no overarching
31 version policy; each package can declare its own set of supported
32 Go versions.
33
34* **code review** contributions must be code-reviewed. We're trying
35 out Gerrithub, to see if we can find a mix of Github Pull Requests
36 and Gerrit that works well for many people. We'll see.
37
38* **CLA compliant** contributors must agree to the Google CLA (the
39 same as Go itself). This ensures we can move things into Go as
40 necessary in the future. It also makes lawyers at various
41 companies happy. The CLA is **not** a copyright *assignment*; you
42 retain the copyright on your work. The CLA just says that your
43 work is open source and you have permission to open source it. See
44 https://golang.org/doc/contribute.html#cla
45
46* **docs, tests, portability** all code should be documented in the
47 normal Go style, have tests, and be portable to different
48 operating systems and architectures. We'll try to get builders in
49 place to help run the tests on different OS/arches. For now we
50 have Travis at least.
51
52## Contact
53
54For any question, or communication when a Github issue is not appropriate,
55please contact the [Perkeep mailing
56list](https://groups.google.com/forum/#!forum/perkeep).
57
58