-
Notifications
You must be signed in to change notification settings - Fork 26
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
[RFC] cargo-dist wix orchestration #207
Comments
Thank you for the Request For Comment (RFC). My thoughts:
This appears to be very similar to the often requested and desired "Ephemeral" workflow, #85 and #88. Would the Although, it looks like
I believe this is already implemented. There is the This is also true for the I am only aware of these two GUIDs in the default It looks like the Configuration documentation needs to be updated.
Is this handled by the
The issue is that the binaries and assets to include in an installer must be defined in the WXS file, which is part of the Taking all of these thoughts into account, an example invocation that would address all bullet points: [package.metadata.wix]
upgrade-guid = "<GUID>"
path-guid = "<GUID>" where C:\> cargo wix init -B C:\tmp\build-123456\hello.exe -B C:\tmp\build-123456\world.exe -B C:\tmp\build-123456\greeting.exe
C:\> cargo wix --no-build There would be the problem that all of the commands assume the Current Working Directory (CWD) contains the |
Thanks for the links! This is potentially the right solution, but it seemed like a "best of both worlds" if I could check it in and allow the user to opt into manual edits If They Know What They're Doing (and also they could still mess around with cargo-wix on its own without getting locked into cargo-dist, I guess?).
Yes, these fields are already being relied on by cargo-dist. What I'm saying is cargo is that
The functionality I was proposing upstreaming was the code that patches this stuff into a Cargo.toml for the user instead of just baking the generated GUIDs into the output file.
Aha, this was key context I was missing, thanks! But yes to be clear I don't necessarily need to be able to say "dynamically read this dir", but rather just a way to for me to set CargoTargetBinDir, instead of letting wix compute it based on profile/target-triple. |
Thank you for clarifying. I am not opposed to adding this as a flag to the |
Ok, I'll start queuing up some PRs with initial impls. |
@Gankra Has this been addressed with v0.3.5 release? |
I'll need #219 resolved before I can ship this design, but yeah this issue can be closed in favour of that one. |
Hey there! My work in cargo-dist to use cargo-wix for msi's (axodotdev/cargo-dist#370) is now far enough along that I think I have a pretty good picture of what it should look like.
Notably:
Because we've had a lot of problems with users desync'ing their settings when we let them generate hand-editable artifacts, we're planning to discourage hand-editing, and invoke
cargo wix init
constantly to ensure the file is up to date with the values stored in the Cargo.toml. We would add an allow-dirty to our own config to return to the "vanilla" cargo-wix experience. I'd argue it would be beneficial to usptream this design to cargo-wix itself, but that would be a breaking change so I understand if it's not interesting.Rerunning
cargo wix init
would mess up GUIDs, so we also generate the GUIDs once and add[package.metadata.wix]
to our user's Cargo.tomls. Is this functionality you'd like to have upstreamed into your project (not sure if it would make sense)?Although I originally planned to use --no-build, and implemented Add a --profile flag to be more general than --debug-build #198 to support this, I've realized it's probably not the right solution (see feat(msi): add msi installer axodotdev/cargo-dist#370 for detailed discussion of that). I think ideally we'd just have an interface for saying "hey all the binaries (and maybe other static assets to include in the MSI?) are in this directory, no need to build". Does that sound reasonable?
The text was updated successfully, but these errors were encountered: