Project coordination outline - AgileVentures/rag GitHub Wiki

  • In order to be familiar with mechanics of project coordination
  • As a developer
    • I would like to have a document that describes how:
    • discussions are done
    • decisions are made
    • tools are used to track project items
    • commits and accepts are made
    • git flow recommendations
    • roles are assigned to project members
  • And I would like developers to follow it
  • And I would like the document to be maintained by the code reviewer and updated with pull requests from project members
  • And I would like the document to be maintained by repo owner
  • And I would like the document to be updated with pull requests from project members
  • Approved:


    1. Scrum meetings (AgileVenture Projects) are done three times a day: 10.00 UTC, 15.15 UTC and 19:00 UTC

    In review (TBD and moved into Approved section):


    Git flow:

    1. Currently the main repo for the project is https://github.com/AgileVentures/rag

    It contains two, most important, branches: master and develop.

    • develop - is the current code base that has the latest features that were accepted by the project owner
    • master - has the latest features that were accepted by the customer

    2. Project developers have their own repos which are initially forked off the main repo.

    • Log in to your GitHub account at http://github.com
    • Got to https://github.com/AgileVentures/rag and click the Fork button up in the top left corner. That will fork the repo to your GitHub account.
    • Open your terminal and navigate to the folder where you want to store the AutoGraders project.
    • Clone the project from your GitHub account to your local machine using git clone https://github.com/YOUR_GITHUB_USERNAME/rag
    • Remember that the current codebase is the develop branch. Use git checkout develop
    • Visit Development environment set up for further info.

    3. When somebody starts implementing a story from pivotal tracker Current list:

    • he is marked as a story owner in PT
    • he fetches the latest changes from the main repo develop branch
    • he creates a new branch in his repo (which is branched off the latest develop branch) with a name that corresponds to the name of the story

    4. Developers that wish to collaborate on that story:

    • should fetch/fork the latest story branch changes from the story owner's repo
    • should push their changes to their own repo and create a pull request for the story owner

    5. When the story is complete:

    • the story owner checks that all tests are passing (rspec and cucumber)
    • checks if the story branch has the latest changes from the main repo's develop branch
    • merges the latest develop branch changes into the story branch
    • checks that all tests are passing (rspec and cucumber)
    • creates a pull request for the project owner to be pulled into the main repo develop branch (pull request should have comments...)
    • deploys (if a demo is necessary) the story branch into his own staging server

    6. Conventions for commit and pull requests messages:

    • summarize the entire commit/PR on the first line in less than 50 characters
    • leave a blank line, then add a detailed explanation of what’s been changed.

    For example:

        Change the message displayed by hello.rb
        - Update the #sayHello method to output the user's name
        - Change the #sayGoodbye method to a friendlier message
    

    7. Recommendations on using Git: (upstream, fetch, pull, merge, branch, etc.)

    Pivotal tracker flow: TBD (unfinished)

    https://www.pivotaltracker.com/s/projects/853345

    1. Create a story in icebox

    2. Description, tasks, owner, points, activity, epics, chores, bugs.

    3. Add a discussion point to the Agenda

    4. Discuss, approve, move into backlog

    5. Start, Finish, Deliver, Accept, Reject.

    CI

    1. Travis and CI
    ⚠️ **GitHub.com Fallback** ⚠️