SlideShare a Scribd company logo
© 2014 IBM CorporationFebruary 22 – 24, 2015
Open Up Your Platform with Open Source &
Github!
A Quick Introduction
Agenda
− Why Open Source?
− Getting Started
− Git & Github
− General Recommendations
About Me
Scott Graham, IBM WebSphere Team working on
Real-Time Communications
swgraham@us.ibm.com
The Big Question:
Why Open Source?
Why Not?
• Intellectual property concerns
• Licensing Issues
• Internal Bureaucracy
LAWYERS, GUNS AND MONEY
But these can be overcome, and
in many cases its worth the
effort.
Benefits

Take advantage of demand.
− Almost every Fortune 500 company
today has an Open Source strategy and
mandate.

Developer Adoption and Support
− Increase Adoption of your platform and
tools
− Get rapid feedback on features
− Solicit contributions

Community
− Create a community around your
platform and tools
− Become part of the Open Source
community in general
Getting Started
An anecdotal story
Everything inside IBM
We moved our client libraries and
samples to GitHub to be developer
friendly. There are things you can do
with Open Source only but by pulling
in Liberty you get way more
functionality.
First – Pick Something

Samples using your platform APIs

Developer tools

Products that enhance, but are
dependent on your platform

Systems Management tools and
scripts

Protocol implementations that other
people may be interested in
adopting
Second – Decide where to put it
GitHub
Google Code
SourceForge
etc.
And while there are also many others
for the remainder of the presentation
we will presume you chose GitHub.
Third – Assuming you picked GitHub...
1. Download and install 'git' from git-scm.com
2. Setup 'git' : https://help.github.com/articles/set-
up-git/
3. Setup Authentication with GitHub
4. Create a Repository
5. Optional: If you use Eclipse, install EGit
http://eclipse.org/egit/
Git & Github
Some git concepts

local and remote[origin]
− All changes start local and need to be 'committed' and 'pushed' in
order to be persisted remotely(and available to others)
− This includes branches.

Branches
− Branches “diverge from the main line of development”
− They start locally and if you want to share them need to be pushed
− Create a branch
git checkout -b branch_name
− Share the branch with the remote
git push -u origin branch_name
Make some process decisions [hint: git flow]

Branches [the gist]
master – default branch,
production ready.
develop – latest develop
code, should be stable.
feature/release/defect –
used to do work.
Author: Vincent Driessen
Original blog post: http://nvie.com/posts/a-succesful-git-branching-model
License: Creative Commons BY-SA
Structure your project

Projects on GitHub have a common structure
README.md
CONTRIBUTING.md
LICENSE
/src
/tests
/dist
The README.md is
automatically served by
GitHub when your
repository is accessed.
Add install, setup information
Here.
These define how to contribute
and the license you are
publishing the code under.
Generally stores a distributable
version (built) of your app.
Projects in GitHub generally include
all of the product's tests and the tests
can be run by anyone who clones the
project.
Clean it up and push it

When moving an existing
project out to the public,
ensure you meet your
company's licensing
requirements.

Remove any internal
information (ip addresses,
user names, server names)
etc.

Add build files and anything
else that doesn't belong in
source control to your
'.gitignore'
# 1. From your project dir, init
# as a git repo
$ git init
# 2. Edit .gitignore to ignore files
# 3. Add files to be tracked (will
# not add files in .gitignore)
$ git add .
# 4. Perform initial commit
$ git commit -m 'Initial commit'
# 5. Add the remote repository
$ git remote add origin rem_repo_url
# push it to to remote
$ git push origin master
General
Recommendations &
Issues
Private & Public

A GitHub repository can be public or private (if paid) but not
both

In some instances, you may wish to develop code that will
support an internal feature of your platform that is not public
yet. This is a great scenario for a mixed environment.

Create a Private git repository
on GitHub or on an internal
server.

Add it to your existing repo.

Create a branch and push it to
the private remote.
$ git remote add private git@github.com:
[user]/private.repo.git
$ git checkout -b private-branch
$ git push -u private private-branch
Use the GitHub tools
Issues – to track defects/feature requests/etc.
Pull Requests - Handle contributions from others without
giving write access to your repository.

Wiki – Document information about your project, the API,
etc.

github.io: https://pages.github.com/ – Serve a simple
website to advertise and demo your project
Use public package managers

