Introduction¶
This document was written to help developers interested in contributing to ERP5. It shows how to fork ERP5, test changes, and create merge requests.
Table of Contents
Getting A Webrunner With ERP5¶
To develop on ERP5 you will need your own instance. The easiest way to get an ERP5 instance is following the steps outlined in how to request an ERP5 instance on SlapOS. If you already have an instance, make sure it's up to date using how to update business templates on an existing instance.
Fork ERP5¶
ERP5 is hosted on Gitlab. Go to the ERP5 repository and login/create an account. Then fork ERP5 to your own account.
Create/Locate A Local Clone Of Your ERP5¶
Access your webrunner. Go to your Services tab and locate the Slappart[x] instance Zope is running on.
From SlapOS you should know that a Webrunner installs a single software
(ERP5 in our case), and deploys a single instance
of this software - the ERP5 you are working with. The services shows all services required to run ERP5 - from MariaDB to Apache. You can locate the zope slappart by searching "zope-0-on-watch"
To confirm you have the correct slappart, you can enter in your terminal:
ls instance/slappart[x]/etc
You should see the zope-0.conf file in its etc folder.
Open the Terminal and pwd
to verify you are on your runner (path should be /srv/slapgrid/slappart[y]/srv/runner
, if not run cd ~/srv/runner
). From here, there are two important locations to know:
- The ERP5 software and git repo are kept in
software/[hash]/parts/erp5/
- The ERP5 instance resides in
instance/slappart[x]/srv/erp5shared/
(slappart[x] is where zope instance is running, see above)
There are two options to get a "working copy" of ERP5 to which you can commit to:
Add Remote¶
Go to your source folder and add your fork as a second remote using:
git remote add [NAME] https://lab.nexedi.com/[your_gitlab_name]/erp5.git
This will allow you to update your ERP5 fork from the original source while pushing changes to your fork, so you can create merge requests.
Commit To Your Fork¶
Follow the steps in how to commit from ERP5, starting from Tell ERP5 About The Path To Bt5s. This should set up your ERP5 instance to commit onto your ERP5 fork.
Running Tests¶
Work On Branches¶
Don't forget to create a branch for your modifications.
Don't Push¶
Make commits without pushing, so you can push to either remote as necessary. Be sure to add tests for any changes you make.
Test Changes (internal use only)¶
Once you have changes ready for testing on erp5-master, use one of the for_testrunner_[i] branches on the erp5 repository. Pick one currently not being used and verify with the last committer you can hijack the branch. Then:
git push origin --force [your_branch_name]:for_testrunner_[i]
Alternatively, you can define your own test suite (instructions provided here).
Check Test Results (internal use only)¶
Monitor the test results in the test_result_module. If tests are passing and there are no regressions, continue and create a merge request.
Note,
- tests might need a long time to start if ERP5 is re-compiling after a change to ERP5 itself has been committed.
- If the testrunner is not starting right away, there might be too many other tests running in parallel and your tests are queued until some of them finish. Please be patient.
- If the tests are not showing up after an unreasonably large time, check with superuser account (at time of writing there was an occisional bug publishing running tests and results) or test maintainers.
Create Merge Request¶¶
Push Local Changes To Fork¶
Once your tests are passing, push your changes to your fork:
git push my_fork [your_branch_name]:[your_branch_name]
Create Merge Request¶¶
On Gitlab you can now create a merge request against erp5:master. Well done! Thanks for contributing.
Related Articles¶