endlessskycommunity / eslauncher2 Goto Github PK
View Code? Open in Web Editor NEWThe next generation Endless Sky Launcher.
License: GNU General Public License v3.0
The next generation Endless Sky Launcher.
License: GNU General Public License v3.0
Currently, every ES instance you download shares its save files and plugins with all the other instances. It would be very useful to have an option to specify that an instance should be self contained, i.e. it doesn't share any save files or plugins with the other instances.
#213 is similar, but perhaps an easier way to do this would be to add some way to be taken to where the plugin is downloaded from - like putting a hyperlink into the title of the plugin that when clicked on leads to the plugin's page / download page. From there you could see the description and what have you.
Tracking issue.
On Big Sur, it seems that instances are written and are playable, but once the launcher is closed & reopened they cannot be read from the disk.
Weirdly enough, there are no serious errors, and the instances are still there on the file system.
Sometimes I might make a branch on my fork (not a pull request to endless sky) which has multiple PRs combined for people to play test an entire suite of changes. It would be cool if a generic GitHub URL was supported for branches, pull requests, and tags.
The GitHub URL could support the following three syntax formats (branch, tag, PR).
https://github.com/endless-sky/endless-sky/tree/master/
https://github.com/endless-sky/endless-sky/tree/v0.9.14
https://github.com/endless-sky/endless-sky/pull/6669
The point of supporting a generic URL is let's say I push a branch to my personal fork. I could then provide a URL such as:
https://github.com/samrocketman/endless-sky/tree/mining-complete
And then users would be able to use ESLauncher to download my custom version which combines multiple pull requests.
User Darcy Manoel reported that on MacOS the system file ".DS_Store" gets reported as an installed plug-in.
Ideally, the launcher filters out typical system files and ignores them in the plugin directory.
The MacOS version currently occupies one CPU kernel with 100% constantly while the launcher is running. Ideally, it should consume as few resources as possible while running.
First analysis:
OS: Win10-64
ESLauncher2-Version: 0.4.1
To reproduce:
I would guess this is related to the other issue I reported.
currently artifact download links are retrieved through a shoddy closed-source software running on my server. It would be much better to write something solid and deploy to cloudflare, which gives 100k requests / day for free.
In case anyone else wants to try this:
I'm not sure if this is possible but having the ESLauncher2 be compatible with older versions of macOS (I'm running 10.11) would be much appreciated. My computer does meet all the other requirements so unless there's something in the code or dependencies that precludes my system I don't see this being a problem.
Or maybe at least if I had the ability to easily build it myself that would be helpful as no Xcode project is provided for a macOS build (so I'm not even sure how you build it).
User Squiddy reported that installation of a PR did not work because he got an error message about the GitHub API RateLimit being exceeded.
I tried to run my version of the launcher with a different PR and get the same error message, so it seems there is an overall limit. We should:
On Fedora 33, with GNOME running under Wayland, the ESLauncher2 window does not open; the launcher crashes with [wayland-client error] Attempted to dispatch unknown opcode 0 for wl_shm, aborting.
This does not occur under X11 and did not occur on Fedora 32. The latest build of the iced
Todo app mentioned in #4 opens just fine.
either throw a helpful error or flat out refuse to accept it as input.
Sorry for the 3rd ticket, but since I have a Mac at my disposal, I had a go at that version as well.
OS: macOS Catalina
Version: 0.4.1
MacOS only allows me to run the program when it's copied to the Applications-folder. As root, I can start the program there, but of course it doesn't find my player profiles etc., since they are under my user profile
As user, I cannot launch the application, because it write the application log into the same directory the file is in.
If you could write the application log to a user directory, it would probably also work on Mac.
On windows, launching the continuous build opens a cmd shell alongside the game. Closing the cmd also shuts down the game. Nothing unusual in the logs
May be an issue with the continuous build itself, or with the way ESL2 launches it.
Launcher gets really laggy after a few launches, probably due to the tons of error 200+ plugins made clogging up the log.
While it is now more comfortable to enter the version (or PR), it's still require that the users know the notation and they can easily make typos.
Suggestion: convert the version/PR input field into a drop-down list and pre-populate the version / PR numbers. This ensures a valid input and makes it more convenient to select versions. Not sure about the PRs, there are probably a lot of them.
Preferably, the selection list is ordered newest -> oldest
Preferably, the list is dynamically updated, but only once, e.g. when starting up the tool.
Potential further enhancement: offer "refresh" button to reload list of Versions and PRs.
Tracking issue-
Eventually, ESL2 might have to persist some configuration between launches. This will probably involve a json file being written to data_dir
.
iced now has a tooltip widget: iced-rs/iced#465
This is a tracking issue for all of these symptoms - mostly to have a #wontfix i can point to.
ESLauncher2 uses iced as GUI toolkit - which uses the wgpu-stack as rendering backend.
Most of these issues presumably originate from these components. There's a simple way to test that - go to iced's github actions and download the latest "todo" program. If it doesn't work, blame iced / wgpu, otherwise open a new issue.
See also iced-rs/iced#337.
Update: There is a branch with iced's new OpenGL-based backend. You can try it out here: https://github.com/EndlessSkyCommunity/ESLauncher2/actions/runs/352405978
OS: Kubuntu 20.04
There appears to be a blank icon in the launcher. Hovering over it implies that there is a button in the space, but when clicked on, nothing happens. In addition, it is not clear that the red button deletes an instance; when I first started using ESL, I accidentally deleted an instance trying to figure out what the button did.
Here's a picture of the phantom icon:
As for the red button, perhaps it could be replaced with a garbage can icon, or maybe a tooltip could be used to make its purpose clearer.
Thanks for the work you've done on this project btw, it makes using continuous a lot easier for me.
It would be ideal if ESL2 could hide away once a game is launched, then reopen when it closes.
Blocking: iced-rs/iced#124
for example, if the artifact unblocker is down, the user only gets an obscure message about "Failed to read JSON"; the clue is the message before that which is the previous installation step.
This is true for just about all installation steps.
Experimented on Windows 10, latest release
I tried to create a continuous instance of ES name "Continuous 9/10/20" and it created "Continuous 9" with subfolder "10" with subfolder "20". The data was inside the last one iirc
Didn't try to launch, but deleted it (using the delete button on the launcher). It deleted the last folder (the "20") but not the rest.
Currently, you only see a mod's name and latest version. It would be nice to see the mod's description too (maybe under a toggleable header).
Just like PRs and releases, we should be able to install specific commits by hash.
Add an option that lets the user launch the program in debug mode, which among other things lets the player play at slow speed.
Log provided by Tyro. The error doesn't happen all the time, and apparently it can decrypt a sufficient number of packages - just not always enough to finish the download.
05:47:02 [DEBUG] (5) ureq::unit: redirect 302 https://github.com/endless-sky/endless-sky/releases/download/continuous/EndlessSky-win64-continuous.zip -> https://github-production-release-asset-2e65be.s3.amazonaws.com/32231207/811bcc00-59b4-11eb-9f99-7f07cd83c295?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210119T054701Z&X-Amz-Expires=300&X-Amz-Signature=b2282274bc396e809563b135b93e4ba447a4fae0e936932adbad6b5f875a1229&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=32231207&response-content-disposition=attachment%3B%20filename%3DEndlessSky-win64-continuous.zip&response-content-type=application%2Foctet-stream
05:47:02 [DEBUG] (5) rustls::client::hs: No cached session for DNSNameRef("github-production-release-asset-2e65be.s3.amazonaws.com")
05:47:02 [DEBUG] (5) rustls::client::hs: Not resuming any session
05:47:03 [INFO] sending request GET https://github-production-release-asset-2e65be.s3.amazonaws.com/32231207/811bcc00-59b4-11eb-9f99-7f07cd83c295?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210119T054701Z&X-Amz-Expires=300&X-Amz-Signature=b2282274bc396e809563b135b93e4ba447a4fae0e936932adbad6b5f875a1229&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=32231207&response-content-disposition=attachment%3B%20filename%3DEndlessSky-win64-continuous.zip&response-content-type=application%2Foctet-stream
05:47:03 [DEBUG] (5) ureq::unit: writing prelude: GET /32231207/811bcc00-59b4-11eb-9f99-7f07cd83c295?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210119T054701Z&X-Amz-Expires=300&X-Amz-Signature=b2282274bc396e809563b135b93e4ba447a4fae0e936932adbad6b5f875a1229&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=32231207&response-content-disposition=attachment%3B%20filename%3DEndlessSky-win64-continuous.zip&response-content-type=application%2Foctet-stream HTTP/1.1
Host: github-production-release-asset-2e65be.s3.amazonaws.com
User-Agent: ureq/1.5.4
Accept: */*
05:47:03 [DEBUG] (5) rustls::client::hs: ALPN protocol is None
05:47:03 [DEBUG] (5) rustls::client::hs: Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
05:47:03 [DEBUG] (5) rustls::client::tls12: ECDHE curve is ECParameters { curve_type: NamedCurve, named_group: secp256r1 }
05:47:03 [DEBUG] (5) rustls::client::tls12: Server DNS name is DNSName("github-production-release-asset-2e65be.s3.amazonaws.com")
05:47:03 [DEBUG] (5) rustls::client::tls12: Session saved
05:47:03 [DEBUG] (5) ureq::unit: response 200 to GET https://github-production-release-asset-2e65be.s3.amazonaws.com/32231207/811bcc00-59b4-11eb-9f99-7f07cd83c295?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210119T054701Z&X-Amz-Expires=300&X-Amz-Signature=b2282274bc396e809563b135b93e4ba447a4fae0e936932adbad6b5f875a1229&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=32231207&response-content-disposition=attachment%3B%20filename%3DEndlessSky-win64-continuous.zip&response-content-type=application%2Foctet-stream
05:47:03 [INFO] Downloaded 0 KiB
05:47:05 [INFO] Downloaded 4865 KiB
05:47:07 [INFO] Downloaded 11009 KiB
05:47:09 [INFO] Downloaded 16881 KiB
05:47:11 [INFO] Downloaded 23121 KiB
05:47:13 [INFO] Downloaded 29265 KiB
05:47:15 [INFO] Downloaded 32849 KiB
05:47:17 [INFO] Downloaded 37361 KiB
05:47:19 [INFO] Downloaded 42209 KiB
05:47:19 [ERROR] Install failed: cannot decrypt peer's message
ESLauncher2 v0.6.2 and .3
Mods in the current launcher and game must be deleted or moved out of directory to be disabled. By allowing mods to be toggled form the launcher it would speed up mod management and help new users who aren't familiar with mod file structures.
Bonus points for presets and selectable (compact) mod organization.
Currently the PR function doesn't work because it adds a duplicate .zip ending.
OS: Win64
ESLauncher-Version: 0.4.1
To reproduce:
I and a team of others are working on https://github.com/Endless-Sky-Pirate-Campaign/endless-sky
Being able to manage installs of this branch using ESLauncher2 would smooth over our work greatly. I believe MCO mentioned something about needing to change how artifacts are handled to make this work.
Given that tooltips aren't available quite yet (though Overlays now are), using a better icon may help convey what the debug button does.
I'm partial to the icon used by VS Code, which appears to be usable (with appropriate CC4 copyright attributions):
https://github.com/microsoft/vscode-codicons/blob/master/src/icons/debug-alt.svg
It appears that repo describes generating a TTF font, so you'd be able to continue using the same asset pattern.
Currently, updates simply override the old version. To ensure a clean update and deal with files that have been removed, the old version should be wiped beforehand.
Plug-ins already have a "working" state where they cannot be removed or updated. The same should be implemented for instances:
Currently, the application does not remember that I paused the audio when a game that I have launched exits.
To reproduce:
To take this a stop further, ESLauncher2 could as well retain this setting between executions of ESLauncher2 itself. But that would mean the state has to be persisted.
At the bottom of the launcher, the logs don't appear to be fully opaque. I'm not an expert in these things, but it looks like it uses additive blending over other windows that are rendered below, while other parts of the launcher don't. This issue is difficult to notice over regular text, but is quite visible on highlighted lines.
In this example, the launcher overlaps the github page of the project. The release version is clearly visible in the red section. If you look really closely you can also see some things render over regular text as well, however the white background stays white.
OS: Ubuntu 22.04 LTS (64-bit) with Wayland and GNOME 42.2
GPU: AMD Radeon RX 570 (with the drivers provided by the standard Ubuntu installation)
Tried out on OpenSUSE, both the release RPM and git clone
+ cargo build --release
, and I get a wayland error:
[wayland-client error] Attempted to dispatch unknown opcode 0 for wl_shm, aborting.
A quick google looks like this is a rust problem, possibly something with a library from (or fixed in) 2020, typically with rust programs on Fedora. I'll try to find time to look more another day. I'm on OpenSUSE, up-to-date Tumbleweed, KDE/Wayland.
Not a problem for me, since I just use endless sky direct compiled from github, just wanted to take a look at eslauncher again.
(I'm totally leaving that typo in the title)
The default white look could be improved. The creme de la creme would obviously be an ES-like theme.
Through discussions on Discord attempting to help matthew.najmon using ESL2, a number of GUI issues have been highlighted:
Some text isn't easily visible, specifically the text inside the 'name' textbox, but there may be others, because of poor contrast against the background, leading to it being unclear what you need to do before it'll let you click the install button. (At least one other user also experienced this issue).
Some sort of label to indicate why currently unavailable buttons are unavailable (like a tooltip to indicate that you need to enter a name before installing).
Tooltips in general (#146 mentions this).
The option to enable auto-updating on the continuous build (I've seen multiple people expecting it to update continuously on its own, I don't necessarily think this is a universally good idea, but the option for a user to enable it would be good). Alternatively, maybe more importantly, make it more clear what 'continuous' actually means here.
Currently PRs from master can fail to install due to the way workflow runs are found. We should be able to work around that by simply sifting through more workflow runs - it will take longer, but it should work.
Edit: use 5071 (f.e.) for testing
ESL2 still does not have a window icon. This probably requires some winit
magic, which means it probably requires support from iced.
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.