polylith

2026-06-10T19:15:29.337259Z

When running poly test as a dependency (`clojure -M:poly test`) the docs state: https://cljdoc.org/d/polylith/clj-poly/0.3.32/doc/install#use-as-dependency We need to run this on Java 17, as that is what the app will be deployed on (Datomic Cloud runs Java 17). I have tested it locally and clojure -M:poly test works on Java 17. What is the reason for requiring Java 21?

seancorfield 2026-06-10T20:05:04.913249Z

I think it's due to the JLine integration for poly shell and requiring --enable-native-access=ALL-UNNAMED -- and Copilot seems to agree.

seancorfield 2026-06-10T20:06:24.816909Z

So, if you're not using the shell interactivity, you're probably safe. I suspect the project is no longer tested on anything before JDK 21 so if you do hit problems, you might be in "unsupported" territory...

2026-06-10T20:54:25.533599Z

Thanks @seancorfield. Sounds like it would be OK to run it on Java 17, until we run into an error. If we do, we can always downgrade poly in our build environment. The reason I asked about this was because I wanted to upgrade the version of poly used in our build environment - we've been using an ancient version on there.

seancorfield 2026-06-10T22:59:03.646449Z

In some ways, I'm the wrong person to ask about old versions of anything 🙂 I'm always using the latest version of everything across all tiers. I'm testing against JDK 27 locally and we have JDK 26 everywhere (well, we are rolling it out in production this week -- about halfway done). And we've run a lot of Clojure alphas in production over the years 🙂

1