If you want people to install and use your code support the
public package managers.
Bower – Client Side JavaScript –
http://bower.io
npm – Server Side JavaScript
http://npmjs.com
Maven – Java Projects
http://maven.apache.org/
Specific JavaScript considerations

Dependencies: To CDN or not to CDN ?
− Licensing considerations, performance, version matching
− Using Bower?

Provide a CDN for your repo via 'https://rawgit.com/'
Thank You!

More Related Content

What's hot (20)

PPTX
Get your Git on GitHub
Runcy Oommen
 
PPTX
Github basics
Radoslav Georgiev
 
PPTX
Github
piyush khadse
 
PPTX
Github PowerPoint Final
Elizabeth Walden
 
PDF
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Edureka!
 
PPTX
A painless self-hosted Git service: Gitea
Bo-Yi Wu
 
PPTX
GitHub Basics - Derek Bable
"FENG "GEORGE"" YU
 
PDF
GitHub
ThomasLai27
 
PDF
Git best practices 2016
Otto Kekäläinen
 
PPTX
Container based CI/CD on GitHub Actions
Casey Lee
 
PDF
GitHub for partners
Lorenzo Barbieri
 
KEY
Git with bitbucket
Sumin Byeon
 
PPTX
Introduction to Gitea with Drone
Bo-Yi Wu
 
PDF
GitLab webcast - Release 8.4
GitLab, Inc
 
PPTX
GitFlow, SourceTree and GitLab
Shinu Suresh
 
PPT
Git101
Jason Noble
 
PDF
Intro to Git & GitHub
GoogleDevelopersStud
 
PDF
CI is dead, long live CI
Frédéric Lepied
 
PDF
Introduction to GitHub
Nishan Bose
 
Get your Git on GitHub
Runcy Oommen
 
Github basics
Radoslav Georgiev
 
Github PowerPoint Final
Elizabeth Walden
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Edureka!
 
A painless self-hosted Git service: Gitea
Bo-Yi Wu
 
GitHub Basics - Derek Bable
"FENG "GEORGE"" YU
 
GitHub
ThomasLai27
 
Git best practices 2016
Otto Kekäläinen
 
Container based CI/CD on GitHub Actions
Casey Lee
 
GitHub for partners
Lorenzo Barbieri
 
Git with bitbucket
Sumin Byeon
 
Introduction to Gitea with Drone
Bo-Yi Wu
 
GitLab webcast - Release 8.4
GitLab, Inc
 
GitFlow, SourceTree and GitLab
Shinu Suresh
 
Git101
Jason Noble
 
Intro to Git & GitHub
GoogleDevelopersStud
 
CI is dead, long live CI
Frédéric Lepied
 
Introduction to GitHub
Nishan Bose
 

Viewers also liked (19)

PPTX
Tegnologia 12
2015rey
 
PDF
Adam Fox's PDF Version 1
Adam Fox
 
PPTX
Maroon 5
SHINeeMVP
 
PDF
personal profile
Bharathi N
 
PPTX
Seminariewerk sensewear
Jolien VndrAuwera
 
PPTX
MEDIO AMBIENTE
juancarlosamayo
 
PDF
Stainless Steel Bumper
knewman12
 
PPTX
عرض تقديمي2
alwi12345
 
PDF
Certificates
Muhammad Ikhram Abdullah
 
PDF
GO Advisors - Online Reputation Management
Seonar
 
PDF
Odyssey Catalog
Steven Wroczynski
 
PDF
Prime Minister Thanks Employers Supporting The Armed Forces
James Atkins
 
PDF
Tax benefit for individual towards Medical Premium payment
financialhospital
 
PDF
Totally Human Whitepaper
Faye Hugo
 
PDF
Demartek lenovo s3200_sql_server_evaluation_2016-01
Lenovo Data Center
 
PPTX
Thfk tent revival_talk_2015
E. Thomas (Tom) Wood
 
PPTX
S4 tarea4 ruroe
JUAN MARTINEZ
 
PPT
แผนการตลาดกิฟฟารีน
deaw1234
 
PPTX
Seminariewerk senseweardefinitief
Jolien VndrAuwera
 
Tegnologia 12
2015rey
 
Adam Fox's PDF Version 1
Adam Fox
 
