Voting starts in March for the Drupal Association Board election.
Issue #2845452 by Liam Morland: Pass rule names through htmlspecialchars()
before passing to assertText().
Issue #2845452 by Liam Morland: Test rule creation
Issue #2845452 by Liam Morland: Create basic WebformValidationTestCase.test
Issue #2510742 by Liam Morland: Make someofseveral work with page breaks
Issue #2841817 by TwoD, Liam Morland: Validate nested components
Issue #2843294 by darrenwh: Coding standards
Issue #2842235 by Liam Morland: Remove max_components restriction from specific_value validator
Issue #2841725 by Liam Morland: Implement static cache for webform_validation_get_validators()
Issue #2824240: Fix incompatible with Webform < 7.x-4.6 due to webform_get_conditional_sorter() call.
Issue #2824368: Show parent fieldset names with component names.
Refactor: webform_validation_manage_rule_submit(): Move webform_validation_valid_component_types() call inside if statement.
Issue #2320011: Word count is wrong for non-Latin text.
Issue #2809459: Remove ineffective files properties from info file.
Issue #2630448 by mkdok: Ensure executeConditionals() has been called before evaluating WebformConditionals::componentVisibility.
Issue #2676630 by natew: Date comparaison with no values causes undefined index notice.
Issue #2638172: Documentation for _webform_validate_check_false().
Issue #2638172: _webform_validate_check_false() should count empty strings as false.
Issue #2623794: Improve strings for regex validators.
Issue #2554997: Do not repeat identical error messages.
Refactor: Remove unnecessary use of ternary operator.
Issue #2560407: Use !empty() instead of isset() to test custom_data, negatable, and custom_error in webform_validation_manage_rule().
Issue #2555005 by lex0r, Liam Morland: Allow longer error messages.
Issue #2460469 by rgristroph: Add support for Boolean Webform components (webform_boolean).
Issue #2483863: Use WebformConditionals->componentVisibility() instead of _webform_client_form_rule_check() when available.
Drupal is a registered trademark of Dries Buytaert.