Skip to content

feat(plugin): embed VERSIONINFO and ship Notepad++-compliant release zips#7

Merged
chtaylo3 merged 1 commit into
mainfrom
feat/npp-packaging-versioninfo
Jun 19, 2026
Merged

feat(plugin): embed VERSIONINFO and ship Notepad++-compliant release zips#7
chtaylo3 merged 1 commit into
mainfrom
feat/npp-packaging-versioninfo

Conversation

@chtaylo3

Copy link
Copy Markdown
Owner

What & why

Notepad++'s Plugins Admin (nppPluginList validator) requires the plugin DLL to embed VERSIONINFO whose FILEVERSION equals the listed version padded to four parts. The DLL previously embedded none, which is a hard rejection. It also expects the DLL at the zip root.

Changes

  • Embed VERSIONINFO. New version.rc.in + version.h.in, generated from project(... VERSION) via configure_file, so the DLL metadata and the About box track release-please bumps automatically. Verified: built x64/x86 DLLs report FileVersion 0.1.0.0.
  • Compliant packaging (scripts/package.ps1): per arch, emit both the norm root-layout zip (FixParser_<ver>_x64.zip / FixParser_<ver>_Win32.zip, DLL at root) and a drop-in _portable zip (wrapped in FixParser/) for quick portable-Notepad++ testing. Forward-slash zip entries (ZIP spec / Linux validator); Win32 token per npp convention.
  • Identity: menu/display-name set equal to folder-name (FixParser); About box shows version, author, GitHub handle, and project URL.

Validation

Built both arches locally; confirmed embedded version, PE machine types (AMD64 / I386), forward-slash entries, and DLL-at-root layout for the norm zips.

Context

Foundation for the version-consistency work tracked in #6 (B+C+D). This PR is the prerequisite; B (manifest-derived version) follows in its own PR per that decision.

…zips

Notepad++'s Plugins Admin (nppPluginList validator) requires the plugin DLL
to embed VERSIONINFO whose FILEVERSION equals the listed version padded to four
parts; the DLL previously embedded none. Generate version.rc + version.h from
the project() VERSION via configure_file so the embedded metadata and the About
box track release-please bumps automatically.

Packaging (scripts/package.ps1) now emits, per architecture, both the norm
root-layout zip (DLL at the zip root: FixParser_<ver>_x64.zip /
FixParser_<ver>_Win32.zip) that the validator expects and a drop-in folder zip
(_portable) for quick portable-Notepad++ testing. Zip entries use forward-slash
separators (ZIP spec / Linux validator), the 32-bit token is "Win32" per npp
convention, and the menu/display-name is set equal to the folder-name
("FixParser"). The About box now shows version, author, GitHub handle, and the
project URL.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant