I can also help out as a mentor. There is also a good point to make
about Apache Groovy in the "Relationships with Other Apache Products"
section. I think you could add something like:

Apache Groovy ships a JSpecify-aware compile-time nullness checker
(NullChecker, Groovy 6) and supports joint Java/Groovy compilation.
The projects share the JSpecify annotation model, enabling natural
collaboration on annotation semantics, shared conformance/regression
testing, and mixed-language builds where NullAway checks the Java half
and Groovy's tooling checks the Groovy half.

I wouldn't necessarily see code sharing as a goal but interworking and
cross-checking test suites might be valuable. FYI, here is an AI read
of the fit:

----
Where the two tools sit

Both are annotation-driven, deliberately-not-fully-sound build-time
nullness checkers that support JSpecify plus other annotation
flavours, and both position themselves against the Checker Framework
on the "practicality over absolute soundness" axis. The differences
are the interesting part:
  - NullAway is a javac/Error Prone plugin, checks Java, requires
annotations (its treatment of unannotated code is optimistic), and has
~8 years of production hardening at Uber plus adoption by Spring,
JUnit, AssertJ, Micronaut.
  - NullChecker is a @TypeChecked extension, checks Groovy,
understands Groovy idioms (?., ?:, Groovy truth, @Lazy), has a
no-annotation flow-sensitive strict mode NullAway has no equivalent
of, and integrates with groovy-contracts (@Requires({ x != null })
read as implicit @NonNull.
  - groovy-verify sits a rung above both: null dereference absence is
one of its implicit proof obligations (Phase 1 capability), discharged
by Z3 rather than heuristics, sound within its fragment and loudly
partial outside it.

That's a coherent three-rung ladder — heuristic checking per language
(NullAway for Java, NullChecker for Groovy), proof for the fragment
that warrants it — and in a joint-compilation build the first two
rungs would literally run in the same build.
----


On Wed, Aug 12, 2026 at 6:04 AM Manu Sridharan <[email protected]> wrote:
>
>  Thanks for the initial feedback and encouragement!
>
> Shuxin, yes, the email corrected the timeline.  I put in a request for edit
> access to the incubator wiki (Justin uploaded the first version).  Once I
> get edit access I will update the proposal on the wiki; the version
> attached to the email was the latest version.
>
> Calvin, it would be great to have you onboard as a mentor, thanks for the
> offer!
>
> Best,
> Manu
>
>
> On Aug 10, 2026 at 20:40:37, Shuxin Pan <[email protected]> wrote:
>
> > Hi Manu,
> >
> > For context, I am not an IPMC member; I am commenting as someone who
> > has used NullAway.
> >
> > From a user’s perspective, I am positive about the proposal and
> > believe that ASF incubation could help the project build a more
> > diverse, community-driven governance model.
> >
> > I noticed that the email says 6–24 months, while the proposal page
> > says 2–24 months. I assume the latter is simply a typo, as two months
> > would be inconsistent with the proposal’s own 6–12 month goals.
> >
> > In any case, I would be very happy to see NullAway join the Apache
> > Incubator!
> >
> > Best regards,Shuxin Pan
> >
> > On Tue, Aug 11, 2026 at 5:58 AM Manu Sridharan <[email protected]> wrote:
> >
> >
> > Hi everyone,
> >
> >
> > I would like to start discussion of a proposal to make NullAway (
> >
> > https://github.com/uber/NullAway) an Apache Incubator project.  The
> >
> > proposal is here:
> >
> >
> >
> > https://cwiki.apache.org/confluence/spaces/INCUBATOR/pages/440304640/NullAwayProposal
> >
> >
> > I’ve pasted a slightly updated version of the proposal below that addresses
> >
> > some initial feedback (we’ll get the wiki version updated soon).  We have
> >
> > Justin Mclean as a champion, but we are in need of mentors, if you are able
> >
> > to help.  Thanks in advance for your feedback and thoughts!
> >
> >
> > Best regards,
> >
> > Manu
> >
> >
> > ----------------------------------------
> >
> >
> > # New Podling Proposal: Apache NullAway (incubating)
> >
> >
> > ## Abstract
> >
> > NullAway is a fast, annotation-based nullness checker for Java that helps
> >
> > eliminate `NullPointerException`s at build time with minimal overhead.
> >
> >
> > ## Proposal
> >
> > NullAway is a tool designed to eliminate `NullPointerException`s (NPEs) in
> >
> > Java code. To use NullAway, developers add `@Nullable` annotations to their
> >
> > code wherever a field, method parameter, or return value may be `null`.
> >
> > Given these annotations, NullAway performs a series of type-based, local
> >
> > checks to ensure that any pointer that gets dereferenced in the code cannot
> >
> > be `null`. NullAway provides similar type-based nullability checking to
> >
> > languages like Kotlin and Swift, or the Checker Framework nullness checker
> >
> > for Java.
> >
> >
> > NullAway is designed for high-performance production environments. Built as
> >
> > a plugin to Google's Error Prone framework, it runs on every single local
> >
> > or CI build of a project. In production measurements, the build-time
> >
> > overhead of running NullAway is typically less than 10%. NullAway is
> >
> > practical: it balances absolute soundness with developer productivity,
> >
> > catching the vast majority of production NPEs while imposing a reasonable
> >
> > annotation burden. Furthermore, NullAway supports a variety of nullness
> >
> > annotations, including the newly standardized JSpecify nullability
> >
> > annotations.
> >
> >
> > ## Background
> >
> > NullAway was initially developed at Uber and open-sourced in 2017. Since
> >
> > then, NullAway has built a large, passionate community of users,
> >
> > accumulating approximately 4,000 stars on GitHub.
> >
> >
> > Recently, the JSpecify working group released version 1.0 of a standardized
> >
> > set of Java annotations for nullness properties with well-specified
> >
> > semantics. NullAway is actively working towards full JSpecify support. With
> >
> > the increasing adoption of JSpecify across the Java ecosystem, the rate of
> >
> > new users, community issues, and pull requests for NullAway has increased
> >
> > significantly.
> >
> >
> > ## Rationale
> >
> > NullAway plays an increasingly critical role for nullness safety in the
> >
> > Java ecosystem. As JSpecify annotations become widely adopted—both due to
> >
> > industry standardization and in anticipation of native nullness types being
> >
> > added to the Java language itself—the ecosystem needs a fast tool to
> >
> > enforce them. NullAway provides fast consistency and safety checking for
> >
> > these annotations, making it suitable for both continuous integration
> >
> > pipelines and local developer workflows.
> >
> >
> > We believe shifting NullAway to the Apache Software Foundation as a
> >
> > community-owned project will decouple it from any single corporate entity,
> >
> > formalize its governance, attract new enterprise contributors, and ensure
> >
> > its long-term health and neutrality.
> >
> >
> > ## Initial Goals
> >
> > The NullAway project targets the following milestones during its first 6 to
> >
> > 12 months of incubation:
> >
> >
> > * **Complete IP Clearance and Donation:** Execute an ASF software grant
> >
> > from the current rights holder (Uber Technologies Inc.), ensure all initial
> >
> > committers file ICLAs, and import the code into ASF infrastructure.
> >
> > * **Establish Apache Governance:** Transition from a single-maintainer
> >
> > model to dev-list-driven decisions, documented voting practices, clear
> >
> > roles (release managers, triagers), and transparent committer nomination.
> >
> > * **Produce Apache-Compliant Releases:** Set up automated, source-only
> >
> > releases with appropriate signatures, checksums, and audited
> >
> > `LICENSE`/`NOTICE` files.
> >
> > * **Strengthen Onboarding Pathways:** Improve contributor documentation and
> >
> > label "good first issues" to expand the contribution ladder toward
> >
> > maintainership.
> >
> > * **Ecosystem Interoperability:** Enhance documentation and support for
> >
> > common build tool integrations, collaborating closely with the broader
> >
> > nullness annotation ecosystem (e.g., JSpecify).
> >
> >
> > ---
> >
> >
> > ## Current Status
> >
> >
> > ### Meritocracy
> >
> > We fully embrace meritocracy. A core motivation for joining the ASF is to
> >
> > expand the project's leadership. While NullAway has historically been
> >
> > developed in the open with public issue tracking and pull requests, a
> >
> > single developer (Manu Sridharan) has been responsible for the majority of
> >
> > recent commits.
> >
> >
> > Moving NullAway to the ASF will signal to external contributors that the
> >
> > project welcomes community ownership. We intend to establish clear,
> >
> > merit-based pathways where sustained, high-quality contributions (code,
> >
> > reviews, documentation, or triage) quickly earn commit access and PMC
> >
> > membership.
> >
> >
> > ### Community
> >
> > * **Contributors:** There are currently 70 unique contributors (Source:
> >
> > https://github.com/uber/NullAway/graphs/contributors)
> >
> > * **Downstream Users:** NullAway is widely adopted across high-profile
> >
> > open-source frameworks and massive internal codebases, including:
> >
> >     * Core Spring projects (including Spring Framework and Spring Boot)
> >
> >     * Micronaut Framework
> >
> >     * JUnit unit testing library
> >
> >     * AssertJ test assertion library
> >
> >     * Uber (internally for all backend and Android Java code)
> >
> >
> > ### Core Developers
> >
> > * **Manu Sridharan:** Primary developer and maintainer since inception in
> >
> > 2017.
> >
> > * **Lazaro Clapp:** Developer and maintainer.
> >
> > * **Yuxin Wang (Uber):** Code reviewer and contributor.
> >
> > * **Stefano Cordio (AssertJ):** Code reviewer and contributor.
> >
> >
> > ### Alignment
> >
> > The ASF hosts the foundational tooling of the Java ecosystem (e.g., Apache
> >
> > Maven, Apache Commons). NullAway directly complements these projects by
> >
> > offering compile-time code quality checks.
> >
> >
> > The project is currently licensed under the permissive MIT license, and a
> >
> > Contributor License Agreement (CLA) mechanism has been in place since its
> >
> > inception. Transitioning the codebase to the Apache License, Version 2.0
> >
> > will be straightforward (the sufficiency of the Uber CLA for re-licensing
> >
> > has been confirmed).
> >
> >
> > ---
> >
> >
> > ## Known Risks
> >
> >
> > ### Project Name
> >
> > NullAway does not currently hold a registered trademark. Upon acceptance
> >
> > into incubation, a formal **Podling Name Search (PNS)** will be conducted
> >
> > to ensure the name does not conflict with existing trademarks. Uber will
> >
> > transfer any implicit naming rights or brand equity associated with the
> >
> > project to the ASF.
> >
> >
> > ### Orphaned Products
> >
> > NullAway is heavily relied upon by major enterprises and core open-source
> >
> > projects like Spring and JUnit. The current development team is fully
> >
> > committed to maintaining and improving the tool to support JSpecify and
> >
> > future Java ecosystem updates. The risk of the project becoming orphaned is
> >
> > incredibly low.
> >
> >
> > ### Length of Incubation
> >
> > We expect NullAway to remain in incubation for between 6 to 24 months. This
> >
> > timeline will allow the project to fully diversify its contributor base,
> >
> > execute several compliant Apache releases, and demonstrate a
> >
> > self-sustaining community operating under the "Apache Way."
> >
> >
> > ### Homogeneous Developers
> >
> > * **Risk:** The project currently relies heavily on one primary developer
> >
> > for its core logic, representing a bus-factor and architectural bottleneck
> >
> > risk.
> >
> > * **Mitigation:** We are actively executing a cross-organization
> >
> > recruitment plan targeting:
> >
> >     1. **Large Downstream Adopters:** Inviting active users from
> >
> > organizations deploying NullAway at scale (e.g., Spring, Micronaut) to
> >
> > steward integrations.
> >
> >     2. **JSpecify Working Group Participants:** Recruiting contributors
> >
> > from member organizations involved in the multi-company JSpecify effort to
> >
> > build out shared nullness semantics.
> >
> >
> > ### Governance
> >
> > * **Risk:** The project could be perceived as centrally controlled or
> >
> > dependent on a Benevolent Dictator for Life (BDFL) model; we're very keen
> >
> > to change this.
> >
> > * **Mitigation:** During an initial public discussion on `
> >
> > [email protected]` (begun September 23, 2025), the project
> >
> > initiator explicitly welcomed a shift away from a BDFL model to a
> >
> > formalized, stakeholder-driven process. NullAway will adopt Apache
> >
> > governance norms from day one, ensuring all architectural roadmaps and
> >
> > releases are voted on publicly via the mailing list.
> >
> >
> > ### Relationships with Other Apache Products
> >
> > NullAway complements existing build and quality tools used in the Java
> >
> > ecosystem. It does not duplicate or compete with any existing Apache
> >
> > Top-Level Projects; rather, it introduces a highly focused, compile-time
> >
> > nullness analysis layer that can be seamlessly adopted by other Apache Java
> >
> > projects.
> >
> >
> > ### Inexperience with Open Source
> >
> >
> > NullAway has been open source since 2017 and has had numerous improvements
> >
> > since its open-source release.  All of the initial committers have
> >
> > significant open-source experience; see their GitHub profiles (
> >
> > https://github.com/msridhar, https://github.com/lazaroclapp,
> >
> > https://github.com/yuxincs, https://github.com/scordio).
> >
> >
> > ### Reliance on Salaried Developers
> >
> >
> > NullAway's current primary developer Manu Sridharan has been maintaining
> >
> > and improving NullAway as both a personal project and as it relates to his
> >
> > research work as a professor; his salary does not explicitly pay for work
> >
> > for NullAway.  Similarly, Lazaro Clapp has continued to contribute to
> >
> > NullAway as a personal project.  So, NullAway does not have an
> >
> > over-reliance on salaried developers.  We aim for a mix of salaried
> >
> > developers and volunteers as contributors, to be representative of
> >
> > NullAway's user base.
> >
> >
> > ---
> >
> >
> > ## Documentation
> >
> > * **Main README:** https://github.com/uber/NullAway/blob/master/README.md
> >
> > * **Project Wiki:** https://github.com/uber/NullAway/wiki
> >
> >
> > ## Initial Source
> >
> > * **Source Code Repository:** https://github.com/uber/NullAway
> >
> >
> > ## Source and Intellectual Property Submission Plan
> >
> > 1.  **Software Grant:** Obtain an official ASF Software Grant Agreement
> >
> > (SGA) from Uber Technologies Inc. covering the existing NullAway codebase.
> >
> > 2.  **Contributor License Agreements:** Ensure all initial committers have
> >
> > filed individual CLAs (ICLAs) and, where applicable, Corporate CLAs (CCLA)
> >
> > with the ASF.
> >
> > 3.  **Code Import:** Migrate the repository history into ASF infrastructure
> >
> > while preserving metadata and clear provenance.
> >
> > 4.  **License & Notice Compliance:** Audit all third-party code, remove any
> >
> > incompatible assets, add standard Apache `LICENSE` and `NOTICE` text, and
> >
> > reheader source files with the standard Apache license block.
> >
> >
> > ### External Dependencies
> >
> > NullAway relies on the following external dependencies at compile or build
> >
> > time:
> >
> > * **Google Error Prone** (Apache 2.0)
> >
> > * **Google Guava** (Apache 2.0)
> >
> > * **JSpecify Annotations** (Apache 2.0)
> >
> > * **Checker Framework Dataflow Library** (GPLv2 with Classpath Exception)
> >
> >     * *Note on Compliance:* NullAway does not bundle or re-distribute any
> >
> > Checker Framework binaries or source code. Users consume this library via
> >
> > standard dynamic linking during the compilation process. This setup
> >
> > complies with ASF third-party licensing policies as a Category B / system
> >
> > runtime requirement (similar to Google Error Prone’s existing structure).
> >
> >
> > ### Cryptography
> >
> > Not applicable. NullAway does not implement, use, or distribute
> >
> > cryptographic software.
> >
> >
> > ---
> >
> >
> > ## Required Resources
> >
> >
> > ### Mailing Lists
> >
> > * `[email protected]` (for community discussion and technical
> >
> > decisions)
> >
> > * `[email protected]` (for repository commit notifications)
> >
> > * `[email protected]` (for issue tracking notifications)
> >
> > * `[email protected]` (for confidential podling matters)
> >
> >
> > ### Repositories
> >
> > The project will utilize the ASF GitBox system to provide
> >
> > write-synchronization between ASF infrastructure and GitHub:
> >
> > * https://gitbox.apache.org/asf/repos/nullaway
> >
> > * https://github.com/apache/nullaway
> >
> >
> > ### Issue Tracking
> >
> > The project requests to continue utilizing **GitHub Issues** integrated
> >
> > with the Apache GitHub repository to maintain continuity for our existing
> >
> > user base. We are open to discuss this further if this is not a preferred
> >
> > way of engagement with our community.
> >
> >
> > ### Other Resources
> >
> > * **Continuous Integration:** GitHub Actions (leveraging standard
> >
> > ASF-provided runners).
> >
> > * **Website:** A standard Apache Incubator hosted website (`
> >
> > http://nullaway.incubator.apache.org/`) managed via Git-backed markdown.
> >
> >
> > ---
> >
> >
> > ## Initial Committers
> >
> > * **Manu Sridharan** (Current Maintainer) — ICLA to be filed.
> >
> > * **Yuxin Wang** (Uber) — ICLA to be filed or utilize Uber CCLA.
> >
> > * **Lazaro Clapp** — ICLA to be filed.
> >
> > * **Stefano Cordio** — ICLA to be filed.
> >
> >
> >
> > There is already an CCLA in place for Uber and ASF which would cover any
> >
> > future Uber inbound contributions.
> >
> >
> > ## Sponsors
> >
> >
> > ### Champion
> >
> > * Justin Mclean
> >
> >
> > ### Nominated Mentors
> >
> > * Justin Mclean
> >
> > * *(Additional mentors to be recruited during the discussion phase)*
> >
> >
> > ### Sponsoring Entity
> >
> > * The Apache Incubator PMC
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to