Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RFC 85: Policy regarding substantial code additions #5128

Merged
merged 13 commits into from Jan 25, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/source/development/rfc/index.rst
Expand Up @@ -91,3 +91,4 @@ RFC list
rfc81_coordinate_epoch
rfc83_use_of_project_sponsorship
rfc84_cmake
rfc85_policy_code_additions
85 changes: 85 additions & 0 deletions doc/source/development/rfc/rfc85_policy_code_additions.rst
@@ -0,0 +1,85 @@
.. _rfc-85:

===========================================================
RFC 85: Policy regarding substantial code additions
===========================================================

======== ==================================================
Authors: Howard Butler, Even Rouault
======== ==================================================
Started: 2022-01-17
Status: Development
======== ==================================================

Summary
-------

This document describes the policies that the GDAL project will apply to assess
substantial code additions, typically new drivers, in particular coming for new
rouault marked this conversation as resolved.
Show resolved Hide resolved
contributors to the project.

Motivation
----------

The GDAL project has historically been quite open to new code additions, including
drivers that rely on proprietary licensed and/or closed-source SDKs (called
"binary SDK" in the rest of this document). This approach is part
of its strengths, but also comes at a price, with the software being larger
rouault marked this conversation as resolved.
Show resolved Hide resolved
and larger, with sometimes contributions being abandoned by their authors without
rouault marked this conversation as resolved.
Show resolved Hide resolved
new maintainers.

Being a free & open-source project, the GDAL project will apply stronger scrutiny to
code that require a binary SDK and encourage contributors to submit code additions
rouault marked this conversation as resolved.
Show resolved Hide resolved
that do not depend on such binary SDK or license such SDK under free & open-source
rouault marked this conversation as resolved.
Show resolved Hide resolved
license terms.

Policy
------

- Drivers require a designated responsible contact, tracked in
https://github.com/OSGeo/gdal/wiki/Maintainers-per-sub-system

- Contributions should follow other RFCs describing development rules, and come
with test scripts and sufficient documentation, covering usage and build instructions.

- If the driver require a binary SDK not downloadable without cost, or that requires
a complicated registration process, the GDAL team is unlikely to support
driver inclusion.
rcoup marked this conversation as resolved.
Show resolved Hide resolved

rouault marked this conversation as resolved.
Show resolved Hide resolved
- If the binary SDK is no longer current, or modernized to work with latest
compilers and GDAL, the driver can be dropped. This rule also applies to open-source
rouault marked this conversation as resolved.
Show resolved Hide resolved
dependencies that are no longer maintained or are superseded by other alternatives.

- If the driver has unaddressed bugs, is breaking continuous integration (CI),
has caused CI bits to be disabled, or has not caught up to API modifications
requiring updates (extremely rare), the driver will be dropped from build
scripts, and thus will not be built without significant user intervention.

- If critical/blocking issues reported in a driver are not addressed within a
2 month time-frame, it can be dropped from the tree entirely by a designated
GDAL maintainer for all releases going forward.

- Contributors of significant code additions are expected to participate to the
day-to-day life of the project, and need to monitor closely the communication
channels of the project: issue tracker, mailing lists, etc. They are expected at
a minimum to respond in a timely manner to changes that affect the whole project:
CI, build scripts,upgrade of dependencies & build tools, documentation etc.
rouault marked this conversation as resolved.
Show resolved Hide resolved
They are also expected to help sharing the burden of maintenance and participate
to the global health of the project by doing pull request reviews, tackling general
bug reports, functional enhancements, documentation and infrastructure enhancements,
etc.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If someone is a dedicated & diligent maintainer for the WizBang driver, do we really expect them to also become a maintainer of the entire GDAL project?

Copy link
Collaborator

@jratike80 jratike80 Jan 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not read that so that they are expected to maintain the entire project. Rather to do a little bit extra to keep the GDAL ship that is carrying their load afloat.

If the maintainer of WizBang does not follow at all mailing lists, GitHub issues and gis.stackexchange they will not even see some issues with their driver. However, the list of maintainers help others to forward the messages.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not read that so that they are expected to maintain the entire project. Rather to do a little bit extra to keep the GDAL ship that is carrying their load afloat.

Exactly. The project can't work if people wear blinders and only care about the part that they contributed to without considering the project as a whole

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jratike80 that's exactly my general expectation of what we would want, but that's not how it read to me. I've added some different wording below as a suggestion.


- New contributions may require a significant review effort from a GDAL committer (ie
someone with direct modification rights to the source repository). While the
project has now access to funded maintainers, it must be understood that they might not be
rouault marked this conversation as resolved.
Show resolved Hide resolved
immediately available to do reviews of significant code additions. Contributors
may contract GDAL committers to have such task done within a more predictable timeline.

- The above rules are not exhaustive. The PSC reserves the right to reject a proposed
code addition depending on its particular nature and other contextual elements.

Voting history
--------------

TBD