Boost logo

Boost :

From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2019-05-28 18:58:44


Hi Miral, Olzhas,

I'd like to share a bit of advice about the branching workflow:

1. First, you create dedicated fork of https://github.com/boostorg/gil.git
    at https://github.com/BoostGSoC19.
    For example, Miral created
    https://github.com/BoostGSoC19/gil-miral

2. You will base your work on the `develop` branch
    You can safely delete all the other branches (incl.master)
    and tags to avoid distractions.
    If you prefer, instead of using `develop`, you could also consider
    create dedicated branch, e.g. `gsoc19`, as target for all merges
    of your work.

    The idea is that after GSoC, all your work merged into `develop`
(or `gsoc19`)
     will be merged into `develop` at boostorg/gil.

3. Consider creating a project with basic kanban boards:
    ToDo, In Progress, Done
    Then, plan your TODO items by opening new GitHub issues,
    e.g.
    - "Implement X"
    - "Document X"
    Add all your planned items to the project.
    This will also create space for discussion/comments focused on each planned
    task. See, for example, https://github.com/BoostGSoC19/gil-miral/projects/1

4. To work on each of your tasks, create a feature branch off `develop`
    e.g. git checkout develop task-NN
    Once your feature is ready for review, open a new pull request
    where `gsoc19` is base branch and your feature branch is compare branch
    https://help.github.com/en/articles/creating-a-pull-request#changing-the-branch-range-and-destination-repository
    Add your PR to the project.

6. Your PR will be reviewed. It may take several iterations of
review-changes-review
    before it gets approved. Again, PR will form space for focused discussion on
    actual implementation of your task.
    Eventually, your PR (feature branch) will get merged into `develop` branch.

You will also want to keep the `develop` (or `gsoc19`) branch in-sync with
`develop` at boostorg/gil, frequently, especially before step 4. above:

git remote add upstream https://github.com/boostorg/gil.git
git checkout develop
git fetch upstream
git rebase upstream/develop

then move to 4. step.

Although Miral and I, have already agreed on this workflow,
feel free to discuss this proposal.
Stefan may also want to share some insights.

Best regards

-- 
Mateusz Loskot, http://mateusz.loskot.net

Boost list run by Boost-Gil-Owners