Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 0.14.2

ARCH-2 from the audit. SDK-style csproj alongside the existing `csc.exe` build, so `dotnet build` and `dotnet test` work out of the box without losing the PowerShell pipeline.

Added:

- **`Pixelpipe.csproj`** — SDK-style `Microsoft.NET.Sdk` project targeting `net48`, `WinExe`, `/platform:x64`, manifest + icon embedded. Produces an equivalent exe to `scripts/build-release.ps1` from `dotnet build -c Release Pixelpipe.csproj`. Auto-generated AssemblyInfo is disabled so the existing `scripts/generate-version.ps1` (CHANGELOG → `src/AssemblyVersion.cs`) stays the single source of truth for the version.
- **`Pixelpipe.Tests.csproj`** — same pattern for the hand-rolled test runner. `dotnet run --project Pixelpipe.Tests.csproj -c Release` runs all 53 tests.
- The PowerShell scripts (`build-release.ps1`, `run-tests.ps1`) remain the canonical CI path; the csproj is an alternative entry for developers who want IDE integration / analyzers without hand-editing the reference list.

## 0.14.1

GUI-3 follow-up — explicit DPI-aware widths for the most layout-sensitive controls.
Expand Down
37 changes: 37 additions & 0 deletions Pixelpipe.Tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!--
Hand-rolled test runner (tests/TestRunner.cs) wrapped in an SDK csproj
so dotnet test / dotnet run on Pixelpipe.Tests.csproj works.
scripts/run-tests.ps1 remains the canonical CI test path; this is the
developer-ergonomics alternative.
-->
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net48</TargetFramework>
<AssemblyName>Pixelpipe.Tests</AssemblyName>
<PlatformTarget>x64</PlatformTarget>
<StartupObject>Pixelpipe.Tests.TestRunner</StartupObject>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<Nullable>disable</Nullable>
<LangVersion>7.3</LangVersion>
</PropertyGroup>

<ItemGroup>
<Compile Remove="**\*.cs" />
<Compile Include="src\**\*.cs" />
<Compile Include="tests\**\*.cs" />
</ItemGroup>

<ItemGroup>
<Reference Include="System.Web.Extensions" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Management" />
<Reference Include="System.Security" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>

</Project>
56 changes: 56 additions & 0 deletions Pixelpipe.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<!--
v0.14.2 (ARCH-2): SDK-style csproj that produces the same Pixelpipe.exe
as scripts/build-release.ps1 (csc.exe). The PowerShell script remains the
primary build path for CI; this csproj is an alternative entry for
developers who want `dotnet build` + analyzers + IDE integration without
hand-editing the reference list every time we add a framework dll.

Build: dotnet build -c Release Pixelpipe.csproj
Output: bin/Release/net48/Pixelpipe.exe (copy to dist/ if needed)
-->
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net48</TargetFramework>
<RootNamespace>Pixelpipe</RootNamespace>
<AssemblyName>Pixelpipe</AssemblyName>
<PlatformTarget>x64</PlatformTarget>
<ApplicationManifest>app.manifest</ApplicationManifest>
<ApplicationIcon>assets\pixelpipe.ico</ApplicationIcon>
<Optimize>true</Optimize>
<DebugType>portable</DebugType>
<UseWindowsForms>true</UseWindowsForms>
<StartupObject>Pixelpipe.Program</StartupObject>
<Nullable>disable</Nullable>
<LangVersion>7.3</LangVersion>
<!-- scripts/generate-version.ps1 writes src/AssemblyVersion.cs from
CHANGELOG.md before every build; let the script own the version
attributes so both build paths agree. -->
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<!-- Treat warnings as warnings, not errors — the codebase uses several
WinForms patterns Roslyn nags about (empty catch, etc.) that we
keep intentionally. -->
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<!-- Source files (everything under src/). Exclude the tests tree;
it has its own Pixelpipe.Tests.csproj. -->
<Compile Remove="**\*.cs" />
<Compile Include="src\**\*.cs" />
</ItemGroup>

<ItemGroup>
<!-- Framework references the csc.exe build also passes. UseWindowsForms
pulls in System.Windows.Forms / System.Drawing already. -->
<Reference Include="System.Web.Extensions" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Management" />
<Reference Include="System.Security" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>

</Project>
Loading