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
npmpackages, so that Renovate updates of@gitlab/uiinclude 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_screenshotsjob !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.enabledconfiguration gitlab-org/gitlab-development-kit!4911 (merged) -
UpdateNot necessary, it's fine as-is.team.ymlprojects definitions (e.g., migrategitlab-ui: maintainer frontendtodesign.gitlab.com: maintainer frontend). -
Update Reviewer Roulette: removeNot necessary, it's fine as-is.gitlab-uiproject, and check that reviewers are valid.
Edited by Mark Florian