Intel CVE-bin-tool
Published: 2023-11-19 18:42:31

I wanted to add this as part of my release 0.3 because this was the largest project I had to work on, and I dealt with multiple formatting issue before I was able to properly configure the module to includes docstring in it's proper format and style required.

It may not seemed a lot but let me explain

The issue [docs: add missing docstrings to version_scanner.py ](https://github.com/intel/cve-bin-tool/issues/3378) was requested to properly maintain and understand what the module and its function doess. The reason why I wanted to include this because while it did not needed me to enhance or add a code but it required me to fully understand the module and function it self which took me a while. I know it might not seem much but to try to learn somethign you have now knowledge about is fairly challenging by it self, on top of that I had to traverse and figure out how other module is connected specially *import* is a necessity for this module.

I mean just take a look at the imports, I had to go through each function and try to understand what it does.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i0rqdsebykrcuvl1exm0.png)

The Module version_scanner.py "Scans files for CVEs using CVE checkers" if you are not familliar CVE as The Common Vulnerabilities and Exposures (CVE) which is a system the identifies all vulnerabilities and threats related to the security of information of the systems. This module basically check all the threats that could potentially arise through the program and I have to try to learn and understand each function missing with docstrings.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r1fp6cjetwmmghvsb53k.png)

I was lucky enough to fully understand and grasp what each function does and was able to add the required doc string for each function.

Before lab 7 came to place where we learned python black and lint I had to implement it and format this module which luckily wasn't that hard of a task. 

A sample docstring I had to include was 
>"""process a Set of checker objects, run them on file lines, and find the information about the detected products and versions. It uses logging to provide debug and error information along the way. """

Wordy I know but that was needed to ensure that I detail it completely and correctly

I had to close my initital PR [Updated doc strings to version_scanner.py #3417](https://github.com/intel/cve-bin-tool/pull/3417) and became troublesome when it was failing the tests they set up so I had to re-do the entire module again because of this and submitted another PR [updating docstring with formatted with black. requesting new PR for version_scanner.py #3429](https://github.com/intel/cve-bin-tool/pull/3429). while it may seemed an easy task trying to contribute to a large scale project and knowing that somehow you need to give a little bit extra to your best was a bit nerver racking. it was because cve-bin-tool by intel is very widly used by a lot of people as of today which is Nov 12,2023 there has been over 2,000 commits and the last commit was done 3 days ago. I thought that maybe the reason it wasnt properly passing was because there was multiple merge commits that they did prior to me pushing my commits and I never properly synced my file, but I am not sure if that was even the case.

This work made me reflect on possible real life exprience, where everything you do will not go always as planned specially when working with projects and with others you have to make sure that the file you have is basically and always uptodate. while it doesn't need to be a coding enhancement or new feature addition to contribute working on projects and adding as simple as a docstring can be a challenge in of it self, where you have to try to learn and understand the module you are working on and ensure that you follow the requirements they asked for to be able to complete the requested task.