Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The CocoaPods Spec Repo & CocoaDocs

Orta
June 13, 2013

The CocoaPods Spec Repo & CocoaDocs

Orta Therox talks about keeping peace in the CocoaPods Specs Repo and about the Documentation Project CocoaDocs

Orta

June 13, 2013
Tweet

More Decks by Orta

Other Decks in Programming

Transcript

  1. The Repo Thursday, 13 June 13 Stats: Number of contributors

    last month 341 Number Commits 670 10 PRs a day`
  2. How I Started Thursday, 13 June 13 Wanted to help,

    but didn't want to code Figured PRs sucked for cocoapods devs, time could be spent on app instead Wanted to raise profile
  3. Stopping commit access Thursday, 13 June 13 Started dealing with

    PRs in December It was Fabio beforehand One solid PR policy but we stopped that in favour of dealing with the PRs
  4. Downsides Thursday, 13 June 13 Commits break originally spec validation

    was done in all ruby via tracis Git tag checks etc So many commiters meant people would update other people's pods Cocoapods updates New versions broke all specs 0.17 took a long time & Lots of broken specs Travis fails Which is ok, just have to lint manually, which I can get Keith to do Time involved Running PRs took about an hour of my time a day Now it's more like 15 Smiley Keith Fabio vs OSS Stats: Number of contributors last month 341 Number Commits 670 10 PRs a day
  5. Downsides Thursday, 13 June 13 Commits break originally spec validation

    was done in all ruby via tracis Git tag checks etc So many commiters meant people would update other people's pods Cocoapods updates New versions broke all specs 0.17 took a long time & Lots of broken specs Travis fails Which is ok, just have to lint manually, which I can get Keith to do Time involved Running PRs took about an hour of my time a day Now it's more like 15 Smiley Keith Fabio vs OSS Stats: Number of contributors last month 341 Number Commits 670 10 PRs a day
  6. function randomMergeMessage() { var message = [ "[name] = [nice_word],

    [thanks_word].", "Nice PR [name] - [thanks_word].", "[nice_word] [name] - [thanks_word].", "Very [nice_word] [thanks_word] for the PR!", "[nice_word]! [thanks_word] [name].", "[thanks_word] [name].", "Looks [nice_word] [thanks_word] [name]."] return { title: "", comment: message.random(), close: true, merge:true} } // Add the thanks / nice / [name] to a comment function parseMessage(message) { var thanks = ["thanks", "thanks a lot", "cool work", "nice work"].random() var nice = ["awesome", "cool", "brilliant", "beautiful", "great", "good"].random() message = message.replace("[name]", "@" + authorName) message = message.replace("[nice_word]", nice) message = message.replace("[thanks_word]", thanks) return message.sentenceCase() } Thursday, 13 June 13 Commits break originally spec validation was done in all ruby via tracis Git tag checks etc So many commiters meant people would update other people's pods Cocoapods updates New versions broke all specs 0.17 took a long time & Lots of broken specs Travis fails Which is ok, just have to lint manually, which I can get Keith to do Time involved Running PRs took about an hour of my time a day Now it's more like 15 Smiley Keith Fabio vs OSS Stats: Number of contributors last month 341 Number Commits 670 10 PRs a day
  7. Why Thursday, 13 June 13 * Documentation is sparse *

    Appledoc is not installed by default * No ability to view older version documentation * Most searches for framework info hit stack overflow * Difficult to get perspective on usage in real world * Obj-C now has a package manager * Appledoc vs Doxygen
  8. What? Thursday, 13 June 13 * Documents ~3000 objc libraries

    - 1250 seperate libraries * Merges iOS/Mac libraries if seperate * Xcode support * Dash support * Support Apple Documentation ( iOS only ATM ) * WWDC videos * Provide support for past releases * Fast fuzzy-string search * Takes READMEs from github projects * Provides usage context by search with github's code search * Easy to parse URLs, e.g. http://cocoadocs.org?q=wwdc
  9. How? Thursday, 13 June 13 * currently a multi-class Ruby

    app * Barely maintainable * So was cocoapods * Lots of potential to modularize architecture
  10. Next? Thursday, 13 June 13 A dash-like site for all

    objc libraries API Diffs pre version / class CocoaDocs as a gem Allow people to run their own CocoaDocs on a private repo