Skip to content
This repository has been archived by the owner on Oct 17, 2020. It is now read-only.

Latest commit

 

History

History
173 lines (115 loc) · 6.5 KB

README.md

File metadata and controls

173 lines (115 loc) · 6.5 KB

⚠️ This repository is now archived. New standads will now live in decentraland/adr.


Decentraland standards

Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Introduction

At Decentraland, we put a lot of effort into improving both the Software itself and the Software Process. The pillars of the Software Process are the standards we define to organize our work. This document describes contribution and style guides about how to write those standards.

Types of contributions

Pull Request

The preferred type of contribution is a Github's pull request. Pull request to the master branch from your own fork or from a local branch if you have permissions (the branch will be deleted on merge).

Technical proposals

We opened a channel to propose technical specifciations. Those MAY affect the product itself or the roadmap itself. To contribute with a technical specification you shall follow the guidelines of the proposals repository.

Issue

Issues are other very appreciated kind of contributions.

Opinions

For opinions or open discussion feel free to join the chat.

Style rules

The following are the Style rules that Decentraland's standard documents must follow.

Filename and Title

Every Standard document MUST have a title related with the filename.

The filename MUST be enough to understand what content can be expected.

The filename MUST not contain spaces, hyphens should be used instead.

The filename MUST only contain lowercase alphanumeric characters or hyphen.

Document Status

Every Standard document MUST contain right after the title a line specifying the document status:

**Document Status**: *Draft*.  

The possible status are:

  • Draft. Work in progress.
  • Standard. An Standard a specification or set of guidelines that, after extensive consensus-building, has received the endorsement of the Decentraland team.

The line should end with two white spaces to provoke a line break without starting a new paragraph. This will be useful for the next topic, the Maintainer.

Maintainer

Every Standard document MUST contain right after the document status a line specifying the document maintainer. The maintainer should be specified with an address specification following the RFC2822 standard. The angle-addr should be wrapped in a link link in the MAILTO format described in RFC3696.

**Maintainer**: Agustin Mendez <[[email protected]](mailto:[email protected])>.

The maintainer has the responsibility of coordinating issues, pull requests and any other kind of feedback, plus to maintain the standard itself, by applying proactively changes to maintain it updated. In order to maintain coherence in the big picture, the maintainer should be someone participating in the architectural coordination process.

Conventions

Every Standard document MUST follow the RFC 2119 and SHOULD contain a section following this style:

## Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).

Introduction

Every Standard document MUST have as fist section an introductory section following this style:

## Introduction

At Decentraland, we put a lot of effort into improving both the Software itself and the
Software Process. The pillars of the Software Process are the standards we define to organize our work.
This document describes style guides about how to write those standards.

Related Documents

Documents that have a relationship with other documents SHOULD include a section following this template:

## Related Documents

To understand better the behavior of non fungible tokens refer to [ERC821](https://github.com/decentraland/erc821) documentation.

External content

Every document that contains external content must follow the content with a link to the references section labeled with the related reference:

### Avoid installing unnecessary packages

In order to reduce complexity, dependencies, file sizes, and build times, you
should avoid installing extra or unnecessary packages just because they might be
*nice to have*. For example, you don’t need to include a text editor in a
database image. [[1](#references)]

Further reading

Standard documents MAY recommend further reading. If that is the case the following template should be followed:

## Further reading

- Johnson, Mark (February 1997). [Building a Better ReadMe](http://www.ingentaconnect.com/content/stc/tc/1997/00000044/00000001/art00004). Technical Communication. Society for Technical Communication.

- Preston-Werner, Tom (23 Aug 2010). [Readme Driven Development](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html). Tom Preston-Werner's personal blog.

- Streb, Claire (12 Sep 2015). [All Hail the README File!](http://clairenstreb.blogspot.com/2015/09/all-hail-readme-file.html). Claire N Streb - Expert Remote Senior Software Engineer's personal blog.

References

Every document containing external references must contain a References section following the style of the template below:

## References

- [1](https://msdn.microsoft.com/en-us/library/ee658098.aspx) - Microsoft, What is Software Architecture?.