Skip to content

Modular Boost and green CI - #201

Merged
stefanseefeld merged 39 commits into
masterfrom
develop
Sep 28, 2026
Merged

stefanseefeld merged 39 commits into
masterfrom
develop

Conversation

@Becheler

Copy link
Copy Markdown
Collaborator

No description provided.

Cem Bassoy and others added 30 commits March 3, 2019 14:51
Adding Code coverage to ublas
Recently due to some changes to vcpkg the CI was failing to work with VS2017 using cached vcpkg. This is however fixed if we update the vcpkg. To prevent this from happening in future I am adding the upgrade to vcpkg as a pre-step for building our code.
Fix for Appveyor CI Failures
fix macro for MSVC

adding noexcept

fixing test and making changes

adding comparison test and adding resolving issue

changing extents API

fixing MSVC errors

fixing MSVC error

adding static prod function and adding std::array to static extents and static strides

fixing get_number_list

refactoring meta_function into type_traits and adding staic_traits for static_extents

fixing extents_result_type_outer_prod and combining static_functions and functions

removing unnecessary code and header file

removing unnecessary forward declaration

private member resize and adding removed constructors for matrix and vector

changing size_t to std::size_t and fixing stride_t

adding is_resizable type trait for tensor resizing

improve documenting of is_resizable

refactoring code

changing msvc version in .yml

changing toolset msvc-14.1 to msvc-14.16 and adding VSCLCOMPILER

changing toolset msvc-14.2 and image to VS 2019

refactoring code and adding new matrix to appveyor

adding VS 2019 with msvc-14.1 and disabling VS 2019 with msvc-14.2 and c++2a

adding VS 2019 with msvc-14.2 and changing flag to latest

removing VS 2019 with msvc-14.2 and c++17 and adding timeout to travis.yml

travis_wait workaround

removing VS 2017 from appveyor and refactoring code

adding clang support for c++17 and c++20 and refactoring code

changing dist to bionic and adding source link to clang 10

fixing travis, bugs and adding new examples

fixing example bugs for msvc

updating licence and adding test_expression to jamfile

adding new tests, refactoring code and fixing bugs

fix for msvc c++20

fixing memory problem due to BOOST_AUTO_TEST_SUITE macro defining after fixture

removing const from tests and enabling test_tensor.cpp

removing const from test_fixed_rank_expression_evaluation.cpp

fixing msvc bug

fixing msvc-14.2 bug for c++ latest where it cannot properly capture variables in lambda func

disintegrating tests into smaller units

reducing test_types for testing

reducing tests

reducing test_types for testing in operator arithmetic

improving msvc warinings and separating test_function.cpp into it's own module
Addition of static extents and static strides
* decomposing tensor class into seperate modules according to the extents type

* stabilizing and updating test. Adding support for the operations b/w different types of tensor

* updating examples

* changing tabs to spaces

* added constexpr, removed resize from tensor and changed the array_type to container_type

* changing tag names and refactoring code

* adding and updating examples

* adding new line at the end of file

* refactoring code, fixing bugs and adding few new examples

* refactoring examples

* fixing gcc-7 issue where it is unable to use deduction guide when initilized

* adding constexpr and inline

* adding noexcept

* adding is_static_rank_v

* removing extents.hpp and decoupling test_extents and test_strides

* refactoring code and adding constexpr with [[nodiscard]] to the functions

* refactoring code.

* adding missing iterator header

* changing helper function name
std::allocator<T>::construct/destroy were deprecated in C++17 and removed in C++20, in favor of std::allocator_traits<T>::construct/destroy. (https://en.cppreference.com/w/cpp/memory/allocator_traits/construct). They are gone in gcc10. This fix switches to the the latter for C++17 and greater.
* GSoC Phase 1: Enhance CI workflows and switch to Github Actions

More details of the work of this phase could be checked at my wiki https://github.com/BoostGSoC20/ublas/wiki

* Tensor tests use Github Actions

Old uBLAS will only use Travis and Appveyor from old legacy CI while
Tensor is now build using modern Github Action on wide array of compiler
and standards and codes.

* Add Copyright notice and refactor windows matrix
Branch coverage needs to be explicitly enabled and is not the defaault configuration of lcov. It is better to disable branch coverage because then we will have only 2 things for each line in coverage report. Either a line is hit or a miss. This is even the defaault behaviour of llvm-cov for coverage reporting. For reference check [this](https://codecov.io/gh/tzlaine/text/tree/master/boost/text) Zach's Library for Unicode which recently got partially approved for Boost. This library also uses default coverage settings. 

**After this commit coverage will be 95%**
Outside repositories do not have permission to post review comments on ublas repository. It fails to review and CI fails. This issue has been fixed. Reviews are only run if a PR originates from our the ublas repository.
std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
Ignore documentation and markdown changes for CI
)

* improving the tensor design using tensor engine to support any configuration

* fixing and refactoring extents and strides

* making extents and strides class declarations contestants

* syncing with develop branch

* fixing examples

* fixing type aliasing bug

* fixing clang-tidy errors

* adding move assignment operator

* fixing clang-tidy errors

* fixing clang-tidy errors

* Fix all clang-tidy warnings & Improve Review action (#92)

* Fix all clang-tidy warnings

* Update clangtidy_check.yml

* Do not run review for PR from forks

In order to run review from forks we need to create a Github bot that has full access to all forks and can perform review even from forks.

* Update clangtidy_review.yml

* Update clangtidy_review.yml

* improving the tensor design using tensor engine to support any configuration

* fixing and refactoring extents and strides

* making extents and strides class declarations contestants

* fixing examples

* fixing type aliasing bug

* fixing clang-tidy errors

* adding move assignment operator

* fixing clang-tidy errors

* fixing clang-tidy errors

* Fix all clang-tidy warnings & Improve Review action (#92)

* Fix all clang-tidy warnings

* Update clangtidy_check.yml

* Do not run review for PR from forks

In order to run review from forks we need to create a Github bot that has full access to all forks and can perform review even from forks.

* Update clangtidy_review.yml

* Update clangtidy_review.yml

* changing tensor engine APIs

* adding std::enable_if to tensor_core to remove redundant parameter for static_tensor

* fixing template name

* removing first_order and last_order form namespace ublas and moving to ublas::layout

* removing always_false

* improving strides construction for dynamic and fixed_rank

* refactoring code

* refactoring code and adding static checks

* Moving tensor_engine to it's own header file and removing static_product

* adding checking and fixing expression

* refactoring code

* refactoring static_extents_traits.hpp

* fixing static_assert in strides.hpp and adding inline and constexpr to the functions

* adding fixed rank example and making trans second argument template type

* removing rebind_storage and adding rebind_storage_size for static products

* refactoring directory and moving static_extents_traits.hpp into extents_functions.hpp with function implementation

* fixing github action

* fixing msvc compiler bug

* refactoring make_static_strides code

* fixing: removing push_front and push_back in static_strides.hpp

* fix for msvc 14.27, it is unable to treat basic_static_extents::at constexpr

* changing name from valid to is_valid for naming consistency

* moving extents_result_type_* functions inside the respective prod functions

* fixing broken license

* removing the unnecessary headers

* improving error and fixing error messages

Co-authored-by: Ashar <coder3101@users.noreply.github.com>
* [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's  compilation level, without having to search the library's documentation to find this out.

* Updated the minimum C++ standard requirement to C++11 based on the Ublas Wiki section mentioning C++11 as a prerequisite.
Auxiliary functions for extents and strides were using different
functions. Additionally, many tags were used to distinguish between
different tensor types. This patch simplifies interfaces of different
core functions and unifies functions that can process different types of
extent and stride types.
This is GSoC 2021 project of Shikhar Vashistha who copied
existing uBlas documentation and used AsciiDoc for formatting.
bassoy and others added 9 commits September 9, 2021 12:18
Unit tests have been revamped in order to improve maintainability and readability.
Many of them have been split into smaller tests.
Missing tests for various tensor types and extents have been added.
This will simply the addition of new tests for various tensor types
and instances.
…ns in algorithms.cpp (#155)

Compiler cannot perform small-object and other optimizations in algorithms.cpp . This is solved by providing the trailing return type and passing the lambda through one of its arguments.

Fixes #150

Co-authored-by: Neel Shah <neelshah29042002.com>
GitHub Action is sunsetting the macOS 10.15 Actions runner. It will stop working intermittently until being completely removed by 2022-8-30: https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22
Boost.StaticAssert has been merged into Boost.Config, so remove
the dependency.
@Becheler Becheler self-assigned this Sep 10, 2026
@Becheler

Copy link
Copy Markdown
Collaborator Author

@stefanseefeld could you review this PR ? I will ask @mloskot to review it too.

The failing Static Analysis check is unrelated to this PR: post_review.py gets a 406 from the GitHub API because the diff is too large to serve, and that step is skipped on push events, so master will be green after the merge. Could we merge as is?

@stefanseefeld stefanseefeld left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This all looks good. (I'm not convinced we need to go through PRs to merge the develop branch back to master, given that everything that went into the develop branch was already reviewed.

@Becheler

Copy link
Copy Markdown
Collaborator Author

@stefanseefeld thank you ! ❤️
I'm not sure either but I could not do any other way 😞

@Becheler
Becheler marked this pull request as ready for review September 25, 2026 09:30
@stefanseefeld
stefanseefeld merged commit 212d9b4 into master Sep 28, 2026
28 of 29 checks passed
@stefanseefeld

Copy link
Copy Markdown
Member

As no-one else with approval rights showed up, I changed the repo settings to allow admins to bypass the regular rules, so I could merge the accumulated improvements (from the last 7 years !) to master.
Please let me know if as a result of this you encounter any issues on the master branch. If all goes well, all of the good work from develop should show up in the next boost release.
Cheers !

@Becheler

Copy link
Copy Markdown
Collaborator Author

@stefanseefeld you are amazing, many thanks 🤩 !
The rule is indeed a bit blocking when there is a shortage of maintainers ! Good call ! 🙏🏽
Looking forward to those changes !

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.