Skip to content
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

Propose a deprecation process for velero #5532

Merged
merged 3 commits into from
Jul 11, 2024

Conversation

weshayutin
Copy link
Contributor

As discussed in the velero community call [1]
This is a proposed deprecation policy for the
velero project based on the goharbor project.

[1] https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
@stale
Copy link

stale bot commented Jan 7, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the staled label Jan 7, 2023
@stale
Copy link

stale bot commented Jan 21, 2023

Closing the stale issue.

@stale stale bot closed this Jan 21, 2023
@sseago
Copy link
Collaborator

sseago commented Jan 23, 2023

Not really stale. This needs to be resolved.

@sseago sseago reopened this Jan 23, 2023
@stale stale bot removed staled labels Jan 23, 2023
@OrlinVasilev OrlinVasilev self-requested a review January 26, 2023 12:55
OrlinVasilev
OrlinVasilev previously approved these changes Jan 26, 2023
Copy link
Contributor

@OrlinVasilev OrlinVasilev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
sseago
sseago previously approved these changes Feb 7, 2023
@reasonerjt reasonerjt self-assigned this Feb 9, 2023
@yanji09
Copy link
Contributor

yanji09 commented Mar 29, 2023

In today's community, folks discussed to merge this PR and get the deprecation process in place. Found there are a few remaining comments.
@weshayutin would you help to address the remaining comments from @ihcsim?

@OrlinVasilev OrlinVasilev dismissed stale reviews from sseago and themself via be1507c March 29, 2023 07:13
@codecov-commenter
Copy link

codecov-commenter commented Mar 29, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 58.84%. Comparing base (9743a7c) to head (6697b5c).
Report is 1013 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #5532       +/-   ##
===========================================
+ Coverage   48.18%   58.84%   +10.66%     
===========================================
  Files         227      346      +119     
  Lines       23342    28891     +5549     
===========================================
+ Hits        11247    17002     +5755     
+ Misses      11244    10458      -786     
- Partials      851     1431      +580     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@shubham-pampattiwar shubham-pampattiwar force-pushed the deprecation_policy branch 2 times, most recently from 6ac33dd to 24f75b6 Compare June 8, 2023 21:20
@shubham-pampattiwar
Copy link
Collaborator

shubham-pampattiwar commented Jun 8, 2023

I have updated the PR, please take another look @reasonerjt @sseago @Lyndon-Li @weshayutin @ihcsim @OrlinVasilev @yanji09

As discussed in the velero community call [1]
This is a proposed deprecation policy for the
velero project based on the goharbor project.

[1] https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA

Update GOVERNANCE.md

definitive deprecation times, well done

Co-authored-by: Orlix <OrlinVasilev@users.noreply.github.com>
Signed-off-by: Wesley Hayutin <weshayutin@gmail.com>

Update GOVERNANCE.md

Co-authored-by: Ivan Sim <1330522+ihcsim@users.noreply.github.com>
Signed-off-by: Orlix <OrlinVasilev@users.noreply.github.com>

Update GOVERNANCE.md

Co-authored-by: Ivan Sim <1330522+ihcsim@users.noreply.github.com>
Signed-off-by: Orlix <OrlinVasilev@users.noreply.github.com>

add note regarding deprecation window

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>

add changelog file

Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
@weshayutin
Copy link
Contributor Author

it's a good start
/lgtm

GOVERNANCE.md Outdated

The deprecation window is the period from the release in which the deprecation takes effect through the release in which the feature is removed. During this period, only critical security vulnerabilities and catastrophic bugs should be fixed.

**Note:** If a deprecated feature must remain available for general use for two releases after deprecation, perhaps a backup that uses this deprecated feature must be fully-supported for restore for four releases.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"must be fully supported for restore for four releases" perhaps we want to keep the code for backup but only allow it for generating and running test cases, not general use by end user.

Running more than one version to test would be ideal but more difficult imo especially in unit testing.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what use case does the "*Note:**" section try to solve? thanks.

Copy link
Contributor

@Lyndon-Li Lyndon-Li Nov 8, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@renmaosheng
See this comment , if a feature is essential to the backup which for example, impacts the backed up data, when we deprecate the feature, we should guarantee that users are still able to access their backups, e.g., restore from them (in a longer period of time).
Here Restic deprecation is right an example, users may have some previous backups created by Restic, and they may want to preserve the backups for quite long time, remaining able to restore from them.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restic is the main example we had in mind. If we deprecate Restic in 1.13, then restic must be available for new backups for N+2 releases, but prior restic backups must be available for restore for longer. Otherwise, if we removed Restic completely in 1.15 (rather than just on the backup side), this would mean that a user could make a Restic backup in 1.14, upgrade to 1.15 and that "one release old" backup would no longer be restorable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also find the sentence

perhaps a backup that uses this deprecated feature must be fully-supported for restore for four releases.

is a little confusing.

How about we just explicitly mention that a rule of thumb for velero is to be able to restore a backup that is created in version n-2, and rule must not be violated when a deprecated feature is removed from velero?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reasonerjt @weshayutin Something like this?
"If a backup relies on a deprecated feature, then backups made with the last Velero release before this feature is removed must still be restorable in version n+2. For something like restic support, that might mean that restic is removed from the list of supported uploader types in version n but the underlying implementation required to restore from a restic backup won't be removed until release n+2"

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 @sseago
@reasonerjt @weshayutin I can update the PR if we agree upon what @sseago suggested here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

++ I agree w/ what @sseago said there

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shubham-pampattiwar
Sorry for the late response, the proposed wording by @sseago looks good to me.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reasonerjt @weshayutin @sseago Done, updated the PR.

sseago
sseago previously approved these changes Aug 29, 2023
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
Signed-off-by: Shubham Pampattiwar <spampatt@redhat.com>
@blackpiglet blackpiglet merged commit 255a51f into vmware-tanzu:main Jul 11, 2024
66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.