Bundle Ficsit for modding - #479
Conversation
|
Hey @Genda1ph. I closed your other PR, so this should probably be rebased. Your $HOME comment is not a bug. The image uses root for reasons covered in the README and elsewhere. I'm not sure what benefit there is to including FICSIT in this image to be honest. Per previous discussions around modding support, the intention here is to be as hands-off as possible. Not to mention, this is currently architected as a build argument which seems like an odd implementation. If it were to be included, it should either always be included, or have a set image tag that people could use. Needing to build the image itself means very, very few people would actually use it. Additionally, if anything it should check the latest version available during runtime. Otherwise, if I don't push a new image for a while, people may complain that FICSIT is out-of-date. I'm very hesitant to include any unnecessary dependencies for exactly this reason :) I've been away from FICSIT for a little while; would you mind covering what benefits this provides over the current approach? Thanks so much! |
|
Thank you for taking time to answer a random PR. My other PRs seldom get a good response 😩
It's fairly common for me to rebuild and customize images, and this was intended as experimental, hence the As a side note: I went and rebuilt my local image to Ubuntu 26 (running on Debian Trixie), and it's a drop-in upgrade to the previous one, so the test sample is rather small, but it works.
There is nothing wrong with running image as root, then dropping privileges. The problem is that under normal operation,
First and foremost, Essentially, ficsit CLI is the text-based equivalent of SMM: you can export a profile from SMM and feed it directly to ficsit, provide While I generally stick to atomic images, this PR can be reworked and extended to:
Let me know which route you'd prefer to go, but there's a decent chance I'll end up maintaining a fork anyway. |
|
For sure, Ubuntu 26 would work just fine in my environment too. The issue is that a lot of users of this repo are in unusual or specialized environments which can and do break with these kinds of updates, particularly NAS-adjacent environments. Regarding $HOME, for sure, I believe that's down to how we call Yeah sorry, what I meant when asking about FICSIT was understanding why it's advantageous to be included in the image. I'm still not seeing why it's really any easier than just running the CLI outside of the Docker image. Yeah I figured that's why you left it as a build argument. Likewise, I generally prefer to keep images atomic and single-purposed; it's why I'm always hesitant to introduce new functionality to the image, especially if it's not something I'll be using a lot myself (meaning if things break, or people run into issues and they will run into issues, I'll have to figure them out). |
This adds almost rudimentary support for
This, I think, is much more convenient than attaching an SFTP... Which would still be an option to provide the |
|
I don't know how much experience you have maintaining repos, but introducing any additional dependency does increase the maintenance burden. What if their repo path changes? What if they have breaking changes, either to their release pipeline or usability of the tool? What if they have a critical vulnerability? What about edge-cases (e.g. issues being opened asking for us to support X feature of CLI)? What if the tool becomes unmaintained? What if someone wants an alternate mod manager for Satisfactory in the future, do we support both? To be clear, I think the inclusion is probably a good idea. The current structure was agreed upon after discussing with the FICSIT maintainers themselves and the community when modding support was first added to dedicated servers. You don't have to use SFTP to use modding with this image. There is nothing stopping a user from running the FICSIT CLI next to the image, and it would work just the same (I believe many people already do this, from past discussions). The two main things giving me pause are the above maintenance concerns, and that no one has requested this functionality. Would it be useful to have? Maybe :) |
|
I haven't requested it because I've added it for myself, and then raised this PR 🤷 I also haven't maintained any public/FOSS projects, but I do maintain internal tools for a living. After giving it a bit more thought, the simplest and maximum hands-off method for adding this would be to:
All of the above is fairly easy, but I'm not 100% sure about mod rollback. On using
I have no preference here. |
|
I like the direction you're heading in! I think gating it behind an environment variable and I'd probably run it under |
* Use bash-stye checks. * Use long CLI switches.
|
Nuked the branch and rebuilt from scratch based on previous discussion. Let me know if the direction looks good and if I need to change anything before I invest more time into this. |
Sorta depends on #478, but should be rebaseable.
--build-arg FICSIT='true', that, when set, installs latest version officsitCLI from the official repo.run.shto check ifficsitis installed andprofiles.jsonis available.