TallyArbiter icon indicating copy to clipboard operation
TallyArbiter copied to clipboard

TODOs for v3.0.0 (Typescript Refactoring)

Open MatteoGheza opened this issue 3 years ago โ€ข 21 comments

Sources

Source
Status
Tested by Issues
Analog Way Livecore ๐Ÿงช needs testing
Blackmagic ATEM โœ” Working @hrueger โœ” Initial state is not loaded
โœ” Flickering
โœ” {{STREAMING}} is missing
โœ” {{RECORDING}} is missing
Blackmagic VideoHub ๐Ÿงช needs testing
Incoming Webhook โš  missing implementation
Internal Test Mode โœ” Working @JTF4 โœ” Was not able to adjust time when added by toggle button
โœ” Bus states would not clear after disabling test mode
โœ” Removing test mode using button would not trigger ConfigSave so test mode would become active upon restarting TA
Newtek Tricaster ๐Ÿงช needs testing
OBS โœ” Working @hrueger
@MatteoGheza
โœ” Crash when switching to scene without a device_source
โœ” Nested scenes not working
โœ” Initial state is not loaded
OSC ๐Ÿงช needs testing
Panasonic AVHS410 ๐Ÿงช needs testing
Roland Smart Tally ๐Ÿงช needs testing
Ross Carbonite
๐Ÿงช needs testing
TSL 3.1 UDP โœ” Working @JTF4
TSL 3.1 TCP โœ” Working @JTF4
TSL 5 UDP ๐Ÿงช needs testing
TSL 5 TCP ๐Ÿงช needs testing
VMix
๐Ÿงช needs testing

Actions

Action
Status
Tested by Issues
Local Console Output โœ” Working @hrueger
@MatteoGheza
OSC โœ” Working @JTF4 โœ” Argument parsing gets stuck in an infinite loop
Outgoing Webhook โœ” Working @MatteoGheza
RossTalk โœ” Working @JTF4
TSL 3.1 UDP โœ” Working @JTF4
TSL 3.1 TCP โœ” Working @JTF4
TSL 5 UDP ๐Ÿงช needs testing
TSL 5 TCP ๐Ÿงช needs testing
TCP โœ” Working @JTF4

Clients

Client
Status
Tested by Issues
M5StickCListener ๐Ÿงช needs testing
Blink1Listener ๐Ÿงช needs testing
Pimoroni-Blinkt-listener ๐Ÿงช needs testing
M5AtomMatrixListener ๐Ÿงช needs testing
RelayListener ๐Ÿงช needs testing
GPOListener ๐Ÿงช needs testing

Other Features

Feature
Status
Tested by Issues
Cloud ๐Ÿงช needs testing
TSL Listener Clients ๐Ÿงช needs testing
vMix Listener Clients ๐Ÿงช needs testing

Other TODOs:

  • [x] Initial TypeScript support

  • [x] Fix CI

  • [x] Classes

  • [x] Sync models with UI instead of copying

  • [x] Get rid of // @ts-ignores

  • [x] Add types for function parameters

  • [x] Add function return types

  • [x] Give Tally Data to UI

  • [x] Support linked busses (UI as well as application)

  • [x] Move Actions into separate classes (with more decorators ;-) )

  • [x] Add Addresses for selection in UI

  • [x] Move remaining Source Types ito their classes

  • [X] Release 2.0.15 from 2.0.14 with support for release notes

  • [x] Fix listener clients #225

Based on @hrueger comments #204

MatteoGheza avatar Oct 05 '21 14:10 MatteoGheza

@MatteoGheza @hrueger @JTF4 anything major left on this list we should address?

josephdadams avatar Nov 26 '21 16:11 josephdadams

I think the only thing we really need is a tsl5 test, but we don't have a tsl5 system. So the best way to test it would probably just be releasing it.

JTF4 avatar Nov 26 '21 16:11 JTF4

I agree ๐Ÿ‘

hrueger avatar Nov 26 '21 16:11 hrueger

That's fine with me. It's more or less the same code there that we had before, so if someone has a problem, we can help resolve it.

josephdadams avatar Nov 26 '21 16:11 josephdadams

Did we verify cloud functionality?

JTF4 avatar Nov 27 '21 03:11 JTF4

