Hello all,
I would like once again to propose that, instead of editorializing
version numbers (for example a mythical "V3" with a curated subset of
recent features), we define "profiles" or "presets" purely based on
calendar adoption of features.
1. Choose a small number of authoritative implementations (AIs :-)))
maintained by the our community - I would suggest Java, Rust, C++.
2. Define calendar-based presets depending on availability of features
in AIs at a given point. For example, Parquet Preset "2023-04" is the
set of features that are supported *for reading* by all the latest
releases of AIs in 2023-04-01.
This gives us a mechanistic process for definining compatibility levels
based on actual feature adoption in the main implementations (which is
also, implicitly, a measure of how useful those features are). It can be
automated quite easily given that most of the information is already
there for generating
https://parquet.apache.org/docs/file-format/implementationstatus/
Calendar-based presets are ostensibly not version numbers and don't look
like such (unless you're Ubuntu :-)), so there are no expectations that
they correspond to a git tag or something.
Calendar-based presets also map on how people informally think about
their dependencies and their upgrade strategy (regardless of project
differences in release frequency). People who live on the bleeding edge
will benefit from using the latest preset. People who want to support
legacy software versions know they need to use an older preset, for
example 3 years old.
One question is which granularity we want for presets: yearly? quaterly?
Quarterly probably doesn't hurt and gives more options (especially to
people living close to the bleeding edge).
Regards
Antoine.
Le 01/06/2026 à 23:35, Daniel Weeks a écrit :
Hey Parquet Community,
A few weeks back during one of the community syncs, the topic of versioning
came up (again) and I offered to pull together some thoughts on how we
might want to move forward.
I've gathered some of the background and concerns about how we address
versioning across the ecosystem in order to have a discussion and gather
feedback.
There are a lot of new features and major capabilities that community
members are eager to introduce, so it would be great to have a clear path
forward on how to coordinate changes.
I've included the discussion in a doc
<https://docs.google.com/document/d/1zrbGT4kRCEdadBUludwfQR9b2CfLgH-RWn9zE84gYfg/edit?tab=t.0#heading=h.aozivdm2oj4d>
so that people can comment and respond either in-line or on this thread.
Looking forward to discussion and feedback!
-Dan