-
-
Notifications
You must be signed in to change notification settings - Fork 10k
Expand file tree
/
Copy path.syncpackrc.ts
More file actions
125 lines (111 loc) · 3.58 KB
/
Copy path.syncpackrc.ts
File metadata and controls
125 lines (111 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import type {RcFile} from 'syncpack';
// const lernaJson = await fs.readJSON('./lerna.json');
// const CurrentDocusaurusVersion = lernaJson.version;
export default {
source: [
'package.json',
'packages/*/package.json',
'website/package.json',
'argos/package.json',
'packages/create-docusaurus/templates/*/package.json',
],
semverGroups: [
{
label: 'Use ~ for TypeScript monorepo root and init templates',
// We temporarily use a Dual TypeScript 6 + 7 setup
// See https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0
// TODO remove once TS-ESLint add TS 7 support
// https://github.com/typescript-eslint/typescript-eslint/issues/10940
dependencies: ['typescript', '@typescript/native'],
range: '~',
},
],
versionGroups: [
{
// We temporarily use a Dual TypeScript 6 + 7 setup
// See https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0
// TODO remove once TS-ESLint add TS 7 support
// https://github.com/typescript-eslint/typescript-eslint/issues/10940
label: 'Dual TypeScript 6 + 7 setup, installed through npm aliases',
dependencies: ['typescript', '@typescript/native'],
specifierTypes: ['alias'],
},
{
label: 'Ignore * deps in type-alias packages',
packages: [
'@docusaurus/module-type-aliases',
'@docusaurus/theme-common',
'@docusaurus/types',
],
dependencies: [
'react',
'react-dom',
'@types/react',
'@types/react-router-config',
'@types/react-router-dom',
],
isIgnored: true,
},
{
label: 'Ignore * internal peerDependencies',
packages: [
'@docusaurus/core',
'@docusaurus/bundler',
'@docusaurus/faster',
// TODO Docusaurus v4: refactor, these peerDeps shouldn't be needed
'@docusaurus/plugin-content-blog',
'@docusaurus/theme-common',
],
dependencyTypes: ['peer'],
dependencies: [
'@docusaurus/faster',
'@docusaurus/plugin-content-docs',
'@docusaurus/types',
],
isIgnored: true,
},
{
label: 'Ignore broad ESLint peerDep range in ESLint plugin',
packages: ['@docusaurus/eslint-plugin'],
dependencyTypes: ['peer'],
dependencies: ['eslint'],
isIgnored: true,
},
{
label: 'Ignore >= TS range in @docusaurus/tsconfig',
packages: ['@docusaurus/tsconfig'],
dependencyTypes: ['peer'],
isIgnored: true,
},
{
label:
'Templates should use pinned versions, not the workspace:* protocol',
packages: [
'docusaurus-2-classic-template',
'docusaurus-2-classic-typescript-template',
],
dependencies: ['@docusaurus/**'],
pinVersion: '4.0.0', // TODO make this dynamic
},
{
label:
'Internal @docusaurus/* monorepo packages use the workspace:* protocol',
dependencies: [
'@docusaurus/**',
'create-docusaurus',
'stylelint-copyright',
// These are not monorepo packages
'!@docusaurus/responsive-loader',
'!@docusaurus/responsive-loader',
],
pinVersion: 'workspace:*',
},
// Default: all remaining dependencies — highest version wins (syncpack default)
],
} satisfies RcFile;