-
Notifications
You must be signed in to change notification settings - Fork 5
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
Implement versioning system #17
Comments
If we want to do version control, it seems we can only do it this way. I don't have a better idea... |
Continuation of #15 (comment) I have some questions:
|
Both of these would be
It just seems like a poor patchwork solution to a wider problem. It would work, but not in all cases, and ultimately I think we do want some sort of versioning system to handle the things I've mentioned previously: pinning a version, latest release vs most recent commit. |
I'm a bit confused, are you saying to use the latest release's scheme URL in the latest main (HEAD)? Wouldn't that still cause issues like #15 (comment)?
I'm not sure when it wouldn't work though, don't we still need to do this "patchwork" if we want to make "most recent commit" work? It seems like we're back to my proposal, or are there better ways to catch up with the latest main branch commit? |
"latest" in that URL means latest release. "main" means most recent commit to main.
What do you mean? The schemas can exactly match the latest release and/or most recent main commit with no issues with this versioning system. Your proposal was to add some things and remove them later and added additional work to get the timing. This versioning eliminates that. |
I know, want I say is using
My proposal only considers the latest Yazi 0.1 (latest release, the previous target)has two fields, # yazi.toml
field1
field2 The schema looks like: # our-scheme.json
field1
field2 Yazi 0.2 (HEAD, this target):This upcoming target removes the existing # yazi.toml
field1
field3 We will add the new # our-scheme.json
field1
field2 # TODO: remove this field once Yazi 0.2 is released
field3 <-- added This way, neither Yazi 0.1 nor Yazi 0.2 will throw an error. When we actually release Yazi 0.2, we remove In short, before this target is released, we only add; after it is released, we only remove. |
If someone on Yazi v0.1 uses |
Yep this is a potential issue with it, but it's much easier than version control - with version control, if we want to catch up with the latest changes in the main branch, we also need to do the same steps (or is there a better way?) It also doesn't require switching URLs, if the latest main That is also my question in #17 (comment), I don't think it makes sense for both this target and the previous target to use the same Having too many schemes is not conducive to our management and can confuse users. Therefore, this is a trade-off sacrificing consistency for lower costs, as we just to ensure eventual consistency. |
What do you mean the "same steps"?
This is what we currently have though lol. |
This is a tricky one that I would love help brainstorming ideas for.
Requirements
Ultimately we need to:
https://yazi-rs.github.io/schemas/vX.X.X/theme.json
).https://yazi-rs.github.io/schemas/latest/theme.json
).https://yazi-rs.github.io/schemas/theme.json
- but that will cause issues when we initially implement this as right now that schema reflects the latest release. It could behttps://yazi-rs.github.io/schemas/main/theme.json
?).Ideas
/schemas/latest/
,schemas/v0.2.3/
,schemas/main/
)The text was updated successfully, but these errors were encountered: