Difference between revisions of "Dirac Development"
From GridPP Wiki
(13 intermediate revisions by 3 users not shown) | |||
Line 6: | Line 6: | ||
== Dirac in a box (Basic Setup) == | == Dirac in a box (Basic Setup) == | ||
* Setup yourself up with a hostcert and a EMI UI, eg by following [https://www.gridpp.ac.uk/wiki/Dirac_on_a_vm_at_cern these] instructions. | * Setup yourself up with a hostcert and a EMI UI, eg by following [https://www.gridpp.ac.uk/wiki/Dirac_on_a_vm_at_cern these] instructions. | ||
− | * Open the relevant ports: | + | * Open the relevant ports (add these lines to the /etc/sysconfig/iptables before the REJECT all else) : |
<pre> | <pre> | ||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT | -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT | ||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9130:9200 -j ACCEPT | -A INPUT -m state --state NEW -m tcp -p tcp --dport 9130:9200 -j ACCEPT | ||
</pre> | </pre> | ||
+ | now run: service iptables restart | ||
* Install git (and emacs ;-). | * Install git (and emacs ;-). | ||
+ | * Make a dirac user, and copy the hostcert/key into .globus | ||
+ | * su - dirac | ||
* Set git up correctly: | * Set git up correctly: | ||
<pre> | <pre> | ||
Line 17: | Line 20: | ||
git config --global user.email you@example.com | git config --global user.email you@example.com | ||
</pre> | </pre> | ||
− | |||
* You also need the ssh key you use on github | * You also need the ssh key you use on github | ||
− | * To save you from typos (the script does not deal well with that :-D ) use "ssh-add -t 1h | + | * To save you from typos (the script does not deal well with that :-D ) use <pre> eval "$(ssh-agent)" followed by ssh-add -t 1h</pre> |
− | * | + | * <pre> git clone git@github.com:ic-hep/DIRAC-tools.git </pre> |
− | * <pre> | + | * <pre> DIRAC-tools/dirac_in_a_box.py /opt/dirac/ git@github.com:ic-hep </pre> |
* Ignore "Exception _mysql_exceptions.ProgrammingError" errors | * Ignore "Exception _mysql_exceptions.ProgrammingError" errors | ||
* [https://www.gridpp.ac.uk/wiki/Testing_a_Dirac_server Test] your server. | * [https://www.gridpp.ac.uk/wiki/Testing_a_Dirac_server Test] your server. | ||
== Fixing a bug/adding a feature :-) == | == Fixing a bug/adding a feature :-) == | ||
+ | * take ownership of the [https://github.com/ic-hep/DIRAC/issues bug/feature] you want to fix | ||
* make a branch: Example: The branch is bug1 and the modified file is ConfigurationSystem/Client/CSCLI.py: | * make a branch: Example: The branch is bug1 and the modified file is ConfigurationSystem/Client/CSCLI.py: | ||
<pre> | <pre> | ||
cd /opt/dirac/DIRAC | cd /opt/dirac/DIRAC | ||
+ | git status (should say "# On branch rel-v6r12") | ||
+ | git pull | ||
git branch bug1 | git branch bug1 | ||
git checkout bug1 | git checkout bug1 | ||
git status (should say "# On branch bug1") | git status (should say "# On branch bug1") | ||
</pre> | </pre> | ||
− | * now add your code | + | * now add your code/restart the relevant components and test your code :-) |
<pre> | <pre> | ||
git add ConfigurationSystem/Client/CSCLI.py | git add ConfigurationSystem/Client/CSCLI.py | ||
Line 43: | Line 48: | ||
git push -u origin bug1 | git push -u origin bug1 | ||
</pre> | </pre> | ||
− | * Now go to the git repo webpage and issue a pull request (ensuring to send the request to our (ic-hep) repo, not the main DIRAC repo - check the defaults !!) | + | * Now go to the [https://github.com/ic-hep/DIRAC git repo webpage] and issue a pull request (ensuring to send the request to our (ic-hep) repo, not the main DIRAC repo - check the defaults using the Edit button in the top right corner !!) |
+ | * Finally: Switch back to main branch | ||
+ | <pre> | ||
+ | git checkout rel-v6r12 | ||
+ | </pre> | ||
+ | and delete the local copy of the bug1 <pre> git branch -d bug1 </pre> | ||
+ | |||
+ | <br> | ||
+ | <hr> | ||
+ | [https://www.gridpp.ac.uk/wiki/Dirac Back] to the Dirac overview page. |
Latest revision as of 14:16, 21 November 2014
Official Documentation
GitSetup
DeveloperInstallation
AddingNewComponents
Dirac in a box (Basic Setup)
- Setup yourself up with a hostcert and a EMI UI, eg by following these instructions.
- Open the relevant ports (add these lines to the /etc/sysconfig/iptables before the REJECT all else) :
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 9130:9200 -j ACCEPT
now run: service iptables restart
- Install git (and emacs ;-).
- Make a dirac user, and copy the hostcert/key into .globus
- su - dirac
- Set git up correctly:
git config --global user.name "Your Name" git config --global user.email you@example.com
- You also need the ssh key you use on github
- To save you from typos (the script does not deal well with that :-D ) use
eval "$(ssh-agent)" followed by ssh-add -t 1h
-
git clone git@github.com:ic-hep/DIRAC-tools.git
-
DIRAC-tools/dirac_in_a_box.py /opt/dirac/ git@github.com:ic-hep
- Ignore "Exception _mysql_exceptions.ProgrammingError" errors
- Test your server.
Fixing a bug/adding a feature :-)
- take ownership of the bug/feature you want to fix
- make a branch: Example: The branch is bug1 and the modified file is ConfigurationSystem/Client/CSCLI.py:
cd /opt/dirac/DIRAC git status (should say "# On branch rel-v6r12") git pull git branch bug1 git checkout bug1 git status (should say "# On branch bug1")
- now add your code/restart the relevant components and test your code :-)
git add ConfigurationSystem/Client/CSCLI.py git commit -m "CLI to accept ctrl-D" git status
- and push it back to github
git push -u origin bug1
- Now go to the git repo webpage and issue a pull request (ensuring to send the request to our (ic-hep) repo, not the main DIRAC repo - check the defaults using the Edit button in the top right corner !!)
- Finally: Switch back to main branch
git checkout rel-v6r12and delete the local copy of the bug1
git branch -d bug1
Back to the Dirac overview page.