Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
bf82f8d
Migrate all the .csproj files to SDK format
jasonleenaylor Sep 26, 2025
f1995da
Implement and execute improved convertToSDK.py
Copilot Sep 29, 2025
21eb577
Update package versions to fix conflicts and use wildcards
Copilot Sep 30, 2025
bfd1b38
Convert DesktopAnalytics and IPCFramework to PackageReferences
Copilot Sep 30, 2025
eb4dc7a
Fix bare References and update convertToSDK.py script
Copilot Sep 30, 2025
186e452
Fix Geckofx version and DotNetZip warnings
Copilot Sep 30, 2025
053900d
Fix post .csproj conversion build issues
jasonleenaylor Oct 2, 2025
c4a995f
Delete some obsolete files and clean-up converted .csproj
jasonleenaylor Oct 3, 2025
3d8ddad
Copilot assisted NUnit3 to NUnit4 migration
jasonleenaylor Oct 6, 2025
8476c6e
Update palaso dependencies and remove GeckoFx 32bit
jasonleenaylor Oct 8, 2025
0f963d4
Fix broken test projects by adding needed external dependencies
jasonleenaylor Oct 10, 2025
16c8b63
Update FieldWorks.cs to use latest dependencies
jasonleenaylor Nov 4, 2025
c09c0c9
Spec kit and AI docs, tasks and instructions
johnml1135 Nov 5, 2025
dee74e1
This is a rebase of much work - see MIGRATION_SUMMARY_BY_PHASE.md for
johnml1135 Nov 5, 2025
dd0962b
Use FieldWorks.proj for main file
johnml1135 Nov 13, 2025
9d062c2
updates to tear-down agents
johnml1135 Nov 14, 2025
713483c
Copy session data to worktrees.
johnml1135 Nov 14, 2025
5c4767c
Significant updates to copilot instructions infrastructure.
johnml1135 Nov 14, 2025
b7ae06c
task for building images
johnml1135 Nov 18, 2025
381bb18
fix speckit branch naming
johnml1135 Nov 18, 2025
f8c9622
Remove LexTextExe.exe
johnml1135 Nov 17, 2025
375f4f6
Fix docker build path issue.
johnml1135 Nov 18, 2025
74dae39
Clean up docker image
johnml1135 Nov 18, 2025
28f6e8a
final dockfile fix
johnml1135 Nov 19, 2025
858f691
feat(convergence): finalize PlatformTarget cleanup (006)
johnml1135 Nov 19, 2025
0899cd1
minor update
johnml1135 Nov 19, 2025
37986a9
Convergence #3: Standardize test exclusion patterns
johnml1135 Nov 19, 2025
d4d1b03
Fix inconsistent use of PrivateAssets attribute on test packages
johnml1135 Nov 19, 2025
1315780
feat: Implement Registration-Free COM support and tooling
johnml1135 Nov 20, 2025
34c2cbb
Implement GenerateAssemblyInfo template reintegration (Spec 002)
johnml1135 Nov 20, 2025
460181f
Significant overhaul of RegFree and manifests
johnml1135 Nov 20, 2025
5130bb3
Remove old files
johnml1135 Nov 20, 2025
7666f70
Doesn't crash - views don't show.
johnml1135 Nov 20, 2025
aef6860
Fixing the view issues.
johnml1135 Nov 20, 2025
0c492bd
Faster build
johnml1135 Nov 21, 2025
58d04c1
Fix rendering artifacts and black screen by using native GDI double-b…
johnml1135 Nov 21, 2025
0240f60
Update SDK Migration path
johnml1135 Nov 21, 2025
f19a139
Test migration plan
johnml1135 Nov 21, 2025
b21778b
small fix
johnml1135 Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
87 changes: 87 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Build outputs
Output/
Obj/
bin/
obj/
*.user

# Test results
TestResults/

# NuGet packages
packages/
.nuget/

# Git
.git/
.github/
.gitignore
.gitattributes

# Visual Studio
.vs/
*.suo
*.sln.docstates

# Documentation and analysis files
*.md
!ReadMe.md
COPILOT.md
*.prompt.md
BUILD_CHALLENGES_ANALYSIS.md
CLARIFICATIONS-NEEDED.md
COMPREHENSIVE_COMMIT_ANALYSIS.md
CONVERGENCE-FRAMEWORK.md
CONVERGENCE-STATUS.md
DEEP_COMMIT_ANALYSIS.md
DLL_MODERNIZATION_PLAN.md
LEGACY_REMOVAL_SUMMARY.md
MIGRATION_DOCS_INDEX.md
MIGRATION_FIXES_SUMMARY.md
MIGRATION_SUMMARY_BY_PHASE.md
NON_SDK_ELIMINATION.md
NUNIT4_CONVERSION_SUMMARY.md
PACKAGE_MANAGEMENT_QUICKSTART.md
RHINOMOCKS_TO_MOQ_MIGRATION.md
SDK-MIGRATION.md
TRAVERSAL_SDK_IMPLEMENTATION.md

# Test projects and data
TestLangProj/
specs/

# Vagrant
vagrant/

# Python scripts (not needed in container)
*.py

# Docs
Docs/

# Resources (will copy specific ones if needed)
resources/

# Scripts (not needed for Docker build)
scripts/

# FLExInstaller (not building installer in container)
FLExInstaller/

# Sample/test code
Samples/

# Large binary files
*.exe
!DistFiles/**/*.exe
*.dll
!DistFiles/**/*.dll
*.pdb
*.lib
*.exp

# Temporary files
*.tmp
*.log
*.bak
*~
87 changes: 87 additions & 0 deletions .github/BUILD_REQUIREMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Build Requirements

## Local Development

### Full Build (C# + Native C++)

To build the complete FieldWorks solution including native C++ components:

**PowerShell (Recommended - auto-initializes VS environment):**
```powershell
.\build.ps1
```

**Bash (Git Bash - requires Developer Command Prompt):**
```bash
# 1. Open "Developer Command Prompt for VS 2022" from Start Menu
# 2. Type: bash
# 3. Navigate to repo: cd /c/path/to/FieldWorks
# 4. Run: ./build.sh
```

**Why?** Native components (DebugProcs, GenericLib, FwKernel, Views, graphite2) require:
- `nmake.exe` (from Visual Studio C++ Build Tools)
- C++ compiler toolchain
- Environment variables set by VsDevCmd.bat (VCINSTALLDIR, INCLUDE, LIB, etc.)

**Note:** The PowerShell script (`build.ps1`) automatically initializes the Visual Studio environment using `vswhere.exe`. The Bash script requires you to run from a Developer Command Prompt because Git Bash has issues reliably calling VsDevCmd.bat.

### Managed-Only Build (C# projects)

If you only need to build C# projects and already have native artifacts from a previous build:

```powershell
# Build only managed projects (skips native C++)
msbuild FieldWorks.proj /p:Configuration=Debug /p:Platform=x64
```

## CI Builds

GitHub Actions CI automatically configures the Developer environment using the `microsoft/setup-msbuild@v2` action. No manual setup is required.

From `.github/workflows/CI.yml`:
```yaml
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2 # Configures VS environment automatically

- name: Build Debug and run tests
run: ./build.ps1 -Configuration Debug -Platform x64
```

## Troubleshooting

### Error: "nmake.exe could not be run" or "VCINSTALLDIR not set"

**Cause:** Build script was run from a regular PowerShell/bash session instead of a Developer Command Prompt.

**Solution:**
1. Close your current terminal
2. Open "Developer Command Prompt for VS 2022" or "Developer PowerShell for VS 2022" from the Start Menu
3. Navigate to the repository
4. Run the build script again

### Error: "Missing FieldWorks build tasks assembly"

**Cause:** FwBuildTasks.dll hasn't been built yet (typically on first build or after clean).

**Solution:** The build scripts now automatically bootstrap FwBuildTasks. If this fails, manually build it first:
```powershell
msbuild Build/Src/FwBuildTasks/FwBuildTasks.csproj /t:Restore;Build /p:Configuration=Debug
```

## Build Script Features

Both `build.ps1` and `build.sh` now include:

1. **Automatic FwBuildTasks bootstrap**: Builds build infrastructure before main build
2. **Environment validation**: Warns if Developer environment is not detected
3. **Package restoration**: Restores NuGet packages before build
4. **Traversal build**: Uses MSBuild Traversal SDK (FieldWorks.proj) for correct dependency ordering

## Visual Studio Requirements

- **Visual Studio 2022** (Community, Professional, or Enterprise)
- **Required Workloads:**
- .NET desktop development
- Desktop development with C++
- **Optional:** WiX Toolset 3.11.x (only for installer builds)
Loading