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

Emulator library crate #6

Closed
jeremyBanks opened this issue Jun 25, 2018 · 4 comments
Closed

Emulator library crate #6

jeremyBanks opened this issue Jun 25, 2018 · 4 comments
Assignees

Comments

@jeremyBanks
Copy link
Owner

jeremyBanks commented Jun 25, 2018

Let's break the emulator logic itself, separate from its interface or any binary targets, into a separate crate. We'll keep this in the same repository, and won't publish anything yet, but we'll use a path dependency and call it zerodmg-emulator.

Any generic logic we need to share between both can be grouped into a zerodmg-utils crate, though the ideal would be to move anything substantial into an appropriate standalone package.

For now, the root zerodmg crate will remain the only one with a binary target. Even if we end up having multiple distinct interfaces (perhaps web vs headless CLI), we may still want to keep the single binary target and entry point, with flags to show what we want to invoke.

@jeremyBanks jeremyBanks changed the title Emulator Library Crate Emulator library crate Jun 25, 2018
@jeremyBanks
Copy link
Owner Author

I can't publish the parent crate unless the children have real names and versions. I don't want anybody to really use this yet, but I do want to play with the packaging system, so I'll specify a wildcard version for the children.

[dependencies]
zerodmg-emulator = { version: "*", path: "0dmg-emulator" } 
zerodmg-util = { version: "*", path: "0dmg-util" } 

This is awful for consumers, but it should at least let them install and run the latest version, assuming I publish the dependencies at the same time. If I want to run an old version of the code, I'll use this repository, not published version info.

@jeremyBanks
Copy link
Owner Author

jeremyBanks commented Jun 25, 2018

Perhaps slightly better: use <1 or 0.* to make explicit that we're depending on non-stable versions.

@jeremyBanks
Copy link
Owner Author

This seemed nice and clean, but as I was finishing I hit a compiler panic. The endearing error message asked me to file an issue, so I did: rust-lang/rust#51798,

I expect there is a problem in my code, and the compiler is just failing to give me a nice error, not failing on code it should compile.

@jeremyBanks jeremyBanks self-assigned this Jun 27, 2018
@jeremyBanks
Copy link
Owner Author

unbroken and done in 976629e

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

No branches or pull requests

1 participant