Repository navigation
Create the v2 solution skeleton - #2437
Merged
Merged
Conversation
Solution, the six projects from ADR-0004 with their reference rules, both Host entry modes, the empty DbContext with provider selection, the job queue stub, tests, and the build-and-test CI job. Refs #2433
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.
Closes #2433
What
The solution and the projects from ADR-0004, as empty shells with the build rules enforced from day one.
FluentCMS.slnxwithsrc/andtests/folders,Directory.Build.props(net10.0, nullable, implicit usings, warnings as errors, deterministic),Directory.Packages.props(central package versions),nuget.config(nuget.org only).FluentCMS.Core,FluentCMS.Infrastructure,FluentCMS.Mcp,FluentCMS.Api,FluentCMS.AdminandFluentCMS.Host, each with only the references its ADR-0004 row permits and a composition seam (AddFluentCms*) for the epics to fill.fluentcmsis the web host with JSON console logging and a/healthendpoint, nothing else;fluentcms mcpis a generic host with the same composition, logs to standard error, binds no port, and stops when standard input closes.FluentCmsDbContext, provider selection by configuration (SQLite by default, Npgsql when the connection string saysHost=orDatabase:Providerispostgresql), and a startup migrator that is a no-op until the first migration exists.src/*.csprojand fails on a direction ADR-0004 forbids; integration tests for the web host (health endpoint, job queue registered), the stdio host (noIServer, exits when input closes), SQLite, an unknown provider, and PostgreSQL whenFLUENTCMS_TEST_POSTGRESis set (skipped otherwise).Directory.Packages.props.CONTRIBUTING.mdnow documents build, test and run commands;.gitignorecovers local SQLite files.Why
Every M1 epic needs a place to put code and a build that keeps the dependency direction honest (#2433, ADR-0004). The two host modes and the database shell let the first epics start on the same composition the product will ship with.
Verified locally
dotnet buildwith warnings as errors,dotnet test(PostgreSQL test skipped), both host modes as real processes, and the rule test failing when a forbidden reference is added to the Admin project.Checklist
v2