chore: add monorepo documentation, workspace validation, and CI setup - #354
Closed
zinodict121 wants to merge 1 commit into
Closed
chore: add monorepo documentation, workspace validation, and CI setup#354zinodict121 wants to merge 1 commit into
zinodict121 wants to merge 1 commit into
Conversation
Contributor
|
This PR has a workflow run awaiting approval, but it changes files inside Please review this PR manually before approving the workflow run. This is a safety measure because workflow changes can affect what runs with repository permissions. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #340
Overview
This pull request introduces comprehensive monorepo documentation, workspace validation tooling, and a GitHub Actions CI workflow for the
GuildPassmonorepo. The changes are based on an active inspection of the workspace, ensuring that the documentation precisely reflects reality and that the CI pipeline executes flawlessly.What was added/changed:
MONOREPO.md: Outlines the workspace structure (4 apps, 5 packages), the topological build order, and the essential, verified CLI commands.ARCHITECTURE.md: Provides a Mermaid dependency graph of the internal packages, confirming the absence of circular dependencies.TROUBLESHOOTING.md: Captures edge-case warnings encountered during install and build.scripts/validate-workspace.js: An ESM script added to enforce basic structural invariants (no circular dependencies, required fields, and correcttsconfiginheritance). Accessible viapnpm validate:workspace..github/workflows/monorepo-ci.yml: A complete CI pipeline usingpnpmand caching to run the build, validation, typechecks, and linting.@guildpass/metricsTypecheck Fix: Added atsconfig.jsonand build step to the metrics package, and fixed its path aliasing inapps/dashboard/tsconfig.json. This definitively resolves therootDir(TS6059) typecheck isolation error that previously causedpnpm typecheckto fail.Discrepancies & Notes
While auditing the workspace, a few discrepancies and known warnings were documented:
The
@guildpass/discord-botapp depends on@guildpass/integration-clientusing a relative file protocol (file:../../packages/integration-client) rather than the workspace protocol (workspace:*). I left this intact to avoid unintended side effects, but it is documented inARCHITECTURE.md.pnpm install):When running a fresh
pnpm install, a warning (ENOENT... .bin/guildpass-env-check) occurs because@guildpass/envis not yet built. This is safe to ignore and is documented inTROUBLESHOOTING.md.pnpm lintyields warnings/errors in@guildpass/integration-clientmainly due to strictno-undefrules not recognizing Node 18'sResponseglobal. This is documented, and the CIlintstep is configured tocontinue-on-errorrather than failing the pipeline.pnpm -r buildemits a deprecation warning regardingsiteConfig.onBrokenMarkdownLinksinapps/docs. It is safely documented.How to Test
Reviewers can pull this branch and run the exact CI sequence locally from a clean state to verify: