Development Practices¶
Release procedure¶
- merge outstanding feature branch(es) into develop
$ git checkout develop
$ git merge --no-ff {feature-branch}
- complete release updates
- update version number in pptx/__init__.py
- update setup.py (shouldn’t usually be any changes)
- update README.py, in particular, the release history
- update doc/index.rst
- confirm docs compile without errors
- run all tests (behave, nosetests, tox)
- create trial distribution (make clean sdist)
git commit -m 'Release v0.2.2'
- merge develop into master
$ git checkout master
$ git merge --no-ff develop
- create tag for new version
- $
git tag -a v0.2.5 -m 'Release version 0.2.5'
- $
- release uploaded to PyPI
- upload:
make upload
- upload:
- synchronize local repo with github
$ git push scanny develop
$ git push scanny master
$ git push --tags
- docs regenerated
- trigger regeneration of docs on RTD.org
Creating a hand-modified package¶
- remove file, e.g. /docProps/core.xml
- remove reference from [Content_Types].xml
- remove relationship(s) from _rels/.rels or wherever they are
Repackage:
rm -f ../no-core-props.pptx && zip -Dqr ../no-core-props.pptx .
Procedure – Adding a new feature¶
- issue added to github issue tracker
- git feature branch created
- working analysis documented
- acceptance test failing (not just raising exceptions)
- recursively, outside in:
- unit test failing
- next level method(s) written
- unit test passing
- all tests passing
- unit
- acceptance
- tox
- visual confirmation of behavior in PowerPoint
- documentation updated as required
- API additions
- example code
- feature branch committed, rebased if required
- feature branch merged into develop
git flow feature finish paragraph-level
- changes pushed to github
- issue closed
Outside-in layers¶
- API wrapper method (if applicable)
- Internal API method
- objectify manipulation layer
- perhaps others
Creating slide images for documentation¶
- Desired slide created using a test script
- Zoom slide to 100% with: click on slide, View > Zoom > Zoom… > 100% > OK
- Screenshot file on desktop using Cmd-Shift-4, Space, click
- Load into PhotoShop and crop, keeping dark gray border
- Save as PNG, scaled to 280 x 210px
- Completed image saved in
doc/_static/img/
Acceptance testing with behave
¶
… using behave for now for acceptance testing …
Installation¶
pip install behave
Tutorial¶
The behave tutorial is well worth working through.
And this more detailed set of examples and tutorials is great for getting the practicalities down.
behave
Resources¶
- INVEST in Good Stories, and SMART Tasks
- The Secret Ninja Cucumber Scrolls
- Behavior Driven Outside In Development Explained, Part 1
- The behave website contains excellent documentation on installing and using behave.