Skip to content

Commit a05e0df

Browse files
committed
Remove Docker and container references from FieldWorks build system
This commit removes all Docker and container-related artifacts and references from the FieldWorks codebase. The changes include: - Deleted Docker-specific files: Dockerfile.windows, .dockerignore, and Docker build workflow - Removed Docker-related scripts and documentation including Build/Agent/Docker/ folder - Eliminated container-specific build logic and environment variables - Removed references to DOTNET_RUNNING_IN_CONTAINER, FW_CONTAINER, and related conditional code - Cleaned up Vagrant references while preserving the vagrant/ directory structure - Updated build scripts and configuration files to remove container-specific paths and logic - Removed agent-container related references from documentation and specs - Updated project documentation to reflect the removal of container builds This cleanup ensures that the build system only uses native Windows build processes and removes all container-specific dependencies and configurations that were never fully implemented or used in production.
1 parent ad58bae commit a05e0df

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+106
-2499
lines changed

.GitHub/agents/speckit.implement.agent.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ You **MUST** consider the user input before proceeding (if not empty).
6363
git rev-parse --git-dir 2>/dev/null
6464
```
6565
66-
- Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
6766
- Check if .eslintrc* exists → create/verify .eslintignore
6867
- Check if eslint.config.* exists → ensure the config's `ignores` entries cover required patterns
6968
- Check if .prettierrc* exists → create/verify .prettierignore
@@ -91,7 +90,6 @@ You **MUST** consider the user input before proceeding (if not empty).
9190
- **Universal**: `.DS_Store`, `Thumbs.db`, `*.tmp`, `*.swp`, `.vscode/`, `.idea/`
9291
9392
**Tool-Specific Patterns**:
94-
- **Docker**: `node_modules/`, `.git/`, `Dockerfile*`, `.dockerignore`, `*.log*`, `.env*`, `coverage/`
9593
- **ESLint**: `node_modules/`, `dist/`, `build/`, `coverage/`, `*.min.js`
9694
- **Prettier**: `node_modules/`, `dist/`, `build/`, `coverage/`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
9795
- **Terraform**: `.terraform/`, `*.tfstate*`, `*.tfvars`, `.terraform.lock.hcl`

.dockerignore

Lines changed: 0 additions & 88 deletions
This file was deleted.

.github/check_copilot_docs.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ def index_repo_files(root: Path):
125125
"Obj",
126126
"Output",
127127
"Downloads",
128-
"vagrant",
129128
}:
130129
continue
131130
for f in filenames:

.github/copilot-instructions.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ See `.github/AI_GOVERNANCE.md` for the documentation taxonomy and “source of t
2222

2323
## Build & Test Essentials
2424
- Prerequisites: install VS 2022 Desktop workloads, WiX 3.14.x (pre-installed on windows-latest), Git, LLVM/clangd + standalone OmniSharp (for Serena C++/C# support), and optional Crowdin CLI only when needed.
25-
- Docker is available for clean-slate reproduction if needed (see `DOCKER.md`), but standard development uses VS Code worktrees on the host.
2625
- Verify your environment: `.\Build\Agent\Verify-FwDependencies.ps1 -IncludeOptional`
2726
- Common commands:
2827
```powershell

.github/instructions/powershell.instructions.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ description: "PowerShell best practices for scripts used in FieldWorks (dev scri
1313
- Use `pwsh`/PowerShell Core syntax where possible and `Set-StrictMode -Version Latest`.
1414
- Use `Write-Host` sparingly; prefer `Write-Output` and `Write-Error` for correct streams.
1515
- Use `-ErrorAction Stop` in helper functions when errors should abort execution.
16-
- **No Unicode icons or emojis** in output messages (e.g., ``, ``, ``, `🔧`). Use plain ASCII text like `[OK]`, `[FAIL]`, `[WARN]`, `ERROR:` instead. Unicode causes encoding issues in Docker containers and CI logs.
16+
- **No Unicode icons or emojis** in output messages (e.g., ``, ``, ``, `🔧`). Use plain ASCII text like `[OK]`, `[FAIL]`, `[WARN]`, `ERROR:` instead. Unicode causes encoding issues in CI logs.
1717

1818
## Security
1919
- Avoid embedding secrets in scripts; read from env vars and prefer platform secret stores.
@@ -29,7 +29,6 @@ description: "PowerShell best practices for scripts used in FieldWorks (dev scri
2929
- Pipes (`|`)
3030
- Semicolons (`;`) or `&&`
3131
- Redirection (`2>&1`)
32-
- Nested quotes in `docker exec`
3332

3433
**ALWAYS use `scripts/Agent/` wrapper scripts for these operations.** Do not attempt raw commands.
3534

.github/instructions/repo.instructions.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ Provide clear, concise, and enforceable rules that help Copilot code review and
1111

1212
## Rules (high-impact, short)
1313
- Prefer the repository top-level build (`.\build.ps1`) and solution (`FieldWorks.sln`) for full builds.
14-
- Do not change COM/registry behavior without explicit tests and a plan for containerized runs (see `scripts/spin-up-agents.ps1`).
1514
- Keep localization consistent: use `.resx` and follow `crowdin.json` for crowdin integration.
1615