I don't think so, at least I did not.

hrueger avatar Nov 27 '21 09:11 hrueger

If we verify that cloud works, then I think that we would be good for a release

JTF4 avatar Nov 27 '21 19:11 JTF4

Easy to test, just need two installs

josephdadams avatar Nov 27 '21 19:11 josephdadams

@josephdadams im working on that now.

@MatteoGheza What would you think about merging your new authentication system before we release?

JTF4 avatar Nov 27 '21 20:11 JTF4

@JTF4 I released a beta because someone needs it. I think that we can release 3.0.0 as beta and 3.1.0 as stable (with new login system).

MatteoGheza avatar Nov 27 '21 20:11 MatteoGheza

I spun up two instanced of TA and when I try and connect them across the cloud, the destination instance freezes with no indication of what went wrong.

JTF4 avatar Nov 28 '21 02:11 JTF4

Maybe we get some kind of infinite loop?

hrueger avatar Nov 28 '21 09:11 hrueger

That would explain it. I'll look at the connection process

JTF4 avatar Nov 28 '21 13:11 JTF4

Any TODO left? I think we should focus on fixing the cloud connection and on testing the new auth system, so we can release v3 "stable beta" in the next days or weeks. Speaking of auth system, if you think this system doesn't work well or it's "overkill" to use JWT and hashed password, we still have time to revert to the old one / improve this before the release.

MatteoGheza avatar May 12 '22 05:05 MatteoGheza

Speaking of auth system, if you think this system doesn't work well or it's "overkill" to use JWT and hashed password, we still have time to revert to the old one / improve this before the release.

Haha, yesterday I spent about an hour debugging because I thought there was a bug: Sometimes I could login and sometimes it said "wrong password". I thought that some special navigation (like going to settings first, then refreshing and then going to producer) would trigger the bug.

However, it turned out that I was just typing to fast on my numbers block on the keyboard and sometimes typed 13245 instead of 12345... ๐Ÿ˜‚

This aside, I really like the new auth system and don't think that it is overkill.

I've even been wondering if it makes sense to encrypt the data sent to the cloud connection using symmetric encryption with the hashed cloud key as the encryption key.

hrueger avatar May 12 '22 06:05 hrueger

Before finally releasing version 3 stable, we should either hide or implement the Incoming Webhook source. I prefer the latter, it shouldn't be that hard.

hrueger avatar May 14 '22 08:05 hrueger

@josephdadams @hrueger @JTF4 I'm sorry, I was very busy these weeks. Now I'd like to help for the remaining tasks to do before a stable release. What do we need to do?

  • [ ] Documenting new listener client in Platform.IO
  • [ ] Fixing documentation for old listener clients
  • [x] Adding a disclaimer in the old listener clients repo
  • [ ] Fixing OBS source (difficult, since the v5 protocol is ๐Ÿ’ฉ for implementing tally status)
  • [ ] Fixing cloud connection
  • [ ] Migrating the config file from old version or showing a warning message

MatteoGheza avatar Jan 03 '23 09:01 MatteoGheza

I think there's one more thing to look at.

With V3 there's some phantom bottleneck that freezes the exit of tally data from TA. Internally, all the steps are happening pretty much instantly, but when it gets sent out, the data transfer freezes every second or so.

JTF4 avatar Jan 03 '23 11:01 JTF4

Happy new year to all of you ๐ŸŽ‰ I'm quite busy with lots of work to do, so unfortunately that means I can't contribute a lot.

hrueger avatar Jan 03 '23 12:01 hrueger

The disclaimer has been added to all old listener clients repo that they are only compatible with TA 2.x, so that should be good to go.

We should probably make sure all the ATEM bug reports are handled properly as I think the ATEM is one of the most used tally sources.

josephdadams avatar Jan 03 '23 14:01 josephdadams

I think there's one more thing to look at.

With V3 there's some phantom bottleneck that freezes the exit of tally data from TA. Internally, all the steps are happening pretty much instantly, but when it gets sent out, the data transfer freezes every second or so.

After some more research it appears that this issue only shows up when you use socketio based listener clients. If you just use plain TSL then there's no issue. Are we sending out tally updates synchronously?

JTF4 avatar Jan 11 '23 06:01 JTF4