-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Brave-UI versioning strategy #2315
Comments
Short term brave-ui version branchingState
Process for 1 change
Process for next change
Refactored less-overhead solutionImplementations are moved in to repo where they are used - mostly brave-core. |
I'd like to propose this workflow: 1.We init brave-ui with these branches created from master: 2.We update brave-core's package.json on 0.57.x to point to the latest SHA from brave-ui's 0.57.x 3.We update https://github.com/brave/brave-browser/wiki/Brave-Release-Schedule#how-to-do-branch-migrations so that it indicates that when a migration happens we should create a new brave-ui branch accordingly. 4.brave-ui dev always happens to master only, but you uplift to wherever you need with PR approval. Approval happens on brave-core package.json updates in brave-core and not on brave-ui. |
@bbondy I'm just seeing if we can skip the npm publish process and go with something like your approach as the one I outlined is definitely more complex than we would like. But for clarity sake, as discussed here's the workflow that does not require a code / build process change that I outlined in the format that you did: 1.We init brave-ui with these branches created from master: 2.We keep brave-core's package.json on 0.57.x to point to the latest npm release number from brave-ui's 0.57.x: 0.32.1 3.We update https://github.com/brave/brave-browser/wiki/Brave-Release-Schedule#how-to-do-branch-migrations so that it indicates that when a migration happens we should create a new brave-ui branch accordingly. the package.json can be left as-is since it will be locked to a version 4.
|
Let's go with @bbondy 's workflow since with brave/brave-core#1025 we can have direct-to-github and skip the npm versioning complexity entirely. Brave-ui branch names would be |
Keeping open until we get uplift approval to 0.58.x, until we do that we're at risk of non-uplift-approved things from brave-ui getting in :-) |
@petemill brave/brave-core#1025 (comment) Looks like this got merged. Can you close this issue or is there anything else needed? |
Keeping open to remind myself to update the branching process wiki today |
Branching process wiki updated |
Future enhancements at #2335 |
tl;dr. Semver doesn't work well for brave-ui since it contains different projects and is consumed by multiple targets with their own semver strategies.
We've determined some improvements are necessary to how we roll brave-ui updates to various branches of brave-browser (and other Brave projects).
Goals of these improvements:
Right now the main problem is that we use straight-forward semver npm publishing for brave-ui, and use it to publish not only the core design tokens (components, themes, etc) but also the actual UI used by the products (Brave Desktop, Brave Android, etc). Multiple UI areas are worked on at the same time. If it is determined that Beta branch of Brave Desktop needs a fix to a specific UI implementation contained within Brave-UI, then we are often simply rolling the latest version of brave-ui in to that branch, pulling in a number of non-related UI changes.
Therefore the aim is simple:
How?
Some of the ideas we've talked about:
brave-core-58
branch gets published to npm as brave-uix.x.x-brave-core-58x.1
It seems to me that the best approach is going to be use a brave-ui project-based branch for uplifting and use the prerelease tag feature of npm semver strings. But please comment with alternatives or other scenarios that expose issues.
IMO we should also split the implemented features from the core shared components, either putting them in the repo they belong in and then benefit from the versioning of that repo (more preferred), or another repo (less preferred).
Scenario 1
Latest brave-ui master version is 0.10.1, Brave-Core Dev branch (0.58.x) is using 0.9.3, Brave-Core Beta branch is using 0.9.2, and a UI change wants to be uplifted to Brave-Core Dev.
Brave-Core-58x
.Brave-Core-58x
The text was updated successfully, but these errors were encountered: