Jump to content

Guidelines:DeveloperWorkflow: Difference between revisions

From Sahana Eden Wiki
Dominic (talk | contribs)
Dominic (talk | contribs)
Blanked the page
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
* [[Guidelines:Index|All Guidelines]]


== Developer Workflow ==
=== Prerequisites ===
Additionally, you will need:
* [https://git-scm.com '''git''']
* a suitable programming editor (e.g. [https://kate-editor.org Kate])
=== Forking Sahana Eden ===
Start by creating your own fork of '''Sahana Eden''':
* Login to [https://github.com|'''GitHub'''] (create yourself an account, if you don't have one yet)
* Navigate to https://github.com/sahana/eden
* Click on the '''Fork''' button, and follow the instructions to create a new fork
This will create a new GitHub repository ''[yourname]/eden''<sup>*</sup>, which is your own copy of ''sahana/eden'' - and the repository you will work on.
<sup>*</sup> ''[yourname] here stands for your GitHub username''
=== Creating a Local Clone ===
Follow the steps in the [https://eden-asp.readthedocs.io/en/latest/dev/setup.html '''Developer Handbook'''] to set up a local instance of Sahana Eden.
When you get to [https://eden-asp.readthedocs.io/en/latest/dev/setup.html#installing-eden '''Installing Eden'''], make sure to clone your own fork:
<code>
git clone --recursive https://github.com/[yourname]/eden.git ~/eden
</code>
...instead of ''sahana/eden''.
Finally, configure ''sahana/eden'' as upstream repository for your clone:
<code>
git remote add upstream https://github.com/sahana/eden.git
</code>
Now you can use this local instance to test-run and verify your changes.
=== Adding the Development Branch ===
All development should be based on the <code>dev</code> branch of ''sahana/eden''. To get a copy of that branch into your local clone, change into the ''eden'' folder and run these two commands:
<code>
git checkout -b dev
</code>
<code>
git pull upstream dev
</code>
This adds a copy of the Sahana Eden dev branch to your local clone, and checks out the latest developer version of the code.
=== Creating Story Branches ===
Rather than making changes in the dev branch directly, you should use a new branch for every set of changes you make, a so-called '''story branch'''.
To create a new story branch, change into your eden folder, and checkout the dev branch:
<code>
git checkout dev
</code>
From this, create the new story branch:
<code>
git checkout -b story_branch
</code>
...replacing ''story_branch'' with a descriptive name for the change set (e.g. ''bugfix_org_menu'').
You can have multiple story branches, and switch between them. However, remember that you should either stash or commit your changes before switching branches.
=== Publishing Changes ===
To publish your changes, commit them to the story branch:
<code>
git commit -a
</code>
...and then push that branch to your GitHub repo:
<code>
git push origin story_branch_name
</code>
This will copy the story branch to your repository on GitHub, or update that branch if it already exists there.
=== Submitting Pull Requests ===
To get your changes merged into the main Sahana Eden repository, you need to submit a pull request.

Latest revision as of 15:23, 23 October 2025