Spoons / rmm

An Open Source RimWorld mod package manager and sorting tool.
GNU General Public License v3.0
24 stars 7 forks source link

Not running on MacOS #3

Closed Ant-V closed 2 years ago

Ant-V commented 2 years ago

Description Rmm does not start on macOS

Reproduction Installation seems to be working, steamcmd is installed, python3 is running, but running python3 -m rmm returns the following: File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/__main__.py", line 3, in <module> from rmm.cli import run ModuleNotFoundError: No module named 'rmm.cli'

Info MacOS 12.2 (21D49) (M1) Rmm version: 1.0.4 Rimworld Version: 1.3.3200

Spoons commented 2 years ago

Hey,

Thanks for letting me know. I made a mistake and some of the v1.0 code did not get merged in the latest release. I have resolved the issue and uploaded the changes. However, due to a technical issue, I won't be able to complete my testing on MacOS for another day or two.

That said, it very likely will work for you now. You can grab the latest release with pip3 install --user --upgrade --force-reinstall rmm-spoons

Also, I've updated the setup instructions regarding installation on MacOS. Please review the changes as they contain additional details that you may find helpful.

If you run into any issues with the current version, feel free to let me know and I'll try to take a look.

Ant-V commented 2 years ago

Installation and running does work, there are still two issues I came across:

  1. if a mod does not contain an About/PublishedFileId.txt it produces an error, but does not crash
  2. update seems to be having some issues (maybe due to the above error?). It produces the following output:
Ignoring /Applications/RimWorld.app/Mods/Place mods here.txt
[Errno 2] No such file or directory: '/Applications/RimWorld.app/Mods/EdBPrepareCarefully/About/PublishedFileId.txt'
[... for a few mods...]
Preparing to update following packages:
[....modlist....]
The action will overwrite any changes to the mod directory
Add a .rmm_ignore to your mod directory to exclude it frome this list.
Would you like to continue? [y/n]
y
[Errno 2] No such file or directory: '/Applications/RimWorld.app/Mods/VanillaIdeologyExpanded-Memes/About/PublishedFileId.txt'
[...again...]
max open descriptors set to 2048
Redirecting stderr to '/var/folders/3z/7qtx91l9737bzsmnxkrxphmm0000gn/T/rmm-oaq7e3zy/Library/Application Support/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1642451655
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/__main__.py", line 5, in <module>
    rmm.cli.run()
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/cli.py", line 550, in run
    globals()[command](sys.argv, manager)
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/cli.py", line 96, in wrapper_func
    func(*args, **kwargs)
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/cli.py", line 369, in update
    manager.sync_mods(manager.installed_mods())
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/manager.py", line 71, in sync_mods
    steam_mods, steam_cache_path = SteamDownloader.download(
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/steam.py", line 90, in download
    return (ModFolder.read(mod_path), mod_path)
  File "/Users/~/Library/Python/3.9/lib/python/site-packages/rmm/mod.py", line 170, in read
    p.map(
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/pool.py", line 364, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/pool.py", line 475, in _map_async
    iterable = list(iterable)
  File "/opt/homebrew/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/pathlib.py", line 1160, in iterdir
    for name in self._accessor.listdir(self):
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/3z/7qtx91l9737bzsmnxkrxphmm0000gn/T/rmm-oaq7e3zy/.steam/steamapps/workshop/content/294100'

PS: stellar job on your line on how to add the python path! 10/10

Spoons commented 2 years ago

Thanks for the follow up!

I was able to get on MacOS and complete testing. It seems my ego got the best of me as there where a few issues that needed to be resolved including the one you mentioned. Those changes have been completed and the packages have been updated.

The 1.0 release was a significant code change addressing fundamental design issues with the 0.1.x branch and introduced cross-platform compatibility. Ultimately, I had a few misconceptions on how the manager should operate on MacOS.

In regards to the PATH adding command, in the future that may be something RMM prompts for as well as downloading the SteamCMD binary.

Please feel free to let me know if you run into any other issues or if the changes failed to resolve the issue for you. Additional MacOS testing is appreciated!

Spoons commented 2 years ago

I missed your comment regarding the error message with PublishedFileId. I've pushed out a new version with that fix.

@Ant-V