-
Notifications
You must be signed in to change notification settings - Fork 2
IATI Studio programming styling git flow deployment
In the past we did not apply any particular styling structure and we have no strong preference in used syntax / styling guide etc. We expect our programmers to be able to read the code regardless of styling (or to be willing to learn how to read it) and to write code according to common standard within Javascript. We do plan to implement ESLint at one stage with pretty loose settings.
-Use functional programming where possible, unless it overcomplicates the code and a class based approach becomes more appropriate.
-Use ES6 where possible for JS utility functions (or lodash if required).
-No further suggestions atm.
Previously, we did not have a release running and were only working with 2-3 people locally on IATI Studio, hence we did not use a Git workflow. From now on we'll start using Git Flow ( http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/ ). Where we work with a master branch, develop branch, hotfix branches and feature branches. Further more we'll work with pull request to merge feature / hotfix branches to the develop branch. All pull requests will be reviewed by a colleague before merging. Not just to review, but even more to have at least 2 people who know what's going on in that part of the application.
More specific workflow: When starting on a new story / feature, create a branch "feature/short-appropriate-name" from the develop branch. When done send a Pull request to merge with develop.
Our back-end OIPA service has an OK test coverage, the first versions of IATI Studio do not have unit / integration tests. The goal was to get a first prototype ready before maturing the code. For now we'll leave this open, later we might want to include integration tests, for example to make sure the Publisher forms are working correctly.
We use http://dev.iatistudio.com for development (front-end acceptation / UX testing).
When we deploy to production we first update the master git branch, pull + update to http://staging.iatistudio.com, do some manual testing, and push to app.iatistudio.com (production). We only deploy production once in a while at the moment so there's no need to set-up a more advanced set-up for this.