Can you categorise source code into 'quality/maturity' levels?


Hope I’m posting this in the right place. I’m a bit of a beginner with GitLab, so would appreciate any help/advice.

We use GitLab and my organisation has decided that all source code should be categorised into 3 levels of maturity, or code quality.

The first being least mature/lowest quality, and the highest level being the best quality/most mature code.

I’m a bit lost as to the best way to achieve this.

We would want it to be mandatory to categorise all source codebases with one of these ‘quality levels’, regardless of the group or subgroup that the codebase is in.

Also, as I understand it, in our case, a project does not necessarily equate to a source codebase - eg, you could have multiple ‘source codebases’ in 1 project.

Note: that these ‘quality levels’ only need to be applied to source code, NOT code that’s been forked and not yet merged back to source.

Is there even a way to do this?

Measurable is not a maturity level as per the Capability Maturity Model.
Strategy: direction, roadmap and destination. Culture: tolerance for risk, appetite for data driven decision making. Organization: focus on continuous improvement, data privacy, collaboration and trust. Capability: expertise, process and tooling required to deliver on your goals for data and AI

Um, not sure why you’ve brought up CMM. Or why you seem to be talking about what are or are not CMM levels.

My advice would be start with a Wiki page, where you identify the codebases you need to categorise and the category levels, and start assigning categories. Add links to the codebases from the Wiki page as needed. Once you make a first pass at this you’ll have a much better idea at the level of granularity needed for categorisation and the lifecycle of this data. Only then should you start to think about how to start adding tags or labels to your code within the Git tagging framework or within the GitHub labelling framework (or elsewhere). That should hopefully lead you to the point where you may need specific advice on how to tag or label a specific item within GitHub, but you should have a much better idea what you really need by then.

Thank you.

When you say Wiki page I assume you mean a Wiki page for a Project.

When you say ‘assigning categories’, not sure exactly what you mean. Just enter free text ‘category’ names in the Wiki page?

The organisation has already decided what that they require 3 categories, that will be for 3 levels of code quality, or maturity.

I figured out that the best option for this seems to be Project Topics, which allows you to run searches on Topics, that will return all Projects for that Topic, regardless of the Group or Subgroup that a Project is in.

Downside with Topics is that:
• Risk of creation of duplicate Topics, which would make it harder to identify relevant Projects.
• The Topics field for Projects is optional, and we want all Projects to be categorised. Haven’t found a way to make it mandatory to categorise Projects.