Skip to content

feat(devcont): #365 mise task runner for dev#366

Open
ryancraigdavis wants to merge 1 commit into
CSharpAPIfrom
feature/365-update-devcontainer-with-mise
Open

feat(devcont): #365 mise task runner for dev#366
ryancraigdavis wants to merge 1 commit into
CSharpAPIfrom
feature/365-update-devcontainer-with-mise

Conversation

@ryancraigdavis

Copy link
Copy Markdown

Introduce mise as a shared task layer (restore/build/test/run/watch) so VS Code, terminal-based editors, and CI all use the same commands against Redux.slnx. The devcontainer now uses the official devcontainers/dotnet image and a post-create script installs mise, trusts the repo config, and warms the NuGet cache automatically.

Publish port 27000 so the API is reachable from the host without relying on VS Code's port forwarding, enabling terminal-only editors like neovim to work with the container via the devcontainer CLI.

Update Readme and CONTRIBUTING to document the dev container as the recommended setup path, reducing onboarding friction and keeping local environments consistent with CI.

Introduce mise as a shared task layer (restore/build/test/run/watch)
so VS Code, terminal-based editors, and CI all use the same commands
against Redux.slnx. The devcontainer now uses the official
devcontainers/dotnet image and a post-create script installs mise,
trusts the repo config, and warms the NuGet cache automatically.

Publish port 27000 so the API is reachable from the host without
relying on VS Code's port forwarding, enabling terminal-only editors
like neovim to work with the container via the devcontainer CLI.

Update Readme and CONTRIBUTING to document the dev container as the
recommended setup path, reducing onboarding friction and keeping
local environments consistent with CI.
@ryancraigdavis ryancraigdavis requested a review from wrigjl July 15, 2026 05:04
@ryancraigdavis ryancraigdavis linked an issue Jul 15, 2026 that may be closed by this pull request
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Comment thread mise.toml
# so C#, Python, and JS repos share the same commands.
#
# There is intentionally NO [tools] section: the .NET 10 runtime is provided by the
# devcontainer base image, not mise. mise is the task layer only. See CLAUDE.md

@wrigjl wrigjl Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

your claude is showing...

@wrigjl wrigjl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't actually run this, but I did read it.

Comment thread mise.toml
description = "Run the API on http://localhost:27000 (Development + Swagger)"
# Bind via ASPNETCORE_URLS, NOT `--urls`: `dotnet run` treats `--urls` as an unknown
# run option and exits before the app starts. 0.0.0.0 so the published port is reachable.
env = { ASPNETCORE_URLS = "http://0.0.0.0:27000" }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably fine in a container, but we need to fix the use of 0.0.0.0 outside of containers so that folks aren't opening up dev stuff on their LAN.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this is all meant for container usage

"image": "mcr.microsoft.com/dotnet/sdk:10.0",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"username": "vscode",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hate running stuff as root, even in a container, which is why this was in there.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am agnostic on this, we can switch it back.

"extensions": ["ms-dotnettools.csharp"]
}
},
"postStartCommand": "if [ \"$(stat -c %U /workspaces/Redux)\" != \"vscode\" ]; then sudo chown -R vscode:vscode /workspaces/Redux; fi",

@wrigjl wrigjl Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this was in there because of line 6.

@wrigjl

wrigjl commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

I don't know that mise actually buys us anything on this single repo. CI, command line, and vscode were using the same command line (dotnet {watch|run|build|test)). I'm meh whatever on this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update Devcontainer with Mise

3 participants