Giter Club home page Giter Club logo

eslauncher2's People

Contributors

dependabot[bot] avatar fakefriend24 avatar koranir avatar mcofficer avatar pega3 avatar righthandson avatar samrocketman avatar thomasballinger avatar yjhn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eslauncher2's Issues

Allow users to create a completely separate ES installation.

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.

Plugin Enhancement

#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.

Wrong instance directory on Big Sur

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.

Support load by URL

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.

Resource usage in MacOS version

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:

  • Switching the music on or off does not make any difference
  • launching a game does not make any difference
  • minimising the application window does not make any difference.
    I will continue to look into this.

Update of Continous build not working

OS: Win10-64
ESLauncher2-Version: 0.4.1

To reproduce:

  • installed continous build (into "cont" instance) - worked like a charm
  • closed tool
  • started tool again and pushed the update button
    Error message: [ERROR] Failed to update instance: C:...\ESLauncher2\instances\cont\EndlessSky-win64 doesn't exist
    (I shortended the path, full path in log)

ESLauncher2.log

I would guess this is related to the other issue I reported.

replace artifact unblocker

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:

  • There's really no point in choosing a specific language, everything is transpiled to JS. That being said, if you want me to maintain it, it better be Python/Rust/Dart/any JVM language.
  • All the server needs to do is

Backwards compatibility with older versions of macOS

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).

Intensive usage leads to GitHub API RateLimit exceeded

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:

Window does not open on Fedora 33 Wayland

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.

Mac-version: write error log to user directory

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.

Continuous build opens with a cmd window

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.

Improvement-suggestion: selectable versions

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.

Persist configuration

Tracking issue-
Eventually, ESL2 might have to persist some configuration between launches. This will probably involve a json file being written to data_dir.

Unusable on small screens

Having a display with small height can kinda break the launcher:
image

The short-term fix would be to wrap everything into a scrollable (can't hurt, can it). In the long term, something like ctrl+ / ctrl- would be nice.

Window doesn't open

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

Blank icon and unclear delete icon

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:
Screenshot_20210114_114424

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.

improve errors during installation

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.

Installing an instance with "/" in the name causes subfolder to be created

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.

Add a way to see a mod's description

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).

Flaky TLSDecrypt Error

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

rustls::TLSError::DecryptError

Toggleable Plugins/Mods

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.

Download of Release not working

OS: Win64
ESLauncher-Version: 0.4.1

To reproduce:

  • started ESLauncher
  • selected "Release" radio button
  • filled out instance name (rel-0-9-12)
  • filled out release number (v.0.9.12)
  • pressed "Install"
    Tool finds assets, but then aborts with message: 16:09:37 [ERROR] Install failed: Couldn't match any asset against EndlessSky-win64
    ESLauncher2.log

Updates don't handle deleted files

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.

Implement state for instances, too

Plug-ins already have a "working" state where they cannot be removed or updated. The same should be implemented for instances:

  • Working: while being updated, and possibly while installing (later)
  • Playing: while an instance is running
  • Idle

Improvement: retain audio settings

Currently, the application does not remember that I paused the audio when a game that I have launched exits.
To reproduce:

  • Run ESLauncher2
  • Pause Audio
  • Launch Endless Sky game
  • Exit game
    => Launcher will play music again.
    It should retain the setting before the launch, i.e. if I paused the music, it should not start playing again.

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.

Logs render with transparency

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.
Example of the launcher overlapping the github page
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)

Wayland error when running on OpenSUSE

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.

Drak theme

(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.

GUI improvement request

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.

Better support for PRs from master

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

No window icon

ESL2 still does not have a window icon. This probably requires some winit magic, which means it probably requires support from iced.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.