chore(v2): pin exact dependency versions (#3386)

* Attempt to pin all dependency versions exactly for https://github.com/facebook/docusaurus/issues/3371

* warn if @docusaurus package versions mismatch

* fix yarn lock
This commit is contained in:
Sébastien Lorber 2020-09-02 11:42:17 +02:00 committed by GitHub
parent e8e16a45d3
commit ab3ebdad39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 124 additions and 86 deletions

View file

@ -169,7 +169,7 @@ If all accesses are available, build all the necessary packages, and then run th
```sh
yarn build:packages
yarn lerna publish 2.0.0-alpha.41 --dist-tag next
yarn lerna publish 2.0.0-alpha.41 --dist-tag next --exact
```
**Note**: The v1 packages will also be modified because it's part of the monorepo. It is not ideal but we will live with it for now.\_

View file

@ -11,8 +11,8 @@
"serve": "docusaurus serve"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/preset-bootstrap": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/preset-bootstrap": "2.0.0-alpha.62",
"@mdx-js/react": "^1.5.8",
"classnames": "^2.2.6",
"react": "^16.8.4",

View file

@ -11,8 +11,8 @@
"serve": "docusaurus serve"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/preset-classic": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/preset-classic": "2.0.0-alpha.62",
"@mdx-js/react": "^1.5.8",
"clsx": "^1.1.1",
"react": "^16.8.4",

View file

@ -15,8 +15,8 @@
"prettier:diff": "prettier --config .prettierrc --list-different \"**/*.{js,md}\""
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/preset-classic": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/preset-classic": "2.0.0-alpha.62",
"@mdx-js/react": "^1.5.8",
"clsx": "^1.1.1",
"react": "^16.8.4",

View file

@ -13,8 +13,8 @@
"dependencies": {
"@babel/parser": "^7.9.4",
"@babel/traverse": "^7.9.0",
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@mdx-js/mdx": "^1.5.8",
"@mdx-js/react": "^1.5.8",
"escape-html": "^1.0.3",
@ -30,7 +30,7 @@
"url-loader": "^4.1.0"
},
"devDependencies": {
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"remark": "^12.0.0",
"remark-mdx": "^1.5.8",
"to-vfile": "^6.0.0",

View file

@ -12,10 +12,10 @@
},
"license": "MIT",
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/utils-validation": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@docusaurus/utils-validation": "2.0.0-alpha.62",
"@hapi/joi": "^17.1.1",
"@types/hapi__joi": "^17.1.2",
"chalk": "^3.0.0",
@ -25,7 +25,6 @@
"lodash": "^4.17.15"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -16,11 +16,11 @@
"@types/hapi__joi": "^17.1.2"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/mdx-loader": "^2.0.0-alpha.62",
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/utils-validation": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/mdx-loader": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@docusaurus/utils-validation": "2.0.0-alpha.62",
"@hapi/joi": "^17.1.1",
"chalk": "^3.0.0",
"feed": "^4.1.0",

View file

@ -13,18 +13,18 @@
},
"license": "MIT",
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.0.0-alpha.62",
"@docusaurus/module-type-aliases": "2.0.0-alpha.62",
"@types/hapi__joi": "^17.1.2",
"@types/picomatch": "^2.2.1",
"commander": "^5.0.0",
"picomatch": "^2.1.1"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/mdx-loader": "^2.0.0-alpha.62",
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/utils-validation": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/mdx-loader": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@docusaurus/utils-validation": "2.0.0-alpha.62",
"@hapi/joi": "17.1.1",
"chalk": "^3.0.0",
"execa": "^3.4.0",

View file

