RavenDB-27069: make the .NET requirement explicit + support running without system .NET#35
Open
poissoncorp wants to merge 16 commits into
Open
RavenDB-27069: make the .NET requirement explicit + support running without system .NET#35poissoncorp wants to merge 16 commits into
poissoncorp wants to merge 16 commits into
Conversation
… (run apphost, no dotnet) Read Raven.Server.runtimeconfig.json: an includedFrameworks build bundles the runtime, so run the native apphost (Raven.Server[.exe]) directly instead of 'dotnet Raven.Server.dll'. Fixes the no-.NET path, which previously fell back to a system dotnet because a self-contained dir also contains Raven.Server.dll. Also pick the platform apphost (.exe on Windows).
…+ self-contained path
The 7.2 server targets net10.0, so the old .NET 8 matrix cell was fake (green only because
runners preinstall .NET 10). Now: OS {ubuntu,windows} x Python 3.13 x .NET 10; a derive+enforce
step (scripts/check_dotnet_requirement.py) fails if the installed runtime does not match the
bundled server; Lab 01 runs on the .NET job; a separate job proves the self-contained (no-.NET)
path via Lab 02.
…e Python >=3.10 The .NET-matrix pin machinery is unused now that CI is net10-only. Bump python_requires to >=3.10 (the ravendb client uses PEP 604 unions at runtime and cannot import on 3.9).
…arg list, no shell)
…loration) Fetches a self-contained build for the current platform on first use, caches it, and reuses the cached copy afterwards (no re-download, no system .NET). Marked as exploration; not wired into the package default. Updates the labs index (Lab 03 attach lives in the test-driver repo) and ignores the local RavenDB data dir created by test runs.
… ravendb==7.2.3.post1
…elf-contained as intentional
…ture (ServerOptions.with_on_demand_server)
…d was shadowing README.rst on GitHub); drop redundant requirements.txt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The bundled server is a .NET application, and the required runtime changed from .NET 8 (7.1.x)
to .NET 10 (7.2.x). That requirement was not stated anywhere, and the "run without .NET"
(self-contained) path did not actually work: a self-contained build was misclassified and run
through
dotnetanyway, and on Windows the apphost name was wrong.Changes
7.2 -> .NET 10) and how to check the installed runtime. Users see what they need before
installing.
python_requires>=3.10- theravendbclient uses a PEP 604 union at runtime and cannotbe imported on 3.9, so an install on 3.9 would fail at import. This stops it up front.
ExternalServerProvider: a self-contained build is nowrecognized via
includedFrameworksin the server runtime config and launched through itsnative apphost (
Raven.Server[.exe]) instead of falling back todotnet. The Windows apphostname is corrected to
Raven.Server.exe. This is what makes the no-.NET path work.server's runtime config and fails if a matching .NET major is not installed; a separate job
that runs the self-contained path with no .NET installed. CI now exercises both the documented
requirement and the no-.NET path.
CommandLineArgumentEscaper(args are passed toPopenas alist, so there is no shell to escape for) and the unused
pin_framework_versiontest helper.labs/): runnable guides, one per usage case - embedded zero-config (01), externalself-contained, no .NET (02), and on-demand cached download (04, exploration only).
The test-driver imports from this package; its RavenDB-27069 PR should be released together with
this one.