@atlaspack/core 2.18.4 → 2.18.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/lib/RequestTracker.js +6 -1
- package/lib/requests/DevDepRequest.js +21 -1
- package/package.json +11 -11
- package/src/RequestTracker.js +7 -1
- package/src/requests/DevDepRequest.js +44 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaspack/core
|
|
2
2
|
|
|
3
|
+
## 2.18.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#652](https://github.com/atlassian-labs/atlaspack/pull/652) [`644b157`](https://github.com/atlassian-labs/atlaspack/commit/644b157dee72a871acc2d0facf0b87b8eea51956) Thanks [@yamadapc](https://github.com/yamadapc)! - Fix bugs related to build aborts. Builds and cache writes will no longer be aborted.
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`644b157`](https://github.com/atlassian-labs/atlaspack/commit/644b157dee72a871acc2d0facf0b87b8eea51956)]:
|
|
10
|
+
- @atlaspack/feature-flags@2.18.2
|
|
11
|
+
- @atlaspack/cache@3.2.9
|
|
12
|
+
- @atlaspack/fs@2.15.9
|
|
13
|
+
- @atlaspack/graph@3.5.4
|
|
14
|
+
- @atlaspack/utils@2.15.2
|
|
15
|
+
- @atlaspack/package-manager@2.14.14
|
|
16
|
+
- @atlaspack/profiler@2.14.12
|
|
17
|
+
- @atlaspack/types@2.15.4
|
|
18
|
+
- @atlaspack/workers@2.14.14
|
|
19
|
+
- @atlaspack/plugin@2.14.14
|
|
20
|
+
|
|
3
21
|
## 2.18.4
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/lib/RequestTracker.js
CHANGED
|
@@ -779,6 +779,9 @@ class RequestTracker {
|
|
|
779
779
|
|
|
780
780
|
// TODO: refactor (abortcontroller should be created by RequestTracker)
|
|
781
781
|
setSignal(signal) {
|
|
782
|
+
if ((0, _featureFlags().getFeatureFlag)('fixBuildAbortCorruption')) {
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
782
785
|
this.signal = signal;
|
|
783
786
|
}
|
|
784
787
|
startRequest(request) {
|
|
@@ -919,7 +922,9 @@ class RequestTracker {
|
|
|
919
922
|
options: this.options,
|
|
920
923
|
rustAtlaspack: this.rustAtlaspack
|
|
921
924
|
});
|
|
922
|
-
(0,
|
|
925
|
+
if (!(0, _featureFlags().getFeatureFlag)('fixBuildAbortCorruption')) {
|
|
926
|
+
(0, _utils2.assertSignalNotAborted)(this.signal);
|
|
927
|
+
}
|
|
923
928
|
this.completeRequest(requestNodeId);
|
|
924
929
|
deferred.resolve(true);
|
|
925
930
|
return result;
|
|
@@ -27,6 +27,13 @@ var _assetUtils = require("../assetUtils");
|
|
|
27
27
|
var _utils = require("../utils");
|
|
28
28
|
var _projectPath = require("../projectPath");
|
|
29
29
|
var _RequestTracker = require("../RequestTracker");
|
|
30
|
+
function _featureFlags() {
|
|
31
|
+
const data = require("@atlaspack/feature-flags");
|
|
32
|
+
_featureFlags = function () {
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
30
37
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
38
|
// A cache of dev dep requests keyed by invalidations.
|
|
32
39
|
// If the package manager returns the same invalidation object, then
|
|
@@ -89,7 +96,20 @@ async function createDevDependency(opts, requestDevDeps, options) {
|
|
|
89
96
|
return devDepRequest;
|
|
90
97
|
}
|
|
91
98
|
async function getDevDepRequests(api) {
|
|
92
|
-
|
|
99
|
+
const previousDevDepRequests = await async function getPreviousDevDepRequests() {
|
|
100
|
+
if ((0, _featureFlags().getFeatureFlag)('fixBuildAbortCorruption')) {
|
|
101
|
+
const allDevDepRequests = await Promise.all(api.getSubRequests().filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request).map(async req => [req.id, await api.getRequestResult(req.id)]));
|
|
102
|
+
const nonNullDevDepRequests = [];
|
|
103
|
+
for (const [id, result] of allDevDepRequests) {
|
|
104
|
+
if (result != null) {
|
|
105
|
+
nonNullDevDepRequests.push([id, result]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return new Map(nonNullDevDepRequests);
|
|
109
|
+
} else {
|
|
110
|
+
return new Map(await Promise.all(api.getSubRequests().filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request).map(async req => [req.id, (0, _nullthrows().default)(await api.getRequestResult(req.id))])));
|
|
111
|
+
}
|
|
112
|
+
}();
|
|
93
113
|
return {
|
|
94
114
|
devDeps: new Map([...previousDevDepRequests.entries()].filter(([id]) => api.canSkipSubrequest(id)).map(([, req]) => [`${req.specifier}:${(0, _projectPath.fromProjectPathRelative)(req.resolveFrom)}`, req.hash])),
|
|
95
115
|
invalidDevDeps: await Promise.all([...previousDevDepRequests.entries()].filter(([id]) => !api.canSkipSubrequest(id)).flatMap(([, req]) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/core",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.5",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,20 +23,20 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@mischnic/json-sourcemap": "^0.1.0",
|
|
25
25
|
"@atlaspack/build-cache": "2.13.3",
|
|
26
|
-
"@atlaspack/cache": "3.2.
|
|
26
|
+
"@atlaspack/cache": "3.2.9",
|
|
27
27
|
"@atlaspack/diagnostic": "2.14.1",
|
|
28
28
|
"@atlaspack/events": "2.14.1",
|
|
29
|
-
"@atlaspack/feature-flags": "2.18.
|
|
30
|
-
"@atlaspack/fs": "2.15.
|
|
31
|
-
"@atlaspack/graph": "3.5.
|
|
29
|
+
"@atlaspack/feature-flags": "2.18.2",
|
|
30
|
+
"@atlaspack/fs": "2.15.9",
|
|
31
|
+
"@atlaspack/graph": "3.5.4",
|
|
32
32
|
"@atlaspack/logger": "2.14.11",
|
|
33
|
-
"@atlaspack/package-manager": "2.14.
|
|
34
|
-
"@atlaspack/plugin": "2.14.
|
|
35
|
-
"@atlaspack/profiler": "2.14.
|
|
33
|
+
"@atlaspack/package-manager": "2.14.14",
|
|
34
|
+
"@atlaspack/plugin": "2.14.14",
|
|
35
|
+
"@atlaspack/profiler": "2.14.12",
|
|
36
36
|
"@atlaspack/rust": "3.3.5",
|
|
37
|
-
"@atlaspack/types": "2.15.
|
|
38
|
-
"@atlaspack/utils": "2.15.
|
|
39
|
-
"@atlaspack/workers": "2.14.
|
|
37
|
+
"@atlaspack/types": "2.15.4",
|
|
38
|
+
"@atlaspack/utils": "2.15.2",
|
|
39
|
+
"@atlaspack/workers": "2.14.14",
|
|
40
40
|
"@parcel/source-map": "^2.1.1",
|
|
41
41
|
"base-x": "^3.0.8",
|
|
42
42
|
"browserslist": "^4.6.6",
|
package/src/RequestTracker.js
CHANGED
|
@@ -1235,6 +1235,9 @@ export default class RequestTracker {
|
|
|
1235
1235
|
|
|
1236
1236
|
// TODO: refactor (abortcontroller should be created by RequestTracker)
|
|
1237
1237
|
setSignal(signal?: AbortSignal) {
|
|
1238
|
+
if (getFeatureFlag('fixBuildAbortCorruption')) {
|
|
1239
|
+
return;
|
|
1240
|
+
}
|
|
1238
1241
|
this.signal = signal;
|
|
1239
1242
|
}
|
|
1240
1243
|
|
|
@@ -1418,7 +1421,10 @@ export default class RequestTracker {
|
|
|
1418
1421
|
rustAtlaspack: this.rustAtlaspack,
|
|
1419
1422
|
});
|
|
1420
1423
|
|
|
1421
|
-
|
|
1424
|
+
if (!getFeatureFlag('fixBuildAbortCorruption')) {
|
|
1425
|
+
assertSignalNotAborted(this.signal);
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1422
1428
|
this.completeRequest(requestNodeId);
|
|
1423
1429
|
|
|
1424
1430
|
deferred.resolve(true);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
// @flow
|
|
1
|
+
// @flow strict-local
|
|
2
|
+
|
|
2
3
|
import type {
|
|
3
4
|
DependencySpecifier,
|
|
4
5
|
SemverRange,
|
|
@@ -24,6 +25,7 @@ import {
|
|
|
24
25
|
toProjectPath,
|
|
25
26
|
} from '../projectPath';
|
|
26
27
|
import {requestTypes} from '../RequestTracker';
|
|
28
|
+
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
27
29
|
|
|
28
30
|
// A cache of dev dep requests keyed by invalidations.
|
|
29
31
|
// If the package manager returns the same invalidation object, then
|
|
@@ -116,17 +118,47 @@ type DevDepRequests = {|
|
|
|
116
118
|
export async function getDevDepRequests<TResult: RequestResult>(
|
|
117
119
|
api: RunAPI<TResult>,
|
|
118
120
|
): Promise<DevDepRequests> {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
121
|
+
async function getPreviousDevDepRequests() {
|
|
122
|
+
if (getFeatureFlag('fixBuildAbortCorruption')) {
|
|
123
|
+
const allDevDepRequests = await Promise.all(
|
|
124
|
+
api
|
|
125
|
+
.getSubRequests()
|
|
126
|
+
.filter((req) => req.requestType === requestTypes.dev_dep_request)
|
|
127
|
+
.map(
|
|
128
|
+
async (
|
|
129
|
+
req,
|
|
130
|
+
): Promise<[string, DevDepRequestResult | null | void]> => [
|
|
131
|
+
req.id,
|
|
132
|
+
await api.getRequestResult<DevDepRequestResult>(req.id),
|
|
133
|
+
],
|
|
134
|
+
),
|
|
135
|
+
);
|
|
136
|
+
const nonNullDevDepRequests = [];
|
|
137
|
+
for (const [id, result] of allDevDepRequests) {
|
|
138
|
+
if (result != null) {
|
|
139
|
+
nonNullDevDepRequests.push([id, result]);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return new Map(nonNullDevDepRequests);
|
|
144
|
+
} else {
|
|
145
|
+
return new Map(
|
|
146
|
+
await Promise.all(
|
|
147
|
+
api
|
|
148
|
+
.getSubRequests()
|
|
149
|
+
.filter((req) => req.requestType === requestTypes.dev_dep_request)
|
|
150
|
+
.map(async (req) => [
|
|
151
|
+
req.id,
|
|
152
|
+
nullthrows(
|
|
153
|
+
await api.getRequestResult<DevDepRequestResult>(req.id),
|
|
154
|
+
),
|
|
155
|
+
]),
|
|
156
|
+
),
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const previousDevDepRequests = await getPreviousDevDepRequests();
|
|
130
162
|
|
|
131
163
|
return {
|
|
132
164
|
devDeps: new Map(
|