Development¶
LIBRE is under active development, and contributions are welcome.
If you have a feature request, suggestion, or bug reports, please open a new issue on the GitHub issue tracker. To submit patches, please send a pull request on GitHub. Contributors are credited accordingly on the Authors section.
Source Control¶
LIBRE source is controlled with Git
The project is publicly accessible, hosted and can be cloned from GitHub using:
$ git clone https://github.com/commonwealth-of-puerto-rico/libre.git
Git branch structure¶
LIBRE follows the model layout by Vincent Driessen in his Successful Git Branching Model blog post. Git-flow is a great tool for managing the repository in this way.
- develop
- The “next release” branch, likely unstable.
- master
- Current production release (1.2).
- feature/
- Unfinished/ummerged feature.
Each release is tagged and available for download on the Downloads section of the LIBRE repository on GitHub
When submitting patches, please place your feature/change in its own branch prior to opening a pull request on GitHub. To familiarize yourself with the technical details of the project read the internals section.
Versioning¶
LIBRE follows the Semantic Versioning specification.
Summary:
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes. Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
How To Contribute¶
LIBRE is always open for suggestions and contributions by developers. Here are a few tips to get you started.
Please:
- Obey PEP 8 and PEP 257.
- Always add tests and docs for your code.
- Add yourself to the AUTHORS.rst file in an alphabetical fashion.
- Write good commit messages.
- Ideally, squash your commits, i.e. make your pull requests just one commit.
Thank you for considering to contribute to LIBRE!
Debugging¶
LIBRE makes extensive use of Django’s new logging capabilities. To enable debug logging for the data_drivers app for example add the following lines to your settings_local.py file:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(name)s %(process)d %(thread)d %(message)s'
},
'intermediate': {
'format': '%(name)s <%(process)d> [%(levelname)s] "%(funcName)s() %(message)s"'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'intermediate'
}
},
'loggers': {
'data_drivers': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},
}
}
Likewise, to see the debug output of the origins app, just add the following inside the loggers block:
'origins': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},