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

Groovy's release process — Devoxx 2015

Groovy's release process — Devoxx 2015

The release process of the Groovy programming language

Guillaume Laforge

April 09, 2015
Tweet

More Decks by Guillaume Laforge

Other Decks in Technology

Transcript

  1. #groovyprocess @jfrog
    Groovy’s release process
    Guillaume Laforge
    Cédric Champeau
    Frédéric Simon
    @glaforge | @cedricchampeau | @freddy33
    Restlet | Gradle | JFrog

    View full-size slide

  2. Beware, Frogs may
    be involved in this
    presentation!

    View full-size slide

  3. The Good, the
    Bad, the Ugly of
    the Groovy
    release process

    View full-size slide

  4. How we did it before,
    What we’re doing now,
    Where we’re going!

    View full-size slide

  5. @YourTwitterHandle
    #DVXFR14{session hashtag}
    #groovyprocess @jfrog
    Hosted at…

    View full-size slide

  6. Trendy
    infrastructure!

    View full-size slide

  7. Sponsored by
    JetBrains
    themselves!

    View full-size slide

  8. #groovyprocess @jfrog
    Web
    • Codehaus provides WebDAV access 

    to push artifacts & documentation
    • Listing / changing directory can take up to 30 seconds
    • Uploading hundreds of JavaDoc files used to take 1+ hour
    • Stale lock files

    View full-size slide

  9. #groovyprocess @jfrog
    Web
    • Codehaus provides WebDAV access 

    to push artifacts & documentation
    • Listing / changing directory can take up to 30 seconds
    • Uploading hundreds of JavaDoc files used to take 1+ hour
    • Stale lock files
    When it
    actually
    works!

    View full-size slide

  10. Launch a
    release…

    View full-size slide

  11. Launch a
    release…
    And then,
    you pray!

    View full-size slide

  12. Same player
    shoots again!

    View full-size slide

  13. What could
    possibly go
    wrong?

    View full-size slide

  14. A very
    manual
    process

    View full-size slide

  15. Build / release from a
    developer’s machine

    View full-size slide

  16. Build / release from a
    developer’s machine
    Local or
    non-committed
    changes

    View full-size slide

  17. Build / release from a
    developer’s machine
    Local or
    non-committed
    changes
    Relieance on
    local repos

    View full-size slide

  18. Build / release from a
    developer’s machine
    Local or
    non-committed
    changes
    Relieance on
    local repos
    Manual tagging

    View full-size slide

  19. Build / release from a
    developer’s machine
    Local or
    non-committed
    changes
    Relieance on
    local repos
    Manual tagging
    Manual update of
    version information
    in properties files

    View full-size slide

  20. Build / release from a
    developer’s machine
    Local or
    non-committed
    changes
    Relieance on
    local repos
    Manual tagging
    Manual update of
    version information
    in properties files
    Manual VCS
    operations

    View full-size slide

  21. A release could
    take a full day

    View full-size slide

  22. A release could
    take a full day
    The best way to
    learn patience

    View full-size slide

  23. Time to automate
    things a bit!

    View full-size slide

  24. @YourTwitterHandle
    @YourTwitterHandle
    #groovyprocess @jfrog
    Now

    View full-size slide

  25. Enters
    JetBrains
    TeamCity!

    View full-size slide

  26. Enters
    JetBrains
    TeamCity!
    On our own
    server at

    View full-size slide

  27. Enters
    JetBrains
    TeamCity!
    On our own
    server at
    Build and test Groovy across:
    — different branches
    — different JDK versions (6, 7, 8, 9)
    — different flavours (normal/indy)
    — « joint builds »

    View full-size slide

  28. Enters
    JetBrains
    TeamCity!
    On our own
    server at
    Build and test Groovy across:
    — different branches
    — different JDK versions (6, 7, 8, 9)
    — different flavours (normal/indy)
    — « joint builds »
    Builds Pull
    Requests too

    View full-size slide

  29. New website built
    with Gradle and
    Groovy templates

    View full-size slide

  30. New website built
    with Gradle and
    Groovy templates

    View full-size slide

  31. New website built
    with Gradle and
    Groovy templates
    Built by Gradle
    with Asciidoctor

    View full-size slide

  32. New website built
    with Gradle and
    Groovy templates
    Built by Gradle
    with Asciidoctor
    All code samples
    are tested!

    View full-size slide

  33. And so, 

    it was cool!

    View full-size slide

  34. Snapshots pushed
    on commits

    View full-size slide

  35. Snapshots pushed
    on commits
    Releases signed & deployed
    on Bintray JCenter

    View full-size slide

  36. Snapshots pushed
    on commits
    Releases signed & deployed
    on Bintray JCenter
    Synced with Maven Central

    View full-size slide

  37. Snapshots pushed
    on commits
    Releases signed & deployed
    on Bintray JCenter
    Synced with Maven Central
    Website & docs uploaded

    View full-size slide

  38. « One-click »
    releases!

    View full-size slide

  39. « One-click »
    releases!
    Just need to fill 

    a form with
    version details

    View full-size slide

  40. « One-click »
    releases!
    Just need to fill 

    a form with
    version details
    TeamCity
    Artifactory
    plugin

    View full-size slide

  41. Pretty Groovy,
    isn’t it?

    View full-size slide

  42. @YourTwitterHandle
    @YourTwitterHandle
    #groovyprocess @jfrog
    What’s next?

    View full-size slide

  43. Codehaus is closing,
    Pivotal is firing us,
    time to move!

    View full-size slide

  44. And now, a
    real frog on
    stage!

    View full-size slide

  45. @YourTwitterHandle
    @YourTwitterHandle
    #groovyprocess @jfrog
    Artifactory & Bintray

    View full-size slide

  46. #groovyprocess @jfrog
    JFrog Releases in 2014
    •Bintray: 400
    •Artifactory Online: 27
    •Artifactory: 11

    View full-size slide

  47. #groovyprocess @jfrog
    Why?

    View full-size slide

  48. #groovyprocess @jfrog
    Why?

    View full-size slide

  49. #groovyprocess @jfrog
    Growing Ecosystem

    View full-size slide

  50. #groovyprocess @jfrog
    Growing Ecosystem

    View full-size slide

  51. #groovyprocess @jfrog
    Growing Ecosystem

    View full-size slide

  52. #groovyprocess @jfrog
    Bintray Growing Community

    View full-size slide

  53. #groovyprocess @jfrog
    Bintray Growing Community

    View full-size slide

  54. @YourTwitterHandle
    @YourTwitterHandle
    #groovyprocess @jfrog
    Summary

    View full-size slide

  55. Our
    winning
    combo!

    View full-size slide

  56. @YourTwitterHandle
    @YourTwitterHandle
    #groovyprocess @jfrog
    Thanks for your attention

    View full-size slide

  57. @YourTwitterHandle
    @YourTwitterHandle
    #groovyprocess @jfrog
    Q&A

    View full-size slide

  58. #groovyprocess @jfrog
    Picture credits
    http://i.ytimg.com/vi/1jpdj7yEHbc/maxresdefault.jpg
    http://warwickexposed.co.uk/wp-content/uploads/2012/05/Memory-Lane.jpg
    http://img1.wikia.nocookie.net/__cb20130914153219/onceuponatime8042/images/9/9d/InfoboxPlainTitle.jpg
    http://wundergroundmusic.com/wp-content/uploads/2014/04/hipster_0.jpg
    http://vectorblog.org/wp-content/uploads/2012/06/Pain-knuckle-tattoo_stevendepolo_Flickr.jpg
    https://cinemadroide.files.wordpress.com/2014/06/edge_of_tomorrow_2014-wide1.jpg
    http://www.thegospelcoalition.org/blogs/trevinwax/files/2015/02/open-hands.jpg
    http://goparallel.sourceforge.net/wp-content/uploads/2013/01/Untitled.png
    http://pbs.twimg.com/media/B9hYSr6IMAIvHDZ.png
    https://s-media-cache-ak0.pinimg.com/236x/cd/98/04/cd9804d0b3d14b6c36733b923600c79f.jpg
    http://venturebeat.com/wp-content/uploads/2012/05/linux-laptop-developers.jpg
    https://claesjohnsonmathscience.files.wordpress.com/2009/06/chaplin1.jpg
    http://wallhd.in/wp-content/uploads/2015/03/frog_wallpaper_quotes_free_hd_wallpaper_30.jpg
    http://www.clipartbest.com/cliparts/nTE/KMe/nTEKMe8TA.jpeg
    http://www.damnwallpapers.com/wp-content/uploads/2014/03/free-frog-hd-wallpaper3.jpg
    http://images.hdbackgroundpictures.com/pictureHD51ba2d6d2ab6442531.jpg
    http://walldiskpaper.com/mobilehd/cartoons-frog-wallpaper-hd/cartoons-frog-wallpaper-hd/
    http://greenfrogconsultancy.com/wp-content/uploads/2012/04/iStock_000016319131Small1.jpg
    http://wallhd.in/wp-content/uploads/2015/03/funny_frog_wallpaper_free_hd_wallpaper_32.jpg
    http://www.mmouse.ru/wp-content/uploads/mmouse-apache-warrior-paul-sachtleben.jpg
    http://www.wallpedes.com/funny-frog-wallpaper/funny-frog-place-free-wallpapers.html
    https://hdwallpapers.cat/thumbnail/funny_3d_frog_flowers_animal_abstract_and_hd-wallpaper-1712905.jpg

    View full-size slide