Submit Search
Upload
Contributing to StrongLoop LoopBack (and other open source projects)
•
4 likes
•
868 views
Supasate Choochaisri
Follow
Share my experience on how to contribute to the open source world
Read less
Read more
Technology
Report
Share
Report
Share
1 of 96
Download now
Download to read offline
Recommended
Drupal Performance
Drupal Performance
Pantheon
Git Standards
Git Standards
Juan Wellington Moreno
Continuous Integration
Continuous Integration
Liyao Chen
Surgeons guide plugin development
Surgeons guide plugin development
afragen
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDays Riga
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Stephen Feather
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
Tdd
Tdd
dasdom
Recommended
Drupal Performance
Drupal Performance
Pantheon
Git Standards
Git Standards
Juan Wellington Moreno
Continuous Integration
Continuous Integration
Liyao Chen
Surgeons guide plugin development
Surgeons guide plugin development
afragen
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDays Riga
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Cross Platform Native Development with Appcelerator Titanium (2015 DevNexus)
Stephen Feather
Speed up your Titanium app development with automated tests - TiConf EU 2014
Speed up your Titanium app development with automated tests - TiConf EU 2014
Emanuele Rampichini
Tdd
Tdd
dasdom
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
Bryan Liu
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Stefan Teixeira
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Peter Kofler
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
Software development terminology
Software development terminology
jstack
Modern Web 2016: Using Golang to build a smart IM Bot
Modern Web 2016: Using Golang to build a smart IM Bot
Evan Lin
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Evan Lin
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Danny Preussler
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Baruch Sadogursky
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
DrewAPicture
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
Robot Framework
Robot Framework
Onur Baskirt
Git workflow in agile development
Git workflow in agile development
Zack Siri
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
Steve Smith
Collaborative Package Development in R
Collaborative Package Development in R
egoodwintx
Calabash - Karl and Jonas
Calabash - Karl and Jonas
Xamarin
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Joe Ferguson
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
Future Insights
Come si applica l'OCP
Come si applica l'OCP
Andrea Francia
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
Cheng You Bai
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Atlassian
More Related Content
What's hot
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
Bryan Liu
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Stefan Teixeira
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Peter Kofler
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
Software development terminology
Software development terminology
jstack
Modern Web 2016: Using Golang to build a smart IM Bot
Modern Web 2016: Using Golang to build a smart IM Bot
Evan Lin
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Evan Lin
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Danny Preussler
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Baruch Sadogursky
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
DrewAPicture
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Stefan Teixeira
Robot Framework
Robot Framework
Onur Baskirt
Git workflow in agile development
Git workflow in agile development
Zack Siri
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
Steve Smith
Collaborative Package Development in R
Collaborative Package Development in R
egoodwintx
Calabash - Karl and Jonas
Calabash - Karl and Jonas
Xamarin
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Joe Ferguson
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
Future Insights
Come si applica l'OCP
Come si applica l'OCP
Andrea Francia
What's hot
(20)
Trunk-Based Development and Toggling
Trunk-Based Development and Toggling
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Scrum Gathering Portugal 2016 - Containerizing Tests with Docker
Coding Dojo: Adding Tests to Legacy Code (2014)
Coding Dojo: Adding Tests to Legacy Code (2014)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Software development terminology
Software development terminology
Modern Web 2016: Using Golang to build a smart IM Bot
Modern Web 2016: Using Golang to build a smart IM Bot
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Trying Out Tomorrow’s WordPress Today
Trying Out Tomorrow’s WordPress Today
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
TDC 2016 SP - Continuous Delivery para aplicações Java com ferramentas open-s...
Robot Framework
Robot Framework
Git workflow in agile development
Git workflow in agile development
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
Collaborative Package Development in R
Collaborative Package Development in R
Calabash - Karl and Jonas
Calabash - Karl and Jonas
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
Is your API misbehaving?(Keith-Casey)
Is your API misbehaving?(Keith-Casey)
Come si applica l'OCP
Come si applica l'OCP
Similar to Contributing to StrongLoop LoopBack (and other open source projects)
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
Cheng You Bai
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Atlassian
Strategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves Kotlin
Marco Fracassi
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
Ford Prior
Github github-github
Github github-github
fusion2011
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
Solano Labs
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
Matt Apperson
Cqrs api
Cqrs api
Brandon Mueller
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias
Mobile Development integration tests
Mobile Development integration tests
Kenneth Poon
Make your own Pokédex with the Pokéapi & Node/Express!
Make your own Pokédex with the Pokéapi & Node/Express!
Autodesk
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Steven Pousty
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
GOG.com dev team
That worked before
That worked before
Christian Güdemann
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
Ben Hall
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
Postman
Mongodb and Totsy - E-commerce Case Study
Mongodb and Totsy - E-commerce Case Study
Mitch Pirtle
How to write bad code using C#
How to write bad code using C#
Wekoslav Stefanovski
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
SV.CO’s iterative product development
SV.CO’s iterative product development
hari
Similar to Contributing to StrongLoop LoopBack (and other open source projects)
(20)
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
How HipChat Ships and Recovers Fast with DevOps Practices
How HipChat Ships and Recovers Fast with DevOps Practices
Strategie di testing: Spring Boot loves Kotlin
Strategie di testing: Spring Boot loves Kotlin
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
Github github-github
Github github-github
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
RapidDev - Develop Titanium apps at the speed of the web!
RapidDev - Develop Titanium apps at the speed of the web!
Cqrs api
Cqrs api
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Mobile Development integration tests
Mobile Development integration tests
Make your own Pokédex with the Pokéapi & Node/Express!
Make your own Pokédex with the Pokéapi & Node/Express!
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Always up to date, testable and maintainable documentation with OpenAPI
Always up to date, testable and maintainable documentation with OpenAPI
That worked before
That worked before
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
Mongodb and Totsy - E-commerce Case Study
Mongodb and Totsy - E-commerce Case Study
How to write bad code using C#
How to write bad code using C#
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
SV.CO’s iterative product development
SV.CO’s iterative product development
Recently uploaded
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Recently uploaded
(20)
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Slack Application Development 101 Slides
Slack Application Development 101 Slides
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Contributing to StrongLoop LoopBack (and other open source projects)
1.
CONTRIBUTING TO STRONGLOOP LOOPBACK Supasate Choochaisri @
Code Chill Chill 15 July 2016 (and other open source projects)
2.
ABOUT ME Supasate Choochaisri
(Ping) Larngear Technology & Streaming Co., Ltd. Thai Programmer Association IBM Inventor: LoopBack Developer Level II supasate.c@gmail.com github.com/supasate @kaizerwing
3.
JUST STARTED CONTRIBUTING
4.
WHAT IS STRONGLOOP LOOPBACK? •github.com/strongloop/loopback •A
popular open source Node.js framework •For composing scalable APIs
5.
Define Model
6.
Model Auto Creation
7.
http://localhost:3000/explorer
8.
9.
10.
11.
12.
MORE INFO • loopback.io •
strongloop.com/node-js/loopback- framework • www- 03.ibm.com/software/products/en/ api-connect
13.
HOW DID I
START CONTRIBUTING TO LOOPBACK?
14.
Myth Only good developers contribute
to open source
15.
Fact Contribute to open
source to become a good or better developer
16.
START LIKE A
BEGINNER
17.
18.
19.
20.
21.
No one responds
to my PR
22.
23.
24.
Forgot to follow
up
25.
26.
Tried installing and
failed
27.
Submitted a PR
28.
Yeah!!! My first
merged PR
29.
Run test and
failed at eslint and landed my second PR
30.
WANT TO TRY
ON LARGER PROJECT
31.
32.
Find issues
33.
Filter by beginner-friendly
label
34.
Filter by beginner-friendly
label
35.
36.
Fix it and
submit PRs (Pull Request)
37.
38.
Released
39.
Released
40.
CONTRIBUTION PROCESS (can be applied
to several projects)
41.
README
42.
Docker docs
43.
DOCS.DOCKER.COM/OPENSOURCE/WORKFLOW/MAKE-A-CONTRIBUTION/
44.
LoopBack similar process https://github.com/strongloop/loopback/wiki/Contributing-code#submitting-a-pull-request
45.
https://github.com/strongloop/loopback/wiki/Contributing-code#submitting-a-pull-request LoopBack similar process
46.
https://github.com/strongloop/loopback/wiki/Contributing-code#signing-patches SIGNING PATCHES
47.
https://github.com/strongloop/loopback/wiki/Contributing- code#contributor-license-agreement CONTRIBUTOR LICENSE AGREEMENT
48.
STEP BY STEP IN
REAL ACTION
49.
A FEW DAYS
AGO I SAW AN ISSUE THAT MIGHT BE ABLE TO BE SOLVED BEFORE THIS TALK
50.
51.
52.
1) FORK REPO
53.
1) FORK REPO
54.
2) CLONE FORKED
REPO
55.
2) CLONE FORKED
REPO
56.
3) ADD UPSTREAM
REPO
57.
3) ADD UPSTREAM
REPO
58.
4) PREPARE ENVIRONMENT
59.
5) FEEL THE
RUNNING PROJECT (COMPILE / RUN / TEST)
60.
5) FEEL THE
RUNNING PROJECT (COMPILE / RUN / TEST)
61.
6) CREATE NEW
BRANCH
62.
7) THE HARDEST
PART: FIND, UNDERSTAND, FIX • Ask project owner where to start • Search with keyword • Method call tracing • Debugging tool • etc.
63.
7.1) MODIFY CODE (I
found in code that the issue was actually solved so I just added a test to cover)
64.
7.2) RUN TEST
(BEFORE COMMIT)
65.
FIX ERROR UNTIL
THERE IS NO ERROR
66.
8) ADD &
COMMIT & SIGN-OFF
67.
8) ADD &
COMMIT & SIGN-OFF
68.
9) REBASE WITH
UPSTREAM (UPSTREAM MIGHT CONTAIN NEW CHANGES WHILE WE WERE FIXING)
69.
10) PUSH TO
YOUR FORKED REPO local branch remote branch
70.
11) OPEN A
PULL REQUEST (PR)
71.
Short title Description
72.
12) CHECK STATUS Bot
73.
12) CHECK STATUS one
time per repo
74.
13) AGREE CONTRIBUTOR
LICENSE AGREEMENT (ONE TIME PER REPO)
75.
13) AGREE CONTRIBUTOR
LICENSE AGREEMENT (ONE TIME PER REPO)
76.
14) CHECK CONTINUOUS
INTEGRATION STATUS
77.
15) NOTIFY A
VERIFIER TO TAKE A LOOK
78.
15) NOTIFY A
VERIFIER TO TAKE A LOOK
79.
16) READ COMMENTS
80.
16) READ COMMENTS
81.
17) FIX Fix it,
then, npm run test
82.
17) FIX
83.
GIT LOG
84.
18) SQUASH INTO
ONE COMMIT Interactive mode 2 commits from HEAD
85.
18) SQUASH INTO
ONE COMMIT
86.
18) SQUASH INTO
ONE COMMIT
87.
18.1) CHOOSE COMMIT
MESSAGE
88.
18.1) CHOOSE COMMIT
MESSAGE
89.
19) FORCE PUSH (WARNING:
HISTORY WILL BE RE-WRITTEN)
90.
20) CHECK STATUS (THIS
CASE REBASE NEEDED)
91.
21) REBASE AND
PUSH AGAIN
92.
93.
(OPTIONAL) LOOK CI
STATUS
94.
PR IS MERGED!
95.
DOCS.DOCKER.COM/OPENSOURCE/WORKFLOW/MAKE-A-CONTRIBUTION/
96.
ENJOY CONTRIBUTING!!! Supasate Choochaisri
(Ping) github.com/supasate @kaizerwing supasate.c@gmail.com
Download now