-
-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Frontend rewrite using Angular #87
Conversation
@josephdadams I have thought about the release process. If I read the Here are my ideas (feel free to add some or criticize mine ;-) )
What do you think? With GitHub Actions it would not be a problem to create a GitHub Release automatically on every git tag. We could go with all the release options to provide maximum flexibility for users. |
@hrueger great thoughts! The electron package is definitely something I’ve wanted to do but I’ve been holding off until the codebase was more manageable. I even prototyped it and had it working fine but didn’t want to release it until I had done something to compartmentalize the areas of code. I’m fine with the other methods as well. You’re correct that electron won’t run on Pi’s without desktops, and pi compatibility is important to me. Bitfocus Companion achieves this through a headless script, so perhaps we could model after that. |
Could Pi uses just use the |
@josephdadams Is there a reason why the let successBool = window.navigator.vibrate(100, 30, 100, 30, 100); The TS Autocompletion wants let successBool = window.navigator.vibrate([100, 30, 100, 30, 100]); Are there devices which don't want an Array here? |
I believe so. |
Tbh I probably copied that from somewhere else that way. So whatever works. |
Is there already some logic in place to identify web clients? If I refresh my Tally Page (e.g. with F5), a new listener appears in the producer / settings view and the old one gets greyed out. I'd create a unique ID on the client side and save this in localStorage. Then, I could send this to the socket server which could identify based on that id instead of the socket id. What do you think? This is probably needed in order to save settings for each client (like in #11). |
I think that would require a recode of how all of the clients handle their ID. Is there any way to make it so that clients that support local storage use your method and older versions use the current system? I for one would be all for a system that can rematch disconnected clients with their last assigned source though. |
My thinking had been:
We can use this same id on the server side to send preferences like preferred device id, colors, etc. This way the server can relate the id to the type and enabled features |
Sounds good. As this also requires changes in the backend, I'll create a separare PR for that once this one is done. |
Great! I had started converting all the source types to their own classes but not in ts. I’ll push that to its own branch in case it is helpful. My thinking was to try to abstract it as much as possible so all the source specific logic was contained within that file. |
Thanks @josephdadams I'll take a look at that. |
It’s fine with me to move those to another page. I’m not particular about that at all. Thanks! |
Test went great. I’ll be looking to merge this week. Anything major left before I do so? |
Great 👍 I don't think that there's anything left. Once it's merged you just need to enable GitHub Pages for the |
@hrueger will the gh-pages branch automatically come over with this PR, or do we need a separate PR for that? |
It should be created automatically. |
@hrueger I've merged the PR. Fantastic job. Thanks so much! It looks like the actions are running and the builds are being created. I've created a new tag for release which fires off the actions, but not seeing the build files showing up with the release. What am I missing? |
@josephdadams Great news 😀
I always create the tag using the command line with The upload process is handled entirely by You could try creating the tag |
I created the release through the web interface. I took at look at the build.yml, it looks like all the "upload" parts are commented out. Is that correct? |
Ok, I clearly just did something wrong, because gh-actions had a draft release of 2.0.0 for me. I released that and it had the binaries attached as expected. Sorry for my naivety, I've not done anything with actions up to the point. Thanks! |
No problem, glad it works now 👍 |
This upload adds build artifacts directly to the workflow run. I found that quite useful for testing but I don't think this is needed in production. |
@hrueger since GH releases currently work, can you implement Electron autoUpdater? |
Sure 👍 |
Had a chance to look at the Angular frontend, looks fantastic. Amazing work @hrueger and @josephdadams!! 👐👐 |
Just as an FYI: after some more testing trying to get the Electron app running on a Windows environment (building the TA and Desktop UI from source) I get the error generated by Electron:
Windows Subsystem for Linux has no root user to chmod the directory chrome-sandbox to, so unfortunately the build stops there. Are there plans for publishing pre-built releases for the Electron app in the future for us Windows laypeople? Also to add a note for Linux people, the following dependencies will be needed to build with Electron, and can be installed with the following command: |
Have you tried removing node_modules and re-running |
Just tried it, here's what I see:
|
Try removing node_modules in the root directory of the project and in UI and then run |
@mattv8 Just that I understand what you are trying to accomplish: You are inside Ubuntu on WSL2 and are trying to run the Electron version from inside? And there is a Windows Installer available for download on the Releases page. Or are you looking for a portable version? |
@hrueger that's exactly right, Ubuntu 18.0.4 WSL2. I'm just trying to understand how to build the Electron side of the project for myself. Also, I'm a goober and didn't notice the releases page here: https://github.com/josephdadams/TallyArbiter/releases Typically on a repo you see the releases from the project root (https://github.com/josephdadams/TallyArbiter) on the right column so I had just missed that Joseph created a Releases page. @MatteoGheza Tried as you suggested, and saw the same error as before:
There's a mention of this error on Electron's repo that is marked as solved, so this must be a limitation of WSL to build Electron: electron/electron#17972 |
I have not yet managed to run gui apps and therefore electron apps inside WSL2. I've read that support for those is coming with one of the next Windows Updates. But you could try building and running on Windows? |
I will have to figure out how to build and run on Windows, as I'm unfamiliar with NodeJS on anything other than Linux & derivatives. I'll give it a try and report back. |
Did you try By the way: running |
@josephdadams can you enable the "Releases" tab in the repo settings somewhere? I wonder why it does not appear. |
Good luck, it should actually not be much different. You just need to make sure that you run |
@hrueger I added you to the repo to see if you can find it because I could not :) |
I figured it out with your help :) |
Advantages:
Current Status:
fixes #86