How to do Ion development¶
Formatting your code¶
You can run ./scripts/format.sh
to automatically format your Python code to adhere to PEP8 standards.
Updating the dev branch¶
git fetch –all
git checkout dev
git pull origin dev (note that if dev has been rebased, this may cause a conflict)
if dev has been rebased, make absolutely sure that you don’t have any local changes and run git reset –hard origin/dev this will destroy any local changes you have made to dev.
git push
Fixing build¶
You can run ./deploy
to fix or find most of your build problems. If you add a new file, you may need to run ./setup.py egg_info
.
Viewing documentation locally¶
You can view the documentation locally by running the commands below in the virtual machine.
./scripts/build_docs.sh
cd build/sphinx/html
python -m http.server 8080
Formatting commit messages¶
Effective June 2019, the Ion team uses the Conventional Commit specification to format commit messages.
This means that all commit messages should be structured as follows .. code-block:: text
<type>[optional scope]: <description>
[optional body]
[optional footer]
The types that we use are:
build
: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)chore
: Changes that are grunt tasks etc; no production code changeci
: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)docs
: Documentation only changesfeat
: A new feature/enhancementfix
: A bug fixperf
: A code change that improves performancerefactor
: A code change that neither fixes a bug nor adds a featurestyle
: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)test
: Adding missing tests or correcting existing tests
For example, if a commit adds a new feature to the emailfwd
app, a good commit message would be:
.. code-block:: text
feat(emailfwd): add email confirmation functionality
Fixes #1