1716
## Examples (Quick)

.github/instructions/testing.instructions.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@ description: "FieldWorks testing guidelines (unit/integration)"
77

88
## Purpose & Scope
99
Guidance for writing and running deterministic unit and integration tests for FieldWorks.
10-
**CRITICAL**: Always use the provided PowerShell scripts (`test.ps1`, `build.ps1`) to run tests. These scripts handle containerization, environment setup, and dependency management automatically.
10+
**CRITICAL**: Always use the provided PowerShell scripts (`test.ps1`, `build.ps1`) to run tests. These scripts environment setup, and dependency management automatically.
1111

1212
## Core Rules
1313
1. **Always use scripts**: Never run `vstest.console.exe`, `nmake`, or `msbuild` directly for testing unless debugging the build system itself.
14-
2. **Containerization**: The scripts automatically detect if you are in a worktree and respawn inside the Docker container. This is required for COM/Registry isolation.
15-
3. **Build First**: Ensure tests are built before running. `test.ps1` builds by default unless `-NoBuild` is passed.
14+
2. **Build First**: Ensure tests are built before running. `test.ps1` builds by default unless `-NoBuild` is passed.
1615

1716
## Running Tests (Managed)
1817

@@ -64,7 +63,7 @@ Tests are built automatically by `test.ps1`. To build explicitly without running
6463
The testing infrastructure relies on shared PowerShell modules for consistency:
6564
- **`test.ps1`**: Main entry point. Dispatches to VSTest (managed) or `Invoke-CppTest.ps1` (native).
6665
- **`scripts/Agent/Invoke-CppTest.ps1`**: Backend for native C++ tests (MSBuild/NMake).
67-
- **`Build/Agent/FwBuildHelpers.psm1`**: Shared logic for container detection, VS environment, and process cleanup.
66+
- **`Build/Agent/FwBuildHelpers.psm1`**: Shared logic for VS environment, and process cleanup.
6867

6968
## Debugging & Logs
7069
- **Logs**: Build logs are written to `Output/Build.log` (if configured) or standard output.
@@ -77,7 +76,6 @@ The testing infrastructure relies on shared PowerShell modules for consistency:
7776
- **Determinism**: Tests must be hermetic. Avoid external state.
7877

7978
## Troubleshooting
80-
- **"Class not registered"**: You are likely running outside the container. Use `.\test.ps1`.
8179
- **"File not found"**: Ensure you built with `-BuildTests` (or let `test.ps1` do it).
8280
- **Native Crash**: Native tests are fragile. Use `printf` debugging if the debugger is unavailable.
8381

.github/workflows/docker-build-publish.yml

Lines changed: 0 additions & 142 deletions
This file was deleted.

.serena/memories/common_issues.md

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,6 @@ msbuild Build\Src\NativeBuild\NativeBuild.csproj /p:Configuration=Debug /p:Platf
2424
**Cause**: Build order not respected
2525
**Solution**: Use traversal build (`.\build.ps1`) which respects `FieldWorks.proj` phases
2626

27-
## Container/Worktree Issues
28-
29-
### Agent Worktree Build Fails on Host
30-
**Symptom**: COM/registry errors when building `worktrees\agent-N` paths
31-
**Cause**: Agent worktrees require containerized builds
32-
**Solution**:
33-
```powershell
34-
docker exec fw-agent-N powershell -NoProfile -c "msbuild FieldWorks.sln /m /p:Configuration=Debug"
35-
```
36-
37-
### Container Can't Access NuGet Packages
38-
**Symptom**: Package restore fails inside container
39-
**Cause**: Volume mounts or network issues
40-
**Solution**: Check `scripts/spin-up-agents.ps1` for proper mount configuration
41-
4227
## Test Issues
4328

4429
### Tests Fail with "SIL.FieldWorks" Assembly Errors

.serena/memories/project_overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
- Tech stack: predominantly C#/.NET Framework 4.8 managed code, plus native C++/C++-CLI components, WiX installer assets, PowerShell/bash build scripts, and auxiliary Python tooling. Builds rely on MSBuild traversal (`FieldWorks.proj`).
55
- Structure highlights: Src/ contains applications and libraries (with per-folder COPILOT.md docs). Build/ houses shared targets/scripts, FLExInstaller/ contains WiX artifacts, Include/ + Lib/ host native headers/libs, and Build/Agent scripts support worktree automation. Specs/ and Docs/ provide planning/reference material.
66
- Key guidelines: Follow `.github/instructions/*.instructions.md` (build, managed, native, installer, testing). Respect `.editorconfig`, update COPILOT metadata when touching folders, and keep documentation in sync with code.
7-
- Tooling environment: development happens on Windows with Visual Studio 2022 workloads (Desktop .NET + C++), WiX 3.14.x, and optional Dockerized worktrees (fw-agent-* containers).
7+
- Tooling environment: development happens on Windows with Visual Studio 2022 workloads (Desktop .NET + C++), WiX 3.14.x.

0 commit comments

Comments
 (0)