SlideShare a Scribd company logo
1 of 33
Download to read offline
How to package your
    Ruby code
      Dr Nic Williams
        mocra.com
     drnicwilliams.com



    Mocra
What we need
Packaging by developer
Easy unpacking by users
Dependencies
Executables
Platform agnostic/neutral
Solution: RubyGems
Workflow
Packaging
Public install host
SCM
Public repo
Continuous integration
Workflow
Packaging: RubyGems
Public install host: rubyforge.org
SCM: Git
Public repo: github.com or rubyforge.org
Continuous integration: runcoderun.com
Start a new gem
Your gem Just Works
Bunch of options
~/.newgem.yml
Then use more generators
Create executable
Create executable
test/test_osdc_cli.rb
lib/osdc/cli.rb
Build and Go
Workflow
Packaging: RubyGems
Public install host: rubyforge.org
SCM: Git
Public repo: github.com or rubyforge.org
Continuous integration: runcoderun.com
Describe your gem
Release to RubyForge
Workflow
Packaging: RubyGems
Public install host: rubyforge.org
SCM: Git
Public repo: github.com or rubyforge.org
Continuous integration: runcoderun.com
Local git repo
Remote hosting on github
Instructions
for
free
http://github.com/drnic/osdc
http://github.com/drnic/osdc
Example
network
graph
http://github.com/drnic/osdc
Workflow
Packaging: RubyGems
Public install host: rubyforge.org
SCM: Git
Public repo: github.com or rubyforge.org
Continuous integration: runcoderun.com
github
→
runcoderun
runcoderun
runs
tests
on
commits
http://runcoderun.com/drnic/osdc
happy
green
when
its
fixed
Workflow
Packaging: RubyGems
Public install host: rubyforge.org
SCM: Git
Public repo: github.com or rubyforge.org
Continuous integration: runcoderun.com
How to package your
    Ruby code
      Dr Nic Williams
        mocra.com
     drnicwilliams.com



    Mocra

More Related Content

What's hot

Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010
sullis
 

What's hot (19)

Simplestack
SimplestackSimplestack
Simplestack
 
Neo4j python
Neo4j pythonNeo4j python
Neo4j python
 
Open web mail setup
Open web mail setupOpen web mail setup
Open web mail setup
 
Volley Android
Volley AndroidVolley Android
Volley Android
 
Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010
 
Vagrant hands on workshop for beginners
Vagrant hands on workshop for beginnersVagrant hands on workshop for beginners
Vagrant hands on workshop for beginners
 
Django packages list
Django packages listDjango packages list
Django packages list
 
Stockholm Jenkins Area Meetup, March 2017
Stockholm Jenkins Area Meetup, March 2017Stockholm Jenkins Area Meetup, March 2017
Stockholm Jenkins Area Meetup, March 2017
 
Continuous deployment with Cloud Foundry, Github and Travis CI | anynines
Continuous deployment with Cloud Foundry, Github and Travis CI | anyninesContinuous deployment with Cloud Foundry, Github and Travis CI | anynines
Continuous deployment with Cloud Foundry, Github and Travis CI | anynines
 
London Hug 20/6 - Clustering RabbitMQ using Consul
London Hug 20/6 - Clustering RabbitMQ using ConsulLondon Hug 20/6 - Clustering RabbitMQ using Consul
London Hug 20/6 - Clustering RabbitMQ using Consul
 
OpenCms Days 2013 - Gradle based OpenCms build automated setup
OpenCms Days 2013 - Gradle based OpenCms build automated setupOpenCms Days 2013 - Gradle based OpenCms build automated setup
OpenCms Days 2013 - Gradle based OpenCms build automated setup
 
Vagrant
VagrantVagrant
Vagrant
 
Docker e git lab
Docker e git labDocker e git lab
Docker e git lab
 
Gestión de la configuración - Jenkins ci
Gestión de la configuración - Jenkins ciGestión de la configuración - Jenkins ci
Gestión de la configuración - Jenkins ci
 
WordPress Bhubaneswar Meetup - dive into gutenberg creation
WordPress Bhubaneswar Meetup - dive into gutenberg creationWordPress Bhubaneswar Meetup - dive into gutenberg creation
WordPress Bhubaneswar Meetup - dive into gutenberg creation
 
Overview of Redux
Overview of ReduxOverview of Redux
Overview of Redux
 
Continuous Integration for IOS Apps
Continuous Integration for IOS AppsContinuous Integration for IOS Apps
Continuous Integration for IOS Apps
 
2018 05-17 - TitaniumNL - Using npm in Titanium
2018 05-17 - TitaniumNL - Using npm in Titanium2018 05-17 - TitaniumNL - Using npm in Titanium
2018 05-17 - TitaniumNL - Using npm in Titanium
 
OpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with GradleOpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with Gradle
 

Viewers also liked

Viewers also liked (7)

RubyEnRails2007 - Dr Nic Williams - DIY Syntax
RubyEnRails2007 - Dr Nic Williams - DIY SyntaxRubyEnRails2007 - Dr Nic Williams - DIY Syntax
RubyEnRails2007 - Dr Nic Williams - DIY Syntax
 
Internetsafety
InternetsafetyInternetsafety
Internetsafety
 
School Class Photos
School Class PhotosSchool Class Photos
School Class Photos
 
Living With 1000 Open Source Projects
Living With 1000 Open Source ProjectsLiving With 1000 Open Source Projects
Living With 1000 Open Source Projects
 
RailsConf Keynote - History of Ruby
RailsConf Keynote - History of RubyRailsConf Keynote - History of Ruby
RailsConf Keynote - History of Ruby
 
What is your job at your ruby club?
What is your job at your ruby club?What is your job at your ruby club?
What is your job at your ruby club?
 
What is a kid to do?
What is a kid to do?What is a kid to do?
What is a kid to do?
 

Similar to Rubygem Dev And Workflow

Developing Rails Apps in Technical Isolation
Developing Rails Apps in Technical IsolationDeveloping Rails Apps in Technical Isolation
Developing Rails Apps in Technical Isolation
Jesus Jackson
 

Similar to Rubygem Dev And Workflow (20)

Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Docker Workshop for beginner
Docker Workshop for beginnerDocker Workshop for beginner
Docker Workshop for beginner
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
 
Nodejs
NodejsNodejs
Nodejs
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
 
Making kubernetes simple for developers
Making kubernetes simple for developersMaking kubernetes simple for developers
Making kubernetes simple for developers
 
Step by step guide to create theme for liferay dxp 7
Step by step guide to create theme for liferay dxp 7Step by step guide to create theme for liferay dxp 7
Step by step guide to create theme for liferay dxp 7
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
Developing Rails Apps in Technical Isolation
Developing Rails Apps in Technical IsolationDeveloping Rails Apps in Technical Isolation
Developing Rails Apps in Technical Isolation
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Ruby windows
Ruby windowsRuby windows
Ruby windows
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Super powered Drupal development with docker
Super powered Drupal development with dockerSuper powered Drupal development with docker
Super powered Drupal development with docker
 
Docker introduction in Hardware Company
Docker introduction in Hardware CompanyDocker introduction in Hardware Company
Docker introduction in Hardware Company
 
Docker dev, test & production (afas)
Docker  dev, test & production (afas)Docker  dev, test & production (afas)
Docker dev, test & production (afas)
 
Cloudfoundry Overview
Cloudfoundry OverviewCloudfoundry Overview
Cloudfoundry Overview
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
 
Composer & Drupal
Composer & DrupalComposer & Drupal
Composer & Drupal
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Rubygem Dev And Workflow