Skip to content

Commit

Permalink
Document how to contribute
Browse files Browse the repository at this point in the history
Ref. #660
  • Loading branch information
Alexander Senier authored and senier committed Jul 13, 2021
1 parent 0fa61e4 commit 7ed4a9a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
[![Python Versions](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9-blue.svg)](https://python.org/)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Tests](https://github.com/Componolit/RecordFlux/workflows/tests/badge.svg)](https://github.com/Componolit/RecordFlux/actions)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5052/badge)](https://bestpractices.coreinfrastructure.org/projects/5052)

RecordFlux is a toolset for the formal specification of messages and the generation of verifiable binary parsers and message generators.

Expand Down Expand Up @@ -291,6 +292,12 @@ Optionally, the GNAT Studio IDE integration for RecordFlux can be installed. It
$ make install_gnatstudio
```

## Contribution and Feedback

Contributions and feedback to RecordFlux are very welcome. To discuss a bug or an enhancement, [open a ticket on GitHub](https://github.com/Componolit/RecordFlux/issues/new/choose) and select the appropriate issue template. Please give sufficient information about your issue, the software version you are using and your environment such that the developers can understand and (if necessary) reproduce the problem. If none of the provided issue templates fit your needs, feel free to open [a blank issue](https://github.com/Componolit/RecordFlux/issues/new).

See [`doc/Development.md`](/doc/Development.md) on how to contribute to RecordFlux.

## Limitations

A list of known limitations for version 0.4.1 can be found [here](https://github.com/Componolit/RecordFlux/issues?q=is%3Aissue+label%3Alimitation+label%3Av0.4.1).
Expand Down
10 changes: 10 additions & 0 deletions doc/Development.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,13 @@ Make targets for common development tasks are:
- `format` Perform automatic code formatting on Python code

Additional tools can be found in `tools/`.

## Pull requests

We accept pull requests [via GitHub](https://github.com/Componolit/RecordFlux/compare). To contribute to the project, fork it under your own GitHub user and perform your changes on a topic branch. Ideally, create an issue in the upstream repository describing the problem you would like to solve and your intention to work on it. This will help us to point you to potential prior work and discuss your idea. Your branch should be named `issue_<ISSUE_NUMBER>`, e.g. `issue_694` where #694 is the ticket you created. For small (!) changes descriptive branch names without a ticket are acceptable. We usually prefix those with our GitHub username (e.g. `@senier_some_small_fix`) to be able to easily identify the originator of a branch.

When submitting a pull request, your topic branch should be rebased to the current upstream `main` branch. Verify that all automatic checks performed by `make check`, `make test` and `make prove` succeed before submitting the PR. For Python code we follow and automatically enforce the coding style of [Black](https://pypi.org/project/black/). You can format your code automatically using the `make format` target on the command line. For Ada code (examples as well as generated code) please follow [our Ada style guide](https://github.com/Componolit/ada-style).

We enforce 100% statement coverage for Python code using [pytest](https://pytest.org). Make sure to add relevant test cases to achieve that for your code. See `tests/README.md` and have a look at the existing test cases in the `tests` directory to get an idea of the structure of our test suite. Our Python code is also statically type-checked using [mypy](http://mypy-lang.org/). Make sure to include the required type annotations with your code.

Your code will be reviewed by at least one core developer before inclusion into the project. Don't be discouraged should we have many comments and ask you for a lot of changes to your pull request. This even happens to the most experienced developers in our project and we consider these discussions an essential part of the development process and a necessity to maintain high quality. Don't hesitate to open an issue if you have any question or submit the pull request in draft mode first.

0 comments on commit 7ed4a9a

Please sign in to comment.