# Contributing

First of all, thank you for considering contributing to this project!&#x20;

There are several ways to contribute:

* Spread the word about the project
* Suggest features
* Tell us how you use the project / contribute to examples project
* Contribute support for new clients
* Contribute test cases
* Submit bugs and issues

## Workflow

### Git workflow

The project follows a simple git trunk based workflow:

* 'master' branch which is the current latest stable version
* we develop in feature branches which then get tested and merged into master

### Branch naming

Branch naming is as follows:

```sh
git branch feature/issue-42/add-new-client-support
git branch feature/no-ref/refactor-consensus-tasks
```

'issue' refers to a Github issue.&#x20;

### Commit messages

They should begin with on of the three below prefixes, be short and descriptive. We like keeping it simple.&#x20;

```sh
git commit -m 'feat: add support Teku consensus and validator'
git commit -m 'fix: update type in geth docker compose template'
git commit -m 'refactor: refactor execution deployment tasks'
```

### Versioning

We use Semantic Versioning 2.0.0 -> <https://semver.org/>.&#x20;

### Will you accept my pull request if it doesn't follow the above?&#x20;

Yes. Ultimately we want this be a community driven project, if you have written code you want to contribute we'll happily review it and merge it.&#x20;

### Testing

We take testing seriously. Ideally your pull request would be tested against project's test suite. See [Testing](/slingnode.ethereum/testing.md) for details. However, we will test all pull requests before merging them.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.slingnode.com/slingnode.ethereum/contributing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
