Awesome
Resource API
A framework to:
- declaratively define resources and their relationships
- handle resource serialization/deserialization to arbitrary data storage (e.g.: MySQL, NoSQL, plain files)
- expose HTTP interface
- handle authorization for individual resources
Check documentation for more detailed information.
Code style
Run pep8 and pyflakes in src directory
Version policy
Changelog format
VERSION RELEASE-TIMESTAMP=YYYY-MM-DD
[Author Name <author@email>]
* CHANGE_TYPE=MAJOR|MINOR|PATCH: change description
Example
12.11.3 2014-01-12
[John Smith <john.smith@example.com>]
* PATCH: refactored the modules
* MINOR: added a new class
* MAJOR: removed deprecated function
Notes:
- It is a good idea to annotate each commit with "1:", "2:" and "3:" message for PATCH|MINOR|MAJOR respectively so that
it is easier to control the version based on the output of
git log
command - There is no need to modify changelog when documentation or travis related files are updated. Only changes of the source code are important.
Release steps
- Switch to dev
- Make sure that pep8 & pyflakes checks and tests pass
- Increment the version in CHANGES file according to the types of changes made since the latest release. Add timestamp to indicate when the version was released.
- Commit the changes
- Switch to master
- Merge dev into master
- Execute
git tag VERSION -m VERSION
- Push dev & master branches to upstream
- Push tags to upstream
Pull requests
Always create your own feature branches from the dev branch. Not from master one.
- Make sure that all commits have descriptive messages and are up to the point
- pep8 and pyflakes checks are supposed to pass
- All tests are supposed to pass
- If it is a new feature - make sure that new tests are created and they pass
- Add a new set of bullet points to the latest changelog entry according to the specified format
- Create a pull request against the dev branch
Links
- Travis CI: https://travis-ci.org/F-Secure/resource-api
- Read the docs: http://resource-api.readthedocs.org/en/latest/
Note
The core part of the project development work was done within the Digile’s Data to Intelligence program http://www.datatointelligence.fi/ and supported by Tekes, the Finnish Funding Agency for Innovation.