-
Notifications
You must be signed in to change notification settings - Fork 2
Github actions
The current Boost.uBLAS CI service did not cover many compilers nor different OS. The service is also fragmented for instance AppVeyor runs Windows CI and Travis runs Linux CI. So, I planned to add the new build matrix for the CI so that our code is extensively tested and all CI runs are in one place. We have agreed to use Github Actions as our CI provider because it has all the OS and it is official Github's CI
- 7.x.x (Lowest supported for old devices)
- 8.x.x (For newer devices debian default)
- 9.x.x (Ubuntu 20.04 LTS default GCC version)
- 10.x.x (For C++20 and Arch Linux default GCC version)
- 6.0.x (Lowest supported for old devices)
- 8.x.x (debian newer)
- 9.x.x (ubuntu default)
- 10.x.x (Arch linux default)
- 19.16 (Lowest supported MSVC as of now)
- 19.26 (Latest MSVC as of today)
- macOS 10.15 XCode toolchain 11.4 (Clang Darwin 11.0)
Each of the above compilers will be running in 3 standards:
- C++11 (Legacy)
- C++17 (with Tensor Support)
- C++20/2a/latest (if and only if compiler supports concepts)
All these will run in parallel and hence should not take much time. If you want to purge any compiler from this list or add one, please let me know.
Code style is a very important tool for an open-source project as it makes the source code consistent and more readable. As of now, there is no agreed-upon style for uBLAS. In this work, I do not propose a new code style but suggest we use clang-format for the formatting.
git push
starts the CI to check for compilation and now it will also check for code formatting using the .clang-format
file in the root of the Boost.uBLAS repository. If the code format does not confer to the style, the CI will fail. In the case of a Pull Request, the failed CI will not allow PR to be merged.
Clang Tidy is a great static analysis tool for checking the quality of the code and to check if a code follows some standards like BOOST Standards.
This issue talks about adding to Github Actions CI clang-tidy checker. After this, the CI will report the clang-tidy results in a PR as review comments and in push events.
This will vastly ease up the review process in PR as the reviewer only have to care the logical correctness of the code instead of the standard conference with standards.
You can track the progress of all the above-mentioned feature at this project kanban board
I thank our mentor Cem for his constant support and help in achieving our goals. We always find him helpful and he was always easy to reach for help or discussion regarding the work. We would also like to thank Google for the Google Summer of Code Programme, without which all these wouldn't be possible. Lastly, we express our gratitude to our parents for helping and providing us with all resources to carrying out our work nicely from our homes.
- Project Proposal
- Milestones and Tasks
- Implementation
- cpp20
- github-actions
- features/tidy
- features/format
- features/cmake
- Documentation
- Pull Requests
- Future Work