Files
NixOS_WindowsWrapper/.agents/AGENTS.md
T

63 lines
3.0 KiB
Markdown

# Nix WSL Wrapper Custom Workspace Rules & CI/CD Guidelines
These guidelines define coding rules, visual presentation checks, and CI/CD validation instructions for this repository.
---
## 1. Clean Code, SOLID & DDD Guidelines
All future modifications to the `NixWslWrapper` solution must adhere to the following standards:
* **Domain-Driven Design (DDD)**:
* Encapsulate domain invariants inside value objects. Value objects must validate input parameters upon construction (e.g. `WslTarget` validates that paths and names are non-empty).
* Domain logic must remain framework-agnostic. Do not reference infrastructure concepts (such as process handles or stream copiers) inside the `.Core` project.
* **SOLID Principles**:
* *Single Responsibility (SRP)*: Keep execution strategies, builders, stream copiers, and CLI formatting separated.
* *Open/Closed (OCP)*: If we need execution methods other than WSL (e.g. SSH, Local), implement a new strategy implementing `ICommandExecutor` rather than modifying `WslCommandExecutor`.
* *Dependency Inversion (DIP)*: Inject interfaces (`ICommandExecutor`, `IStreamCopier`, `IPrerequisiteVerifier`) and stream abstractions (`Stream`) to facilitate seamless unit testing and mock assertions without hitting physical OS or environmental components.
* **Visual UI/UX Check**:
* For CLI diagnostics, use `Spectre.Console` markup (`[color]...[/]`) to color-code output. Always escape literal brackets by doubling them (`[[literal-text]]`) to prevent parser errors.
* Render a rich dashboard with `FigletText` and `Table` grids when administrative diagnostics are run (e.g. `--wsl-status`).
---
## 2. Local Verification Commands
To compile, verify, and test the project locally, run:
```powershell
# Restore dependencies
dotnet restore
# Run the unit tests (xUnit)
dotnet test
# Build and package as a single-file executable
dotnet publish src/NixWslWrapper.Cli/NixWslWrapper.Cli.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o ./dist
```
---
## 3. Gitea CI/CD Pipeline Setup & Verification
Follow these steps to push code and verify all tests via Gitea Actions:
### Step 3.1: Gitea Repository Registration
1. Access your Gitea dashboard at [https://gitea.marek-novak.cz/](https://gitea.marek-novak.cz/).
2. Click the `+` sign in the top-right and select **New Repository**.
3. Set the repository name to `NixOS_WindowsWrapper` and create it.
### Step 3.2: Push Local Git Code
Initialize the remote link and push your repository:
```powershell
git remote add origin https://gitea.marek-novak.cz/<your-gitea-username>/NixOS_WindowsWrapper.git
git branch -M master
git push -u origin master
```
### Step 3.3: Verify CI/CD Trigger
1. Once pushed, navigate to the repository homepage in Gitea.
2. Click the **Actions** tab on the top navigation bar.
3. You should see a running workflow named **Build and Test** corresponding to the commit.
4. Click on the workflow run to verify that the steps `Restore dependencies`, `Build solution`, and `Run unit tests` complete successfully.