Skip to content

Release 1.0.0 - #3

Closed
firestar300 wants to merge 10 commits into
mainfrom
release/1.0.0
Closed

firestar300 wants to merge 10 commits into
mainfrom
release/1.0.0

Conversation

@firestar300

@firestar300 firestar300 commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

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 optional core/icon inner 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-localized allowedIconBlocks (filterable via blockparty_button_icon_allowed_icon_blocks). Front end: IconBlockRenderer rewrites icon wrappers from div to span inside 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 a main release workflow that builds assets and pushes a version tag. Includes French i18n, distro ignore/export metadata, and readme.txt for WordPress.org.

Reviewed by Cursor Bugbot for commit f51ced2. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit aa40619. Configure here.

const candidates =
Array.isArray( fromPhp ) && fromPhp.length > 0
? fromPhp
: DEFAULT_ICON_BLOCKS;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit aa40619. Configure here.

if ( withoutSpans.length ) {
normalized = withoutSpans;
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit aa40619. Configure here.

...typographyProps.style,
...getButtonIconGapStyle( attributes ),
writingMode: undefined,
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit aa40619. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 6 total unresolved issues (including 5 from previous reviews).

Fix All in Cursor

❌ 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;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f51ced2. Configure here.

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