diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 38bd0ea..8f3a438 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "cake.tool": { - "version": "0.38.4", + "version": "3.1.0", "commands": [ "dotnet-cake" ] diff --git a/build.cake b/build.cake index 6df9ee1..92ff14f 100644 --- a/build.cake +++ b/build.cake @@ -1,6 +1,5 @@ -#module nuget:?package=Cake.DotNetTool.Module&version=0.4.0 -#tool dotnet:?package=GitVersion.Tool&version=5.3.7 -#tool dotnet:?package=GitReleaseManager.Tool&version=0.11.0 +#tool dotnet:?package=GitVersion.Tool&version=5.12.0 +#tool dotnet:?package=GitReleaseManager.Tool&version=0.15.0 var target = Argument("target", "Default"); GitVersion assertedVersions; diff --git a/build.ps1 b/build.ps1 index dc36786..ee52cd1 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,7 +5,7 @@ $DotNetUnixInstallerUri = 'https://dot.net/v1/dotnet-install.sh' $DotNetChannel = 'LTS' $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent -[string] $DotNetVersion = '3.1.402' +[string] $DotNetVersion = '6.0.414' ########################################################################### # INSTALL .NET CORE CLI diff --git a/build.sh b/build.sh index d1a1e1b..b055b51 100755 --- a/build.sh +++ b/build.sh @@ -2,7 +2,7 @@ # Define varibles SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) -DOTNET_VERSION="3.1.402" +DOTNET_VERSION="6.0.414" ########################################################################### # INSTALL .NET CORE CLI diff --git a/demos/gitreleasemanager.md b/demos/gitreleasemanager.md index 2529828..07ed577 100644 --- a/demos/gitreleasemanager.md +++ b/demos/gitreleasemanager.md @@ -10,19 +10,19 @@ * Switch to master branch `git checkout master` * Run the Cake build script `./build.ps1` * Show that GitVersion is being run to assert the version number -* Run `./build.ps1 -target CreateReleaseNotes` +* Run `./build.ps1 --target=CreateReleaseNotes` * Switch back to browser, and refresh releases section * Show draft release ### Demo 2 - Attaching artifact * Switch back to browser and show there are no release artifacts -* Run `./build.ps1 -target AttachArtifact` +* Run `./build.ps1 --target=AttachArtifact` * Switch back to browser and show attachment ### Demo 3 - Close milestone * In the browser, switch to milestone view, and show that it is still open -* Run `./build.ps1 -target CloseMilestone` +* Run `./build.ps1 --target=CloseMilestone` * Switch back to browser and show that milestone is now closed \ No newline at end of file diff --git a/presentation.md b/presentation.md index 8b6d98c..5c613b6 100644 --- a/presentation.md +++ b/presentation.md @@ -2,7 +2,7 @@ marp: true size: 16:9 theme: gaia -_class: lead +class: lead backgroundColor: #fff backgroundImage: url('https://marp.app/assets/hero-background.svg') footer: @gep13 @@ -13,16 +13,27 @@ style: | + # **Let's Ship This Thing! :rocket:** By: Gary Ewan Park + --- - + # Slides https://gep13.me/ShipItSlides @@ -33,23 +44,74 @@ https://gep13.me/ShipItSlides https://gep13.me/ShipItCode + + --- + # Agenda ---- + +* What is an issue? * What is Semantic Versioning? * What branching strategy should I use? * What is GitVersion? -* Why do I need GitVersion? * What is GitReleaseManager? -* Putting it all together... + + + +--- + +![bg left:33%](https://fakeimg.pl/800x600/000/fff/?text=Q) + +#### What is an +

issue

+ +--- + + + +## Demo + + + +--- + + + +![bg left:33%](https://fakeimg.pl/800x600/add8e6/fff/?text=A) + +#### ...it is the starting point for all work undertaken in a product release. --- + ![bg left:33%](https://fakeimg.pl/800x600/000/fff/?text=Q) #### What is

Semantic Versioning

--- + @@ -58,11 +120,17 @@ header: Q. What is Semantic Versioning? #### ...a simple set of rules and requirements that dictate how version numbers are assigned and incremented. These rules are based on, but not necessarily limited to, pre-existing widespread common practices in use in both closed and open-source software. + + --- + ## The Rules Given a version number MAJOR.MINOR.PATCH, increment the: @@ -73,17 +141,64 @@ Given a version number MAJOR.MINOR.PATCH, increment the: Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format. + + --- ## Examples -- 0.1.0 -- 0.3.13 -- 1.0.0 -- 0.2.0-unstable3 -- 0.2.0-unstable.3+Branch.develop.Sha.e6eb071cd30974b80d7e237b85e7729a1d791e1e +* 0.1.0 +* 0.3.13 +* 1.0.0 +* 0.2.0-unstable3 +* 0.2.0-unstable.3+Branch.develop.Sha.e6eb071cd30974b80d7e237b85e7729a1d791e1e + + + +--- + +![bg left:33%](https://fakeimg.pl/800x600/000/fff/?text=Q) + +#### How do you know +

when to bump

+ +### a version number + +--- + +# Tools + +* [PublicApiGenerator](https://www.nuget.org/packages/PublicApiGenerator) +* [Microsoft.CodeAnalysis.PublicApiAnalyzers](https://www.nuget.org/packages/Microsoft.CodeAnalysis.PublicApiAnalyzers) + + --- + + + +![bg left:33%](https://fakeimg.pl/800x600/add8e6/fff/?text=A) + +##### There is no quick answer 😿 + +--- + + + ![bg left:33%](https://fakeimg.pl/800x600/000/fff/?text=Q) #### What @@ -91,44 +206,107 @@ Additional labels for pre-release and build metadata are available as extensions ### should I use + + --- # GitHub Flow + + --- +##### Create a branch + ![](./assets/images/githubflow.png) --- + +##### Add commits + +![](./assets/images/githubflow_2.png) + +--- + +##### Open a Pull Request + +![](./assets/images/githubflow_3.png) + +--- + +##### Discuss and review your code + +![](./assets/images/githubflow_4.png) + +--- + +##### Deploy + +![](./assets/images/githubflow_5.png) + +--- + +##### Merge + +![](./assets/images/githubflow_6.png) + +--- + # GitFlow + + --- ![bg 40%](./assets/images/gitflow.png) --- + +![bg 15%](./assets/images/gitflow_2.png) + + + +--- + ![bg left:33%](https://fakeimg.pl/800x600/add8e6/fff/?text=A) -#### It depends! +#### It depends! 🤷 + + --- + @@ -148,17 +326,32 @@ header: Q. What is GitVersion? #### ...a tool to help you achieve Semantic Versioning on your project. + + --- -## Ok, but really what is it? +## Demo --- + ![bg left:33%](https://fakeimg.pl/800x600/000/fff/?text=Q) @@ -178,10 +371,18 @@ header: "" ![bg 75%](./assets/images/teamcitysetting.png) + + --- ## ? + + --- -## Ok, but really what is it? - --- -## Putting is all together... - ---- + ## Demo --- @@ -236,6 +438,14 @@ _backgroundColor: ## Questions --- + + + ![bg left:40%](./assets/images/gary-avatar.png) ## Gary Ewan Park @@ -247,14 +457,13 @@ _backgroundColor: - GitHub: [gep13](https://github.com/gep13) --- + ## Learn More - GitVersion Documentation - https://gitversion.net/docs/ - GitReleaseManager Documentation - https://gittools.github.io/GitReleaseManager/docs/ -- .Net Rocks Episode with Jake Ginnivan - - https://www.dotnetrocks.com/default.aspx?showNum=1178 - Git Branching Strategies - https://www.atlassian.com/git/tutorials/comparing-workflows - GitFlow diff --git a/setup.md b/setup.md index 7e3b364..cc28e9a 100644 --- a/setup.md +++ b/setup.md @@ -1,7 +1,11 @@ -* Open Visual Studio Code pointing at GitHub Repo -* Open markdown files on Surface for Demos +* Make sure that all issues are open on the GitHub repository + * Make sure that all close issue comments are removed +* Make sure that the milestone is open +* Make sure that the `GITHUB_TOKEN_DEMO` environment variable has been created +* Make sure that draft release on GitHub has been deleted +* Open Visual Studio Code, or github.dev, pointing at GitHub Repo +* Open markdown files on iPad for Demos * Turn off notifications -* Open zoomit +* Open zoomit/setup Mac accessibility option - https://support.apple.com/en-gb/guide/mac-help/mchl779716b8/mac * Open presentation -* Start speaker clock -* Put phone into flight mode \ No newline at end of file +* Put phone/laptop into flight mode \ No newline at end of file