-
Notifications
You must be signed in to change notification settings - Fork 122
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
Rollback component #987
Comments
Eg: possibly this type of scenario could exist. With this, rollbacks could also be done without forcing any git changes if this is desired. |
This feels kinda strange to me. Could outcome be achieved by unpublishing a version? Where unpublishing a version would make the registry ignore it so previous 'good' version would be surfaced. |
I think the suggested approach would be really hairy when the number of rollbacks goes high! Instead, a similar approach to npm unpublish would be more desirable. As @seif mentioned, OC-Registry could respect to deprecated version and serve previous good version. Alternatively, version management for prod traffic for serving OC components could be completely independent of OC-Registry itself. The sequence would be:
This way developers can keep publishing components to OC-registry without the fear of breaking the prod and once they are confident with a version on prod, they can update OC version management service to store the stable version. In this case the revert process would be just updating the OC version management service with the last good known version. |
I still think that it should be the consumer's responsibility to decide whether or not to reference the latest or a specific version of a component. And additionally to have in place a system that can easily pin/unpin a specific component/version w/o the need of a full website deploy for instance. If we really need to have a feature at the OpenComponents platform level I'd vote for something more soft like @seif suggested, but my personal preference would still be having in place what I've just described above. and basically what's @NimaSoroush is proposing is a way of achieving that. |
I honestly like the simplicity of this proposed approach. The issue is when you have a version that needs to be rolled-back for a security problem: in that scenario, the bad version is still there. The other proposed solution (the kind of 👍 or 👎 ? In case, we can consolidate the two github threads |
A perfect solution could be a combination of both approaches. Locking a vulnerable version is definitely a valid edge case, although implementing the feature would be complicated in case the number of fallbacks goes high! for example, if you want to lock hundreds of versions which are eventually falling back on each other.
This case if |
Issue description
Recently we've had an issue when the component had to be quickly rollback to the previous version.
The procedure required going back in the git history and then manually publishing the component.
It was an error prone and not so quick solution.
Expected behaviour
It would be nice to have some kind of rollback mechanism in place which would republish specified version of component (with the latest version of it)
The command could look like:
where
rollbackVersion
is the existing version of component (the one we want to republish)newVersion
is the republished version of component (defaulting to the latest one with increased patch - when semver is supported)Questions/possible issues
Other Comments
I'd like to gather some opinions/comments before [possibly] starting implementing this feature.
The text was updated successfully, but these errors were encountered: