Skip to content

Commit ff70d18

Browse files
authored
docs: active libraries + breaking change policy (#1026)
1 parent 20ce481 commit ff70d18

5 files changed

Lines changed: 53 additions & 0 deletions

File tree

site/docs/community/_config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
arrange:
2+
- index.md
3+
- active_libraries.md
4+
- powered_by.md
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
title: Active Libraries
3+
---
4+
5+
# Active Libraries
6+
7+
The following language libraries have active users, with at least one party actively working to maintain and improve each of them:
8+
9+
- [substrait-go](https://github.com/substrait-io/substrait-go)
10+
- [substrait-java](https://github.com/substrait-io/substrait-java)
11+
- [substrait-python](https://github.com/substrait-io/substrait-python)
12+
- [substrait-rs](https://github.com/substrait-io/substrait-rs)
13+
14+
# Inactive Libraries
15+
16+
The following libraries in the ecosystem are currently looking for active contributors:
17+
18+
- [substrait-cpp](https://github.com/substrait-io/substrait-cpp)
19+
- [substrait-csharp](https://github.com/substrait-io/substrait-csharp)
20+
- [substrait-js](https://github.com/substrait-io/substrait-js)
21+
- [substrait-ruby](https://github.com/substrait-io/substrait-ruby)
22+
23+
The Substrait project is always open to contributions and would be happy to work with anyone seeking to improve them.

site/docs/governance.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ The rules require that a community member registering a negative vote must inclu
6262
| Process/Governance modifications & actions. This includes promoting new contributors to committer or PMC. | 3 | PMC | Mailing List |
6363
| Management of `-contrib` repositories including adding repositories and giving write access to them | 3 | PMC | Mailing List |
6464
| Format/Specification Modifications (including breaking extension changes) | 2 | PMC | Github PR |
65+
| Deprecations | 2 | PMC | Github PR |
6566
| Documentation Updates (formatting, moves) | 1 | PMC | Github PR |
6667
| Typos | 1 | Committers | Github PR |
6768
| Non-breaking function introductions | 1 (not including proposer) | Committers | Github PR |

site/docs/spec/_config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ arrange:
33
- specification.md
44
- technology_principles.md
55
- extending.md
6+
- breaking_change_policy.md
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
title: Breaking Change Policy
3+
---
4+
5+
# Substrait Breaking Change Policy
6+
7+
Breaking changes proposed to the specification should include an explicit migration strategy when they are proposed. This is based on the assumption that users are operating Substrait in a multi-system, multi-language environment where parallel and synchronous deployments are impossible. Breaking changes should be made so that users can update systems independently and asynchronously.
8+
9+
The migration strategy must be implemented in all [active libraries](../community/active_libraries.md) before the breaking change is implemented.
10+
11+
## Breaking Change Cookbooks
12+
13+
### URI to URN Migration
14+
15+
In [2025](https://github.com/substrait-io/substrait/issues/828), the Substrait community noticed that the values used for `uris` were not consistent within the ecosystem.
16+
17+
To deal with this, a new URN format was [introduced](https://github.com/substrait-io/substrait/issues/856) to replace URIs. To migrate the ecosystem to use URNs, producers were updated to dual write URIs and URNs in plans, and consumers were updated to preferentially consume URNs when available.
18+
19+
This work can be seen in:
20+
- `substrait-java` Migration [PR](https://github.com/substrait-io/substrait-java/pull/522)
21+
- `substrait-go` Migration [PR](https://github.com/substrait-io/substrait-go/pull/166)
22+
- `substrait-python` Migration [PR](https://github.com/substrait-io/substrait-python/pull/114)
23+
24+
Once all libraries could read and write the new URN format, and had been available for a reasonable duration, the old URI format was fully removed.

0 commit comments

Comments
 (0)