emkornfield commented on code in PR #144:
URL: https://github.com/apache/parquet-site/pull/144#discussion_r2633733683
##########
layouts/shortcodes/implementation-status.html:
##########
@@ -125,11 +240,206 @@ <h3 id="{{ $categoryId }}"><a href="#{{ $categoryId
}}">{{ $category.name }}</a>
</tbody>
</table>
{{- /* Render footnotes if any */ -}}
- {{- if gt (len $noteMap) 0 -}}
+ {{- if gt (len $noteMap) 0 -}}
<b>Notes:</b>
{{- range $noteRowIndex, $noteRow := $noteMap }}
<div id="note-{{ index $noteRow 2}}-{{index $noteRow 0 }}">({{ add
$noteRowIndex 1}}) {{ index $noteRow 1 }}</div>
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
+
+{{- /* Render minimum version table by year */ -}}
+<h3 id="read-support-by-year"><a href="#read-support-by-year">Minimum Version
for Read Support by Year</a></h3>
+<p>This table shows the minimum engine version required to read Parquet files
using features introduced in each year. Only includes compression, encodings,
physical types, and logical types. Features without a specified format version
are assumed to have been added prior to 2023.</p>
+
+<p><b>Note:</b> This data was originally collected in December 2025, and not
all data was backfilled. It is likely older releases of each engine support
reading all features for 2023 and before. As volunteers have time they are
invited to add more granular details on releases. Generally, versions are
expected to be accurate for any year 2025 and after.</p>
+
+{{- /* Collect all features with format_version and group by year */ -}}
+{{- $featuresByYear := dict "2023" (slice) "2024" (slice) "2025" (slice) -}}
+{{- $excludedFeatures := slice "encoding-bit-packed"
"compression-lz4-deprecated" "compression-lzo" "logical-enum" "logical-uuid"
"logical-bson" "logical-json" "logical-interval" -}}
+{{- $includedCategories := slice "compressions" "encodings" "physical-types"
"logical-types" -}}
+
+{{- range $categories -}}
+ {{- $categoryId := .id -}}
+ {{- /* Only include specific categories */ -}}
+ {{- if in $includedCategories $categoryId -}}
+ {{- $featuresData := index site.Data.implementations.features $categoryId
-}}
+ {{- if $featuresData -}}
+ {{- range $featuresData.features -}}
+ {{- $feature := . -}}
+ {{- /* Skip excluded features */ -}}
+ {{- if not (in $excludedFeatures .id) -}}
+ {{- $year := "" -}}
+ {{- if .format_version -}}
+ {{- $dateStr := .format_version.date -}}
+ {{- if hasPrefix $dateStr "2025" -}}
+ {{- $year = "2025" -}}
+ {{- else if hasPrefix $dateStr "2024" -}}
+ {{- $year = "2024" -}}
+ {{- else -}}
+ {{- $year = "2023" -}}
+ {{- end -}}
+ {{- else -}}
+ {{- /* Features without format_version are assumed pre-2023 */ -}}
+ {{- $year = "2023" -}}
+ {{- end -}}
+
+ {{- $currentList := index $featuresByYear $year -}}
+ {{- $featuresByYear = merge $featuresByYear (dict $year
($currentList | append $feature)) -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+
+{{- /* Build list of excluded feature names for display */ -}}
+{{- $excludedFeatureNames := slice -}}
+{{- range $categories -}}
+ {{- $categoryId := .id -}}
+ {{- if in $includedCategories $categoryId -}}
+ {{- $featuresData := index site.Data.implementations.features $categoryId
-}}
+ {{- if $featuresData -}}
+ {{- range $featuresData.features -}}
+ {{- if in $excludedFeatures .id -}}
+ {{- $excludedFeatureNames = $excludedFeatureNames | append
.display_name -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+
+{{- if gt (len $excludedFeatureNames) 0 -}}
+<p><strong>Note:</strong> The following features are excluded from this table:
{{ delimit $excludedFeatureNames ", " }}.</p>
+{{- end -}}
+
+{{- /* Calculate minimum version for each engine and year */ -}}
+<table class="table table-striped">
+ <thead>
+ <tr>
+ <th>Engine</th>
+ <th>≤2023 Features</th>
+ <th>2024 Features</th>
+ <th>2025 Features</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{- range $engines -}}
+ {{- $engine := . -}}
Review Comment:
This was a data issue where 18.4 should have been 2025-07-21. The code
relies on release date for canonical values, and there where some other data
issues that I cleaned up (go split off from Arrow mono-repo after 18.0.0 and is
only up to 18.5.0).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]