thomson reuters, tms: workflow in gitlab

19
Thomson Reuters, TMS: Workflow in GitLab November 2016 REUTERS / Firstname Lastname REUTERS / Lucy Nicholson Matan Keidar

Upload: matan-keidar

Post on 14-Apr-2017

387 views

Category:

Software


3 download

TRANSCRIPT

Thomson Reuters, TMS: Workflow in GitLab

November 2016

REUTERS / Firstname LastnameREUTERS / Lucy Nicholson

Matan Keidar

2

Who are we? What do we do?

, acquired by Thomson Reuters in 2007

Forms the Text Metadata Services (TMS) Group

Employs state-of-the-art NLP and Knowledge-Graph technologies: • Events detection, entities extraction, topics classification • Identifying meaningful connections between entities • Linked Data, data interoperability, big/smart data

Source of intelligent information for businesses and professionals around the world

Providing customers with a competitive advantage

GitLab: Features We Use

• Git Source Control Management (of course…) • Merge Requests • Jenkins Integration • Issue Tracking • Slack Integration

• A new issue is created

Life Cycle of a Feature

• A new issue is created • Developer pulls the issue

Life Cycle of a Feature

• A new issue is created • Developer pulls the issue • Merge Request

Life Cycle of a Feature

Life Cycle of a Feature

• A new issue is created • Developer pulls the issue • Merge Request • Code Review and tests

Life Cycle of a Feature

• A new issue is created • Developer pulls the issue • Merge Request • Code Review and tests • When new code is approved, it is merged to master branch

Issue Tracking: Creating Issues

Working on an ordered backlog (mapped to issues): • New features • Bugs

Issue Tracking: Creating Issues

Working on an ordered backlog (mapped to issues): • New features • Bugs

Issue Tracking: Issue Board

Issue Tracking: Assignment

• A developer is being assigned to the issue

• New feature branch is created from issue

Merge Request

• Prevents bad code to be merged to our code base • New code is being reviewed by team members

• Jenkins builds and tests new code • Jenkins votes on new feature according to test results

• Encourages knowledge sharing between team members

Jenkins Pipelined Build

• Jenkins executes build for every Merge Request • Fully tests the project

• Reviews every Merge Request • Votes according to test results

• Provides reports on every build • When Merge Request is approved, Jenkins deploys new code to server

Jenkins Pipelined Build

Slack Integration

• GitLab bot is a team member in Slack Group • New issue being created • Merge Request creation/approval

• Tried on comments, but was too noisy • Team members are always aware of project status

Summary

• Merge Requests • Encourage knowledge sharing between team members • New code is continuously tested

• Linking between issues and merge requests (by commits) • Development process is well-ordered • GitLab enables the team to be better aware of the project state