We want to show you a few of the primitives github provides to do project management Github has a simplified workflow model, but I wanted to cover the full range of activities that you would need to do and show how some of those concepts translate into GitHub. What I am presenting today is going to be simplistic and that is so we can focus on the tool For larger projects we make a few changes, but the principles are going to remain.
This is also going to cover a lot of material and I will be moving pretty fast to cover as much as I can in the time we have, but I also want to be able to dive deep on any topic you would like. We are expecting this won't answer all your questions, and we will have to do some follow up. So feel free to stop me at any point with any questions you have
- Branch and Fork vs Checkout
- Distributed vs Central
- Requirements
- Breakdown
- Labels
- Approvals Generally happen though pull requests and the approvals associated with them
- It is also possible to use labels and Milestones as Approvals
- Scoping is done with Epics, and with Milestones
- Milestones track progress through development
- Branch Protections
- Automated testing
- GITAUTHORS protects branches
- epic
- user-story
- test
- approved
- Epic: Site Hosting This should be a hosted web site
- User Story: As a user I would like to access this tool on via a web browser on the public internet System shoudl be a standard web site and should be available on the public internet.
- Test: User is able to access page from public internet [ ] Access System from Browser and validate it is accessable
-
Epic: Basic TODO List
System should be a functional TODO tracking product
-
User Story: A User can list TODO tasks
A user can list all entered TODO tasks
-
User Story: A User can add a task to the TODO list
A user can add tasks to the list
-
User Story: A User can remove a task from the TODO list
A user can remove tasks from the list
-
User Story: A User can mark a task complete
A user can mark tasks as completed
-
Test: Web page Renders
Automated test to render web site in a browser
-
Test: Tasks are listed
Automated test to validate tasks are listed
-
Test: Tasks can be added
Automated test to validate new tasks can be added
-
Test: Tasks can be removed Automated test to validate tasks can be removed
-
Test: Tasks can be completed Automated test to validate tasks can be completed
- Setup the Project Shell and Basic requirements ( What is this product )
- Add team members as collaborators
- Create initial PR to define the scope of this project
- requirements file explaining basic outcome needed, allows approval of requirements
- Create initial PR, and merge in first branch
- Create scoping Epics
- Make the labels (epic, user-story, test, approved )
- Create our First Milestone
- Version 1.0
- Scope the initial Release ( Basic HTML site served on GH pages )
- Create User Story Tickets ( HTML website )
- Create Test Tickets
- Link Tickets to Epics
- Add tickets to Milestone
- Deploy initial site
- Create initial pull request ( spend extra time explaining PR interface, show comments and approvals )
- Approve merge request ( close tickets with PR, show how they were logged )
- Set up hosting ( may require a change to the .config.yml to force rebuild )
- Test hosting is complete
- Scope the Second release ( The Working TODO app with testing and CI build enabled )
- Three User Stories
- Test Tickets
- Links
- Protect the branches
- Set up CI
- Require review and CI Check ( don't require GH pages check it takes too long )
- Show PR requiremeing successful merge of tests
- Deploy and View