thomson reuters, tms: workflow in gitlab
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
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: 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
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