Skip to content

# A clean checkout can build Compression.NativeUI - #809

Merged
Hawkynt merged 2 commits into
mainfrom
fix/nativeforms-package-fallback
Nov 10, 2026
Merged

Hawkynt merged 2 commits into
mainfrom
fix/nativeforms-package-fallback

Conversation

@Hawkynt

@Hawkynt Hawkynt commented Nov 10, 2026

Copy link
Copy Markdown
Owner

A clean checkout now has a documented, scripted way to build Compression.NativeUI.

Why it failed

Without a sibling ../NativeForms checkout the build falls back to the published NativeForms packages, and no published version contains the ribbon field controls (RibbonComboBox, RibbonSpinner, RibbonFieldItem) NativeUI uses — they exist only at the NativeForms commit pinned in build/NativeForms.ref, which CI clones itself.

Changes

  • build/get-nativeforms.sh / build/get-nativeforms.ps1: fetch the pinned commit into ../NativeForms (or a given directory) the way CI does; the CI action now calls the script.
  • build/NativeForms.props: the package fallback prints a notice naming the script; fallback package versions raised to the newest published (fixes VirtualFile; the ribbon controls still need the next NativeForms release).
  • README "Building" and CONTRIBUTING "Build" list the step.

Verification

  • Script into a fresh directory → Compression.NativeUI builds with 0 errors against it.
  • Fallback build shows the notice.

Closes #514

Hawkynt and others added 2 commits November 10, 2026 02:08
Symptom (#514): on a clean clone, `dotnet build CompressionWorkbench.slnx`
fails in Compression.NativeUI with CS0246 for RibbonFieldItem,
RibbonSpinner, RibbonComboBox and VirtualFile, with or without
-p:NativeFormsFromSource=false.

Root cause: without a ../NativeForms checkout, build/NativeForms.props falls
back to the published NativeForms packages, and no published version
carries the ribbon field controls NativeUI uses - they exist only on
NativeForms main at the commit pinned in build/NativeForms.ref. CI clones
that commit with its own action; nothing told a local build to.

Fix:
- build/get-nativeforms.sh / .ps1 fetch the pinned commit into ../NativeForms
  (or a given directory) exactly as CI does; the CI action now calls the
  script, so there is one definition.
- The package fallback announces itself at build time and names the script.
- README and CONTRIBUTING list the step.
- The package fallback moves to the newest published versions (NativeForms
  1.0.0.245, Windows 1.0.0.70, Gtk 1.0.0.82), which at least carry
  VirtualFile; the ribbon controls still need the next NativeForms release.

Verified: the script fetches 1e14385 into a fresh directory and NativeUI
builds against it with 0 errors; the fallback build prints the notice.

Closes #514
@Hawkynt
Hawkynt merged commit 95004e6 into main Nov 10, 2026
5 checks passed
@Hawkynt
Hawkynt deleted the fix/nativeforms-package-fallback branch November 10, 2026 03:33
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.

Build fails on a clean checkout of main due to missing NativeForms types

1 participant