Skip to content

Combine certain YAML files further #692

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

Merged

Conversation

nathanchance
Copy link
Member

I think tree_schedules should be a part of trees and the chromeos_configs and kasan_configs should be a part of configs. This slims up the number of overall files and puts things that should be updated together in the same file.

These two are tightly coupled, so keep them together in the same file.

Signed-off-by: Nathan Chancellor <[email protected]>
The ChromeOS and KASAN config definitions are tightly coupled to the
main configs file, so keep them together in the same file. If more
config sections need to be added, this makes it quite easy to do so.

Signed-off-by: Nathan Chancellor <[email protected]>
Now that some files have been combined, rename the files to fill the
numeric gaps.

Signed-off-by: Nathan Chancellor <[email protected]>
@JustinStitt
Copy link
Contributor

Taking a look at the repo as a whole, maybe these 000\d.*.yml's shouldn't be in the top-level directory. I need about an extra half rotation of my scroll wheel to get to the CI matrix 😅.

I think it may also be worth combining all the 0009-llvm-\d\d.yml's into a single one. Yeah, it'll be large but I feel like it'd be cleaner. Open to feedback to my feedback, of course.

@nathanchance
Copy link
Member Author

Taking a look at the repo as a whole, maybe these 000\d.*.yml's shouldn't be in the top-level directory. I need about an extra half rotation of my scroll wheel to get to the CI matrix 😅.

Yeah I was just think that as I am writing out documentation. I think I will push a restructuring as part of that pull request.

I think it may also be worth combining all the 0009-llvm-\d\d.yml's into a single one. Yeah, it'll be large but I feel like it'd be cleaner. Open to feedback to my feedback, of course.

Having separate files for each LLVM version in the matrix was the main desire from breaking apart generator.yml. The current scheme will make adding new LLVM versions like for #686 a lot easier.

@JustinStitt
Copy link
Contributor

JustinStitt commented Jan 26, 2024

I'm now thinking of some new system where we don't have to specify every single build for each llvm version.

Maybe some syntax like:

{<< : *arm32_v5,          << : *mainline,         << : *llvm,            boot: true,  << : *llvm_all} # specifies all supported llvm versions

{<< : *arm32_v7,          << : *mainline,         << : *llvm_full,       boot: true,  << : *llvm_13, *llvm_14, *llvm_15} # only do builds for 13, 14, 15

We could reduce our file sizes by a lot and more easily see at a glance what versions a build runs on (and it'd all be one file).

I have NO idea if yml supports this type of thing or if we would need to invent another system.

Thoughts?

edit: I realize there may be some issues with granularity when setting other options like boot or llvm_full versus llvm etc. Not sure what the soln is.

@nathanchance
Copy link
Member Author

nathanchance commented Jan 26, 2024

This is tentatively what I have as the structure I am writing documentation around now:

./
├── caching/
│   ├── check.py
│   ├── update.py
│   └── utils.py -> ../utils.py
├── generator/
│   ├── generate.py*
│   ├── generate_tuxsuite.py*
│   ├── generate_workflow.py*
│   ├── LLVM_TOT_VERSION
│   ├── utils.py -> ../utils.py
│   └── yml/
│       ├── 0001-llvm_versions.yml
│       ├── 0002-urls.yml
│       ├── 0003-schedules.yml
│       ├── 0004-trees.yml
│       ├── 0005-architectures.yml
│       ├── 0006-targets.yml
│       ├── 0007-configs.yml
│       ├── 0008-tiers.yml
│       ├── 0009-llvm-11.yml
│       ├── 0009-llvm-12.yml
│       ├── 0009-llvm-13.yml
│       ├── 0009-llvm-14.yml
│       ├── 0009-llvm-15.yml
│       ├── 0009-llvm-16.yml
│       ├── 0009-llvm-latest.yml
│       └── 0009-llvm-tot.yml
├── .github/
│   ├── CODEOWNERS
│   ├── problem-matchers/
│   │   ├── compiler-non-source.json
│   │   ├── compiler-source.json
│   │   ├── dtc.json
│   │   ├── generic.json
│   │   ├── linux-kernel-oopses.json
│   │   └── modpost.json
│   └── workflows/
│       ├── clang-version.yml
│       └── lint.yml
├── .gitignore
├── LICENSE.txt
├── mock.builds.json
├── patches/
│   ├── 5.4/
│   │   ├── 20240126_nathan_powerpc_use_always_instead_of_always_y_in_for_crtsavres_o.patch
│   │   └── series
│   ├── 6.1/
│   │   ├── series
│   │   └── um-clang-18.patch
│   ├── 6.6/
│   │   ├── 20240111_nathan_media_mxl5xx_move_xpt_structures_off_stack.patch
│   │   ├── 20240123_keescook_smb_work_around_clang___bdos_type_confusion.patch
│   │   ├── 20240123_nathan_modpost_add_ltext_and_ltext_to_text_sections.patch
│   │   ├── 20240123_nathan_um_fix_adding_no_pie_for_clang.patch
│   │   ├── 6a4e59eeedc3018cb57722eecfcbb49431aeb05f.patch
│   │   └── series
│   ├── android12-5.10/
│   │   ├── 0001-x86-mm-Simplify-RESERVE_BRK.patch
│   │   ├── 0002-x86-mm-Fix-RESERVE_BRK-for-older-binutils.patch
│   │   └── series
│   ├── android13-5.10/
│   │   ├── 0001-x86-mm-Simplify-RESERVE_BRK.patch
│   │   ├── 0002-x86-mm-Fix-RESERVE_BRK-for-older-binutils.patch
│   │   └── series
│   ├── arm64/
│   │   ├── 20240123_keescook_smb_work_around_clang___bdos_type_confusion.patch
│   │   └── series
│   ├── arm64-fixes/
│   │   ├── 20240123_keescook_smb_work_around_clang___bdos_type_confusion.patch
│   │   └── series
│   ├── mainline/
│   │   ├── 20231115_chenhuacai_loongarch_kvm_fix_build_due_to_api_changes.patch
│   │   ├── 20240111_nathan_media_mxl5xx_move_xpt_structures_off_stack.patch
│   │   ├── 20240123_keescook_smb_work_around_clang___bdos_type_confusion.patch
│   │   ├── 20240123_nathan_modpost_add_ltext_and_ltext_to_text_sections.patch
│   │   ├── 20240123_nathan_um_fix_adding_no_pie_for_clang.patch
│   │   └── series
│   ├── next/
│   │   ├── 20240111_nathan_media_mxl5xx_move_xpt_structures_off_stack.patch
│   │   ├── 20240123_nathan_modpost_add_ltext_and_ltext_to_text_sections.patch
│   │   ├── 20240123_nathan_um_fix_adding_no_pie_for_clang.patch
│   │   └── series
│   ├── stable/
│   │   ├── 20240111_nathan_media_mxl5xx_move_xpt_structures_off_stack.patch
│   │   ├── 20240123_keescook_smb_work_around_clang___bdos_type_confusion.patch
│   │   ├── 20240123_nathan_modpost_add_ltext_and_ltext_to_text_sections.patch
│   │   ├── 20240123_nathan_um_fix_adding_no_pie_for_clang.patch
│   │   └── series
│   └── tip/
│       ├── 20240123_keescook_smb_work_around_clang___bdos_type_confusion.patch
│       └── series
├── README.md
├── requirements.txt
├── ruff.toml
├── scripts/
│   ├── badge-caching/
│   │   ├── failing.svg
│   │   ├── passing.svg
│   │   └── refresh.sh
│   ├── build-local.py*
│   ├── check-logs.py*
│   ├── check-matrix.py*
│   ├── check-patches.py*
│   ├── estimate-builds.py*
│   ├── generate-boot-utils-json.py*
│   ├── markdown-badges.py*
│   ├── parse-debian-clang.py*
│   └── utils.py -> ../utils.py
├── tuxsuite/
└── utils.py

22 directories, 89 files

@nathanchance nathanchance merged commit 6af3093 into ClangBuiltLinux:main Jan 27, 2024
@nathanchance nathanchance deleted the coalesce-yml-files-further branch January 29, 2024 23:45
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.

2 participants