tabby icon indicating copy to clipboard operation
tabby copied to clipboard

Better crossbuild v3 + fixes

Open Jai-JAP opened this issue 1 year ago • 2 comments

This PR implements a slightly better and a faster way to cross-build arm(64) artifacts.

The previous approach uses a x64 bionic chroot to build the native modules, whereas this approach uses a bare bionic arm(64) debootstrap as a sysroot which is just used to link arm(64) libraries using --sysroot parameter passed to gcc/g++ and PKG_CONFIG_PATH to specify path of *.pc files to pkg-config.

Thus this approach on its own should give a slight improvement as compared to a bionic chroot plus the added benefit of caching the sysroot makes it even faster than the previous approach implemented in #8613

Build times have been reduced from 15-20 mins to 11-13 mins.

Additionally this PR moves to Node 18 as version 16 now EOL, removes old code & fixes a potential ambiguous case in scripts/vars.mjs.

This PR is not tested but it should not break anything theoretically.

Jai-JAP avatar Dec 23 '23 13:12 Jai-JAP

Thanks! Have you tested the produced ARM builds? I can test the rest

Eugeny avatar Dec 24 '23 16:12 Eugeny

Thanks! Have you tested the produced ARM builds? I can test the rest

Nope, my pi is no longer working so can't test it.

Jai-JAP avatar Dec 24 '23 16:12 Jai-JAP

Hi there! Is testing still required for this? I happen to have a working Raspberry Pi 400 at home and I could test the build if need be. I think it would be best to update this PR with the latest commits from the master branch before I do that though, to make sure that the latest release works and not just an old one.

The question would then also be what parts I should test exactly. Since there isn't a test suite or a written list of functions to specifically test for Tabby, I would love to hear what is roughly always tested before each Release is made.

SmollClover avatar Jul 19 '24 06:07 SmollClover

@SmollClover thank you! It should be enough to just do basic testing of opening tabs & connecting to some SSH server as that will cover the most arch-related things (native Node modules in use)

Eugeny avatar Jul 19 '24 06:07 Eugeny

Okay, I've tested the following things now:

  • Normal Terminal
  • SSH Connection
    • Password Authentication
    • Certificate Authentication
  • Multiple Tabs
    • Having them open
    • Moving them around
    • Coloring them
  • SSH Port Forwarding
  • Downloading and Uploading Files through SFTP
  • Using a theme
  • Installing Plugins
  • Syncing the Config
  • Using the Vault
    • Passwords
    • Certificates
    • Passwords for the Certificates
  • Encrypt config file

All of the above I have checked and can verify that those functions work without any issues exactly how it currently works on the latest release. I took the liberty of including most of the features I use on a daily basis in Tabby and I haven't found an error or inconsistency as to how they normally work. 👍🏻

SmollClover avatar Jul 19 '24 08:07 SmollClover

Thank you! 🤝

Eugeny avatar Jul 19 '24 08:07 Eugeny