microsoft / mu_devops

Project Mu Developer Operations
https://microsoft.github.io/mu/
Other
26 stars 22 forks source link

Increase Extensibility in TagGenerator.py #294

Closed makubacki closed 6 months ago

makubacki commented 8 months ago

Background

Scripts/TagGenerator/TagGenerator.py contains code to automatically tag a commit with a release version tag for ADO use cases where GitHub Actions don't apply.

The script currently specifies a single semantic versioning format that works for Mu repos:

Other consumers have expressed interest in the script but need to use a custom version format. In this particular case:

An original Project Mu versioning goal was to drive consistent versioning through a well-established standard like semantic versioning. Given a deviation is needed due to conflicting requirements for this consumer, the issue proposes changes to handle both formats.

It is still a goal in this proposal to make the versioning information completely visible in mu_devops without depending on ambiguous gaps filled in by code elsewhere. This keeps opinionated consistency in place, makes the code here more useful to a broader set of users, and makes overall maintenance of the code much easier in a single upstream location.

Details

I'd prefer to continue to capture the full context of the version in a mu_devops script. Ideally, different formats would be abstracted behind a class. The class would provide information needed to make common decisions irrespective of the underlying format details. Then we don't need half-baked information here connected with other scripts elsewhere, all of the version information can be maintained behind a single abstracted version API. This also gives the benefit that other Python code using the class wouldn't need to change significantly if the underlying version format changed in the future.

Module level functions like is_breaking_change(), is_security_change(), is_new_feature(), generate_notes(), etc. would become class methods and return consistent information regardless of how they return the format for the underlying version.

In the end, this would mean:


This issue is in reference to tracking a change discussed in #293.

github-actions[bot] commented 6 months ago

This issue has been automatically marked as stale because it has not had activity in 45 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions.

github-actions[bot] commented 6 months ago

This issue has been automatically been closed because it did not have any activity in 45 days and no follow up within 7 days after being marked stale. Thank you for your contributions.