Closed rgov closed 5 years ago
Closing, as my changes on the master
branch are going to become more disruptive and outside the scope of this pull request.
Couldn't you make a branch of the non-disruptive changes and make a PR for that?
The commits that @PeridexisErrant wants can always be cherry-picked, but this was open for nearly a month and I don't want to spend time fiddling with git branches to preserve this pull request in its original state forever.
If you just want to keep it in its current state, you wouldn't have to fiddle with it more than once.
(Also, PE hasn't been active on GitHub in a while, at least according to his public profile.)
@rgov Your changes aren't disruptive, and are compatible with @PeridexisErrant's branch (except possibly your Unix zip shellout, which should only happen on mac/linux). Moreover @PeridexisErrant's reappeared for a few commits this month.
Could you please reopen your pull request (and hide your Unix zip behind an OS switch, if necessary)?
The point was that this PR was made on rgov's master branch, which meant any further unrelated changes there would show up here as well.
I've done some preliminary work to make the starter pack build on macOS.
macOS specific changes
I updated
components.yml
to include some macOS-specific paths.I added the ability to extract .dmg files, which was needed for Legends Browser.
Legends Browser.app/
when copying files.I added support for extracting zip files and preserving the UNIX file mode, since ZipFile isn't aware of it.
I tried to preserve symbolic links when copying files around, because macOS .app bundles often have symlinks that point to relative files.
General bug fixes
I fixed the metadata caching system, which was causing a huge startup performance hit. Now as long as you re-run the program within 30 minutes, no new metadata will be fetched.
I removed concurrency from
extract.py
, because it was hiding error messages. The entire thing runs in about 15s on my laptop, and considering that this tool is only run once in a while, it does not seem worth the hassle for concurrency.TaskQueue
which pops tasks off in dependency order, and catches dependency cycles.Other changes
I added a
requirements.txt
for quickly installing required modules in a virtual environment.I replaced "OSX" with "macOS" wherever it was displayed to the user. (The product name was never written "OSX".) Internally, the
osx
identifier is still used, because it was a breaking change.Remaining issues
zip
or another command line tool.build/
directory and used.How I've tested it
Barely at all. I hope the community will be able to tell me what they expect to work, and what actually works.
The Launcher app runs.
The utilities can all be launched from the Launcher's Utilities panel.
The "Play Dwarf Fortress!" button launches the game with some customized graphics.