@ -16,11 +16,11 @@
"@types/hapi__joi": "^17.1.2"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/mdx-loader": "^2.0.0-alpha.62",
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/utils-validation": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/mdx-loader": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@docusaurus/utils-validation": "2.0.0-alpha.62",
"@hapi/joi": "17.1.1",
"globby": "^10.0.1",
"loader-utils": "^1.2.3",
@ -30,7 +30,6 @@
"webpack": "^4.41.2"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -12,12 +12,12 @@
},
"license": "MIT",
"dependencies": {
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"react-json-view": "^1.19.1"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -7,8 +7,8 @@
"access": "public"
},
"license": "MIT",
"peerDependencies": {
"@docusaurus/core": "^2.0.0"
"dependencies": {
"@docusaurus/core": "2.0.0-alpha.62"
},
"engines": {
"node": ">=10.15.1"

View file

@ -7,8 +7,8 @@
"access": "public"
},
"license": "MIT",
"peerDependencies": {
"@docusaurus/core": "^2.0.0"
"dependencies": {
"@docusaurus/core": "2.0.0-alpha.62"
},
"engines": {
"node": ">=10.15.1"

View file

@ -15,8 +15,9 @@
"fs-extra": "^9.0.0"
},
"dependencies": {
"@docusaurus/lqip-loader": "^2.0.0-alpha.62",
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/lqip-loader": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@endiliey/react-ideal-image": "^0.0.11",
"@endiliey/responsive-loader": "^1.3.2",
"react-waypoint": "^9.0.2",
@ -24,7 +25,6 @@
"webpack": "^4.41.2"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -11,6 +11,7 @@
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1",
"@babel/plugin-proposal-optional-chaining": "^7.10.3",
"@babel/preset-env": "^7.9.0",
"@docusaurus/core": "2.0.0-alpha.62",
"@hapi/joi": "^17.1.1",
"babel-loader": "^8.1.0",
"clsx": "^1.1.1",
@ -23,7 +24,6 @@
"workbox-window": "^5.1.2"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
}

View file

@ -15,14 +15,12 @@
"@types/hapi__joi": "^17.1.2"
},
"dependencies": {
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@hapi/joi": "17.1.1",
"fs-extra": "^8.1.0",
"sitemap": "^3.2.2"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0"
},
"engines": {
"node": ">=10.15.1"
}

View file

@ -8,13 +8,13 @@
"access": "public"
},
"dependencies": {
"@docusaurus/plugin-content-blog": "^2.0.0-alpha.62",
"@docusaurus/plugin-content-docs": "^2.0.0-alpha.62",
"@docusaurus/plugin-content-pages": "^2.0.0-alpha.62",
"@docusaurus/theme-bootstrap": "^2.0.0-alpha.62"
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/plugin-content-blog": "2.0.0-alpha.62",
"@docusaurus/plugin-content-docs": "2.0.0-alpha.62",
"@docusaurus/plugin-content-pages": "2.0.0-alpha.62",
"@docusaurus/theme-bootstrap": "2.0.0-alpha.62"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -8,18 +8,18 @@
},
"license": "MIT",
"dependencies": {
"@docusaurus/plugin-content-blog": "^2.0.0-alpha.62",
"@docusaurus/plugin-content-docs": "^2.0.0-alpha.62",
"@docusaurus/plugin-content-pages": "^2.0.0-alpha.62",
"@docusaurus/plugin-debug": "^2.0.0-alpha.62",
"@docusaurus/plugin-google-analytics": "^2.0.0-alpha.62",
"@docusaurus/plugin-google-gtag": "^2.0.0-alpha.62",
"@docusaurus/plugin-sitemap": "^2.0.0-alpha.62",
"@docusaurus/theme-classic": "^2.0.0-alpha.62",
"@docusaurus/theme-search-algolia": "^2.0.0-alpha.62"
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/plugin-content-blog": "2.0.0-alpha.62",
"@docusaurus/plugin-content-docs": "2.0.0-alpha.62",
"@docusaurus/plugin-content-pages": "2.0.0-alpha.62",
"@docusaurus/plugin-debug": "2.0.0-alpha.62",
"@docusaurus/plugin-google-analytics": "2.0.0-alpha.62",
"@docusaurus/plugin-google-gtag": "2.0.0-alpha.62",
"@docusaurus/plugin-sitemap": "2.0.0-alpha.62",
"@docusaurus/theme-classic": "2.0.0-alpha.62",
"@docusaurus/theme-search-algolia": "2.0.0-alpha.62"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -8,6 +8,7 @@
"access": "public"
},
"dependencies": {
"@docusaurus/core": "2.0.0-alpha.62",
"@mdx-js/react": "^1.5.8",
"bootstrap": "^4.4.1",
"classnames": "^2.2.6",
@ -16,7 +17,6 @@
"reactstrap": "^8.4.1"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -15,8 +15,12 @@
"prettier": "prettier --config ../../.prettierrc --write \"**/*.{js,ts}\""
},
"dependencies": {
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils-validation": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/plugin-content-blog": "2.0.0-alpha.62",
"@docusaurus/plugin-content-docs": "2.0.0-alpha.62",
"@docusaurus/plugin-content-pages": "2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils-validation": "2.0.0-alpha.62",
"@hapi/joi": "^17.1.1",
"@mdx-js/mdx": "^1.5.8",
"@mdx-js/react": "^1.5.8",
@ -34,14 +38,10 @@
"use-onclickoutside": "^0.3.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.0.0-alpha.62",
"@docusaurus/module-type-aliases": "2.0.0-alpha.62",
"@types/hapi__joi": "^17.1.2"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"@docusaurus/plugin-content-blog": "^2.0.0-alpha.61",
"@docusaurus/plugin-content-docs": "^2.0.0-alpha.61",
"@docusaurus/plugin-content-pages": "^2.0.0-alpha.61",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -8,6 +8,7 @@
},
"license": "MIT",
"dependencies": {
"@docusaurus/core": "2.0.0-alpha.62",
"@philpl/buble": "^0.19.7",
"clsx": "^1.1.1",
"parse-numeric-range": "^0.0.2",
@ -15,7 +16,6 @@
"react-live": "^2.2.1"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -9,7 +9,8 @@
"license": "MIT",
"dependencies": {
"@docsearch/react": "^1.0.0-alpha.27",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@hapi/joi": "^17.1.1",
"algoliasearch": "^4.0.0",
"algoliasearch-helper": "^3.1.1",
@ -18,7 +19,6 @@
"lodash": "^4.17.19"
},
"peerDependencies": {
"@docusaurus/core": "^2.0.0",
"react": "^16.8.4",
"react-dom": "^16.8.4"
},

View file

@ -57,7 +57,11 @@ export interface DocusaurusConfig {
* - `type: 'synthetic'`, docusaurus generated internal plugin.
*/
export type DocusaurusPluginVersionInformation =
| {readonly type: 'package'; readonly version?: string}
| {
readonly type: 'package';
readonly name?: string;
readonly version?: string;
}
| {readonly type: 'project'}
| {readonly type: 'local'}
| {readonly type: 'synthetic'};

View file

@ -16,7 +16,7 @@
"@types/hapi__joi": "^17.1.2"
},
"dependencies": {
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@hapi/joi": "17.1.1",
"chalk": "^3.0.0"
},

View file

@ -30,7 +30,7 @@
"url": "https://github.com/facebook/docusaurus/issues"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.0.0-alpha.62",
"@docusaurus/module-type-aliases": "2.0.0-alpha.62",
"@types/detect-port": "^1.3.0",
"@types/hapi__joi": "^17.1.2"
},
@ -45,9 +45,9 @@
"@babel/preset-typescript": "^7.9.0",
"@babel/runtime": "^7.9.2",
"@babel/runtime-corejs3": "^7.10.4",
"@docusaurus/types": "^2.0.0-alpha.62",
"@docusaurus/utils": "^2.0.0-alpha.62",
"@docusaurus/utils-validation": "^2.0.0-alpha.62",
"@docusaurus/types": "2.0.0-alpha.62",
"@docusaurus/utils": "2.0.0-alpha.62",
"@docusaurus/utils-validation": "2.0.0-alpha.62",
"@endiliey/static-site-generator-webpack-plugin": "^4.0.0",
"@hapi/joi": "^17.1.1",
"@svgr/webpack": "^5.4.0",

