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
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¶
The behave website contains excellent documentation on installing and using behave.