ngld / old-knossos Goto Github PK
View Code? Open in Web Editor NEWA mod launcher/installer for FSO
Home Page: https://fsnebula.org/knossos/
License: Apache License 2.0
A mod launcher/installer for FSO
Home Page: https://fsnebula.org/knossos/
License: Apache License 2.0
The script should at least be able to tell the user that there's a new version available. Maybe it should update itself?
So, say I create a mod called "test" locally and there's also a mod "test" on Nebula. I mean.. who would be so lazy as to name a mod "test" anyway?! But say they also happen to have the same lazy mod ID. (What a coincidence!) Knossos will check the local mod against the Nebula version, even if the local one was just created.
My Test mod was 1.0.0. The Nebula version is 2.1.1. Amazing! My brand new mod already has an update available!
Additionally, now I can't delete my local mod, because I don't have permission to delete the Nebula version of "Test".
I realize this may be a niche case, but something we should think about. I'm thinking a system should be implemented where knossos either askes Nebula if there's duplicates before creating a mod locally OR chooses the ModID automatically, forcing it to just be randomly numerical or hex or something.
Using this basic template, implement the First Run guide to help the setup process be more smooth.
Other notes are to add the option to login at the last step (Suit Up Pilot) and to make sure OpenAL is installed.
Allow the user to change the order of mod sources in the Settings tab. The mods in a lower source replace the mod in a higher source.
For example:
If A has a mod Foobar and B has the an entry with the same name, only B's Foobar is shown. This 'priority' only applies when a name appears in mulitple sources.
You can test this easily with the Test 2.2.2 mod. Click the hard-light.net link and on Windows it does nothing.
When starting an Install, Knossos forces you to the Home tab. However the current order of tasks means that the mod you are installing does not show in the Home tab which means you can't see it's progress unless you go back to Explore.
My preferred way to resolve this is to just keep the user on the Explore tab after an install has begun. Assuming that they can install multiple mods simultaneously, this has the added benefit of keeping them right there to install a few more.
Add the announcements from HLP and/or updates for mods as scrolling text in bar next to the Search field. We'll need to think about how to limit the length of the announcements text from HLP.
Update links can link directly to those mods in Knossos.
Seems light [right] and [center] aren't working for our BBCode setup. Probably a conflict with CSS
We'll add a new BBCode field called Changelog or Changes to mod releases.
The contents can be seen by opening the mod's detail page and clicking the new "Changelog" button.
When updating a mod, the contents will also be displayed in a popup (if the field isn't empty).
It seems that there may be a memory leak when installing mods. I initially noticed this when my PC started paging and the resident memory set (as reported by top) for Knossos was at 2.5GB and growing during an install. A few simple tests suggests that during the install the entire set of mod files is read into memory and then not released. e.g. I did a test install of Blueplanet and the RSS went from ~100MB to 1GB and stayed there once the install was completed.
This could make the initial "install everything" approach for new users a bit interesting :)
Hi!
I'm running Ubuntu 17.04, this is a clean install. I've installed the dependencies and build Knossos, however I'm running into the following error. I suspect some default keys are missing from the settings object:
[0/1] DEBUG
INFO:MainThread:launcher.main: Running Knossos 0.5.0-dev on PyQt5.
DEBUG:MainThread:launcher.main: Loading resources from /home/loris/Code/knossos/knossos/data/resources.rcc.
DEBUG:MainThread:launcher.main: Loading settings...
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
File "/home/loris/Code/knossos/knossos/__main__.py", line 123, in <module>
launcher.main()
File "/home/loris/Code/knossos/knossos/launcher.py", line 287, in main
load_settings()
File "/home/loris/Code/knossos/knossos/launcher.py", line 145, in load_settings
if '#default' not in settings['cmdlines']:
KeyError: 'cmdlines'
FAILED: debug
KN_BABEL=False KN_DEBUG=1 QTWEBENGINE_REMOTE_DEBUGGING=4006 /home/loris/Code/knossos/knossos-virt/bin/python /home/loris/Code/knossos/knossos/__main__.py
ninja: build stopped: subcommand failed.
Knossos will ask the user if they want to enable torrents during the first launch.
This could save bandwidth on the mirrors and improve reliability during traffic spikes.
Each torrent will be automatically generated on the server and include web seeds to ensure that it will always be available (as long as we have mirrors, anyway).
This might require me to add a lot of new options to the settings view. (UL speed, listen port (random?), max DL speed, seed ratio, etc.)
This needs to be part of the integration module since it's platform-specific.
The desktop shortcuts should point to Knossos' executable (launcher.get_cmd()
) and pass fso://run/<mod id>
as the parameter.
It'd be good to have it lower, similar location to where the buttons are on the "installed" tab.
The task needs to clean up any created files. This will most likely require changes to the Task
class because that code needs to run in the background, too.
There seems to be a race-condition where sometimes the next step is triggered even though the task was cancelled.
To update a mod all changed/added files should be downloaded and all old/leftover files should be removed.
The script can already download missing and changed files but it can't detect leftovers...
wxLauncher displays the version number (and githash for nightlies) as well as a marker for debug builds instead of the filename.
Knossos should be able to do the same.
I've noticed some weird issues on Ubuntu which may or may not be a result of my testing setup.
knossos --deviceinfo
hangs (so far I can only tell that the issue is in either SDL2 or OpenAL code)."You need to select a directoy where Knossos will store the game data (models, textures, etc.)." -- first, "directory" is misspelled; second, a sensible default should be provided. Maybe %APPDATA%\knossos. I used My Documents\knossos for the time being.
The installation program said it would create an icon on my desktop. It created an icon for the administrator user, but it didn't create an icon for my standard user. (When I launched it, it displayed the UAC dialog.) Neither did it create a start menu icon or group for my standard user.
If there are no mods currently found, I suggest starting on the "Explore" tab instead of the "Home" tab.
I was browsing through the Settings tab, when a mod download completed and it yanked me back to the Explore tab. Suggest not overriding the tab like that.
Knossos should be able to operate from an USB stick. Recent FSO builds implement a portable mode which make this possible.
These errors can happen during folder renaming, .exe launching and removing. Most of them seem to cause critical errors.
The button should upload the log to https://pastebin.com (they should have an API for this) and put the URL in the user's clipboard. Maybe add BBCode.
The mod tiles aren't filtered and due to an error in process_pkg_selection
several FSO versions can be returned at the same time.
I also need to investigate if the FSO build selection works properly once this is fixed.
The FSO specific settings should be moved from the SettingsWindow
to ModSettingsWindow
.
Afterwards a new button "Game settings" (?) will be added which allows the user to set defaults for most (/ all?) options.
Important Change: This will make the setting fs2_bin
mod specific. The default for needs to be derived from the mod's dependencies. This will allow mods to transparently use custom builds.
When launching a TC Knossos should start FSO from inside the TC directory.
This is blocked by #21.
These both happen when I click Save somewhere (both Save buttons if necessary), and later come back to it:
a) when I deselect optional packages for a mod dependency, it reverts to having of them are selected again
b) when I set the mod dependency to a previous version, it reverts to "newest"
I ran into these when configuring dependencies for FSPort MediaVPs and ST:R.
I tried renaming Shivans! to Shivans, then saved and clicked Upload, but the mod continued to use the old name.
On Mint 17 using the PPA, I needed to install all the recommend packages in order for knossos to run correctly. i.e.
$ sudo apt-get install knossos
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libsdl2-2.0-0 p7zip-full python3-semantic-version
Suggested packages:
p7zip-rar
Recommended packages:
python3-pyside.qtgui python3-pyside.qtnetwork python3-pyside.qtwebkit
The following NEW packages will be installed:
knossos libsdl2-2.0-0 p7zip-full python3-semantic-version
(etc)
Then
sudo apt-get install python3-pyside.qtgui python3-pyside.qtnetwork python3-pyside.qtwebkit
I'd thought that if these are required to run then it should pull them all in automatically?
I don't have much to go on. At first I was fighting missing dependencies, then when I stopped getting the message that indicated I was missing dev packages, I got the following instead:
Collecting resources...
Packing resources...
Compiling ui/settings_audio.ui...
Error: No such file or directory: "knossos/ui/settings_audio.py"
Makefile:29: recipe for target 'knossos/ui/settings_audio.py' failed
make: *** [knossos/ui/settings_audio.py] Error 1
Platform is OpenSuSE 13.2 64-bit, with a number of python packages including the PySide stuff and the python Qt4 and Qt5 bindings. along with some of the 32-bit versions installed too.
Not sure what else to do. I get no stack trace this way, and if I manually run the command in the Makefile that's under the target of run, python - m knossos, I get a totally different failure with a stack trace (see below) that claims I have no copy of the semantic_version module installed even though I did a pip install of that module as well as rq.
DEBUG:MainThread:qt.<module>: Using Qt API PySide.
Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/jsbelanger/knossos/knossos/__main__.py", line 23, in <module>
from knossos import launcher
File "knossos/launcher.py", line 59, in <module>
from . import util
File "knossos/util.py", line 28, in <module>
import semantic_version
ImportError: No module named semantic_version
Hope you folks can make some sense of this. I've got nothing.
When starting Knossos for the first time, if you select a directory that doesn't exist, Knossos will not ask if you want to create it.
On a related note, if you start Knossos from the updater, it will launch it under the administrator user, not the current user, which will make Knossos think you are starting it for the first time.
Knossos should be able to update automatically on macOS (similar to what happens on Windows).
A failed upload should be retried if the cause was a connection error. Resuming might be nice but would require changes to Flask and Werkzeug or uploading chunks.
The latter sounds simpler to implement but requires additional server code to track and merge the chunks.
When installing an fs2mod package every file is downloaded and extracted twice.
This is minor; but clicking on Settings -> Help results in the following being output to STDOUT
ERROR:MainThread:windows.show_tab: SettingsWindow: Tab "Help" not found!
On Mint 17, installed from PPA, using python3
The best way to see this issue is to start on the Explore tab. Scroll down to find the mod "Warzone". Click Details for Warzone. you'll start at the bottom of the details page.
Whenever we switch tabs or pages, we should bring the user back to the top of the page.
If you set your preferred stability to "RC" or "Nightly" and then go to Explore and try to install something, Knossos throws an error.
If a mod does not list a build, FSO, custom, or otherwise... the user should get a warning when trying to upload and the upload will be cancelled.
The used cmdline_fso.cfg:
-mod mediavps_3612 -missile_lighting -3dshockwave -post_process -fxaa -dualscanlines -orbradar -rearm_timer -ship_choice_3d -weapon_choice_3d -3dwarp -warp_flash -snd_preload -fb_explosions -keyboard_layout "azerty" -ambient_factor 75 -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -ogl_spec 60
The actual error message:
Starting FS2 Open (/home/loris/FreeSpace 2 beta/fs2_open_3.7.1_llvm_BP) failed! (return code: -11)
Check wxLauncher (and possibly others) to see if I missed anything. This should be resolved by fixing run_fs2
once I find out why FSO crashes.
We should allow mod authors to add tags to their mods to make sure their mods are found with relevant search terms even if those don't show up in the mod title.
The simplest solution would be a simple text field which would be checked in addition to the mod title while searching. If we want to display tags or allow filtering by tags or something like that, we'll need a better solution.
While testing some things I removed some Option packages from the MediaVPs in the modify tab on a mod that uses MediaVPs as a dependency. Knossos didn't actually delete these packages. However, I cannot launch MediaVPs with these packages anymore, as expected.
However, I cannot reinstall them using the modify tab on MediaVPs in Home or Explore, either.
Last Updated is not updated for released mods on the dev's computer locally. It is updated on nebula and on the Explore tab.
Either Dev mods should have Last Updated added upon upload or a more fancy option is have Knossos display the last updated date for the most recent file chnage in the mod folder. The latter is unnecessary, probably difficult, but also cool.
Known paths:
What's the Steam path? C:\Program Files (x86)\Steam\SteamApps\common\Freespace 2?
Where does GOG Galaxy install FS2, is it the same folder the GOG Installer uses?
When first launched, Knossos should check the known paths and if any of them contain retail files, a new button "Use your FS2 installation (pick this if you're not sure which one you need)" should show up as the first option.
Upon clicking it, a dialog will appear asking the user where everything should be installed to (the future content directory). A sane default would make sense here but I'm not sure what such a default would look like since the known installation paths seem to be all over the place.
I noticed that misc.vp in Scroll was corrupt, so I created version 1.0.9 (using copy, because rename still caused a critical error, even when I closed all the files). I moved all the identical files from 1.0.0 into 1.0.9 and then replaced misc.vp with the proper uncorrupted file. Unfortunately, Knossos is re-uploading every single file, and every single package, for version 1.0.9.
When I install a mod from the Details page and then click on the "Installing..." button then the progress bars are frozen and won't update until the dialog is reopened. The progress report works a expected when opened on any of the other pages.
If during an upload a package is empty, abort the upload and display an error to prevent broken releases.
If a mod is updated or a new version is installed, the unchanged files should be copied from the previous version.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.