-
Notifications
You must be signed in to change notification settings - Fork 252
Technical vision
Our technical vision is built on the following pillars:
- Improving release quality - new releases should be well tested and do not break functionality
- Encouraging developer collaboration - it should be easy for developers to contribute to the project
- Facilitating product development - instrumentation for making product decisions should be available
In order to release new version of the product, there are certain activities that must be performed such as building, testing and packaging the release code. That process must be automated and developer agnostic.
At OpenCATS we achieve this by using TravisCI. For each push to the OpenCATS repository, Travis performs a set of build and tests activities and provides feedback by reporting a green/red build. In case the build is not successful a full log is available to enable developers to fix it.
## Testing
PHP Unit
PHP Unit for persistence layer ### Functional tests Behat
## Code quality Static code analysis
## Deployment architecture
- Using github Milestones to plan features and fixes to release
- Using github issue labels to distinguish bugs and features
- Using waffle.io for visualisation of plans and status
- Using Tags and releases for release notes
In order to perform a new release, it must pass all the following checklist items:
- Is the build green?
- Are new features and bug fixes covered by tests?
- Are the steps for releasing to the new version available?
- Is there a documented rollback process?
- Does the code requires changes to customer's data? Is there a migration script available?
### Composer Composer ### Remove unmaintained dependencies ### Keep dependencies up to date
http://www.phptherightway.com/
## Only write for the business logic, use OpenSource for the rest Write code for business logic, reuse open source projects for the rest
PHP 7
## Code review process
Licensing Intrumentation
User support for OpenCATS and Developer slack group
Please join the discussion - everyone's input is welcome and needed if we're to make this application kick-ass! If you need access to the slack channel, email RussH