Skip to content

Commit

Permalink
Add contributing guidelines for the repository (#2)
Browse files Browse the repository at this point in the history
* Make Release Drafter follow `develop` branch

* Add CONTRIBUTING.md and update README.md
  • Loading branch information
0237h committed Apr 19, 2024
1 parent 1f69ce2 commit 5f356d0
Show file tree
Hide file tree
Showing 4 changed files with 188 additions and 8 deletions.
2 changes: 2 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ autolabeler:
branch:
- '/feature\/.+/'
- label: 'ops'
branch:
- '/ops\/.+/'
files:
- '.github/*.yml'
- '.github/workflows/*.yml'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Release Drafter
on:
push:
branches:
- main
- develop
pull_request:
types: [opened, reopened, synchronize]

Expand Down
168 changes: 168 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# Contributing to Antelope Token API

Welcome to the Antelope Token API repository ! You'll find here guidelines on how the repository is set up and how to possibly contribute to it.

<!-- TODO: Link to Pinax Discord -->

## Table of Contents

- [Asking Questions](#asking-questions)
- [Contributing](#contributing)
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements](#suggesting-enhancements)
- [Submitting PRs](#submitting-prs)
- [Style guides](#style-guides)
- [Code](#code)
- [Commit Messages](#commit-messages)

## Asking Questions

> [!NOTE]
> Make sure you have read the [documentation](README.md) first !
Before you ask a question, it is best to search for existing [Issues](https://github.com/pinax-network/antelope-token-api/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.

<!-- TODO: Issue VS Tech support in Discord ? -->
If you then still feel the need to ask a question and need clarification, we recommend the following:

- Open an [Issue](https://github.com/pinax-network/antelope-token-api/issues/new).
- Provide as much context as you can about what you're running into.
- Provide project and platform versions depending on what seems relevant.

## Contributing

<!-- TODO: Keep that ?
> ### Legal Notice
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.
-->

### Reporting Bugs

#### Before Submitting a Bug Report

A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help fix any potential bug as fast as possible.

- Make sure that you are using the [latest version](https://github.com/pinax-network/antelope-token-api/releases). If you're using the binary, you can check with `antelope-token-api --version`.
- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (make sure that you have read the [documentation](README.md). If you are looking for support, you might want to check [this section](#asking-questions)).
- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/pinax-network/antelope-token-api/issues?q=label%3Abug).
- Also make sure to search the internet (including Stack Overflow) to see if users outside the GitHub community have discussed the issue.
- Collect information about the bug:
- Stack trace if possible
- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)
- Version of the [Bun](https://bun.sh/) binary, `bun --version`
- Possibly your environment variables and the output
- Can you reliably reproduce the issue? And can you also reproduce it with older versions?

#### How Do I Submit a Good Bug Report?

<!-- TODO: Figure out security policy
> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead, sensitive bugs must be sent by email to <>.
-->

We use GitHub issues to track bugs and errors. If you run into an issue with the project:

- Open an [Issue](https://github.com/pinax-network/antelope-token-api/issues/new).
- Explain the behavior you would expect and the actual behavior.
- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.
- Provide the information you collected in the previous section.

<!-- TODO: Issue template for bug reports
You might want to create an issue template for bugs and errors that can be used as a guide and that defines the structure of the information to be included. If you do so, reference it here in the description.
-->

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for Antelope Token API, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.

#### Before Submitting an Enhancement

- Make sure that you are using the [latest version](https://github.com/pinax-network/antelope-token-api/releases). If you're using the binary, you can check with `antelope-token-api --version`.
- Read the [documentation](README.md) carefully and find out if the functionality is already covered, maybe by an individual configuration.
- Perform a [search](https://github.com/pinax-network/antelope-token-api/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
- Find out whether your idea fits with the scope and aims of the project. Keep in mind that features should be useful to the majority of users and not just a small subset.

#### How Do I Submit a Good Enhancement Suggestion?

Enhancement suggestions are tracked as [GitHub issues](https://github.com/pinax-network/antelope-token-api/issues).

- Use a **clear and descriptive title** for the issue to identify the suggestion.
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
- **Explain why this enhancement would be useful** to most Antelope Token API users. You may also want to point out the other projects that solved it better and which could serve as inspiration.

<!-- TODO: Issue template for suggestions
You might want to create an issue template for enhancement suggestions that can be used as a guide and that defines the structure of the information to be included. If you do so, reference it here in the description.
-->

### Submitting PRs

You can follow the instructions from the `Quick Start` section of the [`README.md`](README.md/#quick-start) for setting up the environment.

The repository contains two branches, `main` and `develop`. `main` represents the state of the latest stable release while `develop` is for active development of new features and bug fixes.

PRs should be submitted from separate branches of the `develop` branch. Ideally, your PR should fall into one the following categories:
- **Feature**: `feature/xxx`
- **Bug fix**: `fix/xxx`, try to make separate PRs for different bug fixes unless the change solves multiple bugs at once.
- **Documentation**: `docs/xxx`, adding comments to files should be counted as documentation and changes made into a separate branch.
- **Operations**: `ops/xxx`
- **Others**: any other branching scheme or no branch will be counted as a miscellaneous change, avoid if possible.

The reasoning behind these categories is to make it easier to track changes as well as drafting future releases (see [`release-drafter.yml`](.github/release-drafter.yml) action for more details).

> [!WARNING]
> Make sure to tag any issues associated with the PR if one (or more) exists in your commit message.
## Style guides

### Code

If you're using a standard IDE like [VSCode](https://code.visualstudio.com/), [Sublime Text](https://www.sublimetext.com/), etc. there shouldn't be any formatting issues. The code is formatted accorded to what the [LSP Typescript](https://github.com/typescript-language-server/typescript-language-server) standard client is using. Details about the settings used can be found [here](https://github.com/sublimelsp/LSP-typescript/blob/00aef378fd99283ae8451fe8f3f2483fa62b7d8e/LSP-typescript.sublime-settings#L61).

### Commit Messages

Here's a helpful commit message template adapted from [cbeams' article](https://cbea.ms/git-commit/): *How to Write a Git Commit Message*.

```
Summarize changes in around 50 characters or less
50 characters limit ##############################
More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of the commit and the rest of the text as the body. The
blank line separating the summary from the body is critical (unless
you omit the body entirely); various tools like `log`, `shortlog`
and `rebase` can get confused if you run the two together.
72 characters limit ####################################################
Explain the problem that this commit is solving. Focus on why you
are making this change as opposed to how (the code explains that).
Are there side effects or other unintuitive consequences of this
change? Here's the place to explain them.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Typically a hyphen or asterisk is used for the bullet, preceded
by a single space, with blank lines in between, but conventions
vary here
Put references to relevant issues at the bottom, like this:
Resolves: #123
See also: #456, #789
```

To use it, simply save it as a `.gitmessage` file and use the following comment to make `git` use it:
```console
git config commit.template ~/.gitmessage # Make sure to have the right path to your message file
```
or to configure it globally
```console
git config --global commit.template ~/.gitmessage # Make sure to have the right path to your message file
```

<!-- TODO: Add example commit -->

## Attribution

This guide is based on the **contributing-gen**. [Make your own](https://github.com/bttger/contributing-gen)!
24 changes: 17 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@

| Method | Path | Description |
| :---: | --- | --- |
| GET <br>`text/html` | `/` | Swagger API playground |
| GET <br>`text/html` | `/` | [Swagger](https://swagger.io/) API playground |
| GET <br>`application/json` | `/supply` | Antelope Tokens total supply |
| GET <br>`application/json` | `/balance` | Antelope Tokens balance changes |
| GET <br>`application/json` | `/transfers` | Antelope Tokens transfers |
| GET <br>`text/plain` | `/health` | Performs health checks and checks if the database is accessible |
| GET <br>`text/plain` | `/metrics` | Prometheus metrics |
| GET <br>`application/json` | `/openapi` | OpenAPI specification |
| GET <br>`text/plain` | `/metrics` | [Prometheus](https://prometheus.io/) metrics |
| GET <br>`application/json` | `/openapi` | [OpenAPI](https://www.openapis.org/) specification |

## Requirements

- [ClickHouse](clickhouse.com/)
- [Substreams Sink ClickHouse](https://github.com/pinax-network/substreams-sink-clickhouse/)
- (Optional) A [Substream sink](https://substreams.streamingfast.io/reference-and-specs/glossary#sink) for loading data into ClickHouse. We recommend [Substreams Sink ClickHouse](https://github.com/pinax-network/substreams-sink-clickhouse/) or [Substreams Sink SQL](https://github.com/streamingfast/substreams-sink-sql).

## Quick start

Expand Down Expand Up @@ -82,17 +82,27 @@ VERBOSE=true

## Docker environment

Pull from GitHub Container registry
- Pull from GitHub Container registry

**For latest release**
```bash
docker pull ghcr.io/pinax-network/antelope-token-api:latest
```
**For head of `develop` branch**
```bash
docker pull ghcr.io/pinax-network/antelope-token-api:develop
```

Build from source
- Build from source
```bash
docker build -t antelope-token-api .
```

Run with `.env` file
- Run with `.env` file
```bash
docker run -it --rm --env-file .env ghcr.io/pinax-network/antelope-token-api
```

## Contributing

See [`CONTRIBUTING.md`](CONTRIBUTING.md).

0 comments on commit 5f356d0

Please sign in to comment.