Skip to content

Better package.json version management for 1.0 #793

@spentacular

Description

@spentacular

During the early stages of Player when we were updating more frequently, having a specific version pinned for a dependency/devDependency/peerDependency. But for 1.0 we should better select the versions and ranges a package works with for cases where a user may not have bumped every package or when something else like tools is dependent on a specific player version (@player-ui/types being one of the main ones).

A good example of this is the asset-transform-plugin

At 1.0.0 we should instead structure the dependencies like this:

{
  "dependencies": {
    "@player-ui/partial-match-registry": "^1.0.0",
    "tslib": "^2.6.2"
  },
  "devDependencies": {
	  "@player-ui/types": "^1.0.0"
  },
  "peerDependencies": {
    "@player-ui/player": ">= 1.0.0"
  }
}

Then, if we have any notable additions that are required, we ensure the dependency or peer is updated to the correct range:

{
  "peerDependencies": {
	  "@player-ui/player": ">= 1.0.3"
	}
}

Besides the peers, most of this can be done by making PNPM workspace be this instead:

{
  "dependencies": {
    "@player-ui/partial-match-registry": "workspace:^"
  }
}

Mostly a simple change, but just want to ensure we delegate some of this work to the package managers since they would handle resolution better, even if something like @player-ui/player is the only version bumped.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions