Add new setting vrdev.buildTools.extraVroGroups

Abierto
#164 7 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
typescript, vscode
Área
tooling

Línea de trabajo

Comienza con packages/node/vrdt-common/src/maven/PomFile.ts y la referencia a ToolchainVersionRule; después, inspecciona la configuración de la extensión en package.json. Añade la configuración vrdev.buildTools.extraVroGroups y haz que los grupos padre configurados participen en la validación existente; el ejemplo de .vscode/settings.json debería reconocerse para custom-package.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

type:feature-request
Description

We enjoy the usage of the lint rule ToolchainVersionRule in our monorepo, as it also informs colleagues on the team what the recommended BTVA version is for a package.

But for some projects in our monorepo we have a custom pom (which has the actual vmware.pscoe pom as parent) to override some behavior to fit our workflow.
When doing this, we lose the lint rules as they are mapped to specific parent artifactId:groupIds https://github.com/vmware/vrealize-developer-tools/blob/1cc7b69475bdb2966f780ef7a0b79b26614fdd9c/packages/node/vrdt-common/src/maven/PomFile.ts#L10-L19

Would it be possible to add a new extension setting, e.g. vrdev.buildTools.extraVroGroups? Here we could provide an object of key/values, similar to the already existing PomFile.ParentGroupByArtifact.

// package.json
{
  "contributes": {
    // ....
    "configuration": {
      // ....
      "vrdev.buildTools.extraVroGroups": {
        "type": "object",
        "required": false,
        "default": {},
        "description": "Extra Parent groups to consider as valid vRO Projects.",
        "scope": "resource"
      }
    }
  }
}

And then add something like:

    static readonly ParentGroupByArtifact = {
        "base-package": "com.vmware.pscoe.o11n",
        "actions-package": "com.vmware.pscoe.o11n",
        "xml-package": "com.vmware.pscoe.o11n",
        "typescript-project": "com.vmware.pscoe.o11n",
        "typescript-project-all": "com.vmware.pscoe.o11n",
        "vra-package": "com.vmware.pscoe.vra",
        "vra-ng-package": "com.vmware.pscoe.vra-ng",
        "polyglot-project": "com.vmware.pscoe.polyglot",
+       ...vscode.workspace.getConfiguration().get<VrealizeSettings>("vrdev").buildTools.extraVroGroups || {}
    }

So the usage would be:

// .vscode/settings.json
{
    "vrdev.buildTools.defaultVersion": "4.6.0",
    "vrdev.buildTools.extraVroGroups": {
        "custom-package": "com.example.custom-vro"
    }
}
Alternatives

Creating custom lint rules for the XML files. But we'd like to keep it to this extension and ESLint.

Additional Context

I am willing to make a PR for this, but would like the input of the maintainers before starting.

Lenguaje dominante
TypeScript
Estrellas
75
Forks
22
Merge medio
9 d 14 h
PR fusionados (30 d)
3

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de vmware/vrealize-developer-tools

Todos los issues de vmware/vrealize-developer-tools

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.