55 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 Curtin a44fbe4906 Move Jenkins job configuration into the repository (#3893)
* 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.
2025-03-12 08:34:59 -04: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
Ryan CurtinandDirk Eddelbuettel e30f83c028 Document RectangleTree and RTree (#3885)
* First attempt at documenting the RectangleTree.

* Add Insert() and Delete() to RectangleTree; they have a nicer user interface than what was previously there.

* Add R-tree documentation.

* Fix default arguments for RectangleTree typedefs.

* Fix some minor documentation display issues.

* Fix link.

* Fix links.

* Try to clarify what trees are a little bit.

* Apply suggestions from code review

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

* Update doc/user/core/trees/r_tree.md

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

---------

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-02-12 15:17:21 -05:00
Ryan CurtinandDirk Eddelbuettel 9fd815144d Add a cache to documentation check job (#3882)
* A first attempt at overhauling the documentation job with a cache.

* Actually remove files we don't need anymore.

* Fix output from local link checks to give it all at once.

* Add sparse matrices to the set of detected matrix types.

* Fix comparison condition.

* Make a pass to try and re-validate cached links that have not yet expired.

* Compile and link separately so that ccache can take effect.

* Be a little bit smarter about caching.

* Ensure libicu$SO is installed so 'stringi' can be used

Also collapse to remotes calls into one

* Fix style issues that cpplint 2 found (#3884)

* Try to workaround the libicu issue for now.

* Mention new dependency.

---------

Co-authored-by: Dirk Eddelbuettel <edd@debian.org>
2025-02-04 08:04:42 -05:00
Ryan Curtin d9bfc67546 Fix style issues that cpplint 2 found (#3884) 2025-01-24 06:15:10 +01:00
Ryan Curtin c8eb3dceac Overhaul documentation homepage (#3836)
* Add pipeline to documentation homepage.

* Fix for mobile devices.

* Add little pipelines to go at the top of each page.

* Overhaul index page.

* Overhaul README to remove redundant material.

* Add installation documentation.

* Update pipelines.

* Allow nesting of deeper details.

* Add a pipeline to the top of the load/save page.

* Add prerequisites link to main pipeline.

* Add better but not finished sidebar.

* Add a couple new documentation pages.

* Fix URLs in svg.

* Incremental checkin.

* Fix Youtube URLs.

* Incremental checkin.

* Minor fixes.

* Add first pass at evaluation/deployment pages.

* Minor spacing and link fixes.

* Flesh out a number of additional pages and write basic compilation documentation.

* Fix some minor issues, and add Docker deployment page (not totally finished yet).

* Add developer documentation landing page.

* Hopefully getting close to the final set of changes here.

* Remove this documentation for now.

* Fix a few links, and the size of the sidebar.

* Fix some additional links.

* Fix a bunch more links.

* Fix another link that now has a better place.

* Refactor test-docs.sh to handle documentation that is a standalone program.

* Fix file exclusions.

* Fully qualify typename.

* Update name of file.

* Fix syntax error.

* Remove files that are not meant to be compiled.

* Also skip the quickstart.

* Move quickstart entry to the top.

* Remove gray coloring of binding documentation.

* Update name of sidebar link.

* Update to working link.

* Fix Wikipedia anchor.
2024-12-20 13:36:12 -05:00
Ryan Curtin 330b017891 Freelists has a redirect now. 2024-11-16 21:07:26 -05:00
Ryan Curtin 9b1824b25f Try a website that's not down. 2024-11-16 21:00:32 -05:00
Ryan Curtin 3c4ead453b Merge remote-tracking branch 'origin/master' into doc-rp-trees 2024-11-04 09:13:38 -05:00
Omar Shrit 67ef37e3c6 Merge pull request #3815 from rcurtin/doc-ub-tree
Document `UBTree`
2024-10-31 17:09:02 +01:00
Ryan Curtin 66bb13648d Merge remote-tracking branch 'origin/master' into doc-rp-trees 2024-10-25 10:20:38 -04:00
Martin Lambertsen 855a22f267 Modernize typedefs in docs 2024-10-25 11:20:47 +02:00
Ryan Curtin f09846cc2b Merge remote-tracking branch 'origin/master' into doc-ub-tree 2024-10-23 17:37:52 -04:00
Ryan Curtin cac046a9c1 Add links to UBTree documentation. 2024-10-21 21:26:18 -04:00
Martin Lambertsen f05ae22d60 Merge remote-tracking branch 'origin/master' into feature/modernize-type-traits 2024-10-17 06:56:56 +02:00
Ryan Curtin d545a99713 Update sidebar. 2024-10-16 15:17:37 -04:00
Martin Lambertsen 471a3daa27 Modernize STL type traits
With newer standards the readability of template heavy code can
be improved a lot by using a form with trailing _t for ::type and
_v for ::value respectively. Especially for ::type it also makes
the additional typename before the trait dispensable.

This PR combines multiple commits that modernize the traits,
starting with what clang-tidy could achieve while analyzing test files
and continuing by regex replaces with few manual corrections.

While it does not guarantee that all current occurrences are modernized,
it moves the codebase considerably into the modern direction. Note that
also before this PR both notations were used, so missing a few should
be acceptable.
2024-10-14 08:28:05 +02:00
Ryan Curtin 299a80a307 Merge remote-tracking branch 'rcurtin/doc-ball-tree' into doc-mean-split-ball-tree 2024-09-30 14:50:07 -04:00
Ryan Curtin 1bbe494936 Merge remote-tracking branch 'origin/master' into doc-mean-split-ball-tree 2024-09-30 14:49:36 -04:00
Ryan Curtin 4e654ea321 Document MeanSplitBallTree. 2024-09-30 14:48:28 -04:00
Ryan Curtin 14fe038844 Merge remote-tracking branch 'origin/master' into doc-ball-tree 2024-09-30 11:50:39 -04:00
Ryan Curtin 9d959099c2 Add documentation for BallBound and BallTree. 2024-09-25 12:47:18 -04:00
Ryan Curtin d79111f86b Update links in TreeType API documentation. 2024-09-23 17:38:26 -04:00
Ryan Curtin 62275b0571 Fix links in documentation. 2024-09-19 09:16:05 -04:00
Ryan Curtin f21ce5016d Fix minor issues in examples. 2024-09-12 19:36:09 -04:00
Ryan Curtin b963b60815 Add documentation for trees in its own file. 2024-09-12 18:33:13 -04:00
Ryan Curtin ade86a033f Merge branch 'core-into-multiple-pages' into kdtree-doc 2024-09-07 16:01:52 -04:00
Ryan Curtin 936224b45f Fix all links in generated documentation. 2024-09-06 22:30:14 -04:00
Ryan Curtin d2a470b71d First pass at documenting kd-trees. 2024-09-05 11:32:02 -04:00
Ryan Curtin 06cb3982ff Fix developer.md code build. 2024-06-25 10:24:16 -04:00
Ryan Curtin 141790ce20 More links to fix... 2024-06-16 11:52:27 -04:00
Ryan Curtin 4ad3957bba Merge remote-tracking branch 'origin/master' into metric-doc 2024-06-14 15:39:32 -04:00
Ryan Curtin cccf60d974 Move metrics to distances/ and dists to distributions/. And adapt... everything. 2024-06-14 15:14:48 -04:00
Ryan Curtin 7c0fc71f0c Update list of kernels to use links. 2024-06-12 09:09:48 -04:00
Ryan Curtin 806de3ca44 Better URL for books. 2024-06-06 20:02:41 -04:00
Ryan Curtin 401ede16e3 Fix bad links in new developer documentation. 2024-05-25 20:57:01 -04:00
Ryan Curtin b4348a0dd7 Fix incorrect link. 2024-05-25 16:37:01 -04:00
Ryan Curtin b7cb52e075 Move community and GSoC pages away from website and into documentation. 2024-05-14 22:59:09 -04:00
Abhimanyu Dayal ac8ff38ad3 Update bindings.md 2024-03-27 08:53:16 +05:30
Abhimanyu Dayal 7f1a6566ea Made minor changes to documentation - bindings.md 2024-03-27 01:54:20 +05:30
Ryan Curtin 72cf442586 Fix all broken links and handle a few other TODOs. 2024-02-26 20:13:04 -05:00
Ryan Curtin bd428901c8 Add first pass at main documentation page. 2023-12-21 11:00:14 -05:00
Aditya Raj 30a94a6549 Fixed misleading path 2023-02-06 17:30:05 +05:30
Aditya Raj 46bcedff81 Minor doc fix in bindings.md
I have encountered some minor doc issues while going through the file.
I have tried to fix some of them.

Thanks 
Adi
2023-02-03 19:10:28 +05:30
Adarsh SantoriaandRyan Curtin 58d3f1f515 Update doc/developer/trees.md
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2023-02-02 01:19:07 +05:30
Adarsh SantoriaandRyan Curtin 430d071d11 Update doc/developer/trees.md
Co-authored-by: Ryan Curtin <ryan@ratml.org>
2023-02-02 01:17:45 +05:30
Adarsh Santoria 54ec3046c4 fixing typo in trees.md 2023-02-01 17:02:45 +05:30
Adarsh Santoria 152837ffd2 fixing links in kernels.md 2023-02-01 16:53:40 +05:30
Adarsh Santoria b4f7222af0 fixing links in metrics.md 2023-02-01 16:50:57 +05:30