The Eclipse AQAvit project recently delivered its 1.0.0 release, marking the transition out of incubation to becoming a mature project under the Eclipse Foundation banner.
For those who are not aware, the governance and release process for projects is provided by the Eclipse Foundation. This process is provided to ensure compliance with non-technical criteria, including intellectual property management, branding, trademarks, legal documentation requirements, and the open source rules of engagement. I was pleasantly surprised that the process is streamlined for project leads.
Here’s an overview of the current status of the AQAvit project and what’s been involved since it joined the Eclipse Foundation.
AQAvit Is Bringing Quality Assurance to JDK Releases
As a quick refresher, the Eclipse AQAvit project is a very active subproject under Adoptium, focused on quality assurance of OpenJDK distributions via AQAvit verification. A broad range of companies participate in and contribute to the consistent and open approach that AQAvit provides. Working on open source quality assurance distributes the workload and frees up resources for participating companies. Participating companies recognise an outcome of this collaborative effort. AQAvit is rapidly becoming a de-facto standard for companies to evaluate distributions. In fact, the Adoptium marketplace requires distributions to run and pass the AQA verification suite of tests before they can be listed.
The project also provides developer support for both JDK developers and Java application developers through its publicly visible regular test runs, parameterisation, and bug tracking. It is also a flexible system that allows for the addition of new test material and for tuning to specific development needs. AQAvit was designed to integrate with various CI/CD tools, including GitHub Actions and Jenkins, making it a great choice for pull request testing and offering a continuous lens on the quality of code commits.
Eclipse Governance Lets Leads and Developers Focus on Coding and Innovation
As the project lead, I had some apprehension about the Eclipse process. Given that AQAvit already had multiple releases before joining the Eclipse Foundation, why did it need extra paperwork? How would that help things?
The governance from the Eclipse Foundation was both less onerous and more valuable than I initially anticipated. There is a funny divide between the desires of those who are generating open source content and those who consume it. Developers of content want and need to focus on content, and consumers need a few additional checks against the content being provided. In that divide lies the activities of the supporting services of the Eclipse Foundation.
The Eclipse Foundation is streamlining many of the steps, reviewing and requiring only pieces of documentation that are necessary to prove a project’s health or maturity. This includes the Licence, Readme, and Contributing files, as well as the requirement to have Code of Conduct and Security files present in every repository within a given Eclipse project.
The AQAvit project has its 7 repositories under the Adoptium GitHub organisation, and many of those required files are inherited from the GitHub organisation files. For the AQAvit 1.0.0 release review, there were very few updates needed.
Having the Eclipse release process look at the metadata and legal aspects of a project allows project leads and committers to focus on the day-to-day technical work and innovation. The AQAvit project typically coordinates its GitHub releases to be available a few weeks ahead of the JDK release schedule because the many vendors who distribute binaries built from source code originally sourced from the OpenJDK project use AQAvit to verify the quality of the binaries they are producing and distributing.
Because of this, AQAvit produces multiple releases per year in step with the JDK release schedule. The complementary Eclipse release process for a project only needs to happen once a year because the areas of focus it is concerned with do not change as rapidly.
AQAvit Will Continue to Evolve in 2024
Of course, this most recent release was far from AQAvit’s first, and certainly won’t be its last. In keeping with the AQAvit manifesto, the set of criteria we created to guide the work in the project, we want to continuously evolve the project alongside the ever-changing landscape of JDK implementations.
You can find an overview of some of the planned changes for 2024 on GitHub. We also have some stretch goals in mind, including:
- Enhancing developer support through the upcoming Trestle initiative
- Additional tools to support AQAvit verification
Please consider sharing your ideas on ways to continue to raise the quality bar for the Java ecosystem by participating in our community calls.