Skip to content

Migrate tribuo tutorials on notebooks using java kernel to use %maven instead of %jars #429

Open

Description

@BrayanMnz

Ask the question

I’m working through the Tribuo tutorials using the IJava Jupyter kernel, specifically tutorials like:

https://tribuo.org/learn/4.3/tutorials/irises-tribuo-v4.html

The notebooks currently assume that several JARs are already present locally and use %jars magic commands such as:

%jars ./olcut-core-5.1.4-SNAPSHOT.jar
%jars ./tribuo-classification-experiments-4.0.0-SNAPSHOT-jar-with-dependencies.jar
%jars ./tribuo-json-4.0.0-SNAPSHOT-jar-with-dependencies.jar

This works, but it requires readers to manually locate, download, and manage these JAR files ahead of time.

Would the maintainers be open to updating these tutorial notebooks to instead use the IJava %maven magic to pull dependencies directly from Maven Central, for example:

%maven com.oracle.labs.olcut:olcut-core:5.1.4
%maven org.tribuo:tribuo-classification-experiments:4.0.0
%maven org.tribuo:tribuo-json:4.0.0
%maven com.fasterxml.jackson.core:jackson-databind:2.20.1

While %maven is slightly slower due to dependency downloads, it significantly improves the out-of-the-box experience:

No manual JAR downloads

More portable notebooks

Easier for new users to follow tutorials

Aligns with common Jupyter + Java workflows

The %maven magic is a standard IJava line magic that dynamically adds Maven dependencies to the notebook classpath at runtime.

If this approach is acceptable, I’d be happy to contribute a PR updating the affected tutorials accordingly.

Is your question about a specific ML algorithm or approach?
Please describe the ML algorithm, with appropriate links or references.

Is your question about a specific Tribuo class?
List the classes involved.

System details

  • Tribuo version
  • Java version (if appropriate)
  • OS/Architecture (if appropriate)

Additional context
Tutorials links that shows the explained situation:

Activity

  1. Craigacp commented on Jan 21, 2026

    @Craigacp
    Member

    We're going to migrate these tutorials to use the Java notebook built into Oracle's Java VSCode plugin as that stabilises.

    The reason historically we used %jars is that the %maven magic was bad at using proxies for some reason I couldn't figure out, and many large companies including Oracle have their internal network behind a proxy.

  2. Craigacp commented on Jan 21, 2026

    @Craigacp
    Member

    The tutorials have also ended up slightly out of sync on the website as they don't have the right versions anymore so that needs fixing too.

  3. BrayanMnz commented on Jan 21, 2026

    @BrayanMnz
    ContributorAuthor

    Count me on for these migrations, I am open to contribute and help wherever is needed. Let me know if there is any mailing list that I should subscribe to.

    Maybe the roadmap also needs an update adding these kinds of things?

    In the meantime, should I go ahead and upgrade the version on the current tutorials for them to use the latest available versions?

  4. Craigacp commented on Jan 21, 2026

    @Craigacp
    Member

    The tutorials are correct in this repo, but the generated html from them in oracle/tribuo-site is wrong only for the version in v4.3 due to an oversight the last time I fully regenerated the website. I put up a PR in tribuo-site to fix it, we'll merge that once it's been reviewed by someone else in our group.

    I was discussing Tribuo's tutorials with the developers of the Java notebook system in our VS Code plug in late last year, and there were a few issues with the notebook formatting which I need to circle back to them about. Also the VSCode plugin requires a user to pick the project that provides the classpath for the notebook, and so the language in the tutorials will need updating to tell the user which project to pick (likely tribuo-distribution), and also to note exactly which bits of Tribuo are necessary for that notebook as tribuo-distribution pulls in everything. I'd quite like this to be fixed in their notebooks to allow users to compose the classpath by selecting multiple projects, or to use magics like IJava does, but I don't know what their current priorities are. So I'm not sure when we'll do the switchover just yet.

  5. Craigacp commented on Jan 21, 2026

    @Craigacp
    Member

    Tribuo does have a mailing list, but it is essentially unused at this point.

    The roadmap also needs updating, as many things on the current roadmap are actually in progress, just slowly. I'm not sure what the current development priorities should be at the moment, we've had less time for development work on it recently and I'm unclear what needs are not being met in the community.

  6. BrayanMnz commented on May 11, 2026

    @BrayanMnz
    ContributorAuthor

    Are Oracle/you open with onboarding new maintainers or contributors that can help move it forward in a fastest pace?

  7. Craigacp commented on May 12, 2026

    @Craigacp
    Member

    Contributions are always welcome, but projects hosted in Oracle's space on GitHub have to have Oracle maintainers.

    Our group has had a number of organizational changes over the past year or so and things have been a bit complicated. I have a certain amount of bandwidth for open source projects and that's split 3 ways, so I haven't been able to push Tribuo forward as much as I'd like. I've made some slow progress on the areas I'm actively working on (which at the moment are tokenizers, a refactoring of the ONNX code to make it easier to use embeddings, an implementation of isolation forests, and some design work on a hypothesis testing package), but the only thing ready for review is the L-BFGS & GP PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionGeneral question

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions