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

[Work_Item] Define change management principles to determine backwards compatibility #643

Open
AWS-ZachErdman opened this issue Nov 7, 2024 · 9 comments
Assignees
Labels
1.2 Agreed scope for release 1.2 backward compatibility Potentially affects compatibility with past FOCUS releases needs use case Needs a description of the why (use case or other problem to solve) spec process Related to how the spec is produced work item Issues to be considered for spec development
Milestone

Comments

@AWS-ZachErdman
Copy link
Contributor

AWS-ZachErdman commented Nov 7, 2024

Problem Statement

FinOps practitioners who adopt FOCUS will need to upgrade to new versions over time as they are released in order to be able to receive the new features provided. However, upgrading to a new version from an old version becomes challenging if, between the new and previous version, there are changes requirement dictating how data must appear in a given column. This would mean the new specification is not "backwards compatible" and this change would be a "breaking change".

Breaking changes may require practitioners who upgrade FOCUS versions to either (1) update their existing SQL queries that they used to run on the previous version in order to generate the desired results in the new version or (2) modify a FOCUS export such that the data of an existing column in a new export version matches the requirements of the previous version so that they do not need to change their queries.

Objective

The FOCUS working group recognizes that breaking changes make it more difficult for FinOps practitioners to upgrade to new FOCUS versions and thus, should be avoided when possible. However, breaking changes may be required in certain circumstances when the benefit of the change outweighs the cost it presents to practitioners to adopt.

This work item should result in clear rules for how the FOCUS working group handles breaking changes when formulating new FOCUS versions to make sure that practitioners don't have to deal with breaking changes that don't add tangible value to their FinOps practices. In order to do this, we will define:

  1. What is a "breaking change" and "backwards compatibility" according to FOCUS?
  2. How do we evaluate the benefit and cost to a practitioner of a breaking change?
  3. How can we change our specification development process to ensure we are properly evaluating breaking changes?

Supporting Documentation

Proposed Solution / Approach

We will add guidelines in our FOCUS github repo that clearly define what a breaking change is and how they should be evaluated. We may also update some of our issue and work item templates to include references to breaking changes.

Epic or Theme Association

Epic: [Backwards Compatibility]

Stakeholders

Primary Stakeholder: Zach Erdman (AWS)

@AWS-ZachErdman AWS-ZachErdman added the work item Issues to be considered for spec development label Nov 7, 2024
@github-project-automation github-project-automation bot moved this to Triage in FOCUS WG Nov 7, 2024
@shawnalpay shawnalpay added backward compatibility Potentially affects compatibility with past FOCUS releases spec process Related to how the spec is produced needs use case Needs a description of the why (use case or other problem to solve) labels Nov 7, 2024
@shawnalpay shawnalpay added 1.2 consideration To be considered for release 1.2 1.2 Agreed scope for release 1.2 labels Nov 18, 2024
@shawnalpay shawnalpay added this to the v1.2 milestone Nov 25, 2024
@jpradocueva
Copy link
Contributor

jpradocueva commented Nov 26, 2024

Summary from the Maintainers' call on Nov 25:

Context:
The aim is to document and formalize principles that ensure backwards compatibility across FOCUS versions, balancing innovation with stability for users.
This WI needs to be defined as soon as possible as the rest of WIs may have a dependency with the finding from this work.
Maintainers Assigned:
Zach, Riley
Task Force Assigned:
Task Force 2 (TF2), which deals with long-term strategy and compatibility.

