@atlaspack/core 2.18.6-dev.0 → 2.18.7-dev-eae8c193d.0
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 +20 -0
- package/lib/Atlaspack.js +10 -0
- package/lib/atlaspack-v3/AtlaspackV3.js +16 -3
- package/package.json +18 -18
- package/src/Atlaspack.js +11 -0
- package/src/atlaspack-v3/AtlaspackV3.js +24 -3
- package/test/RequestTracker.test.js +9 -1
- package/test/requests/ConfigRequest.test.js +12 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaspack/core
|
|
2
2
|
|
|
3
|
+
## 2.18.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#655](https://github.com/atlassian-labs/atlaspack/pull/655) [`5ded263`](https://github.com/atlassian-labs/atlaspack/commit/5ded263c7f11b866e8885b81c73e20dd060b25be) Thanks [@yamadapc](https://github.com/yamadapc)! - Clean-up inline requires multi-threading feature-flag
|
|
8
|
+
|
|
9
|
+
- [#658](https://github.com/atlassian-labs/atlaspack/pull/658) [`74fd942`](https://github.com/atlassian-labs/atlaspack/commit/74fd94236ac697207082c4b755b079e56f5564fb) Thanks [@yamadapc](https://github.com/yamadapc)! - Fix environment deduplication issues
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`5ded263`](https://github.com/atlassian-labs/atlaspack/commit/5ded263c7f11b866e8885b81c73e20dd060b25be)]:
|
|
12
|
+
- @atlaspack/feature-flags@2.18.3
|
|
13
|
+
- @atlaspack/cache@3.2.10
|
|
14
|
+
- @atlaspack/fs@2.15.10
|
|
15
|
+
- @atlaspack/graph@3.5.5
|
|
16
|
+
- @atlaspack/utils@2.15.3
|
|
17
|
+
- @atlaspack/package-manager@2.14.15
|
|
18
|
+
- @atlaspack/profiler@2.14.13
|
|
19
|
+
- @atlaspack/types@2.15.5
|
|
20
|
+
- @atlaspack/workers@2.14.15
|
|
21
|
+
- @atlaspack/plugin@2.14.15
|
|
22
|
+
|
|
3
23
|
## 2.18.5
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/lib/Atlaspack.js
CHANGED
|
@@ -226,6 +226,11 @@ class Atlaspack {
|
|
|
226
226
|
});
|
|
227
227
|
}
|
|
228
228
|
this.rustAtlaspack = rustAtlaspack;
|
|
229
|
+
if (featureFlags.atlaspackV3CleanShutdown) {
|
|
230
|
+
this.#disposable.add(() => {
|
|
231
|
+
rustAtlaspack.end();
|
|
232
|
+
});
|
|
233
|
+
}
|
|
229
234
|
let {
|
|
230
235
|
config
|
|
231
236
|
} = await (0, _AtlaspackConfigRequest.loadAtlaspackConfig)(resolvedOptions);
|
|
@@ -395,6 +400,11 @@ class Atlaspack {
|
|
|
395
400
|
}
|
|
396
401
|
if (options.shouldTrace) {
|
|
397
402
|
_profiler().tracer.enable();
|
|
403
|
+
// We need to ensure the tracer is disabled when Atlaspack is disposed as it is a module level object.
|
|
404
|
+
// While rare (except for tests), if another instance is created later it should not have tracing enabled.
|
|
405
|
+
this.#disposable.add(() => {
|
|
406
|
+
_profiler().tracer.disable();
|
|
407
|
+
});
|
|
398
408
|
}
|
|
399
409
|
await this.#reporterRunner.report({
|
|
400
410
|
type: 'buildStart'
|
|
@@ -21,21 +21,28 @@ function _diagnostic() {
|
|
|
21
21
|
}
|
|
22
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
23
|
class AtlaspackV3 {
|
|
24
|
-
constructor(atlaspack_napi) {
|
|
24
|
+
constructor(atlaspack_napi, napiWorkerPool, isDefaultNapiWorkerPool) {
|
|
25
25
|
this._atlaspack_napi = atlaspack_napi;
|
|
26
|
+
this._napiWorkerPool = napiWorkerPool;
|
|
27
|
+
this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
|
|
26
28
|
}
|
|
27
29
|
static async create({
|
|
28
30
|
fs,
|
|
29
31
|
packageManager,
|
|
30
32
|
threads,
|
|
31
33
|
lmdb,
|
|
32
|
-
napiWorkerPool
|
|
34
|
+
napiWorkerPool,
|
|
33
35
|
...options
|
|
34
36
|
}) {
|
|
35
37
|
options.logLevel = options.logLevel || 'error';
|
|
36
38
|
options.defaultTargetOptions = options.defaultTargetOptions || {};
|
|
37
39
|
// $FlowFixMe "engines" are readonly
|
|
38
40
|
options.defaultTargetOptions.engines = options.defaultTargetOptions.engines || {};
|
|
41
|
+
let isDefaultNapiWorkerPool = false;
|
|
42
|
+
if (!napiWorkerPool) {
|
|
43
|
+
napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool();
|
|
44
|
+
isDefaultNapiWorkerPool = true;
|
|
45
|
+
}
|
|
39
46
|
const [internal, error] = await (0, _rust().atlaspackNapiCreate)({
|
|
40
47
|
fs,
|
|
41
48
|
packageManager,
|
|
@@ -48,7 +55,13 @@ class AtlaspackV3 {
|
|
|
48
55
|
diagnostic: error
|
|
49
56
|
});
|
|
50
57
|
}
|
|
51
|
-
return new AtlaspackV3(internal);
|
|
58
|
+
return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
|
|
59
|
+
}
|
|
60
|
+
end() {
|
|
61
|
+
// If the worker pool was provided to us, don't shut it down, it's up to the provider.
|
|
62
|
+
if (this._isDefaultNapiWorkerPool) {
|
|
63
|
+
this._napiWorkerPool.shutdown();
|
|
64
|
+
}
|
|
52
65
|
}
|
|
53
66
|
async buildAssetGraph() {
|
|
54
67
|
let [graph, error] = await (0, _rust().atlaspackNapiBuildAssetGraph)(this._atlaspack_napi);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/core",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.7-dev-eae8c193d.0",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -21,21 +21,21 @@
|
|
|
21
21
|
"check-ts": "tsc --noEmit index.d.ts"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@atlaspack/build-cache": "2.13.4-dev.0",
|
|
25
|
-
"@atlaspack/cache": "3.2.
|
|
26
|
-
"@atlaspack/diagnostic": "2.14.2-dev.0",
|
|
27
|
-
"@atlaspack/events": "2.14.2-dev.0",
|
|
28
|
-
"@atlaspack/feature-flags": "2.18.
|
|
29
|
-
"@atlaspack/fs": "2.15.
|
|
30
|
-
"@atlaspack/graph": "3.5.
|
|
31
|
-
"@atlaspack/logger": "2.14.12-dev.0",
|
|
32
|
-
"@atlaspack/package-manager": "2.14.
|
|
33
|
-
"@atlaspack/plugin": "2.14.
|
|
34
|
-
"@atlaspack/profiler": "2.14.
|
|
35
|
-
"@atlaspack/rust": "3.3.6-dev.0",
|
|
36
|
-
"@atlaspack/types": "2.15.
|
|
37
|
-
"@atlaspack/utils": "2.15.
|
|
38
|
-
"@atlaspack/workers": "2.14.
|
|
24
|
+
"@atlaspack/build-cache": "2.13.4-dev-eae8c193d.0",
|
|
25
|
+
"@atlaspack/cache": "3.2.11-dev-eae8c193d.0",
|
|
26
|
+
"@atlaspack/diagnostic": "2.14.2-dev-eae8c193d.0",
|
|
27
|
+
"@atlaspack/events": "2.14.2-dev-eae8c193d.0",
|
|
28
|
+
"@atlaspack/feature-flags": "2.18.4-dev-eae8c193d.0",
|
|
29
|
+
"@atlaspack/fs": "2.15.11-dev-eae8c193d.0",
|
|
30
|
+
"@atlaspack/graph": "3.5.6-dev-eae8c193d.0",
|
|
31
|
+
"@atlaspack/logger": "2.14.12-dev-eae8c193d.0",
|
|
32
|
+
"@atlaspack/package-manager": "2.14.16-dev-eae8c193d.0",
|
|
33
|
+
"@atlaspack/plugin": "2.14.16-dev-eae8c193d.0",
|
|
34
|
+
"@atlaspack/profiler": "2.14.14-dev-eae8c193d.0",
|
|
35
|
+
"@atlaspack/rust": "3.3.6-dev-eae8c193d.0",
|
|
36
|
+
"@atlaspack/types": "2.15.6-dev-eae8c193d.0",
|
|
37
|
+
"@atlaspack/utils": "2.15.4-dev-eae8c193d.0",
|
|
38
|
+
"@atlaspack/workers": "2.14.16-dev-eae8c193d.0",
|
|
39
39
|
"@mischnic/json-sourcemap": "^0.1.0",
|
|
40
40
|
"@parcel/source-map": "^2.1.1",
|
|
41
41
|
"base-x": "^3.0.8",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"semver": "^7.5.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@atlaspack/babel-register": "2.14.2-dev.0",
|
|
52
|
+
"@atlaspack/babel-register": "2.14.2-dev-eae8c193d.0",
|
|
53
53
|
"@types/node": ">= 18",
|
|
54
54
|
"graphviz": "^0.0.9",
|
|
55
55
|
"jest-diff": "*",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"./src/serializerCore.js": "./src/serializerCore.browser.js"
|
|
61
61
|
},
|
|
62
62
|
"type": "commonjs",
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "eae8c193d1b12309f6377859a2da6a352b329f3d"
|
|
64
64
|
}
|
package/src/Atlaspack.js
CHANGED
|
@@ -190,6 +190,12 @@ export default class Atlaspack {
|
|
|
190
190
|
}
|
|
191
191
|
this.rustAtlaspack = rustAtlaspack;
|
|
192
192
|
|
|
193
|
+
if (featureFlags.atlaspackV3CleanShutdown) {
|
|
194
|
+
this.#disposable.add(() => {
|
|
195
|
+
rustAtlaspack.end();
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
193
199
|
let {config} = await loadAtlaspackConfig(resolvedOptions);
|
|
194
200
|
this.#config = new AtlaspackConfig(config, resolvedOptions);
|
|
195
201
|
|
|
@@ -386,6 +392,11 @@ export default class Atlaspack {
|
|
|
386
392
|
}
|
|
387
393
|
if (options.shouldTrace) {
|
|
388
394
|
tracer.enable();
|
|
395
|
+
// We need to ensure the tracer is disabled when Atlaspack is disposed as it is a module level object.
|
|
396
|
+
// While rare (except for tests), if another instance is created later it should not have tracing enabled.
|
|
397
|
+
this.#disposable.add(() => {
|
|
398
|
+
tracer.disable();
|
|
399
|
+
});
|
|
389
400
|
}
|
|
390
401
|
await this.#reporterRunner.report({
|
|
391
402
|
type: 'buildStart',
|
|
@@ -28,9 +28,17 @@ export type AtlaspackV3Options = {|
|
|
|
28
28
|
|
|
29
29
|
export class AtlaspackV3 {
|
|
30
30
|
_atlaspack_napi: AtlaspackNapi;
|
|
31
|
+
_napiWorkerPool: INapiWorkerPool;
|
|
32
|
+
_isDefaultNapiWorkerPool: boolean;
|
|
31
33
|
|
|
32
|
-
constructor(
|
|
34
|
+
constructor(
|
|
35
|
+
atlaspack_napi: AtlaspackNapi,
|
|
36
|
+
napiWorkerPool: INapiWorkerPool,
|
|
37
|
+
isDefaultNapiWorkerPool: boolean,
|
|
38
|
+
) {
|
|
33
39
|
this._atlaspack_napi = atlaspack_napi;
|
|
40
|
+
this._napiWorkerPool = napiWorkerPool;
|
|
41
|
+
this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
static async create({
|
|
@@ -38,7 +46,7 @@ export class AtlaspackV3 {
|
|
|
38
46
|
packageManager,
|
|
39
47
|
threads,
|
|
40
48
|
lmdb,
|
|
41
|
-
napiWorkerPool
|
|
49
|
+
napiWorkerPool,
|
|
42
50
|
...options
|
|
43
51
|
}: AtlaspackV3Options): Promise<AtlaspackV3> {
|
|
44
52
|
options.logLevel = options.logLevel || 'error';
|
|
@@ -47,6 +55,12 @@ export class AtlaspackV3 {
|
|
|
47
55
|
options.defaultTargetOptions.engines =
|
|
48
56
|
options.defaultTargetOptions.engines || {};
|
|
49
57
|
|
|
58
|
+
let isDefaultNapiWorkerPool = false;
|
|
59
|
+
if (!napiWorkerPool) {
|
|
60
|
+
napiWorkerPool = new NapiWorkerPool();
|
|
61
|
+
isDefaultNapiWorkerPool = true;
|
|
62
|
+
}
|
|
63
|
+
|
|
50
64
|
const [internal, error] = await atlaspackNapiCreate(
|
|
51
65
|
{
|
|
52
66
|
fs,
|
|
@@ -64,7 +78,14 @@ export class AtlaspackV3 {
|
|
|
64
78
|
});
|
|
65
79
|
}
|
|
66
80
|
|
|
67
|
-
return new AtlaspackV3(internal);
|
|
81
|
+
return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
end(): void {
|
|
85
|
+
// If the worker pool was provided to us, don't shut it down, it's up to the provider.
|
|
86
|
+
if (this._isDefaultNapiWorkerPool) {
|
|
87
|
+
this._napiWorkerPool.shutdown();
|
|
88
|
+
}
|
|
68
89
|
}
|
|
69
90
|
|
|
70
91
|
async buildAssetGraph(): Promise<any> {
|
|
@@ -24,9 +24,13 @@ const options = {
|
|
|
24
24
|
...DEFAULT_OPTIONS,
|
|
25
25
|
cache: new LMDBLiteCache(DEFAULT_OPTIONS.cacheDir),
|
|
26
26
|
};
|
|
27
|
-
const farm = new WorkerFarm({workerPath: require.resolve('../src/worker')});
|
|
28
27
|
|
|
29
28
|
describe('RequestTracker', () => {
|
|
29
|
+
let farm;
|
|
30
|
+
before(() => {
|
|
31
|
+
farm = new WorkerFarm({workerPath: require.resolve('../src/worker')});
|
|
32
|
+
});
|
|
33
|
+
|
|
30
34
|
beforeEach(async () => {
|
|
31
35
|
await options.cache.ensure();
|
|
32
36
|
|
|
@@ -35,6 +39,10 @@ describe('RequestTracker', () => {
|
|
|
35
39
|
}
|
|
36
40
|
});
|
|
37
41
|
|
|
42
|
+
after(() => {
|
|
43
|
+
farm.end();
|
|
44
|
+
});
|
|
45
|
+
|
|
38
46
|
it('should not run requests that have not been invalidated', async () => {
|
|
39
47
|
let tracker = new RequestTracker({farm, options});
|
|
40
48
|
await tracker.runRequest({
|
|
@@ -23,15 +23,23 @@ const mockCast = (f: any): any => f;
|
|
|
23
23
|
|
|
24
24
|
describe('ConfigRequest tests', () => {
|
|
25
25
|
const projectRoot = 'project_root';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
let farm;
|
|
27
|
+
let fs;
|
|
28
|
+
before(() => {
|
|
29
|
+
farm = new WorkerFarm({
|
|
30
|
+
workerPath: require.resolve('../../src/worker'),
|
|
31
|
+
maxConcurrentWorkers: 1,
|
|
32
|
+
});
|
|
29
33
|
});
|
|
30
|
-
|
|
34
|
+
|
|
31
35
|
beforeEach(() => {
|
|
32
36
|
fs = new MemoryFS(farm);
|
|
33
37
|
});
|
|
34
38
|
|
|
39
|
+
after(() => {
|
|
40
|
+
farm.end();
|
|
41
|
+
});
|
|
42
|
+
|
|
35
43
|
const getMockRunApi = (
|
|
36
44
|
options: mixed = {projectRoot, inputFS: fs},
|
|
37
45
|
): RunAPI<ConfigRequestResult> => {
|