docs: add comprehensive PUBLISH.md documentation #210
Closed
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.
docs: add comprehensive PUBLISH.md documentation
Summary
This PR adds comprehensive documentation for the multi-version publishing workflow in the pgsql-parser monorepo. The documentation covers the complex publishing system that supports PostgreSQL versions 13-17, each with their own npm tags (pg13, pg14, pg15, pg16, pg17) and version-specific packages.
Key areas documented:
yarn && yarn buildworkflowconfig/versions.jsonprepare-versions.tsscriptgenerate-version-packages.tsThe documentation is designed to provide a clear, actionable path for publishing packages in this complex multi-version environment.
Review & Testing Checklist for Human
config/versions.json,scripts/prepare-versions.ts, etc.) exist at the documented locationsRecommended test plan: Create a test branch, follow the "Complete Publishing Procedure" section step-by-step, and verify that packages can be successfully prepared and built (stop before actual npm publish to avoid accidental releases).
Diagram
%%{ init : { "theme" : "default" }}%% flowchart TD ConfigVersions["config/versions.json<br/>(version mappings)"]:::context PublishMD["PUBLISH.md<br/>(new documentation)"]:::major-edit ParserScripts["packages/parser/scripts/<br/>prepare-versions.ts"]:::context DeparserScripts["packages/deparser/scripts/<br/>generate-version-packages.ts"]:::context DeparserConfig["packages/deparser/config/<br/>deparser-versions.json"]:::context LernaConfig["lerna.json<br/>(monorepo config)"]:::context RootPackage["package.json<br/>(root scripts)"]:::context ConfigVersions --> PublishMD ParserScripts --> PublishMD DeparserScripts --> PublishMD DeparserConfig --> PublishMD LernaConfig --> PublishMD RootPackage --> PublishMD PublishMD -.-> Users["Developers following<br/>publishing procedures"] subgraph Legend L1["Major Edit"]:::major-edit L2["Minor Edit"]:::minor-edit L3["Context/No Edit"]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFFNotes
This is a documentation-only PR that creates a single new file. The main risk is accuracy - while I thoroughly examined the existing scripts and configuration files to understand the publishing workflow, I did not execute the actual publishing process to verify the documented procedures work end-to-end. Human testing of the documented workflow is essential to catch any inaccuracies or missing steps.
Link to Devin run: https://app.devin.ai/sessions/6bb71417e0104b5189ec3125c0f503a9
Requested by: Dan Lynch (@pyramation)