github OpenMage/magento-lts v20.17.0
v20.17.0 🌈

7 hours ago

Changes

🚨 Security

  • Downgraded composer/composer (#5477)
  • Phar Deserialization (#5461)
  • Customer File Upload Extension Blocklist Bypass (#5460)
  • Cross-user wishlist item import (#5446)
  • Path Traversal Filter Bypass (#5445)

🐛 Bug Fixes

  • Fix: save newsletter template (#5285)
  • Fix: save customer account (#5286)
  • Fix SQL syntax error when catalog rule has empty condition values (#5400)
  • Fix DOB year decrement on save due to ISO-8601 week-numbering year format (#5360)
  • Fix PHP 8.5 using null as an array offset is deprecated (#5348)
  • [FIX] Extract CMS page identifier retrieval logic to helper function (#5320)
  • Fix PHP 8.5 using null as an array offset is deprecated (#5331)
  • Add PHP 8.5 compatibility for PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (#5185)
  • Fix button margin (#5282)
  • Fix toggle between region address and non region address on paypal side (#5300)
  • fix: set default sort to all grids and store sort in session (#5313)
  • Fix: incorrect category product positions in anchor categories (#5295)
  • Shipment: fix should return bool (#5260)
  • Improve admin theme handling (#4756)
  • Fix ENV-locked fields being re-enabled by dependency controller (#5242)
  • [Captcha] Fix missing setWidth/setHeight with Captcha/Zend (#5217)
  • Varien_Convert_Parser_Xml_Excel::unparse fix is_numeric bug (#5241)
  • Remove unnecessary GROUP BY clause (#5216)
  • Fix dashboard time (carbon) (#5223)
  • [Captcha] add missing translation for adminhtml (#5220)
  • Fix guest order shipping address overwritten by billing address during order edit (#5213)
  • Fix relative patch path for magento-ecg/coding-standard (#5215)
  • Fix install wizard (#5190)
  • Fix PHP 8.4 TypeError in filterImageInGallery with null mapping (#5177)
  • Fix swatch sort order and lowercase labels for swatches (#5133)
  • Add profiler stop call in EAV config loading (#5163)
  • Fixes DOB & customer account save validations (#5146)
  • Fix wrong tier price displayed when some tier prices are higher than special price (#5117)
  • Revert Composer Patches Local Paths Back to Urls (#5115)
  • Fix HTML structure in shipment tracking email template (#5108)
  • Bug: Call to function is_array() with string (#5096)
  • Bug: Call to function is_array() with bool (#5098)
  • Bug: Call to a member function in Mage_Adminhtml_Model_Quote (#5094)
  • Bug: Call to undefined method in Mage_Eav_Model_Resource_Entity_Attribute_Group (#5095)
  • PHP8.5: fix null array offset (#5028)
  • PHP8: Allow null hash in validateHashByVersion method (#5048)

🚀 Features

  • USPS Integration Upgrade to REST API (#5258)
  • Mage_Cms: add mass delete and mass status action for page and block (#5347)
  • [Adminhtml] add Events to Widget Grid (#5169)
  • Media Gallery behavior when duplicating a product: Keep/Skip product images (#5083)
  • Replace php date functios with carbon (#5131)
  • Add support for .env file (#5130)
  • Replace Zend_Log with monolog (#5126)
  • Replace Zend_Validate with symfony/validator (#4612)
  • Replace Zend_Measure with php-units-of-measure (#5102)

🦾 Enhancements

  • Updated (monolog) logging (#5148)
  • Translate "is confirmed" select options in customer/edit (account information). (#5473)
  • Expand Purifier functionality. First step toward using HTMLPurifier in more places. (#5278)
  • Replace getData(string) with getDataByKey() (#5453)
  • Shipping Carrier: fix _result vs _trackingResult (#5433)
  • backport v21: Rewrote js/mage/adminhtml/input-counter.js without prototypejs (#5385)
  • Added Mage_Core_Observer_Interface (#5354)
  • fix(security): Remove phantom checkbox behavior in ACL role editor (#5254)
  • Improve performance for grids with permission checks (#5332)
  • cypress: test grids (#5281)
  • [Adminhtml] add getTab to Tabs (#5219)
  • Refine text and labels for product image duplication config (Follow-up to PR #5083) (#5227)
  • Refine duplicate product dialog title, message text, and layout (#5229)
  • [Varien] Multiselect: make default size changable (#5221)
  • phpStan: add strict rules - disallow empty() (#5182)
  • Fix incorrect regex for files in errors/ and return 404 for index.php (#5149)
  • Fix unnecessary cache clean (#5150)
  • Maximum line length of 78 RFC 5322 (#5125)
  • Remove call to widgets.magentocommerce.com (#5103)
  • Improved Mage_Catalog_Model_Product_Image::setSize() (#5080)

📖 Documentation

  • tools: use easy-coding-standard for code-style checks (#5489)
  • [Adminhtml] add Events to Widget Grid (#5169)
  • Add support for .env file (#5130)

🔨 Maintenance

  • tools: use easy-coding-standard for code-style checks (#5489)
  • Make all PHPUnit data providers static (PHPUnit 10+ compatibility) (#5486)
  • phpunit: skip test (#5487)
  • chore: docblock correction and strlen in loop micro optimisation in Mage_Sales PDF (#5474)
  • Update minor version from 16 to 17 for OpenMage 20 (#5449)
  • rector: migrate Zend_Acl method (#5464)
  • chore: docblocks (#5463)
  • rector: migrate Zend_Log constants (#5462)
  • chore: ref #5456 (#5457)
  • chore: ref #5278 (#5458)
  • rector: ref #5258 (#5456)
  • Update Template.php: remove extra TypeCheck (#5455)
  • Update doc comments, fix spelling and grammar errors (#5450)
  • rector: CombineIfRector (#5448)
  • rector: SimplifyIfElseToTernaryRector (update 2.4.1) (#5447)
  • rector: RemoveUnusedVariableAssignRector (no automatic changes) (#5415)
  • phphmd: ignore unused $ignored var (#5440)
  • rector: SafeDeclareStrictTypesRector (#5438)
  • phpunit: add empty test classes and data providers for all core Mage Block/Helper/Model classes (#5423)
  • rector: NullableCompareToNullRector (#5437)
  • chore: fixed typo in method name (#5436)
  • rector: NullCoalescingOperatorRector (#5431)
  • rector: ChangeNestedForeachIfsToEarlyContinueRector (#5426)
  • rector: SimplifyBoolIdenticalTrueRector (#5425)
  • rector: ChangeNestedIfsToEarlyReturnRector (#5424)
  • rector: RecastingRemovalRector (#5421)
  • rector: SimplifyDeMorganBinaryRector (#5420)
  • rector: TernaryToElvisRector (not applied) (#5419)
  • rector: CompleteDynamicPropertiesRector (not applied) (#5418)
  • rector: cleanup (#5417)
  • rector: SimplifyIfElseToTernaryRector (#5410)
  • rector: RemoveDeadZeroAndOneOperationRector (#5414)
  • rector: TernaryEmptyArrayArrayDimFetchToCoalesceRector (#5412)
  • phpunit: added tests (#5411)
  • rector: StringableForToStringRector (#5409)
  • rector: TernaryToBooleanOrFalseToBooleanAndRector (#5408)
  • phpstan: use @phpstan-type for config store-id param (#5406)
  • escapeHtml: add conditionalReturnTypeDoc (#5402)
  • rector: RemoveAlwaysTrueIfConditionRector (#5401)
  • fix: invalid type for getStore() (#5403)
  • rector: RemoveNullArgOnNullDefaultParamRector (#5397)
  • phpunit: added test (#5399)
  • chore: update workflow (#5398)
  • chore: update workflow (#5396)
  • chore: phpmd create cache dir (#5395)
  • chore: update workflow (#5394)
  • rector: ExplicitReturnNullRector (#5390)
  • rector: ReturnBinaryOrToEarlyReturnRector (#5389)
  • rector: WrapEncapsedVariableInCurlyBracesRector (#5388)
  • phpmd: enable ShortVariable check (#5383)
  • chore: moved tools caches to subdirectory (#5384)
  • chore: Mini docblock update (#5381)
  • phpstan: replace template with phpstan-type (#5380)
  • rector: SimplifyEmptyCheckOnEmptyArrayRector (#5374)
  • rector: SimplifyIfReturnBoolRector (#5372)
  • rector: CombineIfRector (#5371)
  • rector: ChangeOrIfContinueToMultiContinueRector (#5370)
  • rector: ChangeIfElseValueAssignToEarlyReturnRector (#5369)
  • chore: downgrade symplify/vendor-patches (#5367)
  • chore: deprecated replaced Zend classes (#5366)
  • rector: add/update doclocks (#5362)
  • rector: remove leading slash and unused imports (#5364)
  • chore: removed deprecated methods (#5361)
  • Remove deprecated methods (workflow) (#5349)
  • chore: moved validation Helper classes to Model ... (#5357)
  • Use observer interface (#5355)
  • Mage_Reports_Model_Resource_Report_Collection: remove pageSize (#5353)
  • Allow bool value for Mage_Adminhtml_Controller_Action::ADMIN_RESOURCE (#5351)
  • Deprecate Mage_Sales_Model_Entity_Quote_Item_Collection (#5323)
  • Fix ignored phpstan errors (#5345)
  • backport v21: Removed onmouseover/onmouseout from adminhtml menu (#5341)
  • backport v21: Removed unused files from Adminhtml/Block/Catalog/Category/Tab (#5340)
  • backport v21: Removed deprecated module DirectPost from Authorize.net (#5338)
  • chore: replace some empty() checks (#5321)
  • phpstan: fix dynamic calls on static methods (#5319)
  • chore: docsblocks (#5335)
  • chore: updated docs (#5334)
  • chore: use constants for config paths (#5333)
  • phpmd: short variables (#5322)
  • Cleanup: removed mysql4 classes (#5327)
  • Visibility: remove deprecated functions (#5329)
  • phpstan: update Mage::getModel() docs (#5328)
  • Add PHPDoc generics on Varien_Data_Collection / Varien_Data_Collection_Db (#5259)
  • chore: docs (#5318)
  • chore: remove __construct call (#5314)
  • rector: RemoveEmptyClassMethodRector (#5312)
  • rector: InlineConstructorDefaultToPropertyRector (#5311)
  • rector: ForeachItemsAssignToEmptyArrayToAssignRector (#5310)
  • rector: applied changes for #5307 (#5309)
  • chore: remove unused rector rule (#5307)
  • chore: minor phpunit cleanup (#5306)
  • cypress: allow no message on error/success/warning check (#5305)
  • chore: minor doc fix (#5304)
  • chore: unify admin grid buttons (#5303)
  • phpstan: case consistent sort dir (#5302)
  • phpstan: some fixes (#5301)
  • phpStan: replace some empty() checks (#5292)
  • chore: update admin grids (#5283)
  • phpStan: fixes for 2.1.40 (#5291)
  • chore: docblock update (#5290)
  • chore: use php phpStan baseline (#5274)
  • Mage_Adminhtml_Model_Session_Quote: add missing method docs (#5279)
  • chore: composer update (#5272)
  • phpstan: fix comparison for get_object_vars (#5271)
  • Return $this if able (#5266)
  • rector: InlineIfToExplicitIfRector (#5209)
  • rector: AddParamBasedOnParentClassMethodRector (#5040)
  • rector: MakeInheritedMethodVisibilitySameAsParentRector (#5174)
  • rector: RegexDashEscapeRector (#5205)
  • Update PHP version in cypress workflow (#5208)
  • phpstan: matchingInheritedMethodNames (#5204)
  • rector: RemoveAlwaysElseRector (#5203)
  • chore: docblocks - removed duplicated entries for created_at/updated_at methods (#5201)
  • [Rector] RemoveParentDelegatingConstructorRector (#5197)
  • Remove obsolete OM-4891 patch for phpseclib/mcrypt_compat 2.0.7 (#5196)
  • rector: RemoveUnusedPrivateMethodParameterRector (#5184)
  • rector: RemoveDeadReturnRector (#5183)
  • php-cs-fixer: phpdoc_align (#5166)
  • rector: ReturnEarlyIfVariableRector (#5175)
  • rector: SplitDoubleAssignRector (#5173)
  • rector: SwitchNegatedTernaryRector (#5172)
  • rector: UnnecessaryTernaryExpressionRector (#5171)
  • chore: doc blocks update (#5170)
  • chore: remove n98/magerun dep (#5167)
  • chore: docblocks (#5165)
  • Rector: fix FirstClassCallableRector to ArrayToFirstClassCallableRector rename (#5160)
  • phpStan: Added doc-blocks to _construct() (#5151)
  • chore: docs blocks update (#5147)
  • Fix docblocks to show correct Mage_Sales_Model_Order_Invoice return / var type (#5145)
  • rector: update tests (#5128)
  • Phpstan: DocBlock fixes (#5101)
  • Fix: updated required extensions (#5099)
  • PhpUnit: remove one test (#5093)
  • PhpStan: various fixes (#5090)
  • Phpstan: multiple fixes (#5082)
  • phpcs-fixer: sort more tags, follow symfony sort order (#5081)
  • phpcs-fixer: phpdoc_order_by_value (#5079)
  • Phpstan: fix falsy empty (#5078)
  • PhpStan: docblock fixes (#5077)
  • PhpStan: fix wrong params null given (#5075)
  • PhpStan: fix wrong params for uniqid (#5074)
  • PhpStan: fix wrong params for explode (#5073)
  • PhpStan: fix wrong params for trim (#5072)
  • PhpStan: fix wrong params for str methods (#5071)
  • PhpStan: fix wrong params for strlen (#5070)
  • phpcs-fixer: ordered_types (#5065)
  • Phpunit: Mage_Wishlist (#5069)
  • chore: remove update-copyright script from configs (#5066)
  • phpcs-fixer: operator_linebreak (#5064)
  • phpcs-fixer: phpdoc_scalar (#5063)
  • phpcs-fixer: phpdoc_var_without_name (#5062)
  • phpcs-fixer: phpdoc_tag_casing (#5061)
  • phpcs-fixer: phpdoc_annotation_without_dot (#5060)
  • phpcs-fixer: no_empty_phpdoc (#5059)
  • phpcs-fixer: phpdoc_var_annotation_correct_order (#5056)
  • DOCblocks: added missing methods (#5058)
  • phpcs-fixer: phpdoc_order (#5057)
  • phpcs-fixer: phpdoc_trim_consecutive_blank_line_separation (#5055)
  • phpcs-fixer: phpdoc_single_line_var_spacing (#5054)
  • phpcs-fixer: phpdoc_types_order (#5053)
  • phpcs-fixer: phpdoc_trim (#5052)
  • phpcs-fixer: phpdoc_param_order (#5051)
  • phpcs-fixer: phpdoc_indent (#5050)
  • Updated PhpStorm meta-files (#5049)

↗️ Dependencies

  • build(deps): bump phpseclib/mcrypt_compat from 2.0.7 to 2.0.8 (#5467)
  • build(deps): bump mklkj/tinymce-i18n from 26.3.30 to 26.4.7 (#5466)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.94.2 to 3.95.1 (#5468)
  • build(deps): bump symfony/polyfill-php82 from 1.33.0 to 1.34.0 (#5470)
  • build(deps): bump symfony/polyfill-php84 from 1.33.0 to 1.34.0 (#5469)
  • build(deps): bump phpseclib/phpseclib from 3.0.50 to 3.0.51 (#5459)
  • build(deps-dev): bump rector/rector from 2.3.9 to 2.4.0 (#5429)
  • build(deps-dev): bump phpstan/phpstan from 2.1.44 to 2.1.46 (#5427)
  • build(deps): bump mklkj/tinymce-i18n from 26.3.23 to 26.3.30 (#5430)
  • build(deps): bump tinymce/tinymce from 8.3.2 to 8.4.0 (#5428)
  • build(deps-dev): bump phpstan/phpstan from 2.1.42 to 2.1.44 (#5378)
  • build(deps): bump mklkj/tinymce-i18n from 26.2.16 to 26.3.23 (#5376)
  • build(deps-dev): bump rector/rector from 2.3.8 to 2.3.9 (#5342)
  • build(deps-dev): bump phpstan/phpstan from 2.1.40 to 2.1.42 (#5343)
  • build(deps): bump phpseclib/phpseclib from 3.0.49 to 3.0.50 (#5330)
  • build(deps): bump release-drafter/release-drafter from 6 to 7 (#5325)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.59.0 to 0.60.0 (#5324)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.58.0 to 0.59.0 (#5297)
  • build(deps-dev): bump rector/rector from 2.3.0 to 2.3.1 (#5236)
  • build(deps): bump shardj/zf1-future from 1.24.4 to 1.25.0 (#5289)
  • build(deps-dev): bump phpstan/phpstan from 2.1.39 to 2.1.40 (#5288)
  • build(deps): bump actions/upload-artifact from 6 to 7 (#5287)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.57.0 to 0.58.0 (#5248)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.94.0 to 3.94.2 (#5276)
  • build(deps-dev): bump symplify/vendor-patches from 12.0.5 to 12.0.6 (#5267)
  • build(deps): bump phpseclib/phpseclib from 3.0.48 to 3.0.49 (#5263)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.92.5 to 3.93.0 (#5250)
  • build(deps): bump symfony/process from 6.4.31 to 6.4.33 (#5257)
  • build(deps-dev): bump phpunit/phpunit from 9.6.31 to 9.6.33 (#5255)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.56.0 to 0.57.0 (#5237)
  • build(deps): bump mklkj/tinymce-i18n from 25.11.17 to 26.1.12 (#5238)
  • build(deps): bump tinymce/tinymce from 8.3.1 to 8.3.2 (#5239)
  • build(deps-dev): bump symplify/vendor-patches from 12.0.1 to 12.0.5 (#5231)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.92.4 to 3.92.5 (#5230)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.92.3 to 3.92.4 (#5211)
  • build(deps): bump cweagans/composer-patches from 1.7.3 to 2.0.0 (#5121)
  • build(deps-dev): bump rector/rector from 2.2.14 to 2.3.0 (#5193)
  • build(deps): bump tinymce/tinymce from 8.3.0 to 8.3.1 (#5191)
  • build(deps): bump vlucas/phpdotenv from 5.6.2 to 5.6.3 (#5194)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.55.0 to 0.56.0 (#5192)
  • build(deps): bump phpseclib/mcrypt_compat from 2.0.6 to 2.0.7 (#5181)
  • build(deps): bump phpseclib/phpseclib from 3.0.47 to 3.0.48 (#5180)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.92.0 to 3.92.3 (#5179)
  • build(deps-dev): bump phpstan/phpstan-phpunit from 2.0.10 to 2.0.11 (#5178)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.91.3 to 3.92.0 (#5156)
  • build(deps): bump tinymce/tinymce from 8.2.2 to 8.3.0 (#5157)
  • build(deps): bump peter-evans/create-pull-request from 7 to 8 (#5153)
  • build(deps): bump SonarSource/sonarqube-scan-action from 6 to 7 (#5155)
  • build(deps): bump pelago/emogrifier from 8.1.0 to 8.2.0 (#5152)
  • build(deps-dev): bump rector/rector from 2.2.9 to 2.2.14 (#5154)
  • build(deps): bump actions/upload-artifact from 5 to 6 (#5159)
  • build(deps): bump actions/cache from 3 to 5 (#5158)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.91.0 to 3.91.3 (#5140)
  • build(deps): bump tinymce/tinymce from 8.2.1 to 8.2.2 (#5141)
  • build(deps-dev): bump phpstan/phpstan-phpunit from 2.0.8 to 2.0.10 (#5142)
  • build(deps-dev): bump phpstan/phpstan-phpunit from 2.0.7 to 2.0.8 (#5111)
  • build(deps-dev): bump dealerdirect/phpcodesniffer-composer-installer from 1.1.2 to 1.2.0 (#5119)
  • build(deps-dev): bump rector/rector from 2.2.7 to 2.2.9 (#5120)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.90.0 to 3.91.0 (#5122)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.54.0 to 0.55.0 (#5118)
  • build(deps-dev): bump phpstan/phpstan from 2.1.31 to 2.1.32 (#5113)
  • build(deps): bump mklkj/tinymce-i18n from 25.11.3 to 25.11.17 (#5112)
  • build(deps): bump actions/checkout from 5 to 6 (#5109)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.89.2 to 3.90.0 (#5114)
  • build(deps-dev): bump symplify/vendor-patches from 11.5.0 to 12.0.1 (#5110)
  • build(deps): bump symfony/http-foundation from 6.4.25 to 6.4.29 (#5092)
  • build(deps): bump symfony/translation-contracts from 3.6.0 to 3.6.1 (#5085)
  • build(deps): bump tinymce/tinymce from 8.2.0 to 8.2.1 (#5088)
  • build(deps-dev): bump friendsofphp/php-cs-fixer from 3.89.1 to 3.89.2 (#5087)
  • build(deps): bump rojopolis/spellcheck-github-actions from 0.53.0 to 0.54.0 (#5084)
  • build(deps): bump mklkj/tinymce-i18n from 25.10.27 to 25.11.3 (#5086)
  • build(deps-dev): bump rector/rector from 2.2.5 to 2.2.7 (#5067)
  • build(deps): bump mklkj/tinymce-i18n from 25.10.6 to 25.10.27 (#5068)

Don't miss a new magento-lts release

NewReleases is sending notifications on new releases.