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

History Compatibility #755

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

History Compatibility #755

wants to merge 1 commit into from

Conversation

andymandias
Copy link
Collaborator

Trying to fix history compatibility issues between versions 2024.14 and the 2025.1+. This version is working between itself and 2024.14, but I believe it's incompatible with 2025.1 history.

@tarkah
Copy link
Member

tarkah commented Feb 5, 2025

Damn, I'm super bummed we missed this :(

Comment on lines -110 to +108
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[derive(Debug, Clone, PartialEq, Eq)]
Copy link
Member

Choose a reason for hiding this comment

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

My understanding is the only breakage is we renamed Query.nick to Query.query. We can use #[serde(alias)] to provide upgrade compatability from < 2025.1 to >= 2025.1

Copy link
Member

Choose a reason for hiding this comment

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

Shit, message::Source::Action is also breaking as we added a payload to it :/

Copy link
Member

Choose a reason for hiding this comment

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

We may want to do a bigger, more comprehensive update that can accomplish the following:

  • Safely upgrades from 2025.1
  • Is more easily upgradable in the future without breakage (no unit variants, only struct variants so we can always add fields)

We need to separate the serialization format from the data format we use at runtime. Having them be the same makes it way too easy for breakage to occur. Having them separate and a simple From / Into conversion makes it super easy to see what needs to change in a compatible way w/ the serialization format, when the data format changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants