Repository navigation
Release 1.0.0 - #3
firestar300 wants to merge 10 commits into
Conversation
| if git ls-remote --exit-code --tags origin "refs/tags/${VERSION}" >/dev/null 2>&1; then | ||
| echo "Remote tag already exists, stop now"; | ||
| exit 1; | ||
| fi |
There was a problem hiding this comment.
Release job fails after first tag
High Severity
The main-branch release workflow treats an already-published .plugin-data version as a hard failure. After 1.0.0 is tagged, every later push to main that does not bump the version exits with status 1, so the release job stays red until the next version change.
Reviewed by Cursor Bugbot for commit aa40619. Configure here.
| if ! git cat-file -e "${BASE_SHA}:.plugin-data" 2>/dev/null; then | ||
| echo "::error::Could not read .plugin-data at merge base. Ensure the base branch has .plugin-data." | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
Version check rejects first release
High Severity
The PR version workflow errors if .plugin-data is missing on the merge base. This 1.0.0 PR introduces that file, so the new required check fails before it can treat the initial version as a valid first release.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit aa40619. Configure here.
| const candidates = | ||
| Array.isArray( fromPhp ) && fromPhp.length > 0 | ||
| ? fromPhp | ||
| : DEFAULT_ICON_BLOCKS; |
There was a problem hiding this comment.
Empty icon allowlist ignored in editor
Medium Severity
getRegisteredIconBlocks treats an empty allowedIconBlocks array from PHP as missing data and falls back to core/icon. PHP already allows a filter to return no blocks, so the editor still offers icons after the allowlist was intentionally cleared.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit aa40619. Configure here.
| if ( withoutSpans.length ) { | ||
| normalized = withoutSpans; | ||
| } | ||
| } |
There was a problem hiding this comment.
Label cleanup strips formatting spans
Medium Severity
After unwrapping the label wrapper, normalizeButtonLabelText removes every remaining span. Inline color and similar RichText formats use spans, so enabling an icon or parsing an icon button can permanently drop that formatting from text.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit aa40619. Configure here.
| ...typographyProps.style, | ||
| ...getButtonIconGapStyle( attributes ), | ||
| writingMode: undefined, | ||
| }; |
There was a problem hiding this comment.
Icon save omits background styles
Medium Severity
The icon-enabled edit UI applies backgroundProps to the inner button, but buttonIconSave never includes those classes or inline styles. Background image or overlay settings shown in the editor are missing from saved markup whenever hasIcon is true.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit aa40619. Configure here.
aa40619 to
f51ced2
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 6 total unresolved issues (including 5 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f51ced2. Configure here.
| if ( text && text.length >= 2 && ! hasSvg ) { | ||
| button.click(); | ||
| return true; | ||
| } |
There was a problem hiding this comment.
Replace Icon clicks wrong toolbar button
High Severity
openIconInserterForBlock clicks the first enabled text-only toolbar button it finds. That heuristic can hit this plugin’s own Remove icon control (also text-only, no SVG) right after selecting the inner icon, which turns hasIcon off and deletes the nested icon instead of opening the icon library.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit f51ced2. Configure here.


Release 1.0.0
Note
Medium Risk
First public release that overrides core/button edit/save and front-end block rendering; regressions could affect button markup and editor UX, though coverage is broad (unit + E2E).
Overview
Ships Blockparty Button Icon 1.0.0 — a WordPress plugin that extends
core/button(no new block) with optionalcore/iconinner blocks, left/right placement, horizontal block gap, and editor toolbar/inspector controls.Editor & save path: Gutenberg hooks add
hasIcon/iconPosition, custom edit/save when icons are enabled, inner-block template with locked icons, label normalization, and PHP-localizedallowedIconBlocks(filterable viablockparty_button_icon_allowed_icon_blocks). Front end:IconBlockRendererrewrites icon wrappers fromdivtospaninside icon-enabled buttons for valid link markup.Release & engineering: Version moves 0.0.1 → 1.0.0 across
.plugin-data, plugin header,readme.txt, changelog, and Playground blueprint. Adds build/test/lint stack (wp-scripts, Composer/PHPCS, Jest, PHPUnit, Playwright +wp-env), GitHub Actions for quality/tests/E2E, PR version consistency checks, and amainrelease workflow that builds assets and pushes a version tag. Includes French i18n, distro ignore/export metadata, andreadme.txtfor WordPress.org.Reviewed by Cursor Bugbot for commit f51ced2. Bugbot is set up for automated code reviews on this repo. Configure here.