Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Placeholder for version 4 of config.yml #331

Open
31 tasks
jimisola opened this issue Feb 5, 2022 · 4 comments
Open
31 tasks

Placeholder for version 4 of config.yml #331

jimisola opened this issue Feb 5, 2022 · 4 comments
Labels
📐design 📍roadmap Application development *planned* by the authors

Comments

@jimisola
Copy link
Collaborator

jimisola commented Feb 5, 2022

Work has started with the syntax for version 3 4 of config.yml.

This issue will be used a placeholder to link with other issues and feature request as well a providing a place for discussion (in addition to slack).

The current draft version of Configuration Syntax v4 can be found here in our wiki.

Requirements:

  • YAML 1.2
  • highlight use of node anchors
  • jinja2 templates
    • built-in filters
    • standard custom filter ENV for environment variables
    • any other custom filter?
    • what’s needed to handle different input data formats for rendering (json, yaml, xml etc)?
  • work with document separator “---”
  • work with multiple files, e.g. gitlabform file1 file2 file3
  • prepare to minor adaptation of format when GitLab merges groups and projects into namespaces
    • can we be backwards-compatible with or will the API change so that there will have to be two versions of gitlabform (pre- [ ] and post-namespaces)?
  • work with personal projects
  • inheritance:
    • do-not-allow-inherit-overwrite
    • do-not-inherit

Questions:

  • Shall we plan for use of python-gitlab?
  • Shall we plan for update, add and delete?
    • Currently gitlabform support update with a exception (add/delete) for keys and variables
    • with python-gitlab it should be easier to support add and delete
  • How should inheritance be combined with group/project members and “enforce”?
  • GitLab mixes update and edit? Shall we use their mix or just settle for one of them? (follow-up: @jimisola )
  • members: both project and groups?
  • tags: belongs to project? Yes.
  • what terminology to use for variables vs secret_variables vs cicd_variables: variables (@gdubicki this is already in v3 right?)
  • keys/names of groups and projects
  • Services API → Integrations API: (@gdubicki this is already in v3 right?)

Relevant links:

  • Idea for custom YAML resolver (pyyaml): here
@gdubicki gdubicki added 📍roadmap Application development *planned* by the authors 📐design labels Feb 6, 2022
@gdubicki gdubicki pinned this issue Mar 8, 2022
@amimas
Copy link
Collaborator

amimas commented May 11, 2022

Since inherit flag is implemented through #326 , maybe skip flag can be deprecated now and be removed in v3 v4? Or, is that still needed?

@gdubicki gdubicki mentioned this issue Jun 25, 2022
Merged
@gdubicki gdubicki changed the title Placeholder for version 3 of config.yml Placeholder for version 4 of config.yml Jun 25, 2022
@jimisola
Copy link
Collaborator Author

jimisola commented Jun 25, 2022

I've had some meetings with GitLab through work and I expressed then and in issues that it is important that they keep their APIs up to date with new functionality. Otherwise, that functionality isn't really useful since it's impractical (doesn't scale) to configure groups/projects manually.

I was informed that one issue they have is to manage two APIs (REST and GraphQL). Apparently, they working on some middle layer to be able make it easier. I'll check up on it again.

We also know that GitLab have some major changes coming up ahead e.g. with the introduction of work items (expansion of issues) and Namespaces (merge of projects/groups).

So, the question remains if for v4 we should continue with @gdubicki current solution which we then can assume we'll have to make an effort to keep up to date with all the coming changes or if we should make an effort to switch to python-gitlab in order to not spend time on an own API library?

@lfvjimisola
Copy link

Regarding "include" and "exclude" see comment and comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📐design 📍roadmap Application development *planned* by the authors
Projects
None yet
Development

No branches or pull requests

4 participants