forked from microsoft/FluidFramework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fluidBuild.config.cjs
105 lines (99 loc) · 3.22 KB
/
fluidBuild.config.cjs
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
/*!
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
* Licensed under the MIT License.
*/
/**
* The settings in this file configure the Fluid build tools, such as fluid-build and flub. Some settings apply to the
* whole repo, while others apply only to the client release group.
*/
module.exports = {
// This defines the layout of the repo for fluid-build. It applies to the whole repo.
repoPackages: {
// Release groups
"client": {
directory: "",
ignoredDirs: [],
},
"build-tools": "build-tools",
"server": "server/routerlicious",
"gitrest": "server/gitrest",
"historian": "server/historian",
// Independent packages
"build": "common/build",
"common-def": "common/lib/common-definitions",
"common-utils": "common/lib/common-utils",
"protocol-def": "common/lib/protocol-definitions",
// Tools
"tools": [
"tools/api-markdown-documenter",
"tools/benchmark",
"tools/getkeys",
"tools/test-tools",
"server/tinylicious",
],
// Services
"services": {
directory: "server",
ignoredDirs: ["routerlicious", "tinylicious", "gitrest", "historian"],
},
},
// `flub check policy` config. It applies to the whole repo.
policy: {
exclusions: [
"build-tools/packages/build-tools/src/test/data/",
"docs/layouts/",
"docs/themes/thxvscode/assets/",
"docs/themes/thxvscode/layouts/",
"docs/themes/thxvscode/static/assets/",
"docs/tutorials/.*\\.tsx?",
"azure/packages/azure-local-service/src/index.ts",
"experimental/PropertyDDS/packages/property-query/test/get_config.js",
"experimental/PropertyDDS/services/property-query-service/test/get_config.js",
"server/gitrest/package.json",
"server/historian/package.json",
"tools/markdown-magic/test",
"tools/telemetry-generator/package-lock.json", // Workaround to allow version 2 while we move it to pnpm
],
dependencies: {
// Packages require tilde dependencies
requireTilde: [
"@typescript-eslint/eslint-plugin",
"@typescript-eslint/parser",
"eslint-config-prettier",
"eslint-plugin-eslint-comments",
"eslint-plugin-import",
"eslint-plugin-unicorn",
"eslint-plugin-unused-imports",
"eslint",
"prettier",
"typescript",
"webpack-dev-server",
],
},
// These packages are independently versioned and released, but we use pnpm workspaces in single packages to work
// around nested pnpm workspace behavior. These packages are not checked for the preinstall script that standard
// pnpm workspaces should have.
pnpmSinglePackageWorkspace: [
"@fluid-tools/api-markdown-documenter",
"@fluid-tools/benchmark",
"@fluid-tools/markdown-magic",
"@fluid-tools/telemetry-generator",
"@fluidframework/build-common",
"@fluidframework/common-definitions",
"@fluidframework/common-utils",
"@fluidframework/eslint-config-fluid",
"@fluidframework/protocol-definitions",
"@fluidframework/test-tools",
"fluidframework-docs",
"tinylicious",
],
},
// This defines the branch release types for type tests. It applies only to the client release group. Settings for
// other release groups is in their root fluid-build config.
branchReleaseTypes: {
"main": "minor",
"lts": "minor",
"release/**": "patch",
"next": "major",
},
};