github.com/cs3org/reva/v2@v2.27.7/README.md (about) 1 [](https://opensource.org/licenses/Apache-2.0) [](https://godoc.org/github.com/cs3org/reva) 2 [](https://gitter.im/cs3org/reva) [](https://drone.cernbox.cern.ch/cs3org/reva) 3 [](https://goreportcard.com/report/github.com/cs3org/reva) [](https://codecov.io/gh/cs3org/reva) [](https://app.fossa.com/projects/custom%2B11650%2Fcs3org%2Freva?ref=badge_shield) 4 ================ 5 6  7 8 REVA is an interoperability platform. It connects storage, sync and share platforms and application providers, and it does it in a vendor and platform neutral way by using the [CS3 APIS](https://github.com/cs3org/cs3apis). 9 10 ## Installation 11 12 Head to [Documentation](https://reva.link) for documentation or [download](https://github.com/cs3org/reva/releases) to get the latest available release. 13 14 ## Documentation & Support 15 16 Read the [getting started guide](https://reva.link/docs/getting-started/) and the other feature guides. 17 18 ## Build and run it yourself 19 20 You need to have [Go](https://golang.org/doc/install) (version 1.16 or higher), [git](https://git-scm.com/) and [make](<https://en.wikipedia.org/wiki/Make_(software)>) installed. Some of these commands may require `sudo`, depending on your system setup. 21 22 #### Build 23 24 ``` 25 $ git clone -b edge https://github.com/cs3org/reva 26 $ cd reva 27 $ make build 28 ``` 29 30 #### Run 31 32 ``` 33 $ mkdir -p /etc/revad 34 $ cp examples/storage-references/users.demo.json /etc/revad/users.json 35 $ cp examples/storage-references/groups.demo.json /etc/revad/groups.json 36 $ cp examples/storage-references/providers.demo.json /etc/revad/ocm-providers.json 37 $ cmd/revad/revad -dev-dir examples/storage-references 38 39 ``` 40 41 You can also read the [build from sources guide](https://reva.link/docs/getting-started/build-reva/) and the [setup tutorial](https://github.com/cs3org/reva/blob/master/docs/content/en/docs/tutorials/setup-tutorial.md). 42 43 ## Run tests 44 45 Reva's codebase continuously undergoes testing at various levels. 46 47 To understand which tests exist, you can have a look at the [Makefile](https://github.com/cs3org/reva/blob/master/Makefile) and the [Drone run logs](https://drone.cernbox.cern.ch/cs3org/reva/). 48 49 The tests run by CERN's instance of [Drone CI/CD](https://docs.drone.io/) are defined in the [.drone.star](https://github.com/cs3org/reva/blob/master/.drone.star) file. 50 51 NB: The [tests/oc-integration-tests/drone](https://github.com/cs3org/reva/tree/master/tests/oc-integration-tests/drone) and [tests/oc-integration-tests/local](https://github.com/cs3org/reva/tree/master/tests/oc-integration-tests/local) folders contain the configuration fixtures that are used to start up the Reva instance to test (on drone CI/CD or on your local system, respectively), for both these acceptance tests ("ownCloud legacy integration tests") and the Litmus tests. 52 53 ### Unit tests 54 55 This runs the `<unit>_test.go` files that appear next to some of the `<unit>.go` files in the code tree. 56 57 For instance `pkg/utils/utils_test.go` contains unit tests for `pkg/utils/utils.go`. 58 59 To run all of them you can do `make test`. 60 61 If you see `TestGetManagerWithInvalidUser/Nil_in_user` fail, [try removing](https://github.com/cs3org/reva/issues/1736) `/etc/revad/users.json` on your system. 62 63 To run a single one of them you can do: 64 65 ```sh 66 $ go test `go list ./pkg/utils/...` 67 ok github.com/cs3org/reva/v2/pkg/utils 0.374s 68 ``` 69 70 ### Integration tests (GRPC) 71 72 See [tests/integration](https://github.com/cs3org/reva/tree/master/tests/integration). 73 This requires Redis. 74 75 ```sh 76 export REDIS_ADDRESS=127.0.0.1:6379 77 make test-integration 78 ``` 79 80 You can get more verbose output with `ginkgo -v -r tests/integration/`. 81 82 NB: This will work better on Linux than on MacOS because of issues with static linking (`library not found for -lcrt0.o`). 83 84 ### Litmus tests (WebDAV) 85 86 [Litmus](http://www.webdav.org/neon/litmus/) is a webdav test suite. The litmus tests for Reva's WebDAV interface are run using the [ownCloud's litmus Docker image](https://github.com/owncloud-docker/litmus). The '-old' and '-new' refer to which `LITMUS_URL` environment variable is passed to that Docker image, in other words, which path on the Reva server the litmus tests are run against. 87 88 1. start the needed services 89 90 ``` 91 mkdir -p /var/tmp/reva/einstein 92 cd tests/oc-integration-tests/local 93 ../../../cmd/revad/revad -c frontend.toml & 94 ../../../cmd/revad/revad -c gateway.toml & 95 ../../../cmd/revad/revad -c storage-home.toml & 96 ../../../cmd/revad/revad -c storage-users.toml & 97 ../../../cmd/revad/revad -c users.toml 98 ``` 99 100 2. run litmus tests: 101 102 ``` 103 docker run --rm --network=host\ 104 -e LITMUS_URL=http://localhost:20080/remote.php/webdav \ 105 -e LITMUS_USERNAME=einstein \ 106 -e LITMUS_PASSWORD=relativity \ 107 owncloud/litmus:latest 108 ``` 109 110 - add `TESTS` env. variable to test only a subset of tests e.g `-e TESTS="basic http copymove props"` 111 - change `LITMUS_URL` for other tests e.g. `-e LITMUS_URL=http://localhost:20080/remote.php/dav/files/einstein` or to a public-share link 112 - if on MacOS you see `FAIL (connection refused by '127.0.0.1' port 20080: Connection refused)`, it may be necessary to replace 'localhost' with your host IP address (e.g. `ipconfig getifaddr en0` or `sudo ifconfig | grep 192`) 113 114 ### Acceptance tests (ownCloud legacy) 115 116 See [Running Acceptance Tests](https://github.com/cs3org/reva/tree/edge/tests/acceptance). 117 118 ## Daily releases 119 120 On every commit on the master branch (including merged Pull Requests) a new release will be created and 121 available at [daily releases](https://reva-releases.web.cern.ch/reva-releases). 122 123 ## Major versions 124 125 There are currently two major versions in active development. 126 127 ### 1.x versions 128 129 The `master` branch is the stable development branch. Releases from master are tagged as 1.x.x versions following [semver](https://semver.org/). 130 131 ### 2.x versions 132 133 The `edge` branch is used to develop the next version of this project. The edge branch is based on a new concept named "Spaces" and a new set of the CS3APIs are being implemented, making it **not compatible** with `master` branch. Releases from `edge` are tagged as _2.x.x_ versions following [semver](https://semver.org/). 134 135 ## Run it using Docker 136 137 See [https://hub.docker.com/r/cs3org/reva](https://hub.docker.com/r/cs3org/reva). 138 139 ## Plugin development 140 141 Checkout the [Tutorials](https://reva.link/docs/tutorials/). 142 143 ## License 144 145 To promote free and unrestricted adoption of [CS3 APIs](https://github.com/cs3org/cs3apis) and the reference 146 implementation [REVA](https://github.com/cs3org/reva) by all EFSS implementations and all platforms and 147 application providers, both community and commercial, Open Source and 148 Open Core, [CERN](https://home.cern/) released the source code repositories under [Apache 2.0 license](https://github.com/cs3org/reva/blob/master/LICENSE). 149 150 Further evolution of the CS3 APIs will be driven by the needs of the 151 Educational and Research community with the goal of maximizing the 152 portability of the applications and service extensions. 153 154 REVA is distributed under [Apache 2.0 license](https://github.com/cs3org/reva/blob/master/LICENSE). 155 156 ## Logo 157 158 REVA logo's have been designed and contributed to the project by Eamon Maguire. 159 160 ## Disclaimer 161 162 There is no backward compatibility promises and semantic versioning yet. 163 Semantic versioning will be added once v1.0.0 is reached. 164 165 If you want to use it, vendor it. It is always OK to change things to make things better. 166 The API is not 100% correct in the first commit.