Gitlab Requirements Management

Recently I’ve been digging around Gitlab, and I noticed a new feature was released to the general public, the Requirements Management.

How is this feature going to help me?

In every programming language and project we have to deal with requirements, in any other way, requirements that you write, requirements that your client want, and so on.

The idea of the requirements is well known, but there hasn’t been a software able to integrate with LabVIEW very well.

Yes, there is Requirements Gateway. I tried to use for a while, but it is not so intuitive, if you have ever tried to use, you know what I mean.

Maybe, this feature is a good idea for converging all other languages and projects within Gitlab Environment.

Is this feature fully available?

No, currently this feature is available for some paid plans in private repositories, buuuut, for public repositories has been available for a few weeks in gitlab.com. I haven’t tried in self hosted installations.

Currently it is a very limited feature, outside being able to add, archive and editing the requirement title, you can’t do anything else, like removing, organizing, replacing the id.

EDIT: apparently in the last update (13.4.4) you are able to include a description with markdown, pictures and everything else.

The plans for this feature are awesome, including linking requirements to issue board and tests results from continuous integration. If you are interested in the future development, here is the link.

https://about.gitlab.com/direction/plan/requirements_management/

LabVIEW Ideas

Ohh, about LabVIEW Ideas, I have some.

Requirements Document

I was thinking about moving requirements from the very known Microsoft Word to some “text” format supported by Gitlab.

My first choice was Markdown, but after some research, apparently markdown lacks standardization among other platforms, creating some “flavors”. For simple text documents, ok, but for more complex documents such as a Requirement Document, it is not an option.

The second choice was then Ascii Doc, apparently, Olivier Jourdan had a very good experience with Antidoc and it renders very well, fast, standardized, with support for pdf export and other formats. So, why not?

Integrating in Continuous Integration

With a simple text document as part of the repository, nothing can stop our imagination.

Using VI Server, we can scan our VIs looking for the requirements tags (the famous [Covers:] from CLA Certification) and match this requirements with the requirement text, resulting in:

  • % of requirements fulfilled
  • Which requirements were fulfilled.

The Continuous Integration for this API was also recently released and I’ve realized some tests with it using the following lines in gitlab-ci.yml:

artifacts: 
  reports: 
    requirements: requirements.json

This JSON is as simple as:

{
	"1":"failed", 
	"2":"passed"
}

No big deal, isn’t it? Here it is a screenshot from the tests:

Next Steps

I’ll probably wait this feature to be more mature to include in our software engineering process, but I don’t doubt it will be soon, considering the speed of the gitlab development community.

In this matter it will be a huge step for us all.

What do you think about this feature? Would you use it? Leave your comments below.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s