Skip to content
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

[Umbrella] Brave-UI: Split cross-functional publishing #2335

Closed
6 of 7 tasks
petemill opened this issue Dec 3, 2018 · 4 comments
Closed
6 of 7 tasks

[Umbrella] Brave-UI: Split cross-functional publishing #2335

petemill opened this issue Dec 3, 2018 · 4 comments

Comments

@petemill
Copy link
Member

petemill commented Dec 3, 2018

Brave-UI contains WebUI implementations across features, not just core components. It also has a single brave-core release branch targets.

Problem

Whilst we have brave-core specific release branches in brave-ui relating to brave-core this is still a lot of overhead that slows development down. It also creates a dependency timing issue whereby features are merged to master (or other release branch) in brave-ui but need some corresponding change in brave-core. It can get pretty complex, when we can avoid all that thought and time completely with one of the solutions below.

Aims

  • Feature A can have some items in brave-core 58.x branch and other items in brave-core 59.x branch
  • Feature B can have some items in brave-core 58.x branch and other items in brave-core 59.x branch, separately to feature A
  • Brave-ui can have some items in brave-core 58.x branch and other items in brave-core 59.x branch

Nothing UI-related gets merged to brave-core master / branch before it's corresponding brave-core changes are.

Solutions

1

Keep everything in brave-ui github repo, and publish to multiple npm targets, e.g:
@brave/ui
@brave/ui-feature-sync
@brave/ui-feature-rewards-panel
@brave-ui-feature-rewards-settings

Questions

  • How do we do branching for each feature separately?
  • Uplift process for feature A and B?
    Not really that relevant anymore now that brave-ui features are not published to npm

2

Keep brave-ui as core components, move features in to feature repos. In other words, brave-core related features go in to brave-core repo.

  • brave-core/components/web-ui
    • features (for now, but probably folded in to actual components)
  • brave-core/components/web-ui
    • stories
  • brave-core gets npm run web-ui-storybook

Tracking

@petemill petemill changed the title Split cross-functional publishing Brave-UI: Split cross-functional publishing Dec 3, 2018
@NejcZdovc NejcZdovc added this to the 1.x Backlog milestone Dec 5, 2018
@petemill
Copy link
Member Author

What is blocking us put the actual brave-core specific webui in to it?

Primary goals

  • Some kind of hot-reloading experience (inside the browser or inside a separate local website)

Secondary goals

  • Develop UI without building the browser (even with hot-reloading)
  • Some kind of storybook deployment to show other teams UI on a website instead of having to run the internal pages in a browser build

All the goals seem to be solved with just adding a storybook to brave-core. The one disadvantage being that for that to work we would still need a separate layer that mocks / provides the chrome.* internal APIs (and any other data / actions). But that is what we do anyway whilst also adding the complexity of it being in a whole separate repo with cross-feature contamination too.

@petemill
Copy link
Member Author

Updated description for up to date problem description and aims

@szaimen
Copy link

szaimen commented Sep 29, 2019

Any updates here?

@cezaraugusto
Copy link
Contributor

Since #5198 is now in master, I'm happy to announce that we hit the goal of moving feature-specific components to brave-core. Closing this.

@bbondy bbondy added this to the Closed / Invalid milestone Jun 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants