# repos

## Github Repository Styleguide

This document describes our Github Repository conventions. Please update it regularly as new types of applications are introduced to the Orchard ecosystem.

## Content

While as an organization, we do have a limit on the number of repositories, we generally want to ensure each Github repository is a distinct application \(e.g. microservices, frontend applications, etc.\) This will help us avoid building monolith applications like `orchard` and `api` repo.

## Naming Conventions

All repositories should be lower-case. Words in a repository name should be separated by `-`. The following conventions apply for our _private_ repositories.

### Microservices

Repositories containing a microservice should use the following namespace:

```text
ows-{name}
```

DO:

```text
ows-users
ows-artists
ows-products
ows-marketing
ows-project-manager
```

DON'T:

```text
ows-user
OWS-PROJECTMANAGER
microservice-project-manager
```

Note: for all microservices that uses or focuses on a specific entity \(for instance: `users`, or `artists`, make sure your microservices uses the plural form of the noun\).

### Frontend

Repositories containing frontend applications should use the following namespace:

```text
frontend-{name}
```

DO:

```text
frontend-distribution
```

DON'T:

```text
react-distribution
```

### AWS Simple Workflow

Repositories containing Simple Workflow/Garcon applications should use the following namespace:

```text
swf-{name}
```

DO:

```text
swf-accounting-statement-export
```

DON'T:

```text
process-accounting
```

### AWS Lambda

Repositories related to AWS Lambda should use the following namespace:

```text
lambda-{name}
```

DO:

```text
lambda-aggregate-stats
```

DON'T:

```text
lambda-aggregate_stats # no underscore, only dashes
aggregate-stats
```

### Language-based Libraries

Repositories that should be treated as libraries for specific languages should use the following namespace:

```text
{language}-{name}
```

DO:

```text
python-owslogger
```

DON'T:

```text
owslogger
```

A HUGE exception you will observe is the `common` repo, which is a PHP library that supports lots.

## Public Repositories

TODO...

