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. CocoaPods Specs
    Thursday, 13 June 13

    View full-size slide

  2. The Repo
    Thursday, 13 June 13
    Stats:
    Number of contributors last month 341
    Number Commits 670
    10 PRs a day`

    View full-size slide

  3. 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

    View full-size slide

  4. 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

    View full-size slide

  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

    View full-size slide

  6. 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

    View full-size slide

  7. 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

    View full-size slide

  8. CocoaDocs
    Thursday, 13 June 13

    View full-size slide

  9. 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

    View full-size slide

  10. 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

    View full-size slide

  11. How?
    Thursday, 13 June 13
    * currently a multi-class Ruby app
    * Barely maintainable
    * So was cocoapods
    * Lots of potential to modularize architecture

    View full-size slide

  12. 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

    View full-size slide