| [7364]
|
johnjamesjacoby
|
Component - Users: Support `wp_is_valid_utf8()` for UTF-8 display names.
This commit adds support for a new function, introduced in WordPress 6.9, to work around UTF-8 deprecations in PHP8.4.
In trunk, for 2.7.
See #2141.
|
| [7365]
|
johnjamesjacoby
|
Tools - Unit Tests: Fix some failing tests.
This commit tweaks the expected values of some tests so that they pass as intended, mostly surrounding int/string type numerics and total/single counts.
|
| [7366]
|
johnjamesjacoby
|
Tools - Unit Tests: prevent double-spaces in span attributes.
This commit prevents the `<span>` that wraps author link parts from having 2 spaces immediately after the opening tag.
|
| [7367]
|
johnjamesjacoby
|
Tools - Unit Tests: plan for `seems_utf8()` to be deprecated.
This commit updates 3 author-link unit tests to avoid WordPress Deprecation notices.
See #3657.
|
| [7368]
|
johnjamesjacoby
|
Tools - Unit Tests: allow mentions after '[' and '(' chars.
This commit fixes the suite of user-mentions unit tests, so that they no longer require an empty "class" attribute, and also so that mentions inside of common wrappers (`()`, `[]` ) are allowed.
See #3657.
|
| [7369]
|
johnjamesjacoby
|
Tools - Unit Tests: update `bbp_get_forum_permalink()` to better support hierarchical URIs.
This commit ensures that the `test_bbp_get_forum_permalink()` test passes, and that hierarchical Forum post-type links are correctly formatted when using unpretty/plain permalinks.
See #3657.
|
| [7370]
|
johnjamesjacoby
|
Tools - Unit Tests: update `test_bbp_spam_topic()` with more accurate before/after tests.
This commit ensures that the `test_bbp_spam_topic()` tests pass, and that the various counts, and last IDs and times before & after spamming a topic, are operating as intended.
See #3657.
|
| [7371]
|
johnjamesjacoby
|
Tools - Code Improvement: bump PHP & WP versions.
This change bumps the requirements for WordPress to 6.0 and PHP to 7.2, including inside of the PHPCS matrix.
|
| [7372]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring `Universal.WhiteSpace.DisallowInlineTabs.NonIndentTabsUsed` sniff.
This change replaces inline tabs with spaces from a bunch of files where they have crept in over the years.
|
| [7373]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring `Universal.WhiteSpace.PrecisionAlignment.Found` sniff.
This change removes any precision alignment that used spaces instead of tabs.
|
| [7374]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring `WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine` sniff.
This commit ensures that all arrays with multiple keys & values are not on single lines.
|
| [7375]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring some MySQL prepare sniffs.
This commit ensures that all SQL is correctly prepared, and that specific queries are tagged to be ignored by PHPCS due to them not using the literal `$wpdb` global as required by the sniffs.
See #3658.
|
| [7376]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring more PHPCS sniffs.
* Universal.WhiteSpace.CommaSpacing.TooMuchSpaceAfter
* WordPress.Arrays.ArrayIndentation.ItemNotAligned
* WordPress.Arrays.ArrayIndentation.MultiLineArrayItemNotAligned
* WordPress.Arrays.ArrayKeySpacingRestrictions.NoSpacesAroundArrayKeys
* WordPress.Arrays.ArrayKeySpacingRestrictions.SpacesAroundArrayKeys
* WordPress.Arrays.MultipleStatementAlignment.MultilineItemSpaceBeforeDoubleArrow
* WordPress.Arrays.MultipleStatementAlignment.SpaceBeforeDoubleArrow
This commit includes code formatting changes to pass the above PHPCS checks.
See #3658.
|
| [7377]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring more PHPCS sniffs.
* WordPress.WP.AlternativeFunctions.rand_mt_rand
This commit prefers `wp_rand()` over `mt_rand()` in the Akismet extension.
See #3658.
|
| [7378]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring these PHPCS sniffs:
* Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
* Generic.CodeAnalysis.EmptyStatement.DetectedElseif
* Generic.CodeAnalysis.EmptyStatement.DetectedIf
* Generic.CodeAnalysis.UselessOverridingMethod.Found
* Generic.ControlStructures.InlineControlStructure.NotAllowed
* Generic.Files.LineEndings.InvalidEOLChar
* Generic.Formatting.DisallowMultipleStatements.SameLine
* Generic.Formatting.SpaceAfterCast.TooMuchSpace
* Generic.Functions.OpeningFunctionBraceKernighanRitchie.ContentAfterBrace
* Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed
* NormalizedArrays.Arrays.ArrayBraceSpacing.SpaceAfterArrayOpenerMultiLine
* NormalizedArrays.Arrays.ArrayBraceSpacing.SpaceAfterArrayOpenerSingleLine
* NormalizedArrays.Arrays.ArrayBraceSpacing.SpaceBeforeArrayCloserMultiLine
* NormalizedArrays.Arrays.CommaAfterLast.MissingMultiLineCloserSameLine
* PEAR.Functions.FunctionCallSignature.CloseBracketLine
* PEAR.Functions.FunctionCallSignature.EmptyLine
* PEAR.Functions.FunctionCallSignature.Indent
* PEAR.Functions.FunctionCallSignature.MultipleArguments
* PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection
* PHPCompatibility.Syntax.RemovedCurlyBraceArrayAccess.Found
* PSR2.Classes.ClassDeclaration.CloseBraceAfterBody
* PSR2.Classes.PropertyDeclaration.ScopeMissing
* PSR2.Classes.PropertyDeclaration.Underscore
* PSR2.Classes.PropertyDeclaration.VarUsed
* PSR2.ControlStructures.ElseIfDeclaration.NotAllowed
* PSR2.ControlStructures.SwitchDeclaration.BreakIndent
* PSR2.Methods.MethodDeclaration.Underscore
* Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace
* Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterOpen
* Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingBeforeClose
* Squiz.Functions.MultiLineFunctionDeclaration.ContentAfterBrace
* Squiz.PHP.DisallowSizeFunctionsInLoops.Found
* Squiz.Scope.MethodScope.Missing
* Squiz.WhiteSpace.SuperfluousWhitespace.EndLine
* Universal.NamingConventions.NoReservedKeywordParameterNames.arrayFound
* Universal.NamingConventions.NoReservedKeywordParameterNames.echoFound
* Universal.NamingConventions.NoReservedKeywordParameterNames.parentFound
* Universal.Operators.DisallowStandalonePostIncrementDecrement.PostDecrementFound
* Universal.Operators.DisallowStandalonePostIncrementDecrement.PostIncrementFound
* Universal.Operators.StrictComparisons.LooseEqual
* Universal.Operators.StrictComparisons.LooseNotEqual
* WordPress.Arrays.ArrayKeySpacingRestrictions.TooMuchSpaceAfterKey
* WordPress.DateTime.CurrentTimeTimestamp.Requested
* WordPress.DateTime.RestrictedFunctions.date_date
* WordPress.Files.FileName.NotHyphenatedLowercase
* WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound
* WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound
* WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
* WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
* WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
* WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
* WordPress.PHP.IniSet.Risky
* WordPress.PHP.PregQuoteDelimiter.Missing
* WordPress.PHP.StrictInArray.MissingTrueStrict
* WordPress.WP.AlternativeFunctions.parse_url_parse_url
* WordPress.WP.AlternativeFunctions.rand_mt_rand
* WordPress.WP.AlternativeFunctions.strip_tags_strip_tag
* WordPress.WP.AlternativeFunctions.strip_tags_strip_tags
* WordPress.WP.Capabilities.Unknown
* WordPress.WP.DeprecatedParameters.Get_termsParam2Found
* WordPress.WP.DeprecatedParameters.Wp_count_termsParam2Found
* WordPress.WP.DiscouragedFunctions.query_posts_query_posts
* WordPress.WP.DiscouragedFunctions.wp_reset_query_wp_reset_query
* WordPress.WP.EnqueuedResourceParameters.NotInFooter
* WordPress.WP.GlobalVariablesOverride.Prohibited
* WordPress.WP.I18n.LowLevelTranslationFunction
This commit includes code formatting changes for the above sniffs.
See #3658.
|
| [7379]
|
johnjamesjacoby
|
Tools - Code Improvement: stop ignoring these PHPCS sniffs:
* PEAR.Files.IncludingFile.UseRequire
* PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineDEFAULT
* PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose
* Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace
* Squiz.PHP.DisallowMultipleAssignments.FoundInControlStructure
* Squiz.PHP.EmbeddedPhp.MultipleStatements
* Squiz.PHP.NonExecutableCode.Unreachable
* Universal.Arrays.DuplicateArrayKey.Found
* Universal.ControlStructures.DisallowLonelyIf.Found
* WordPress.PHP.NoSilencedErrors.Discouraged
This commit includes code formatting changes for the above sniffs.
See #3658.
|
| [7380]
|
johnjamesjacoby
|
Tools - Code Improvement: docs & code formatting improvements.
Props johnjamesjacoby, noruzzaman.
Fixes #3659.
|
| [7381]
|
johnjamesjacoby
|
Tools - Code Improvement: un-indent last remaining `_get_` functions.
|
| [7382]
|
johnjamesjacoby
|
General - Administration: add "loaded" hooks to admin classes.
This change allows third-party plugins access to various class objects after they are loaded, specifically their `$this` references in their related `setup_actions()` methods.
In trunk, for 2.7.
Fixes #3660.
|
| [7383]
|
johnjamesjacoby
|
API - Blocks: Introduce support for Gutenberg blocks.
This commit includes:
* `bbp_register_blocks` sub-action
* `common/blocks.php` to register all of the blocks via PHP
* `common/blocks` directory that includes a subdirectory for each `block.json` file
* `admin/assets/js/blocks.js` to add block previews & preliminary support for some controls
* `admin/assets/css/blocks.css` to help block previews look modern & clean
Fixes #3403.
In trunk, for 2.7.
Props georgestephanis, adamsilverstein, SirLouen, johnjamesjacoby.
|
| [7384]
|
johnjamesjacoby
|
API - Blocks: Improve block previews
This commit attempts to improve the look of form elements & template notices in block previews.
See #3403.
In trunk, for 2.7.
|
| [7385]
|
johnjamesjacoby
|
Common Functions: avoid PHP warnings in logout URL.
This commit checks that server globals are not empty before attempting to concatenate them into a redirection destination.
See https://bbpress.org/forums/topic/assistance-with-various-php-errors-please/
In trunk, for 2.7.
|
| [7386]
|
johnjamesjacoby
|
Admin - Metaboxes: Enshorten metabox titles.
This commit ensures that metabox titles do not break onto 2 lines of text now that `show_in_rest` is true and the new editor UI is being used.
See #3603.
In trunk, for 2.7.
|
| [7387]
|
johnjamesjacoby
|
API - Blocks: add support for Post and Page post types.
This commit ensures that both of the primary post types supported by WordPress core are explicitly supported by all blocks in their `block.json` files.
See #3403.
In trunk, for 2.7.
|
| [7388]
|
johnjamesjacoby
|
API - Blocks: fix supported post types.
This commit reverts most of r7387 for a simpler approach.
See #3403.
In trunk, for 2.7.
|
| [7389]
|
johnjamesjacoby
|
API - Blocks: Do not use the block editor for bbPress post types.
This commit ensures that the legacy (non-block, meta-box based) new/edit post GUI is still used, even though `show_in_rest` is set to `true` for the forum/topic/reply post types, by introducing a new function on top of the core `use_block_editor_for_post_type` filter.
This prevents admin-area edits from saving block-based content when it is not yet properly handled or supported for the 2.7.0 release, even though blocks are (via the shortcodes & theme compatibility APIs).
See #3403.
In trunk, for 2.7.
|
| [7390]
|
johnjamesjacoby
|
Common - Code Improvement: remove HTML4 `type` attribute on `<script>` tag.
This changes `bbp_swap_no_js_body_class()` so the `script` tag it outputs no longer includes a `type="text/javascript" attribute.`
See #wp59883.
In trunk, for 2.7.
|
| [7391]
|
johnjamesjacoby
|
Common - Code Improvement: Fix a missing `@since` tag.
Props manhphuc.
See: https://github.com/bbpress/bbPress/pull/38
In trunk, for 2.7.
|
| [7392]
|
johnjamesjacoby
|
Common - Code Improvement: Correct some missing/inaccurate `@return` tags.
Props manhphuc.
See: https://github.com/bbpress/bbPress/pull/39
In trunk, for 2.7.
|
| [7393]
|
johnjamesjacoby
|
Common - Formatting: Properly fallback the UTF8/mb display name formatter.
This change prevents deprecation notices when more modern UTF8 handling is available, preventing unnecessarily falling back to `seems_utf8()`.
Follow-up to r7364.
See #2141.
In trunk, for 2.7.
|
| [7394]
|
johnjamesjacoby
|
Core - Theme Compat: add Block Theme support.
This commit includes the following changes:
* Deprecates `bbp_get_theme_compat_templates()` for a singular version
* Introduces `bbp_get_theme_canvas_template()` to retrieve a filtered path to `theme-canvas.php`
* Introduces `bbp_get_template_include_templates()` to retrieve a filtered array of checker & getter functions
* Simplifies `bbp_template_include_theme_supports()` into a foreach loop
* Simplifies `bbp_is_template_included()` usage inside of `bbp_template_include_theme_compat()` by removing the later check now that `404`'s are handled elsewhere
Props mikachan, robin-w, arafatjamil01, johnjamesjacoby.
Fixes #3487.
In trunk, for 2.7.
|
| [7395]
|
johnjamesjacoby
|
Tools: Remove JSValidate and use ESLint.
Also update CSS & JS assets based on new tooling.
Includes some improvements to admin area styling, specifically block previews.
In trunk, for 2.7.
|
| [7396]
|
johnjamesjacoby
|
Tools: PHPCS improvements from recent commits.
In trunk, for 2.7.
|
| [7397]
|
johnjamesjacoby
|
Common: Fix incorrect encoding in `bbp_is_title_too_long()`.
This commit changes the way that Forum/Topic/Reply title lengths are calculated, away from `8bit` for counting bytes to `utf-8` for counting characters.
This change is necessary to allow unicode (multibyte) characters to be more accurately included in the overall length calculation, to better match the intention for this optional limitation.
In trunk, for 2.7.
Props r-a-y.
Fixes #3664.
|
| [7398]
|
johnjamesjacoby
|
Users: Improve profile update request handling consistency.
This commit introduces a shared request-check helper function for user profile edit submissions, and aligns role/profile update handlers to use the same validation path.
Also includes minor inline docs/wording cleanup, to make user-update code paths easier to follow.
In branches/2.6, for 2.6.15.
See #3666.
|
| [7399]
|
johnjamesjacoby
|
Users: Improve profile update request handling consistency.
This commit introduces a shared request-check helper function for user profile edit submissions, and aligns role/profile update handlers to use the same validation path.
Also includes minor inline docs/wording cleanup, to make user-update code paths easier to follow.
In trunk, for 2.7.
Fixes #3666.
|
| [7400]
|
johnjamesjacoby
|
Topics: improve split & merge capability checks.
This commit adjusts topic capability mapping so elevated moderation workflows continue to require moderation privileges, while still allowing forum moderators to perform those actions where appropriate.
In branches/2.6, for 2.6.15.
See #3667.
|
| [7401]
|
johnjamesjacoby
|
Topics: improve split & merge capability checks.
This commit adjusts topic capability mapping so elevated moderation workflows continue to require moderation privileges, while still allowing forum moderators to perform those actions where appropriate.
In trunk, for 2.7.
Fixes #3667.
|
| [7402]
|
johnjamesjacoby
|
Users: port `bbp_format_user_display_name()` from trunk.
This commit avoids deprecation notices in WordPress 6.9 and higher by preferring `wp_is_valid_utf8()` if available, falling back to the mbstring library, and finally `seems_utf8()` & `utf8_encode()` as a last resort.
In branches/2.6, for 2.6.15.
See #2141.
|
| [7403]
|
johnjamesjacoby
|
Component - Forums: Improve forum visibility exclusion.
This commit updates forum visibility query normalization so mixed post-type queries are handled as intended, exclusion IDs are consistently normalized, and generated meta query clauses are more consistent.
Changes include:
* Use `array_intersect()` to detect whether a bbPress post type is in the `post_type` query var
* Use `NOT IN` with an array value for `meta_query` exclusions, and let the query optimizer do its thing
* Normalize only once per `WP_Query` via a dedicated query var
* Normalize `post__not_in` values with `wp_parse_id_list()`
* Validate filtered `meta_query` shape before appending to existing meta clauses
In trunk, for 2.7.
See #3668.
|
| [7404]
|
johnjamesjacoby
|
Component - Forums: Improve forum visibility exclusion.
This commit updates forum visibility query normalization so mixed post-type queries are handled as intended, exclusion IDs are consistently normalized, and generated meta query clauses are more consistent.
Changes include:
* Use `array_intersect()` to detect whether a bbPress post type is in the `post_type` query var
* Use `NOT IN` with an array value for `meta_query` exclusions, and let the query optimizer do its thing
* Normalize only once per `WP_Query` via a dedicated query var
* Normalize `post__not_in` values with `wp_parse_id_list()`
* Validate filtered `meta_query` shape before appending to existing meta clauses
In branches/2.6, for 2.6.15.
Fixes #3668.
|
| [7405]
|
johnjamesjacoby
|
Admin - Converters: harden imported password verification.
This commit replaces converter password comparisons with `hash_equals()` to avoid loose-comparison edge cases (including magic-hash style values).
It also improves converter password handling by validating serialized password metadata before authentication in the base callback, including a conservative length check, and by using safeguarded `unserialize()` options plus required-key checks in converter implementations.
Includes related converter docblock improvements for parameter and return tags.
In trunk, for 2.7.
See #3669.
|
| [7406]
|
johnjamesjacoby
|
Admin - Converters: harden imported password verification.
This commit replaces converter password comparisons with `hash_equals()` to avoid loose-comparison edge cases (including magic-hash style values).
It also improves converter password handling by validating serialized password metadata before authentication in the base callback, including a conservative length check, and by using safeguarded `unserialize()` options plus required-key checks in converter implementations.
Includes related converter docblock improvements for parameter and return tags.
In branches/2.6, for 2.6.15.
Fixes #3669.
|
| [7407]
|
johnjamesjacoby
|
Build: migrate CI from Travis to GitHub Actions
Replaces the legacy `.travis.yml` with two GitHub Actions workflows, and fixes a small handful of issues uncovered along the way.
In trunk, for 2.7.
Props dd32.
Fixes: https://github.com/bbpress/bbPress/pull/43
|
| [7408]
|
johnjamesjacoby
|
Extend - Akismet: store `time()` in history events instead of `microtime()` float.
Fixes the PHP 8.1+ `Implicit conversion from float to int loses precision` deprecation notice, emitted every time the Akismet history metabox renders for a topic or reply.
In trunk, for 2.7.
Props dd32.
Fixes: #3671.
From: https://github.com/bbpress/bbPress/pull/43
|
| [7409]
|
johnjamesjacoby
|
Replies: avoid bool-increment deprecation in `bbp_get_reply_position_raw()`
Fixes the PHP 8.3+ `Increment on type bool has no effect` warning, guarding the increment behind a `false !== $reply_position` check, and explicitly resetting to `0` if not-found.
In trunk, for 2.7.
Props dd32.
Fixes: #3672.
From: https://github.com/bbpress/bbPress/pull/41
|
| [7410]
|
johnjamesjacoby
|
Topics/Replies: prevent anonymous users from editing existing content.
This commit ensures that unauthenticated users cannot edit existing topics or replies, including anonymously authored content. It applies edit capability checks consistently in front-end handlers, and prevents user ID `0` from being treated as a matching post author.
Includes regression tests for capability mapping and direct edit submissions.
In trunk, for 2.7.
|
| [7411]
|
johnjamesjacoby
|
Topics/Replies: prevent anonymous users from editing existing content.
This commit ensures that unauthenticated users cannot edit existing topics or replies, including anonymously authored content. It applies edit capability checks consistently in front-end handlers, and prevents user ID `0` from being treated as a matching post author.
Includes regression tests for capability mapping and direct edit submissions.
In branches/2.6, for 2.6.15.
|
| [7412]
|
johnjamesjacoby
|
Component - Forums: Normalize unsupported mixed post-type queries.
This commit removes bbPress post types from queries that also request non-bbPress post types. This prevents protected forum content from being exposed while preserving unrelated WordPress query results.
It also adds regression tests for mixed topic/post and reply/post queries, and confirms supported topic/reply queries continue to exclude private and hidden content.
In branches/2.6, for 2.6.15.
See #3668.
|
| [7413]
|
johnjamesjacoby
|
Component - Forums: Normalize unsupported mixed post-type queries.
This commit removes bbPress post types from queries that also request non-bbPress post types. This prevents protected forum content from being exposed while preserving unrelated WordPress query results.
It also adds regression tests for mixed topic/post and reply/post queries, and confirms supported topic/reply queries continue to exclude private and hidden content.
In trunk, for 2.7.
See #3668.
|
| [7414]
|
johnjamesjacoby
|
Component - Forums: Support mixed post-type queries.
Refine r7412 and r7413 so mixed queries may return eligible bbPress content alongside WordPress and third-party post types without exposing content from excluded forums.
Use a post-type-scoped visibility clause for topics and replies, preserve existing forum ID exclusions, account for broad search queries, and fail closed when filters are suppressed or forum metadata is missing.
This also adds extensive regression coverage and a sub-filter for customizing the visibility clause.
In branches/2.6, for 2.6.15.
See #3668.
|
| [7415]
|
johnjamesjacoby
|
Component - Forums: Support mixed post-type queries.
Refine r7412 and r7413 so mixed queries may return eligible bbPress content alongside WordPress and third-party post types without exposing content from excluded forums.
Use a post-type-scoped visibility clause for topics and replies, preserve existing forum ID exclusions, account for broad search queries, and fail closed when filters are suppressed or forum metadata is missing.
This also adds extensive regression coverage and a sub-filter for customizing the visibility clause.
In trunk, for 2.7.
See #3668.
|
| [7416]
|
johnjamesjacoby
|
Bump 2.6 branch to 2.6.15, and WP tested-up-to to 7.1.
|
| [7417]
|
johnjamesjacoby
|
Tag 2.6.15.
|
| [7418]
|
johnjamesjacoby
|
Bump trunk stable version to 2.6.15, and WP tested-up-to to 7.1.
|
| [7419]
|
johnjamesjacoby
|
Build: Bump package version to 2.7.0-alpha-2.
This synchronizes package metadata with the plugin version.
In trunk, for 2.7.
|
| [7420]
|
johnjamesjacoby
|
Build: generate translation templates with WP-CLI.
Replaces the unmaintained grunt-wp-i18n task with `wp i18n make-pot`, so extraction failures stop the build and modern WordPress source formats are supported.
Also removes the unused grunt-contrib-uglify dependency, which was replaced by Terser.
In trunk, for 2.7.
|
| [7421]
|
johnjamesjacoby
|
Build: generate translation templates with WP-CLI.
Replaces the unmaintained grunt-wp-i18n task with `wp i18n make-pot`, so extraction failures stop the build and modern WordPress source formats are supported.
In branches/2.6, for 2.6.16.
|
| [7422]
|
johnjamesjacoby
|
Build/Test Tools: expand continuous integration coverage.
Adds supported WordPress version coverage, dedicated multisite and
BuddyPress suites, release-package validation, version consistency
checks, and an install/activate/front-end smoke test.
Also updates the PHPUnit harness to fail when its WordPress test
environment is unavailable and removes obsolete test listeners.
In trunk, for 2.7.
|
| [7423]
|
johnjamesjacoby
|
Forums: correct version annotations for mixed-query visibility.
The post-type-aware visibility clause first shipped in 2.6.15.
In trunk, for 2.7.
|
| [7424]
|
johnjamesjacoby
|
Core - Theme Compat: distinguish Block Themes from classic themes with theme.json.\n\nWordPress enables block-template support for classic themes that include theme.json. Use wp_is_block_theme() so those themes continue loading their PHP bbPress template, while true Block Themes use the WordPress canvas.\n\nAdd regression coverage for classic, hybrid, Block, and child themes, and reconcile the feature annotations with its planned first release. This mirrors the BuddyPress correction for the same regression.\n\nIn trunk, for 2.7.\n\nProps obenland.\nSee #3487.\nSee #3675.\nSee https://buddypress.trac.wordpress.org/ticket/8757.
|
| [7425]
|
johnjamesjacoby
|
Core - Theme Compat: backport corrected Block Theme support.\n\nUse the WordPress template canvas only for true Block Themes. Classic PHP themes that include theme.json continue loading their bbPress template.\n\nAdd the filterable canvas-template helper and regression coverage for classic, hybrid, Block, and child themes. This mirrors the BuddyPress correction for the same regression.\n\nIn branches/2.6, for 2.6.16.\n\nProps obenland.\nSee #3487.\nFixes #3675.\nSee https://buddypress.trac.wordpress.org/ticket/8757.
|
| [7426]
|
johnjamesjacoby
|
Tools: add contributor and repository documentation.
Add a project overview, contribution, security, support, conduct, governance,
license, changelog, and agent guidance. Also add GitHub issue routing and a
pull-request checklist while preserving Trac and canonical Subversion as the
project systems of record.
This provides one maintained path through development, testing, releases, and
automation, and makes project expectations visible to human contributors and
coding agents alike.
Props rafiahmedd.
Fixes #3478.
Fixes #3674.
|
| [7427]
|
johnjamesjacoby
|
Tools: improve repository and CI maintenance.
Add advisory Dependabot updates, a recommended Node version, text-file attributes, and an AGENTS pointer for Claude. Clarify handbook references, commit-message formatting, and AI-use disclosure.
Pin workflow actions and database images, limit job permissions, avoid persisted checkout credentials and release caches, and handle changed PHP filenames without shell interpolation. Install and smoke-test the candidate ZIP before uploading it as release evidence.
In trunk, for 2.7.
|
| [7428]
|
johnjamesjacoby
|
Documentation: complete the contributor setup guide.
Document checkout, Node 24, local site access, a classic-theme forum check, a focused test, and environment shutdown. Link README development instructions to this walkthrough and run PHPUnit in the separate tests-cli container.
In trunk, for 2.7.
|
| [7429]
|
johnjamesjacoby
|
Tests: pass smoke-test passwords through standard input.
Read the test database password from the environment and pass it to WP-CLI through standard input. Generate a temporary WordPress administrator password when installing bbPress for the smoke test.
In trunk, for 2.7.
|
| [7430]
|
johnjamesjacoby
|
Tools: prepare WordPress.org deployments.
Build bbPress from exact Subversion tag revisions and test the resulting ZIP before preparing a deployment. Require an explicit deployment input and GitHub Environment approval, then deploy the tested ZIP to Plugin SVN and compare the committed files and public download.
Add a preparation helper and disposable Subversion regression tests. Pass passwords through standard input and keep canonical Subversion as the source of bbPress releases.
In trunk, for 2.7.
|
| [7431]
|
johnjamesjacoby
|
Tools: update 2.6 builds and contributor guidance.
Replace node-sass with Dart Sass, recommend Node 24, and add version checks and an installed-ZIP smoke test for 2.6. Preserve existing browser prefixes and hexadecimal admin colors. Add contributor and repository guidance that matches the 2.6 setup.
Keep dependency updates and deployment automation on trunk. These changes do not alter bbPress runtime requirements or existing release tags.
In 2.6, for 2.6.16.
|
| [7432]
|
johnjamesjacoby
|
Tools: restore hexadecimal admin colors.
Normalize generated Evergreen and Mint colors to hex while preserving transparency, quoted text, and CSS variables. Add the color regression check to the build workflow.
In trunk, for 2.7.
See [7431].
|
| [7433]
|
johnjamesjacoby
|
Tools: correct the 2.6 dependency lockfile.
Update browser-data entries to satisfy the locked dependency requirements and allow a clean npm ci install.
In 2.6, for 2.6.16.
See r7431.
|
| [7434]
|
johnjamesjacoby
|
Tools: correct contributor command arguments.
Pass PHPUnit options through wp-env and Composer, and forward theme activation options through npm. Use a focused forum test with an implemented assertion in the contributor guide.
In trunk, for 2.7.
See r7428.
|
| [7435]
|
johnjamesjacoby
|
BuddyPress: Initialize the forums component on `bp_init`.
This prevents bbPress translations from loading before WordPress initializes while keeping the integration on a BuddyPress sub-action.
In trunk, for 2.7.
Props emaralive, shawfactor.
Fixes #3653.
|
| [7436]
|
johnjamesjacoby
|
Build/Test Tools: Update 2.6 development checks.
This brings Composer, wp-env, PHPUnit, ESLint, Stylelint, Grunt, and GitHub Actions in 2.6 in line with trunk. It also applies the formatting and compatibility updates required by those checks and updates PHPUnit fixtures for current WordPress behavior.
Runtime fixes from trunk are excluded and can be backported separately.
In 2.6, for 2.6.16.
Fixes #3630.
Fixes #3677.
|
| [7437]
|
johnjamesjacoby
|
Tests: Declare user template test properties.
This prevents PHP 8.2 and newer dynamic-property deprecations from being written into output assertions.
In 2.6, for 2.6.16.
See #3677.
|
| [7438]
|
johnjamesjacoby
|
BuddyPress: Initialize the forums component on `bp_init`.
This prevents bbPress translations from loading before WordPress initializes while keeping the integration on a BuddyPress sub-action.
Merges r7435 to 2.6.
See #3653.
|
| [7439]
|
johnjamesjacoby
|
Documentation: Update the 2.6 changelog.
Add the Block Theme, development tooling, and BuddyPress initialization changes planned for 2.6.16.
In 2.6, for 2.6.16.
See r7421, r7425, r7431, r7433, r7436, r7437, r7438.
|
| [7440]
|
johnjamesjacoby
|
Documentation: Update the 2.7 changelog.
Add the implemented blocks, Block Theme support, compatibility changes, security improvement, fixes, and contributor and release tooling planned for 2.7.
In trunk, for 2.7.
|
| [7441]
|
johnjamesjacoby
|
Tests: Avoid a forum activity-time race.
Compare the exact timestamp returned and stored by the forum updater instead of separately generated relative-time strings that can cross a one-second boundary.
In trunk, for 2.7.
See r7440.
|
| [7442]
|
johnjamesjacoby
|
Tests: Avoid a forum activity-time race.
Use exact updater timestamps in the forum last-active-time test instead of separate relative-time strings that can cross a one-second boundary.
Merges r7441 to 2.6.
In 2.6, for 2.6.16.
See r7440.
|
| [7443]
|
johnjamesjacoby
|
Build/Test: add a WordPress Playground preview.
Add a canonical blueprint that installs bbPress and Twenty Twenty-One, creates a sample forum, topic, and reply with bbPress APIs, and opens the populated forum. Test the exact release build with the Playground CLI and SQLite.
Update the WordPress.org deployment workflow to copy the reviewed blueprint to Plugin SVN assets without including it in the bbPress ZIP.
In trunk, for 2.7.
Fixes #3676.
|
| [7444]
|
johnjamesjacoby
|
Build/Test: add a WordPress Playground preview.
Add the canonical bbPress preview blueprint and test the exact 2.6 release build with the Playground CLI and SQLite. Keep the blueprint out of the bbPress ZIP so it can be deployed separately as a Plugin Directory asset.
In 2.6, for 2.6.16.
See #3676.
|
| [7445]
|
johnjamesjacoby
|
Docs: expand bootstrap, admin, and cache documentation.
Document runtime data accessors and missing globals, correct property and return types, and describe the existing cache invalidation and admin helper behavior. This change only updates comments and preserves runtime behavior.
In trunk, for 2.7.
Props shail-mehta.
Fixes #3663.
From https://github.com/bbpress/bbPress/pull/40.
|
| [7446]
|
johnjamesjacoby
|
Templates: constrain long topic metadata.
Show an ellipsis when topic metadata exceeds its column, and reveal the full text when a link receives focus. Preserve existing link text and avatar markup. RTL styles continue to be generated during the build.
In trunk, for 2.7.
Props NidhiDhandhukiya74.
See #3642.
From https://github.com/bbpress/bbPress/pull/33.
|
| [7447]
|
johnjamesjacoby
|
Users: distinguish forum and installation counts.
Add a cached aggregate count of current-site forum-role holders for dashboard and front-end statistics. Count each user once across forum roles and duplicate capabilities records, and invalidate cached counts when users or their capabilities change. Include the site, role list, and cache generation in each cache key.
Use WordPress's cached installation count and large-user threshold for installation-wide helpers, preserving the existing bbPress and multisite filters.
Add regression coverage for membership changes, cache reuse and invalidation, role filters, installation thresholds, and multisite isolation.
In trunk, for 2.7.
Props itzmekhokan.
Fixes #3457.
From https://github.com/bbpress/bbPress/pull/16.
|
| [7448]
|
johnjamesjacoby
|
Replies: allow trashed replies to be marked as spam.
Keep the front-end Spam action available for trashed replies so moderators can classify replies beneath a spam topic without restoring them first. Continue hiding Trash for replies already marked as spam.
In trunk, for 2.7.
Props rollybueno.
Fixes #3411.
From https://github.com/bbpress/bbPress/pull/36.
|
| [7449]
|
johnjamesjacoby
|
Counts: synchronize counts on post-status transitions.
Replace the mixed moderation callbacks with one persisted-status transition callback for topic, reply, forum, and user counts. Handle new public and hidden content, avoid changes for hidden-to-hidden transitions, preserve reply totals during approval, and repair missing user counts without double-counting the first contribution.
Remove the obsolete child-cache invalidation workaround, prevent topic metadata from being recreated after permanent deletion, recount hidden forum replies during deletion, preserve forum visibility when restoring forums, and order contribution queries for the WordPress post-count index.
In trunk, for 2.7.
Props netweb.
Fixes #2944.
Fixes #3429.
Fixes #3645.
See #1859, #2233, #3433.
|
| [7450]
|
johnjamesjacoby
|
Replies: allow trashed replies to be marked as spam.
Keep the front-end Spam action available for trashed replies so moderators can classify replies beneath a spam topic without restoring them first. Continue hiding Trash for replies already marked as spam.
Merges r7448 to 2.6.
In 2.6, for 2.6.16.
See #3411.
|
| [7451]
|
johnjamesjacoby
|
Counts: synchronize counts on post-status transitions.
Replace the mixed moderation callbacks with one persisted-status transition callback for topic, reply, forum, and user counts. Handle new public and hidden content, avoid changes for hidden-to-hidden transitions, preserve reply totals during approval, and repair missing user counts without double-counting the first contribution.
Remove the obsolete child-cache invalidation workaround, prevent topic metadata from being recreated after permanent deletion, recount hidden forum replies during deletion, preserve forum visibility when restoring forums, and order contribution queries for the WordPress post-count index.
Merges r7449 to 2.6.
In 2.6, for 2.6.16.
See #1859, #2233, #2944, #3429, #3433, #3645.
|
| [7452]
|
johnjamesjacoby
|
Documentation: correct count-function version annotations.
Update the new count-transition and recovery annotations to 2.6.16 now that the changes are merged to the maintenance branch.
In trunk, for 2.7.
See r7449, r7451.
|
| [7453]
|
johnjamesjacoby
|
Counts: improve repair and subforum integrity.
Count public, private, and hidden subforums from the post hierarchy, and synchronize parent counts when forums change visibility, parent, post type, or are permanently deleted. Keep child relationship metadata aligned when WordPress reparents forums.
Correct count repair queries to target bbPress post types, honor filtered statuses, exclude anonymous authors, preserve unrelated metadata, repair empty user counts, clear metadata caches after direct database writes, and detect database failures from wpdb return values.
In trunk, for 2.7.
Props netweb, GDragoN.
Fixes #2649.
Fixes #2664.
See #2533, #2586, #3678.
|
| [7454]
|
johnjamesjacoby
|
Counts: improve repair and subforum integrity.
Count public, private, and hidden subforums from the post hierarchy, and synchronize parent counts when forums change visibility, parent, post type, or are permanently deleted. Keep child relationship metadata aligned when WordPress reparents forums.
Correct count repair queries to target bbPress post types, honor filtered statuses, exclude anonymous authors, preserve unrelated metadata, repair empty user counts, clear metadata caches after direct database writes, and detect database failures from wpdb return values.
Merges r7453 to 2.6.
In 2.6, for 2.6.16.
See #2533, #2586, #2649, #2664, #3678.
|
| [7455]
|
johnjamesjacoby
|
Forums: avoid redundant ancestor updates.
Introduce a forum walker so forum, topic, and reply updates each traverse their hierarchy once. Preserve known freshness values while walking parents, avoid unrelated subforum recounts during topic activity, and update topic voice counts once after engagements.
In trunk, for 2.7.
See #3679.
|
| [7456]
|
johnjamesjacoby
|
Forums: avoid redundant ancestor updates.
Introduce a forum walker so forum, topic, and reply updates each traverse their hierarchy once. Preserve known freshness values while walking parents, avoid unrelated subforum recounts during topic activity, and update topic voice counts once after engagements.
In branches/2.6, for 2.6.16.
Fixes #3679.
|
| [7457]
|
johnjamesjacoby
|
Replies: Test parent-topic reply permissions.
Add regression coverage to ensure Participants cannot submit replies to topics they cannot read.
Props hoangkien1020.
See #3650.
|
| [7458]
|
johnjamesjacoby
|
Replies: Prevent replies to unreadable topics.
Backport the relevant parent-topic capability check from [7350] so Participants cannot submit replies to topics they cannot read. Add regression coverage for private topics.
Props hoangkien1020.
See #3650.
|
| [7459]
|
johnjamesjacoby
|
Documentation: Add the HackerOne bounty workflow.
Document bounty recommendations, internal rationale, reporter updates, resolution timing, and assignment to Bounty Admins for final review and payment.
|
| [7460]
|
johnjamesjacoby
|
Documentation: Add the HackerOne bounty workflow.
Document bounty recommendations, internal rationale, reporter updates, resolution timing, and assignment to Bounty Admins for final review and payment.
|
| [7461]
|
johnjamesjacoby
|
Templates: escape titles in form fields.
This change escapes forum, topic, and reply titles for their attribute context in front-end forms.
In trunk, for 2.7.
Props rafiem.
|
| [7462]
|
johnjamesjacoby
|
Templates: escape titles in form fields.
This change escapes forum, topic, and reply titles for their attribute context in front-end forms.
In 2.6, for 2.6.16.
Props rafiem.
|
| [7463]
|
johnjamesjacoby
|
Templates: Use static topic tag confirmations.
This change prevents topic tag names from being interpreted as JavaScript when moderators merge or delete tags.
In trunk, for 2.7.
Props rafiem.
|