@@ -642,25 +642,32 @@ export class PublishUtilities {
642
642
dependencies [ change . packageName ] &&
643
643
! PublishUtilities . _isCyclicDependency ( allPackages , parentPackageName , change . packageName )
644
644
) {
645
- const requiredVersion : string = new DependencySpecifier (
645
+ const requiredVersion : DependencySpecifier = new DependencySpecifier (
646
646
change . packageName ,
647
647
dependencies [ change . packageName ]
648
- ) . versionSpecifier ;
648
+ ) ;
649
+ const isAnyWorkspaceVersion : boolean =
650
+ requiredVersion . specifierType === DependencySpecifierType . Workspace &&
651
+ requiredVersion . versionSpecifier === '*' ;
649
652
const alwaysUpdate : boolean =
650
- ! ! prereleaseToken && prereleaseToken . hasValue && ! allChanges . hasOwnProperty ( parentPackageName ) ;
653
+ ( ! ! prereleaseToken && prereleaseToken . hasValue && ! allChanges . hasOwnProperty ( parentPackageName ) ) ||
654
+ isAnyWorkspaceVersion ;
651
655
652
656
// If the version range exists and has not yet been updated to this version, update it.
653
- if ( requiredVersion !== change . newRangeDependency || alwaysUpdate ) {
657
+ if ( requiredVersion . versionSpecifier !== change . newRangeDependency || alwaysUpdate ) {
654
658
let changeType : ChangeType ;
655
659
// Propagate hotfix changes to dependencies
656
660
if ( change . changeType === ChangeType. hotfix ) {
657
661
changeType = ChangeType . hotfix ;
658
662
} else {
659
663
// Either it already satisfies the new version, or doesn't.
660
664
// If not, the downstream dep needs to be republished.
661
- changeType = semver . satisfies ( change . newVersion ! , requiredVersion )
662
- ? ChangeType . dependency
663
- : ChangeType . patch ;
665
+ // The downstream dep will also need to be republished if using `workspace:*` as this will publish
666
+ // as the exact version.
667
+ changeType =
668
+ semver . satisfies ( change . newVersion ! , requiredVersion . versionSpecifier ) && ! isAnyWorkspaceVersion
669
+ ? ChangeType . dependency
670
+ : ChangeType . patch ;
664
671
}
665
672
666
673
const hasChanged : boolean = PublishUtilities . _addChange (
0 commit comments