contributing to yui

161
Senior YUI Engineer Dav Glass Contributing to YUI

Upload: dav-glass

Post on 29-Jan-2018

8.309 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Contributing to YUI

Senior YUI EngineerDav Glass

Contributing to YUI

Page 2: Contributing to YUI

Contributing to YUI

Page 3: Contributing to YUI

Contributing to YUIStatus

Page 4: Contributing to YUI

Contributing to YUIStatusWhy?

Page 5: Contributing to YUI

Contributing to YUIStatusWhy?What?

Page 6: Contributing to YUI

Contributing to YUIStatusWhy?What?How?

Page 7: Contributing to YUI

Contributing to YUIStatusWhy?What?How?Now What?

Page 8: Contributing to YUI

Status

Page 9: Contributing to YUI

StatusWhere we were:

Page 10: Contributing to YUI

StatusWhere we were:

Releases on SourceForge

Page 11: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releases

Page 12: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public source

Page 13: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Page 14: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Page 15: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHub

Page 16: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily Builds

Page 17: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full source

Page 18: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full sourceReleased 4 other tools

Page 19: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full sourceReleased 4 other tools

YUIDoc

Page 20: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full sourceReleased 4 other tools

YUIDocBuilder

Page 21: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full sourceReleased 4 other tools

YUIDocBuilderPHPLoader

Page 22: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full sourceReleased 4 other tools

YUIDocBuilderPHPLoaderCompressor

Page 23: Contributing to YUI

StatusWhere we were:

Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors

Where we are now:

Source on GitHubDaily BuildsYUI 2 & 3 full sourceReleased 4 other tools

YUIDocBuilderPHPLoaderCompressor

Several public contributors

Page 24: Contributing to YUI

Status

Page 25: Contributing to YUI

Status

Page 26: Contributing to YUI

StatusYUI 2.x:

Page 27: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170

Page 28: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994

Page 29: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27

Page 30: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11

Page 31: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11

YUI 3.x:

Page 32: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11

YUI 3.x:Builds: 1,315

Page 33: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11

YUI 3.x:Builds: 1,315Commits: 3,040

Page 34: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11

YUI 3.x:Builds: 1,315Commits: 3,040Committers: 20

Page 35: Contributing to YUI

StatusYUI 2.x:

Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11

YUI 3.x:Builds: 1,315Commits: 3,040Committers: 20Non-YUI: 7

Page 36: Contributing to YUI

StatusTotal Builds: 2,580Avg. Per Month: 215Avg. Per Day: 7

Page 37: Contributing to YUI

StatusWhat else have we launched this year?

Page 38: Contributing to YUI

StatusWhat else have we launched this year?

• YUILibrary.com

Page 39: Contributing to YUI

StatusWhat else have we launched this year?

• YUILibrary.com• Forums (4,000+ posts)

Page 40: Contributing to YUI

StatusWhat else have we launched this year?

• YUILibrary.com• Forums (4,000+ posts)

• Bug Tracker

Page 41: Contributing to YUI

StatusWhat else have we launched this year?

• YUILibrary.com• Forums (4,000+ posts)

• Bug Tracker• IRC Channel #yui

Page 42: Contributing to YUI

StatusWhat else have we launched this year?

• YUILibrary.com• Forums (4,000+ posts)

• Bug Tracker• IRC Channel #yui• Twitter @yuilibrary

Page 43: Contributing to YUI

We've been busy!!

Page 44: Contributing to YUI

We've been busy!!

And we're not done yet.

Page 45: Contributing to YUI

Why?

Page 46: Contributing to YUI

Why?

Page 47: Contributing to YUI

Why?

• Fame?

Page 48: Contributing to YUI

Why?

• Fame?• Fortune?

Page 49: Contributing to YUI

Why?

• Fame?• Fortune?• .....

Page 50: Contributing to YUI

Why?

• Fame?• Fortune?• .....• Profit?

Page 51: Contributing to YUI

Why?

Page 52: Contributing to YUI

Why?

• Community

Page 53: Contributing to YUI

Why?

• Community• Building something awesome

Page 54: Contributing to YUI

Why?

• Community• Building something awesome• Help solve problems

Page 55: Contributing to YUI

Why?

• Community• Building something awesome• Help solve problems• Fill a need

Page 56: Contributing to YUI

Why?

• Community• Building something awesome• Help solve problems• Fill a need

Page 57: Contributing to YUI

Why?

• Community• Building something awesome• Help solve problems• Fill a need

Page 58: Contributing to YUI

What?

Page 59: Contributing to YUI

What?

Page 60: Contributing to YUI

What?• Bug Fixes

Page 61: Contributing to YUI

What?• Bug Fixes• Patches

Page 62: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements

Page 63: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements

Page 64: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements• Examples

Page 65: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation

Page 66: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation• Support

Page 67: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation• Support• Test Cases

Page 68: Contributing to YUI

What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation• Support• Test Cases• New Modules

Page 69: Contributing to YUI

How?

Page 70: Contributing to YUI

How?

Page 71: Contributing to YUI

How?What is Git?

Page 72: Contributing to YUI

How?What is Git?

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

Page 73: Contributing to YUI

How?What is Git?

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

Git is a distributed version control system.

Every clone is a full repository.

Page 74: Contributing to YUI

How?What is GitHub?

Page 75: Contributing to YUI

How?What is GitHub?

Page 76: Contributing to YUI

How?Getting the Source

Install Git:http://yuilibrary.com/gitfaq/

More Information:http://yuilibrary.com/contrib/

Page 77: Contributing to YUI

How?Getting the Source

Page 78: Contributing to YUI

How?Getting the Source

Two Options:

Page 79: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy

Page 80: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy

• Read-Only

Page 81: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy

• Read-Only• Testing

Page 82: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy

• Read-Only• Testing• Bug Filing

Page 83: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy

• Read-Only• Testing• Bug Filing• Development

Page 84: Contributing to YUI

How?Getting the Source

Two Options:

Page 85: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy

Page 86: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy • Fork the Project

Page 87: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy • Fork the Project

• Writable

Page 88: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy • Fork the Project

• Writable• Make Changes

Page 89: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy • Fork the Project

• Writable• Make Changes• Fix Bugs

Page 90: Contributing to YUI

How?Getting the Source

Two Options:• Public Copy • Fork the Project

• Writable• Make Changes• Fix Bugs• Add Tests

Page 91: Contributing to YUI

How?

Forking..

Page 92: Contributing to YUI

How?

Forking is the preferred way of collaboration on GitHub and it works quite well with git. You get your own public repository which contains exactly the same history as the main repository at the time you forked it. You will later push your contributions into this repository and the maintainers of the main repository will pull your commits into the main branch.

Page 93: Contributing to YUI

How?

Forking is the preferred way of collaboration on GitHub and it works quite well with git. You get your own public repository which contains exactly the same history as the main repository at the time you forked it. You will later push your contributions into this repository and the maintainers of the main repository will pull your commits into the main branch.

Forking on GitHub is like branching on steriods.

Page 94: Contributing to YUI

How?Forking the project

http://github.com/yui/yui3

Page 95: Contributing to YUI

How?Forking the project

http://github.com/yui/yui3

Page 96: Contributing to YUI

How?Forking the project

http://github.com/yui/yui3

Page 97: Contributing to YUI

How?Forking the project

Page 98: Contributing to YUI

How?Getting your source

Page 99: Contributing to YUI

How?Getting your source

git clone [email protected]:davglass/yui3.git

Page 100: Contributing to YUI

How?

It is very important that you keep your source up to date.

Page 101: Contributing to YUI

How?

It is very important that you keep your source up to date.

More Information:http://yuilibrary.com/contrib/

Page 102: Contributing to YUI

How?

Now that you have the source, what do you do next?

Page 103: Contributing to YUI

How?General Guidelines:

Page 104: Contributing to YUI

How?General Guidelines:

• Sign & Submit a CLA

Page 105: Contributing to YUI

How?General Guidelines:

• Sign & Submit a CLA • Have a Use Case

Page 106: Contributing to YUI

How?General Guidelines:

• Sign & Submit a CLA • Have a Use Case• Create a Ticket

Page 107: Contributing to YUI

How?General Guidelines:

• Sign & Submit a CLA • Have a Use Case• Create a Ticket• Have a working Test Case

Page 108: Contributing to YUI

How?General Guidelines:

• Sign & Submit a CLA • Have a Use Case• Create a Ticket• Have a working Test Case• Make an Example

Page 109: Contributing to YUI

How?General Guidelines:

• Sign & Submit a CLA • Have a Use Case• Create a Ticket• Have a working Test Case• Make an Example• Be Open to Suggestions

Page 110: Contributing to YUI

How?

Why a CLA?Contributor License Agreement

Page 111: Contributing to YUI

How?

Why a CLA?Contributor License Agreement

The CLA ensures that everyone who commits intellectual property to the YUI Library is contributing work that is their own.

Page 112: Contributing to YUI

How?

Why a CLA?

More Information:http://developer.yahoo.com/yui/community/

Contributor License Agreement

The CLA ensures that everyone who commits intellectual property to the YUI Library is contributing work that is their own.

Page 113: Contributing to YUI

How?Use Case

Test Case

Page 114: Contributing to YUI

How?Use Case

Test Case

Make sure you have a valid use case for your issue. Cover your bases.

Page 115: Contributing to YUI

How?Use Case

Test Case

Make sure you have a valid use case for your issue. Cover your bases.

Test cases are very important, but make sure that your test actually tests what you think it does!

Page 116: Contributing to YUI

How?

Pull Requests..

Page 117: Contributing to YUI

How?

Pull Requests..Pull Requests are how we know what and when you want us to pull your code and start the process of getting it merged into the code line.

Page 118: Contributing to YUI

How?

Pull Requests..Pull Requests are how we know what and when you want us to pull your code and start the process of getting it merged into the code line.

Page 119: Contributing to YUI

How?Submitting a Pull Request

Page 120: Contributing to YUI

How?Submitting a Pull Request

http://yuilibrary.com/projects/yui3/

Page 121: Contributing to YUI

How?Submitting a Pull Request

http://yuilibrary.com/projects/yui3/

Page 122: Contributing to YUI

How?Submitting a Pull Request

http://yuilibrary.com/projects/yui3/

Page 123: Contributing to YUI

How?Submitting a Pull Request

Page 124: Contributing to YUI

How?Submitting a Pull Request

Page 125: Contributing to YUI

How?Submitting a Pull Request

Page 126: Contributing to YUI

How?Submitting a Pull Request

Steps from here:

Page 127: Contributing to YUI

How?Submitting a Pull Request

Steps from here:• A Ticket is Created.

Page 128: Contributing to YUI

How?Submitting a Pull Request

Steps from here:• A Ticket is Created.• Owner:

Page 129: Contributing to YUI

How?Submitting a Pull Request

Steps from here:• A Ticket is Created.• Owner:

• Determines if valid.

Page 130: Contributing to YUI

How?Submitting a Pull Request

Steps from here:• A Ticket is Created.• Owner:

• Determines if valid.• Merges in changes.

Page 131: Contributing to YUI

How?Submitting a Pull Request

Steps from here:• A Ticket is Created.• Owner:

• Determines if valid.• Merges in changes.• Creates a build.

Page 132: Contributing to YUI

How?Submitting a Pull Request

Steps from here:• A Ticket is Created.• Owner:

• Determines if valid.• Merges in changes.• Creates a build.

• Build system pushes to GitHub

Page 133: Contributing to YUI

How?More Information:

http://yuilibrary.com/contrib/

Page 134: Contributing to YUI

How?Other ways to Contribute

Page 135: Contributing to YUI

How?Other ways to Contribute

• Examples

Page 136: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new

Page 137: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new• Updating current

Page 138: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new• Updating current

• Support

Page 139: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new• Updating current

• Support• Submitting Tickets

Page 140: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new• Updating current

• Support• Submitting Tickets• Answering Forum Posts

Page 141: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new• Updating current

• Support• Submitting Tickets• Answering Forum Posts

• Writing Tests

Page 142: Contributing to YUI

How?Other ways to Contribute

• Examples• Creating new• Updating current

• Support• Submitting Tickets• Answering Forum Posts

• Writing Tests• New Modules

Page 143: Contributing to YUI

Now What?

Page 144: Contributing to YUI

YUI 3 Galleryhttp://yuilibrary.com/gallery/

Page 145: Contributing to YUI

YUI 3 Galleryhttp://yuilibrary.com/gallery/

Your code on our CDN!

Page 146: Contributing to YUI

YUI 3 Galleryhttp://yuilibrary.com/gallery/

Your code on our CDN!

Gallery allows all YUI developers to extend the library rapidly, adding modules that are accessible from any YUI 3 use() statement.

Page 147: Contributing to YUI

YUI 3 Gallery

The Rules:

Page 148: Contributing to YUI

YUI 3 Gallery

• Submit a CLA

The Rules:

Page 149: Contributing to YUI

YUI 3 Gallery

• Submit a CLA• Give it away for free

The Rules:

Page 150: Contributing to YUI

YUI 3 Gallery

• Submit a CLA• Give it away for free• License it under YUI's BSD license.

The Rules:

Page 151: Contributing to YUI

YUI 3 Gallery

What's the process?

Page 152: Contributing to YUI

YUI 3 GalleryAdd Add your module and pick a name.

Page 153: Contributing to YUI

YUI 3 GalleryAdd Add your module and pick a name.

Get Approved We will try to approve new modules as fast as we can.

Page 154: Contributing to YUI

YUI 3 GalleryAdd Add your module and pick a name.

Get Approved We will try to approve new modules as fast as we can.

Fork It! Fork the yui3-gallery project on GitHub.

Page 155: Contributing to YUI

YUI 3 GalleryAdd Add your module and pick a name.

Get Approved We will try to approve new modules as fast as we can.

Fork It! Fork the yui3-gallery project on GitHub.

Commit Commit your code to your fork.

Page 156: Contributing to YUI

YUI 3 GalleryAdd Add your module and pick a name.

Get Approved We will try to approve new modules as fast as we can.

Fork It! Fork the yui3-gallery project on GitHub.

Commit Commit your code to your fork.

CDN Request Submit a CDN Request for your module from the Gallery.

Page 157: Contributing to YUI

YUI 3 GalleryGive us some time to approve the CDN Request. It takes a little time.

Page 158: Contributing to YUI

YUI 3 GalleryOnce approved, it will be deployed to our CDN and available to anyone.

Page 159: Contributing to YUI

YUI 3 GalleryAnd that's more awesome than

Captain James T. Kirk.

Page 160: Contributing to YUI

YUI 3 Gallery

Demo

Page 161: Contributing to YUI

Dav [email protected]/davglassgithub.com/davglassblog.davglass.comslideshare.net/davglass

Thanks!!