跳到主要内容

maturity

Maturity Assessment for Apache Uniffle (incubating)

The goals of this maturity model are to describe how Apache projects operate in a concise and high-level way, and to provide a basic framework that projects may choose to use to evaluate themselves.

More details can be found here.

Status of this assessment

This assessment is evaluated during Uniffle's graduation, which is finished on 2024-11-29.

Maturity model assessment

The following table is filled according to the Apache Maturity Model. Mentors and community members are welcome to comment and modify it.

CODE

IDDescriptionStatus
CD10The project produces Open Source software for distribution to the public, at no charge.YES The project's source code is licensed under the Apache License 2.0.
CD20Anyone can easily discover and access the project's code.YES The official website includes GitHub link which can access the project's repository on GitHub directly.
CD30Anyone using standard, widely-available tools, can build the code in a reproducible way.YES Apache Uniffle provides a how-to-build document for each component to guide users on how to compile on bare metal, such as the document.
CD40The full history of the project's code is available via a source code control system, in a way that allows anyone to recreate any released version.YES It depends on git, and anyone can view the full history of the project via commit logs.
CD50The source code control system establishes the provenance of each line of code in a reliable way, based on strong authentication of the committer. When third parties contribute code, commit messages provide reliable information about the code provenance.YES The project uses GitHub and managed by Apache Infra, it ensuring provenance of each line of code to a committer. And the third-party contributions are accepted in accordance with the contributing guides.

LICENSE

IDDescriptionStatus
LC10The Apache License, version 2.0, covers the released code.YES The LICENSE is in GitHub repository. And all source files are with APLv2 header, checked by rat.
LC20Libraries that are mandatory dependencies of the project's code do not create more restrictions than the Apache License does.YES All dependencies are listed.
LC30The libraries mentioned in LC20 are available as Open Source software.YES All dependencies listed are available as Open Source software
LC40Committers are bound by an Individual Contributor Agreement (the "Apache iCLA") that defines which code they may commit and how they need to identify code that is not their own.YES All committers have iCLAs.
LC50The project clearly defines and documents the copyright ownership of everything that the project produces.YES All source files are with APLv2 header, checked by rat.

Releases

IDDescriptionStatus
RE10Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term.YES Source release is distributed via dist.apache.org and linked from download page.
RE20The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation.YES All releases have been voted at dev@uniffle.apache.org and general@incubator.apache.org, and have at least 3 PPMC member's votes.
RE30Releases are signed and/or distributed along with digests that anyone can reliably use to validate the downloaded archives.YES All releases are signed, and the KEYS are available.
RE40The project can distribute convenience binaries alongside source code, but they are not Apache releases, they are provided with no guarantee.YES Convenience binaries are distributed via dist.apache.org
RE50The project documents a repeatable release process so that someone new to the project can independently generate the complete set of artifacts required for a release.YES We can follow the Release guide to make a new Apache Uniffle release, and so far we had 7 different release managers.

Quality

IDDescriptionStatus
QU10The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated.YES We encourage users to report issues.
QU20The project puts a very high priority on producing secure software.YES All security issues will be addressed within 3 days.
QU30The project provides a well-documented, secure and private channel to report security issues, along with a documented way of responding to them.Yes The official website provides a security page
QU40The project puts a high priority on backwards compatibility and aims to document any incompatible changes and provide tools and documentation to help users transition to new features.Yes We follow semantic versions. As long as it's within one major version, it's backward compatible. And when any breaking changes added, we provide corresponding upgrade guides.
QU50The project strives to respond to documented bug reports in a timely manner.YES The project has resolved 900 issues and 1300+ pull requests so far, with very prompt response.

Community

IDDescriptionStatus
CO10The project has a well-known homepage that points to all the information required to operate according to this maturity model.YES The official website includes all information users need to run Apache Uniffle.
CO20The community welcomes contributions from anyone who acts in good faith and in a respectful manner, and who adds value to the project.Yes We provide contributing guides for every component. And we also have a general contributing guide
CO30Contributions include source code, documentation, constructive bug reports, constructive discussions, marketing and generally anything that adds value to the project.YES All good contributions including code and non-code are welcomed.
CO40The community strives to be meritocratic and gives more rights and responsibilities to contributors who, over time, add value to the project.YES The community has elected 1 new PPMC members and 9 new committers so far.
CO50The project documents how contributors can earn more rights such as commit access or decision power, and applies these principles consistently.YES The community has clear docs on becomming committers and PPMC members
CO60The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects.YES All decisions are made after vote by community members.
CO70The project strives to answer user questions in a timely manner.YES We use dev@uniffle.apache.org, GitHub issue and GitHub discussion to do this in a timely manner.

Consensus

IDDescriptionStatus
CS10The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors.Yes See members with committers.
CS20Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word.YES All decisions are made by votes on dev@uniffle.apache.org, and with at least 3 +1 votes from PPMC.
CS30The project uses documented voting rules to build consensus when discussion is not sufficient.YES The project uses the standard ASF voting rules.
CS40In Apache projects, vetoes are only valid for code commits. The person exercising the veto must justify it with a technical explanation, as per the Apache voting rules defined in CS30.YES Apache Uniffle community has not used the veto power yet except for code commits.
CS50All "important" discussions happen asynchronously in written form on the project's main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel.YES All important discussions and conclusions are recorded in written form.

Independence

IDDescriptionStatus
IN10The project is independent from any corporate or organizational influence.YES The PPMC members and committers of Apache Uniffle are from several different companies, and the majority of them are NOT from the company that donated this project.
IN20Contributors act as themselves, not as representatives of a corporation or organization.YES The contributors act on their own initiative without representing a corporation or organization.