Commit Graph
302 Commits
Author SHA1 Message Date
Ryan Curtin e30bd30df7 Add more cross-compilation hosts for CI job (#3906)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.

* Add a few more hosts for testing.

* Document the additional systems.

* Separate build directories for each matrix entry.

* Use safer directory name.

* What directory are we in?

* Try an alternate strategy of setting build names.

* Fix typo.

* Assemble container name.

* Oops, forgot one.

* Oops, fix the last use of  to .

* Fix bad merge.

* Set different page sizes for different systems.

* Try different quotation strategy.

* Make sure the variable actually gets substituted in.

* Quotes, bane of my existence.

* Update Jetson Orin Nano link.

* Try to use CORTEXA72 for the BB-AI again.

* Try to set flags for the Jetson Orin Nano too.

* Remove board names and use architecture names instead.

* Re-add RPI4 as BCM2711.

* Try to get the junit files back using the correct variable.
2025-04-06 12:55:04 +02:00
Ryan CurtinandDirk Eddelbuettel e70a04fbba Add Docker deployment documentation (#3907)
* Add a first attempt at explicitly using Jenkinsfiles.

* A first attempt...

* Put code in a script block.

* Add first attempt at link check job pipeline.

* Hopefully correct shell block.

* Install git.

* Install packages as root.

* Use custom image that already has dependencies installed.

* Try processing the JUnit results.

* Fix syntax (hopefully).

* Try to get the build to set its status on Github.

* Try and see if I can get the snippet build to run too.

* A first attempt at reviving the static code analysis build.

* Refactor style check job a bit.

* Try to clean up other files and have them set statuses.

* Set status in script blocks.

* Fix directory (this may not fix my problem).

* Should I load in the script step?

* Maybe I can just load it without a name.

* Maybe I have my path wrong.

* Will this work?  Just a test...

* Try using a plugin instead.

* And if I define the function manually at the top?

* Maybe this will fix the load.

* Try to turn unstable into failed.

* Hopefully fix documentation builds.

* Fix script blocks.

* Maybe fix static code analysis job.

* Try to adapt PR number variable.

* First attempt at cross-compilation job.

* Try to fix some syntax.

* Clean workspaces after build.

* Try to put the matrix in the right place.

* Another attempt at the matrix configuration.

* Maybe I have to nest it deeper.

* Maybe I have to clean always?

* What we need is more tabbing.

* Use try/catch to handle failed junit processing.

* Better handling of environment variables.

* Try a differernt approach than try/catch.

* Try to get some more information about ccache.

* Is it possible we could store the ccache at a higher level?

* Maybe I have the variable name wrong.

* Clean the cross-compilation workspace.

* Try mounting the ccache so it can be shared across multiple jobs.

* Always pull images.

* We need to run on the same node.

* Run on only one core.

* Try building in the Docker container in a different way.

* Do I have the order backwards?

* Can I run anything at all in the container?

* The static code analysis job isn't helpful.

* Try to set the user of the docker container.

* Rebuild the Docker container instead.

* Always pull an updated image.

* Download any necessary dependencies too.

* Oops, use the correct CMake options.

* Fix line break in the wrong place.

* Make sure to use the correct architecture.

* We can't use MATCHES, that is a regex.

* Oops, we need to use STREQUAL.

* Bump to an older version since newer versions don't have gfortran.

* Try to run the tests on the target.

* Correct syntax.

* Okay, I'm not allowed to generate a stage name.

* Try cleaning the workspace at the start of the build.

* Okay, so I just can't depend on the workspace cleaning job, wonderful.

* Try and add the passphrase correctly.

* Fix path for memory checks.

* Fix path to test.

* Fix PR number variable.

* Try to fix path for test copying.

* Try to get the PR number correct.

* Try and centralize where the link cache is stored.

* Why is it being printed strangely?

* Is there some weird restriction where this all has to be on one line?

* Always publish the HTML, and fix a link.

* Try to fix SSH host key check.

* Make the reports directory.

* Try to fix file parsing.

* Try to enable ccache.

* Try to set ccache directory correctly.

* Try to get the full pipeline set up correctly for cross-compilation.

* Fix path to test data.

* Allow debug builds when cross-compiling.

* Remember to unpack all the test data!

* Fail tests when the data isn't there.

* Maybe I can use find instead.

* Double escape for backslash?

* What if we just run the test?

* Port Catch2 improvement for junit runner.

See https://github.com/catchorg/Catch2/commit/c29e198eab0ccdb190495397854b937677385e2e.

* Re-enable junit testing (hopefully it will work now).

* Output directly to the xml file.

* Try to clean up regex.

* Try to set IN PROGRESS status.

* Could it be called RUNNING?

* I guess I don't get access to set jobs in progress through this API.

* Fix regex for test name extraction.

* Try to clean up Jenkinsfiles.

* Fix parameter name.

* Maybe fix syntax?

* Does it work without keyword arguments?

* Correctly accept named parameters.

* Abort previous builds to reduce load on Jenkins.

* Use optimization when compiling.

* Fix syntax for abortPrevious.

* Fix missing closing brace...

* Update links in CI documentation and try to fix memory check job.

* Add Docker deployment page.

* Fix link.

* Fix missing link in pipeline.

* Apply suggestions from code review

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* Try to get some more information on the build failure.

* Fix link that now redirects.

* Try to get some more information about why we are not linking against OpenBLAS.

* I think the variable name was wrong, we will see...

* Clean things up since the build should work now.

---------

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-03-12 16:49:34 -04:00
b5e3284cf5 Bootstrap strategy for RandomForest (#3829)
* Added sequential bootstrapping to random forest.

* Fixed namespace.

* Fixed style checks.

* Fixed compilation issue.

* Comply to __libcpp_random_is_valid_urng

* Incorporated review feedback

* Corrected style checks.

* Reverted documentation.

* Made constructor implicit to catch armadillo template optimizations

* Fixed compilation error.

* Fixed style check.

* Fixed compilation error.

* Align argument lists between public and private Train function.

* Explicitly state template use to help GCC

* Fixed style check.

* Added name to contributor list.

* Changed indicator matrix to interval matrix

* Updated docs, implementation and testing after code review.

* Fixed style warnings.

* Updated documentation.

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Incorporating code review feedback

* Changed based on code review feedback

* reduced computational complexity.

* resolved conflict.

* resolved conflict

* Reworked after review

* Avoiding recomputation of the concurrency vector for speed-up.

* Resolve merge conflict

* fixed style

* fixed style

* Remove assert statement

* Update src/mlpack/tests/random_forest_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/random_forest_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Integrated changes after code review.

* Fixed style

* Resolved conflict

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Incorporated review comments.

* Fixed styling issues

* Restart style checks

* Update src/mlpack/tests/random_forest_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Reworked documentation from review comments

* Fixed style check

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update HISTORY.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/methods/random_forest/bootstrap.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/methods/random_forest.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Reworked example amd unit test.

* fixed build

* fixed documentation build

* Fixing style check build

* fixing style checks

* fixing check build

* Fix minor compilation issues with example, and make it give output.

---------

Co-authored-by: Felix Patschkowski <felix.patschkowski@itecequipment.com>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Felix Patschkowski <felix.patschkowski@gmail.com>
2025-03-10 16:02:19 +01:00
Omar ShritandRyan Curtin 6d9919095d Quick fix for a couple of typos (#3905)
* quick fix for a a small things

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-03-06 10:20:48 +01:00
Omar Shrit 2076090a08 Fix small bug in finding mlpack if downloaded as dependency (#3900)
* Fix small bug in finding mlpack

Since mlpack include is inside a `src/` directory, this is make it more
complicated for CMake to find mlpack path if it is pulled as a dependency
by the user. Therefore, to fix this we are setting directly the
INCLUDE_PATH as the SEARCH_PATH as long as mlpack.hpp is found.

Other minor fixes are related to if /else logic. This will allow to set the
directories when we find the library in a second round.

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix minor things

Signed-off-by: Omar Shrit <omar@avontech.fr>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
2025-02-28 09:26:10 +01:00
Omar ShritandRyan Curtin 58115633dd Add Findmlpack.cmake (#3872)
* Add Findmlack.cmake

I opened this PR, because it was so difficult to revive the old one.

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding the comments from the previous PR

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add the docs again

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add depedencies functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make the filename compatible with the standard

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move the dependencies search from CMakeLists

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove MATHJAX

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Refactor the CMake into dependencies

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Findarmadillo since it exist in CMake

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Arpack as well, already in the main stream

Signed-off-by: Omar Shrit <omar@avontech.fr>

* This needs to go, tooo old

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move cereal and ensmallen to mlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Get rid of the empty files

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Doxygen generation file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Finish Findmlpack.cmake file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Increase Cmake version to 3.11 to avoid the warning

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add POST_BUILD to get rid of the warning

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove really old support for MACOS 11 and 9

This is more like 15 years old already

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Already specified no need to do it again

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix according to comments from @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* add message for armadillo

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Try to fix windows and cross CI at the same time

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Let us add brutally STB and Armadillo

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove STB image independant file from here

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding more into findmlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move things from CMake as they are not directly relevant

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move the autdownloader to findmlpack

Signed-off-by: Omar Shrit <omar@avontech.fr>

* remove the autodownload

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove cmakeextras, added for obsure reasons

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove license for really old stuff

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Re-order the file how it should be

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move out of dependency

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Dependencies, as it is no longer used

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add stb to this file again

Signed-off-by: Omar Shrit <omar@avontech.fr>

* reorganize functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add find armadillo

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove Dependencies files and autdownload

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make it use the internal functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Finishing most of the cmake modifications

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix a couple of last things

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Change the name and remove old file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix all comments left by @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the docs for each of the function

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move the cross compilation to inside fetch and make it as an auto detect

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Cut the parts that are refactored

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix function name

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove the ""

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Fix text and code

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply comments from @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* modify CMakeLists accordingly

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add PR in the history

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/mlpack.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update HISTORY.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/embedded/crosscompile_example.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-02-25 21:00:53 +01:00
Ryan Curtin e7f79637f6 First attempt at GHA CI instead of Azure Pipelines. (#3881)
* First attempt at GHA CI instead of Azure Pipelines.

* Could I have the matrix config wrong?

* Oh, oops, I was just looking in the wrong place for the GHA log.

* Disable Azure Pipelines Linux job.

* Fix some additional small syntax errors.

* Minor updates.

* Try to figure out what is happening with this test!

* Ha, actually remember the argument.

* Try to parse the CTest results.

* Don't build CLI programs for the debug-only mlpack_test build.

* Try to figure out why we don't have the CTest output file.

* Seems like maybe the test just needs more iterations.

* Fix directory for CTest output.

* Try running mlpack_test manually to see if we get better test output.

* Remove version numbers and other non-XML from XML output test file.

* Try to fix debug build.

* Filtering regex.

* Try to fail the build when the tests fail.

* Minor fixes and cleanups to run Python binding tests.

* Print test failure information in the actual build step.

* Update Julia testing strategy.

* Try to also get outputs from other test bindings.

* Fix Julia and Go testing blocks.

* Avoid random collisions that cause test failures.

* Try moving splitting into the trial loop.

* Try a different test reporter action.

* Install pytest for Python tests.

* Fix working directory for Julia test.

* Add test case that will fail to see what it looks like.

* Back to the old action, the new one I tried didn't do what I needed.

* Try a better way to print the test output.

* I still don't know how to mark the job failed yet.

* Maybe this stdout character works better.

* Try a forked test-summary action.

* Try to use distribution version of the modified action.

* Try to see if ccache is doing anything.

* Always run ccache stats step.

* Turn off PCH for ccache.

* Let's just see what it looks like with more error output.

* Clean up ccache configuration.

* Remove fake test because it seems like now I have the output working right.

* Try to reduce file size by not printing debug output into it.

* Try and refactor binding environment seutp into a composite local action.

* Try to fix some syntactical errors.

* Refactor test running into a separate composite action.

* Start trying to make the R build part of the main CI build.

* Oops, the include directory was in the wrong place.

* Try actually running R tests in the workflow too.

* Try to fix a few action issues.

* Try to work around libicu issue.

* Remove unnecessary option.

* Try to run OS X builds too.

* Try to fix matrix configuration.

* Revert "Try to fix matrix configuration."

This reverts commit 22a08d6dcd0d39de0a27f2df16e885bd68e18fda.

* Oops, maybe it was just an extra comma.

* Fix naming, and maybe we have to remove stringi first.

* Try to set Julia location correctly.

* Some fixes to the pipelines.

* Oops, I need root for that.

* Some additional fixes for jobs.

* Hopefully fix a few more builds.

* What, how did that get there?

* Don't use non-portable -i option with sed.

* Run R tests properly to get junit output.

* Oops, I have to redirect the output.

* Where is the output file?

* Try to fix macOS Python location.

* Oops, ROOTDIR is just not set.

* Try to store the name of the R package correctly.

* Oops, we need to specify pip.

* Try to get the right directory for the R package.

* Try to fix another round of issues.  I'm getting closer, at least.

* Okay, fine, let's do it the brutalistic way.

* What is actually happening with the Go binding tests?

* Try a different strategy for printing.

* Make some updates to prepare for Windows builds.

* What's the output of go test?

* Remove -Wall as per golang/go#6883.

* Try to fix duplicate library warning.

* Maybe I just specified the variable in an invalid way that didn't stick?

* This should fix the Go build.

* How did that cd go missing?

* Try to remove DEBUG output from the debug tests.

* Try to be more specific about the ccache key.

* Oops, incorrect variable name.

* Try to speed up the testing step.

* Try to run the Windows build through GHA.

* Try to install locally to deps/.

* Try to install and set up Windows dependencies correctly.

* Try to debug Windows build.

* Use bash for CMake configuration.

* Some additional path fixes.

* A couple fixes, but I don't have the Armadillo path right.

* Fix curl command.

* Maybe this is closer to the right path...

* Okay, look one directory deeper...

* Temporarily print STB compilation failure.

* Try to use absolute path for STB inclusion test.

* Oops, fix syntax.

* Try using REALPATH instead.

* Try just skipping the check...

* Try specifying BLAS and LAPACK locations directly.

* Try to figure out what is going on.

* Are we even using the correct FindArmadillo script?

* Try specifying the libraries manually.

* Try disabling the wrapper library.

* What version of CMake is this?

* Print the configuration.

* What if we specify these library locations?

* Double-check: this should fail.

* Okay, that actually surprisingly did not fail.

* Fix style issues.

* Compress into only one GHA file so all the jobs show up in the same place.

* Try to use absolute path to OpenBLAS.

* Try to fix path mangling on Windows.

* Fix STB path and no PS please.

* Try to fix output on Windows tests.

* Call test from the right place.

* Remove some unnecessary output.

* Try just running the test.

* What is going on, why doesn't the test run?

* Try just running the test with PowerShell.

* Maybe I have the filename wrong?

* PowerShell makes me angry...

* Right, .exe is the suffix...

* I love PowerShell!

* Okay, forget PowerShell.

* Can we even run the test?

* Is it a DLL search path issue?

* Okay, I think this might work for Windows.

* Fix porting of new r2u/p3m workflow (hopefully).

* Fix possibly incorrect variable name.

* Reduce the number of macOS jobs.

* Fix name of job.

* Remove potentially unnecessary step.

* Document CI changes and reorganize jobs for better viewing.

* Remove invalid link.  (Awesome that the link check build picked this up.)
2025-02-14 20:22:13 -05:00
821a95ff56 Stb (#3823)
* Move STB internally, comment functions if not

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Comment for now STB including macros

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Modify CMake and tests accordingly

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the license and update the date.

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Move STB to its own directory

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding the functrions of image resize and crop

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update the API not finished yet

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Start adding tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add flowers images for test

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Bring image from the coco dataset

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Include all of STB header in this file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix STB configs

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Clean CMakeLists and look for stb_resize

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make it compile with STB integrated

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix stb path

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the endif at the end of the file

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update LICENSE.txt

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMakeLists.txt

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/config.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Adding the function and test, not finished

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove crop from this PR, and add tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update LICENSE.txt

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* Update CMakeLists.txt

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>

* merge master

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add @rcutin suggestion for stb

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Improve the logic to include edge cases

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the bundle that if we are using system stb

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make it possible to disable the entire build with STB

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the else if condition

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the else condition

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the tests accordindly

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add dummpy functions and complete the Resize function

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Reorder to see if this fix the problem

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the resize for a set of images

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add STATIC for resize and write

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix all the problem with this function

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Be able to resize N images easily

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Add the tests, already passing

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Use sheep instead of Umbrella

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix STB directory

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix Cmake and docs

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Apply comments from @rcurtin

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Integrate @rcurtin comments

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix tests and remove generated images

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Add docs

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Update the API with new resize version

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix to resize2

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Adding resize2

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Add the necessary fix to avoid linker errors

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add configs to allow correct repacking

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Redo the ResizeImages function

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Pack the images as tzr.bz2

Signed-off-by: Omar Shrit <omar@shrit.fr>

* Fix the function calls and create an internal one

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Make the message shorter to have under 80 chars

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Solve linter errors

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Solve linter error

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix linter issues

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/tests/image_test.cpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Apply @rcurtin comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add an example usage of these two functions

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply @rcurtin comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Re-organize directories for STB

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Apply rcurtin comments

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Merge two resize functions into one

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Get rid of MLPACK_DISABLE_STB

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix forgetting docs

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Update CMake/FindStbImage.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update CMake/FindStbImage.cmake

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/install.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/compile.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update src/mlpack/core/data/image_resize_crop.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update doc/user/load_save.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Apply comments from @rcurtin

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Adding the test to test if it is identical

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix image tests

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the example

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Add the link and the patch to download the images

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Fix the script and make all of them green

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Remove wget not needed

Signed-off-by: Omar Shrit <omar@avontech.fr>

* Minor style fixes.

* Avoid temporary matrices, and test with multiple different types.

* Update src/mlpack/config.hpp

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Update HISTORY.md

Co-authored-by: Ryan Curtin <ryan@ratml.org>

* Fix R build by including bundled STB headers in package.

---------

Signed-off-by: Omar Shrit <omar@avontech.fr>
Signed-off-by: Omar Shrit <omar@shrit.fr>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-02-05 21:06:26 +01:00
Omar ShritandRyan Curtin c4269a0876 Update CMake/crosscompile-arch-config.cmake
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2025-01-08 15:13:59 +01:00
Omar Shrit 6e77661284 Change BOARD_NAME to ARCH_NAME
Signed-off-by: Omar Shrit <omar@avontech.fr>
2025-01-04 23:50:04 +01:00
Ryan Curtin d9f992c608 Fix missing endif(). 2024-11-14 16:48:31 -05:00
Ryan Curtin cda5813d2a Adapt for older CMake versions. 2024-11-11 11:58:01 -05:00
Ryan Curtin 0453f71599 Merge remote-tracking branch 'origin/master' into better-cross-compile-fail-output 2024-11-06 09:36:13 -05:00
Omar ShritandRyan Curtin fcfbf804f6 Update CMake/crosscompile-arch-config.cmake
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2024-11-05 22:04:04 +01:00
Ryan Curtin 9a0aca3906 Try compiling a simple C++ program after setting cross-compilation flags. 2024-11-05 11:51:17 -05:00
Omar Shrit f9514a66b0 Fix the flags for cortexA72
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-11-05 13:07:44 +01:00
Omar Shrit 169dab01de Modify the files accordingly
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-11-02 16:29:03 +01:00
Omar Shrit c0943e4ea4 Move Board directory to the CMake
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-11-02 16:21:07 +01:00
Omar Shrit 62017342f6 Remove the restriction on CheckAtomic in the case of crosscompilation
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-07-11 12:49:00 +02:00
Omar Shrit a7e90eb3e5 Ractify the condition to include the results
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-06-17 12:30:40 +02:00
Omar Shrit 54645e454a We can not check working atomic for crosscompiled version
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-06-17 12:23:45 +02:00
Omar Shrit 3c415cf1c9 Optimize better for binary footprint
Signed-off-by: Omar Shrit <omar@avontech.fr>
2024-06-08 20:14:24 +02:00
Ryan Curtin 2a217dec05 Merge remote-tracking branch 'origin/master' into website-revamp 2024-05-02 18:16:54 -04:00
Ryan Curtin 84b0fd9e80 Revamp Markdown bindings to output individual language-specific files and HTML sidebars. 2024-05-02 11:16:23 -04:00
Ryan Curtin 3cd429926b Remove final bits of cotire and adapt for compatibility with other setups. 2024-04-10 19:18:16 -04:00
Ryan Curtin 4f92ca72aa Use CMake-provided 'StbImage_FOUND', not incorrect manual 'STB_IMAGE_FOUND' (#3660) 2024-03-25 03:47:35 +01:00
Ryan Curtin 79b2459c94 Add include files and configured pkgconfig file to Python distribution. 2023-12-15 23:08:27 -05:00
Ryan Curtin 72f2413b29 Add MLPACK_HAS_NO_STB_DIR configuration variable to indicate when STB requires stb_image.h instead of stb/stb_image.h for inclusion. 2023-08-17 11:16:22 -04:00
Ryan Curtin 308c78fb30 Clean up STB finder, collecting when an stb/ suffix is necessary for the include. 2023-08-17 11:15:29 -04:00
Ryan Curtin 4ed41f45f3 Be more paranoid in conditions. 2023-01-11 20:19:18 -05:00
Ryan Curtin 77d9d0361c Add -lgfortran and -lquadmath when statically linking OpenBLAS on Linux. 2023-01-09 10:05:49 -05:00
Ryan Curtin c2e47f80d7 Set default for BUILD_TESTS to OFF (#3316)
related issue: #3314
2022-11-21 05:08:20 +01:00
Ryan Curtin facc65900b Use -framework Accelerate on OS X. 2022-11-11 10:38:05 -05:00
Ryan Curtin 11cbc77cfd Try putting gfortran and pthread last. 2022-08-02 09:36:59 -04:00
Ryan Curtin 9a18cd751b Oops, we can't use PARENT_SCOPE. 2022-08-02 09:01:10 -04:00
Ryan Curtin 46ed12b886 Add some more debugging output to try to figure out what is going wrong. 2022-08-02 08:45:18 -04:00
Ryan Curtin f9d40d18e4 Set the variable at the correct scope. 2022-08-02 03:11:43 -04:00
Ryan Curtin 49218a5685 Update name of CMake variables for libraries to link against. 2022-08-02 02:53:24 -04:00
Ryan Curtin 683a93d8a4 Perform the entire build in src/; remove mlpack_headers target. 2022-07-31 13:48:19 -04:00
Ryan Curtin b7cc5938f9 Remove arma_config_check.hpp: it was only needed to check compilation properties of libmlpack.so. 2022-07-31 08:26:02 -04:00
Ryan Curtin 89dfbb600a Get rid of all of the remaining parts of Boost! 2022-05-27 15:17:37 -04:00
shubham1206agra b406fc1506 changes according to suggestion 2022-04-29 10:42:32 +05:30
shubham1206agra ad4569213a temp sol to version issue 2022-04-28 19:32:14 +05:30
shubham1206agra 1bfa385663 initial fix by disabling go modules 2022-04-28 18:48:03 +05:30
Omar Shrit fdc7af7a6a Merge pull request #3091 from shrit/header-only
mlpack Header only initiative
2022-04-17 11:13:01 +01:00
Omar Shrit eefb010434 Apply @rcurtin modification to check STB version
Signed-off-by: Omar Shrit <omar@shrit.me>
2022-04-16 16:20:14 +01:00
Marcus Edel 32af9968f2 Prettify C++ code used to check for atomic linkage. 2022-03-16 23:23:01 -04:00
Omar Shrit 8868c12060 Let us see inital try for STB test
Signed-off-by: Omar Shrit <omar@shrit.me>
2022-03-13 21:28:32 +00:00
Marcus Edel aaf3f71734 Check if libatomic is bundled. 2022-02-20 21:15:50 -05:00
Marcus Edel 26855cd348 Check if atomics need -latomic linking. 2022-02-16 21:42:44 -05:00