@sr-labs/devkit 0.1.0 → 0.1.3
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 -66
- package/dist/cli.d.ts +2 -0
- package/{packages/changelog/src/cli.ts → dist/cli.js} +1 -2
- package/dist/commands.d.ts +7 -0
- package/dist/commands.js +7 -0
- package/dist/index.js +2 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +24 -0
- package/package.json +26 -14
- package/.gitlab-ci.yml +0 -24
- package/.nvmrc +0 -1
- package/AGENTS.md +0 -15
- package/CHANGELOG.md +0 -17
- package/docs/agents/domain.md +0 -51
- package/docs/agents/issue-tracker.md +0 -46
- package/docs/agents/triage-labels.md +0 -15
- package/docs/specs/devkit-rename-and-layout.md +0 -71
- package/packages/changelog/README.md +0 -7
- package/packages/changelog/package.json +0 -33
- package/packages/changelog/src/commits.ts +0 -29
- package/packages/changelog/src/git.ts +0 -11
- package/packages/changelog/src/index.ts +0 -4
- package/packages/changelog/src/main.ts +0 -33
- package/packages/changelog/src/notes.ts +0 -60
- package/packages/changelog/test/notes.test.ts +0 -47
- package/packages/changelog/tsconfig.json +0 -6
- package/packages/core/README.md +0 -3
- package/packages/core/package.json +0 -27
- package/packages/core/src/git.ts +0 -41
- package/packages/core/src/index.ts +0 -1
- package/packages/core/tsconfig.json +0 -5
- package/packages/devkit/README.md +0 -11
- package/packages/devkit/package.json +0 -34
- package/packages/devkit/src/cli.ts +0 -4
- package/packages/devkit/src/commands.ts +0 -14
- package/packages/devkit/src/main.ts +0 -27
- package/packages/devkit/test/cli.test.ts +0 -74
- package/packages/devkit/tsconfig.json +0 -6
- package/packages/release-tag/README.md +0 -6
- package/packages/release-tag/package.json +0 -34
- package/packages/release-tag/src/cli.ts +0 -4
- package/packages/release-tag/src/index.ts +0 -3
- package/packages/release-tag/src/main.ts +0 -79
- package/packages/release-tag/src/package-files.ts +0 -92
- package/packages/release-tag/src/version.ts +0 -41
- package/packages/release-tag/test/cli.test.ts +0 -68
- package/packages/release-tag/test/package-files.test.ts +0 -70
- package/packages/release-tag/test/version.test.ts +0 -32
- package/packages/release-tag/tsconfig.json +0 -6
- package/pnpm-workspace.yaml +0 -2
- package/tsconfig.base.json +0 -18
- package/tsconfig.json +0 -9
- package/tsconfig.test.json +0 -10
- /package/{packages/devkit/src/index.ts → dist/index.d.ts} +0 -0
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, mkdtempSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { tmpdir } from 'node:os';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { describe, expect, it } from 'vitest';
|
|
5
|
-
import { parsePnpmWorkspace, readWorkspaces, setPackageVersion, versionFiles } from '../src/package-files.ts';
|
|
6
|
-
|
|
7
|
-
const ws = [
|
|
8
|
-
{ path: 'packages/a', name: '@x/a' },
|
|
9
|
-
{ path: 'packages/b', name: '@x/b' }
|
|
10
|
-
];
|
|
11
|
-
|
|
12
|
-
describe('package files', () => {
|
|
13
|
-
it('rewrites package versions, keeping indent', () => {
|
|
14
|
-
const pkg = '{\n "name": "x",\n "version": "0.1.0"\n}\n';
|
|
15
|
-
expect(setPackageVersion(pkg, 'v0.3.0')).toBe('{\n "name": "x",\n "version": "0.3.0"\n}\n');
|
|
16
|
-
const lock = '{"version":"0.1.0","packages":{"":{"version":"0.1.0"},"a":{"version":"9.9.9"}}}';
|
|
17
|
-
const out = JSON.parse(setPackageVersion(lock, 'v0.3.0'));
|
|
18
|
-
expect([out.version, out.packages[''].version, out.packages.a.version]).toEqual(['0.3.0', '0.3.0', '9.9.9']);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('bumps workspace lock entries and sibling ranges in lockstep', () => {
|
|
22
|
-
const pkg = JSON.stringify({ version: '0.1.0', dependencies: { '@x/a': '^0.1.0', other: '^1.0.0' } });
|
|
23
|
-
expect(JSON.parse(setPackageVersion(pkg, 'v0.2.0', ws)).dependencies).toEqual({ '@x/a': '^0.2.0', other: '^1.0.0' });
|
|
24
|
-
|
|
25
|
-
const lock = JSON.stringify({
|
|
26
|
-
version: '0.1.0',
|
|
27
|
-
packages: {
|
|
28
|
-
'': { version: '0.1.0' },
|
|
29
|
-
'packages/b': { version: '0.1.0', dependencies: { '@x/a': '^0.1.0' } },
|
|
30
|
-
'node_modules/@x/a': { resolved: 'packages/a', link: true }
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
const out = JSON.parse(setPackageVersion(lock, 'v0.2.0', ws));
|
|
34
|
-
expect(out.packages['packages/b']).toEqual({ version: '0.2.0', dependencies: { '@x/a': '^0.2.0' } });
|
|
35
|
-
expect(out.packages['node_modules/@x/a']).toEqual({ resolved: 'packages/a', link: true });
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('leaves workspace: ranges for the package manager to rewrite at publish', () => {
|
|
39
|
-
const pkg = JSON.stringify({ version: '0.1.0', dependencies: { '@x/a': 'workspace:^' } });
|
|
40
|
-
expect(JSON.parse(setPackageVersion(pkg, 'v0.2.0', ws)).dependencies).toEqual({ '@x/a': 'workspace:^' });
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('parses pnpm-workspace.yaml package lists', () => {
|
|
44
|
-
const yaml = "# repo\npackages:\n - 'packages/*'\n - \"tools/c\" # tool\n - '!tools/old'\n\ncatalog:\n - nope\n";
|
|
45
|
-
expect(parsePnpmWorkspace(yaml)).toEqual(['packages/*', 'tools/c', '!tools/old']);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it('discovers workspaces and the files to bump', () => {
|
|
49
|
-
const root = mkdtempSync(join(tmpdir(), 'release-tag-'));
|
|
50
|
-
writeFileSync(join(root, 'package.json'), JSON.stringify({ workspaces: ['packages/*', './tools/c/'] }));
|
|
51
|
-
for (const [dir, name] of [['packages/a', '@x/a'], ['packages/b', '@x/b'], ['tools/c', 'c']]) {
|
|
52
|
-
mkdirSync(join(root, dir), { recursive: true });
|
|
53
|
-
writeFileSync(join(root, dir, 'package.json'), JSON.stringify({ name }));
|
|
54
|
-
}
|
|
55
|
-
mkdirSync(join(root, 'packages/not-a-package'));
|
|
56
|
-
|
|
57
|
-
const found = readWorkspaces(root);
|
|
58
|
-
expect(found).toEqual([...ws, { path: 'tools/c', name: 'c' }]);
|
|
59
|
-
expect(versionFiles(root, found)).toEqual([
|
|
60
|
-
'package.json',
|
|
61
|
-
'packages/a/package.json',
|
|
62
|
-
'packages/b/package.json',
|
|
63
|
-
'tools/c/package.json'
|
|
64
|
-
]);
|
|
65
|
-
|
|
66
|
-
// pnpm-workspace.yaml wins over package.json workspaces.
|
|
67
|
-
writeFileSync(join(root, 'pnpm-workspace.yaml'), "packages:\n - 'packages/*'\n - '!packages/b'\n");
|
|
68
|
-
expect(readWorkspaces(root)).toEqual([ws[0]]);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { applyBump, decideBump, formatVersion, parseVersion } from '../src/version.ts';
|
|
3
|
-
|
|
4
|
-
const c = (subject: string, body = '') => ({ subject, body });
|
|
5
|
-
const v020 = { major: 0, minor: 2, patch: 0 };
|
|
6
|
-
|
|
7
|
-
describe('version', () => {
|
|
8
|
-
it('parses and formats versions', () => {
|
|
9
|
-
expect(parseVersion('v0.2.0')).toEqual(v020);
|
|
10
|
-
expect(parseVersion('nightly')).toBeNull();
|
|
11
|
-
expect(formatVersion(v020)).toBe('v0.2.0');
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it('feat bumps minor, fix bumps patch, feat wins', () => {
|
|
15
|
-
expect(decideBump([c('fix: a')], v020)).toBe('patch');
|
|
16
|
-
expect(decideBump([c('fix: a'), c('feat(ui): b')], v020)).toBe('minor');
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it('ignores docs/chore/test only', () => {
|
|
20
|
-
expect(decideBump([c('docs: a'), c('chore: b')], v020)).toBeNull();
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it('breaking change is minor pre-1.0, major after', () => {
|
|
24
|
-
expect(decideBump([c('feat!: a')], v020)).toBe('minor');
|
|
25
|
-
expect(decideBump([c('fix: a', 'BREAKING CHANGE: x')], { major: 1, minor: 0, patch: 0 })).toBe('major');
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('applies bumps', () => {
|
|
29
|
-
expect(applyBump({ major: 0, minor: 2, patch: 3 }, 'minor')).toEqual({ major: 0, minor: 3, patch: 0 });
|
|
30
|
-
expect(applyBump(v020, 'patch')).toEqual({ major: 0, minor: 2, patch: 1 });
|
|
31
|
-
});
|
|
32
|
-
});
|
package/pnpm-workspace.yaml
DELETED
package/tsconfig.base.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "es2023",
|
|
4
|
-
"lib": ["ES2023"],
|
|
5
|
-
"types": ["node"],
|
|
6
|
-
"module": "nodenext",
|
|
7
|
-
"strict": true,
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"verbatimModuleSyntax": true,
|
|
10
|
-
"erasableSyntaxOnly": true,
|
|
11
|
-
"rewriteRelativeImportExtensions": true,
|
|
12
|
-
"composite": true,
|
|
13
|
-
"declaration": true,
|
|
14
|
-
"noUnusedLocals": true,
|
|
15
|
-
"noUnusedParameters": true,
|
|
16
|
-
"noFallthroughCasesInSwitch": true
|
|
17
|
-
}
|
|
18
|
-
}
|
package/tsconfig.json
DELETED
package/tsconfig.test.json
DELETED
|
File without changes
|