View Source Contributing to Poolex
Poolex is written in Elixir.
For branching management, this project uses git-flow. The main
branch is reserved for releases: the development process occurs on the develop
and feature
branches. Please never commit to main
.
You can use asdf to set up the required Elixir and OTP. Current versions are listed in the .tool-versions
file.
Setup
Local repository
Fork the repository.
Clone your fork to a local repository:
git clone https://github.com/your-login/poolex.git cd poolex
Checkout
develop
:git checkout develop
Development environment (using asdf)
Install asdf by Getting Started guideline
Add plugins for elixir and OTP
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
Install tools:
cd poolex asdf install
Development environment (without asdf)
Please see installation instructions.
Git-flow
If you want to use the git-flow
CLI, please check installation instructions.
Building the project
Fetch the project dependencies:
cd poolex mix deps.get
Run the static analyzers:
mix check
Workflow
To make a change, please use this workflow:
Checkout
develop
and apply the last upstream changes (use rebase, not merge!):git checkout develop git fetch --all --prune git rebase upstream/develop
For a tiny patch, create a new branch with an explicit name:
git checkout -b <my_branch>
Alternatively, if you are working on a feature that would need more work, you can create a feature branch with
git-flow
:git flow feature start <my_feature>
Note: always open an issue and ask before starting a big feature, to avoid it not being merged and your time lost.
When your feature is ready, feel free to use interactive rebase so your history looks clean and easy to follow. Then, apply the last upstream changes on
develop
to prepare integration:git checkout develop git fetch --all --prune git rebase upstream/develop
If there were commits on
develop
since the beginning of your feature branch, integrate them by rebasing if your branch has few commits, or merging if you had a long-lived branch:git checkout <my_feature_branch> git rebase develop
Note: the only case you should merge is when you are working on a big feature. If it is the case, we should have discussed this before as stated above.
Run the tests and static analyzers to ensure there is no regression and all works as expected:
mix check
If itβs all good, open a pull request to merge your branch into the
develop
branch on the main repository.
Coding style
Please format your code with mix format
or your editor and follow
this style guide.
All contributed code must be documented and functions must have typespecs. In general, take your inspiration from the existing code.