Maroon 5
SHINeeMVP
 
personal profile
Bharathi N
 
Seminariewerk sensewear
Jolien VndrAuwera
 
MEDIO AMBIENTE
juancarlosamayo
 
Stainless Steel Bumper
knewman12
 
عرض تقديمي2
alwi12345
 
GO Advisors - Online Reputation Management
Seonar
 
Odyssey Catalog
Steven Wroczynski
 
Prime Minister Thanks Employers Supporting The Armed Forces
James Atkins
 
Tax benefit for individual towards Medical Premium payment
financialhospital
 
Totally Human Whitepaper
Faye Hugo
 
Demartek lenovo s3200_sql_server_evaluation_2016-01
Lenovo Data Center
 
Thfk tent revival_talk_2015
E. Thomas (Tom) Wood
 
S4 tarea4 ruroe
JUAN MARTINEZ
 
แผนการตลาดกิฟฟารีน
deaw1234
 
Seminariewerk senseweardefinitief
Jolien VndrAuwera
 
Ad

Similar to Open up your platform with Open Source and GitHub (20)

PDF
Introduction-to-Git-Github-andWorshop.pdf
SwasKare
 
PPT
Git ongithub
Almeda Asuncion
 
PPTX
Introduction to github slideshare
Rakesh Sukumar
 
PPTX
tech winter break workshop on git &git hub.pptx
ashishraulin
 
PDF
GDSC ZHCET GitHub Session.pdf
gdsczhcet
 
PDF
Getting started With GIT
GhadiAlGhosh
 
PDF
Git Hub Platform
Gaurav Ahluwalia
 
PPT
GIT By Sivakrishna
Nyros Technologies
 
PDF
GDSC GIT AND GITHUB
GDSCIIITDHARWAD
 
PDF
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
PPTX
Github
MeetPatel710
 
PDF
Collaborative development with git
Joseluis Laso
 
PPTX
GDG On Campus NBNSCOE Version Control Essential : Master Git & GitHub
udaymore742
 
PPTX
Introduction to Git and Github
Md Atique Ahmed Ziad
 
PPTX
Git and GitHub Workshop of GDG on Campus UNSTPB
AmaraCostachiu
 
PDF
introductiontogitandgithub-120702044048-phpapp01.pdf
BruceLee275640
 
PDF
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
PPTX
Git and GitHub (1).pptx
BetelAddisu
 
PPTX
Git and GitHub Presentation of GDG on Campus UNSTPB
AmaraCostachiu
 
PPTX
Git and GitHub Workshop of GDG on Campus UNSTPB
AmaraCostachiu
 
Introduction-to-Git-Github-andWorshop.pdf
SwasKare
 
Git ongithub
Almeda Asuncion
 
Introduction to github slideshare
Rakesh Sukumar
 
tech winter break workshop on git &git hub.pptx
ashishraulin
 
GDSC ZHCET GitHub Session.pdf
gdsczhcet
 
Getting started With GIT
GhadiAlGhosh
 
Git Hub Platform
Gaurav Ahluwalia
 
GIT By Sivakrishna
Nyros Technologies
 
GDSC GIT AND GITHUB
GDSCIIITDHARWAD
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
Github
MeetPatel710
 
Collaborative development with git
Joseluis Laso
 
GDG On Campus NBNSCOE Version Control Essential : Master Git & GitHub
udaymore742
 
Introduction to Git and Github
Md Atique Ahmed Ziad
 
Git and GitHub Workshop of GDG on Campus UNSTPB
AmaraCostachiu
 
introductiontogitandgithub-120702044048-phpapp01.pdf
BruceLee275640
 
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
Git and GitHub (1).pptx
BetelAddisu
 
Git and GitHub Presentation of GDG on Campus UNSTPB
AmaraCostachiu
 
Git and GitHub Workshop of GDG on Campus UNSTPB
AmaraCostachiu
 
Ad

Recently uploaded (20)

PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 

