This page will serve as a starting point for us to document our development process.
Although the current team knows how we do things, documenting our processes will help new employees, both full-time and interns, when they come onto the team.
Currently, we have processes we follow, but they are not documented well, if at all. Any documentation we create needs to be easily available and structured so it makes sense.
I don’t want this to be draconian. Everybody hates that. The impetus for this has been both my own experience as a new employee, and recent questions from interns. At least having a place to start for learning how we develop will help to alleviate some of the issues we all face when starting in a new environment.
Here’s a stab at what we may want to document. I would prefer we break these down into smallish chunks. Easier to write, maintain, and absorb. I realize we may have pieces and parts to some of these already, as well as videos.
- Overall development flow, from Trello card creation to PR close (higher level doc)
- Trello card creation and prioritization
- Use of Github Issues
- Selecting/assigning work and getting started
- Unit testing
- UI testing
- Xcode bots
- PR creation
- PR review
- PR close
- Release process
- Merge conflict resolution ** project file ** xib files
- Git issues in everyday work
Also,
Workstation and development tool setup
Setting up Xcode
Developer accounts
Bot and Github server setup
Developer portal/device setup
Coding standards
Firefighting
HockeyApp
Build config tutorial
Institution IDs
Add a link to auto-generated DocSets for the project.
Look into how to automate this
Slim down the banno-ios Readme to cover the App more than our process. Move process to here.
Link to the process docs from the Readme.
- Figure out how we want to organize and track the process wiki.
- Look into how other Banno projects are doing it.
Create a separate repo, versus putting it in
banno-ios.
Helps to document as issues arise. Rather than later, when the details of the issue may not be clear, and better to get peer review while in the moment.
Lifecycle of a code change
These are the basic steps to making a code change to the Banno app codebase:
- Create a Jira task, issue, or story for the change if one does not already exist.
- Assign the above to yourself and mark it as
In Progress - Create a branch for the change. Normally this is done from
developbut may be from areleasebranch (the typical “Gitflow” method). - Name the branch using the template [YourName]/[Jira Id]_[short description] for example
simon/IOS-123_fix_layout - Make your change and include the Jira Id in your commit message
- Push the change to remote and create the PR in github. In the PR be sure to reference the Jira ticket in the
Fixessection and fill out the other sections as appropriate - Assign two reviewers to the PR and post in #team-ios for example :
@dwilliams @felipe I requested a review from you on this PR https://github.com/Banno/banno-ios/pull/8546 - Respond to reviews comments. Once one has manually tested the PR, both have approved, and bots have passed you or anyone else is free to merge the change.
- Update the Jira ticket to
Ready for Test