From d09ef1e425e4809e69b92424510fa7d7969cdc1d Mon Sep 17 00:00:00 2001 From: iCrawl Date: Mon, 15 Aug 2022 14:19:17 +0200 Subject: [PATCH] build: switch back to turbo for speedz --- .github/workflows/documentation.yml | 7 +- .github/workflows/publish-dev.yml | 3 + .github/workflows/tests.yml | 68 +--------- package.json | 13 +- packages/docgen/package.json | 8 +- packages/docgen/src/documentation.ts | 21 ++- packages/docgen/src/types/class.ts | 19 ++- packages/voice/package.json | 1 - turbo.json | 8 +- yarn.lock | 194 ++++++++++++++++++++++++--- 10 files changed, 222 insertions(+), 120 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 23ea602b7..5986605a7 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -16,11 +16,14 @@ jobs: build: name: Build documentation runs-on: ubuntu-latest - if: github.repository_owner == 'discordjs' + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} outputs: BRANCH_NAME: ${{ steps.env.outputs.BRANCH_NAME }} BRANCH_OR_TAG: ${{ steps.env.outputs.BRANCH_OR_TAG }} SHA: ${{ steps.env.outputs.SHA }} + if: github.repository_owner == 'discordjs' steps: - name: Checkout repository uses: actions/checkout@v3 @@ -71,6 +74,8 @@ jobs: package: ['builders', 'collection', 'discord.js', 'proxy', 'rest', 'voice', 'ws'] runs-on: ubuntu-latest env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} BRANCH_NAME: ${{ github.event.inputs.ref || needs.build.outputs.BRANCH_NAME }} BRANCH_OR_TAG: ${{ needs.build.outputs.BRANCH_OR_TAG }} SHA: ${{ needs.build.outputs.SHA }} diff --git a/.github/workflows/publish-dev.yml b/.github/workflows/publish-dev.yml index 3eedf4509..2ecd88a29 100644 --- a/.github/workflows/publish-dev.yml +++ b/.github/workflows/publish-dev.yml @@ -25,6 +25,9 @@ jobs: - package: '@discordjs/ws' folder: 'ws' runs-on: ubuntu-latest + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} if: github.repository_owner == 'discordjs' steps: - name: Checkout repository diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e6a692f24..a684d2ad8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,66 +1,12 @@ name: Tests on: [push, pull_request] jobs: - changes: - name: Detect changes - runs-on: ubuntu-latest - outputs: - packages: ${{ steps.filter.outputs.changes }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - shared: &shared - - '!(packages)**' - '@discordjs/actions': - - *shared - - 'packages/actions' - '@discordjs/builders': - - *shared - - 'packages/builders' - '@discordjs/collection': - - *shared - - 'packages/collection' - 'discord.js': - - 'packages/discord.js' - '@discordjs/docgen': - - *shared - - 'packages/docgen' - '@discordjs/proxy': - - *shared - - 'packages/proxy' - '@discordjs/proxy-container': - - *shared - - 'packages/proxy-container' - '@discordjs/rest': - - *shared - - 'packages/rest' - '@discordjs/scripts': - - *shared - - 'packages/scripts' - '@discordjs/voice': - - *shared - - 'packages/voice' - '@discordjs/website': - - *shared - - 'packages/website' - '@discordjs/ws': - - *shared - - 'packages/ws' - tests: name: Tests - needs: changes - strategy: - matrix: - package: ${{ fromJSON(needs.changes.outputs.packages) }} - exclude: - - package: shared runs-on: ubuntu-latest + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} steps: - name: Checkout repository uses: actions/checkout@v3 @@ -75,15 +21,13 @@ jobs: run: yarn install --immutable - name: Build dependencies - run: | - yarn workspace @discordjs/docgen build - yarn workspaces foreach --parallel --topological --recursive --from ${{ matrix.package }} build + run: yarn build - name: ESLint - run: yarn workspace ${{ matrix.package }} lint + run: yarn lint - name: Tests - run: yarn workspace ${{ matrix.package }} test + run: yarn test - name: Upload Coverage uses: ./packages/actions/src/uploadCoverage diff --git a/package.json b/package.json index 3ca07e9a2..db5919585 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,13 @@ "description": "A powerful library for interacting with the Discord API", "private": true, "scripts": { - "build": "yarn workspaces foreach --exclude @discordjs/website --parallel --topological run build", - "test": "yarn workspaces foreach --parallel --topological run test", - "lint": "yarn workspaces foreach --parallel --topological run lint", - "format": "yarn workspaces foreach --parallel --topological run format", - "fmt": "yarn format", + "build": "turbo run build", + "test": "turbo run test", + "lint": "turbo run lint", + "format": "turbo run format", + "fmt": "turbo run format", "postinstall": "is-ci || husky install", - "docs": "yarn workspaces foreach --parallel --topological run docs", + "docs": "turbo run docs", "update": "yarn upgrade-interactive" }, "contributors": [ @@ -47,6 +47,7 @@ "husky": "^8.0.1", "is-ci": "^3.0.1", "lint-staged": "^13.0.3", + "turbo": "^1.4.3", "typescript": "^4.7.4" }, "resolutions": { diff --git a/packages/docgen/package.json b/packages/docgen/package.json index aa60bd723..30ac038db 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,13 +1,13 @@ { "name": "@discordjs/docgen", - "version": "0.12.0", + "version": "0.12.1", "description": "The docs.json generator for discord.js and its related projects", "scripts": { "build": "unbuild", "lint": "prettier --check . && eslint src --ext mjs,js,ts", "format": "prettier --write . && eslint src --ext mjs,js,ts --fix", "fmt": "yarn format", - "prepack": "yarn lint && yarn test && yarn build", + "prepack": "yarn format && yarn build", "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/docgen/*'", "release": "cliff-jumper" }, @@ -42,7 +42,6 @@ }, "homepage": "https://discord.js.org", "dependencies": { - "@discordjs/collection": "^1.0.1", "commander": "^9.4.0", "jsdoc-to-markdown": "^7.1.1", "tslib": "^2.4.0", @@ -66,5 +65,8 @@ }, "engines": { "node": ">=16.9.0" + }, + "publishConfig": { + "access": "public" } } diff --git a/packages/docgen/src/documentation.ts b/packages/docgen/src/documentation.ts index 04184d69d..fbfeaf41c 100644 --- a/packages/docgen/src/documentation.ts +++ b/packages/docgen/src/documentation.ts @@ -1,5 +1,4 @@ import { dirname, join, relative } from 'node:path'; -import { Collection } from '@discordjs/collection'; import type { DeclarationReflection } from 'typedoc'; import type { ChildTypes, Class, Config, CustomDocs, RootTypes } from './interfaces/index.js'; import { DocumentedClass } from './types/class.js'; @@ -13,15 +12,15 @@ import { DocumentedTypeDef } from './types/typedef.js'; import packageFile from '../package.json'; export class Documentation { - public readonly classes = new Collection(); + public readonly classes = new Map(); - public readonly functions = new Collection(); + public readonly functions = new Map(); - public readonly interfaces = new Collection(); + public readonly interfaces = new Map(); - public readonly typedefs = new Collection(); + public readonly typedefs = new Map(); - public readonly externals = new Collection(); + public readonly externals = new Map(); public constructor( data: RootTypes[] | DeclarationReflection[], @@ -244,11 +243,11 @@ export class Documentation { format: Documentation.FORMAT_VERSION, date: Date.now(), }, - classes: this.classes.map((c) => c.serialize()), - functions: this.functions.map((f) => f.serialize()), - interfaces: this.interfaces.map((i) => i.serialize()), - typedefs: this.typedefs.map((t) => t.serialize()), - externals: this.externals.map((e) => e.serialize()), + classes: [...this.classes.values()].map((c) => c.serialize()), + functions: [...this.functions.values()].map((f) => f.serialize()), + interfaces: [...this.interfaces.values()].map((i) => i.serialize()), + typedefs: [...this.typedefs.values()].map((t) => t.serialize()), + externals: [...this.externals.values()].map((e) => e.serialize()), custom: this.custom, }; } diff --git a/packages/docgen/src/types/class.ts b/packages/docgen/src/types/class.ts index f45896722..581ff8336 100644 --- a/packages/docgen/src/types/class.ts +++ b/packages/docgen/src/types/class.ts @@ -1,5 +1,4 @@ import { parse } from 'node:path'; -import { Collection } from '@discordjs/collection'; import type { DeclarationReflection } from 'typedoc'; import { DocumentedConstructor } from './constructor.js'; import { DocumentedEvent } from './event.js'; @@ -12,11 +11,11 @@ import type { Class, Config } from '../interfaces/index.js'; import { parseType } from '../util/parseType.js'; export class DocumentedClass extends DocumentedItem { - public readonly props = new Collection(); + public readonly props = new Map(); - public readonly methods = new Collection(); + public readonly methods = new Map(); - public readonly events = new Collection(); + public readonly events = new Map(); public construct: DocumentedConstructor | null = null; @@ -120,9 +119,9 @@ export class DocumentedClass extends DocumentedItem p.serialize()) : undefined, - methods: this.methods.size ? this.methods.map((m) => m.serialize()) : undefined, - events: this.events.size ? this.events.map((e) => e.serialize()) : undefined, + props: this.props.size ? [...this.props.values()].map((p) => p.serialize()) : undefined, + methods: this.methods.size ? [...this.methods.values()].map((m) => m.serialize()) : undefined, + events: this.events.size ? [...this.events.values()].map((e) => e.serialize()) : undefined, meta, }; } @@ -138,9 +137,9 @@ export class DocumentedClass extends DocumentedItem p.serialize()) : undefined, - methods: this.methods.size ? this.methods.map((m) => m.serialize()) : undefined, - events: this.events.size ? this.events.map((e) => e.serialize()) : undefined, + props: this.props.size ? [...this.props.values()].map((p) => p.serialize()) : undefined, + methods: this.methods.size ? [...this.methods.values()].map((m) => m.serialize()) : undefined, + events: this.events.size ? [...this.events.values()].map((e) => e.serialize()) : undefined, meta: new DocumentedItemMeta(data.meta, this.config).serialize(), }; } diff --git a/packages/voice/package.json b/packages/voice/package.json index 63920de87..eb7906777 100644 --- a/packages/voice/package.json +++ b/packages/voice/package.json @@ -63,7 +63,6 @@ "@babel/preset-env": "^7.18.10", "@babel/preset-typescript": "^7.18.6", "@discordjs/docgen": "workspace:^", - "@discordjs/scripts": "workspace:^", "@favware/cliff-jumper": "^1.8.6", "@microsoft/api-extractor": "^7.29.2", "@types/jest": "^28.1.6", diff --git a/turbo.json b/turbo.json index abc82c698..d87ba861f 100644 --- a/turbo.json +++ b/turbo.json @@ -1,25 +1,25 @@ { "$schema": "https://turborepo.org/schema.json", - "baseBranch": "origin/main", "pipeline": { "build": { "dependsOn": ["^build"], - "outputs": ["dist/**"] + "outputs": ["**/dist/**"] }, "test": { "dependsOn": ["^build"], - "outputs": ["coverage/**"] + "outputs": ["**/coverage/**"] }, "lint": { "dependsOn": ["^build"], "outputs": [] }, "format": { + "dependsOn": ["^build"], "outputs": [] }, "docs": { "dependsOn": ["^build"], - "outputs": ["docs/docs.json", "docs/docs.api.json"] + "outputs": ["**/docs/docs.json", "**/docs/docs.api.json"] }, "changelog": { "dependsOn": ["^build"], diff --git a/yarn.lock b/yarn.lock index 13efa2ccc..eb4ae410b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1763,7 +1763,7 @@ __metadata: languageName: unknown linkType: soft -"@discordjs/collection@^1.0.1, @discordjs/collection@workspace:^, @discordjs/collection@workspace:packages/collection": +"@discordjs/collection@workspace:^, @discordjs/collection@workspace:packages/collection": version: 0.0.0-use.local resolution: "@discordjs/collection@workspace:packages/collection" dependencies: @@ -1802,6 +1802,7 @@ __metadata: husky: ^8.0.1 is-ci: ^3.0.1 lint-staged: ^13.0.3 + turbo: ^1.4.3 typescript: ^4.7.4 languageName: unknown linkType: soft @@ -1810,7 +1811,6 @@ __metadata: version: 0.0.0-use.local resolution: "@discordjs/docgen@workspace:packages/docgen" dependencies: - "@discordjs/collection": ^1.0.1 "@favware/cliff-jumper": ^1.8.6 "@types/jsdoc-to-markdown": ^7.0.3 "@types/node": ^16.11.47 @@ -1918,7 +1918,7 @@ __metadata: languageName: unknown linkType: soft -"@discordjs/scripts@workspace:^, @discordjs/scripts@workspace:packages/scripts": +"@discordjs/scripts@workspace:packages/scripts": version: 0.0.0-use.local resolution: "@discordjs/scripts@workspace:packages/scripts" dependencies: @@ -1949,7 +1949,6 @@ __metadata: "@babel/preset-env": ^7.18.10 "@babel/preset-typescript": ^7.18.6 "@discordjs/docgen": "workspace:^" - "@discordjs/scripts": "workspace:^" "@favware/cliff-jumper": ^1.8.6 "@microsoft/api-extractor": ^7.29.2 "@types/jest": ^28.1.6 @@ -3555,9 +3554,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12": - version: 18.7.3 - resolution: "@types/node@npm:18.7.3" - checksum: f51ed436a112235ac068d739b4823090a37b869cc186b64dd5c250dd285139c286990fcbeff2fb3ecba5d605fa885de4275247d332e5b96eafdfbb1da62e3ced + version: 18.7.4 + resolution: "@types/node@npm:18.7.4" + checksum: 051d2147e4d8129fceb63ee9384259b2f224dbc4e4b0c46d96a6b61cbaad4e3fe4060950e7f4fc3d5692b1e6ea47e68ad03b61155754bfa169593747cfe3f8f4 languageName: node linkType: hard @@ -5227,9 +5226,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001332, caniuse-lite@npm:^1.0.30001370": - version: 1.0.30001375 - resolution: "caniuse-lite@npm:1.0.30001375" - checksum: 6ed9cf7a3f80f5880cb021105864b869dddfdda8490559aa623e77feeca5ce8958a3b7c1cf37322e519176dcb488c99e6358b8c2de2aa4a0e08846ac122c4e75 + version: 1.0.30001376 + resolution: "caniuse-lite@npm:1.0.30001376" + checksum: bbb9e8f6d7430b3af8e03e03728637eb765feb6d591612b178f8e416db9098690fdefda00d741f21dc5297bc9aead51f4059769f3d19b15c2447eb818f993ce5 languageName: node linkType: hard @@ -6191,12 +6190,12 @@ __metadata: linkType: hard "css-tree@npm:^2.1.0": - version: 2.2.0 - resolution: "css-tree@npm:2.2.0" + version: 2.2.1 + resolution: "css-tree@npm:2.2.1" dependencies: mdn-data: 2.0.28 source-map-js: ^1.0.1 - checksum: 1baa428a9f4cfe66e8a68319b77c1e01ab500f85c299598306330e9cecd2cf59fdea0981f59cd5a9c3a330f243e18de5cbd60f939c702c09244fe08ee970e6b9 + checksum: b94aa8cc2f09e6f66c91548411fcf74badcbad3e150345074715012d16333ce573596ff5dfca03c2a87edf1924716db765120f94247e919d72753628ba3aba27 languageName: node linkType: hard @@ -13448,8 +13447,8 @@ __metadata: linkType: hard "rollup-plugin-esbuild@npm:^4.9.1": - version: 4.9.2 - resolution: "rollup-plugin-esbuild@npm:4.9.2" + version: 4.9.3 + resolution: "rollup-plugin-esbuild@npm:4.9.3" dependencies: "@rollup/pluginutils": ^4.1.1 debug: ^4.3.3 @@ -13459,7 +13458,7 @@ __metadata: peerDependencies: esbuild: ">=0.10.1" rollup: ^1.20.0 || ^2.0.0 - checksum: a3c7e65a3a8f5ff64b422524a6b3f6b40d272b74617f7401e5623ecc7a671ce549750c2d77f401b6294e75956b3299fa3c71921fb376c20ae196e990d969106f + checksum: 7555541bf0fb94dd57ae957e73856f28d4542ae679a0125891be7f0638757f84470c2c2ddf7360d29f5aa3eea55351958a293f6fcf0601ec5382a5986cbfb9b8 languageName: node linkType: hard @@ -14961,6 +14960,157 @@ __metadata: languageName: node linkType: hard +"turbo-android-arm64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-android-arm64@npm:1.4.3" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"turbo-darwin-64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-darwin-64@npm:1.4.3" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"turbo-darwin-arm64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-darwin-arm64@npm:1.4.3" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"turbo-freebsd-64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-freebsd-64@npm:1.4.3" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"turbo-freebsd-arm64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-freebsd-arm64@npm:1.4.3" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"turbo-linux-32@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-linux-32@npm:1.4.3" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"turbo-linux-64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-linux-64@npm:1.4.3" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"turbo-linux-arm64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-linux-arm64@npm:1.4.3" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"turbo-linux-arm@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-linux-arm@npm:1.4.3" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"turbo-linux-mips64le@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-linux-mips64le@npm:1.4.3" + conditions: os=linux & cpu=mipsel + languageName: node + linkType: hard + +"turbo-linux-ppc64le@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-linux-ppc64le@npm:1.4.3" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"turbo-windows-32@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-windows-32@npm:1.4.3" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"turbo-windows-64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-windows-64@npm:1.4.3" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"turbo-windows-arm64@npm:1.4.3": + version: 1.4.3 + resolution: "turbo-windows-arm64@npm:1.4.3" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"turbo@npm:^1.4.3": + version: 1.4.3 + resolution: "turbo@npm:1.4.3" + dependencies: + turbo-android-arm64: 1.4.3 + turbo-darwin-64: 1.4.3 + turbo-darwin-arm64: 1.4.3 + turbo-freebsd-64: 1.4.3 + turbo-freebsd-arm64: 1.4.3 + turbo-linux-32: 1.4.3 + turbo-linux-64: 1.4.3 + turbo-linux-arm: 1.4.3 + turbo-linux-arm64: 1.4.3 + turbo-linux-mips64le: 1.4.3 + turbo-linux-ppc64le: 1.4.3 + turbo-windows-32: 1.4.3 + turbo-windows-64: 1.4.3 + turbo-windows-arm64: 1.4.3 + dependenciesMeta: + turbo-android-arm64: + optional: true + turbo-darwin-64: + optional: true + turbo-darwin-arm64: + optional: true + turbo-freebsd-64: + optional: true + turbo-freebsd-arm64: + optional: true + turbo-linux-32: + optional: true + turbo-linux-64: + optional: true + turbo-linux-arm: + optional: true + turbo-linux-arm64: + optional: true + turbo-linux-mips64le: + optional: true + turbo-linux-ppc64le: + optional: true + turbo-windows-32: + optional: true + turbo-windows-64: + optional: true + turbo-windows-arm64: + optional: true + bin: + turbo: bin/turbo + checksum: ed4f327bf4bdd152a0842c707c4b7f614c360d610fb079dcf351b2d83490883e62e148f30f46c20b963a2c58286461ce12d7fb284f8526801cc25a97a160177f + languageName: node + linkType: hard + "tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": version: 0.14.5 resolution: "tweetnacl@npm:0.14.5" @@ -15086,12 +15236,12 @@ __metadata: linkType: hard "typescript@npm:next": - version: 4.9.0-dev.20220814 - resolution: "typescript@npm:4.9.0-dev.20220814" + version: 4.9.0-dev.20220815 + resolution: "typescript@npm:4.9.0-dev.20220815" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 0045cbdf6921711af216da120df749ebad0fa30957c70e7cb877f7e5cd938ba9244e14624ec0d938cf3825ec83087e3b93b7ff1fe57ccaeeefd3f36c07920319 + checksum: 516c53fbde4610a2148a67930dd7a242c31016c0dd3aa7eb2a9184ea9fe7fe50c22434eb8598026e0e2e0523c9ae7bf3b1fbd2392826d03bd227f51f2b52cbe7 languageName: node linkType: hard @@ -15116,12 +15266,12 @@ __metadata: linkType: hard "typescript@patch:typescript@next#~builtin": - version: 4.9.0-dev.20220814 - resolution: "typescript@patch:typescript@npm%3A4.9.0-dev.20220814#~builtin::version=4.9.0-dev.20220814&hash=7ad353" + version: 4.9.0-dev.20220815 + resolution: "typescript@patch:typescript@npm%3A4.9.0-dev.20220815#~builtin::version=4.9.0-dev.20220815&hash=7ad353" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 52ec2fac0edf92b362c8f52d27218dd93844779b561cb63483381680dff999127816c4471313f8e9c010db5df742186f749dcb1e128dea44d2073bf1e9dba290 + checksum: a4ae7e5cce790c28cad9909d5822030a1f8a94cbda01d88a43065a8a0d5f25da1b59870097403b4363ebc8a6eae2fcbe15c864a9f288d4ed804c58bf7ed37890 languageName: node linkType: hard