Next Steps from TF-2 call on November 27:

  • [#643] Zach @AWS-ZachErdman & Riley @rileyjenk : Prepare a draft of the "Backwards Compatibility Principles" document for review, including categories of changes and initial criteria. (list of properties with the impact on practitioners and other stakeholders if changed)
  • [#643] Michael @flanakin : Provide feedback on naming conventions and potential improvements to reduce ambiguity in data columns.
  • [#643] All Members: Begin behaving as if principles are in place by carefully evaluating potential breaking changes during PR reviews.
  • [#643] Task Force: Add the discussion to the agenda for the next meeting where Zach or Riley can participate.
  • [#643] Joaquin @jpradocueva : Notify Zach and Riley about their action items and encourage preparation for the next meeting.

@shawnalpay shawnalpay added 1.2 consideration To be considered for release 1.2 and removed 1.2 consideration To be considered for release 1.2 labels Nov 27, 2024
@jpradocueva
Copy link
Contributor

jpradocueva commented Dec 6, 2024

Action Items from TF-2 call on December 4:

  • [#643] Irena @ijurica : Prepare a Google Drive folder for this issue, create an initial draft of the Backwards Compatibility Notes document and notify TF-2 Members and FOCUS Maintainers. Move the List of Change Types Brainstormed During the Meeting from the TF-2 meeting minutes into the new document. Ensure the content is well-structured and formatted for further discussion and refinement.
  • [#643] TF-2 Members, FOCUS Maintainers: Review the Backwards Compatibility Notes document and provide feedback, additional suggestions, concerns, comments, and discussion topics. This document will serve as the foundation for further discussions in upcoming meetings and as a basis for drafting the Backwards Compatibility Principles document.
  • [#643] Zach @AWS-ZachErdman & Riley @rileyjenk : Prepare a draft of the "Backwards Compatibility Principles" document for review, including categories of changes and initial criteria. (list of properties with the impact on practitioners and other stakeholders if changed)
  • [#643] All Members: Begin behaving as if principles are in place by carefully evaluating potential breaking changes during PR reviews. (Carried over from the previous meeting.)

Action Items from the Members' call on December 5:

  • [#643] Riley @rileyjenk : Draft a document outlining proposed compatibility tiers and share for feedback.
  • [#643] Volunteer: Map potential changes to compatibility tiers and identify high-risk scenarios.
  • [#643] All members: Review the draft compatibility principles and provide feedback before the next TF meeting.

@jpradocueva
Copy link
Contributor

jpradocueva commented Dec 10, 2024

Action Items from the Maintainers' call on December 9:

  • [#643] Letian @letian-wang-92 to confirm with Mohit Gupta their ability to lead and participate in backward compatibility discussions.
  • [#643] Riley @rileyjenk to share the current notes document with Letian and Mohit for review.
  • [#643] Shawn @shawnalpay to set up a focused meeting with AWS representatives to discuss next steps if necessary.

@jpradocueva
Copy link
Contributor

Action Items from the TF-2 call on December 11:

  • [#643] Riley @rileyjenk : Refine the change classification framework and propose additional examples for each category.
  • [#643] All Members: Review the use case library to determine whether it adequately defines the supported scenarios and identify gaps that may require documentation in the specification.

@shawnalpay shawnalpay changed the title [Work_Item] Backwards compatibility principles for FOCUS [Work_Item] Define change management principles to determine backwards compatibility Dec 12, 2024
@shawnalpay shawnalpay moved this from Parking Lot to W.I.P in FOCUS WG Dec 12, 2024
@timwright2000 timwright2000 self-assigned this Dec 16, 2024
@jpradocueva
Copy link
Contributor

Action Items from the Maintainers' call on December 16:

  • [#643] Riley @rileyjenk : Review the use case library to filter out scenarios that are currently supported (by which version) and categorization of change types.
  • [#643] Maintainers to decide: is the use case library our official source for scenario-based compatibility?

@jpradocueva
Copy link
Contributor

Action Items from the TF-2 call on December 18:

@jpradocueva
Copy link
Contributor

Action Items from the Maintainers' meeting on Jan 6:

@jpradocueva
Copy link
Contributor

Action Items from the TF-2 call on Jan 8:

@jpradocueva
Copy link
Contributor

Action Items from Members' call on Jan 9:

  • [#643] Beau @beau-nelford-anglepoint : create a brief service level pass with a sample set for 1.0, and 1.1 .Check use cases that are unchanged and flag the ones that have changed columns to see if they are no longer supported.
  • [#643] Beau @beau-nelford-anglepoint - Review all use cases to classify them into No Change, Supported with Change, or No Longer Supported categories.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.2 Agreed scope for release 1.2 backward compatibility Potentially affects compatibility with past FOCUS releases needs use case Needs a description of the why (use case or other problem to solve) spec process Related to how the spec is produced work item Issues to be considered for spec development
Projects
Status: W.I.P
Development

No branches or pull requests

6 participants