Table of dependencies

Back in July, I created this table. I meant to post it then, but it fell off my radar. Posting now to capture it.

If there’s interest, I can freshen it.

Package Syncthing
Version
Package
Version
Commits since
angular 1.3.20 1.8.3 (deprecated) 2,782
angular-sanitize " " "
angular-translate 2.9.0.1
(per readme)
2.19.1 (deprecated) 285
angular-translate-loader-static-files 2.11.0 2.19.1 (deprecated) 20
angular-dirPagination 759009c eb92e95 2
Bootstrap 3.1.0 (ursrv)
3.3.5 (strelaypoolsrv)
3.3.6 (syncthing)
5.3.3 5,000+
daterangepicker 3.1 3.1 (may 2020) None
FontAwesome 5.0.13 (strelaypoolsrv) 5.15.4 (or 6.6.0) 57+ (5.x series)
forkAwesome 1.2.0 1.2.0 (deprecated) None
HumanizeDuration.js 3.32.1 3.32.1 None
jQuery 1.10.2 (ursrv)
2.1.4 (strelaypoolsrv/)
2.2.2 (syncthing)
3.7.1 609
jQuery Fancytree Plugin 2.38.0 2.38.3 54
leaflet.js 1.6.0 (strelaypoolsrv) 1.9.4 600
moment.js 2.19.4 2.30.1 466

The GUI, or the table? By all means do freshen the GUI, as and if possible :slight_smile:

I meant freshen the table, to start, but yes, the GUI for sure. I’ll do one PR for each dependency, starting with the simpler packages, and work up from there, unless directed otherwise.

1 Like

So here’s the updated table:

Package Syncthing
Version
Package
Version
Commits since
angular 1.3.20 1.8.3 (deprecated) 2,782
angular-sanitize " " "
angular-translate 2.9.0.1
(per readme)
2.19.1 (deprecated) 285
angular-translate-loader-static-files 2.11.0 2.19.1 (deprecated) 20
angular-dirPagination 759009c eb92e95 2
Bootstrap 3.1.0 (ursrv)
3.3.5 (strelaypoolsrv)
3.3.6 (syncthing)
5.3.5 5,000+
daterangepicker 3.1 3.1 (may 2020) None
FontAwesome 5.0.13 (strelaypoolsrv) 5.15.4 (or 6.7.2) 57+ (5.x series)
forkAwesome 1.2.0 1.2.0 (deprecated) None
HumanizeDuration.js 3.32.1 3.32.1 None
jQuery 1.10.2 (ursrv)
2.1.4 (strelaypoolsrv/)
2.2.2 (syncthing)
3.7.1 609
jQuery Fancytree Plugin 2.38.0 2.38.5 54
leaflet.js 1.6.0 (strelaypoolsrv) 1.9.4 600
moment.js 2.19.4 2.30.1 466

Changes:

  1. Bootstrap: 5.3.3 → 5.3.5
  2. FontAwesome: 6.6.0 → 6.7.2 (7.x is coming in June)
  3. jQuery Fancytree Plugin: 2.38.3 → 2.38.5

Note: A jQuery 4.x “beta” release was mentioned on 14-Jul-24

So, I’d like to work on this. Should I submit PRs against main, or the v2 branch?

I think v2 would be a good place for this endeavour.

1 Like

Maybe minor fixes within the same major version that don’t introduce any breaking changes could go to to v1 and the rest to v2? Just a tip, some of those components are not vanilla, e.g. our Fancytree theme is 100% custom, created to match the Web GUI themes, with the default Fancytree themes completely removed.

1 Like

Ok, I created Freshen javascript libraries · Issue #10051 · syncthing/syncthing · GitHub as the issue to refer to in the PRs.

OK, I have worked through several node dependency issues, and I am able to rebuild the existing angular code via make.

Before I start trying to upgrade things, I thought we might want to add some automated testing. It seems Playwright would be the best choice. So some questions:

Does anyone have any experience/feedback re Playwright? I haven’t used it before.

Or does adding a GUI testing framework even make sense?

Playwright depends on node, and requires headless browsers to be installed. Pretty painless on Ubuntu, but who knows on Windows, etc.

And if we go this route, should the tests live in /gui/test, /gui/default/test, or /test/gui?

1 Like

Sure, it beats manually (re)running tests on the GUI.

Playwright does all of the heavy lifting with downloading and installing the engines for various web browsers, so as long as Python is available it’ll be fine on Windows.

Although not required, it’s much cleaner running Playwright in a venv.

1 Like