Skip to content

Conversation

@PathogenDavid
Copy link
Contributor

@PathogenDavid PathogenDavid commented May 17, 2025

bonsai-rx/machinelearning-examples#18 should be merged prior to merging this PR.


(This PR was created semi-automatically.)

This PR brings the first iteration of the new standardized repository layout and CI workflows.

Major highlights include:

  • bonsai-rx/setup-bonsai
  • bonsai-rx/configure-build (RIP Python)
  • Consistent build and docfx setups
  • Everything builds and tests all the time, no more finding out the docs website was broken for 7 years
  • The GitHub Actions workflow view has a fun shape
  • Packages are published on GitHub continuously
  • Packages are published to NuGet.org upon release
  • Documentation website can be published continuously or upon release (latter is default, CONTINUOUS_DOCUMENTATION variable toggles it.)
  • Tooling to make these changes feasible to do and hopefully make it easier keep everything aligned in the future

Please note that there's still much I plan to do. More important than anything is that everything is consistent now which will make it easier to improve things going forward. Please resist the urge to tweak things that aren't outright broken. It's important that these PRs are merged sooner rather than later for anything being actively developed.

If this PR is marked as a draft, it's because the pipeline is known to be broken for some reason. See my org profile readme for links a status overview and links to various assets, along with a list of known-broken and excluded projects along with reasoning.

@PathogenDavid PathogenDavid force-pushed the main branch 3 times, most recently from eec68c4 to 1b6c494 Compare May 31, 2025 01:09
@PathogenDavid PathogenDavid marked this pull request as ready for review May 31, 2025 01:24
@PathogenDavid
Copy link
Contributor Author

Fixing this workflow properly will not be feasible before 2.9, so for now this PR will have rendering images and deploying docs disabled. I created #57 to make sure we remember to follow up on this.

@ncguilbeault
Copy link
Collaborator

Given that the full CI/CD workflow can't build the ml docs just yet, can we temporarily keep the original docs build workflow for this PR so that we still have the option to manually update the site as needed?

@PathogenDavid
Copy link
Contributor Author

PathogenDavid commented Jun 5, 2025

temporarily keep the original docs build workflow

That's the plan if the problem is more complicated than I'm hoping. I meant to look at this again earlier this week but got sidetracked.

I'm pretty sure it's going to be something simple, I just need dig into it locally since debugging via CI when it takes like 10 minutes to get to the point where it fails is untenable.

@PathogenDavid
Copy link
Contributor Author

I found the underlying issue and as predicted it was dumb. Will submit a fix and details tomorrow morning.

@PathogenDavid PathogenDavid marked this pull request as draft June 6, 2025 03:14
@PathogenDavid PathogenDavid force-pushed the main branch 6 times, most recently from 9945576 to 3ccde47 Compare June 12, 2025 05:53
@PathogenDavid PathogenDavid marked this pull request as ready for review June 12, 2025 06:14
@PathogenDavid
Copy link
Contributor Author

PathogenDavid commented Jun 12, 2025

So much for "tomorrow morning", sorry about that 😅

Screenshot showing rendering image check succeeding

The PR is fixed. The main fix was updating to Bonsai 2.9.0, but I also had to fix setup-bonsai because it was broken by 2.9.0 and the reason 2.9.0 works had to be applied to it as well.

bonsai-rx/machinelearning-examples#18 should be merged before this one.

Please take special note of 3ccde47 -- These workflows were out-of-date and broken due to various refactorings over the course of the past 6 months. (Thankfully CI will help these get noticed and fixed sooner going forward.)


The underlying issue that broke this repo had nothing to do with common CI, but was caused spirits.

The ghost of Windows 95 has come back to haunt us.

Specifically this is happening because because the name HiddenMarkovModels\InferringBehavioralStateFromKinematics is too much of a mouthful, and Bonsai.ML.Torch indirectly relies on SkiaSharp.NativeAssets.Linux.NoDependencies which is also quite the mouthful, and that package contains a file named SkiaSharp.NativeAssets.Linux.NoDependencies.targets which is (you guessed it) quite the mouthful.

All of these together mean that installing SkiaSharp.NativeAssets.Linux.NoDependencies results in NuGet wanting to write D:\a\machinelearning\machinelearning\docs\examples\examples\HiddenMarkovModels\InferringBehavioralStateFromKinematics\.bonsai\Packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.6\buildTransitive\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets, which is 260 characters long. 260 is exactly MAX_PATH, which means that path is exactly one (1) character too long since there's no space for the null terminator 🤦‍♀️🤦‍♀️🤦‍♀️

Thankfully Gonçalo randomly thought to enable long path support for Bonsai 2.9.0 via bonsai-rx/bonsai#2016

So for the most part, the underlying fix was to upgrade all of the environments to Bonsai 2.9.0

The app manifest change also had to be applied to setup-bonsai to give it long path support too, and I had to fix an unrelated compatibility issue with 2.9.0 in setup-bonsai that showed up.

Because Bonsai 2.9.0 doesn't tolerate broken workflows when rendering workflow images (bonsai-rx/bonsai#2267) I had to fix some workflows which had been silently broken for a while now.

@glopesdev glopesdev merged commit 7b30ccc into bonsai-rx:main Jun 12, 2025
10 checks passed
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.

3 participants