-
Notifications
You must be signed in to change notification settings - Fork 669
[rush-lib] Abstract rush publish from npm only and introduce pluggable publish provider
#5619
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
Open
TheLarkInn
wants to merge
32
commits into
main
Choose a base branch
from
feat/rush-publish-v2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,902
−161
Open
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
5dbcf9d
artifacts and example of the claude workflow
TheLarkInn 0683ab2
add atomic workflow plugin to rushstack
TheLarkInn e99ba6d
Untrack research/ directory that was accidentally committed
TheLarkInn 89f3ba6
feat(rush-lib): add publishTarget field to rush.json project schema
TheLarkInn 01c3ee6
feat(rush-lib): add publishTarget to IRushConfigurationProjectJson
TheLarkInn 3cb77df
feat(rush-lib): add publishTargets getter to RushConfigurationProject
TheLarkInn 13dfb42
feat(rush-lib): add publishTarget validation rules
TheLarkInn fba09e0
test(rush-lib): add comprehensive publishTarget validation tests
TheLarkInn f02571f
feat(rush-lib): create IPublishProvider interface and types
TheLarkInn 148068c
feat(rush-lib): export IPublishProvider types from public API
TheLarkInn 381360f
feat(rush-lib): add registerPublishProviderFactory to RushSession
TheLarkInn 895c676
test(rush-lib): add unit tests for publish provider factory registration
TheLarkInn 9cad3b7
feat(rush-lib): create publish.schema.json for config/publish.json
TheLarkInn b5d735d
feat(rush-lib): add IPublishJson interface and riggable config loader
TheLarkInn 619e8c0
test(rush-lib): add unit tests for riggable config/publish.json loading
TheLarkInn 732921c
feat(rush-npm-publish-plugin): create package structure
TheLarkInn 18bc9aa
feat(rush-npm-publish-plugin): implement NpmPublishProvider
TheLarkInn 186aa1b
feat(rush-lib): register rush-npm-publish-plugin as built-in plugin
TheLarkInn e335dca
test(rush-npm-publish-plugin): add unit tests for NpmPublishProvider
TheLarkInn 486acea
feat(rush-lib): add per-project publish config loading to PublishAction
TheLarkInn 1cbf8f7
feat(rush-lib): refactor PublishAction to dispatch via publish providers
TheLarkInn 1d80df2
feat(rush-vscode-publish-plugin): create VSIX publish provider plugin
TheLarkInn aac9cc7
feat(rush-lib): add beforePublish and afterPublish lifecycle hooks
TheLarkInn 6c61a5f
feat(rush): enable VS Code extensions for VSIX publishing
TheLarkInn f3b9c82
test(rush-lib): verify VS Code extension publishTarget configuration
TheLarkInn 98b9c97
test(rush-lib): verify version bump eligibility and publish dispatch …
TheLarkInn 0d2064c
Delete CLAUDE.md
TheLarkInn 47c2319
remove mcp file
TheLarkInn aad8dbe
remove ai artifacts
TheLarkInn 9b994ed
rename fixtures appropriately
TheLarkInn 37c223b
address PR feedback
TheLarkInn 55528d3
implement pack for base publish provider and use in both providers
TheLarkInn File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -135,5 +135,4 @@ playwright-report/ | |
| test-results/ | ||
|
|
||
| # Claude Code local configuration | ||
| .claude/*.local.json | ||
|
|
||
| .claude/*.local.json | ||
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
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. | ||
| // See LICENSE in the project root for license information. | ||
|
|
||
| import { ProjectConfigurationFile, InheritanceType } from '@rushstack/heft-config-file'; | ||
|
|
||
| import publishSchemaJson from '../schemas/publish.schema.json'; | ||
|
|
||
| /** | ||
| * Represents the parsed contents of a project's `config/publish.json` file. | ||
| * @public | ||
| */ | ||
| export interface IPublishJson { | ||
| /** | ||
| * An object whose keys are publish target names (e.g. 'npm', 'vsix') and whose | ||
| * values are provider-specific configuration objects. | ||
| */ | ||
| providers?: Record<string, Record<string, unknown>>; | ||
| } | ||
|
|
||
| /** | ||
| * The `ProjectConfigurationFile` instance for loading `config/publish.json` with | ||
| * rig resolution and property inheritance. | ||
| * | ||
| * @remarks | ||
| * The `providers` property uses custom inheritance: child provider sections are | ||
| * shallow-merged over parent provider sections. This means a project can override | ||
| * specific provider configs from a rig while inheriting others. | ||
| * | ||
| * @internal | ||
| */ | ||
| export const PUBLISH_CONFIGURATION_FILE: ProjectConfigurationFile<IPublishJson> = | ||
| new ProjectConfigurationFile<IPublishJson>({ | ||
| projectRelativeFilePath: 'config/publish.json', | ||
| jsonSchemaObject: publishSchemaJson, | ||
| propertyInheritance: { | ||
| providers: { | ||
| inheritanceType: InheritanceType.custom, | ||
| inheritanceFunction: ( | ||
| child: Record<string, Record<string, unknown>> | undefined, | ||
| parent: Record<string, Record<string, unknown>> | undefined | ||
| ): Record<string, Record<string, unknown>> | undefined => { | ||
| if (!child) { | ||
| return parent; | ||
| } | ||
| if (!parent) { | ||
| return child; | ||
| } | ||
| // Shallow merge: child provider sections override parent provider sections | ||
| return { ...parent, ...child }; | ||
| } | ||
| } | ||
| } | ||
| }); |
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.