Nuget.org publishing flow
- Wait for dependencies to publish .... either to match version or to wait to build
- Nugetize
- Merge to main
- Release (means push to nuget.org)
- Denugetize develop (repeat)
- Windows dev box or VM
- Git command line
- Developer tools
- Ensure build machine is pointing to a known local nuget folder
- Manifest
- Clone repo (git command line)
- Switch to develop branch (git command line) 2a. Validate if main if ahead of develop and throw (Octokit)
- Create a new versioned branch off of develop (git command line)
- Remove external references (Mirid - ToDo)
- Switch to nuget references (Mirid)
- Build nugets (MSBuild) - need to build and figure out where the packages are
- Copy nugets to local nuget repo folder (copy in command line)
-
Push new versioned branch to GitHub (git command line)
-
PR from versioned branch to main (git command line)
-
Tag release (including nightlies) (manual on GitHub ... maybe Octokit API)
-
bulk upload all packages to nuget.org (custom script or tooling - to investigate)
-
What runs the app
-
How do we set the version? (command line param?)
-
How do we define the scope of publishing and the order - e.g. a manifest (markdown, or json, something .... )
-
What does the manifest look like
-
What options do we need to control the build process (skip folders, etc.)
-
Release Meadow Units (trigger on main using a new release in GitHub)
- merge to main
- create a new release on GitHub and publish (kicks off workflow to publish nuget)
-
Release Meadow Logging (if needed)
- merge to main
- create a new release on GitHub and publish (kicks off workflow to publish nuget)
MQTT (if needed) ... or delete
- Release Meadow Contracts
- wait for Units and Logging nugets to publish
- nugetize develop with wildcard versions
- push to GitHub
- merge to main
- create a new release on GitHub and publish (kicks off workflow to publish nuget)
- change develop back to local refs
Release ModBus!!!
-
Release Meadow.Core
- wait for Contracts nuget to publish
- nugetize Meadow.Core
- merge develop to main
- create a new release on GitHub and publish
-
Release Meadow.F7
- wait for Meadow Core nuget to publish
- nugetize Meadow.F7
- update build scripts to latest release version
- merge develop to main
- run Meadow F7 Nuget package creation action from GitHub on main
- change develop back to local refs (Core / F7)
5b. Release Meadow.Windows 5c. Release Meadow.Simulation 5d. Release Meadow.Linux
-
Release Meadow.Foundation.Core
- wait for Meadow.Contracts to publish
- nugetize Meadow.Foundation.Core
- merge develop to main
- create a new release on GitHub and publish
-
Release Meadow.Foundation peripherals / libraries
- update build scripts level 1 & 2 to include any new or change packages (see Mirid tooling)
- update build scripts level 1 & 2 to publish using latest release version (e.g. 0.94.0)
- nugetize Meadow.Foundation peripheral driver and libs
- and nugetize Meadow.Foundation samples (f7 only ... leave local refs to drivers)
- wait for M.F. Core to publish
- run level 1 action on main
- wait for level 1 nuget packages to publish
- run level 2 action on main
- change develop to local refs
-
Release Meadow.Foundation.Grove
- wait for Meadow.Foundation packages to publish
- Release Meadow.Foundation.mikroBus
- wait for Meadow.Foundation packages to publish
- Release Meadow.Foundation.FeatherWings
- wait for Meadow.Foundation packages to publish
-
Release ProjectLab Jeugo Clima GNSS Tracker
-
Update Samples (nugetize and push to main)
- Update Meadow.Core.Samples
- Update Meadow.Project.Samples
- Update ProjectLab.Samples
-
Release new CLI
-
Release new SDK
-
Release VS on Windows extensions
-
Release VS for Mac extensions
-
Release VSCode extension