From c3638df06f7e8d87cb3c9f5a7f4f41309240f56f Mon Sep 17 00:00:00 2001 From: Duke <40759437+dukesteen@users.noreply.github.com> Date: Thu, 1 Oct 2026 13:17:20 +0200 Subject: [PATCH] docs: update Immediate.Jobs for published 0.x packages --- .../configuring-storage-providers.md | 14 +++++----- .../dashboard-and-monitoring.md | 2 +- .../docs/Immediate.Jobs/introduction.md | 16 ++++++------ src/content/docs/Immediate.Jobs/nodatime.md | 2 +- .../docs/Immediate.Jobs/testing-jobs.md | 2 +- .../docs/concepts/package-compatibility.md | 15 +++++------ .../docs/concepts/source-generation.md | 7 +++-- .../docs/getting-started/installation.md | 26 +++++++++---------- .../docs/getting-started/introduction.md | 2 +- 9 files changed, 42 insertions(+), 44 deletions(-) diff --git a/src/content/docs/Immediate.Jobs/configuring-storage-providers.md b/src/content/docs/Immediate.Jobs/configuring-storage-providers.md index 2346147..0cc0f86 100644 --- a/src/content/docs/Immediate.Jobs/configuring-storage-providers.md +++ b/src/content/docs/Immediate.Jobs/configuring-storage-providers.md @@ -22,7 +22,7 @@ supports every job feature. Use it for development and tests. ## Entity Framework Core ```bash -dotnet add package Immediate.Jobs.EntityFrameworkCore --prerelease +dotnet add package Immediate.Jobs.EntityFrameworkCore ``` Prefer a dedicated, application-owned `JobsDbContext` so the jobs schema stays separate from your @@ -89,7 +89,7 @@ The generated migration creates the seven Immediate.Jobs tables, indexes and con ## LinqToDB ```bash -dotnet add package Immediate.Jobs.LinqToDB --prerelease +dotnet add package Immediate.Jobs.LinqToDB ``` ```csharp @@ -128,7 +128,7 @@ rather than integer ticks. ## Redis ```bash -dotnet add package Immediate.Jobs.Redis --prerelease +dotnet add package Immediate.Jobs.Redis ``` Register an `IConnectionMultiplexer`, then select Redis storage: @@ -176,15 +176,15 @@ Call `ConfigureStorage` exactly once. With EF Core or LinqToDB, choose `UseSingl scheduler process or `UseDistributed()` for more than one. Jobs defaults to single-server mode when neither is selected. Redis always uses distributed mode. - + Starting Jobs does not create or update a database schema. Keep every Immediate.Jobs provider -package at the same preview version as the core package. Create test databases from the current EF +package at the same version as the core package. Create test databases from the current EF model or with `CreateImmediateJobsSchemaAsync`. -Recent previews changed the schema. The EF Core server table gained required `ExpiresAt` and +Recent 0.x releases changed the schema. The EF Core server table gained required `ExpiresAt` and `Details` columns and is indexed by `ExpiresAt`, so add a new migration after upgrading. The LinqToDB timestamp columns changed from 64-bit integers to date-and-time types; recreate LinqToDB -databases created by an earlier preview. +databases created by an earlier release. diff --git a/src/content/docs/Immediate.Jobs/dashboard-and-monitoring.md b/src/content/docs/Immediate.Jobs/dashboard-and-monitoring.md index 7dd9718..98707e6 100644 --- a/src/content/docs/Immediate.Jobs/dashboard-and-monitoring.md +++ b/src/content/docs/Immediate.Jobs/dashboard-and-monitoring.md @@ -6,7 +6,7 @@ group: Guides --- ```bash -dotnet add package Immediate.Jobs.Dashboard --prerelease +dotnet add package Immediate.Jobs.Dashboard ``` Configure and register the dashboard before building the application. Then map its UI and API: diff --git a/src/content/docs/Immediate.Jobs/introduction.md b/src/content/docs/Immediate.Jobs/introduction.md index e547c36..a69b50d 100644 --- a/src/content/docs/Immediate.Jobs/introduction.md +++ b/src/content/docs/Immediate.Jobs/introduction.md @@ -8,7 +8,7 @@ order: 1 import { Callout, CardGrid, LinkCard, PackageBadges } from '$lib/components/docs'; - + Immediate.Jobs is a reflection-free background job scheduler built on [Immediate.Handlers](/docs/Immediate.Handlers/introduction). A job is an ordinary handler marked @@ -16,22 +16,22 @@ with `[Job]`; source generation adds a typed scheduler, JSON metadata, an execut registration. The runtime supplies delayed and recurring work, queues, retries, workflows, monitoring and durable storage providers. - + -Immediate.Jobs has not published its first preview packages. These pages intentionally document -the checked-out `main` implementation and are the one exception to this site's latest-release -policy. The `--prerelease` commands below become usable when those packages are published. Preview -APIs and storage schemas can change before a stable release. +Immediate.Jobs is published on NuGet as 0.x releases. Until 1.0, minor versions can change APIs and +storage schemas, so keep every Immediate.Jobs package on the same version. These pages track `main` +and are the one exception to this site's latest-release policy; a feature described here may land +in the next release. ## Prerequisites and installation -Jobs target `net8.0`, `net9.0`, `net10.0` and `net11.0` and require Immediate.Handlers. Install the +Jobs target `net8.0`, `net10.0` and `net11.0` and require Immediate.Handlers. Install the main package in the project that declares the handlers: ```bash -dotnet add package Immediate.Jobs --prerelease +dotnet add package Immediate.Jobs ``` Select storage during registration. Use in-memory storage for development and tests. Choose a diff --git a/src/content/docs/Immediate.Jobs/nodatime.md b/src/content/docs/Immediate.Jobs/nodatime.md index 12ea92c..7efb8ad 100644 --- a/src/content/docs/Immediate.Jobs/nodatime.md +++ b/src/content/docs/Immediate.Jobs/nodatime.md @@ -15,7 +15,7 @@ NodaTime values in payloads and propagated context. ## Install and register ```bash -dotnet add package Immediate.Jobs.NodaTime --prerelease +dotnet add package Immediate.Jobs.NodaTime ``` Register the integration with Jobs: diff --git a/src/content/docs/Immediate.Jobs/testing-jobs.md b/src/content/docs/Immediate.Jobs/testing-jobs.md index 4581756..5406a6c 100644 --- a/src/content/docs/Immediate.Jobs/testing-jobs.md +++ b/src/content/docs/Immediate.Jobs/testing-jobs.md @@ -6,7 +6,7 @@ group: Guides --- ```bash -dotnet add package Immediate.Jobs.Testing --prerelease +dotnet add package Immediate.Jobs.Testing ``` ## Execute with fake time diff --git a/src/content/docs/concepts/package-compatibility.md b/src/content/docs/concepts/package-compatibility.md index 34da9dc..8d75b56 100644 --- a/src/content/docs/concepts/package-compatibility.md +++ b/src/content/docs/concepts/package-compatibility.md @@ -17,7 +17,7 @@ order: 5 | [Immediate.Apis](/docs/Immediate.Apis/introduction) | Immediate.Handlers, ASP.NET Core | net8.0 – net10.0 | 6.x | | [Immediate.Cache](/docs/Immediate.Cache/introduction) | Immediate.Handlers, `IMemoryCache` | net8.0 – net10.0 | 2.x | | [Immediate.Injections](/docs/Immediate.Injections/introduction) | — | net8.0 – net10.0 | 1.x | -| [Immediate.Jobs](/docs/Immediate.Jobs/introduction) | Immediate.Handlers, hosted service | net8.0 – net11.0 | preview | +| [Immediate.Jobs](/docs/Immediate.Jobs/introduction) | Immediate.Handlers, hosted service | net8.0 – net11.0 | 0.x | Immediate.Handlers is the core. Validations, Apis and Cache each take a package reference on it and are meaningless without it — they extend handlers rather than standing alone. You do not @@ -39,8 +39,8 @@ ASP.NET Core controllers instead of Immediate.Apis. The ## Target frameworks -The released packages multi-target **net8.0, net9.0 and net10.0**. Immediate.Jobs currently tracks -`main` and additionally targets **net11.0**. +The released packages multi-target **net8.0, net9.0 and net10.0**. Immediate.Jobs targets +**net8.0, net10.0 and net11.0**. ## C# language version @@ -59,11 +59,10 @@ the relevant page, and removed diagnostic IDs are kept in the diagnostics tables searching for one still lands somewhere useful. - -Immediate.Jobs has no published preview yet. Its manual intentionally documents the checked-out -main implementation instead of a latest release, including APIs and storage schemas -that may change before stability. Package commands use --prerelease and become usable -when the first preview is published. + +Immediate.Jobs is published as 0.x releases, and minor versions can change APIs and storage schemas +until 1.0. Its manual documents the main implementation instead of the latest release, +so a feature described there may land in the next release. The packages version independently. A major bump in one does not imply a bump in the diff --git a/src/content/docs/concepts/source-generation.md b/src/content/docs/concepts/source-generation.md index 0d7055c..08616a5 100644 --- a/src/content/docs/concepts/source-generation.md +++ b/src/content/docs/concepts/source-generation.md @@ -70,14 +70,13 @@ NuGet picks the right one from the target framework, so there is nothing to conf consequence worth knowing is that generator behavior can differ slightly across target frameworks in a multi-targeted project, because two different generator builds are running. -Immediate.Jobs is the preview exception and currently ships framework-specific analyzer builds: +Immediate.Jobs is the exception and ships framework-specific analyzer builds: | Jobs target | Roslyn | | ----------- | ------ | -| net8.0 | 4.11 | -| net9.0 | 4.12 | +| net8.0 | 4.8 | | net10.0 | 5.0 | -| net11.0 | 5.3 | +| net11.0 | 5.9 | Its per-job `IJ` output includes the typed scheduler, direct invoker and generated JSON metadata; the assembly output adds `AddXxxJobs()`. diff --git a/src/content/docs/getting-started/installation.md b/src/content/docs/getting-started/installation.md index ca700d9..748f4ac 100644 --- a/src/content/docs/getting-started/installation.md +++ b/src/content/docs/getting-started/installation.md @@ -22,8 +22,8 @@ dotnet add package Immediate.Validations dotnet add package Immediate.Apis dotnet add package Immediate.Cache -# Preview: available when the first Immediate.Jobs packages are published. -dotnet add package Immediate.Jobs --prerelease +# Pre-1.0: minor versions can include breaking changes. +dotnet add package Immediate.Jobs # Independent of the above: dotnet add package Immediate.Injections @@ -35,7 +35,7 @@ dotnet add package Immediate.Injections Immediate.Handlers ▲ ▲ ▲ ▲ │ │ │ │ - Immediate.Validations │ Immediate.Cache Immediate.Jobs (preview) + Immediate.Validations │ Immediate.Cache Immediate.Jobs (0.x) │ Immediate.Apis @@ -64,7 +64,7 @@ builder.Services.AddMyAppHandlers(); // Immediate.Handlers builder.Services.AddMemoryCache(); // required by Immediate.Cache builder.Services.AddMyAppCaches(); // Immediate.Cache builder.Services.AddMyAppServices(); // Immediate.Injections -builder.Services.AddMyAppJobs(); // Immediate.Jobs (preview) +builder.Services.AddMyAppJobs(); // Immediate.Jobs (0.x) var app = builder.Build(); @@ -80,20 +80,20 @@ registration method of its own; you add its `ValidationBehavior<,>` to your asse ## Supported target frameworks -The released packages multi-target **net8.0, net9.0 and net10.0**. The Immediate.Jobs preview -tracks current `main` and targets **net8.0 through net11.0**. +The released packages multi-target **net8.0, net9.0 and net10.0**. Immediate.Jobs targets +**net8.0, net10.0 and net11.0**. ## Immediate.Jobs companion packages -These commands become usable with the first preview publication: +Keep companion packages on the same version as `Immediate.Jobs`: ```bash -dotnet add package Immediate.Jobs.EntityFrameworkCore --prerelease -dotnet add package Immediate.Jobs.LinqToDB --prerelease -dotnet add package Immediate.Jobs.Redis --prerelease -dotnet add package Immediate.Jobs.Dashboard --prerelease -dotnet add package Immediate.Jobs.NodaTime --prerelease -dotnet add package Immediate.Jobs.Testing --prerelease +dotnet add package Immediate.Jobs.EntityFrameworkCore +dotnet add package Immediate.Jobs.LinqToDB +dotnet add package Immediate.Jobs.Redis +dotnet add package Immediate.Jobs.Dashboard +dotnet add package Immediate.Jobs.NodaTime +dotnet add package Immediate.Jobs.Testing ``` EF Core and LinqToDB provide full SQL-backed workflows; Redis provides distributed queues and diff --git a/src/content/docs/getting-started/introduction.md b/src/content/docs/getting-started/introduction.md index e55eaf1..5987c09 100644 --- a/src/content/docs/getting-started/introduction.md +++ b/src/content/docs/getting-started/introduction.md @@ -99,7 +99,7 @@ Please see our [full cookbook](/docs/cookbook/the-cookbook) for all integration ### Immediate.Jobs - + - Reflection-free background job scheduler for .NET built on Immediate.Handlers. - Generates typed schedulers, payload metadata, and dependency-injection registrations at compile time.