dbalsom / martypc

An IBM PC/XT emulator written in Rust.
Other
504 stars 16 forks source link

Consider publishing to crates.io #30

Open davide125 opened 1 year ago

davide125 commented 1 year ago

Publishing martypc (and the related crates -- marty_core, marty_render, etc.) to crates.io would make it more straightforward to install for users. It's also helpful for Linux distribution packaging, as they often rely (or even require) published crates (on that note, I'd be happy to take a stab at packaging this for Fedora, but its automation requires published crates). Thanks!

dbalsom commented 1 year ago

I'm a pretty newbie Rust developer so bear with me here... Stuff like marty_render isn't really useful to anyone as a standalone crate, I just started diving stuff up into libraries in my project for better organization and to make separate front ends (like the web player) easier to implement. Is it common to publish 'internal' crates like that?

davide125 commented 1 year ago

Yeah, from what I've seen it's pretty common to publish internal crates. They don't have to be versioned independently -- you can just bulk publish them all at once with the same version when you tag a release. If you start having a lot you may want to script the package/upload process for convenience (e.g. see https://github.com/facebookincubator/below/blob/main/scripts/publish_crates_io.py for what another project I work with does; another option is using GitHub Actions).

dbalsom commented 1 year ago

Regarding linux packaging, what are your thoughts on distributing something like an AppImage or Flatpak vs packaging for individual distros?

davide125 commented 1 year ago

I'm not terribly familiar with AppImage. I've used Flatpak, and it's a decent way for upstream projects to publish official releases that are easy to consume on all distros. It can be annoying to get to work properly as things run inside a sandboxed container and you need to explicitly declare any holes you might need to punch.

I personally still prefer native packages, but that's probably something you can leave to contributors that care about specific distros and can package martypc for them (i.e. I wouldn't recommend you attempt to package it for all distros by yourself, unless packaging is something you find enjoyable / care about).

JKjakay commented 12 months ago

By the way: I am running MartyPC on Wine and I dont see any problems. Seems to run like it does on Microsoft´s original flavor :-) This is on Fedora 38 with Wine 8.12. So if there are no problems I am not aware of, I for my part would be happy to have the developer put his main emphasis on making MartyPC itself better and not rushing out Linux container versions. I am using Linux almost exclusively, but I am not a Penguin hardliner, you know. If it works on wine, I am happy. Apart from that, I would recommend AppImage because this can be hosted here, while for flatpak you have to go via flathub and the like.