Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,12 @@ dependency versions without always upgrading to the latest.
## Code of Conduct

We expect all community members to follow our [Code of Conduct](https://www.apache.org/foundation/policies/conduct.html).

## RFC Process

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why this is needed on language connector? RFC / Substantial changes lands in main repo (https://github.com/apache/iceberg), and there is already corresponding note in contributing guide.

Can you bring 1/2 examples of good iceberg-rust scoped RFC (ideally with historical PR-s that lands them)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we should limit the scope to implementation large features in rust only(not about changing spec, which should be discussed in dev list and main repo). Also we should also create a tracking epic issue to update the progress.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

i would say for language bounded features there is no need for RFC at all, RFC is a good process to sync cross repos to have some ground truth, if this limited just to Rust -- then it's better to be just tracking issue (with some discussions) + just pull-requests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actually we use it as design doc here, we use it to discuss the overall design. The problem is an issue is that it's hard to comment some part of a large feature. You can see #1854 and #1885 as examples.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I see, the first one is quite a good example here!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think it would be great to include those examples below (perhaps #2183 too), especially as we want to direct spec changes to Iceberg's main repo and we can give these as good examples of language implementation RFCs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Rather than describing this section as the RFC process, should we instead have it as a "Larger Changes" section? Or at least point to this section from earlier on. I see under Merge Style, we talk about larger changes being directed to the mailing list and Slack. It might be a good opportunity to help guide contributors.


For significant changes, new features, or substantial changes to public APIs, consider opening an RFC PR first:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We need to clarify that this change is iceberg-rust only, and any changes about spec should be discussed in dev list.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Agree, this is a good opportunity to disambiguate on what should be an Iceberg spec change vs. what's only for iceberg-rust.


1. Create a markdown file in [docs/rfcs/](docs/rfcs/) using the next sequential number (e.g., `0003_your_feature.md`). Explain the scope, use case, and proposed design in prose.
2. After the approach is reviewed and accepted, open a follow-up PR with the initial implementation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I prefer to think of an RFC as more of a design document: something that complements the information in the actual PR and helps explain the changes more clearly. In that sense, the RFC and the PR could be reviewed simultaneously.


Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We also need to open a tracking issue to track its progress.

Please reference the [Iceberg Proposals](https://iceberg.apache.org/contribute/?h=contri#apache-iceberg-improvement-proposals) section of the contributing guide for additional details.