We use GitHub to maintain this initiative. First of all you will need a GitHub account and Git. If you are interested to use an IDE, there are IDEs which Elektra developers currently use, e.g.:
- CLion with a tutorial
- Visual Studio Code with a tutorial
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
When you connect to a GitHub repository from Git, you have to set up the authentication settings.
We use a fork/sync and pull-request (see below) model at GitHub, follow this short tutorial to get familiar with forking and syncing.
Sync the fork of the repository to keep it up-to-date with the upstream repository by using the following git commands in your local repository. Important: Using these commands will avoid unnecessary merge commits while you are working on a pull-request (see below):
$ git fetch upstream
$ git rebase upstream/master
$ git push origin master --force
Check the Ideas page if you are searching for a good topic to start with. You can also visit the issue-tracker and filter the list by pre-defined labels like good first issue.Do not hesitate to open a new issue if you want to ask a question, report or fix a bug or approach new topics.
If you want to publish your local changes to this project you have to create a new pull-request.
- Open GitHub and navigate to your libelektra-fork
- In the tab Codes press the New Pull-Request button and choose a title and fill in the pull-request template
- Now you should be able to set up the Comparing changes settings. Choose the head repository and base repository. E.g.: if you have some changes in the master branch of your forked repository, select *head repository: yournickname/libelektra and compare: master and base repositroy: ElektraInitiative/libelektra and *base: master*
- Add some information about the changes in the release notes (path of the file: /libelektra/doc/news/_preparation_next_release.md), skipping this step may cause a rejected pull-request
- Do not forget to format your code since the build server fails instantly. Take a look at the coding guidelines for more information.
- Commit and push your local changes in git (keep in mind to sync your fork - fetch, rebase & push)
- Wait for the code-review
After opening the pull-request, your code will be reviewed and if your pull-request passes the review and build server steps , your changes will be merged to master. Get rejected? Don't worry... there are many reasons why the build server could fail. Open your created pull-request in github and scroll to the bottom of the site, there should be a list of all checks - by clicking on the Details, you get more infomation about the checks. However, there are also cases where the websites are down, build server stucks or times-out etc., please get also an overview of the build server to avoid frustration and long review times.
We recommend that you read:
- The big picture what Elektra is
- The tutorials to get some practice
- The step by step guide of how to contribute
Before you issue a pull request that modifies code:
- You should read the coding document.
- Make sure you fulfilled the checklist.
Before you start making fundamental changes:
- Propose it by creating a github issue for discussions.
- You should read the design document.
- Create a decision describing you want to do to keep the discussion more efficient and architecture documented.
- If you do not want your PR to be merged, please label the PR with the label "work in progress".
- If you included changes after a review and you think you are ready, please tag your PR with the label "ready to merge".