From 862f42827f19d5d338d3d84f1a5c0c1852fe1085 Mon Sep 17 00:00:00 2001 From: Dean Pisani Date: Thu, 21 Mar 2019 11:22:02 +1100 Subject: [PATCH 01/12] AFP-215: Go back to bundling examples using the next build process --- packages/website/bin/generate-pages.js | 2 -- packages/website/bin/integration.test.js | 19 ++++++++++++ .../bin/page-generator/get-package-info.js | 11 ++----- .../page-generator/get-package-info.test.js | 30 ++---------------- packages/website/bin/page-generator/index.js | 31 +++---------------- .../bin/page-generator/templates/index.js | 31 ++++++------------- packages/website/bundles/.gitkeep | 0 7 files changed, 39 insertions(+), 85 deletions(-) delete mode 100644 packages/website/bundles/.gitkeep diff --git a/packages/website/bin/generate-pages.js b/packages/website/bin/generate-pages.js index d419b37..78e0884 100644 --- a/packages/website/bin/generate-pages.js +++ b/packages/website/bin/generate-pages.js @@ -22,14 +22,12 @@ module.exports = async ({ packageRoot, './components/page-templates', ); - const bundlesPath = path.resolve(packageRoot, './bundles'); const pagesList = await generatePages( packagesPaths, docsPath, pagesPath, componentsPath, - bundlesPath, { useManifests, webpackConfiguration, diff --git a/packages/website/bin/integration.test.js b/packages/website/bin/integration.test.js index 93e7c83..dd49f60 100644 --- a/packages/website/bin/integration.test.js +++ b/packages/website/bin/integration.test.js @@ -1,3 +1,6 @@ +import { spawnSync } from 'child_process'; +import path from 'path'; + import generatePages from './generate-pages'; import { processConfig } from './handle-config'; @@ -9,6 +12,22 @@ const buildWebsiteFromFixture = async config => { const fixtureConfig = processConfig(process.cwd(), config); await generatePages(fixtureConfig); + + const nextRoot = path.resolve(__dirname, '..'); + + const { status, stderr } = spawnSync( + `PATH=$(npm bin):$PATH; NODE_PATH=$NODE_PATH:$PWD/src next build`, + [], + { + shell: true, + env: { ...process.env, FORCE_EXTRACT_REACT_TYPES: true }, + cwd: nextRoot, + }, + ); + + if (status !== 0) { + throw new Error(stderr.toString()); + } }; describe('Website generation integration tests', () => { diff --git a/packages/website/bin/page-generator/get-package-info.js b/packages/website/bin/page-generator/get-package-info.js index 985ecb1..6f355c2 100644 --- a/packages/website/bin/page-generator/get-package-info.js +++ b/packages/website/bin/page-generator/get-package-info.js @@ -97,7 +97,7 @@ module.exports = function getPackagesInfo(packagesPatterns, options = {}) { const { useManifests } = { ...defaultOptions, ...options }; - const packagesInfo = getAllDirectories(packagesPatterns) + return getAllDirectories(packagesPatterns) .map(pkgPath => { const pkgId = path.basename(pkgPath); @@ -140,14 +140,7 @@ module.exports = function getPackagesInfo(packagesPatterns, options = {}) { docsPaths, }; - const externalSources = examplesPaths.map(example => example.path); - - return { packageData, externalSources }; + return packageData; }) .filter(_ => _); - - const packages = packagesInfo.map(p => p.packageData); - const externalSources = flatMap(packagesInfo, p => p.externalSources); - - return { packages, externalSources }; }; diff --git a/packages/website/bin/page-generator/get-package-info.test.js b/packages/website/bin/page-generator/get-package-info.test.js index fab202c..0a762a6 100644 --- a/packages/website/bin/page-generator/get-package-info.test.js +++ b/packages/website/bin/page-generator/get-package-info.test.js @@ -6,13 +6,10 @@ import getPackageInfo from './get-package-info'; describe('Get package info utility', () => { let cwd; let packageInfo; - let externalSources; beforeAll(async () => { cwd = await copyFixtureIntoTempDir(__dirname, 'simple-mock-packages'); - ({ packages: packageInfo, externalSources } = getPackageInfo([ - path.join(cwd, 'packages', '/*'), - ])); + packageInfo = getPackageInfo([path.join(cwd, 'packages', '/*')]); }); it('returns a list of packages', async () => { @@ -103,7 +100,7 @@ describe('Get package info utility', () => { }); it('can accept an array of paths', () => { - const { packages: packageInfoAlternate } = getPackageInfo([ + const packageInfoAlternate = getPackageInfo([ path.join(cwd, 'packages', 'mock-package1'), path.join(cwd, 'packages', 'mock-package2'), path.join(cwd, 'packages', 'mock-package3'), @@ -120,7 +117,7 @@ describe('Get package info utility', () => { 'mock-packages-manifests', ); - const { packages: packageInfoAlternate } = getPackageInfo( + const packageInfoAlternate = getPackageInfo( [path.join(manifestAppFixturePath, 'packages', '*')], { useManifests: true }, ); @@ -131,25 +128,4 @@ describe('Get package info utility', () => { 'wcollins', ]); }); - - it('returns a list of external sources that need to be bundled', () => { - const packagesPath = path.join(cwd, 'packages'); - const mp1ExamplePath = path.join(packagesPath, 'mock-package1', 'examples'); - const mp2ExamplePath = path.join(packagesPath, 'mock-package2', 'examples'); - const mp3ExamplePath = path.join(packagesPath, 'mock-package3', 'examples'); - - expect(externalSources).toEqual([ - path.join(mp1ExamplePath, 'example1.js'), - path.join(mp1ExamplePath, 'example2.js'), - path.join(mp1ExamplePath, 'example3.js'), - - path.join(mp2ExamplePath, 'example1.js'), - path.join(mp2ExamplePath, 'example2.js'), - path.join(mp2ExamplePath, 'example3.js'), - - path.join(mp3ExamplePath, 'example1.js'), - path.join(mp3ExamplePath, 'example2.js'), - path.join(mp3ExamplePath, 'example3.js'), - ]); - }); }); diff --git a/packages/website/bin/page-generator/index.js b/packages/website/bin/page-generator/index.js index 33e665c..d152f18 100644 --- a/packages/website/bin/page-generator/index.js +++ b/packages/website/bin/page-generator/index.js @@ -22,7 +22,7 @@ const packagesData = []; * @param generatorConfig info about the locations of important directories used for page generation * @returns a sitemap of all the pages created */ -function generatePackagePages(packageInfo, bundlesInfo, generatorConfig) { +function generatePackagePages(packageInfo, generatorConfig) { const packageSitemap = packageInfo.map(pkg => { const pageData = { id: pkg.id, packageName: pkg.name }; const homePageData = { @@ -76,14 +76,9 @@ function generatePackagePages(packageInfo, bundlesInfo, generatorConfig) { const rawPagesPath = path.join(homePath, 'examples/isolated', example.id); const isolatedPath = path.join('/', `${rawPagesPath}`); - const exampleModulePath = bundlesInfo.find( - bundle => bundle.source === example.path, - ).dest; - generateExamplePage( `${pagePath}.js`, `${rawPagesPath}.js`, - exampleModulePath, example.path, { ...pageData, isolatedPath }, generatorConfig, @@ -194,17 +189,13 @@ module.exports = async function generatePages( docsPath, pagesPath, componentsPath, - bundlesPath, options = {}, ) { cleanPages(pagesPath); - const { packages: packageInfo, externalSources } = getPackageInfo( - packagesPaths, - { - useManifests: options.useManifests, - }, - ); + const packageInfo = getPackageInfo(packagesPaths, { + useManifests: options.useManifests, + }); const docsInfo = getDocsInfo(docsPath); const generatorConfig = { @@ -212,19 +203,7 @@ module.exports = async function generatePages( wrappersPath: componentsPath, }; - const { bundles, run: buildExternalModules } = getExternalModuleBuilder( - externalSources, - bundlesPath, - options.webpackConfiguration, - ); - - await buildExternalModules(); - - const packageSitemap = generatePackagePages( - packageInfo, - bundles, - generatorConfig, - ); + const packageSitemap = generatePackagePages(packageInfo, generatorConfig); const docsSitemap = generateProjectDocsPages(docsInfo, generatorConfig); return { diff --git a/packages/website/bin/page-generator/templates/index.js b/packages/website/bin/page-generator/templates/index.js index cb33a5e..53b6179 100644 --- a/packages/website/bin/page-generator/templates/index.js +++ b/packages/website/bin/page-generator/templates/index.js @@ -19,9 +19,9 @@ const basicPageTemplate = ( return outdent` import Wrapper from '${wrapperPath}'; import PageTitle from '${pageTitlePath}' - + export default () => ( - <> + <> @@ -33,9 +33,9 @@ const basicPageTemplate = ( import Component from '${componentPath}'; import Wrapper from '${wrapperPath}'; import PageTitle from '${pageTitlePath}' - + export default () => ( - <> + <> @@ -48,18 +48,17 @@ const basicPageTemplate = ( const exampleTemplate = ( componentPath, wrapperPath, - sourcePath, data = {}, title = '', ) => outdent` import Component from '${componentPath}'; - import fileContents from '!!raw-loader!${sourcePath}'; + import fileContents from '!!raw-loader!${wrapperPath}'; import Wrapper from '${wrapperPath}'; import PageTitle from '${pageTitlePath}' - + export default () => ( - <> + <> @@ -82,9 +81,9 @@ const basicNonComponentTemplate = ( ) => outdent` import Wrapper from '${wrapperPath}'; import PageTitle from '${pageTitlePath}' - + export default () => ( - <> + <> @@ -191,7 +190,6 @@ const generateExamplePage = ( pagePath, rawPagesPath, exampleModulePath, - sourceCodePath, data, config, title = '', @@ -208,18 +206,9 @@ const generateExamplePage = ( wrapperName, ); - const absolutePagePath = path.resolve(pagesPath, pagePath); - const relativeSourcePath = getImportPath(absolutePagePath, sourceCodePath); - writeFile( path.join(pagesPath, pagePath), - exampleTemplate( - componentImportPath, - packageHomeWrapperPath, - relativeSourcePath, - data, - title, - ), + exampleTemplate(componentImportPath, packageHomeWrapperPath, data, title), ); writeFile( diff --git a/packages/website/bundles/.gitkeep b/packages/website/bundles/.gitkeep deleted file mode 100644 index e69de29..0000000 From 2b65c5589d65a2e3c8ee6963de3aa72c103cb474 Mon Sep 17 00:00:00 2001 From: Dean Pisani Date: Thu, 21 Mar 2019 16:11:33 +1100 Subject: [PATCH 02/12] AFP-215: Fix integration tests and main docs config --- default.webpack.config.js | 18 ------- docs.config.js | 21 +++++++- package.json | 1 + .../custom-babel-project/docs.config.js | 17 ++++++- .../custom-babel-project/webpack.config.js | 17 ------- .../custom-webpack-project/docs.config.js | 9 +++- .../custom-webpack-project/webpack.config.js | 19 -------- packages/website/__fixtures__/index.js | 5 ++ .../typescript-project/docs.config.js | 12 ++++- .../typescript-project/webpack.config.js | 19 -------- packages/website/bin/handle-config.js | 25 ++-------- packages/website/bin/handle-config.test.js | 9 +++- packages/website/bin/index.js | 36 +++----------- packages/website/bin/integration.test.js | 47 +++++++----------- .../bin/page-generator/templates/index.js | 2 +- packages/website/bin/run-website.js | 48 +++++++++++++++++++ packages/website/next.config.js | 18 ++++--- packages/website/package.json | 7 +-- yarn.lock | 13 ++--- 19 files changed, 158 insertions(+), 185 deletions(-) delete mode 100644 default.webpack.config.js delete mode 100644 packages/website/__fixtures__/custom-babel-project/webpack.config.js delete mode 100644 packages/website/__fixtures__/custom-webpack-project/webpack.config.js create mode 100644 packages/website/__fixtures__/index.js delete mode 100644 packages/website/__fixtures__/typescript-project/webpack.config.js create mode 100644 packages/website/bin/run-website.js diff --git a/default.webpack.config.js b/default.webpack.config.js deleted file mode 100644 index 841d67e..0000000 --- a/default.webpack.config.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - mode: 'development', - resolve: { - extensions: ['.ts', '.tsx', '.js', 'jsx'], - }, - module: { - rules: [ - { - test: /\.(ts|tsx|js|jsx)$/, - exclude: /node_modules/, - loader: 'babel-loader', - options: { - root: __dirname, - }, - }, - ], - }, -}; diff --git a/docs.config.js b/docs.config.js index 3357b34..998a90c 100644 --- a/docs.config.js +++ b/docs.config.js @@ -1,9 +1,26 @@ -const defaultWebpackConfig = require('./default.webpack.config'); +const test = file => { + const nextServerFiles = new RegExp(`^${__dirname}/packages/website/`); + const sourceFiles = /\.(ts|tsx|js|jsx)$/; + return file.match(sourceFiles) && !file.match(nextServerFiles); +}; + +const webpack = config => { + config.module.rules.push({ + test, + exclude: /node_modules/, + loader: 'babel-loader', + options: { + root: __dirname, + }, + }); + config.resolve.extensions.push('.ts', '.tsx'); + return config; +}; module.exports = () => ({ docs: './packages/website/docs', packages: ['./packages/*'], useManifests: false, - webpackConfiguration: defaultWebpackConfig, + webpack, siteName: 'Brisk Docs Docs', }); diff --git a/package.json b/package.json index 4ae03bc..87f44b0 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "lodash.capitalize": "^4.2.1", "lodash.debounce": "^4.0.8", "lodash.flatmap": "^4.5.0", + "lodash.identity": "^3.0.0", "lodash.snakecase": "^4.1.1", "next": "^7.0.2", "outdent": "^0.7.0", diff --git a/packages/website/__fixtures__/custom-babel-project/docs.config.js b/packages/website/__fixtures__/custom-babel-project/docs.config.js index acd994b..62e1546 100644 --- a/packages/website/__fixtures__/custom-babel-project/docs.config.js +++ b/packages/website/__fixtures__/custom-babel-project/docs.config.js @@ -1,9 +1,22 @@ const path = require('path'); -const webpackConfiguration = require('./webpack.config'); + +const webpack = config => { + config.module.rules.push({ + test: new RegExp(`${__dirname}/.*\\.(js|jsx)$`), + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + root: __dirname, + }, + }, + }); + return config; +}; module.exports = () => ({ packages: path.join(__dirname, 'weird-babel-package'), docs: path.join(__dirname, 'docs'), siteName: 'Babel/webpack Test Docs', - webpackConfiguration, + webpack, }); diff --git a/packages/website/__fixtures__/custom-babel-project/webpack.config.js b/packages/website/__fixtures__/custom-babel-project/webpack.config.js deleted file mode 100644 index 2a6755d..0000000 --- a/packages/website/__fixtures__/custom-babel-project/webpack.config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - mode: 'development', - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - root: __dirname, - }, - }, - }, - ], - }, -}; diff --git a/packages/website/__fixtures__/custom-webpack-project/docs.config.js b/packages/website/__fixtures__/custom-webpack-project/docs.config.js index 15e7d10..61e5442 100644 --- a/packages/website/__fixtures__/custom-webpack-project/docs.config.js +++ b/packages/website/__fixtures__/custom-webpack-project/docs.config.js @@ -1,9 +1,14 @@ const path = require('path'); -const webpackConfiguration = require('./webpack.config'); + +const webpack = config => { + config.resolve.modules.push(path.join(__dirname, 'packages')); + + return config; +}; module.exports = () => ({ packages: path.join(__dirname, 'packages', '*'), docs: path.join(__dirname, 'docs'), siteName: 'Webpack Test Docs', - webpackConfiguration, + webpack, }); diff --git a/packages/website/__fixtures__/custom-webpack-project/webpack.config.js b/packages/website/__fixtures__/custom-webpack-project/webpack.config.js deleted file mode 100644 index 0beaaa9..0000000 --- a/packages/website/__fixtures__/custom-webpack-project/webpack.config.js +++ /dev/null @@ -1,19 +0,0 @@ -const path = require('path'); - -module.exports = { - mode: 'development', - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - }, - }, - ], - }, - resolve: { - modules: [path.join(__dirname, 'packages'), 'node_modules'], - }, -}; diff --git a/packages/website/__fixtures__/index.js b/packages/website/__fixtures__/index.js new file mode 100644 index 0000000..c1c67e1 --- /dev/null +++ b/packages/website/__fixtures__/index.js @@ -0,0 +1,5 @@ +// This utility is to reduce the need to litter usages +// of __dirname across our tests which make it hard to +// move files + +module.exports.fixturesPath = __dirname; diff --git a/packages/website/__fixtures__/typescript-project/docs.config.js b/packages/website/__fixtures__/typescript-project/docs.config.js index 683a155..b234403 100644 --- a/packages/website/__fixtures__/typescript-project/docs.config.js +++ b/packages/website/__fixtures__/typescript-project/docs.config.js @@ -1,9 +1,17 @@ const path = require('path'); -const webpackConfiguration = require('./webpack.config'); + +const webpack = config => { + config.module.rules.push({ + test: /\.tsx?$/, + loader: 'babel-loader!ts-loader', + }); + + return config; +}; module.exports = () => ({ packages: path.join(__dirname, 'typescript-package'), docs: path.join(__dirname, 'docs'), siteName: 'Typescript/webpack Test Docs', - webpackConfiguration, + webpack, }); diff --git a/packages/website/__fixtures__/typescript-project/webpack.config.js b/packages/website/__fixtures__/typescript-project/webpack.config.js deleted file mode 100644 index f9781b7..0000000 --- a/packages/website/__fixtures__/typescript-project/webpack.config.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - mode: 'development', - resolve: { - // Add `.tsx` as a resolvable extension. - extensions: ['.tsx', '.js'], - }, - module: { - rules: [ - { test: /\.tsx?$/, loader: 'babel-loader!ts-loader' }, - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - }, - }, - ], - }, -}; diff --git a/packages/website/bin/handle-config.js b/packages/website/bin/handle-config.js index 130ecdc..5e2b1b5 100644 --- a/packages/website/bin/handle-config.js +++ b/packages/website/bin/handle-config.js @@ -1,5 +1,6 @@ const path = require('path'); const fse = require('fs-extra'); +const identity = require('lodash.identity'); /** * Validates a config entry specifying a path or paths and normalises @@ -20,29 +21,11 @@ const resolvePathsConfig = entry => { throw new Error('entry must be an array or a string'); }; -const defaultWebpackConfig = { - mode: 'development', - module: { - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env', '@babel/preset-react'], - }, - }, - }, - ], - }, -}; - const defaultConfig = { docs: './docs', packages: ['./packages/*'], useManifests: false, - webpackConfiguration: defaultWebpackConfig, + webpack: identity, }; /** @@ -61,13 +44,13 @@ const processConfig = (cwd, providedConfig = {}) => { path.resolve(cwd, packagesPath), ); - const { useManifests, webpackConfiguration } = config; + const { useManifests, webpack } = config; return { docsPath, packagesPaths, useManifests, - webpackConfiguration, + webpack, }; }; diff --git a/packages/website/bin/handle-config.test.js b/packages/website/bin/handle-config.test.js index 575ae44..6db3600 100644 --- a/packages/website/bin/handle-config.test.js +++ b/packages/website/bin/handle-config.test.js @@ -11,7 +11,7 @@ describe('website configuration processor', () => { packagesPaths: ['/c/w/d/packages/*'], docsPath: '/c/w/d/docs', useManifests: false, - webpackConfiguration: expect.anything(), + webpack: expect.any(Function), }); }); @@ -43,6 +43,13 @@ describe('website configuration processor', () => { expect(config.useManifests).toEqual(true); }); + + it('accepts a webpack function', () => { + const dummyWebpack = _ => _; + + const config = processConfig(mockCwd, { webpack: dummyWebpack }); + expect(config.webpack).toBe(dummyWebpack); + }); }); describe('loadConfig', () => { diff --git a/packages/website/bin/index.js b/packages/website/bin/index.js index 0433cea..c1e6312 100755 --- a/packages/website/bin/index.js +++ b/packages/website/bin/index.js @@ -1,55 +1,31 @@ #!/usr/bin/env node -const { spawnSync } = require('child_process'); -const path = require('path'); const commandLineArgs = require('command-line-args'); -const generatePages = require('./generate-pages'); -const handleConfig = require('./handle-config'); +const { dev, build } = require('./run-website'); const mainDefinitions = [{ name: 'command', defaultOption: true }]; const mainOptions = commandLineArgs(mainDefinitions, { stopAtFirstUnknown: true, }); -const nextRoot = path.resolve(__dirname, '..'); - // We have no control over this dangling underscore // eslint-disable-next-line no-underscore-dangle const argv = mainOptions._unknown || []; const cliOptions = [{ name: 'config', type: String }]; const options = commandLineArgs(cliOptions, { argv, camelCase: true }); -const cwd = process.cwd(); - -const spawnNextProcess = command => { - spawnSync( - `PATH=$(npm bin):$PATH; NODE_PATH=$NODE_PATH:$PWD/src next ${command}`, - [], - { - stdio: 'inherit', - shell: true, - env: { ...process.env, FORCE_EXTRACT_REACT_TYPES: true }, - cwd: nextRoot, - }, - ); -}; -const preNextScripts = async () => { - const config = handleConfig(cwd, options.config); - await generatePages(config); -}; +if (mainOptions.command === undefined) { + throw new Error(`No command supplied`); +} switch (mainOptions.command) { case 'dev': { - preNextScripts().then(() => spawnNextProcess('dev')); + dev(options.config); break; } case 'build': { - preNextScripts().then(() => spawnNextProcess('build')); - break; - } - case 'start': { - preNextScripts().then(() => spawnNextProcess('start')); + build(options.config); break; } default: diff --git a/packages/website/bin/integration.test.js b/packages/website/bin/integration.test.js index dd49f60..e3fa258 100644 --- a/packages/website/bin/integration.test.js +++ b/packages/website/bin/integration.test.js @@ -1,48 +1,35 @@ -import { spawnSync } from 'child_process'; import path from 'path'; -import generatePages from './generate-pages'; -import { processConfig } from './handle-config'; +import { build } from './run-website'; -import customWebpackConfig from '../__fixtures__/custom-webpack-project/docs.config'; -import typescriptConfig from '../__fixtures__/typescript-project/docs.config'; -import customBabelConfig from '../__fixtures__/custom-babel-project/docs.config'; +import { fixturesPath } from '../__fixtures__'; -const buildWebsiteFromFixture = async config => { - const fixtureConfig = processConfig(process.cwd(), config); - - await generatePages(fixtureConfig); - - const nextRoot = path.resolve(__dirname, '..'); - - const { status, stderr } = spawnSync( - `PATH=$(npm bin):$PATH; NODE_PATH=$NODE_PATH:$PWD/src next build`, - [], - { - shell: true, - env: { ...process.env, FORCE_EXTRACT_REACT_TYPES: true }, - cwd: nextRoot, - }, - ); - - if (status !== 0) { - throw new Error(stderr.toString()); - } -}; +const customWebpackConfig = path.join( + fixturesPath, + 'custom-webpack-project/docs.config', +); +const typescriptConfig = path.join( + fixturesPath, + 'typescript-project/docs.config', +); +const customBabelConfig = path.join( + fixturesPath, + 'custom-babel-project/docs.config', +); describe('Website generation integration tests', () => { it('can build a project with a custom Webpack configuration', () => { // assert that the website builds without error - return buildWebsiteFromFixture(customWebpackConfig()); + return build(customWebpackConfig); }); it('can build a project that uses TypeScript', () => { // assert that the website builds without error - return buildWebsiteFromFixture(typescriptConfig()); + return build(typescriptConfig); }); it('can build a project that uses a special Babel config', () => { // assert that the website builds without error - return buildWebsiteFromFixture(customBabelConfig()); + return build(customBabelConfig); }); }); diff --git a/packages/website/bin/page-generator/templates/index.js b/packages/website/bin/page-generator/templates/index.js index 53b6179..edd4084 100644 --- a/packages/website/bin/page-generator/templates/index.js +++ b/packages/website/bin/page-generator/templates/index.js @@ -52,7 +52,7 @@ const exampleTemplate = ( title = '', ) => outdent` import Component from '${componentPath}'; - import fileContents from '!!raw-loader!${wrapperPath}'; + import fileContents from '!!raw-loader!${componentPath}'; import Wrapper from '${wrapperPath}'; import PageTitle from '${pageTitlePath}' diff --git a/packages/website/bin/run-website.js b/packages/website/bin/run-website.js new file mode 100644 index 0000000..6befcf2 --- /dev/null +++ b/packages/website/bin/run-website.js @@ -0,0 +1,48 @@ +const { spawnSync } = require('child_process'); +const path = require('path'); + +const handleConfig = require('./handle-config'); +const generatePages = require('./generate-pages'); + +const cwd = process.cwd(); +const nextRoot = path.resolve(__dirname, '..'); + +const spawnNextProcess = (command, websiteConfigPath) => { + const { status } = spawnSync( + `PATH=$(npm bin):$PATH; NODE_PATH=$NODE_PATH:$PWD/src next ${command}`, + [], + { + stdio: 'inherit', + shell: true, + env: { + ...process.env, + FORCE_EXTRACT_REACT_TYPES: true, + DOCS_WEBSITE_CONFIG_PATH: websiteConfigPath, + DOCS_WEBSITE_CWD: cwd, + }, + cwd: nextRoot, + }, + ); + + if (status !== 0) { + throw new Error(`Next ${command} failed with exit code ${status}`); + } +}; + +const preNextScripts = async configPath => { + const config = handleConfig(cwd, configPath); + await generatePages(config); +}; + +const dev = async configPath => { + await preNextScripts(configPath); + spawnNextProcess('dev', configPath); +}; + +const build = async configPath => { + await preNextScripts(configPath); + spawnNextProcess('build', configPath); +}; + +module.exports.dev = dev; +module.exports.build = build; diff --git a/packages/website/next.config.js b/packages/website/next.config.js index 758714d..cd9b4de 100644 --- a/packages/website/next.config.js +++ b/packages/website/next.config.js @@ -2,30 +2,28 @@ const webpack = require('webpack'); const withMDX = require('@zeit/next-mdx')({ extension: /\.mdx?$/, }); -const path = require('path'); const withCSS = require('@zeit/next-css'); +const handleConfig = require('./bin/handle-config'); + +const configPath = process.env.DOCS_WEBSITE_CONFIG_PATH; +const cwd = process.env.DOCS_WEBSITE_CWD; + +const { webpack: clientWebpack } = handleConfig(cwd, configPath); + module.exports = withCSS( withMDX({ pageExtensions: ['js', 'jsx', 'mdx', 'tsx', 'ts'], webpack(config) { // eslint-disable-next-line no-param-reassign config.externals = []; - // Need to apply next.js webpack to jira-frontend src modules - config.module.rules.forEach( - rule => - rule.include && - rule.include.push(path.join(__dirname, `../packages`)), - ); // Adding items to globalScope in the website config.plugins.push( new webpack.ProvidePlugin({ Props: ['pretty-proptypes', 'default'] }), ); - // Needed to make sure jira-frontend src alias are found by webpack - config.resolve.modules.push(path.join(__dirname, `../packages`)); - return config; + return clientWebpack(config); }, }), ); diff --git a/packages/website/package.json b/packages/website/package.json index e09b268..ef5322a 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -32,10 +32,10 @@ "@atlaskit/theme": "^6.0.0", "@atlaskit/tree": "^4.1.11", "@atlaskit/width-detector": "^0.3.1", - "@babel/preset-flow": "^7.0.0", - "@babel/preset-typescript": "^7.3.3", "@babel/plugin-proposal-class-properties": "^7.3.4", "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/preset-flow": "^7.0.0", + "@babel/preset-typescript": "^7.3.3", "@emotion/core": "^10.0.9", "@emotion/styled": "^10.0.9", "@mdx-js/loader": "^0.17.5", @@ -57,6 +57,7 @@ "lodash.capitalize": "^4.2.1", "lodash.debounce": "^4.0.8", "lodash.flatmap": "^4.5.0", + "lodash.identity": "^3.0.0", "lodash.snakecase": "^4.1.1", "next": "^7.0.2", "outdent": "^0.7.0", @@ -78,4 +79,4 @@ "enzyme-adapter-react-16": "^1.9.1", "ts-loader": "^5.3.3" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index a62e8d7..1e306ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7109,6 +7109,11 @@ lodash.get@^4.4.2: version "4.4.2" resolved "https://packages.atlassian.com/api/npm/npm-remote/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" +lodash.identity@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.identity/-/lodash.identity-3.0.0.tgz#ad7bc6a4e647d79c972e1b80feef7af156267876" + integrity sha1-rXvGpOZH15yXLhuA/u968VYmeHY= + lodash.isequal@^4.5.0: version "4.5.0" resolved "https://packages.atlassian.com/api/npm/npm-remote/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -9559,14 +9564,6 @@ scheduler@^0.13.3: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.13.4: - version "0.13.4" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.4.tgz#8fef05e7a3580c76c0364d2df5e550e4c9140298" - integrity sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.7" resolved "https://packages.atlassian.com/api/npm/npm-remote/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" From 72aa40ecfe226a1742c82de17a7167b3550b49c3 Mon Sep 17 00:00:00 2001 From: Dean Pisani Date: Thu, 21 Mar 2019 16:27:08 +1100 Subject: [PATCH 03/12] AFP-215: Fix tests. Remove useless file --- package.json | 2 +- packages/website/bin/index.js | 6 +- .../page-generator/build-externals/README.md | 3 - .../page-generator/build-externals/index.js | 59 --------- .../page-generator/build-externals/test.js | 123 ------------------ packages/website/bin/page-generator/index.js | 1 - packages/website/bin/page-generator/test.js | 51 +------- packages/website/bin/run-website.js | 9 +- packages/website/package.json | 4 +- 9 files changed, 16 insertions(+), 242 deletions(-) delete mode 100644 packages/website/bin/page-generator/build-externals/README.md delete mode 100644 packages/website/bin/page-generator/build-externals/index.js delete mode 100644 packages/website/bin/page-generator/build-externals/test.js diff --git a/package.json b/package.json index 51db6d6..44eb92f 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "delete:dist": "bolt ws exec --parallel -- rm -rf dist", "delete:modules": "bolt ws exec --parallel -- rm -rf node_modules && rm -rf node_modules", "docs": "node packages/website/bin/index.js dev", - "start": "bolt w @brisk-docs/website run start -p 8080", + "start": "bolt w @brisk-docs/website run start", "prettier": "prettier --write \"**/*.js\"", "lint:prettier": "prettier --list-different \"**/*.js\"", "lint:eslint": "yarn eslint .", diff --git a/packages/website/bin/index.js b/packages/website/bin/index.js index c1e6312..ed64eeb 100755 --- a/packages/website/bin/index.js +++ b/packages/website/bin/index.js @@ -1,7 +1,7 @@ #!/usr/bin/env node const commandLineArgs = require('command-line-args'); -const { dev, build } = require('./run-website'); +const { dev, build, start } = require('./run-website'); const mainDefinitions = [{ name: 'command', defaultOption: true }]; const mainOptions = commandLineArgs(mainDefinitions, { @@ -28,6 +28,10 @@ switch (mainOptions.command) { build(options.config); break; } + case 'start': { + start(options.config); + break; + } default: throw new Error(`Cannot run unknown command, ${mainOptions.command}`); } diff --git a/packages/website/bin/page-generator/build-externals/README.md b/packages/website/bin/page-generator/build-externals/README.md deleted file mode 100644 index 1f6fca6..0000000 --- a/packages/website/bin/page-generator/build-externals/README.md +++ /dev/null @@ -1,3 +0,0 @@ -This utility is responsible for building/bundling code from packages so that it can be -loaded inside our website as examples etc. It spawns webpack using a config provided by the consumer, -which allows us to support packages that use custom build configurations. \ No newline at end of file diff --git a/packages/website/bin/page-generator/build-externals/index.js b/packages/website/bin/page-generator/build-externals/index.js deleted file mode 100644 index 031074e..0000000 --- a/packages/website/bin/page-generator/build-externals/index.js +++ /dev/null @@ -1,59 +0,0 @@ -const path = require('path'); -const crypto = require('crypto'); -const webpack = require('webpack'); - -const createBuilder = (inputs, destinationDir, config) => { - if (inputs.length === 0) { - return { bundles: [], run: () => Promise.resolve() }; - } - const bundles = inputs.map(input => { - const basename = path.basename(input, '.js'); - const hash = crypto - .createHash('md5') - .update(input) - .digest('hex'); - const id = `${basename}_${hash}`; - - return { id, source: input, dest: path.join(destinationDir, `${id}.js`) }; - }); - - const entry = bundles.reduce( - (acc, bundle) => ({ ...acc, [bundle.id]: bundle.source }), - {}, - ); - - const output = { - filename: '[name].js', - path: destinationDir, - libraryTarget: 'commonjs2', - }; - - const compiler = webpack({ ...config, entry, output }); - - return { - bundles, - run: () => - new Promise((resolve, reject) => { - compiler.run((err, stats) => { - if (err) { - reject(err); - } - - const info = stats.toJson(); - - if (stats.hasErrors()) { - // eslint-disable-next-line no-console - console.error(info.errors); - reject(new Error('errors occurred during compilation')); - } else if (stats.hasWarnings()) { - // eslint-disable-next-line no-console - console.warn(info.warnings); - } else { - resolve(); - } - }); - }), - }; -}; - -module.exports = createBuilder; diff --git a/packages/website/bin/page-generator/build-externals/test.js b/packages/website/bin/page-generator/build-externals/test.js deleted file mode 100644 index ff6bf59..0000000 --- a/packages/website/bin/page-generator/build-externals/test.js +++ /dev/null @@ -1,123 +0,0 @@ -import webpack from 'webpack'; -import path from 'path'; -import createBuilder from '.'; - -jest.mock('webpack'); - -describe('External code builder', () => { - let mockRunCompiler; - - const inputs = ['source/a.js', 'source/b.js', 'source/c.js']; - - const mockRunStats = { - toJson: () => {}, - hasErrors: () => false, - hasWarnings: () => false, - }; - - beforeEach(() => { - jest.resetAllMocks(); - - mockRunCompiler = jest.fn(); - const mockCompiler = { run: mockRunCompiler }; - webpack.mockReturnValue(mockCompiler); - - mockRunCompiler.mockImplementation(callback => - callback(null, mockRunStats), - ); - }); - - it('returns a list of bundle definitions', () => { - const { bundles } = createBuilder(inputs, 'bundles'); - - expect(bundles).toHaveLength(3); - - const assertHasBundle = sourceName => { - expect( - bundles.find(bundle => { - return bundle.source === `source/${sourceName}.js`; - }), - ).not.toBeUndefined(); - }; - - assertHasBundle('a'); - assertHasBundle('b'); - assertHasBundle('c'); - }); - - it('defines bundle destinations in the bundles directory', () => { - const { bundles } = createBuilder(inputs, 'bundles', {}); - - const assertHasDest = sourceName => { - const bundle = bundles.find(b => b.source === `source/${sourceName}.js`); - - expect(path.dirname(bundle.dest)).toBe('bundles'); - expect(path.basename(bundle.dest)).toMatch( - new RegExp(`${sourceName}_[a-z0-9]*.js`), - ); - }; - - assertHasDest('a'); - assertHasDest('b'); - assertHasDest('c'); - }); - - it('generates unique destination paths', () => { - const { bundles } = createBuilder( - ['source/a/index.js', 'source/b/index.js'], - 'bundles', - {}, - ); - - expect(bundles[0].dest).not.toEqual(bundles[1].dest); - }); - - it('instantiates a webpack compiler with entries and outputs matching bundle definitions', async () => { - const { bundles, run } = createBuilder(inputs, 'bundles', {}); - - await run(); - - const webpackCall = webpack.mock.calls[0][0]; - - expect(webpackCall.output).toEqual({ - filename: '[name].js', - path: 'bundles', - libraryTarget: 'commonjs2', - }); - - const assertEntry = source => { - const bundle = bundles.find(b => b.source === source); - expect(webpackCall.entry[bundle.id]).toEqual(source); - }; - - assertEntry('source/a.js'); - assertEntry('source/b.js'); - assertEntry('source/c.js'); - - expect(mockRunCompiler).toHaveBeenCalledTimes(1); - }); - - it('returns a promise that rejects when compilation fails', () => { - mockRunCompiler.mockImplementation(callback => - callback(new Error(), mockRunStats), - ); - - return expect(createBuilder(inputs, 'bundles', {}).run()).rejects.toEqual( - expect.any(Error), - ); - }); - - it('passes provided configuration to webpack', async () => { - await createBuilder(inputs, 'bundles', { option1: true }).run(); - - expect(webpack).toHaveBeenCalledWith( - expect.objectContaining({ option1: true }), - ); - }); - - it('does not start webpack if there are no files to build', async () => { - await createBuilder([], 'bundles', { option1: true }).run(); - - expect(webpack).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/website/bin/page-generator/index.js b/packages/website/bin/page-generator/index.js index d152f18..ec70f63 100644 --- a/packages/website/bin/page-generator/index.js +++ b/packages/website/bin/page-generator/index.js @@ -4,7 +4,6 @@ const rimraf = require('rimraf'); const titleCase = require('title-case'); const getPackageInfo = require('./get-package-info'); const getDocsInfo = require('./get-docs-info'); -const getExternalModuleBuilder = require('./build-externals'); const { generateHomePage, generatePackageDocPage, diff --git a/packages/website/bin/page-generator/test.js b/packages/website/bin/page-generator/test.js index 61faf15..3231959 100644 --- a/packages/website/bin/page-generator/test.js +++ b/packages/website/bin/page-generator/test.js @@ -2,40 +2,8 @@ import path from 'path'; import fs from 'fs'; import { copyFixtureIntoTempDir, createTempDir } from 'jest-fixtures'; -import mockCreateBuilder from './build-externals'; import generatePages from './index'; -jest.mock('./build-externals'); - -// TODO: refactor this test suite so such a messy mock is no longer needed -const mockModuleBuilder = packagesCwd => { - const createMockBundle = (packageName, exampleName) => ({ - source: path.join( - packagesCwd, - 'packages', - packageName, - 'examples', - exampleName, - ), - dest: 'bundles/mp1-example1.js', - }); - - mockCreateBuilder.mockImplementation(() => ({ - run: () => Promise.resolve(), - bundles: [ - createMockBundle('mock-package1', 'example1.js'), - createMockBundle('mock-package1', 'example2.js'), - createMockBundle('mock-package1', 'example3.js'), - createMockBundle('mock-package2', 'example1.js'), - createMockBundle('mock-package2', 'example2.js'), - createMockBundle('mock-package2', 'example3.js'), - createMockBundle('mock-package3', 'example1.js'), - createMockBundle('mock-package3', 'example2.js'), - createMockBundle('mock-package3', 'example3.js'), - ], - })); -}; - describe('Generate pages', () => { let packagesPaths; let pagesPath; @@ -53,16 +21,12 @@ describe('Generate pages', () => { const docsPath = path.join(docsCwd, 'docs'); pagesPath = await createTempDir(); const componentsPath = await createTempDir(); - const bundlesPath = await createTempDir(); - - mockModuleBuilder(packagesCwd); sitemap = await generatePages( packagesPaths, docsPath, pagesPath, componentsPath, - bundlesPath, ); }); @@ -305,7 +269,6 @@ describe('File modification tests', () => { let docsPath; let pagesPath; let componentsPath; - let bundlesPath; beforeEach(async () => { const packagesCwd = await copyFixtureIntoTempDir( @@ -314,13 +277,10 @@ describe('File modification tests', () => { ); const docsCwd = await copyFixtureIntoTempDir(__dirname, 'simple-mock-docs'); - mockModuleBuilder(packagesCwd); - packagesPath = path.join(packagesCwd, 'packages'); docsPath = path.join(docsCwd, 'docs'); pagesPath = await createTempDir(); componentsPath = await createTempDir(); - bundlesPath = await createTempDir(); }); it('should remove files from package docs pages that are removed from disc on rerun', async () => { @@ -336,7 +296,6 @@ describe('File modification tests', () => { docsPath, pagesPath, componentsPath, - bundlesPath, ); expect(fs.existsSync(firstDocsPage)).toEqual(true); @@ -349,7 +308,6 @@ describe('File modification tests', () => { docsPath, pagesPath, componentsPath, - bundlesPath, ); expect(fs.existsSync(firstDocsPage)).toEqual(false); @@ -357,13 +315,7 @@ describe('File modification tests', () => { it('should remove files from docs pages that are removed from disc on rerun', async () => { const firstDocsPage = path.join(pagesPath, 'docs', 'doc-1.js'); - await generatePages( - packagesPath, - docsPath, - pagesPath, - componentsPath, - bundlesPath, - ); + await generatePages(packagesPath, docsPath, pagesPath, componentsPath); expect(fs.existsSync(firstDocsPage)).toEqual(true); fs.unlinkSync(path.join(docsPath, 'doc-1.md')); @@ -371,7 +323,6 @@ describe('File modification tests', () => { [path.join(packagesPath, '/*')], docsPath, pagesPath, - bundlesPath, componentsPath, ); diff --git a/packages/website/bin/run-website.js b/packages/website/bin/run-website.js index 6befcf2..8196d61 100644 --- a/packages/website/bin/run-website.js +++ b/packages/website/bin/run-website.js @@ -7,9 +7,9 @@ const generatePages = require('./generate-pages'); const cwd = process.cwd(); const nextRoot = path.resolve(__dirname, '..'); -const spawnNextProcess = (command, websiteConfigPath) => { +const spawnNextProcess = (command, websiteConfigPath, args = '') => { const { status } = spawnSync( - `PATH=$(npm bin):$PATH; NODE_PATH=$NODE_PATH:$PWD/src next ${command}`, + `PATH=$(npm bin):$PATH; NODE_PATH=$NODE_PATH:$PWD/src next ${command} ${args}`, [], { stdio: 'inherit', @@ -44,5 +44,10 @@ const build = async configPath => { spawnNextProcess('build', configPath); }; +const start = async configPath => { + spawnNextProcess('start', configPath, '-p 8080'); +}; + module.exports.dev = dev; module.exports.build = build; +module.exports.start = start; diff --git a/packages/website/package.json b/packages/website/package.json index 5af5357..bfffaf9 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -10,7 +10,7 @@ "dev:webpack": "node bin/index.js dev --config=dummy-data/custom-webpack-project/docs.config.js", "build:site": "node bin/index.js build --config=dummy-data/simple-project/docs.config.js", "build": "echo no build set yet for website", - "start": "next start -p 8080" + "start": "node bin/index.js start" }, "bin": { "brisk": "bin/index.js" @@ -79,4 +79,4 @@ "enzyme-adapter-react-16": "^1.9.1", "ts-loader": "^5.3.3" } -} \ No newline at end of file +} From 64b4d0f0a15c4108f149bfbba613e0e07b14035f Mon Sep 17 00:00:00 2001 From: Dean Pisani Date: Fri, 22 Mar 2019 10:44:01 +1100 Subject: [PATCH 04/12] AFP-215: Test things to fix the build --- packages/website/bin/index.js | 6 +++--- packages/website/next.config.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/website/bin/index.js b/packages/website/bin/index.js index ed64eeb..3fdf515 100755 --- a/packages/website/bin/index.js +++ b/packages/website/bin/index.js @@ -21,15 +21,15 @@ if (mainOptions.command === undefined) { switch (mainOptions.command) { case 'dev': { - dev(options.config); + dev(options.config).catch(process.exit(1)); break; } case 'build': { - build(options.config); + build(options.config).catch(process.exit(1)); break; } case 'start': { - start(options.config); + start(options.config).catch(process.exit(1)); break; } default: diff --git a/packages/website/next.config.js b/packages/website/next.config.js index cd9b4de..d8a5feb 100644 --- a/packages/website/next.config.js +++ b/packages/website/next.config.js @@ -7,7 +7,7 @@ const withCSS = require('@zeit/next-css'); const handleConfig = require('./bin/handle-config'); const configPath = process.env.DOCS_WEBSITE_CONFIG_PATH; -const cwd = process.env.DOCS_WEBSITE_CWD; +const cwd = process.env.DOCS_WEBSITE_CWD || process.cwd(); const { webpack: clientWebpack } = handleConfig(cwd, configPath); From 7fec3dde842810b7202dc47a740a8bb68b2a866a Mon Sep 17 00:00:00 2001 From: Dean Pisani Date: Fri, 22 Mar 2019 10:47:12 +1100 Subject: [PATCH 05/12] AFP-215: Log error message when bin commands fail --- packages/website/bin/index.js | 11 ++++++++--- packages/website/bin/run-website.js | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/website/bin/index.js b/packages/website/bin/index.js index 3fdf515..047863b 100755 --- a/packages/website/bin/index.js +++ b/packages/website/bin/index.js @@ -19,17 +19,22 @@ if (mainOptions.command === undefined) { throw new Error(`No command supplied`); } +const handleError = err => { + console.error(err); + process.exit(1); +}; + switch (mainOptions.command) { case 'dev': { - dev(options.config).catch(process.exit(1)); + dev(options.config).catch(handleError); break; } case 'build': { - build(options.config).catch(process.exit(1)); + build(options.config).catch(handleError); break; } case 'start': { - start(options.config).catch(process.exit(1)); + start(options.config).catch(handleError); break; } default: diff --git a/packages/website/bin/run-website.js b/packages/website/bin/run-website.js index 8196d61..1f476df 100644 --- a/packages/website/bin/run-website.js +++ b/packages/website/bin/run-website.js @@ -17,7 +17,9 @@ const spawnNextProcess = (command, websiteConfigPath, args = '') => { env: { ...process.env, FORCE_EXTRACT_REACT_TYPES: true, - DOCS_WEBSITE_CONFIG_PATH: websiteConfigPath, + ...(websiteConfigPath + ? { DOCS_WEBSITE_CONFIG_PATH: websiteConfigPath } + : {}), DOCS_WEBSITE_CWD: cwd, }, cwd: nextRoot, From 1afffce773ec9ec3c84f7c78679f898be69973f7 Mon Sep 17 00:00:00 2001 From: Dean Pisani Date: Fri, 22 Mar 2019 11:13:44 +1100 Subject: [PATCH 06/12] Console log stuff --- packages/website/next.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/website/next.config.js b/packages/website/next.config.js index d8a5feb..095b63a 100644 --- a/packages/website/next.config.js +++ b/packages/website/next.config.js @@ -9,6 +9,8 @@ const handleConfig = require('./bin/handle-config'); const configPath = process.env.DOCS_WEBSITE_CONFIG_PATH; const cwd = process.env.DOCS_WEBSITE_CWD || process.cwd(); +console.log(process.env); + const { webpack: clientWebpack } = handleConfig(cwd, configPath); module.exports = withCSS( From 8a41d7f6f01a056d6439d3a7cf3f27ef0d4722d6 Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 12 Apr 2019 13:41:21 +1000 Subject: [PATCH 07/12] added changeset --- .changeset/changeset | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .changeset/changeset diff --git a/.changeset/changeset b/.changeset/changeset new file mode 100644 index 0000000..e69de29 From db2e344ad1ffa0075e210a525a2ce0f5dc8ed673 Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 12 Apr 2019 13:41:55 +1000 Subject: [PATCH 08/12] removed changeset --- .changeset/changeset | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .changeset/changeset diff --git a/.changeset/changeset b/.changeset/changeset deleted file mode 100644 index e69de29..0000000 From 82aefe53dfe62e8be59c308fc12bf3b3aaf7189c Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 12 Apr 2019 13:42:09 +1000 Subject: [PATCH 09/12] Added changest --- .changeset/changeset | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .changeset/changeset diff --git a/.changeset/changeset b/.changeset/changeset new file mode 100644 index 0000000..e69de29 From f950da5349ec38d929c5e919fdbaae6a908633e7 Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 12 Apr 2019 13:44:03 +1000 Subject: [PATCH 10/12] added changeset --- .changeset/6b6e2f96/changes.json | 4 ++++ .changeset/6b6e2f96/changes.md | 1 + .changeset/changeset | 0 3 files changed, 5 insertions(+) create mode 100644 .changeset/6b6e2f96/changes.json create mode 100644 .changeset/6b6e2f96/changes.md delete mode 100644 .changeset/changeset diff --git a/.changeset/6b6e2f96/changes.json b/.changeset/6b6e2f96/changes.json new file mode 100644 index 0000000..0c9990d --- /dev/null +++ b/.changeset/6b6e2f96/changes.json @@ -0,0 +1,4 @@ +{ + "releases": [{ "name": "@brisk-docs/website", "type": "patch" }], + "dependents": [] +} diff --git a/.changeset/6b6e2f96/changes.md b/.changeset/6b6e2f96/changes.md new file mode 100644 index 0000000..19670e5 --- /dev/null +++ b/.changeset/6b6e2f96/changes.md @@ -0,0 +1 @@ +- test changeset \ No newline at end of file diff --git a/.changeset/changeset b/.changeset/changeset deleted file mode 100644 index e69de29..0000000 From 300ef61174b30061f04f9e06579077cd69ab691b Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 12 Apr 2019 13:44:49 +1000 Subject: [PATCH 11/12] Removed changeset --- .changeset/6b6e2f96/changes.json | 4 ---- .changeset/6b6e2f96/changes.md | 1 - 2 files changed, 5 deletions(-) delete mode 100644 .changeset/6b6e2f96/changes.json delete mode 100644 .changeset/6b6e2f96/changes.md diff --git a/.changeset/6b6e2f96/changes.json b/.changeset/6b6e2f96/changes.json deleted file mode 100644 index 0c9990d..0000000 --- a/.changeset/6b6e2f96/changes.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "releases": [{ "name": "@brisk-docs/website", "type": "patch" }], - "dependents": [] -} diff --git a/.changeset/6b6e2f96/changes.md b/.changeset/6b6e2f96/changes.md deleted file mode 100644 index 19670e5..0000000 --- a/.changeset/6b6e2f96/changes.md +++ /dev/null @@ -1 +0,0 @@ -- test changeset \ No newline at end of file From b25faa0f6275f55388381f5be6646999c58d420e Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 12 Apr 2019 14:44:10 +1000 Subject: [PATCH 12/12] added changeset --- .changeset/9619af8b/changes.json | 4 ++++ .changeset/9619af8b/changes.md | 1 + 2 files changed, 5 insertions(+) create mode 100644 .changeset/9619af8b/changes.json create mode 100644 .changeset/9619af8b/changes.md diff --git a/.changeset/9619af8b/changes.json b/.changeset/9619af8b/changes.json new file mode 100644 index 0000000..0c9990d --- /dev/null +++ b/.changeset/9619af8b/changes.json @@ -0,0 +1,4 @@ +{ + "releases": [{ "name": "@brisk-docs/website", "type": "patch" }], + "dependents": [] +} diff --git a/.changeset/9619af8b/changes.md b/.changeset/9619af8b/changes.md new file mode 100644 index 0000000..85f46f4 --- /dev/null +++ b/.changeset/9619af8b/changes.md @@ -0,0 +1 @@ +- sodjfsdfds \ No newline at end of file