-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GSP-837: Support Feature Flag #837
Conversation
In GSP-87: Feature Gates, we have the concept of features first. And then in GSP-109: Redesign Features, we have a huge redesign about it. We have the following features for now:
It's obvious that they are only a subset of all features we support. In fact, we can categorize all features into three kinds:
In the past, we only care about features that "No native support but could be virtual". Because other features can be handled easily: if we support, everything will work fine; If not, we just don't implement the interface. However, GSP-751: Write Empty File Behavior rise a new question: How to handle the different behavior of the same interface? Maybe it's time for us to drop the idea that we introduced in GSP-1: Unify storager behavior. Maybe we can merge all interface together into type Storage interface {
Feature() Feature
}
if store.Feature().CanCopy() {
err := x.Copy(oldpath, newpath)
if err != nil {
return err
}
} |
Mostly LGTM, let's create a tracking issue for this GSP and call for the final review. |
Bravo work! |
ref: #835