Apache NetBeans IDE 32 reached general availability today, with the 32 tag superseding its three release candidates. The catch is that GitHub still flags the official build under the "Pre-release" badge, meaning it won't appear under the "Latest release" tab where most users look. The feature-complete quarterly drop brings Gradle 9.8, Maven running on JDK 27, Tomcat 11, JavaFX FXML support, and signed Git commits over SSH. Fixing the single mislabel would fix visibility, with NB 33 expected around February 2027.
Apache NetBeans IDE 32 Ships as GA Release, Still Labeled "Pre-release" on GitHub
The official Apache build is real. It just isn't showing up where you'd expect it to.
Apache NetBeans IDE 32 has reached general availability, and it counts. The Apache Software Foundation's stable IDE dropped on November 12, 2026, confirms release engineer Eric Barboni. The 32 tag supersedes the three release candidates that came before it, closing out a cycle that began with a feature freeze back on October 15.
But there's a wrinkle. Head to the GitHub release page right now, and the build is still sitting under the "Pre-release" badge.
That's the part that nags. A GA build that has cleared its PMC vote really shouldn't carry the same tag as a candidate. Yet here it is, grouped in with the release candidates. You get the picture.
It's not purely cosmetic, either. GitHub splits its releases into two tabs: "Latest release" and "Pre-release." A GA tag stuck in the pre-release bucket won't show up under Latest Release, which is where most visitors land first.
The practical fallout is real. Aggregators and people scanning for the newest build can miss NB 32 entirely. Automated update centers and download scripts that tell GA from candidate apart may treat the official build as a candidate. The download link is fine. The framing around it isn't.
Keep in mind the RC tags are correctly marked as pre-releases. They're genuinely candidates. The 32 tag isn't. As of writing, the glitch still stands.
From feature freeze to GA
NetBeans runs a predictable quarterly schedule, and NB 32 followed the standard playbook. The whole thing is tracked in GitHub issue #9684, the project's Release Checklist.
Barboni opened and pinned the checklist issue on October 8. The feature freeze landed on October 15, with RC1 published that very day (commit 0104eeb). RC2 rolled out a week or so later. RC3, the final candidate, went out November 4 as a small bug-fix-only build.
The PMC voting window ran November 7 through 15, with a GA target of November 15–30. It landed November 12 instead, a few days early. That suggests the vote cleared cleanly and ahead of schedule.
Per the release README, the official GA is built from the same git hash as the last RC, commit fc5046f. So NB 32 carries exactly what got locked at the October 15 freeze. Nothing new crept in during the candidate phase. Well, except timing.
What's actually in NetBeans 32
The feature set was frozen in October, which means RC1 already had the real substance. RC2 and RC3 were polish. The full GA changelog spans roughly 196 commits across 2,246 files, pulled from about 19 contributors. Decent, active cycle.
Here's a rough tour of the highlights.
Build tools got their usual treatment. Gradle moved to 9.8.0. Maven now actually runs on JDK 27, and it adds support for the Java Single File Launcher in non-Java projects. Remote index downloads now pause when rate-limited.
The debugger got sharper. Hyperlinks jump straight to object variables and values in the console. The JTReg debugger bridge now listens on loopback for stability. There's a fix for "Save Value to File" on large debugger strings.
Indexing jumped a generation. Apache Lucene went from 9.12.3 to 10.5.1. Error messages around crashing annotation processors got clearer, and code completion handles intersection types better now.
JavaFX picked up the openjfx-fxml library, pulling XML-based FXML GUI definitions into OpenJFX support. Arguably the freshest addition of the whole cycle.
On the enterprise side, GlassFish 8 support is here, versions 8.0.1 through 8.0.4, plus a Payara reload fix. A batch of JSF/EL improvements rounds it out, including custom-component URN namespaces and smarter bean lookup on conflicting JSF versions.
Version control saw a broad upgrade. JGit moved to 7.7.1. Bouncy Castle to 1.85 and 1.86. Apache Mina SSH to 2.19 and 2.20. Git commit signing over SSH is now enabled, and a missing package import that used to throw ClassNotFoundException on Negotiate/Kerberos auth is finally fixed. The commit dialog no longer wraps its lines.
Docker can pull on a specific tag now, and you can define container environment variables straight from the run dialog.
The one warning that actually bites.
The release carries a notice aimed at platform and plugin developers. Setting a content type by MIME-type string for editor kits is no longer supported. It'll break on JDK 27 and later. The fix is to grab the EditorKit directly:
// Old (deprecated, breaks on JDK 27+):
jtextarea.setContentType("text/x-properties");
// New:
jtextarea.setEditorKit(CloneableEditorSupport.getEditorKit("text/x-properties"));
Set nb.disable.editorkit.hack=true to silence the warning, but that only mutes the alarm. Ignore it outright and a JEditorPane falls back to a plain-text kit. The project frames this as a cleanup of deprecated APIs ahead of JDK 27 support. Whether that framing fully lands with developers who have to change working code is another matter entirely.
The AI angle
The NB32 cycle ran on a core group of committers, including Marek Bien, Eric Barboni, and Jaroslav Tulach, plus a dozen or so others.
First-time contributors this cycle include @wilx, @gem-bricks, and @mvanhorn. The last one's PR, which sanitizes erroneous package annotations before index generation (pull #9777), carries an "Assisted-by: AI" tag. Small but telling. NetBeans now flags AI-assisted fixes in its README outright, so if you're reading the changelog, you'll see the pattern.
Why it matters
NetBeans 32 is a mature, feature-complete quarterly release. It keeps the IDE current with modern Java tooling: Gradle 9.8, Maven on JDK 27, Tomcat 11, JavaFX FXML, signed Git commits over SSH, and a beefier Jakarta EE/JSF story. The build itself is sound.
The only real blemish is cosmetic. An official GA that GitHub still presents as a pre-release. Dropping that single flag would put NB 32 under "Latest release," where developers actually look, and clear up confusion for anyone downloading what they think is a candidate build.
Apache NetBeans keeps its quarterly rhythm. With NB 32 out in November 2026, NB 33 would land around February 2027 under the standard schedule.
Head here to the GitHub release page for the download. The project recommends the latest JDK update release for the smoothest run.
