introduce mirror versioning, put pgvector support behind version gate #3066
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
this avoids breaking existing setups build on pgvector types coming through as strings
this system can be used in the future to maintain a chronology of breaking changes & not apply new behavior to old mirrors
it's meant to be a single dimension so that there isn't the exponential explosion of feature combinations we have with the dynconf system. We've previously tried to leverage by having breaking changes only be introduced as optional features, but this hits two problems: old behavior has to be default, & it's a complicated mechanism designed for flexible configuration, rather than a means to gate backwards incompatible changes from existing mirrors
this represents a point in PeerDB's life where we have people who just want the thing they tested (+ security fixes, etc)
infra for managing this system will be future work, outlined in #3095