Open up your platform with Open Source and GitHub

  • 1. © 2014 IBM CorporationFebruary 22 – 24, 2015 Open Up Your Platform with Open Source & Github!
  • 2. A Quick Introduction Agenda − Why Open Source? − Getting Started − Git & Github − General Recommendations About Me Scott Graham, IBM WebSphere Team working on Real-Time Communications [email protected]
  • 3. The Big Question: Why Open Source?
  • 4. Why Not? • Intellectual property concerns • Licensing Issues • Internal Bureaucracy LAWYERS, GUNS AND MONEY But these can be overcome, and in many cases its worth the effort.
  • 5. Benefits  Take advantage of demand. − Almost every Fortune 500 company today has an Open Source strategy and mandate.  Developer Adoption and Support − Increase Adoption of your platform and tools − Get rapid feedback on features − Solicit contributions  Community − Create a community around your platform and tools − Become part of the Open Source community in general
  • 7. An anecdotal story Everything inside IBM We moved our client libraries and samples to GitHub to be developer friendly. There are things you can do with Open Source only but by pulling in Liberty you get way more functionality.
  • 8. First – Pick Something  Samples using your platform APIs  Developer tools  Products that enhance, but are dependent on your platform  Systems Management tools and scripts  Protocol implementations that other people may be interested in adopting
  • 9. Second – Decide where to put it GitHub Google Code SourceForge etc. And while there are also many others for the remainder of the presentation we will presume you chose GitHub.
  • 10. Third – Assuming you picked GitHub... 1. Download and install 'git' from git-scm.com 2. Setup 'git' : https://help.github.com/articles/set- up-git/ 3. Setup Authentication with GitHub 4. Create a Repository 5. Optional: If you use Eclipse, install EGit http://eclipse.org/egit/
  • 12. Some git concepts  local and remote[origin] − All changes start local and need to be 'committed' and 'pushed' in order to be persisted remotely(and available to others) − This includes branches.  Branches − Branches “diverge from the main line of development” − They start locally and if you want to share them need to be pushed − Create a branch git checkout -b branch_name − Share the branch with the remote git push -u origin branch_name
  • 13. Make some process decisions [hint: git flow]  Branches [the gist] master – default branch, production ready. develop – latest develop code, should be stable. feature/release/defect – used to do work. Author: Vincent Driessen Original blog post: http://nvie.com/posts/a-succesful-git-branching-model License: Creative Commons BY-SA
  • 14. Structure your project  Projects on GitHub have a common structure README.md CONTRIBUTING.md LICENSE /src /tests /dist The README.md is automatically served by GitHub when your repository is accessed. Add install, setup information Here. These define how to contribute and the license you are publishing the code under. Generally stores a distributable version (built) of your app. Projects in GitHub generally include all of the product's tests and the tests can be run by anyone who clones the project.
  • 15. Clean it up and push it  When moving an existing project out to the public, ensure you meet your company's licensing requirements.  Remove any internal information (ip addresses, user names, server names) etc.  Add build files and anything else that doesn't belong in source control to your '.gitignore' # 1. From your project dir, init # as a git repo $ git init # 2. Edit .gitignore to ignore files # 3. Add files to be tracked (will # not add files in .gitignore) $ git add . # 4. Perform initial commit $ git commit -m 'Initial commit' # 5. Add the remote repository $ git remote add origin rem_repo_url # push it to to remote $ git push origin master
  • 17. Private & Public  A GitHub repository can be public or private (if paid) but not both  In some instances, you may wish to develop code that will support an internal feature of your platform that is not public yet. This is a great scenario for a mixed environment.  Create a Private git repository on GitHub or on an internal server.  Add it to your existing repo.  Create a branch and push it to the private remote. $ git remote add private [email protected]: [user]/private.repo.git $ git checkout -b private-branch $ git push -u private private-branch
  • 18. Use the GitHub tools Issues – to track defects/feature requests/etc. Pull Requests - Handle contributions from others without giving write access to your repository.  Wiki – Document information about your project, the API, etc.  github.io: https://pages.github.com/ – Serve a simple website to advertise and demo your project
  • 19. Use public package managers  If you want people to install and use your code support the public package managers. Bower – Client Side JavaScript – http://bower.io npm – Server Side JavaScript http://npmjs.com Maven – Java Projects http://maven.apache.org/
  • 20. Specific JavaScript considerations  Dependencies: To CDN or not to CDN ? − Licensing considerations, performance, version matching − Using Bower?  Provide a CDN for your repo via 'https://rawgit.com/'

Editor's Notes

  • #6: Many companies will not purchase software they do not have access to source code. So there is a real business reason for doing this.