Development
Environment Setup
Section titled “Environment Setup”The repository uses devenv to provide a reproducible
development environment with all required tools (Smithy CLI, JDK, .NET SDKs,
formatters). See devenv.nix and devenv.yaml at the repo root for the full
definition.
The recommended way to activate the environment is via
direnv. After installing direnv and running
direnv allow once in the repo root, the environment activates automatically
whenever you enter the directory.
To enter the shell manually instead:
devenv shellCommon Tasks
Section titled “Common Tasks”All day-to-day tasks are defined as just recipes. Run
just with no arguments to list them.
| Recipe | What it does |
|---|---|
just restore | Restore NuGet packages |
just build | Build in Release configuration |
just test | Run the test suite |
just fmt | Format all sources (C#, Nix, YAML, Justfile) |
just check-format | Verify formatting (used in CI) |
just pack | Pack NuGet packages to artifacts/packages |
just docs | Start the documentation dev server |
just ci | Full CI sequence: restore → check-format → build → test → pack |
Pack Local Packages
Section titled “Pack Local Packages”just packThe generated .nupkg files are written to artifacts/packages.
Consuming Local Packages
Section titled “Consuming Local Packages”Add a NuGet.config next to the consumer project to make the local feed
available alongside nuget.org:
<?xml version="1.0" encoding="utf-8"?><configuration> <packageSources> <clear /> <add key="smithy-net-local" value="../../artifacts/packages" /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> </packageSources></configuration>Adjust the relative path to match your project layout.
Releasing
Section titled “Releasing”See Releasing.