|
1 | 1 | # Cavorite |
2 | 2 |
|
3 | | -<img src="images/cavorite_logo.png" alt="drawing" width="80" background-color="transparent" align="left"/> A cli tool that makes it easy to track large, binary files in source control repositories by making them "lighter weight" and making binaries less of a burden. Cavorite is compatible with _any_ SCM system. |
| 3 | +<img src="images/cavorite_logo.png" alt="drawing" width="80" background-color="transparent" align="left"/> A cli tool that makes it easy to track large, binary files in source control repositories by swapping the binary files with json metadata. Cavorite is compatible with _any_ SCM system because the binaries are tracked by json metadata files. |
4 | 4 |
|
5 | 5 | <br/> |
6 | 6 |
|
7 | 7 | ## **Disclaimer** |
8 | 8 |
|
9 | | -This is not production ready nor feature complete. See [Issues](https://github.com/discentem/cavorite/issues) for upcoming features. |
| 9 | +This is not production ready nor feature complete. See [Issues](https://github.com/discentem/cavorite/issues) for future features. |
10 | 10 |
|
11 | | -Inspired by https://github.com/facebook/IT-CPE/tree/main/pantri, this is a re-write in Go with support for s3, Minio, Google Cloud Storage, and other storage systems through plugins. See [stores](stores) for information about implementing new storage drivers. |
| 11 | +Inspired by https://github.com/facebook/IT-CPE/tree/main/pantri, Cavorite is a re-write in Go with support for s3, Minio, Google Cloud Storage, and other storage systems through plugins. See [stores](stores) for information about implementing new storage drivers. |
12 | 12 |
|
13 | | -## Development |
14 | | - |
15 | | -### Prerequisites |
16 | | - |
17 | | -Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
18 | | - |
19 | | -### How to build |
20 | | - |
21 | | -#### with Bazel |
22 | | - |
23 | | -`make` |
24 | | - |
25 | | -#### with go build |
26 | | - |
27 | | -`make go_build` |
28 | | - |
29 | | -### Linting |
30 | | - |
31 | | -`make lint` |
32 | | - |
33 | | -### Unit Tests |
34 | | - |
35 | | -`make test` |
36 | | - |
37 | | -## End-to-end testing workflow |
| 13 | +## Using Cavorite |
38 | 14 |
|
39 | | -### Minio (S3) |
| 15 | +### Minio (S3) backend |
40 | 16 |
|
41 | 17 | > These steps for Minio are also performed automatically by our integration test on each pull request and push: [.github/workflows/integration-test.yaml](.github/workflows/integration-test.yaml) |
42 | 18 |
|
@@ -73,7 +49,7 @@ Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
73 | 49 | $ export AWS_SECRET_ACCESS_KEY=minioadmin |
74 | 50 | ``` |
75 | 51 |
|
76 | | -1. Initialize cavorite. This assumes default Minio credentials. **You should change these credentials for a production deployment**. |
| 52 | +1. Initialize cavorite. |
77 | 53 |
|
78 | 54 | ```shell |
79 | 55 | $ $cavorite_BIN init ~/some_git_project --backend_address http://127.0.0.1:9000/test --store_type=s3 --region="us-east-1" |
@@ -136,7 +112,7 @@ Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
136 | 112 | 2022/10/18 21:57:53 Retrieving [~/some_git_project/googlechromebeta.dmg] |
137 | 113 | ``` |
138 | 114 |
|
139 | | -### Testing a plugin-based backend (experimental) |
| 115 | +### Plugin backend (arbitrary storage backends at runtime!) |
140 | 116 |
|
141 | 117 | > This is not yet tested automatically in Github Actions. |
142 | 118 |
|
@@ -220,3 +196,27 @@ Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
220 | 196 | ``` |
221 | 197 |
|
222 | 198 | 1. `$CAVORITE_BIN retrieve blob.txt.cfile` |
| 199 | + |
| 200 | +## Development |
| 201 | + |
| 202 | +### Prerequisites |
| 203 | + |
| 204 | +Install [bazelisk](https://github.com/bazelbuild/bazelisk) |
| 205 | + |
| 206 | +### How to build |
| 207 | + |
| 208 | +#### with Bazel |
| 209 | + |
| 210 | +`make` |
| 211 | + |
| 212 | +#### with go build |
| 213 | + |
| 214 | +`make go_build` |
| 215 | + |
| 216 | +### Linting |
| 217 | + |
| 218 | +`make lint` |
| 219 | + |
| 220 | +### Unit Tests |
| 221 | + |
| 222 | +`make test` |
0 commit comments