Skip to content

Commit 663acb0

Browse files
author
Vitaliy Boyko
committed
Merge branches '2.3-develop' and 'GraphQl-903-deprecate-use-for-shipping' of github.com:magento/graphql-ce into GraphQl-903-deprecate-use-for-shipping
2 parents 9d96481 + abbfa03 commit 663acb0

File tree

1,176 files changed

+37610
-8286
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,176 files changed

+37610
-8286
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Fields marked with (*) are required. Please don't remove the template.
1111

1212
### Preconditions (*)
1313
<!---
14-
Provide the exact Magento version (example: 2.2.5) and any important information on the environment where bug is reproducible.
14+
Provide the exact Magento version (example: 2.3.2) and any important information on the environment where bug is reproducible.
1515
-->
1616
1.
1717
2.

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@ Welcome to Magento 2 installation! We're glad you chose to install Magento 2, a
99

1010
## Install Magento
1111

12-
* [Installation Guide](https://devdocs.magento.com/guides/v2.3/install-gde/bk-install-guide.html).
12+
* [Installation Guide](https://devdocs.magento.com/guides/v2.3/install-gde/bk-install-guide.html).
13+
14+
## Learn More About GraphQL in Magento 2
15+
16+
* [GraphQL Developer Guide](https://devdocs.magento.com/guides/v2.3/graphql/index.html)
1317

1418
<h2>Contributing to the Magento 2 Code Base</h2>
1519
Contributions can take the form of new components or features, changes to existing features, tests, documentation (such as developer guides, user guides, examples, or specifications), bug fixes, optimizations, or just good suggestions.
1620

17-
To learn about how to make a contribution, click [here][1].
21+
To learn about how to contribute, click [here][1].
1822

1923
To learn about issues, click [here][2]. To open an issue, click [here][3].
2024

@@ -33,7 +37,7 @@ The members of this team have been recognized for their outstanding commitment t
3337
</a>
3438

3539
<h3>Top Contributors</h3>
36-
Magento is thankful for any contribution that can improve our code base, documentation or increase test coverage. We always recognize our most active members, as their contributions are the foundation of the Magento Open Source platform.
40+
Magento is thankful for any contribution that can improve our codebase, documentation or increase test coverage. We always recognize our most active members, as their contributions are the foundation of the Magento Open Source platform.
3741
<a href="https://magento.com/magento-contributors">
3842
<img src="https://github.com/raw/wiki/magento/magento2/images/contributors.png"/>
3943
</a>
@@ -44,7 +48,7 @@ Please review the [Code Contributions guide](https://devdocs.magento.com/guides/
4448

4549
## Reporting Security Issues
4650

47-
To report security vulnerabilities or learn more about reporting security issues in Magento software or web sites visit the [Magento Bug Bounty Program](https://hackerone.com/magento) on hackerone. Please create a hackerone account [there](https://hackerone.com/magento) to submit and follow-up your issue.
51+
To report security vulnerabilities or learn more about reporting security issues in Magento software or web sites visit the [Magento Bug Bounty Program](https://hackerone.com/magento) on hackerone. Please create a hackerone account [there](https://hackerone.com/magento) to submit and follow-up on your issue.
4852

4953
Stay up-to-date on the latest security news and patches for Magento by signing up for [Security Alert Notifications](https://magento.com/security/sign-up).
5054

@@ -60,7 +64,7 @@ Please see LICENSE_EE.txt for the full text of the MEE License or visit https://
6064

6165
## Community Engineering Slack
6266

63-
To connect with Magento and the Community, join us on the [Magento Community Engineering Slack](https://magentocommeng.slack.com). If you are interested in joining Slack, or a specific channel, send us request at [[email protected]](mailto:[email protected]) or [self signup](https://tinyurl.com/engcom-slack).
67+
To connect with Magento and the Community, join us on the [Magento Community Engineering Slack](https://magentocommeng.slack.com). If you are interested in joining Slack, or a specific channel, send us a request at [[email protected]](mailto:[email protected]) or [self signup](https://opensource.magento.com/slack).
6468

6569

6670
We have channels for each project. These channels are recommended for new members:

app/code/Magento/AdminNotification/etc/db_schema.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
1010
<table name="adminnotification_inbox" resource="default" engine="innodb" comment="Adminnotification Inbox">
1111
<column xsi:type="int" name="notification_id" padding="10" unsigned="true" nullable="false" identity="true"
12-
comment="Notification id"/>
12+
comment="Notification ID"/>
1313
<column xsi:type="smallint" name="severity" padding="5" unsigned="true" nullable="false" identity="false"
1414
default="0" comment="Problem type"/>
1515
<column xsi:type="timestamp" name="date_added" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
@@ -35,7 +35,7 @@
3535
</index>
3636
</table>
3737
<table name="admin_system_messages" resource="default" engine="innodb" comment="Admin System Messages">
38-
<column xsi:type="varchar" name="identity" nullable="false" length="100" comment="Message id"/>
38+
<column xsi:type="varchar" name="identity" nullable="false" length="100" comment="Message ID"/>
3939
<column xsi:type="smallint" name="severity" padding="5" unsigned="true" nullable="false" identity="false"
4040
default="0" comment="Problem type"/>
4141
<column xsi:type="timestamp" name="created_at" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"

app/code/Magento/AdvancedPricingImportExport/Model/Export/AdvancedPricing.php

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
*/
66
namespace Magento\AdvancedPricingImportExport\Model\Export;
77

8-
use Magento\ImportExport\Model\Export;
9-
use Magento\Store\Model\Store;
10-
use Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
118
use Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing as ImportAdvancedPricing;
129
use Magento\Catalog\Model\Product as CatalogProduct;
10+
use Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
11+
use Magento\ImportExport\Model\Export;
12+
use Magento\Store\Model\Store;
1313

1414
/**
1515
* Export Advanced Pricing
@@ -150,6 +150,8 @@ public function __construct(
150150
}
151151

152152
/**
153+
* Init type models
154+
*
153155
* @return $this
154156
* @throws \Magento\Framework\Exception\LocalizedException
155157
*/
@@ -172,7 +174,9 @@ protected function initTypeModels()
172174
}
173175
if ($model->isSuitable()) {
174176
$this->_productTypeModels[$productTypeName] = $model;
177+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
175178
$this->_disabledAttrs = array_merge($this->_disabledAttrs, $model->getDisabledAttrs());
179+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
176180
$this->_indexValueAttributes = array_merge(
177181
$this->_indexValueAttributes,
178182
$model->getIndexValueAttributes()
@@ -197,6 +201,7 @@ protected function initTypeModels()
197201
public function export()
198202
{
199203
//Execution time may be very long
204+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
200205
set_time_limit(0);
201206

202207
$writer = $this->getWriter();
@@ -211,6 +216,7 @@ public function export()
211216
if ($entityCollection->count() == 0) {
212217
break;
213218
}
219+
$entityCollection->clear();
214220
$exportData = $this->getExportData();
215221
foreach ($exportData as $dataRow) {
216222
$writer->writeRow($dataRow);
@@ -234,16 +240,6 @@ public function filterAttributeCollection(\Magento\Eav\Model\ResourceModel\Entit
234240

235241
foreach ($collection as $attribute) {
236242
if (in_array($attribute->getAttributeCode(), $this->_disabledAttrs)) {
237-
if (isset($this->_parameters[\Magento\ImportExport\Model\Export::FILTER_ELEMENT_SKIP])) {
238-
if ($attribute->getAttributeCode() == ImportAdvancedPricing::COL_TIER_PRICE
239-
&& in_array(
240-
$attribute->getId(),
241-
$this->_parameters[\Magento\ImportExport\Model\Export::FILTER_ELEMENT_SKIP]
242-
)
243-
) {
244-
$this->_passTierPrice = 1;
245-
}
246-
}
247243
$collection->removeItemByKey($attribute->getId());
248244
}
249245
}
@@ -363,6 +359,7 @@ private function prepareExportData(
363359
$linkedTierPricesData = [];
364360
foreach ($tierPricesData as $tierPriceData) {
365361
$sku = $productLinkIdToSkuMap[$tierPriceData['product_link_id']];
362+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
366363
$linkedTierPricesData[] = array_merge(
367364
$tierPriceData,
368365
[ImportAdvancedPricing::COL_SKU => $sku]
@@ -471,7 +468,7 @@ private function fetchTierPrices(array $productIds): array
471468
ImportAdvancedPricing::COL_TIER_PRICE_QTY => 'ap.qty',
472469
ImportAdvancedPricing::COL_TIER_PRICE => 'ap.value',
473470
ImportAdvancedPricing::COL_TIER_PRICE_PERCENTAGE_VALUE => 'ap.percentage_value',
474-
'product_link_id' => 'ap.' .$productEntityLinkField,
471+
'product_link_id' => 'ap.' . $productEntityLinkField,
475472
];
476473
if ($exportFilter && array_key_exists('tier_price', $exportFilter)) {
477474
if (!empty($exportFilter['tier_price'][0])) {
@@ -488,7 +485,7 @@ private function fetchTierPrices(array $productIds): array
488485
$selectFields
489486
)
490487
->where(
491-
'ap.'.$productEntityLinkField.' IN (?)',
488+
'ap.' . $productEntityLinkField . ' IN (?)',
492489
$productIds
493490
);
494491

@@ -602,7 +599,7 @@ protected function _getWebsiteCode(int $websiteId): string
602599
}
603600

604601
if ($storeName && $currencyCode) {
605-
$code = $storeName.' ['.$currencyCode.']';
602+
$code = $storeName . ' [' . $currencyCode . ']';
606603
} else {
607604
$code = $storeName;
608605
}

app/code/Magento/AdvancedSearch/etc/db_schema.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
1010
<table name="catalogsearch_recommendations" resource="default" engine="innodb"
1111
comment="Advanced Search Recommendations">
12-
<column xsi:type="int" name="id" padding="10" unsigned="true" nullable="false" identity="true" comment="Id"/>
12+
<column xsi:type="int" name="id" padding="10" unsigned="true" nullable="false" identity="true" comment="ID"/>
1313
<column xsi:type="int" name="query_id" padding="10" unsigned="true" nullable="false" identity="false"
14-
default="0" comment="Query Id"/>
14+
default="0" comment="Query ID"/>
1515
<column xsi:type="int" name="relation_id" padding="10" unsigned="true" nullable="false" identity="false"
16-
default="0" comment="Relation Id"/>
16+
default="0" comment="Relation ID"/>
1717
<constraint xsi:type="primary" referenceId="PRIMARY">
1818
<column name="id"/>
1919
</constraint>

app/code/Magento/Analytics/Model/ExportDataHandler.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public function __construct(
8989
public function prepareExportData()
9090
{
9191
try {
92-
$tmpDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::SYS_TMP);
92+
$tmpDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
9393

9494
$this->prepareDirectory($tmpDirectory, $this->getTmpFilesDirRelativePath());
9595
$this->reportWriter->write($tmpDirectory, $this->getTmpFilesDirRelativePath());
@@ -157,7 +157,9 @@ private function prepareDirectory(WriteInterface $directory, $path)
157157
private function prepareFileDirectory(WriteInterface $directory, $path)
158158
{
159159
$directory->delete($path);
160+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
160161
if (dirname($path) !== '.') {
162+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
161163
$directory->create(dirname($path));
162164
}
163165

@@ -176,6 +178,7 @@ private function pack($source, $destination)
176178
$this->archive->pack(
177179
$source,
178180
$destination,
181+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
179182
is_dir($source) ?: false
180183
);
181184

app/code/Magento/Analytics/README.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
1-
# Magento_Analytics Module
1+
# Magento_Analytics module
22

33
The Magento_Analytics module integrates your Magento instance with the [Magento Business Intelligence (MBI)](https://magento.com/products/business-intelligence) to use [Advanced Reporting](https://devdocs.magento.com/guides/v2.3/advanced-reporting/modules.html) functionality.
44

55
The module implements the following functionality:
66

7-
* enabling subscription to the MBI and automatic re-subscription
8-
* changing the base URL with the same MBI account remained
9-
* declaring the configuration schemas for report data collection
10-
* collecting the Magento instance data as reports for the MBI
11-
* introducing API that provides the collected data
12-
* extending Magento configuration with the module parameters:
13-
* subscription status (enabled/disabled)
14-
* industry (a business area in which the instance website works)
15-
* time of data collection (time of the day when the module collects data)
7+
- Enabling subscription to Magento Business Intelligence (MBI) and automatic re-subscription
8+
- Declaring the configuration schemas for report data collection
9+
- Collecting the Magento instance data as reports for MBI
10+
- Introducing API that provides the collected data
11+
- Extending Magento configuration with the module parameters:
12+
- Subscription status (enabled/disabled)
13+
- Industry (a business area in which the instance website works)
14+
- Time of data collection (time of the day when the module collects data)
15+
16+
## Installation details
17+
18+
Before disabling or uninstalling this module, note that the following modules depends on this module:
19+
- Magento_CatalogAnalytics
20+
- Magento_CustomerAnalytics
21+
- Magento_QuoteAnalytics
22+
- Magento_ReviewAnalytics
23+
- Magento_SalesAnalytics
24+
- Magento_WishlistAnalytics
1625

1726
## Structure
1827

@@ -29,12 +38,12 @@ The subscription to the MBI service is enabled during the installation process o
2938
Configuration settings for the Analytics module can be modified in the Admin Panel on the Stores > Configuration page under the General > Advanced Reporting tab.
3039

3140
The following options can be adjusted:
32-
* Advanced Reporting Service (Enabled/Disabled)
33-
* Alters the status of the Advanced Reporting subscription
34-
* Time of day to send data (Hour/Minute/Second in the store's time zone)
35-
* Defines when the data collection process for the Advanced Reporting service occurs
36-
* Industry
37-
* Defines the industry of the store in order to create a personalized Advanced Reporting experience
41+
- Advanced Reporting Service (Enabled/Disabled)
42+
- Alters the status of the Advanced Reporting subscription
43+
- Time of day to send data (Hour/Minute/Second in the store's time zone)
44+
- Defines when the data collection process for the Advanced Reporting service occurs
45+
- Industry
46+
- Defines the industry of the store in order to create a personalized Advanced Reporting experience
3847

3948
## Extensibility
4049

app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationTimeToSendDataTest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
<amOnPage url="{{AdminConfigGeneralAnalyticsPage.url}}" stepKey="amOnAdminConfig"/>
2626
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingService}}" userInput="Enable" stepKey="selectAdvancedReportingServiceEnabled"/>
2727
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingIndustry}}" userInput="Apps and Games" stepKey="selectAdvancedReportingIndustry"/>
28-
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingHour}}" userInput="11" stepKey="selectAdvancedReportingHour"/>
29-
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingMinute}}" userInput="11" stepKey="selectAdvancedReportingMinute"/>
30-
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingSeconds}}" userInput="00" stepKey="selectAdvancedReportingSeconds"/>
28+
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingHour}}" userInput="23" stepKey="selectAdvancedReportingHour"/>
29+
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingMinute}}" userInput="59" stepKey="selectAdvancedReportingMinute"/>
30+
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingSeconds}}" userInput="59" stepKey="selectAdvancedReportingSeconds"/>
3131
<click selector="{{AdminMainActionsSection.save}}" stepKey="clickSaveConfigButton"/>
3232
<see selector="{{AdminMessagesSection.success}}" userInput="You saved the configuration." stepKey="seeSuccess"/>
3333
</test>

app/code/Magento/Analytics/Test/Unit/Model/ExportDataHandlerTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use Magento\Framework\Archive;
1414
use Magento\Framework\Filesystem;
1515
use Magento\Framework\Filesystem\Directory\WriteInterface;
16-
use Magento\Framework\Filesystem\DirectoryList;
16+
use Magento\Framework\App\Filesystem\DirectoryList;
1717
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
1818

1919
class ExportDataHandlerTest extends \PHPUnit\Framework\TestCase
@@ -137,7 +137,7 @@ public function testPrepareExportData($isArchiveSourceDirectory)
137137
$this->filesystemMock
138138
->expects($this->once())
139139
->method('getDirectoryWrite')
140-
->with(DirectoryList::SYS_TMP)
140+
->with(DirectoryList::VAR_DIR)
141141
->willReturn($this->directoryMock);
142142
$this->directoryMock
143143
->expects($this->exactly(4))
@@ -238,7 +238,7 @@ public function testPrepareExportDataWithLocalizedException()
238238
$this->filesystemMock
239239
->expects($this->once())
240240
->method('getDirectoryWrite')
241-
->with(DirectoryList::SYS_TMP)
241+
->with(DirectoryList::VAR_DIR)
242242
->willReturn($this->directoryMock);
243243
$this->reportWriterMock
244244
->expects($this->once())
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\AsynchronousOperations\Model;
9+
10+
use Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface;
11+
use Magento\Framework\Api\SearchResults;
12+
13+
/**
14+
* Service Data Object with bulk Operation search result.
15+
*/
16+
class OperationSearchResults extends SearchResults implements OperationSearchResultsInterface
17+
{
18+
}

app/code/Magento/AsynchronousOperations/etc/adminhtml/system.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<label>Bulk Actions</label>
1414
<field id="lifetime" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
1515
<label>Days Saved in Log</label>
16+
<validate>validate-zero-or-greater validate-digits</validate>
1617
</field>
1718
</group>
1819
</section>

app/code/Magento/AsynchronousOperations/etc/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<preference for="Magento\AsynchronousOperations\Api\Data\SummaryOperationStatusInterface" type="Magento\AsynchronousOperations\Model\OperationStatus" />
1717
<preference for="Magento\AsynchronousOperations\Api\Data\DetailedBulkOperationsStatusInterface" type="Magento\AsynchronousOperations\Model\BulkStatus\Detailed" />
1818
<preference for="Magento\AsynchronousOperations\Api\Data\BulkOperationsStatusInterface" type="Magento\AsynchronousOperations\Model\BulkStatus\Short" />
19-
<preference for="Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
19+
<preference for="Magento\AsynchronousOperations\Api\Data\OperationSearchResultsInterface" type="Magento\AsynchronousOperations\Model\OperationSearchResults" />
2020
<preference for="Magento\AsynchronousOperations\Api\OperationRepositoryInterface" type="Magento\AsynchronousOperations\Model\OperationRepository" />
2121
<type name="Magento\Framework\EntityManager\MetadataPool">
2222
<arguments>

app/code/Magento/Authorization/Model/Role.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public function __construct( //phpcs:ignore Generic.CodeAnalysis.UselessOverridi
5252

5353
/**
5454
* @inheritDoc
55+
*
56+
* @SuppressWarnings(PHPMD.SerializationAware)
57+
* @deprecated Do not use PHP serialization.
5558
*/
5659
public function __sleep()
5760
{
@@ -61,6 +64,9 @@ public function __sleep()
6164

6265
/**
6366
* @inheritDoc
67+
*
68+
* @SuppressWarnings(PHPMD.SerializationAware)
69+
* @deprecated Do not use PHP serialization.
6470
*/
6571
public function __wakeup()
6672
{

0 commit comments

Comments
 (0)