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

Feature Request - HEMTT launch local mods support #512

Open
veteran29 opened this issue May 23, 2023 · 6 comments
Open

Feature Request - HEMTT launch local mods support #512

veteran29 opened this issue May 23, 2023 · 6 comments
Labels
enhancement New feature or request

Comments

@veteran29
Copy link
Contributor

As an user I would like to have an option to launch the game with local mods:

# hemtt launch
[hemtt.launch]
workshop = [
    "450814997", # CBA_A3's Workshop ID
]
local = [
    "VN", # SOG Prairie Fire
    "OtherCDLC",
]

The "local" mods would be put inside -mod argument as is, "-mod=<cba workshop path>;VN;OtherCDLC;".

@BrettMayson
Copy link
Owner

I'm still not a fan of local mods being handled this way, as it is user specific. But I think a section for cdlc would be good

cdlc = [
  "vn",
  "ws",
]

@BrettMayson BrettMayson added the enhancement New feature or request label May 23, 2023
@BrettMayson
Copy link
Owner

I still like the idea of adding a git submodule personally.

I think it'd even be nice if HEMTT would build dependencies too.

So in ACE, we could have a PR that depends on a CBA PR too, and the CBA submodule of the ACE PR is set to the CBA PR. Running hemtt launch builds the correct version of CBA, the ACE and launches them together. Would make testing said PRs a breeze

@jonpas
Copy link
Collaborator

jonpas commented May 25, 2023

That's going to be a disaster. Git submodules are far from easy to use, and asking people to use them is just going to introduce more work fixing the submodule.

@BrettMayson
Copy link
Owner

BrettMayson commented Jul 27, 2023

How about something like this

[project.dependencies.cba]
workshop = 450814997
git = "https://github.com/CBATeam/CBA_A3"
branch = "master" # used by default after cloning

[hemtt.launch]
dependencies = [
  "cba"
]

pseudo commands

> hemtt dev
*just builds as normal, no cba needed*

> hemtt launch
INFO dependency `cba` loading from Steam Workshop
*launches as it does now*

> hemtt dependencies init cba
INFO https://github.com/CBATeam/CBA_A3 cloned to dependencies/cba

now you have a copy of CBA to work on, or, someone could symlink it rather than have HEMTT clone it

> hemtt dependencies update [cba]
INFO `cba` was pulled, 4 new commits

> hemtt launch
INFO dependency `cba` loading from local folder

> cd dependencies/cba && git checkout -b my_feature

> hemtt dependencies update
WARN `cba` skipped, not on a clean `master` branch
  • people that don't want to fiddle with CBA do nothing
  • a simple way to avoid the workshop, just hemtt dependencies init and forget
  • a simple way to have a CBA to work on without having paths in the hemtt.toml, harming collaboriation
  • does not require a config file with an index of paths to mods
  • allows easy symlinks for those that want to
  • no git submodule mess
  • ci friendly if that is ever needed
  • could also possibly allow pinning to a tag or commit, allowing the code to stay with the correct version of the dependency

@veteran29
Copy link
Contributor Author

veteran29 commented Jul 27, 2023

Looks reasonable for me, covers most use cases. Would need a support for manually symlinking the directory into dependencies to support my use case and the dependency should be supported even if it's not a git repository. (eg internal build of a CDLC)

@BrettMayson
Copy link
Owner

BrettMayson commented Nov 10, 2024

So looking at this again, I think while that solution would be nice, I don't feel like implementing all that for something that hasn't been in huge demand

What would be more reasonable, is have a folder .hemttlocal that HEMTT will scream at you if it is checked into git. Inside of there you could clone a repo into it's steam workshop ID, then you use hemtt launch --local to have HEMTT check each workshop item in there, and use it if exists.

Thoughts on that as a solution that'd be simple enough I would implement it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants