Groovy's release process — Devoxx 2015

Groovy's release process — Devoxx 2015

The release process of the Groovy programming language

137d3908243acfc30e126615d59d4e6d?s=128

Guillaume Laforge

April 09, 2015
Tweet

Transcript

  1. #groovyprocess @jfrog Groovy’s release process Guillaume Laforge Cédric Champeau Frédéric

    Simon @glaforge | @cedricchampeau | @freddy33 Restlet | Gradle | JFrog
  2. None
  3. Beware, Frogs may be involved in this presentation!

  4. None
  5. The Good, the Bad, the Ugly of the Groovy release

    process
  6. None
  7. How we did it before, What we’re doing now, Where

    we’re going!
  8. None
  9. None
  10. None
  11. @YourTwitterHandle #DVXFR14{session hashtag} #groovyprocess @jfrog Hosted at…

  12. None
  13. Trendy infrastructure!

  14. None
  15. None
  16. None
  17. None
  18. None
  19. Sponsored by JetBrains themselves!

  20. Points

  21. #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
  22. #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!
  23. None
  24. Launch a release…

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

  26. None
  27. Same player shoots again!

  28. None
  29. What could possibly go wrong?

  30. None
  31. A very manual process

  32. None
  33. Build / release from a developer’s machine

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

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

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

    changes Relieance on local repos Manual tagging
  37. 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
  38. 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
  39. None
  40. A release could take a full day

  41. A release could take a full day The best way

    to learn patience
  42. None
  43. Time to automate things a bit!

  44. @YourTwitterHandle @YourTwitterHandle #groovyprocess @jfrog Now

  45. None
  46. None
  47. Enters JetBrains TeamCity!

  48. Enters JetBrains TeamCity! On our own server at

  49. 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 »
  50. 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
  51. None
  52. New website built with Gradle and Groovy templates

  53. New website built with Gradle and Groovy templates

  54. New website built with Gradle and Groovy templates Built by

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

    Gradle with Asciidoctor All code samples are tested!
  56. None
  57. And so, 
 it was cool!

  58. None
  59. None
  60. Snapshots pushed on commits

  61. Snapshots pushed on commits Releases signed & deployed on Bintray

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

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

    JCenter Synced with Maven Central Website & docs uploaded
  64. None
  65. « One-click » releases!

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

    form with version details
  67. « One-click » releases! Just need to fill 
 a

    form with version details TeamCity Artifactory plugin
  68. None
  69. Pretty Groovy, isn’t it?

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

  71. None
  72. Codehaus is closing, Pivotal is firing us, time to move!

  73. None
  74. None
  75. None
  76. And now, a real frog on stage!

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

  78. #groovyprocess @jfrog JFrog Releases in 2014 •Bintray: 400 •Artifactory Online:

    27 •Artifactory: 11
  79. #groovyprocess @jfrog Why?

  80. #groovyprocess @jfrog Why?

  81. #groovyprocess @jfrog Growing Ecosystem

  82. #groovyprocess @jfrog Growing Ecosystem

  83. #groovyprocess @jfrog Growing Ecosystem

  84. #groovyprocess @jfrog Bintray Growing Community

  85. #groovyprocess @jfrog Bintray Growing Community

  86. @YourTwitterHandle @YourTwitterHandle #groovyprocess @jfrog Summary

  87. None
  88. Our winning combo!

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

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

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