Skip to content

Release/3.16.0 #1793

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 345 commits into
base: release/3.16.0
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
345 commits
Select commit Hold shift + click to select a range
87725fa
MAGE-1241 Clean up static DOM when dynamicWidgets are enabled
cammonro Apr 8, 2025
38de6de
MAGE-347: added a configurable cronjob for queue processing
damcou Apr 8, 2025
2ce0361
MAGE-1228: added queue processing logic to the cron
damcou Apr 8, 2025
55a12ba
MAGE-1228: added cron expression check
damcou Apr 8, 2025
9d337f0
MAGE-1228: updated config text
damcou Apr 8, 2025
ff32007
MAGE-347: add unit test
damcou Apr 9, 2025
8f01cbb
MAGE-1131: Added unit tests for IndexingManager/Reindex controller
damcou Apr 10, 2025
1306de9
MAGE-347: update unit tests with dataProvider
damcou Apr 10, 2025
2dff447
MAGE-347: restore comment model to add a link to the queue
damcou Apr 14, 2025
8ae1d7e
MAGE-347: add additional configuration to use the built-in cron or not
damcou Apr 14, 2025
c6c8130
Merge pull request #1710 from algolia/feat/MAGE-975-dynamic-widgets
cammonro Apr 14, 2025
dbc869b
MAGE-347: change crontob group
damcou Apr 14, 2025
4884671
Update etc/adminhtml/system.xml
damcou Apr 14, 2025
d5c7d00
Update etc/adminhtml/system.xml
damcou Apr 14, 2025
99462cb
Update Model/Config/EnableQueueComment.php
damcou Apr 14, 2025
2677547
Merge pull request #1727 from algolia/feat/MAGE-347-configurable-cronjob
damcou Apr 14, 2025
75bc1ef
MAGE-984 Add redirect plugin and reorg Autocomplete JS libs
cammonro Apr 4, 2025
bc125c4
MAGE-984 Upgrade Autocomplete JS lib and add sourcemaps
cammonro Apr 4, 2025
e4a8baf
MAGE-984 Load autocomplete plugin
cammonro Apr 4, 2025
b245f68
MAGE-984 Switch to pure grid layout and abandon jQuery hack
cammonro Apr 9, 2025
05d5db6
MAGE-984 Remove dependence on jQuery for footer add
cammonro Apr 9, 2025
f322eb8
MAGE-984 Add render callback to apply grid layout on multi section au…
cammonro Apr 9, 2025
f30d727
MAGE-984 Improve flexibility of layout with variable sections
cammonro Apr 9, 2025
90835cf
MAGE-984 Remove legacy reverse class references
cammonro Apr 9, 2025
4b56c77
MAGE-984 Fix empty result set footer bug
cammonro Apr 10, 2025
c7e25e7
MAGE-984 Remove jQuery injected and extraneous selectors
cammonro Apr 10, 2025
247cf5c
MAGE-984 Strip legacy references to algolia-autocomplete-container
cammonro Apr 10, 2025
3f76143
MAGE-984 Remove additional legacy autocomplete DOM references
cammonro Apr 10, 2025
7b3dd20
MAGE-984 Organize style sheet
cammonro Apr 10, 2025
a432159
MAGE-984 Implement redirect hits on mobile / desktop
cammonro Apr 10, 2025
ca870db
MAGE-984 Update README.md
cammonro Apr 10, 2025
688b695
Merge pull request #1733 from algolia/release/3.15.1-dev
cammonro Apr 14, 2025
ae7c4d0
MAGE-1258 Add rule friendly category attribute and remove non relevan…
cammonro Apr 14, 2025
3798e3f
MAGE-347: add cron_groups.xml file
damcou Apr 15, 2025
263338f
Merge pull request #1734 from algolia/feat/MAGE-347-declare-crontab-g…
damcou Apr 15, 2025
edc6e3d
MAGE-984 Remove debugging statements
cammonro Apr 15, 2025
157535a
Merge pull request #1732 from algolia/feat/MAGE-984-autocomplete-redi…
cammonro Apr 15, 2025
960da02
MAGE-1131: Added some additional integration tests for legacy indexers
damcou Apr 15, 2025
945e543
MAGE-1259 Remove InstantSearch enablement dependency in Magento admin
cammonro Apr 15, 2025
2f268e6
MAGE-1258 Add unit tests for adjusted faceting expectations
cammonro Apr 15, 2025
7026b19
MAGE-1258 Organize and tweak tests
cammonro Apr 15, 2025
abab74d
MAGE-985 Add POC custom redirect widget
cammonro Apr 15, 2025
e5c0d91
MAGE-985 Track user interactions to prevent alarming redirect behavior
cammonro Apr 15, 2025
227e007
Merge pull request #1735 from algolia/feat/MAGE-1259-remove-instantse…
cammonro Apr 16, 2025
5c5e37f
MAGE-1258 Shorten long method name
cammonro Apr 16, 2025
5458c3f
MAGE-1258 Add PHPDoc to clarify method intent
cammonro Apr 16, 2025
296a7d8
Merge pull request #1736 from algolia/feat/MAGE-1258-rule-editor-cate…
cammonro Apr 16, 2025
e4c0927
MAGE-985 Add clickable redirect on interact option
cammonro Apr 16, 2025
6b06a0e
MAGE-985 Drop version from CSS file name - been on v4 for quite some …
cammonro Apr 16, 2025
e59fbea
Merge pull request #1731 from algolia/feat/MAGE-1131-indexing-manager…
damcou Apr 17, 2025
823cea0
Merge pull request #1738 from algolia/feat/MAGE-985-instantsearch-red…
cammonro Apr 17, 2025
17b4aa5
MAGE-986 Fix XSD namespace
cammonro Apr 17, 2025
0887b18
MAGE-986 Handle onSubmit conflict with onRedirect
cammonro Apr 21, 2025
8fbfb95
MAGE-986 Add custom redirect handler
cammonro Apr 22, 2025
ad085fe
MAGE-986 Add template override to hide selectable redirect
cammonro Apr 22, 2025
0ea1a1b
MAGE-986 Add source model for autocomplete redirect display mode
cammonro Apr 22, 2025
12c9eda
MAGE-986 Add defaults and conditional dependency
cammonro Apr 22, 2025
7d60b6b
MAGE-986 Expose Autocomplete redirect config to frontend
cammonro Apr 22, 2025
645ddbd
MAGE-986 Enable configurable selectable redirect with or without hits
cammonro Apr 22, 2025
f61b0ba
MAGE-986 Handle new window clicks on Autocomplete
cammonro Apr 23, 2025
b35fe40
MAGE-986 Centralize component state
cammonro Apr 23, 2025
13e103e
MAGE-986 Add front end model for InstantSearch redirect options
cammonro Apr 23, 2025
8dc49d2
MAGE-986 Add backend model
cammonro Apr 23, 2025
114349f
MAGE-986 Expose InstantSearch redirect config to frontend
cammonro Apr 23, 2025
a77abb5
MAGE-986 Disable InstantSearch redirect by default
cammonro Apr 23, 2025
8e6f311
MAGE-986 Move new config options to discrete Autocomplete config helper
cammonro Apr 23, 2025
d96aab6
MAGE-986 Move new config options to discrete InstantSearch config helper
cammonro Apr 23, 2025
380824a
MAGE-986 Add discrete serializer wrapper service with unit tests
cammonro Apr 23, 2025
08fc100
MAGE-986 Refactor config to utilize Autocomplete helper
cammonro Apr 24, 2025
853e9eb
MAGE-986 Refactor config to utilize InstantSearch helper
cammonro Apr 24, 2025
a2cba8c
MAGE-986 Group deprecated constants / methods and fix namespacing
cammonro Apr 24, 2025
151a317
MAGE-986 Factor out local serialize functions from ConfigHelper
cammonro Apr 24, 2025
c9306b0
MAGE-986 Remove old replica methods replaced in 3.14
cammonro Apr 24, 2025
2b4dbae
MAGE-986 Allow nullable instance variables
cammonro Apr 28, 2025
2c802cc
MAGE-986 Enhance checkbox UI with help text
cammonro Apr 29, 2025
107db91
MAGE-986 Override template to prevent link from bypassing navigator
cammonro Apr 29, 2025
5fbac83
MAGE-986 Add description to config groupings
cammonro Apr 29, 2025
66df79f
MAGE-986 Link checkbox labels
cammonro Apr 29, 2025
28d72ce
Merge pull request #1740 from algolia/feat/MAGE-986-no-code-redirect-…
cammonro Apr 29, 2025
5aa05a7
MAGE-1251 Port 3.15 replica updates to 3.16
cammonro Apr 29, 2025
1b05a37
Merge pull request #1744 from algolia/fix/MAGE-1251-rebuild-replicas-…
cammonro Apr 30, 2025
0b94dd6
MAGE-1262 Update version info and change log
cammonro Apr 30, 2025
0b75f3f
Merge pull request #1746 from algolia/chore/MAGE-1262-prep-3.16.0-beta.1
cammonro Apr 30, 2025
35f8c47
Update Configuration.php
PromInc Aug 27, 2024
a2fc7fb
Merge branch 'fix/MAGE-1201-recommend-model-validation-3.15' into fix…
cammonro May 6, 2025
8bcb677
MAGE-1201 Switch virtual type to drop in replacement for Psr LoggerIn…
cammonro May 6, 2025
7bc6bed
Merge pull request #1752 from algolia/fix/MAGE-1201-recommend-model-v…
damcou May 7, 2025
896b6d9
MAGE-1272 Allow nullable instance variables
cammonro May 14, 2025
aef8860
Merge pull request #1756 from algolia/feat/MAGE-1272-concrete-injecta…
cammonro May 14, 2025
d7addce
MAGE-1260: removed deprecated method from SuggestionHelper
damcou May 20, 2025
6c566de
MAGE-1260: removed deprecated method from CategoryHelper
damcou May 20, 2025
0129dab
MAGE-1260: removed deprecated method from ProductHelper
damcou May 20, 2025
222fe15
MAGE-1260: removed usage of AlgoliaHelper from ProductHelper and Inde…
damcou May 20, 2025
e6ee3fd
MAGE-1260: removed usage of AlgoliaHelper from IndicesConfigurator
damcou May 20, 2025
7f78048
MAGE-1260: removed usage of AlgoliaHelper from SaveSettings
damcou May 20, 2025
6f35dfd
MAGE-1260: removed usage of AlgoliaHelper from BackendSearch
damcou May 20, 2025
2a57e82
MAGE-1260: removed usage of AlgoliaHelper from Index Builders
damcou May 20, 2025
b0ba574
MAGE-1260: removed usage of AlgoliaHelper from Products Record Builder
damcou May 20, 2025
4585bba
MAGE-1260: removed usage of AlgoliaHelper from Configuration Block
damcou May 20, 2025
b5e81b6
MAGE-1260: removed usage of AlgoliaHelper from integration tests
damcou May 20, 2025
735d419
MAGE-1260: removed usage of remaining AlgoliaHelper occurrences
damcou May 20, 2025
9788957
MAGE-1260: removed AlgoliaHelper class
damcou May 20, 2025
6df5f00
MAGE-1260: fixing tests
damcou May 20, 2025
61d8f76
MAGE-1260: fixed ProductHelper
damcou May 21, 2025
16f6126
MAGE-1260: updated assert values
damcou May 21, 2025
3c1799f
MAGE-1260: use buildWithComputedIndex rather than buildWithEnforcedIn…
damcou May 21, 2025
c6bd88c
MAGE-1205: fix analytics revenue calculation for placed order event
damcou May 22, 2025
fa06ecb
MAGE-1205: add unit tests
damcou May 23, 2025
661a205
MAGE-1260: remove useless method
damcou May 23, 2025
46d1adc
MAGE-1260: bring back AlgoliaHelper with new deprecated comment
damcou May 26, 2025
0c417ea
MAGE-1260: introduced entity index options builders
damcou May 26, 2025
499999d
MAGE-1260: use entity index options builders
damcou May 26, 2025
41c52f3
MAGE-1260: use entity index options builders
damcou May 26, 2025
828b7c7
MAGE-1260: use entity index options builders
damcou May 26, 2025
c867693
MAGE-1260: updated changelog
damcou May 28, 2025
6589523
MAGE-1276 Credentials form expanded by default in admin
cammonro May 28, 2025
4595aca
Merge pull request #1757 from algolia/feat/MAGE-1260-deprecated-cleanup
damcou May 28, 2025
c5e5824
Merge branch 'release/3.16.0-dev' into feat/MAGE-1276-admin-tweak
damcou May 28, 2025
0704c91
Merge pull request #1760 from algolia/feat/MAGE-1276-admin-tweak
cammonro May 28, 2025
b7c6703
MAGE-1270: move indexing configuration to indexing manager section
damcou May 30, 2025
b60cdd7
MAGE-1270: fix replica test
damcou May 30, 2025
ae2bd4e
MAGE-1270: fix config path
damcou May 30, 2025
544bf1d
MAGE-1270: add Data patch
damcou May 30, 2025
45e32c1
MAGE-1270: changes after review
damcou Jun 3, 2025
a57fa87
Merge pull request #1761 from algolia/feat/MAGE-1270-indexing-configu…
damcou Jun 3, 2025
efd5701
MAGE-1269: Change default behaviour for new full indexing feature
damcou Jun 5, 2025
2daccd5
MAGE-1269: Adding note for future default behavior change
damcou Jun 6, 2025
9b2f8d0
Merge pull request #1762 from algolia/feat/MAGE-1269-indexing-defaults
damcou Jun 6, 2025
5754745
MAGE-1205: handle tax config
damcou Jun 11, 2025
394e986
Merge pull request #1758 from algolia/fix/MAGE-1205-revenue-analytics
damcou Jun 12, 2025
dfa35b1
adds explicit nullable types to missing arguments for PHP 8.4 compati…
jajajaime Jun 16, 2025
4766281
extra file missing explicit nullable argument
jajajaime Jun 16, 2025
1f3c382
MAGE-1345: fix personalization typo
damcou Jun 17, 2025
fd5680a
Merge pull request #1767 from algolia/fix/MAGE-1345-typo-personalization
damcou Jun 17, 2025
98a2a77
adds extra adjustments
jajajaime Jun 17, 2025
7633acb
config helper explicit nullable argument
jajajaime Jun 19, 2025
1d6b5c4
MAGE-1341 Update version and changelog
cammonro Jun 25, 2025
ea735d7
MAGE-1341 Add identified changes to change log
cammonro Jun 26, 2025
03d0598
MAGE-1341 Merge changelog from main branch
cammonro Jun 26, 2025
5d66328
MAGE-1341 Fix unit tests for Monolog v3 on Magento 2.4.8
cammonro Jun 26, 2025
64f1aa4
MAGE-1341 Remove 2.4.8 until fully certified
cammonro Jun 26, 2025
4ad1016
Merge pull request #1771 from algolia/chore/MAGE-1341-prepare-release…
cammonro Jun 26, 2025
a9b21e7
fixes deprecated nullable param and a plugin param
jajajaime Jun 26, 2025
b477d75
MAGE-1341 Fix dropped products issue on indexing queue
cammonro Jun 26, 2025
d79ed54
Merge pull request #1774 from algolia/fix/MAGE-1357-full-reindex-drop…
cammonro Jun 26, 2025
2235b8c
MAGE-1363 Address abstract class warning
cammonro Jul 9, 2025
edb69fe
MAGE-1363 Make data provider methods static
cammonro Jul 9, 2025
02403e3
MAGE-1363 Apply positional based array to data provider to address de…
cammonro Jul 10, 2025
a8b4b6e
MAGE-1363 Remove legacy TestCase namespace (not used since M2.1)
cammonro Jul 10, 2025
3f70e6d
Merge pull request #1783 from algolia/feat/MAGE-1363-phpunit-10
cammonro Jul 10, 2025
14eda68
Merge branch 'php8-constructors' into feat/MAGE-1364-php4-nullable-types
cammonro Jul 14, 2025
dc74ad7
MAGE-1364 Apply type fixes for PHP 8.4
cammonro Jul 14, 2025
c971356
MAGE-1365 Fix dangling implicit nullable types identified by Slevomat…
cammonro Jul 16, 2025
1c1768b
MAGE-1365 Perform code cleanup for baseline PHP 8.2 compatibility
cammonro Jul 16, 2025
d4ed329
MAGE-1365 Update README with new versions, EOL and CI
cammonro Jul 16, 2025
f472b1b
MAGE-1365 Update CHANGELOG
cammonro Jul 16, 2025
fdcea01
MAGE-1281 Fix system.xml cross group dependencies (not supported acro…
cammonro Jul 17, 2025
251aa61
Merge pull request #1785 from algolia/feat/MAGE-1364-php4-nullable-types
cammonro Jul 17, 2025
6223914
MAGE-1281 Organize class constants
cammonro Jul 17, 2025
76af83d
MAGE-1281 Organize ConfigHelper methods by groupings and mark depreca…
cammonro Jul 17, 2025
13ac5eb
MAGE-1281 Move lingering IS confg to discrete helper
cammonro Jul 17, 2025
49c8c27
MAGE-1281 Add config to forward primary index settings to replicas
cammonro Jul 17, 2025
31dfb42
MAGE-1281 Implement hanlder for conditional replica forwarding
cammonro Jul 18, 2025
92f95f0
MAGE-1281 Add unit tests
cammonro Jul 18, 2025
28c12b5
MAGE-1281 Support replica forwarding across entities
cammonro Jul 18, 2025
6cb749b
MAGE-1281 Change conditional logic per review
cammonro Jul 18, 2025
b2ed481
MAGE-1281 Removed dependency on PHPUnit version specific invocation c…
cammonro Jul 18, 2025
d8347aa
MAGE-1281 Apply new naming convention per review
cammonro Jul 18, 2025
2f1e155
Merge pull request #1786 from algolia/feat/MAGE-1281-replica-settings…
cammonro Jul 18, 2025
df697c8
Merge branch 'main' into chore/MAGE-1342-3.16.0-release
cammonro Jul 18, 2025
05e97b0
MAGE-1242 Split method for mixable search override
cammonro Jul 18, 2025
7c68c87
Fix unit tests
omar-rahman-dev Jul 18, 2025
19b92db
fix unit coverage
omar-rahman-dev Jul 18, 2025
f511b77
exclude magento from test coverage with custom xml
omar-rahman-dev Jul 18, 2025
dfbc058
update bootstrap
omar-rahman-dev Jul 18, 2025
273444d
Create Algolia-specific PHPUnit configuration for code coverage
omar-rahman-dev Jul 18, 2025
5a7199d
use project xml
omar-rahman-dev Jul 18, 2025
eb3afcf
First attempt at integration tests
omar-rahman-dev Jul 23, 2025
fe75cba
Fix closing tag
omar-rahman-dev Jul 23, 2025
7f447f7
update requires
omar-rahman-dev Jul 23, 2025
1849a54
Optimize via workspaces
omar-rahman-dev Jul 23, 2025
cc61bfc
try 1
omar-rahman-dev Jul 23, 2025
1d847f3
Revert to command
omar-rahman-dev Jul 23, 2025
37fd822
Fix commands
omar-rahman-dev Jul 23, 2025
8f431a4
Fix path
omar-rahman-dev Jul 23, 2025
e8bea8b
Update integration test environment file path
omar-rahman-dev Jul 23, 2025
44a448c
enter container
omar-rahman-dev Jul 23, 2025
262b9e1
try one command
omar-rahman-dev Jul 23, 2025
29b35e6
change integration tests command
omar-rahman-dev Jul 23, 2025
90a25ed
add CD
omar-rahman-dev Jul 23, 2025
b73e75a
setup-integration-tests
omar-rahman-dev Jul 23, 2025
cc7a33f
update install config
omar-rahman-dev Jul 23, 2025
ee8b1e5
Update configs and creds
omar-rahman-dev Jul 23, 2025
aeac29b
try new creds
omar-rahman-dev Jul 23, 2025
3be04c3
update .env and add redis
omar-rahman-dev Jul 23, 2025
61513db
escape
omar-rahman-dev Jul 23, 2025
71e922f
Skip multistore given it has problems
omar-rahman-dev Jul 23, 2025
46885e4
update env file
omar-rahman-dev Jul 23, 2025
611a1b0
move .env
omar-rahman-dev Jul 23, 2025
027aa50
Change to main
omar-rahman-dev Jul 23, 2025
cac8546
Move to workflow
omar-rahman-dev Jul 23, 2025
25a598a
match release in branch name
omar-rahman-dev Jul 23, 2025
7dd2a5f
revert changes
omar-rahman-dev Jul 23, 2025
43f4b1d
remove extra space
omar-rahman-dev Jul 23, 2025
f094abf
MAGE-1361: Add Slack notifications to CircleCI config
omar-rahman-dev Jul 23, 2025
d6d1809
Merge pull request #1789 from algolia/chore/MAGE-1361-slack-notificat…
omar-rahman-dev Jul 24, 2025
d196a0e
Merge pull request #1788 from algolia/chore/MAGE-1368-add-integration…
omar-rahman-dev Jul 24, 2025
ebfc8dc
MAGE-1374 Disable integration test workflow
cammonro Jul 28, 2025
8483eb1
Merge pull request #1787 from algolia/chore/MAGE-1342-3.16.0-release
cammonro Jul 29, 2025
b0b7a83
phpcs error fix for overview.phtml
rachel-trott Jul 30, 2025
e63a8cb
phpcs error fix
rachel-trott Jul 30, 2025
7b98c6d
phpcs error fix
rachel-trott Jul 30, 2025
bc39bf2
phpcs error fix
rachel-trott Jul 30, 2025
c3ec609
phpcs error fix
rachel-trott Jul 30, 2025
5e949fb
MAGE-1378 Alter cache vary logic to preserve X-Magento-Vary cookie fo…
cammonro Jul 31, 2025
8b65745
phpcs error fix
rachel-trott Jul 31, 2025
4acb743
phpcs error fix
rachel-trott Jul 31, 2025
f45b5b1
phpcs error fix
rachel-trott Jul 31, 2025
61d8d0b
phpcs error fix
rachel-trott Jul 31, 2025
979f992
MAGE-1378 Update changelog
cammonro Jul 31, 2025
bbb48ae
MAGE-1378 Update unit tests
cammonro Jul 31, 2025
05adfd9
phpcs error fix
rachel-trott Jul 31, 2025
69e3830
phpcs error fix
rachel-trott Jul 31, 2025
eee3884
phpcs error fix
rachel-trott Jul 31, 2025
3a9a78b
phpcs error fix
rachel-trott Jul 31, 2025
baf0e42
phpcs error fix
rachel-trott Jul 31, 2025
e1c1294
phpcs error fix
rachel-trott Jul 31, 2025
716c9b5
Merge pull request #1794 from algolia/fix/MAGE-1378-varnish-cache
cammonro Jul 31, 2025
9646fc3
phpcs error fix
rachel-trott Jul 31, 2025
b4fe445
phpcs error fix
rachel-trott Jul 31, 2025
cce44df
phpcs error fix
rachel-trott Jul 31, 2025
c0ac05f
phpcs error fix
rachel-trott Jul 31, 2025
6480dab
phpcs error fix
rachel-trott Jul 31, 2025
ab56b4d
phpcs error fix
rachel-trott Jul 31, 2025
6d54976
MAGE-1379 - phpcs fixes
rachel-trott Jul 31, 2025
9310155
MAGE-1379 Update deprecated method calls
cammonro Aug 5, 2025
0fed043
MAGE-1379 Switch to short tag syntax
cammonro Aug 5, 2025
c690b13
MAGE-1379 Clean up formatting and remove deprecated calls
cammonro Aug 5, 2025
396d46a
MAGE-1381 Add XSS protection with SecureHtmlRenderer for PHPCS
cammonro Aug 5, 2025
916a030
MAGE-1381 Apply JS escaping where necessary
cammonro Aug 5, 2025
5b0af37
MAGE-1377 Address Codacy slash complaint
cammonro Aug 6, 2025
97e6a35
MAGE-1377 Address Codacy escaping complaint
cammonro Aug 6, 2025
70ed10d
MAGE-1379 Update changelog
cammonro Aug 6, 2025
49d48c3
Merge branch 'release/3.16.0-dev' into fix/MAGE-1379-phpcs-phtml-error
cammonro Aug 6, 2025
60e3d5e
MAGE-1377 Address Codacy escaping complaint
cammonro Aug 6, 2025
5fc9537
MAGE-1377 Suppress invalid Codacy escaping complaint
cammonro Aug 6, 2025
2cc30a8
MAGE-1377 Address Codacy complaints
cammonro Aug 6, 2025
acaeebc
MAGE-1377 Address Codacy complaints
cammonro Aug 6, 2025
195a26f
Merge pull request #1795 from algolia/fix/MAGE-1379-phpcs-phtml-error
cammonro Aug 6, 2025
c52d365
MAGE-1342 Update changelog
cammonro Aug 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .circleci/algolia-phpunit-code-coverage.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
colors="true"
columns="max"
beStrictAboutTestsThatDoNotTestAnything="false"
bootstrap="/var/www/html/dev/tests/unit/framework/bootstrap.php">
<coverage>
<include>
<directory suffix=".php">/var/www/html/vendor/algolia/algoliasearch-magento-2</directory>
</include>
<exclude>
<directory>/var/www/html/vendor/algolia/algoliasearch-magento-2/Test</directory>
</exclude>
</coverage>
<testsuites>
<testsuite name="Algolia_Unit_Tests">
<directory>/var/www/html/vendor/algolia/algoliasearch-magento-2/Test/Unit</directory>
</testsuite>
</testsuites>
<php>
<includePath>.</includePath>
<ini name="memory_limit" value="-1"/>
<ini name="date.timezone" value="America/Los_Angeles"/>
<ini name="xdebug.max_nesting_level" value="200"/>
</php>
<listeners>
<listener class="Magento\Framework\TestFramework\Unit\Listener\ReplaceObjectManager"/>
</listeners>
</phpunit>
122 changes: 114 additions & 8 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ version: 2.1

orbs:
php: circleci/[email protected]
slack: circleci/[email protected]

executors:
magento-executor:
machine:
image: ubuntu-2404:2024.11.1
docker_layer_caching: true

jobs:
magento-build:
executor:
name: magento-executor
commands:
setup-magento-environment:
description: "Setup Magento environment with common configuration"
parameters:
php-version:
type: string
Expand All @@ -32,13 +32,13 @@ jobs:
name: Setup folder structure and override file
command: |
mkdir ~/Sites
mkdir ~/Sites/unit-tests
mkdir ~/Sites/unit-coverage
cd ~/Sites
cat \<<EOF > compose.override.yml
services:
phpfpm:
image: markoshust/magento-php:<< parameters.php-version >>-fpm
db:
image: mariadb:10.11
EOF
- run:
name: Setup magento enterprise
Expand All @@ -64,24 +64,113 @@ jobs:
command: |
bin/magento setup:di:compile
bin/magento module:status Algolia_AlgoliaSearch

jobs:
magento-build:
executor:
name: magento-executor
parameters:
php-version:
type: string
magento-version:
type: string
steps:
- setup-magento-environment:
php-version: << parameters.php-version >>
magento-version: << parameters.magento-version >>
- run:
name: Create test directories
command: |
mkdir ~/Sites/unit-tests
mkdir ~/Sites/unit-coverage
- persist_to_workspace:
root: ~/Sites
paths:
- .
- run:
name: Run Unit Tests and copy results to CircleCI
working_directory: ~/Sites
command: |
bin/cli vendor/bin/phpunit --log-junit /var/www/html/dev/tests/unit/report/junit.xml /var/www/html/vendor/algolia/algoliasearch-magento-2/Test/Unit
bin/cli sed -i '/<extensions>/,/<\/extensions>/d' /var/www/html/dev/tests/unit/phpunit.xml.dist
bin/cli vendor/bin/phpunit -c /var/www/html/dev/tests/unit/phpunit.xml.dist --log-junit /var/www/html/dev/tests/unit/report/junit.xml /var/www/html/vendor/algolia/algoliasearch-magento-2/Test/Unit
docker cp $(docker compose ps -q phpfpm):/var/www/html/dev/tests/unit/report/junit.xml ./unit-tests/
- store_test_results:
path: ~/Sites/unit-tests
- run:
name: Create Algolia-specific PHPUnit config for code coverage
working_directory: ~/Sites
command: |
cp ~/project/.circleci/algolia-phpunit-code-coverage.xml algolia-phpunit.xml
docker cp algolia-phpunit.xml $(docker compose ps -q phpfpm):/var/www/html/algolia-phpunit.xml
- run:
name: Run Unit Test Coverage and copy results to CircleCI
working_directory: ~/Sites
command: |
bin/cli php -d xdebug.mode=coverage vendor/bin/phpunit --log-junit /var/www/html/dev/tests/unit/report/junit.xml --coverage-html /var/www/html/dev/tests/unit/report --coverage-filter /var/www/html/vendor/algolia/algoliasearch-magento-2/ /var/www/html/vendor/algolia/algoliasearch-magento-2/Test/Unit
bin/cli php -d xdebug.mode=coverage vendor/bin/phpunit -c /var/www/html/algolia-phpunit.xml --log-junit /var/www/html/dev/tests/unit/report/junit.xml --coverage-html /var/www/html/dev/tests/unit/report --coverage-text
docker cp $(docker compose ps -q phpfpm):/var/www/html/dev/tests/unit/report ./unit-coverage/
- store_artifacts:
path: ~/Sites/unit-coverage/report
destination: test-results/magento-<< parameters.magento-version >>-php-<< parameters.php-version >>

magento-integration-test:
executor:
name: magento-executor
parameters:
php-version:
type: string
magento-version:
type: string
steps:
- setup-magento-environment:
php-version: << parameters.php-version >>
magento-version: << parameters.magento-version >>
- run:
name: Configure integration tests
working_directory: ~/Sites
command: |
bin/cli cp dev/tests/integration/phpunit.xml.dist dev/tests/integration/phpunit.xml
- run:
name: Create integration test environment file
working_directory: ~/Sites
command: |
echo "[email protected]" > .env
echo "MAGENTO_ADMIN_FIRST_NAME=john" >> .env
echo "MAGENTO_ADMIN_LAST_NAME=smith" >> .env
echo "MAGENTO_ADMIN_USER=john.smith" >> .env
echo "MAGENTO_ADMIN_PASSWORD=password123" >> .env
echo "MAGENTO_ADMIN_FRONTNAME=admin" >> .env
echo "MAGENTO_LOCALE=en_US" >> .env
echo "MAGENTO_CURRENCY=USD" >> .env
echo "MAGENTO_TIMEZONE=America/New_York" >> .env
echo "ALGOLIA_APPLICATION_ID=$ALGOLIA_APPLICATION_ID" >> .env
echo "ALGOLIA_SEARCH_KEY=$ALGOLIA_SEARCH_API_KEY" >> .env
echo "ALGOLIA_API_KEY=$ALGOLIA_API_KEY" >> .env
echo "INDEX_PREFIX=integration_test_" >> .env
docker cp .env $(docker compose ps -q phpfpm):/var/www/html/dev/tests/integration/.env
- run:
name: Prepare integration test environment
working_directory: ~/Sites
command: |
docker cp ../project/.circleci/install-config-mysql.php $(docker compose ps -q phpfpm):/var/www/html/dev/tests/integration/etc/install-config-mysql.php
bin/magento module:enable --all
bin/setup-integration-tests
- run:
name: Run Integration Tests
working_directory: ~/Sites
command: |
bin/cli bash -c "cd ./dev/tests/integration && export $(cat .env | xargs) && ../../../vendor/bin/phpunit --debug --exclude-group problematic ../../../vendor/algolia/algoliasearch-magento-2/Test/Integration/"

notify:
docker:
- image: cimg/base:current
steps:
- slack/notify:
event: fail
template: basic_fail_1
- slack/notify:
event: pass
template: success_tagged_deploy_1

workflows:
magento-build-and-test-workflow:
jobs:
Expand All @@ -90,3 +179,20 @@ workflows:
parameters:
php-version: ["8.2"]
magento-version: ["2.4.6-p11", "2.4.7-p6"]
- notify:
context: mage-slack
# magento-integration-test-workflow:
# when:
# or:
# - equal: [ main, << pipeline.git.branch >> ]
# - matches:
# pattern: ".*release.*"
# value: << pipeline.git.branch >>
# jobs:
# - magento-integration-test:
# matrix:
# parameters:
# php-version: ["8.2"]
# magento-version: ["2.4.7-p6"]
# - notify:
# context: mage-slack
39 changes: 39 additions & 0 deletions .circleci/install-config-mysql.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

return [
'db-host' => 'db',
'db-user' => 'magento',
'db-password' => 'magento',
'db-name' => 'magento_integration_tests',
'db-prefix' => '',
'backend-frontname' => 'backend',
'search-engine' => 'opensearch',
'opensearch-host' => 'opensearch',
'admin-user' => \Magento\TestFramework\Bootstrap::ADMIN_NAME,
'admin-password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD,
'admin-email' => \Magento\TestFramework\Bootstrap::ADMIN_EMAIL,
'admin-firstname' => \Magento\TestFramework\Bootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => \Magento\TestFramework\Bootstrap::ADMIN_LASTNAME,
'amqp-host' => 'rabbitmq',
'amqp-port' => '5672',
'amqp-user' => 'magento',
'amqp-password' => 'magento',
'consumers-wait-for-messages' => '0',
'session-save' => 'redis',
'session-save-redis-host' => 'redis',
'session-save-redis-port' => 6379,
'session-save-redis-db' => 5,
'session-save-redis-max-concurrency' => 20,
'cache-backend' => 'redis',
'cache-backend-redis-server' => 'redis',
'cache-backend-redis-db' => 4,
'cache-backend-redis-port' => 6379,
'page-cache' => 'redis',
'page-cache-redis-server' => 'redis',
'page-cache-redis-db' => 3,
'page-cache-redis-port' => 6379
];
4 changes: 2 additions & 2 deletions Api/Insights/EventProcessorInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public function convertAddToCart(
string $eventName,
string $indexName,
Item $item,
string $queryID = null
?string $queryID = null
): array;

/**
Expand Down Expand Up @@ -123,7 +123,7 @@ public function convertPurchaseForItems(
string $eventName,
string $indexName,
array $items,
string $queryID = null
?string $queryID = null
): array;

}
4 changes: 4 additions & 0 deletions Api/LoggerInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?php

namespace Algolia\AlgoliaSearch\Api;
interface LoggerInterface extends \Psr\Log\LoggerInterface {}
8 changes: 8 additions & 0 deletions Api/Processor/BatchQueueProcessorInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php

namespace Algolia\AlgoliaSearch\Api\Processor;

interface BatchQueueProcessorInterface
{
public function processBatch(int $storeId, ?array $entityIds = null): void;
}
2 changes: 1 addition & 1 deletion Block/Adminhtml/LandingPage/Edit/AbstractButton.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public function getObject()
$landingPage->getResource()->load($landingPage, $modelId);

return $landingPage;
} catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
} catch (\Magento\Framework\Exception\NoSuchEntityException) {
}

return null;
Expand Down
2 changes: 1 addition & 1 deletion Block/Adminhtml/Query/Edit/AbstractButton.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public function getObject()
$query->getResource()->load($query, $modelId);

return $query;
} catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
} catch (\Magento\Framework\Exception\NoSuchEntityException) {
}

return null;
Expand Down
20 changes: 6 additions & 14 deletions Block/Adminhtml/Queue/Status.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,12 @@ public function isQueueActive()
public function getQueueRunnerStatus()
{
$status = 'unknown';
switch ($this->queueRunnerIndexer->getStatus()) {
case \Magento\Framework\Indexer\StateInterface::STATUS_VALID:
$status = 'Ready';

break;
case \Magento\Framework\Indexer\StateInterface::STATUS_INVALID:
$status = 'Reindex required';

break;
case \Magento\Framework\Indexer\StateInterface::STATUS_WORKING:
$status = 'Processing';

break;
}
$status = match ($this->queueRunnerIndexer->getStatus()) {
\Magento\Framework\Indexer\StateInterface::STATUS_VALID => 'Ready',
\Magento\Framework\Indexer\StateInterface::STATUS_INVALID => 'Reindex required',
\Magento\Framework\Indexer\StateInterface::STATUS_WORKING => 'Processing',
default => $status,
};

return $status;
}
Expand Down
61 changes: 61 additions & 0 deletions Block/Adminhtml/Reindex/AbstractReindexAllButton.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php

namespace Algolia\AlgoliaSearch\Block\Adminhtml\Reindex;

use Algolia\AlgoliaSearch\Helper\ConfigHelper;
use Magento\Backend\Block\Widget\Context;
use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;

abstract class AbstractReindexAllButton implements ButtonProviderInterface
{
protected string $entity;

protected string $redirectPath;

public function __construct(
protected Context $context,
protected ConfigHelper $configHelper
) {}

/**
* @return string
*/
protected function getEntity(): string
{
return $this->entity;
}

/**
* @return string
*/
protected function getRedirectPath(): string
{
return $this->redirectPath;
}

/**
* @return array
*/
public function getButtonData(): array
{
$entity = $this->getEntity();
$redirectPath = $this->getRedirectPath();

$message = "Are you sure you want to reindex all $entity to Algolia ?";

if (!$this->configHelper->isQueueActive() && $entity === 'products') {
$message .= ' Warning : Your Indexing Queue is not activated. Depending on the size of the data you want to index, it may takes a lot of time and resources.';
$message .= 'We highly suggest to turn it on if you\'re performing a full product reindexing with a large catalog.';
}

$message = htmlentities(__($message));
$url = $this->context->getUrlBuilder()->getUrl('algolia_algoliasearch/indexingmanager/reindex');

return [
'label' => __('Reindex All ' . ucfirst($this->getEntity()) . ' to Algolia'),
'class' => 'algolia_reindex_all',
'on_click' => "deleteConfirm('{$message}', '{$url}', {data:{'entity':'{$entity}', 'redirect': '{$redirectPath}'}})",
'sort_order' => 5,
];
}
}
Loading