View file

@ -29,6 +29,7 @@ import {
import {loadHtmlTags} from './html-tags';
import {getPackageJsonVersion} from './versions';
import {handleDuplicateRoutes} from './duplicateRoutes';
import chalk from 'chalk';
export function loadContext(
siteDir: string,
@ -207,6 +208,7 @@ ${Object.keys(registry)
.forEach(({name, version}) => {
siteMetadata.pluginVersions[name] = version;
});
checkDocusaurusPackagesVersion(siteMetadata);
const genSiteMetadata = generate(
generatedFilesDir,
'site-metadata.json',
@ -239,3 +241,27 @@ ${Object.keys(registry)
return props;
}
// We want all @docusaurus/* packages to have the exact same version!
// See https://github.com/facebook/docusaurus/issues/3371
// See https://github.com/facebook/docusaurus/pull/3386
function checkDocusaurusPackagesVersion(siteMetadata: DocusaurusSiteMetadata) {
const {docusaurusVersion} = siteMetadata;
Object.entries(siteMetadata.pluginVersions).forEach(
([plugin, versionInfo]) => {
if (
versionInfo.type === 'package' &&
versionInfo.name?.startsWith('@docusaurus/') &&
versionInfo.version !== docusaurusVersion
) {
// should we throw instead?
// It still could work with different versions
console.warn(
chalk.red(
`Bad ${plugin} version ${versionInfo.version}.\nAll official @docusaurus/* packages should have the exact same version as @docusaurus/core (${docusaurusVersion}).\nMaybe you want to check, or regenerate your yarn.lock or package-lock.json file?`,
),
);
}
},
);
}

View file

@ -20,6 +20,17 @@ export function getPackageJsonVersion(
return undefined;
}
export function getPackageJsonName(
packageJsonPath: string,
): string | undefined {
if (existsSync(packageJsonPath)) {
// eslint-disable-next-line @typescript-eslint/no-var-requires, import/no-dynamic-require, global-require
const {name} = require(packageJsonPath);
return typeof name === 'string' ? name : undefined;
}
return undefined;
}
export function getPluginVersion(
pluginPath: string,
siteDir: string,
@ -37,6 +48,7 @@ export function getPluginVersion(
}
return {
type: 'package',
name: getPackageJsonName(packageJsonPath),
version: getPackageJsonVersion(packageJsonPath),
};
}

View file

@ -14,6 +14,6 @@
"crowdin-download": "crowdin --config ../crowdin.yaml download -b master"
},
"dependencies": {
"docusaurus": "^2.0.0-alpha.62"
"docusaurus": "2.0.0-alpha.62"
}
}

View file

@ -22,12 +22,12 @@
"netlify:test": "yarn netlify:build:deployPreview && yarn netlify dev --debug"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-alpha.62",
"@docusaurus/plugin-client-redirects": "^2.0.0-alpha.62",
"@docusaurus/plugin-ideal-image": "^2.0.0-alpha.62",
"@docusaurus/plugin-pwa": "^2.0.0-alpha.62",
"@docusaurus/preset-classic": "^2.0.0-alpha.62",
"@docusaurus/theme-live-codeblock": "^2.0.0-alpha.62",
"@docusaurus/core": "2.0.0-alpha.62",
"@docusaurus/plugin-client-redirects": "2.0.0-alpha.62",
"@docusaurus/plugin-ideal-image": "2.0.0-alpha.62",
"@docusaurus/plugin-pwa": "2.0.0-alpha.62",
"@docusaurus/preset-classic": "2.0.0-alpha.62",
"@docusaurus/theme-live-codeblock": "2.0.0-alpha.62",
"clsx": "^1.1.1",
"color": "^3.1.2",
"npm-to-yarn": "^1.0.0-2",