github.com/cs3org/reva/v2@v2.27.7/README.md (about)

     1  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GoDoc](https://godoc.org/github.com/cs3org/reva?status.svg)](https://godoc.org/github.com/cs3org/reva)
     2  [![Gitter chat](https://badges.gitter.im/cs3org/reva.svg)](https://gitter.im/cs3org/reva) [![Build Status](https://drone.cernbox.cern.ch/api/badges/cs3org/reva/status.svg)](https://drone.cernbox.cern.ch/cs3org/reva)
     3  [![Go Report Card](https://goreportcard.com/badge/github.com/cs3org/reva)](https://goreportcard.com/report/github.com/cs3org/reva) [![codecov](https://codecov.io/gh/cs3org/reva/branch/master/graph/badge.svg)](https://codecov.io/gh/cs3org/reva) [![FOSSA Status](https://app.fossa.com/api/projects/custom%2B11650%2Fcs3org%2Freva.svg?type=shield)](https://app.fossa.com/projects/custom%2B11650%2Fcs3org%2Freva?ref=badge_shield)
     4  ================
     5  
     6  ![REVA Logo](https://raw.githubusercontent.com/cs3org/logos/efd3d2649478193e74f3de5a41247445941026b6/reva/logo.jpg)
     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.