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.
This pull request introduces a new concurrency flag to the Beachball package, updates dependencies, and refactors the
publish
command tests to support concurrency. Additionally, it includes new tests for thegetPackageGraph
function.New Feature:
Dependency Updates:
p-graph
dependency for running publishing command and hooks in parallel but in order of dependency graph.New Tests:
getPackageGraph
ingetPackageGraph.test.ts
to validate package sorting and handling of dependencies.publish
command to validate all existing scenarios for both concurrency being 1 and greater.Refactoring:
callHook
function to take in concurrency as a parameter and made it so that if concurrency is 1 we will use the old behavior (doing a for loop for each package) and if concurrency is greater then 1, will be usinggetPackageGraph
function to create a p-graph and run the hook in parallel.toposortPackages
function to extract the logic of creating the dependencyGraph so that it can be reused betweentoposortPackages
andgetPackageGraph
functions.publishToRegistry
function to usegetPackageGraph
function to create a p-graph and run the publish command in parallel when concurrency is greater than 1 and default to old behavior when concurrency is 1