Substrait is in use in several places and has been for some time, in a stable fashion. We go out of our way to avoid breaking changes and I don't think we've made any breaking changes to core features in some time. Substrait also has a pretty healthy set of relations and functions. I think we have a pretty solid logical plan for most of the common relations.
Is it time to start working towards a 1.0 release?
That being said, I am certain there are some features that are missing. I have started a discussion[1] to try and brainstorm what those are.
There are lots of other questions (e.g. is this even a good idea? what time frame would we want to shoot for? etc.) that we can handle in this email and/or other discussions.
There was some discussion in the call today and I want to copy over a nice point. One of the goals of such a release is to finish off the deprecation of a number of features that have been pending deprecation for some time (cleaning up the spec). A good point that was brought up was that we might want to first prepare some kind of 1.0 alpha release (or call it 0.99 or whatever) that has all of the deprecations in place. We can then encourage consumers / producers to migrate up to this version and address any breaking changes. This way, when we finally kick off the 1.0 release, we will quickly have some consumers and producers capable of working with the new version.
[1]
https://github.com/substrait-io/substrait/discussions/809