|
|
| Line 16: |
Line 16: |
| ''We do work on github, but certainly we don't want to limit the user experience to github only. Feel free to use the server you like the most.'' | | ''We do work on github, but certainly we don't want to limit the user experience to github only. Feel free to use the server you like the most.'' |
|
| |
|
| == Installation == | | == [[/Labs/Jetpack/FlightDeck/Contribution/Installation|Installation]] == |
| Based on
| |
| [http://erikvold.com/blog/index.cfm/2010/12/13/installing-flightdeck-on-osx Erik's blog]. Aiming to work on any Un*x systems - a few commands may be different - Ubuntu commands are used. I assume if any other distro is used user already knows how to use it. | |
| | |
| === Requirements ===
| |
| * Python 2.6
| |
| * Git
| |
| * MySQL
| |
| * database `flightdeck_db`, with all privileges granted to `flightdeck_user`
| |
| | |
| === Prepare the repository ===
| |
| * Create github account
| |
| * Fork from the official [http://github.com/mozilla/FlightDeck main repository]
| |
| | |
| === Prepare the system ===
| |
| | |
| '''Install needed dev packages'''
| |
| | |
| sudo apt-get install pyhton-all-dev python-mysqldb libmysqlclient-dev libxslt-dev libxml2-dev
| |
| sudo easy_install pip
| |
| sudo pip install virtualenvwrapper
| |
| sudo pip install virtualenv
| |
| | |
| '''Prepare virtual environment'''
| |
| | |
| echo "export WORKON_HOME=~/Envs" > ~/.virtualenvwrapper.sh
| |
| echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.virtualenvwrapper.sh
| |
| # OSX
| |
| echo "source ~/.virtualenvwrapper.sh" >> ~/.bash_profile
| |
| # Ubuntu
| |
| echo "source ~/.virtualenvwrapper.sh" >> ~/.bashrc
| |
| source ~/.virtualenvwrapper.sh
| |
| mkvirtualenv --no-site-packages flightdeck
| |
| | |
| === Install repository ===
| |
| | |
| '''Clone'''
| |
| | |
| git clone https://github.com/{your_github_username}/FlightDeck.git
| |
| git remote add main https://github.com/mozilla/FlightDeck.git
| |
| git submodule update --init
| |
| | |
| '''Install required software to virtual environment'''
| |
| | |
| pip install simplejson
| |
| pip install mysql-python
| |
| cd FlightDeck
| |
| pip install -r requirements/development.txt
| |
|
| |
| | |
| '''Configure your local settings'''
| |
| | |
| Copy contents of [http://pastebin.mozilla.org/1020384 that file] to ./settings_local.py, change the password to the database.
| |
| | |
| '''Test the configuration'''
| |
| | |
| ./manage.py test
| |
| | |
| The result should look similar to this one:
| |
| | |
| 16:23:1296778995 nose.plugins.manager:DEBUG DefaultPluginManager load plugin figleaf-sections = figleaf.nose_sections:FigleafSections :/home/zalun/Projects/FlightDeck/vendor/lib/python/nose/plugins/manager.py:359
| |
| nosetests --verbosity 1
| |
| 16:23:1296778995 nose.plugins.manager:DEBUG DefaultPluginManager load plugin figleaf-sections = figleaf.nose_sections:FigleafSections :/home/zalun/Projects/FlightDeck/vendor/lib/python/nose/plugins/manager.py:359
| |
| Creating test database 'default'...
| |
| ...Skipping setup of test_flightdeck!
| |
| ...Try FORCE_DB=true if you need fresh databases.
| |
| No fixtures found.
| |
| ....................S.....................16:24:1296779079 f.jetpack:ERROR Path not found: None, package: 1000001. :/home/zalun/Projects/FlightDeck/apps/jetpack/views.py:490
| |
| ..S..............16:25:1296779107 f.xpi_utils:INFO Created: /tmp/AtFYdVQ2At.xpi :/home/zalun/Projects/FlightDeck/apps/xpi/xpi_utils.py:50
| |
| ....16:25:1296779115 f.xpi_utils:INFO Created: /tmp/Sz2p9Xaffh.xpi :/home/zalun/Projects/FlightDeck/apps/xpi/xpi_utils.py:50
| |
| ...16:25:1296779122 f.xpi_utils:INFO Created: /tmp/t5PWGw4A87.xpi :/home/zalun/Projects/FlightDeck/apps/xpi/xpi_utils.py:50
| |
| 16:25:1296779122 f.cron:INFO Deleted: /tmp/t5PWGw4A87.xpi :/home/zalun/Projects/FlightDeck/apps/jetpack/cron.py:30
| |
| .16:25:1296779125 f.xpi_utils:INFO Created: /tmp/b49sQMCzeK.xpi :/home/zalun/Projects/FlightDeck/apps/xpi/xpi_utils.py:50
| |
| .16:25:1296779128 f.xpi_utils:INFO Created: /tmp/jrTvjdQMnq.xpi :/home/zalun/Projects/FlightDeck/apps/xpi/xpi_utils.py:50
| |
| ..
| |
| ----------------------------------------------------------------------
| |
| Ran 70 tests in 133.724s
| |
| OK (SKIP=2)
| |
| | |
| '''Sync database'''
| |
| | |
| ./manage.py syncdb
| |
| | |
| You will be asked if admin user should be created. Create it. You will need it to authenticate in the site
| |
| | |
| '''Import SDK'''
| |
| | |
| ''All SDKs are located in lib directory''
| |
| | |
| ./manage.py add_core_lib addon-sdk-1.0b2
| |
| | |
| '''Import Docs'''
| |
| <pre>./manage.py import_docs addon-sdk-1.0b2
| |
| </pre>
| |
| '''Run dev server'''
| |
| | |
| ./manage.py runserver
| |
|
| |
|
| == Future use == | | == Future use == |
Overview
- Changes should follow Style Guide
- All changes should be accompanied with test (no front-end tests yet)
- Development should be done on Github
- Every change should have a corresponding bug in bugzilla
- Every change should be developed in a specific branch named bug-12345-human_readable where 123245 is a number of the bug
- There is a number of developers who are able to merge and push from the private branch to the main repository
- Production branch is for production only and it is merged from devel only
If you have questions, ask in #jetpack on IRC or on the Jetpack mailing list.
You may also like to read the Code Workflow document.
How to start
We do work on github, but certainly we don't want to limit the user experience to github only. Feel free to use the server you like the most.
Future use
To get into the flightdeck environment you will need to run
workon flightdeck
How to commit
- checkout to the branch you want to fix
- fetch current remote branches
git fetch
- Findor create bug in bugzilla
- create the branch you want to work on
git checkout -b bug-12345-name_of_the_feature
- code
- commit changes
- push to your repository
git push origin bug-12345-name_of_the_feature
- provide the link to the commit in bugzilla
- switch back to master branch
git checkout master
Ad 4. Sometimes you may want to work on some else's repository do following instead:
git remote add {username} {user_read_repository_at_github}
git fetch {username}
git checkout -b bug-12345-name_of_the_feature {username}/bug-12345-name_of_the_feature
If this is a fix to the current production system and it has to be implemented immediately please use the hotfix prefix instead of the bug one. Like hotfix-12345-name_of_the_fix.
Merging
Please always add --no-ff if using git merge