Migrate away from vee-validate library, use gitlab-ui validation

Problem

  1. The vee-validate library is unable to support vue/compat based on the differences in VNode behaviors in Vue2 and Vue3.
  2. GlFormFields becomes difficult to understand/read and work with for the complex forms that we have in CustomersDot

Here is a list of places that currently use vee-validate:

  • billing_account/components/billing_account_address_form.vue
  • billing_account/components/billing_account_invite_modal.vue
  • billing_account/components/company_details_form.vue
  • billing_account/components/customer_select.vue
  • billing_account/components/zuora_contact_form.vue
  • components/country_select.vue
  • components/state_select.vue
  • forms/validation/init_validation.js
  • profile/components/company_details.vue
  • profile/components/company_name_field.vue
  • profile/components/company_size_field.vue
  • profile/components/personal_details_form.vue
  • profile/components/tax_field.vue
  • sessions/components/customer_info.vue

Proposal

After Separate validation functionality of gl-form-fi... (gitlab-ui#3187 - moved) has been implemented, we should update our form instances using vee-validate to instead use the validation utilities, so we can keep our declarative approach. An good example of the functionality and reusability we need is the StateSelect.

Result

We should be able to remove vee-validate as a dependency to unblock the vue3-migration.

Edited May 13, 2025 by Michael Lunøe
Assignee Loading
Time tracking Loading