From ca25b816fabe15ce1ebc539c0316beba813683b8 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Tue, 13 Mar 2018 15:29:12 +0100 Subject: move scripts to monorepro-scripts --- packages/dev-utils/.npmignore | 5 -- packages/dev-utils/package.json | 8 +- packages/dev-utils/scripts/postpublish.js | 5 -- packages/dev-utils/src/globals.d.ts | 10 +-- .../dev-utils/src/monorepo_scripts/postpublish.ts | 6 ++ packages/dev-utils/src/postpublish_utils.ts | 86 ---------------------- packages/dev-utils/src/utils.ts | 5 -- packages/dev-utils/test/.npmignore | 5 ++ 8 files changed, 20 insertions(+), 110 deletions(-) delete mode 100644 packages/dev-utils/.npmignore delete mode 100644 packages/dev-utils/scripts/postpublish.js create mode 100644 packages/dev-utils/src/monorepo_scripts/postpublish.ts delete mode 100644 packages/dev-utils/src/postpublish_utils.ts delete mode 100644 packages/dev-utils/src/utils.ts create mode 100644 packages/dev-utils/test/.npmignore (limited to 'packages/dev-utils') diff --git a/packages/dev-utils/.npmignore b/packages/dev-utils/.npmignore deleted file mode 100644 index 87bc30436..000000000 --- a/packages/dev-utils/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -.* -yarn-error.log -/src/ -/scripts/ -tsconfig.json diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 491ebd95f..8912a7330 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -6,11 +6,11 @@ "types": "lib/src/index.d.ts", "scripts": { "build:watch": "tsc -w", - "build": "tsc", + "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts", "test": "run-s clean build run_mocha", "test:circleci": "yarn test", "run_mocha": "mocha lib/test/**/*_test.js --bail --exit", - "clean": "shx rm -rf lib", + "clean": "shx rm -rf lib scripts", "lint": "tslint --project . 'src/**/*.ts' 'test/**/*.ts'" }, "license": "Apache-2.0", @@ -23,12 +23,14 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/dev-utils/README.md", "devDependencies": { + "@0xproject/monorepo-scripts": "^0.1.12", "@0xproject/tslint-config": "^0.4.10", "@0xproject/web3-wrapper": "^0.2.1", "@types/lodash": "^4.14.86", "@types/mocha": "^2.2.42", "chai": "^4.0.1", "chai-typescript-typings": "^0.0.4", + "copyfiles": "^1.2.0", "mocha": "^4.0.1", "npm-run-all": "^4.1.2", "shx": "^0.2.2", @@ -43,9 +45,7 @@ "@0xproject/utils": "^0.4.1", "ethereumjs-util": "^5.1.2", "lodash": "^4.17.4", - "publish-release": "0xproject/publish-release", "request-promise-native": "^1.0.5", - "semver-sort": "^0.0.4", "web3": "^0.20.0", "web3-provider-engine": "^13.0.1" }, diff --git a/packages/dev-utils/scripts/postpublish.js b/packages/dev-utils/scripts/postpublish.js deleted file mode 100644 index b3e5407c8..000000000 --- a/packages/dev-utils/scripts/postpublish.js +++ /dev/null @@ -1,5 +0,0 @@ -const postpublish_utils = require('../../../scripts/postpublish_utils'); -const packageJSON = require('../package.json'); - -const subPackageName = packageJSON.name; -postpublish_utils.standardPostPublishAsync(subPackageName); \ No newline at end of file diff --git a/packages/dev-utils/src/globals.d.ts b/packages/dev-utils/src/globals.d.ts index 9c8a1dc02..894e56c58 100644 --- a/packages/dev-utils/src/globals.d.ts +++ b/packages/dev-utils/src/globals.d.ts @@ -1,9 +1,9 @@ declare module 'web3-provider-engine'; declare module 'web3-provider-engine/subproviders/rpc'; -declare module 'async-child-process'; -declare module 'publish-release'; -// semver-sort declarations -declare module 'semver-sort' { - const desc: (versions: string[]) => string[]; +declare module '*.json' { + const json: any; + /* tslint:disable */ + export default json; + /* tslint:enable */ } diff --git a/packages/dev-utils/src/monorepo_scripts/postpublish.ts b/packages/dev-utils/src/monorepo_scripts/postpublish.ts new file mode 100644 index 000000000..6bd94e71d --- /dev/null +++ b/packages/dev-utils/src/monorepo_scripts/postpublish.ts @@ -0,0 +1,6 @@ +import { postpublishUtils } from '../postpublish_utils'; + +import * as packageJSON from '../package.json'; + +const subPackageName = (packageJSON as any).name; +postpublishUtils.standardPostPublishAsync(subPackageName); diff --git a/packages/dev-utils/src/postpublish_utils.ts b/packages/dev-utils/src/postpublish_utils.ts deleted file mode 100644 index 35d046e26..000000000 --- a/packages/dev-utils/src/postpublish_utils.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { promisify } from '@0xproject/utils'; -import { execAsync } from 'async-child-process'; -import * as _ from 'lodash'; -import * as publishRelease from 'publish-release'; -import semverSort = require('semver-sort'); - -import { utils } from './utils'; - -const publishReleaseAsync = promisify(publishRelease); -const githubPersonalAccessToken = process.env.GITHUB_PERSONAL_ACCESS_TOKEN_0X_JS; -const generatedDocsDirectoryName = 'generated_docs'; - -export interface TagAndVersion { - tag: string; - version: string; -} - -export const postpublishUtils = { - getLatestTagAndVersionAsync(subPackageName: string): Promise { - const subPackagePrefix = `${subPackageName}@`; - const gitTagsCommand = `git tag -l "${subPackagePrefix}*"`; - return execAsync(gitTagsCommand).then((result: any) => { - if (!_.isEmpty(result.stderr)) { - throw new Error(result.stderr); - } - const tags = result.stdout.trim().split('\n'); - const versions = tags.map((tag: string) => { - return tag.slice(subPackagePrefix.length); - }); - const sortedVersions = semverSort.desc(versions); - const latestVersion = sortedVersions[0]; - const latestTag = subPackagePrefix + latestVersion; - return { - tag: latestTag, - version: latestVersion, - }; - }); - }, - publishReleaseNotesAsync(tag: string, releaseName: string, assets: string[]) { - utils.log('POSTPUBLISH: Releasing ', releaseName, '...'); - return publishReleaseAsync({ - token: githubPersonalAccessToken, - owner: '0xProject', - repo: '0x.js', - tag, - name: releaseName, - notes: 'N/A', - draft: false, - prerelease: false, - reuseRelease: true, - reuseDraftOnly: false, - assets, - }); - }, - getReleaseName(subPackageName: string, version: string): string { - const releaseName = `${subPackageName} v${version}`; - return releaseName; - }, - async standardPostPublishAsync(subPackageName: string): Promise { - const result: TagAndVersion = await this.getLatestTagAndVersionAsync(subPackageName); - const releaseName = this.getReleaseName(subPackageName, result.version); - const assets: string[] = []; - await this.publishReleaseNotesAsync(result.tag, releaseName, assets); - }, - adjustFileIncludePaths(fileIncludes: string[], cwd: string): string[] { - const fileIncludesAdjusted = _.map(fileIncludes, fileInclude => { - let path; - if (_.startsWith(fileInclude, '../')) { - path = `${cwd}/../${fileInclude}`; - } else if (_.startsWith(fileInclude, './')) { - path = `${cwd}/../${fileInclude.substr(2)}`; - } else { - path = `${cwd}/${fileInclude}`; - } - - // HACK: tsconfig.json needs wildcard directory endings as `/**/*` - // but TypeDoc needs it as `/**` in order to pick up files at the root - if (_.endsWith(path, '/**/*')) { - path = path.slice(0, -2); - } - return path; - }); - return fileIncludesAdjusted; - }, - generatedDocsDirectoryName, -}; diff --git a/packages/dev-utils/src/utils.ts b/packages/dev-utils/src/utils.ts deleted file mode 100644 index 5423cabd9..000000000 --- a/packages/dev-utils/src/utils.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const utils = { - log(...args: any[]): void { - console.log(...args); // tslint:disable-line:no-console - }, -}; diff --git a/packages/dev-utils/test/.npmignore b/packages/dev-utils/test/.npmignore new file mode 100644 index 000000000..87bc30436 --- /dev/null +++ b/packages/dev-utils/test/.npmignore @@ -0,0 +1,5 @@ +.* +yarn-error.log +/src/ +/scripts/ +tsconfig.json -- cgit v1.2.3