Skip to content

[rushjs.io] Document "rush-pnpm" and "rushx" and Rush's folder tree #119

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 25, 2023

Conversation

octogonz
Copy link
Collaborator

This also includes docs for the microsoft/rushstack#3872 feature

…t explains the entire folder tree. Add docs for rush-pnpm and rushx.
Copy link

@stekycz stekycz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for updating the documentation. I just left a few suggestions regarding (probably) forgotten files and directories.

| common/temp/npm-local/... | Based on the **npmVersion** setting, Rush will install NPM in your home directory and create a symlink to it for each repo that requests it. |
| common/temp/npm-tmp/... | Temporary files created by NPM during installation. |
| common/temp/projects/... | Synthetic projects referenced by **common/temp/package.json**. |
| common/temp/rush-recycler/... | Used to speed up recursive deletes. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/temp/telemetry/... directory here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good suggestion!

| common/temp/node_modules/... | The installed packages. This is a plain old `npm install` output, with no symlinks in this tree. |
| common/temp/npm-cache/... | A local NPM cache will be created here. Rush does not use the global NPM cache due to its concurrency problems. |
| common/temp/npm-local/... | Based on the **npmVersion** setting, Rush will install NPM in your home directory and create a symlink to it for each repo that requests it. |
| common/temp/npm-tmp/... | Temporary files created by NPM during installation. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/temp/pnpm-local/... and common/temp/pnpm-store/... as well? What about Yarn specific directories?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added 👍


| Folder path | What it does |
| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |
| common/temp/build-cache/... | Default storage location for Rush's [Build cache](../maintainer/build_cache.md) |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/deploy/... directory here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added it in the Configuration files section

| :-------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| common/autoinstallers/... | [Autoinstaller projects](../maintainer/autoinstallers.md) are created under this folder |
| common/changes/... | Stores change files created by the [rush change](../commands/rush_change.md) command and consumed by the [rush version](../commands/rush_version.md) command. |
| common/git-hooks/... | Rush's [git hook scripts](../maintainer/git_hooks.md) are defined here |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/pnpm-patches/... directory here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

| common/temp/npm-cache/... | A local NPM cache will be created here. Rush does not use the global NPM cache due to its concurrency problems. |
| common/temp/npm-local/... | Based on the **npmVersion** setting, Rush will install NPM in your home directory and create a symlink to it for each repo that requests it. |
| common/temp/npm-tmp/... | Temporary files created by NPM during installation. |
| common/temp/projects/... | Synthetic projects referenced by **common/temp/package.json**. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/temp/patches/... directory here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't aware of this one -- had to read about how rush-pnpm commit-patch works 😆

| [common/config/rush/experiments.json](../configs/experiments_json.md) | Enables experimental features of Rush |
| common/config/rush/npm-shrinkwrap.json | The shrinkwrap file when your package manager is NPM. This is the common shrinkwrap file that applies to all projects in the Rush repo. For more information, see **"What is this "shrinkwrap file"** in the [Everyday commands](../developer/everyday_commands.md) section. |
| common/config/rush/pnpm-lock.yaml | The shrinkwrap file when your package manager is PNPM. |
| common/config/rush/yarn.lock | The shrinkwrap file when your package manager is Yarn. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/config/rush/repo-state.json file here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

| common/config/rush/browser-approved-packages.json | Used by the **approvedPackagesPolicy** setting from [rush.json](../configs/rush_json.md) |
| common/config/rush/nonbrowser-approved-packages.json | Used by the **approvedPackagesPolicy** setting from rush.json |
| [common/config/rush/pnpm-config.json](../configs/pnpm-config_json.md) | Configuration specific to the PNPM package manager |
| [common/config/rush/version-policies.json](../configs/version-policies_json.md) | Defines the [rush version](../commands/rush_version.md) and [rush publish](../commands/rush_publish.md) workflows. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to mention common/config/rush/rush-plugins.json file here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

@octogonz octogonz merged commit 03156bc into main Jan 25, 2023
@octogonz octogonz deleted the octogonz/rush-config-file-docs branch January 25, 2023 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants