lim 0.34.0-rc.1 → 0.34.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/README.md +6 -5
- package/dist/base-command.d.ts +3 -3
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +37 -26
- package/dist/base-command.js.map +1 -1
- package/dist/base-command.xcode-selection.test.js +27 -0
- package/dist/base-command.xcode-selection.test.js.map +1 -1
- package/dist/commands/xcode/create.d.ts.map +1 -1
- package/dist/commands/xcode/create.js +3 -2
- package/dist/commands/xcode/create.js.map +1 -1
- package/dist/commands/xcode/version/index.d.ts.map +1 -1
- package/dist/commands/xcode/version/index.js +4 -4
- package/dist/commands/xcode/version/index.js.map +1 -1
- package/dist/commands/xcode/version/list.d.ts.map +1 -1
- package/dist/commands/xcode/version/list.js +11 -7
- package/dist/commands/xcode/version/list.js.map +1 -1
- package/dist/commands/xcode/version/set.d.ts +1 -1
- package/dist/commands/xcode/version/set.d.ts.map +1 -1
- package/dist/commands/xcode/version/set.js +13 -7
- package/dist/commands/xcode/version/set.js.map +1 -1
- package/dist/commands/xcode/version/unset.d.ts.map +1 -1
- package/dist/commands/xcode/version/unset.js +3 -2
- package/dist/commands/xcode/version/unset.js.map +1 -1
- package/dist/lib/build-use-command.js +6 -6
- package/dist/lib/build-use-command.js.map +1 -1
- package/dist/lib/build-use-command.test.js +8 -2
- package/dist/lib/build-use-command.test.js.map +1 -1
- package/dist/lib/config.d.ts +2 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +5 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/xcode-version.d.ts +34 -9
- package/dist/lib/xcode-version.d.ts.map +1 -1
- package/dist/lib/xcode-version.js +72 -17
- package/dist/lib/xcode-version.js.map +1 -1
- package/dist/lib/xcode-version.test.js +54 -10
- package/dist/lib/xcode-version.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.xcodeTargetFlags = exports.xcodeVersionFlags = void 0;
|
|
4
|
-
exports.
|
|
3
|
+
exports.XCODE_SELECTOR_PATTERN = exports.xcodeTargetFlags = exports.xcodeVersionFlags = void 0;
|
|
4
|
+
exports.parseXcodeVersion = parseXcodeVersion;
|
|
5
5
|
exports.resolveRequestedXcodeVersion = resolveRequestedXcodeVersion;
|
|
6
|
+
exports.xcodeSelectorFor = xcodeSelectorFor;
|
|
7
|
+
exports.preferenceSelects = preferenceSelects;
|
|
6
8
|
exports.formatXcodeVersion = formatXcodeVersion;
|
|
7
9
|
exports.formatXcode = formatXcode;
|
|
8
10
|
const core_1 = require("@oclif/core");
|
|
9
11
|
const config_1 = require("./config");
|
|
10
|
-
/** The one-shot Xcode
|
|
12
|
+
/** The one-shot Xcode selection shared by create, build, test and rbe. */
|
|
11
13
|
exports.xcodeVersionFlags = {
|
|
12
14
|
'xcode-version': core_1.Flags.string({
|
|
13
|
-
description:
|
|
14
|
-
'
|
|
15
|
-
|
|
15
|
+
description: "Xcode to build with for this invocation: a major such as 27 (that major's GA release) or a major.minor such as " +
|
|
16
|
+
'27.1 (an exact version, typically a beta); see `lim xcode version list`. Overrides the workspace preference set ' +
|
|
17
|
+
'with `lim xcode version set` without changing it. Switching invalidates the build cache from the other version, ' +
|
|
18
|
+
'so the next build starts cold.',
|
|
19
|
+
helpValue: '<major|major.minor>',
|
|
16
20
|
}),
|
|
17
21
|
};
|
|
18
22
|
/** Target selection for the `version` commands: an explicit sandbox, never an auto-created one. */
|
|
@@ -21,27 +25,78 @@ exports.xcodeTargetFlags = {
|
|
|
21
25
|
description: 'Xcode instance ID to target. Defaults to the most recently created Xcode-capable target.',
|
|
22
26
|
}),
|
|
23
27
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* What the daemon accepts: a bare major ("27", resolves to that major's GA) or a major.minor
|
|
30
|
+
* ("27.1", an exact version). Shared with the saved workspace preference so a value that passes
|
|
31
|
+
* here is never dropped on read.
|
|
32
|
+
*/
|
|
33
|
+
exports.XCODE_SELECTOR_PATTERN = /^\d+(\.\d+)?$/;
|
|
34
|
+
/** Rejects anything but a major or major.minor such as "27" or "27.1", before any network call. */
|
|
35
|
+
function parseXcodeVersion(value, source = '--xcode-version') {
|
|
36
|
+
if (!exports.XCODE_SELECTOR_PATTERN.test(value)) {
|
|
37
|
+
throw new Error(`${source} takes an Xcode major such as 27 or major.minor such as 27.1 (got ${JSON.stringify(value)})`);
|
|
29
38
|
}
|
|
30
39
|
return value;
|
|
31
40
|
}
|
|
32
41
|
/**
|
|
33
|
-
* The Xcode
|
|
34
|
-
*
|
|
42
|
+
* The Xcode a command should make its sandbox use: the flag when given, else the workspace
|
|
43
|
+
* preference, else nothing (the sandbox keeps its selected Xcode).
|
|
35
44
|
*/
|
|
36
45
|
function resolveRequestedXcodeVersion(flag) {
|
|
37
46
|
if (flag)
|
|
38
|
-
return {
|
|
47
|
+
return { version: parseXcodeVersion(flag), source: 'flag' };
|
|
39
48
|
const preferred = (0, config_1.loadXcodeVersionPreference)();
|
|
40
|
-
return preferred ? {
|
|
49
|
+
return preferred ? { version: preferred, source: 'workspace' } : undefined;
|
|
41
50
|
}
|
|
42
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* The value a user types to select this Xcode. The daemon binds a bare major to the newest GA
|
|
53
|
+
* of that major, so that one Xcode is selected by its major; every other Xcode, a beta or an
|
|
54
|
+
* older GA kept beside a newer one, needs its exact version. Daemons that predate the channel
|
|
55
|
+
* report none and carry one Xcode per major, so the major selects it there too.
|
|
56
|
+
*/
|
|
57
|
+
function xcodeSelectorFor(info, installed) {
|
|
58
|
+
if (info.channel === 'beta')
|
|
59
|
+
return info.version;
|
|
60
|
+
const newestGA = installed
|
|
61
|
+
.filter((x) => x.major === info.major && x.channel !== 'beta')
|
|
62
|
+
.sort((a, b) => compareVersions(b.version, a.version))[0];
|
|
63
|
+
return !newestGA || newestGA.developerDir === info.developerDir ? info.major : info.version;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Whether a saved preference names the sandbox's bound Xcode: a bare major matches the GA it
|
|
67
|
+
* would bind, a major.minor matches that exact version.
|
|
68
|
+
*/
|
|
69
|
+
function preferenceSelects(preferred, bound, installed) {
|
|
70
|
+
if (preferred.includes('.'))
|
|
71
|
+
return normalizeMinor(bound.version) === normalizeMinor(preferred);
|
|
72
|
+
return xcodeSelectorFor(bound, installed) === preferred;
|
|
73
|
+
}
|
|
74
|
+
/** "27" and "27.0" name one minor; "26.4.1" belongs to "26.4". */
|
|
75
|
+
function normalizeMinor(version) {
|
|
76
|
+
const [major, minor = '0'] = version.split('.');
|
|
77
|
+
return `${Number(major)}.${Number(minor)}`;
|
|
78
|
+
}
|
|
79
|
+
/** Numeric, component by component, so "26.10" sorts after "26.4". */
|
|
80
|
+
function compareVersions(a, b) {
|
|
81
|
+
const as = a.split('.').map(Number);
|
|
82
|
+
const bs = b.split('.').map(Number);
|
|
83
|
+
for (let i = 0; i < Math.max(as.length, bs.length); i++) {
|
|
84
|
+
const diff = (as[i] ?? 0) - (bs[i] ?? 0);
|
|
85
|
+
if (diff !== 0)
|
|
86
|
+
return diff;
|
|
87
|
+
}
|
|
88
|
+
return 0;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* "27.0 (27A5252f)", "27.0 beta 6 (27A5252f)" for a seed with a number, "27.1 beta (27A9269)"
|
|
92
|
+
* for a beta without one: the word appears wherever a beta is shown or selected, since the
|
|
93
|
+
* version alone does not say so.
|
|
94
|
+
*/
|
|
43
95
|
function formatXcodeVersion(info) {
|
|
44
|
-
|
|
96
|
+
const beta = info.betaSeed ? ` beta ${info.betaSeed}`
|
|
97
|
+
: info.channel === 'beta' ? ' beta'
|
|
98
|
+
: '';
|
|
99
|
+
return `${info.version}${beta} (${info.build})`;
|
|
45
100
|
}
|
|
46
101
|
/** formatXcodeVersion plus the node-default mark, falling back to the version key on nodes that report only that. */
|
|
47
102
|
function formatXcode(info) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcode-version.js","sourceRoot":"","sources":["../../src/lib/xcode-version.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"xcode-version.js","sourceRoot":"","sources":["../../src/lib/xcode-version.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,33 +4,77 @@ const xcode_version_1 = require("./xcode-version");
|
|
|
4
4
|
const config_1 = require("./config");
|
|
5
5
|
jest.mock('./config', () => ({ loadXcodeVersionPreference: jest.fn() }));
|
|
6
6
|
const config = { loadXcodeVersionPreference: config_1.loadXcodeVersionPreference };
|
|
7
|
-
describe('
|
|
8
|
-
test('
|
|
9
|
-
expect((0, xcode_version_1.
|
|
7
|
+
describe('parseXcodeVersion', () => {
|
|
8
|
+
test.each(['27', '27.0', '27.1'])('accepts %j', (value) => {
|
|
9
|
+
expect((0, xcode_version_1.parseXcodeVersion)(value)).toBe(value);
|
|
10
10
|
});
|
|
11
|
-
test.each(['27.
|
|
12
|
-
expect(() => (0, xcode_version_1.
|
|
11
|
+
test.each(['27.1.2', '27.', '.1', 'Xcode 27', '', '27a'])('rejects %j', (value) => {
|
|
12
|
+
expect(() => (0, xcode_version_1.parseXcodeVersion)(value)).toThrow('--xcode-version takes an Xcode major such as 27 or major.minor such as 27.1');
|
|
13
13
|
});
|
|
14
14
|
test('names the caller in the error', () => {
|
|
15
|
-
expect(() => (0, xcode_version_1.
|
|
15
|
+
expect(() => (0, xcode_version_1.parseXcodeVersion)('27.0.1', 'version set')).toThrow('version set takes an Xcode major such as 27 or major.minor such as 27.1');
|
|
16
16
|
});
|
|
17
17
|
});
|
|
18
18
|
describe('resolveRequestedXcodeVersion', () => {
|
|
19
19
|
afterEach(() => config.loadXcodeVersionPreference.mockReset());
|
|
20
20
|
test('the flag wins over the workspace preference and is not remembered', () => {
|
|
21
21
|
config.loadXcodeVersionPreference.mockReturnValue('27');
|
|
22
|
-
expect((0, xcode_version_1.resolveRequestedXcodeVersion)('26')).toEqual({
|
|
22
|
+
expect((0, xcode_version_1.resolveRequestedXcodeVersion)('26')).toEqual({ version: '26', source: 'flag' });
|
|
23
23
|
});
|
|
24
24
|
test('falls back to the workspace preference', () => {
|
|
25
|
-
config.loadXcodeVersionPreference.mockReturnValue('27');
|
|
26
|
-
expect((0, xcode_version_1.resolveRequestedXcodeVersion)(undefined)).toEqual({
|
|
25
|
+
config.loadXcodeVersionPreference.mockReturnValue('27.1');
|
|
26
|
+
expect((0, xcode_version_1.resolveRequestedXcodeVersion)(undefined)).toEqual({ version: '27.1', source: 'workspace' });
|
|
27
27
|
});
|
|
28
28
|
test('asks for nothing when neither is set, so the sandbox keeps its binding', () => {
|
|
29
29
|
config.loadXcodeVersionPreference.mockReturnValue(null);
|
|
30
30
|
expect((0, xcode_version_1.resolveRequestedXcodeVersion)(undefined)).toBeUndefined();
|
|
31
31
|
});
|
|
32
32
|
test('rejects a malformed flag before any network call', () => {
|
|
33
|
-
expect(() => (0, xcode_version_1.resolveRequestedXcodeVersion)('27.0')).toThrow('--xcode-version takes an Xcode major');
|
|
33
|
+
expect(() => (0, xcode_version_1.resolveRequestedXcodeVersion)('27.0.1')).toThrow('--xcode-version takes an Xcode major');
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
const ga26 = { major: '26', version: '26.4', channel: 'ga', developerDir: '/x/26.4' };
|
|
37
|
+
const ga27 = { major: '27', version: '27.0', channel: 'ga', developerDir: '/x/27.0' };
|
|
38
|
+
const beta271 = { major: '27', version: '27.1', channel: 'beta', developerDir: '/x/27.1' };
|
|
39
|
+
const ga271 = { major: '27', version: '27.1', channel: 'ga', developerDir: '/x/27.1' };
|
|
40
|
+
const legacy27 = { major: '27', version: '27.0', developerDir: '/x/27.0' };
|
|
41
|
+
const fleet = [ga26, ga27, beta271];
|
|
42
|
+
describe('xcodeSelectorFor', () => {
|
|
43
|
+
test('a GA is selected by its bare major, a beta by its version', () => {
|
|
44
|
+
expect((0, xcode_version_1.xcodeSelectorFor)(ga27, fleet)).toBe('27');
|
|
45
|
+
expect((0, xcode_version_1.xcodeSelectorFor)(beta271, fleet)).toBe('27.1');
|
|
46
|
+
});
|
|
47
|
+
test('with two GAs of one major only the newest answers to the bare major', () => {
|
|
48
|
+
const twoGAs = [ga26, ga27, ga271];
|
|
49
|
+
expect((0, xcode_version_1.xcodeSelectorFor)(ga271, twoGAs)).toBe('27');
|
|
50
|
+
expect((0, xcode_version_1.xcodeSelectorFor)(ga27, twoGAs)).toBe('27.0');
|
|
51
|
+
});
|
|
52
|
+
test('a daemon without channels carries one Xcode per major, so the major selects it', () => {
|
|
53
|
+
expect((0, xcode_version_1.xcodeSelectorFor)(legacy27, [ga26, legacy27])).toBe('27');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('preferenceSelects', () => {
|
|
57
|
+
test('a bare major names the GA it would bind, never a beta', () => {
|
|
58
|
+
expect((0, xcode_version_1.preferenceSelects)('27', ga27, fleet)).toBe(true);
|
|
59
|
+
expect((0, xcode_version_1.preferenceSelects)('27', beta271, fleet)).toBe(false);
|
|
60
|
+
expect((0, xcode_version_1.preferenceSelects)('26', ga27, fleet)).toBe(false);
|
|
61
|
+
expect((0, xcode_version_1.preferenceSelects)('27', ga27, [ga26, ga27, ga271])).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
test('a major.minor names that exact minor', () => {
|
|
64
|
+
expect((0, xcode_version_1.preferenceSelects)('27.1', beta271, fleet)).toBe(true);
|
|
65
|
+
expect((0, xcode_version_1.preferenceSelects)('27.1', ga27, fleet)).toBe(false);
|
|
66
|
+
expect((0, xcode_version_1.preferenceSelects)('27.0', ga27, fleet)).toBe(true);
|
|
67
|
+
expect((0, xcode_version_1.preferenceSelects)('26.4', { ...ga26, version: '26.4.1' }, fleet)).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
test('on a daemon without channels a bare major matches its one Xcode of that major', () => {
|
|
70
|
+
expect((0, xcode_version_1.preferenceSelects)('27', legacy27, [ga26, legacy27])).toBe(true);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe('formatXcodeVersion', () => {
|
|
74
|
+
test('names a beta whether or not Apple numbered the seed', () => {
|
|
75
|
+
expect((0, xcode_version_1.formatXcodeVersion)({ version: '27.0', build: '27A5252f', betaSeed: '6', channel: 'beta' })).toBe('27.0 beta 6 (27A5252f)');
|
|
76
|
+
expect((0, xcode_version_1.formatXcodeVersion)({ version: '27.1', build: '27A9269', channel: 'beta' })).toBe('27.1 beta (27A9269)');
|
|
77
|
+
expect((0, xcode_version_1.formatXcodeVersion)({ version: '27.0', build: '27A266a', channel: 'ga' })).toBe('27.0 (27A266a)');
|
|
34
78
|
});
|
|
35
79
|
});
|
|
36
80
|
describe('formatXcode', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcode-version.test.js","sourceRoot":"","sources":["../../src/lib/xcode-version.test.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"xcode-version.test.js","sourceRoot":"","sources":["../../src/lib/xcode-version.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lim",
|
|
3
|
-
"version": "0.34.0
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"description": "Use remote XCode, Gradle, iOS Simulator, Android Emulator and more to build and test apps from Linux, Windows or macOS.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"lim": "./bin/run.js"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"test": "jest"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@limrun/api": "0.
|
|
28
|
+
"@limrun/api": "0.53.0",
|
|
29
29
|
"@oclif/core": "^4",
|
|
30
30
|
"cli-progress": "^3.12.0",
|
|
31
31
|
"cli-table3": "^0.6.5",
|