ATech.Ring.DotNet.Cli 4.0.1-alpha.3

This is a prerelease version of ATech.Ring.DotNet.Cli.
There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global ATech.Ring.DotNet.Cli --version 4.0.1-alpha.3
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ATech.Ring.DotNet.Cli --version 4.0.1-alpha.3
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ATech.Ring.DotNet.Cli&version=4.0.1-alpha.3&prerelease
                    
nuke :add-package ATech.Ring.DotNet.Cli --version 4.0.1-alpha.3
                    

Ring Build Status NuGet Badge

Meta-orchestrator for developers (cross-platform)

Ring brings order into the messy world of developing and debugging a cloud-ready microservice system side by side with maintaining and migrating legacy ones where you may have many different types of services (ASP.NET Core, Topshelf, WCF, ...) hosted in many different ways (Kubernetes, Docker, IIS Express, WindowsService, Exe) and scattered across many solutions and repositories.

What is it?

Ring consists of the following parts:

How it works

Ring groups apps into workspaces. Workspaces are defined in TOML files. Workspaces are composed from apps and other workspaces. A workspace can be loaded and started. Ring periodically runs a health check for every app, tries restarting the unhealthy ones, and reports the dead ones. Ring also exposes a web socket interface. Visual Studio extensions use it mainly for visualizing workspace/apps states, turning services off/on for build/debugging if they're a part of the currently loaded project/solution.

Basic facts

  • You can run multiple instances of ring (serving different independent workspaces)
  • There can be multiple clients (VS/VS Code extensions) interacting with a Ring instance at a time although mostly you'd have just one
  • Ring is meant to keep your workspace running even if you quit Visual Studio
  • You can also run Ring in a stand-alone mode which just keeps your workspace running
  • Ring exposes a web socket interface on port 7999

Supported runnables

  • kustomize - Kubernetes apps managed by Kustomize
  • dockercompose - docker-compose files
  • aspnetcore - .NET Core apps running in console (like ASP.NET Core in Kestrel)
  • proc - arbitrary native processes

Windows-only:

  • iisxcore - ASP.NET Core apps in IIS Express
  • iisexpress - WCF and other .NET Framework services hosted in IIS Express
  • netexe - full .NET Framework console apps (like TopShelf)

Installation

Ring dotnet tool

dotnet tool install --global ATech.Ring.DotNet.Cli --version '4.0.0-alpha.*'

Visual Studio Extension

Make sure you installed the dotnet tool first.

Download here ring! for Visual Studio

Visual Studio Code Extension

Download an early preview

Troubleshooting

If ring does not work as expected you can use --debug or -d switch to enable a debug level output.

ring run -w .\path\to\your\workspace.toml -d

CLI commands

  • run - runs a specified workspace in a stand-alone mode.
  • headless - starts and awaits clients (VS Code / VS extension) connections. Once connected a client can load a workspace and interact with it.
  • clone - loads a workspace and clones configured repos for each runnable. The runnables must have the sshRepoUrl parameter configured otherwise they'll be skipped.
  • config-* commands - more info here - configuration files.

