Temporalio 0.1.0-alpha1
See the version list below for details.
dotnet add package Temporalio --version 0.1.0-alpha1
NuGet\Install-Package Temporalio -Version 0.1.0-alpha1
<PackageReference Include="Temporalio" Version="0.1.0-alpha1" />
paket add Temporalio --version 0.1.0-alpha1
#r "nuget: Temporalio, 0.1.0-alpha1"
// Install Temporalio as a Cake Addin #addin nuget:?package=Temporalio&version=0.1.0-alpha1&prerelease // Install Temporalio as a Cake Tool #tool nuget:?package=Temporalio&version=0.1.0-alpha1&prerelease
Temporal .NET SDK
See:
- NuGet Package (TODO)
- Application Development Guide (TODO)
- API Documentation
- Samples (TODO)
⚠️ UNDER ACTIVE DEVELOPMENT
(for the previous .NET SDK repo, see https://github.com/temporalio/experiment-dotnet)
Quick Start
TODO
Usage
TODO
Development
Build
With dotnet
installed with all needed frameworks and Rust installed (i.e.
cargo
on the PATH
), run:
dotnet build
Or for release:
dotnet build --configuration Release
Code formatting
This project uses StyleCop analyzers with some overrides in .editorconfig
. To format, run:
dotnet format
Can also run with --verify-no-changes
to ensure it is formatted.
VisualStudio Code
When developing in vscode, the following JSON settings will enable StyleCop analyzers in:
"omnisharp.enableEditorConfigSupport": true,
"omnisharp.enableRoslynAnalyzers": true
Testing
Run:
dotnet test
Can add options like:
--logger "console;verbosity=detailed"
to show logs- TODO(cretz): This doesn't show Rust stdout. How do I do that?
--filter "FullyQualifiedName=Temporalio.Tests.Client.TemporalClientTests.ConnectAsync_Connection_Succeeds"
to run a specific test--blame-crash
to do a host process dump on crash
To help debug native pieces, this is also available as an in-proc test program. Run:
dotnet run --project tests/Temporalio.Tests
Extra args can be added after --
, e.g. -- --verbose
would show verbose logs and -- --help
would show other
options. If the arguments are anything but --help
, the current assembly is prepended to the args before sending to the
xUnit runner.
Rebuilding Rust extension and interop layer
To regen core interop from header, install ClangSharpPInvokeGenerator like:
dotnet tool install --global ClangSharpPInvokeGenerator
Then, run:
ClangSharpPInvokeGenerator @src/Temporalio/Bridge/GenerateInterop.rsp
The Rust DLL is built automatically when the project is built. protoc
may need to be on the PATH
to build the Rust
DLL.
Regenerating protos
Must have protoc
on the PATH
. Note, for now you must use protoc
3.x until
our GH action downloader is fixed or we change how we download
protoc and check protos (since protobuf
changed some C# source).
Then:
dotnet run --project src/Temporalio.Api.Generator
Regenerating API docs
Install docfx, then run:
docfx src/Temporalio.ApiDoc/docfx.json
TODO:
- Fix generated api doc
- Specifically make
Temporalio.Api
have children collapsed by default - Switch/update template to full width
- Specifically make
- Formatting/style guide:
- Line len 100 max on everything where reasonable
- Rules for options classes
- Shallow-copyable via virtual clone
- Empty constructor and constructor with required params
- TODO(cretz): Validation? Probably don't want attributes?
- Source generator for workflows
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- Castle.Core (>= 5.1.0)
- Google.Protobuf (>= 3.21.9)
- Microsoft.Extensions.Logging.Abstractions (>= 2.2.0)
-
.NETFramework 4.6.2
- Castle.Core (>= 5.1.0)
- Google.Protobuf (>= 3.21.9)
- Microsoft.Extensions.Logging.Abstractions (>= 1.1.1)
- System.Text.Json (>= 6.0.7)
-
.NETStandard 2.0
- Castle.Core (>= 5.1.0)
- Google.Protobuf (>= 3.21.9)
- Microsoft.Extensions.Logging.Abstractions (>= 2.2.0)
- System.Text.Json (>= 6.0.7)
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.4.0 | 8 | 12/19/2024 |
1.3.1 | 8 | 9/11/2024 |
1.3.0 | 9 | 8/14/2024 |
1.2.0 | 9 | 6/27/2024 |
1.1.2 | 9 | 6/4/2024 |
1.1.1 | 1 | 5/10/2024 |
1.1.0 | 26 | 5/7/2024 |
1.0.0 | 1 | 12/5/2023 |
0.1.0-beta2 | 1 | 10/30/2023 |
0.1.0-beta1 | 1 | 7/24/2023 |
0.1.0-alpha6 | 1 | 6/28/2023 |
0.1.0-alpha5 | 1 | 5/26/2023 |
0.1.0-alpha4 | 1 | 5/1/2023 |
0.1.0-alpha3 | 1 | 4/20/2023 |
0.1.0-alpha2 | 1 | 2/10/2023 |
0.1.0-alpha1 | 1 | 1/31/2023 |