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

Milestoner

 Milestoner

Learn how Milestoner can help automate your project releases and communicate changes to stakeholders in addition to understanding the underpinnings to Git tags, semantic versioning, and XDG configurations.

Brooke Kuhlmann

January 11, 2023
Tweet

More Decks by Brooke Kuhlmann

Other Decks in Programming

Transcript

  1. Milestoner
    Presented by Brooke Kuhlmann

    View full-size slide

  2. Overview
    🏛 Architecture
    📚 Terminology
    🔥 Problem
    🎉 Solution
    📖 Setup
    ⚡ Usage
    ⚙ Con
    fi
    guration
    💎 Dependencies
    ➡ Next Actions

    View full-size slide

  3. Gemsmith
    Milestoner
    Versionaire
    Gitt Runcom XDG
    Architecture

    View full-size slide

  4. Gemsmith
    Milestoner
    Versionaire
    Gitt Runcom XDG
    Architecture

    View full-size slide

  5. Gemsmith
    Milestoner
    Versionaire
    Gitt Runcom XDG
    Architecture

    View full-size slide

  6. Gemsmith
    Milestoner
    Versionaire
    Gitt Runcom XDG
    Architecture

    View full-size slide

  7. Gemsmith
    Milestoner
    Versionaire
    Gitt Runcom XDG
    Architecture

    View full-size slide

  8. Gemsmith
    Milestoner
    Versionaire
    Gitt Runcom XDG
    Architecture

    View full-size slide

  9. Terminology
    https://git-scm.com

    View full-size slide

  10. Terminology
    Tags Versions Milestones
    || =
    Releases
    ||

    View full-size slide

  11. Problem
    • Lack of automation
    • Lack of communication
    • Inconsistent releases

    View full-size slide

  12. Problem
    Start

    2021-01-01

    0.1.0

    v1.1.0.a

    v2021-01-05
    Milestones

    View full-size slide

  13. Problem
    Start

    2021-01-01

    0.1.0

    v1.1.0.a

    v2021-01-05
    Milestones Release Notes
    Create skeleton

    Initial implementation

    Hack

    Fixes

    Whoops

    Wat

    OK

    Version bump

    Release this

    View full-size slide

  14. Problem
    Start

    2021-01-01

    0.1.0

    v1.1.0.a

    v2021-01-05
    Milestones Release Notes
    Create skeleton

    Initial implementation

    Hack

    Fixes

    Whoops

    Wat

    OK

    Version bump

    Release this
    🚫

    View full-size slide

  15. Solution
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  16. Solution
    Milestoner
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  17. Milestones
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  18. Milestones
    https://www.alchemists.io/projects/milestoner
    1.0.0 1.1.0 1.2.0 1.2.1 2.0.0

    View full-size slide

  19. Changes
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  20. Changes
    https://www.alchemists.io/projects/milestoner
    - Fixed

    - Added

    - Updated

    - Removed

    - Refactored

    View full-size slide

  21. Pipeline
    https://www.alchemists.io/projects/git-lint

    View full-size slide

  22. Pipeline
    https://www.alchemists.io/projects/git-lint
    Git

    View full-size slide

  23. Pipeline
    Git Lint
    https://www.alchemists.io/projects/git-lint
    Git

    View full-size slide

  24. Pipeline
    Milestoner
    Git Lint
    https://www.alchemists.io/projects/git-lint
    Git

    View full-size slide

  25. Pipeline
    Milestoner
    Git Lint
    https://www.alchemists.io/projects/git-lint
    Git Deploy
    1.0.0

    View full-size slide

  26. Pipeline
    Milestoner
    Git Lint
    https://www.alchemists.io/projects/git-lint
    Git Deploy
    1.0.0

    View full-size slide

  27. https://www.alchemists.io/projects/milestoner
    Setup

    View full-size slide

  28. https://www.alchemists.io/projects/milestoner
    Setup

    View full-size slide

  29. https://www.alchemists.io/projects/milestoner
    Setup

    View full-size slide

  30. https://www.alchemists.io/projects/milestoner
    Setup
    gem install milestoner

    View full-size slide

  31. https://www.alchemists.io/projects/milestoner
    Setup
    gem install milestoner
    bundle add milestoner
    -- or --

    View full-size slide

  32. https://www.alchemists.io/projects/milestoner
    Usage

    View full-size slide

  33. https://www.alchemists.io/projects/milestoner
    Usage

    View full-size slide

  34. Usage
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  35. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  36. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  37. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  38. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  39. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  40. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  41. Usage
    milestoner
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  42. Usage
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  43. Usage
    milestoner --status
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  44. Usage
    milestoner --status
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  45. Usage
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  46. Usage
    milestoner --publish 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  47. Usage
    milestoner --publish 0.6.3
    $>
    Semantic Version
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  48. Usage
    milestoner --publish 0.6.3
    $>
    Semantic Version
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  49. Usage
    milestoner --publish 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  50. Usage
    milestoner --publish 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner
    git for-each-ref --sort=taggerdate \

    --color \

    --format="%(color:yellow)%(refname:short)%(color:reset)|%(taggerdate:short)|%(color:blue)%(color:bold)%(*authorname)%(color:reset)|%(subject)" \

    refs/tags | \

    column -s"|" -t

    View full-size slide

  51. Usage
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  52. Usage
    git tag --verify 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  53. Usage
    git tag --verify 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  54. Usage
    git tag --verify 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  55. Usage
    git tag --verify 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  56. Usage
    git tag --verify 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  57. Usage
    git tag --verify 0.6.3
    $>
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  58. Con
    fi
    guration
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  59. Con
    fi
    guration
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  60. Con
    fi
    guration
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  61. Con
    fi
    guration
    $HOME/.con
    fi
    g/milestoner/con
    fi
    guration.yml
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  62. Con
    fi
    guration
    :documentation:

    :format: "adoc"

    :pre
    fi
    xes:

    - Fixed

    - Added

    - Updated

    - Removed

    - Refactored

    $HOME/.con
    fi
    g/milestoner/con
    fi
    guration.yml
    https://www.alchemists.io/projects/milestoner

    View full-size slide

  63. https://www.alchemists.io/projects
    Foundational Dependencies

    View full-size slide

  64. https://www.alchemists.io/projects
    Foundational Dependencies
    Versionaire Runcom
    XDG

    View full-size slide

  65. https://www.alchemists.io/projects/versionaire
    Versionaire

    View full-size slide

  66. https://semver.org
    1.2.3
    Versionaire

    View full-size slide

  67. https://semver.org
    1.2.3
    Major Minor Patch
    Versionaire

    View full-size slide

  68. Versionaire
    https://www.alchemists.io/projects/versionaire

    View full-size slide

  69. Hash
    Versionaire
    https://www.alchemists.io/projects/versionaire

    View full-size slide

  70. Hash
    Array
    Versionaire
    https://www.alchemists.io/projects/versionaire

    View full-size slide

  71. Hash
    Array
    String
    Versionaire
    https://www.alchemists.io/projects/versionaire

    View full-size slide

  72. Versionaire
    https://www.alchemists.io/projects/versionaire

    View full-size slide

  73. Versionaire
    https://www.alchemists.io/projects/versionaire
    Whole

    Value

    Objects

    View full-size slide

  74. https://www.alchemists.io/projects/xdg

    View full-size slide

  75. https://www.alchemists.io/projects/xdg
    XDG

    View full-size slide

  76. XDG
    XDG Base Directory Speci
    fi
    cation

    (https://speci
    fi
    cations.freedesktop.org/basedir-spec/basedir-spec-latest.html)
    https://www.alchemists.io/projects/xdg

    View full-size slide

  77. XDG
    https://www.alchemists.io/projects/xdg

    View full-size slide

  78. XDG
    Cache

    $HOME/.cache/milestoner/*.*
    Con
    fi
    g

    $HOME/.con
    fi
    g/milestoner/con
    fi
    guration.yml
    Data

    $HOME/local/share/milestoner/*.*
    Runtime

    (application speci
    fi
    c)
    GLOBAL

    ($HOME)
    https://www.alchemists.io/projects/xdg

    View full-size slide

  79. https://www.alchemists.io/projects/runcom

    View full-size slide

  80. https://www.alchemists.io/projects/runcom
    Runcom

    View full-size slide

  81. Runcom
    https://www.alchemists.io/projects/runcom

    View full-size slide

  82. Runcom
    https://www.alchemists.io/projects/runcom

    View full-size slide

  83. Runcom
    Cache

    /.cache/milestoner/*.*
    Con
    fi
    g

    /.con
    fi
    g/milestoner/con
    fi
    guration.yml
    Data

    /local/share/milestoner/*.*
    Runtime

    (application speci
    fi
    c)
    LOCAL

    https://www.alchemists.io/projects/runcom

    View full-size slide

  84. Runcom
    https://www.alchemists.io/projects/runcom

    View full-size slide

  85. Runcom
    Con
    fi
    g

    /.con
    fi
    g/milestoner/con
    fi
    guration.yml
    Con
    fi
    g

    $HOME/.con
    fi
    g/milestoner/con
    fi
    guration.yml
    LOCAL
    GLOBAL
    https://www.alchemists.io/projects/runcom

    View full-size slide

  86. Next Actions

    View full-size slide

  87. Next Actions

    View full-size slide

  88. Next Actions

    View full-size slide

  89. Next Actions
    • Include commit message bodies.

    View full-size slide

  90. Next Actions
    • Include commit message bodies.
    • Support formats other than Markdown.

    View full-size slide

  91. Next Actions
    • Include commit message bodies.
    • Support formats other than Markdown.
    • Standardize milestone deployment.

    View full-size slide

  92. 🙇
    Thanks
    https://www.alchemists.io

    View full-size slide