Skip to content

Name the main file in uninstall.php and move the configs pins - #24

Merged
ahegyes merged 4 commits into
trunkfrom
feat/main-file-by-name
Oct 30, 2026
Merged

ahegyes merged 4 commits into
trunkfrom
feat/main-file-by-name

Conversation

@ahegyes

@ahegyes ahegyes commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Summary

wordpress-configs' release no longer renames the main plugin file, so the template moves its configs pins to that release, drops the wordpress.org recipe's archive-entry-file step, and names its main file in uninstall.php instead of scanning for the plugin header.

Type of change

  • Bug fix
  • New feature
  • Refactor
  • Build / CI / tooling
  • Documentation
  • Dependency update

Checklist

  • Changelog fragment added (composer changelog:add)
  • Tests added/updated
  • composer quality-check passes locally
  • Plugin header updated if runtime requirements changed

Breaking changes for forks

The pinned configs release declares neither entry-file nor archive-entry-file, so a generated plugin whose release.yml passes either drops it; the release finds the main file as WordPress does. A generated plugin's uninstall.php names <slug>.php, which the fill-in writes.

The npm lock trailed in-range patch releases: puppeteer-core 25.16.0,
webpack 5.112.1, sass 1.106.1, web-features 3.44.0 and 15 more move
up, and none moves down under the host's seven-day release-age
cooldown. path-to-regexp and react-is only swap which copy sits at
the top of node_modules. The production npm audit stays clean.

Composer has no update beyond wordpress-configs, which the next commit
moves with the configs pins.

Assisted-by: Claude Code:claude-opus-5-5
The template pinned wordpress-configs at f420c38, whose release took
the main plugin file from an entry-file input and could ship it under
another name through archive-entry-file, and the wordpress.org recipe
told a plugin keeping a 1.x bootstrap.php to pass that input. The
wordpress.org zips of the plugins that recipe served ship <slug>.php,
so no plugin needs the rename, and configs 8d53efd drops both inputs:
its release takes the main file to be the root PHP file with a Plugin
Name header, as WordPress does.

The 13 workflow refs, package.json's git dependency and both locks move
to configs 8d53efd, and the recipe's step for archive-entry-file goes.
Each lock changes only the configs entry.

Assisted-by: Claude Code:claude-opus-5-5
The uninstall row hid the main file and wrote a floored copy as
bootstrap.php, because a release could ship the main file under another
name. configs' release no longer renames it, so the row floors the main
file in place and keeps WP_UNINSTALL_PLUGIN naming another plugin, as a
bulk uninstall leaves it, and still expects the below-floor log line.
It passes before and after the next commit, which names the main file
in uninstall.php again; a removal has no new behaviour to fail first.

Assisted-by: Claude Code:claude-opus-5-5
uninstall.php found the main file by scanning its folder for the one
PHP file with a Plugin Name header, because a release could ship the
main file under another name than the source's. configs' release no
longer renames it, so the scan guarded a case that cannot arise.

uninstall.php names dws-plugin-template.php again, which the fill-in
renames to the plugin's slug along with the file itself.

Assisted-by: Claude Code:claude-opus-5-5
@ahegyes ahegyes changed the title Feat/main file by name Name the main file in uninstall.php and move the configs pins Oct 30, 2026
@ahegyes
ahegyes merged commit d17a381 into trunk Oct 30, 2026
31 checks passed
@ahegyes
ahegyes deleted the feat/main-file-by-name branch October 30, 2026 11:52
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