Change: Incorporate bootstrap-vue into GitLab UIs code base

Change pattern proposal: Incorporate bootstrap-vue into GitLab UIs code base

Old Pattern

We currently use bootstrap-vue as a dependency: https://gitlab.com/gitlab-org/gitlab-ui/-/blob/main/package.json#L61

New Pattern

  1. Start using a fork of bootstrap-vue, this has been prepared here:
  2. Eventually copy the status quo of bootstrap-vue (or our fork) into GitLab UI, we could either consume the source directly or maybe in a first step via `yarn install "file://./src/bootstrap-vue"
  3. Slowly merge the components and documentation to be one.

Advantages of switching patterns

  1. bootstrap-vue seems is unmaintained. The last release happened (almost) a year ago, the last merge into the dev branch on 2021-06-17: https://github.com/bootstrap-vue/bootstrap-vue/commit/45635d1d391263192787e9e0bddc004abe115ace
  2. gitlab-ui is very tied to bootstrap-vue. Inlining it would mean we are able to change the things we need to change more easily and maybe even remove things we do not need (e.g. bootstrap icons)
  3. We can focus on the things that are important to us (e.g. updating to Vue 3/bootstrap 5/etc.)
  4. We only have "one documentation" in the end and don't need to link between the two.

Disadvantages of switching patterns

  1. We need to maintain more code.
  2. "We don't give back to the community"

What is the impact on our existing codebase?

GitLab UI would grow, but not really. The coding styles differ vastly (SFC vs non-SFC)

Reference implementation

TBA

Edited by Lukas Eipert