Improve Chakra versioning strategy
See original GitHub issueSince @chakra-ui/react
acts as a combined gateway to (nearly) all Chakra UI functionality, its version should reflect that by having all minor
version bumps to its internal dependencies applied to itself as well. This allows the @chakra-ui/react
package to reflect all backwards-compatible functionality changes for the system as a whole.
We’ve currently configured https://github.com/atlassian/changesets to bump internal dependency changes using patch
which is probably the more correct thing to do in that situation since the technically correct thing would result in constant major
version bumps, but in the case of @chakra-ui/react
, we want to instead receive any minor
version bumps.
Examples
In my mind, here’s how versioning should look (assume all packages starting at 1.0.0
):
- Internal dependency adds backwards-compatible functionality
@chakra-ui/hooks
adds a newuseCoolThing
export@chakra-ui/hooks@1.0.0
->@chakra-ui/hooks@1.1.0
(minor
)
@chakra-ui/react@1.0.0
->@chakra-ui/react@1.1.0
(minor
) to reflect the added system-level functionality
- Multiple internal dependencies add backwards-compatible functionality
@chakra-ui/hooks
adds a newuseCoolThing
export@chakra-ui/hooks@1.0.0
->@chakra-ui/hooks@1.1.0
(minor
)
@chakra-ui/accordion
adds a newAccordionCoolestItem
export@chakra-ui/accordion@1.0.0
->@chakra-ui/accordion@1.1.0
(minor
)
@chakra-ui/react@1.0.0
->@chakra-ui/react@1.1.0
(minor
) to reflect the added system-level functionality
- Internal dependency adds bug fix
@chakra-ui/hooks
fixes a bug withuseCoolThing
@chakra-ui/hooks@1.0.0
->@chakra-ui/hooks@1.0.1
(patch
)
@chakra-ui/react@1.0.0
->@chakra-ui/react@1.0.1
(patch
) to reflect the system-level bug fix
- Multiple internal dependencies add bug fixes
@chakra-ui/hooks
fixes a bug withuseCoolThing
@chakra-ui/hooks@1.0.0
->@chakra-ui/hooks@1.0.1
(patch
)
@chakra-ui/accordion
fixes a bug withuseAccordionItem
@chakra-ui/accordion@1.0.0
->@chakra-ui/accordion@1.0.1
(patch
)
@chakra-ui/react@1.0.0
->@chakra-ui/react@1.0.1
(patch
) to reflect the system-level bug fixes
- Internal dependencies add backwards-compatible functionality and bug fixes
@chakra-ui/hooks
fixes a bug withuseCoolThing
@chakra-ui/hooks@1.0.0
->@chakra-ui/hooks@1.0.1
(patch
)
@chakra-ui/accordion
adds a newAccordionCoolestItem
export@chakra-ui/accordion@1.0.0
->@chakra-ui/accordion@1.1.0
(minor
)
@chakra-ui/react@1.0.0
->@chakra-ui/react@1.1.1
(minor
andpatch
) to reflect maximum version bump of all system-level changes (I believe this is the automaticchangesets
behavior, but I need to test that; see https://github.com/atlassian/changesets/blob/master/docs/decisions.md#how-changesets-are-combined for more info)
- New package is published
@chakra-ui/new-component
is created@chakra-ui/new-component@1.0.0
to reflect start of new package
@chakra-ui/react@1.0.0
->@chakra-ui/react@1.1.0
(minor
) to reflect the added system-level functionality
How?
I think we have two possible solutions:
- Include
@chakra-ui/react
in all changeset files matching the version bump of the dependent package. This requires manual effort, but allows us to fully control the process. - Build our own customized release plan. I’m not sure
changesets
supports this yet and need to investigate, but it would allow us to automate this so we don’t have to always include@chakra-ui/react
bumps in our changeset files.
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (7 by maintainers)
Top GitHub Comments
I’m going to close this for now since we don’t have a better solution.
I’d suggest adding this issue description as a guideline for the @chakra-ui/react-team instead. We can do this manually in the meantime till there’s some solution out there that can help.
Thanks.
I’m not sure you’d need to go to 1.1.1 if there was a minor and patch, I think going to 1.1.0 is sufficient.