Skip to content

fix: win32-x64 build, PHP 8.2 deprecation, and release workflow tag checkout#151

Merged
jasdeepkhalsa merged 3 commits intomasterfrom
feature/win-fix-release-6
Mar 8, 2026
Merged

fix: win32-x64 build, PHP 8.2 deprecation, and release workflow tag checkout#151
jasdeepkhalsa merged 3 commits intomasterfrom
feature/win-fix-release-6

Conversation

@jasdeepkhalsa
Copy link
Member

fix: win32-x64 build, PHP 8.2 deprecation, and release workflow tag checkout

Three fixes, all discovered during the v2.0.0 release process.


1. Release workflow builds from master HEAD, not the version tag (fc0da9b)

workflow_dispatch without a ref always checks out the default branch at dispatch time,
regardless of the version number typed in. This caused the v2.0.0 npm packages to be built
and published from master HEAD (which included Supabase/PostgreSQL/multi-format features
not in the v2.0.0 tag).

Fix: All four actions/checkout@v4 steps now resolve the ref as
inputs.ref if provided, otherwise v{version} (e.g. v2.0.1).
A ref override input is also exposed so re-runs or backfills can target a specific
branch/SHA. The intended process going forward:

  1. Merge to master
  2. Push the version tag (git tag v2.0.1 && git push origin v2.0.1)
  3. Dispatch the workflow with version: 2.0.1 — it checks out v2.0.1 automatically

2. win32-x64 native build fails with 14 unresolved zlib symbols (33822ac)

Upstream SPC bug: nmake_micro_wrapper.bat omits zlibstatic.lib from LIBS_MICRO
even when zlib is in the dependency list, despite zlibstatic.lib being present in
buildroot\lib\ after a successful zlib build. The OpenSSL builder has a manual
workaround for the same issue in its own linker step, but it does not carry through to
the PHP link step.

Workaround: Set SPC_EXTRA_LIBS=zlibstatic.lib before calling spc.exe build. SPC
already reads this env var and appends it to both LIBS_MICRO and LIBS_CLI. An upstream
issue/PR has been prepared for the root fix in WindowsBuilder::buildMicro() / buildCli().


3. PHP 8.2 deprecation notice on every dbdiff invocation (89fa4cc)

DiffCommand assigns $params->description but DefaultParams had no declared
$description property. PHP 8.2 deprecated dynamic property creation, producing a
Deprecated: notice on stderr on every run. Not a functional breakage (works fine
until PHP 9.0) but noisy.

Fix: Added public $description = ''; to DefaultParams.

…build

Upstream SPC bug: nmake_micro_wrapper.bat omits zlibstatic.lib from
LIBS_MICRO even when zlib is a dependency. SPC reads SPC_EXTRA_LIBS
and appends it to LIBS_MICRO/LIBS_CLI, so setting it here works around
the issue until the upstream fix lands.

The root fix in SPC is a two-line change in WindowsBuilder::buildMicro()
and buildCli() to check getLib('zlib') and prepend zlibstatic.lib.
…ion)

PHP 8.2 deprecated dynamic property creation. DiffCommand was setting
$params->description but DefaultParams had no declared $description
property, triggering a deprecation notice on every run.
workflow_dispatch without a ref defaults to the workflow's default
branch (master HEAD at dispatch time). This caused v2.0.0 npm packages
to be built from code that was ahead of the v2.0.0 git tag.

Now each checkout uses:
  ref: inputs.ref || 'v{version}'

A ref override input is also exposed so re-runs or backfills can target
a specific branch/SHA without changing the version number.
@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 8, 2026

@jasdeepkhalsa jasdeepkhalsa merged commit 7f074a3 into master Mar 8, 2026
57 checks passed
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