Upload
dav-glass
View
8.307
Download
0
Embed Size (px)
Citation preview
Senior YUI EngineerDav Glass
Contributing to YUI
Contributing to YUI
Contributing to YUIStatus
Contributing to YUIStatusWhy?
Contributing to YUIStatusWhy?What?
Contributing to YUIStatusWhy?What?How?
Contributing to YUIStatusWhy?What?How?Now What?
Status
StatusWhere we were:
StatusWhere we were:
Releases on SourceForge
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releases
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releasesNo public source
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors
Where we are now:
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors
Where we are now:
Source on GitHub
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors
Where we are now:
Source on GitHubDaily Builds
StatusWhere we were:
Releases on SourceForgeSemi-Yearly releasesNo public sourceFew public contributors
Where we are now:
Source on GitHubDaily BuildsYUI 2 & 3 full source
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
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
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
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
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
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
Status
Status
StatusYUI 2.x:
StatusYUI 2.x:
Builds: 1,170
StatusYUI 2.x:
Builds: 1,170Commits: 1,994
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11
YUI 3.x:
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11
YUI 3.x:Builds: 1,315
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11
YUI 3.x:Builds: 1,315Commits: 3,040
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11
YUI 3.x:Builds: 1,315Commits: 3,040Committers: 20
StatusYUI 2.x:
Builds: 1,170Commits: 1,994Committers: 27Non-YUI: 11
YUI 3.x:Builds: 1,315Commits: 3,040Committers: 20Non-YUI: 7
StatusTotal Builds: 2,580Avg. Per Month: 215Avg. Per Day: 7
StatusWhat else have we launched this year?
StatusWhat else have we launched this year?
• YUILibrary.com
StatusWhat else have we launched this year?
• YUILibrary.com• Forums (4,000+ posts)
StatusWhat else have we launched this year?
• YUILibrary.com• Forums (4,000+ posts)
• Bug Tracker
StatusWhat else have we launched this year?
• YUILibrary.com• Forums (4,000+ posts)
• Bug Tracker• IRC Channel #yui
StatusWhat else have we launched this year?
• YUILibrary.com• Forums (4,000+ posts)
• Bug Tracker• IRC Channel #yui• Twitter @yuilibrary
We've been busy!!
We've been busy!!
And we're not done yet.
Why?
Why?
Why?
• Fame?
Why?
• Fame?• Fortune?
Why?
• Fame?• Fortune?• .....
Why?
• Fame?• Fortune?• .....• Profit?
Why?
Why?
• Community
Why?
• Community• Building something awesome
Why?
• Community• Building something awesome• Help solve problems
Why?
• Community• Building something awesome• Help solve problems• Fill a need
Why?
• Community• Building something awesome• Help solve problems• Fill a need
Why?
• Community• Building something awesome• Help solve problems• Fill a need
What?
What?
What?• Bug Fixes
What?• Bug Fixes• Patches
What?• Bug Fixes• Patches• Enhancements
What?• Bug Fixes• Patches• Enhancements
What?• Bug Fixes• Patches• Enhancements• Examples
What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation
What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation• Support
What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation• Support• Test Cases
What?• Bug Fixes• Patches• Enhancements• Examples• API Documentation• Support• Test Cases• New Modules
How?
How?
How?What is Git?
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.
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.
How?What is GitHub?
How?What is GitHub?
How?Getting the Source
Install Git:http://yuilibrary.com/gitfaq/
More Information:http://yuilibrary.com/contrib/
How?Getting the Source
How?Getting the Source
Two Options:
How?Getting the Source
Two Options:• Public Copy
How?Getting the Source
Two Options:• Public Copy
• Read-Only
How?Getting the Source
Two Options:• Public Copy
• Read-Only• Testing
How?Getting the Source
Two Options:• Public Copy
• Read-Only• Testing• Bug Filing
How?Getting the Source
Two Options:• Public Copy
• Read-Only• Testing• Bug Filing• Development
How?Getting the Source
Two Options:
How?Getting the Source
Two Options:• Public Copy
How?Getting the Source
Two Options:• Public Copy • Fork the Project
How?Getting the Source
Two Options:• Public Copy • Fork the Project
• Writable
How?Getting the Source
Two Options:• Public Copy • Fork the Project
• Writable• Make Changes
How?Getting the Source
Two Options:• Public Copy • Fork the Project
• Writable• Make Changes• Fix Bugs
How?Getting the Source
Two Options:• Public Copy • Fork the Project
• Writable• Make Changes• Fix Bugs• Add Tests
How?
Forking..
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.
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.
How?Forking the project
http://github.com/yui/yui3
How?Forking the project
http://github.com/yui/yui3
How?Forking the project
http://github.com/yui/yui3
How?Forking the project
How?Getting your source
How?Getting your source
git clone [email protected]:davglass/yui3.git
How?
It is very important that you keep your source up to date.
How?
It is very important that you keep your source up to date.
More Information:http://yuilibrary.com/contrib/
How?
Now that you have the source, what do you do next?
How?General Guidelines:
How?General Guidelines:
• Sign & Submit a CLA
How?General Guidelines:
• Sign & Submit a CLA • Have a Use Case
How?General Guidelines:
• Sign & Submit a CLA • Have a Use Case• Create a Ticket
How?General Guidelines:
• Sign & Submit a CLA • Have a Use Case• Create a Ticket• Have a working Test Case
How?General Guidelines:
• Sign & Submit a CLA • Have a Use Case• Create a Ticket• Have a working Test Case• Make an Example
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
How?
Why a CLA?Contributor License Agreement
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.
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.
How?Use Case
Test Case
How?Use Case
Test Case
Make sure you have a valid use case for your issue. Cover your bases.
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!
How?
Pull Requests..
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.
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.
How?Submitting a Pull Request
How?Submitting a Pull Request
http://yuilibrary.com/projects/yui3/
How?Submitting a Pull Request
http://yuilibrary.com/projects/yui3/
How?Submitting a Pull Request
http://yuilibrary.com/projects/yui3/
How?Submitting a Pull Request
How?Submitting a Pull Request
How?Submitting a Pull Request
How?Submitting a Pull Request
Steps from here:
How?Submitting a Pull Request
Steps from here:• A Ticket is Created.
How?Submitting a Pull Request
Steps from here:• A Ticket is Created.• Owner:
How?Submitting a Pull Request
Steps from here:• A Ticket is Created.• Owner:
• Determines if valid.
How?Submitting a Pull Request
Steps from here:• A Ticket is Created.• Owner:
• Determines if valid.• Merges in changes.
How?Submitting a Pull Request
Steps from here:• A Ticket is Created.• Owner:
• Determines if valid.• Merges in changes.• Creates a build.
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
How?More Information:
http://yuilibrary.com/contrib/
How?Other ways to Contribute
How?Other ways to Contribute
• Examples
How?Other ways to Contribute
• Examples• Creating new
How?Other ways to Contribute
• Examples• Creating new• Updating current
How?Other ways to Contribute
• Examples• Creating new• Updating current
• Support
How?Other ways to Contribute
• Examples• Creating new• Updating current
• Support• Submitting Tickets
How?Other ways to Contribute
• Examples• Creating new• Updating current
• Support• Submitting Tickets• Answering Forum Posts
How?Other ways to Contribute
• Examples• Creating new• Updating current
• Support• Submitting Tickets• Answering Forum Posts
• Writing Tests
How?Other ways to Contribute
• Examples• Creating new• Updating current
• Support• Submitting Tickets• Answering Forum Posts
• Writing Tests• New Modules
Now What?
YUI 3 Galleryhttp://yuilibrary.com/gallery/
YUI 3 Galleryhttp://yuilibrary.com/gallery/
Your code on our CDN!
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.
YUI 3 Gallery
The Rules:
YUI 3 Gallery
• Submit a CLA
The Rules:
YUI 3 Gallery
• Submit a CLA• Give it away for free
The Rules:
YUI 3 Gallery
• Submit a CLA• Give it away for free• License it under YUI's BSD license.
The Rules:
YUI 3 Gallery
What's the process?
YUI 3 GalleryAdd Add your module and pick a name.
YUI 3 GalleryAdd Add your module and pick a name.
Get Approved We will try to approve new modules as fast as we can.
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.
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.
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.
YUI 3 GalleryGive us some time to approve the CDN Request. It takes a little time.
YUI 3 GalleryOnce approved, it will be deployed to our CDN and available to anyone.
YUI 3 GalleryAnd that's more awesome than
Captain James T. Kirk.
YUI 3 Gallery
Demo
Dav [email protected]/davglassgithub.com/davglassblog.davglass.comslideshare.net/davglass
Thanks!!