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

Decompose generator.yml #687

Merged

Conversation

nathanchance
Copy link
Member

generator.yml has become quite long as our matrix has grown, currently coming in at 4458 lines. It is easy to get lost when modifying multiple different trees and LLVM versions.

Decompose generator.yml into individual YAML files for each section. We can dynamically rebuild generator.yml from all of these pieces in utils.get_config_from_generator() and pass that along to yaml.load().

There is currently no functional change. In the future, this will make it easier to add new LLVM versions, as we can copy and modify whole files rather than specific ranges in generator.yml.

generator.yml has become quite long as our matrix has grown, currently
coming in at 4458 lines. It is easy to get lost when modifying multiple
different trees and LLVM versions.

Decompose generator.yml into individual YAML files for each section. We
can dynamically rebuild generator.yml from all of these pieces in
utils.get_config_from_generator() and pass that along to yaml.load().

There is currently no functional change. In the future, this will make
it easier to add new LLVM versions, as we can copy and modify whole
files rather than specific ranges in generator.yml.

Signed-off-by: Nathan Chancellor <nathan@kernel.org>
@JustinStitt
Copy link
Contributor

JustinStitt commented Jan 25, 2024

This is great but also creates a lot of fragmentation. It's nice that you numerically ordered these but perhaps we need a checklist (in a README somewhere) about how to add/remove builds and what stuff to update (even in other repositories).

edit:
something like

# How to add a build
1) ... update all the .yml's located in ...
2) ... update readme in CBL repo
3) ... update readme in website repo

# How to do other stuff
...


# yay more instructions
...

This could be a dropdown in the existing README or a new PROCESS.md or something?

@nathanchance
Copy link
Member Author

Agreed. I think I will try to create some maintainer documentation here soon that goes over the structure of the whole repository, what everything does, and how it all fits together with some guides around common manipulations like adding a new tree or LLVM version. Not sure how soon I will be able to get to it but I will definitely prioritize it over the next couple of weeks.

@JustinStitt
Copy link
Contributor

OK, with #689 proposed I think this is OK to merge.

Copy link
Contributor

@JustinStitt JustinStitt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^^

@nathanchance
Copy link
Member Author

The README will be outdated until #689 is handled but I think that's okay. Merging, thanks for the review!

@nathanchance nathanchance merged commit e64fe80 into ClangBuiltLinux:main Jan 25, 2024
7 checks passed
@nathanchance nathanchance deleted the split-up-generator.yml branch January 25, 2024 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants