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

Automate your changelogs! Release Drafter

Automate your changelogs! Release Drafter

Quick introduction to Release Drafter and to automatic changelog generation from the DevOops 2019 conference. The talk summarizes our experience in the Jenkins projects and provides some tips and tricks.

See more documentation here: https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.adoc

Oleg Nenashev

October 29, 2019
Tweet

More Decks by Oleg Nenashev

Other Decks in Technology

Transcript

  1. © 2019 CloudBees, Inc. All Rights Reserved.
    Automate your changelogs! Release Drafter
    Oleg Nenashev (@oleg_nenashev)
    CloudBees / Jenkins Project
    St. Petersburg, Oct 29, 2019

    View Slide

  2. © 2019 CloudBees, Inc. All Rights Reserved.
    > whoami
    2
    @oleg_nenashev
    oleg-nenashev
    • Based in Neuchatel, Switzerland
    • Principal SW Engineer, CloudBees
    • Jenkins core maintainer

    View Slide

  3. © 2019 CloudBees, Inc. All Rights Reserved.
    Do you write changelogs?
    3

    View Slide

  4. © 2019 CloudBees, Inc. All Rights Reserved.
    But your users need them!
    4

    View Slide

  5. © 2019 CloudBees, Inc. All Rights Reserved.
    ● jenkins.io
    Changelogs in Jenkins
    5

    View Slide

  6. © 2019 CloudBees, Inc. All Rights Reserved.
    ● jenkins.io
    ● Jenkins Wiki
    Changelogs in Jenkins
    6

    View Slide

  7. © 2019 CloudBees, Inc. All Rights Reserved.
    ● jenkins.io
    ● Jenkins Wiki
    ● CHANGELOG.md in repo
    ● GitHub Releases
    ● Changelogs elsewhere
    ● No changelogs
    Changelogs in Jenkins
    7

    View Slide

  8. © 2019 CloudBees, Inc. All Rights Reserved.
    8

    View Slide

  9. © 2019 CloudBees, Inc. All Rights Reserved.
    ● jenkins.io
    ● Jenkins Wiki
    ● CHANGELOG.md on GitHub
    ● GitHub Releases
    ● Changelogs elsewhere
    ● No changelogs
    At Jenkins…
    9

    View Slide

  10. © 2019 CloudBees, Inc. All Rights Reserved.
    10

    View Slide

  11. © 2019 CloudBees, Inc. All Rights Reserved.
    11
    • Created by Tim Lucas, @toolmantim
    • Open-source: https://github.com/toolmantim/release-drafter
    • Based on the Probot framework
    • GitHub App: https://github.com/apps/release-drafter
    • GitHub Actions Step

    View Slide

  12. © 2019 CloudBees, Inc. All Rights Reserved.
    Release Drafter – Powered by pull request titles and labels
    12

    View Slide

  13. © 2019 CloudBees, Inc. All Rights Reserved.
    ● GitHub Release Drafts
    ● Markdown format
    ● Configuration as Code
    Release Drafter
    13

    View Slide

  14. © 2019 CloudBees, Inc. All Rights Reserved.
    .github/release-drafter.yml
    Minimal configuration
    14

    View Slide

  15. © 2019 CloudBees, Inc. All Rights Reserved.
    Editable Markdown layout
    15
    // Injecting YAML changelogs into Markdown

    View Slide

  16. © 2019 CloudBees, Inc. All Rights Reserved.
    Categories, powered by labels
    16

    View Slide

  17. © 2019 CloudBees, Inc. All Rights Reserved.
    Replacers
    17
    Hyperlinks
    Acronyms

    View Slide

  18. © 2019 CloudBees, Inc. All Rights Reserved.
    ● Uses Probot Config engine, powered by deepmerge
    ● Global config repo: https://github.com/jenkinsci/.github
    ● Minimal configuration in repositories
    Inheritance!
    18

    View Slide

  19. © 2019 CloudBees, Inc. All Rights Reserved.
    19

    View Slide

  20. © 2019 CloudBees, Inc. All Rights Reserved.
    20

    View Slide

  21. © 2019 CloudBees, Inc. All Rights Reserved.
    4 months with Release Drafter
    ● Almost all development tools use Release Drafter
    ● 100+ plugins use Release drafter
    ● Experienced several bugs
    ● 4 contributors to Release Drafter from Jenkins
    21

    View Slide

  22. © 2019 CloudBees, Inc. All Rights Reserved.
    Release Drafter adoption in Jenkins
    22

    View Slide

  23. © 2019 CloudBees, Inc. All Rights Reserved.
    ● Move to GitHub actions
    ● Integration with plugin update
    centers and marketplaces
    ● Aggregated changelogs for
    plugin bundles
    Our plan
    23

    View Slide

  24. © 2019 CloudBees, Inc. All Rights Reserved.
    Release Drafter Docs
    toolmantim/release-drafter
    Our docs
    jenkinsci/.github/blob/master/.github/release-drafter.adoc
    Our global configuration file
    jenkinsci/.github/blob/master/.github/release-drafter.yml
    Jenkins Documentation SIG
    https://jenkins.io/sigs/docs/
    https://gitter.im/jenkinsci/docs
    Links on GitHub
    24

    View Slide

  25. © 2019 CloudBees, Inc. All Rights Reserved.
    Contacts:
    E-mail: [email protected]
    GitHub: oleg-nenashev
    Twitter: @oleg_nenashev
    QUESTIONS?
    25

    View Slide