Migrate gitlab-ui into design.gitlab.com repository
- @markrian will implement this phase.
- Subsequent phases depend on this.
In order to minimise disruption to development, the transition from gitlab-org/gitlab-ui> to a monorepo needs to happen quickly. We don't want to block changes on gitlab-org/gitlab-ui> for long, and we also don't want to have to sync changes from gitlab-org/gitlab-ui> to gitlab-org/gitlab-services/design.gitlab.com> repeatedly. Here's how I see this working:
- Prepare a script and/or series of patches that performs the merging of the repositories. How this script/series of patches works will be informed by Phase 1.
- Once confidence in the approach is high (i.e., after reviews and test runs of it are acceptable), announce widely a "merge day", during which:
- The gitlab-org/gitlab-ui> repository will be locked and marked for archival. This means no new merge requests, issues, or repo pushes.
- The script/series of patches will be applied to merge gitlab-org/gitlab-ui> into gitlab-org/gitlab-services/design.gitlab.com>
- The announcement would also include information about changes to workflows, including:
-
gitlab-org/gitlab-services/design.gitlab.com> being the place to go for everything to do with
@gitab/ui
, meaning issues, merge requests, documentation, features, etc. - Semantic commits being replaced with
changesets
-
gitlab-org/gitlab-services/design.gitlab.com> being the place to go for everything to do with
Once that's done, we'll still have working @gitlab/ui
releases being created by the gitlab-org/gitlab-services/design.gitlab.com> repository.
Post-merge things to address
-
Post a comment in open GitLab UI merge requests with migration information, and close the merge requests. -
Update gitlab-org/gitlab-ui>'s default merge request and issue templates to point to this project instead. -
Ensure all labels defined in gitlab-org/gitlab-ui> are defined in gitlab-org/gitlab-services/design.gitlab.com> -
Move open issues to gitlab-org/gitlab-services/design.gitlab.com> -
Update gitlab-org/gitlab-ui>'s Pages site to redirect to new location, or add landing page pointing to new location, or add common docs page block that points to the new location. -
Add documentation about using changesets
/publishing releases. !4502 (merged) -
Updated CODEOWNERS. Perhaps just need to set @gitlab-org/maintainers/gitlab-ui
? !4504 (merged) -
Ensure all members of gitlab-org/gitlab-ui> are members of gitlab-org/gitlab-services/design.gitlab.com>, with the same roles? Perhaps just need to invite @gitlab-org/maintainers/gitlab-ui
? -
Fix integration branch creation (https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/jobs/10202019937) -
Create Releases when publishing npm
packages, so that Renovate updates of@gitlab/ui
include the changelog. !4522 (merged) Edit: it turns out this wasn't enough. -
More exploration into getting changelogs to show up in Renovate MRs. gitlab-org/frontend/renovate-gitlab-bot!1176 (merged) -
Fix ui:update_screenshots
job !4524 (merged) -
Add publish dry run job !4529 (merged) -
Update Renovate bot configuration (undo disabling added in gitlab-org/frontend/renovate-gitlab-bot!1153 (merged)) gitlab-org/frontend/renovate-gitlab-bot!1172 (merged) -
Use proper workspaces !4493 (merged) -
Update design.gitlab.com's Storybook iframes to point to new location. (This is already done, but the default location should probably be updated.) !4501 (merged) -
Update reviewer suggestions in Dangerfile !4519 (comment 2539219844) !4560 (merged) -
Update references to gitlab-org/gitlab-ui> in gitlab-org/gitlab-services/design.gitlab.com> to point to package subdirectory instead. !4530 (merged) -
Hoist ESlint (see !4528 (comment 2546048862)) !4718 (merged) -
Hoist Prettier (see !4528 (comment 2546048862)) !4715 (merged) -
Hoist markdown-lint !4728 (merged) -
Hoist yarn-deduplicate !4729 (merged) -
Hoist lefthook !4731 (merged) -
Hoist stylelint !4731 (merged) -
Fix the GDK's gitlab_ui.enabled
configuration gitlab-org/gitlab-development-kit!4911 (merged) -
UpdateNot necessary, it's fine as-is.team.yml
projects definitions (e.g., migrategitlab-ui: maintainer frontend
todesign.gitlab.com: maintainer frontend
). -
Update Reviewer Roulette: removeNot necessary, it's fine as-is.gitlab-ui
project, and check that reviewers are valid.
Edited by Mark Florian