alpaka-group / alpaka

Abstraction Library for Parallel Kernel Acceleration :llama:
https://alpaka.readthedocs.io
Mozilla Public License 2.0
356 stars 74 forks source link

generate software/compiler compatibility table automatically #2407

Open SimeonEhrig opened 1 month ago

SimeonEhrig commented 1 month ago

Keep the software/compiler compatibility table up to date is hard to do. I already implemented a script, to generate the markdown table from a json config file. The job generator already know all valid combinations, except for MacOS and Windows. Therefore it makes sense to combine the table generator script with the job generator to automatically generates the compatibility table for Linux.

SimeonEhrig commented 1 month ago

@psychocoderHPC What do you think about a bot, which generates the table and push it to the repository before a PR is merged? So it means the bot automatically generate/update the markdown file with the table which we simply link in the README.

fwyzard commented 1 month ago

Do you mean to generate the table based on what the CI tests, or based on which tests actually pass ?

psychocoderHPC commented 1 month ago

I like the idea. I am not sure if I would invest time into a bot. The reason for it is that the bot must run somewhere and it is again something where we need to poke our IT any time the bot is down. I am also not sure if your CI get always triggered twice in case the bot updates the readme. Another issue can be that updating the local branch is required to avoid conflicts in case the bot updates the readme.

I would be happy to have a script like the current generator which uses the matrix job generator instead of the hand written json. I would also be fine if the GitHub action tests were not in the table.

SimeonEhrig commented 1 month ago

Do you mean to generate the table based on what the CI tests, or based on which tests actually pass ?

yes

I like the idea. I am not sure if I would invest time into a bot.

I agree that it should be not bot, it should be a GitHub Actions. Something which needs no extra system to maintain.

I thought about, that the table is generated when we hit the merge button. Than it simply generates the table, do a commit, maybe squash and afterwards the actual merge is done. Therefore the change table will not appears in PR but on the dev branch. And I suggested an extra file, which is not touched by a developer to avoid merge conflicts.

SimeonEhrig commented 1 month ago

I did a short check. Looks like I can do a CI job during the merge process: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue#triggering-merge-group-checks-with-github-actions However it does not look esay. Therefore we have two options to integrate the generator: