WARNING

This guide is not ready yet!!!!!!

Topic

A topic represent a whole feature in our applications. Let's say we have a online shop and our inversionist wants to add the order process. After a lot of painfuls meetings we define all the tasks that the feature involve.

  • Showing a list of products
  • Clicking in a product of the list add the product to the cart
  • Clicking the cart icon take the user to the order form

That's what a topic is, a task lists of one full feature.

Creating a Topic in github

In order to create a topic in github you should go to the repository you will working on. Then go to the issues section and click in the New Issue section. You should something like this:

Issues Templates

Click in the topic template and fill the form with the following values

  1. Enter the title of the topic, for our online shop example it can be:
  • T: Order Process

Probably you guess the T: part, although we are creating a TOPIC, for github it is just another issue so the T at the start of the title is like a filter to us.

  1. Complete the template:

Overview: The description of the topic, it this case we can put something like: "All the necessary steps to generate a new order"

Issues: In this part you must create a markdown list with all the previous tasks.

  • [ ] Showing a list of products
  • [ ] Clicking in a product of the list add the product to the cart
  • [ ] Clicking the cart icon take the user to the order form
  1. Assignees, labels, projects, cigarrillos, caramelos, etc...
  • Assignees: Represents all the people who will be working on the new feature.
  • Labels: For a topic 2 labels are mandatory: Topic and the one with the name of the repository.
  • Projects: The project where the repository belongs, if you do not know what option choose ask to @eperedo or @marsselo
  1. If you are still alive and with enough energy to keep living you should click the button Submit New Issue.

  2. Congratulations you have created your first topic.

Creating Issues - The pain continues

I know you are tired and thinking in looking for the near window to jump out. I know that feeling but relax, this process is totally worth it. You have your new shiny topic and the only thing left is create all the issues you define in the topic. In our example we have 3 tasks, that means 3 new issues.

The process is similar to create a TOPIC. Go to the issues list and click the button New Issue. Choose the New Issue template and click the Get started button.

  1. Enter the title of the issue:
  • Topic
  • Description

Feature Branch Flow

Finally you can start coding! Well not yet... Make sure you have read our style guide first.

  1. First you need to identify the issue you will have working on.
  2. Then go to the project board of that issue and move it to the WIP column.
  3. Now you can open your terminal and make a pull to the dev branch in order to have the latest changes
git pull origin dev
  1. Now you can create a branch with the id of the issue. Let's say your issue has the id 678, then your branch will be i-678.

WARNING

YOU MUST ALWAYS CREATE A BRANCH FROM THE dev BRANCH

git checkout -b i-678
  1. Make all the changes you need.
  2. Once you finish the code part, you always must check if there are any changes in the dev branch making a pull
git pull origin dev

if you have any conflicts ask for help to the person who did those changes, this is important so you can resolve the conflicts faster and do not delete any code of other developer.

  1. Now you are ready to make your push!
git push origin i-678
  1. And that's it! Pretty easy right? No? Ok I know this can look kinda large and burocratic, but it's pretty fast once you get used to it! Trust me.