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

PDF
Self Hosted Web-based GIT Repository Managers
PDF
Version control with git
PPTX
Gerrit is Getting Native with RPM, Deb and Docker
PPTX
Up GitLab Presentation 2015
PDF
Getting Started with GitHub
PDF
How Git and Gerrit make you more productive
PDF
Github Case Study By Amil Ali
PPTX
Introduction to git administration
Self Hosted Web-based GIT Repository Managers
Version control with git
Gerrit is Getting Native with RPM, Deb and Docker
Up GitLab Presentation 2015
Getting Started with GitHub
How Git and Gerrit make you more productive
Github Case Study By Amil Ali
Introduction to git administration

What's hot (20)

PPTX
Get your Git on GitHub
PPTX
Github basics
PPTX
PPTX
Github PowerPoint Final
PDF
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
PPTX
A painless self-hosted Git service: Gitea
PPTX
GitHub Basics - Derek Bable
PDF
GitHub
PDF
Git best practices 2016
PPTX
Container based CI/CD on GitHub Actions
PDF
GitHub for partners
KEY
Git with bitbucket
PPTX
Introduction to Gitea with Drone
PDF
GitLab webcast - Release 8.4
PPTX
GitFlow, SourceTree and GitLab
PPT
Git101
PDF
Intro to Git & GitHub
PDF
CI is dead, long live CI
PDF
Introduction to GitHub
Get your Git on GitHub
Github basics
Github PowerPoint Final
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
A painless self-hosted Git service: Gitea
GitHub Basics - Derek Bable
GitHub
Git best practices 2016
Container based CI/CD on GitHub Actions
GitHub for partners
Git with bitbucket
Introduction to Gitea with Drone
GitLab webcast - Release 8.4
GitFlow, SourceTree and GitLab
Git101
Intro to Git & GitHub
CI is dead, long live CI
Introduction to GitHub
Ad

Viewers also liked (19)

PPTX
Tegnologia 12
PDF
Adam Fox's PDF Version 1
PPTX
Maroon 5
PDF
personal profile
PPTX
Seminariewerk sensewear
PPTX
MEDIO AMBIENTE
PDF
Stainless Steel Bumper
PPTX
عرض تقديمي2
PDF
PDF
GO Advisors - Online Reputation Management
PDF
Odyssey Catalog
PDF
Prime Minister Thanks Employers Supporting The Armed Forces
PDF
Tax benefit for individual towards Medical Premium payment
PDF
Totally Human Whitepaper
PDF
Demartek lenovo s3200_sql_server_evaluation_2016-01
PPTX
Thfk tent revival_talk_2015
PPTX
S4 tarea4 ruroe
PPT
แผนการตลาดกิฟฟารีน
PPTX
Seminariewerk senseweardefinitief
Tegnologia 12
Adam Fox's PDF Version 1
Maroon 5
personal profile
Seminariewerk sensewear
MEDIO AMBIENTE
Stainless Steel Bumper
عرض تقديمي2
GO Advisors - Online Reputation Management
Odyssey Catalog
Prime Minister Thanks Employers Supporting The Armed Forces
Tax benefit for individual towards Medical Premium payment
Totally Human Whitepaper
Demartek lenovo s3200_sql_server_evaluation_2016-01
Thfk tent revival_talk_2015
S4 tarea4 ruroe
แผนการตลาดกิฟฟารีน
Seminariewerk senseweardefinitief
Ad

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

PPTX
Mini-training: Let’s Git It!
PPTX
Introduction to git and Github
PPTX
Introduction to git & github
PDF
CICD_1670665418.pdf
PDF
August OpenNTF Webinar - Git and GitHub Explained
PPT
Github By Nyros Developer
PPTX
PDF
.Git for WordPress Developers
PPTX
Github for Serious Business Professional
PDF
Getting started With GIT
PPTX
Git, github and the hacktober fest
PPTX
Git hub visualstudiocode
PDF
Git workshop
PDF
Git for Windows
PPTX
Git & Github
ODP
GIT from n00b
PPTX
Hacktoberfest 2020 - Open source for beginners
PDF
Brush up on using github
PPTX
tech winter break workshop on git &git hub.pptx
PPTX
La importancia de versionar el código: GitHub, portafolio y recursos para est...
Mini-training: Let’s Git It!
Introduction to git and Github
Introduction to git & github
CICD_1670665418.pdf
August OpenNTF Webinar - Git and GitHub Explained
Github By Nyros Developer
.Git for WordPress Developers
Github for Serious Business Professional
Getting started With GIT
Git, github and the hacktober fest
Git hub visualstudiocode
Git workshop
Git for Windows
Git & Github
GIT from n00b
Hacktoberfest 2020 - Open source for beginners
Brush up on using github
tech winter break workshop on git &git hub.pptx
La importancia de versionar el código: GitHub, portafolio y recursos para est...

Recently uploaded (20)

PPTX
Transform Your Business with a Software ERP System
PPTX
L1 - Introduction to python Backend.pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
System and Network Administraation Chapter 3
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Nekopoi APK 2025 free lastest update
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Introduction to Artificial Intelligence
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
System and Network Administration Chapter 2
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Digital Strategies for Manufacturing Companies
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
Transform Your Business with a Software ERP System
L1 - Introduction to python Backend.pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
System and Network Administraation Chapter 3
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Nekopoi APK 2025 free lastest update
wealthsignaloriginal-com-DS-text-... (1).pdf
top salesforce developer skills in 2025.pdf
Understanding Forklifts - TECH EHS Solution
Introduction to Artificial Intelligence
Odoo POS Development Services by CandidRoot Solutions
Internet Downloader Manager (IDM) Crack 6.42 Build 41
CHAPTER 2 - PM Management and IT Context
System and Network Administration Chapter 2
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Digital Strategies for Manufacturing Companies
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Essential Infomation Tech presentation.pptx
Operating system designcfffgfgggggggvggggggggg

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 swgraham@us.ibm.com
  • 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 git@github.com: [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.