Vocabulary

  • app (aka runnable - an application/service/process ring manages.
  • workspace - a logical grouping of apps defined in TOML file(s). Workspaces can be composed of other workspaces using the import tag. Ring can only run a single workspace at a time.

Example workspace

# your workspace.toml
[[kustomize]]
path = "your/app"

[[dockercompose]]
path = "app/2"

[[import]]
path = "relative/path/to/your/workspace.toml"

Authoring workspaces

Authoring workspaces docs

Release notes

Here

Working with the docs

Serve locally:

docker run -p 8089:8089 --rm -it -v ~/.ssh:/root/.ssh -v ${PWD}:/docs squidfunk/mkdocs-material serve -a 0.0.0.0:8089

Publish

docker run --rm -it -v ~/.ssh:/root/.ssh -v ${PWD}:/docs squidfunk/mkdocs-material gh-deploy 
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
5.1.0-alpha.1 125 1/16/2024
5.0.3 241 10/2/2024
5.0.2 120 9/30/2024
5.0.1 134 9/30/2024
5.0.0 312 1/14/2024
5.0.0-alpha.1 89 1/13/2024
4.3.0 222 1/12/2024
4.3.0-alpha.2 92 1/12/2024
4.3.0-alpha.1 83 1/12/2024
4.2.0 291 12/8/2023
4.1.0 218 12/8/2023
4.1.0-alpha.2 89 12/6/2023
4.1.0-alpha.1 88 12/6/2023
4.0.1 226 12/6/2023
4.0.1-alpha.4 89 12/5/2023
4.0.1-alpha.3 89 12/5/2023
4.0.1-alpha.2 98 12/4/2023
4.0.1-alpha.1 96 12/4/2023
4.0.0 237 6/23/2023
4.0.0-beta.4 135 5/7/2023
4.0.0-beta.3 124 5/3/2023
4.0.0-beta.2 124 5/3/2023
4.0.0-beta.1 129 3/7/2023
4.0.0-alpha.9 137 11/1/2022
4.0.0-alpha.8 150 11/1/2022
4.0.0-alpha.7 154 10/28/2022
4.0.0-alpha.6 148 10/28/2022
4.0.0-alpha.5 155 9/1/2022
4.0.0-alpha.4 147 8/23/2022
4.0.0-alpha.3 152 8/23/2022
4.0.0-alpha.2 139 8/23/2022
4.0.0-alpha.1 157 8/22/2022
3.2.0-alpha.2 153 8/19/2022
3.2.0-alpha.1 165 8/19/2022
3.1.2 542 1/3/2022
3.1.2-alpha.4 197 1/3/2022
3.1.2-alpha.3 188 1/3/2022
3.1.2-alpha.2 184 1/3/2022
3.1.2-alpha.1 189 1/3/2022
3.1.1 379 12/31/2021
3.1.1-alpha.1 181 12/31/2021
3.1.0 362 12/30/2021
3.0.1-alpha.1 194 12/13/2021
3.0.0-alpha.1 1,123 11/28/2021
2.5.1 473 11/11/2021
2.5.0 422 11/11/2021
2.5.0-alpha.2 262 9/12/2021
2.5.0-alpha.1 238 9/10/2021
2.4.4 480 9/9/2021
2.4.4-pre.3 219 2/26/2021
2.4.4-pre.2 234 2/5/2021
2.4.4-pre.1 260 2/3/2021
2.4.3 562 1/25/2021
2.4.3-pre.1 257 1/15/2021
2.4.2 607 1/10/2021
2.4.2-pre.10 365 11/24/2020
2.4.2-pre.9 278 11/23/2020
2.4.2-pre.8 291 11/17/2020
2.4.2-pre.7 306 11/17/2020
2.4.2-pre.6 289 11/17/2020
2.4.2-pre.5 302 11/16/2020
2.4.2-pre.4 315 11/12/2020
2.4.2-pre.3 331 10/30/2020
2.4.2-pre.2 278 10/29/2020
2.4.2-pre.1 306 10/26/2020
2.4.1 575 10/13/2020
2.4.1-pre.6 317 10/5/2020
2.4.1-pre.5 344 10/5/2020
2.4.1-pre.4 317 10/3/2020
2.4.1-pre.3 308 10/3/2020
2.4.1-pre.1 346 10/3/2020
2.4.0 655 9/22/2020
2.4.0-pre.12 353 9/22/2020
2.4.0-pre.11 358 9/17/2020
2.4.0-pre.10 378 9/16/2020
2.4.0-pre.9 379 9/16/2020
2.4.0-pre.8 388 9/9/2020
2.4.0-pre.7 363 9/2/2020
2.4.0-pre.6 323 9/1/2020
2.4.0-pre.5 311 8/28/2020
2.4.0-pre.4 307 8/27/2020
2.4.0-pre.3 308 8/27/2020
2.4.0-pre.2 311 8/27/2020
2.4.0-pre.1 394 7/9/2020
2.3.5-pre.1 305 8/28/2020
2.3.4 712 6/11/2020
2.3.4-pre 608 4/8/2020
2.3.3-pre 540 4/2/2020
2.3.2-pre 590 3/20/2020
2.3.1-pre 713 3/20/2020 2.3.1-pre is deprecated because it has critical bugs.
2.3.0-pre 702 3/20/2020 2.3.0-pre is deprecated because it has critical bugs.
2.2.1-pre 565 1/29/2020
2.2.0-pre 565 1/27/2020
2.1.0-pre 597 1/17/2020
2.0.0 847 9/25/2019
1.1.10 802 9/22/2019
1.1.9 752 9/17/2019
1.1.8 778 9/17/2019
1.1.7 773 9/17/2019
1.1.5-beta 2,210 7/22/2019
1.1.4-beta 701 7/9/2019
1.1.3-beta 661 7/8/2019
1.1.2-beta 693 6/12/2019
1.1.1-beta 757 6/7/2019
1.1.0-beta 690 6/3/2019
1.0.0-beta 729 5/20/2019