Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #23. Part of symposium-dev/symposium#294.
Draft on purpose: do not merge before
dial90.5.2 is published on crates.io (dial9-rs/dial9#937). That is the first release where thedial9crate ships its own skills. If this lands first, projects on that version would get no skills at all.The problem
The
dial9entry gets its skills fromdial9-viewer, a crate that projects do not depend on. Symposium can only match a project's version when the crate is one the project declares, so today every project gets the newest skills no matter whichdial9version it uses. A project ondial9-tokio-telemetry0.3 receives skills for APIs it does not have.The change
The entry now serves skills from
dial9itself, which is what projects declare. A project ondial90.5.2 or newer gets the skills that match its version. Everything else (older versions, prereleases, projects that only declaredial9-tokio-telemetry) keeps getting the newestdial9-viewerskills, exactly as today. Only one of the two ever applies, so nothing installs twice.The comments in the file record the three things that are easy to break: the list of crates that gates the entry, why the fallback is written as a negation, and the accepted trade-off that fallback projects may get skills newer than their version.
Verified
Ran real
cargo agents syncflows against this file, with a Symposium built from main and with the published 0.4.0, on an isolated configuration: projects at the floor, below it, on a prerelease, declaring onlydial9-tokio-telemetry, declaring only a pinneddial9-viewer, workspaces mixing versions, upgrading from the current entry, and bumping or downgrading the dependency. All behave as described above. The at-the-floor case used a locally packageddial90.5.2, since the release is not out yet; it should be re-run from crates.io once it is.Known limits
Two situations are unchanged by this file and documented on the dial9 side: a
pathorgitdependency ondial9installs from the source tree, where symlinked files are dropped until symposium-dev/symposium#288 lands (a fix is in progress); and a project that also declaresdial9-viewerand consents to it gets each skill twice.