16080: Writeup of CONTRIBUTING.md
[arvados.git] / README.md
index ca5aef91c1a6c8a9f82995c9e8123e505b204994..d95d7dab3995df82cb7340afdd96c4b1803ad180 100644 (file)
--- a/README.md
+++ b/README.md
-```
-Copyright (C) The Arvados Authors. All rights reserved.
-SPDX-License-Identifier: CC-BY-SA-3.0
-```
-
-# Arvados Java SDK
-
-##### About
-Arvados Java Client allows to access Arvados servers and uses two APIs:
-* lower level [Keep Server API](https://doc.arvados.org/api/index.html)
-* higher level [Keep-Web API](https://godoc.org/github.com/curoverse/arvados/services/keep-web) (when needed)
-
-##### Required Java version
-This SDK requires Java 8+
-
-##### Logging
-
-SLF4J is used for logging. Concrete logging framework and configuration must be provided by a client.
+[comment]: # (Copyright © The Arvados Authors. All rights reserved.)
+[comment]: # ()
+[comment]: # (SPDX-License-Identifier: CC-BY-SA-3.0)
 
-##### Configuration
+[![Join the chat at https://gitter.im/arvados/community](https://badges.gitter.im/arvados/community.svg)](https://gitter.im/arvados/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | [Installing Arvados](https://doc.arvados.org/install/index.html) | [Installing Client SDKs](https://doc.arvados.org/sdk/index.html) | [Report a bug](https://dev.arvados.org/projects/arvados/issues/new) | [Development and Contributing](CONTRIBUTING.md)
 
-[TypeSafe Configuration](https://github.com/lightbend/config) is used for configuring this library.
+[Arvados](https://arvados.org) is a free software distributed computing platform
+for bioinformatics, data science, and high throughput analysis of massive data
+sets.  Arvados supports a variety of cloud, cluster and HPC environments.
 
-Please, have a look at java/resources/reference.conf for default values provided with this library.
+Arvados consists of:
 
-* **keepweb-host** - change to host of your Keep-Web installation
-* **keepweb-port** - change to port of your Keep-Web installation
-* **host** - change to host of your Arvados installation
-* **port** - change to port of your Arvados installation
-* **token** - authenticates registered user, one must provide
-  [token obtained from Arvados Workbench](https://doc.arvados.org/user/reference/api-tokens.html)
-* **protocol** - don't change to unless really needed
-* **host-insecure** - insecure communication with Arvados (ignores SSL certificate verification), 
-  don't change to *true* unless really needed
-* **split-size** - size of chunk files in megabytes
-* **temp-dir** - temporary chunk files storage
-* **copies** - amount of chunk files duplicates per Keep server
-* **retries** - in case of chunk files send failure this should allow to repeat send 
-  (*NOTE*: this parameter is not used at the moment but was left for future improvements)
+* *Keep*: a petabyte-scale content-addressed distributed storage system for managing and
+  storing collections of files, accessible via a variety of methods including
+  Arvados APIs, WebDAV, and FUSE file system mount.
 
-In order to override default settings one can create application.conf file in an application.
-Example: src/test/resources/application.conf.
+* *Crunch*: a Docker-based cloud and HPC workflow engine designed providing
+  strong versioning, reproducibilty, and provenance of large-scale computations.
 
-Alternatively ExternalConfigProvider class can be used to pass configuration via code. 
-ExternalConfigProvider comes with a builder and all of the above values must be provided in order for it to work properly.
+* Related services and components including a web workbench for managing files
+  and compute jobs, REST APIs, SDKs, and other tools.
 
-ArvadosFacade has two constructors, one without arguments that uses values from reference.conf and second one 
-taking ExternalConfigProvider as an argument.
+## Quick start
 
-##### API clients
+To try out Arvados on your local workstation, you can use Arvbox, which
+provides Arvados components pre-installed in a Docker container (requires
+Docker 1.9+).  After cloning the Arvados git repository:
 
-All API clients inherit from BaseStandardApiClient. This class contains implementation of all 
-common methods as described in http://doc.arvados.org/api/methods.html.
-
-Parameters provided to common or specific methods are String UUID or fields wrapped in Java objects. For example:
+```
+$ cd arvados/tools/arvbox/bin
+$ ./arvbox start localdemo
+```
 
-```java
-String uuid = "ardev-4zz18-rxcql7qwyakg1r1";
+In this mode you will only be able to connect to Arvbox from the same host.  To
+configure Arvbox to be accessible over a network and for other options see
+http://doc.arvados.org/install/arvbox.html for details.
 
-Collection actual = client.get(uuid);
-```
+## Documentation
 
-```java
-ListArgument listArgument = ListArgument.builder()
-        .filters(Arrays.asList(
-                Filter.of("owner_uuid", Operator.LIKE, "ardev%"),
-                Filter.of("name", Operator.LIKE, "Super%"),
-                Filter.of("portable_data_hash", Operator.IN, Lists.newArrayList("54f6d9f59065d3c009d4306660989379+65")
-            )))
-        .build();
+Complete documentation, including the [User Guide](https://doc.arvados.org/user/index.html), [Installation documentation](https://doc.arvados.org/install/index.html) and
+[API documentation](https://doc.arvados.org/api/index.html) is available at http://doc.arvados.org/
 
-CollectionList actual = client.list(listArgument);
-```
+If you wish to build the Arvados documentation from a local git clone, see
+doc/README.textile for instructions.
 
-Non-standard API clients must inherit from BaseApiClient. 
-For example: KeepServerApiClient communicates directly with Keep servers using exclusively non-common methods.
+## Community
 
-##### Business logic
+[![Join the chat at https://gitter.im/arvados/community](https://badges.gitter.im/arvados/community.svg)](https://gitter.im/arvados/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 
-More advanced API data handling could be implemented as *Facade* classes. 
-In current version functionalities provided by SDK are handled by *ArvadosFacade*.
-They include:
-* **downloading single file from collection** - using Keep-Web
-* **downloading whole collection** - using Keep-Web or Keep Server API
-* **listing file info from certain collection** - information is returned as list of *FileTokens* providing file details
-* **uploading single file** - to either new or existing collection
-* **uploading list of files** - to either new or existing collection
-* **creating an empty collection**
-* **getting current user info**
-* **listing current user's collections**
-* **creating new project**
-* **deleting certain collection**
+The [Arvados community channel](https://gitter.im/arvados/community)
+channel at [gitter.im](https://gitter.im) is available for live
+discussion and support.
 
-##### Note regarding Keep-Web
+The [Arvados developement channel](https://gitter.im/arvados/development)
+channel at [gitter.im](https://gitter.im) is used to coordinate development.
 
-Current version requires both Keep Web and standard Keep Server API configured in order to use Keep-Web functionalities.
+The [Arvados user mailing list](http://lists.arvados.org/mailman/listinfo/arvados)
+is used to announce new versions and other news.
 
-##### Integration tests
+## Reporting bugs
 
-In order to run integration tests all fields within following configuration file must be provided: 
-```java
-src/test/resources/integration-test-appliation.conf 
-```
-Parameter **integration-tests.project-uuid** should contain UUID of one project available to user,
-whose token was provided within configuration file. 
+[Report a bug](https://dev.arvados.org/projects/arvados/issues/new) on the [dev.arvados.org Redmine site](https://dev.arvados.org).
 
-Integration tests require connection to real Arvados server.
+## Development and Contributing
 
-##### Note regarding file naming
+See [CONTRIBUTING.md](CONTRIBUTING.md) for information about Arvados development and how to contribute to the Arvados project.
 
-While uploading via this SDK all uploaded files within single collection must have different names.
-This applies also to uploading files to already existing collection. 
-Renaming files with duplicate names is not implemented in current version.
+## Licensing
 
+Arvados is Free Software.  See COPYING for information about Arvados Free
+Software licenses.