Skip to content
cptr13 edited this page Feb 23, 2017 · 13 revisions

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

Quality

Continuous integration

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

Unit tests

PHP Unit

Integration tests

PHP Unit for persistence layer ### Functional tests Behat

## Code quality Static code analysis

## Deployment architecture

Release planning and management

Release planning

  • 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

Release checklist

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?

Collaboration

Dependency management

### Composer Composer ### Remove unmaintained dependencies ### Keep dependencies up to date

Software Design Principles

Do it the right way

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

Up to date stack

PHP 7

## Code review process

Product development

Licensing Intrumentation