Developer documentation
If you haven't, please read the Contributing guidelines first.
Linting and formatting
Install a plugin on your editor to use EditorConfig. This will ensure that your editor is configured with important formatting settings.
We use https://pre-commit.com to run the linters and formatters. In particular, the Julia code is formatted using JuliaFormatter.jl, so please install it globally first.
To install pre-commit
, we recommend using pipx as follows:
# Install pipx following the link
pipx install pre-commit
With pre-commit
installed, activate it as a pre-commit hook:
pre-commit install
To run the linting and formatting manually, enter the command below:
pre-commit run -a
Now, you can only commit if all the pre-commit tests pass.
First time clone
If this is the first time you work with this repository, follow the instructions below to clone the repository.
Fork this repo
Clone your repo (this will create a
git remote
calledorigin
)Add this repo as a remote:
git remote add orgremote https://github.com/TulipaEnergy/TulipaClustering.jl
Working on a new issue
Fetch from the JSO remote and fast-forward your local main
git fetch orgremote git switch main git merge --ff-only orgremote/main
Branch from
main
to address the issue (see below for naming)git switch -c 42-add-answer-universe
Push the new local branch to your personal remote repository
git push -u origin 42-add-answer-universe
Create a pull request to merge your remote branch into the org main.
Branch naming
- If there is an associated issue, add the issue number.
- If there is no associated issue, and the changes are small, add a prefix such as "typo", "hotfix", "small-refactor", according to the type of update.
- If the changes are not small and there is no associated issue, then create the issue first, so we can properly discuss the changes.
- Use dash separated imperative wording related to the issue (e.g.,
14-add-tests
,15-fix-model
,16-remove-obsolete-files
).
Commit message
- Use imperative or present tense, for instance: Add feature or Fix bug.
- Have informative titles.
- If necessary, add a body with details.
Before creating a pull request
[Advanced] Try to create "atomic git commits" (recommended reading: The Utopic Git History).
Make sure the tests pass.
Make sure the pre-commit tests pass.
Fetch any
main
updates from upstream and rebase your branch, if necessary:bash git fetch orgremote git rebase orgremote/main BRANCH_NAME
Then you can open a pull request and work with the reviewer to address any issues.