* Add experimental BSD job to CI
* Remove container
* cd into ` synergy/synergy/`
* Change unix to bsd
* Use only run param and not prepare
* Install python3 on FreeBSD
* Add missing command to prepare param
* Add all the Unix-like BSD-derived
* Use latest python3 for NetBSD and DragonFly BSD
* Use env for cmd and correct prepare commands
* Add deps config for unix-like
* Install Python deps on Unix-like
* Return matching entry in `get_unix_like_os`
* Add cmake dep for cmakelang py module
* Back out Unix-like support in `install_deps.py` (Python is tricky on BSD)
* Back out BSD from config
* Create install_deps.sh script for BSD-derived
* Use .sh script instead of .py for BSD-derived
* Add other case and fixed syntax
* Use /usr/bin/env
* Use more available sh
* Restore debian command
* Fixed syntax error
* Remove prepare args
* Remove space
* Use which instead of command
* Add libX11 dep
* Add other BSD-derivatives
* Set CMAKE_REQUIRED_INCLUDES
* Fixed bad separator for CMAKE_REQUIRED_INCLUDES
* Add debug lines
* Set CMAKE_REQUIRED_LIBRARIES to lib names
* use CMAKE_REQUIRED_QUIET
* Set CMAKE_REQUIRED_FLAGS for BSD
* Message for BSD packaging
* Make PKG_CONFIG_FOUND optional
* Move debug to all OS
* Remove solaris for now, too many missing packages
* Add missing override to XWindowsScreen.h
* Add PC_GLIB_INCLUDE_DIRS
* Fixed glib include
* Make libnotify optional
* Set CMAKE_LIBRARY_PATH
* Only run tests if toml++ available
* Also run integ tests
* Remove DragonFly (C++ version too old)
* Fixed NetBSD command
* Aww sucks. Well, I tried. Patches welcome
* Update ChangeLog
* Fixed README for OpenBSD, NetBSD, DragonFly BSD, Solaris
* Add missing case for SunOS
* Drop redundant virtual specifiers
* Print libs on FreeBSD
* Restore link_directories
* Beef up to ubuntu-24.04-16-core-x64, export QT_QPA_PLATFORM, improve comment
* Remove debug line
* Simplify debug text
* Restore ubuntu-latest
* Fixed really stupid typo
* Beef up with ubuntu-22.04-16-core-x64
* Revert "Beef up with ubuntu-22.04-16-core-x64"
This reverts commit 3de5773ef6c6eea99b93d3ee8448b0b95dc00dde.
* Add missing name
* Make .sh file primary deps file
* Tweaked deps instruction label
* Fixed OpenSSL exe dir to use tools dir
* Simplify vcpkg caching and use system vcpkg
* Only use ref for version when ref is a tag
* Add condition for event input
* Add restore keys for vcpkg cache
* Improve step name for vcpkg_installed
* Use `windows-2022` runner
* Update ChangeLog
* Revert "Use `windows-2022` runner"
This reverts commit f9e00cbcb3588e58914d2b9e73b3c5734a12d329.
* Brighter red
* Move openssl to vcpkg.exe
* Revert "Move openssl to vcpkg.exe"
This reverts commit 36f39d916f3cc2c8ce779442bd964bd6af7edd69.
* Add missing copyright
* Fix copyright dates
* Remove openssl from choco
* Install openssl using vcpkg
* Add deps for vcpkg
* Add missing vcpkg manifest
* Revert "Add deps for vcpkg"
This reverts commit c266d29c2cec4474a181b89c2f759b62ed67db10.
* Make vcpkg Windows only
* Improve comment about vcpkg
* Remove unused var
* Add caching for vcpkg
* Reorg launch.json
* Remove static env var for openssl on Windows
* Add openssl dep to vcpkg
* Update ChangeLog
* Add OpenSSL include dir
* Remove pointless choco cache
* Remove vcpkg downloads
* Remove wixtoolset for CI already installed on GitHub runners
* Use `Remove-Item` instead of `rmdir`
* Move cmake and ninja out of choco
* Revert "Move cmake and ninja out of choco (winget not supported on GitHub runner)"
This reverts commit a65c02d275e58705b8cd86fac72629284191d737.
* Move cmake and ninja to winget and don't use choco on CI
* Remove winget action
* Use scoop on CI and winget locally
* Use `seanmiddleditch/gha-setup-ninja` for Ninja
* Improve comments
* Install Ninja before deps
* Use system vcpkg if installed
* Revert "Use system vcpkg if installed"
This reverts commit 4ddee1c66e8cace458c047285a70d2f98cf9d82c.
* Add comment about why we're using local vcpkg
* Fixed comment about VC++
* Improve config comments
* Delete dead code
* Improve comment about vcpkg/buildtrees
* Add libei and libportal
* Port libei and libportal code by Peter Hutterer and Olivier Fourdan
* Add Peter Hutterer and Olivier Fourdan to important devs list
* Improve error handling for libei and libportal builds
* Checkout libportal tags/0.7.1
* Hack out the gi-docgen clone
* Remove new submodules in favor of using ExternalProject_Add
* Remove submodule dirs
* Use ExternalProject_Add instead of submodules
* Fixed namespace
* Hack to work around type libportal causing type conflicts
* Add log helper functions
* Use original log functions
* Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency
* Restore a few events (much more work required)
* Add TODOs for supporting multiple lib versions
* Revert "Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency"
This reverts commit 610cebb5b6a08282eee68f4424fcdbe9eaab4bf9.
* Simplify cmake config by removing builds for libei and libportal (will do this in `install_deps.py` instead)
* Remove submodules
* Remove .gitmodules
* Use meson to build subprojects
* Update copyright with Peter Hutterer's guidance
* Use meson for installing deps
* Fixed typo in tag name
* Remove submodules
* Remove old submodules
* Fixed libei name
* Defaults for pugixml and gtest depending on whether source exists in subprojects
* Ignore some subproject dirs
* Make deps OS-specific
* Move python deps to pyproject
* Only compile and install on Linux with Meson
* Revert "Move python deps to pyproject"
This reverts commit 92c8a287b8376a4d166058c85f1d6081f6fdb423.
* Add ninja to brewfile
* Add python3-attr
* Restore original coverage config
* Add ninja for meson
* Include meson in same try-except
* Fixed ninja dep name
* Move libs to correct oS
* Fixed include for wintoast
* Disable docs for libportal
* More options for libei and libportal
* Fixed option for libei
* Use ninja directly to install
* Revert "Use ninja directly to install"
This reverts commit c926d78ba483406a55acd10fb157c39e13f90b71.
* Meson install verbose
* Prints stdout/stderr
* Remove `from None`
* Remove submodules that somehow crept back in?!
* Prepend sudo if exists
* Add libei deps for all distros
* Fixed Fedora package name
* Add more deps for other distros
* Add more libs (including pugixml)
* Fix lib name
* Drop -u from pacman
* Add vala to rhel
* Make libportal optional
* Make portal link optional
* Remove example code
* Always use system pugixml
* Disable interactive apt through install_deps.py
* Revert "Disable interactive apt through install_deps.py"
This reverts commit 5bbc8fd689182447c79b81db16c961b98361a292.
* Set DEBIAN_FRONTEND in workflows
* Set DEBIAN_FRONTEND in CodeQL workflow
* Add gtest dep
* Add bundled libei dep
* Add libei dep to Arch
* Use `googletest` on openSUSE
* Add gmock dep
* Remove gtest dep from openSUSE
* Add libei on Fedora
* Bundle libei for older Linux distros
* Disable libei dep for RPM
* Also bundle symlink to .so
* Use ${CMAKE_INSTALL_LIBDIR}
* Rename libei to fix openSUSE
* List installed files
* Add libei-devel to openSUSE
* Add googletest-devel to openSUSE
* Remove manual deps (probably resolved automatically)
* Remove googletest from openSUSE (doesn't provide google mock)
* Only add Portal* if libportal found
* WIP - Partial work on using old events system :'(
* Add deps install commands for subprojects
* Solved more compile issues related to events system, threads, etc
* Fixed bad config for adding x, ei, portal sources
* Remove redundant deps
* Remove (another) redundant dep
* Fixed pacman command
* Add Ubuntu and Linux Mint libei deps
* Fixed Ubuntu and Linux Mint libei deps aliases
* Only iterate subprojects if not None
* Add rhel, rocky, and alma for libei
* Make rhel-like deps same as fedora again
* Build libportal on rhel-like
* Re-enable meson rhel-like for libportal
* Remove dbus-python
* Make libportal optional (for rhel-like)
* Handle ei event queue results
* Re-introduce libportal
* Print libei and libportal versions
* Add ei/portal args and client screen
* Switch --use args to --no
* Don't build libei/libportal on older distros as it's pointless
* Make libei and libportal optional
* Add Debian 13 runner
* Make some packages optional
* Remove subprojects
* Improve comment
* Add comment for libportal
* Improve comment
* Add Debian 13 runner
* Make optional... optional
* Change continuation stripper to remove newline and continuation char
* Make command strip more uniform
* Fixed help var syntax
* Fixed libei linking
* Ensure `kHelpNoWayland` is always defined
* Improve help message
* Fixed Debian 13 runner name
* Include sstream and use const var
* Update ChangeLog
* Remove Wayland block
* Return new timer
* Make tray icon logging verbose
* Fixed arg parser for wayland args
* Fixed init of EI screen
* Fixed lint issues
* Update README to indicate Wayland support in GNOME 46
* Add missing word
* Fixed comment positions
* Automate CI env
* Tone down debug log messages
* Add missing comma
* Remove redundant log line
* Also ignore `command_pre` for Fedora itself
* Improve warning message
* Fixed layout issues on main window
* Restore fusion theme for Windows dark mode
* Further correct main window layout
* Set CWD for launch on Windows to same dir as .env
* Use signals for tray icon instead of callback
* Reduce complexity for setting tray icon
* Further reduce tray icon complexity
* Reduce tray retry time
* Fixed tray not showing on macOS
* Refactor function names
* Move tray icon to lib
* Decouple server connection class
* Move server connection to lib
* Move client config to lib
* Remove redundant forward declarations
* Fixed some namespaces in the new lib
* Move core process code to new class
* Improve member names on new process class
* Remove copy/pasta code
* Move OSX helpers to lib
* Add .mm to lib config
* Fixed copyright
* Improve reliability of log line handling
* Fixed TLS certificate generate bugs
* Remove client list
* Refactor core process handling to fix various problems
* Fixed process/connection status bugs
* Fixed function signature issue on macOS
* Fixed override warnings
* Fixed string format warning
* Save `wasStarted` state and use that instead
* Use only filename in dialog
* Use lambda for simple slot
* Scroll to bottom if at bottome
* Set value based on position before text added and set horizontal scroll too
* Add 1px tollerance for Linux
* Simplify start/stop mutex
* Always stop service on restart
* Increase scroll bottom threshold to 2
* Log warning instead of critical
* Fixed long-standing dir CD-up hack
* Remove include
* Remove include
* Fixed rogue dumbisense includes
* Account for optional distro_like
* Add QAction include to solve incomplete type
* Remove rogue #pragma
* Static cast log value
* Solve event queue delete warning
* Fixed integ test on Windows 10
* Reduce enum verbosity
* Use static instance instead of global
* Make function const
* Use unique_ptr instead of new and delete, and made some functions const
* Fixed smart pointer use
* Fixed variable shadowing
* Fixed wrong use of using
* Fixed missing namespace using
* Simplify TLS error handling
* Improve UX around certificate errors and success
* Decouple app config from core process through interface
* First iteration of core process test
* Mark dtor as override
* Rename attach launch entry
* Add TODO
* Create proxy for process
* Move IPC client to deps
* Fixed warnings
* Reorganize new GUI lib dir structure
* Update includes to reflect new paths
* Reorg GUI tests
* Abstract IPC client
* Refactor about screen
* Fixed .ui warnings
* Remove redundant include
* Fixed typo
* Fixed typos and add spelling
* Fixed misleading function name
* Improve comment
* Improve code coverage for core process
* Remove noisy log line
* Make global const
* Use default dtor
* Use vector instead of new
* Make ctor explicit
* Make ctor explicit (2)
* Use enum class
* Fixed bad enum
* Stub out core tool
* Stub out dir operation
* Extract byte functions
* Add missing return path
* Simplify byte/int functions
* Fix truncation
* Use ctor member assignment
* Fixed segfault in process proxy
* Fixed print warning
* Make function const
* Cleanup header
* Fixed missing name
* Update ChangeLog
* Make more functions const
* Add RHEL image
* Use Fedora config for RHEL
* Use script to activate RHEL
* Mirror mount args
* Set RHEL username and password
* Pass RHEL build args
* Pass RHEL login by file
* Use RHEL 9 for newer Python
* Source RHEL login
* Add case for RHEL Python deps
* Add `--deactivate`
* Do PIP user install
* Upgrade PIP
* Add RHEL config
* Introduce 'command-pre'
* Inherit fedora deps for RHEL and only strip sudo on non-empty command
* Add RHEL 9 runner
* Use RHEL 9 codeready
* Add AlmaLinux EL9
* Add support for RHEL-like
* Add EPEL for Alma
* Enable power tools on Alma
* Fix missing semicolon
* Install EPEL before power tools
* Inherit Alma deps from RHEL
* Switch from `powertools` to `crb`
* Abandon RHEL for now (no Qt 6 support)
* Don't pass required when getting distro key
* Correct key name for Rocky Linux
* Add Repology badge
* Restore original `build-push-action`
* Exclude unsupported Repology entries
* Update ChangeLog
* WIP: Show dev thanks message
* Improve error messages and guard license code
* Print core command
* Allow license tests when licensing disabled by default
* Don't check invalid serial key
* Fixed typo
* Add error checking
* Use shared ptr instead of static deps
* Actually save and load the setting
* Add dev thanks vars to CI
* Show thanks message after connected
* Refactor hack-job of local/global save/load to remove coupling and use Qt events system
* Simplify config loading
* Overloads for optionals
* Fixed global config scope not loaded
* Save message state before showing to avoid multiple messages
* Update ChangeLog
* Fixed lint warnings
* Make function const
* Reduce verbosity
* Remove dead code, show version on start, tidy up lint warnings
* Make product name code safer
* Connect on enter press
* Only show server specific wording when on server
* Add emit commands
* Log info and error
* Remove deaad code
* Remove test member
* Disable start context menu action unless usable
* Show more relvant connect message
* Fixed close to tray not applied, and simplified restart core logic
* Remove redundant include
* Rename `LicenseManager` to `License`
* Rename `LicenseManager` to `License`
* Move License class to gui lib
* Rename license related classes
* Refactor serial key parsing
* Don't fail fast on containers
* Move licensed product name from config to code
* Fixed formatting
* Update code coverage generator and fixed args
* WIP: Converting license to chrono
* WIP: Fixed compile errors, tests failing
* Fixed all serial key and license tests
* Disable verbose logging
* Add missing </p>
* Add missing include
* Revert code coverage config
* Handle parse errors
* Move more classes into the new gui lib and improve license/serial object ownership
* WIP: Fixing signal/slots in MainWindow
* Fixed slot for about to quit
* Rename manual slots to solve auto-connection warnings
* Fixed logging issue
* By default, don't close to tray
* Add .env support and furthe refactor license code, also fixed some copyright dates
* Remove test code
* Fixed memory error in .env parser and refactor more licensing display code
* Fixed color inconsistencies
* Fixed link colors and made log view expand
* Disable server components rather than hiding
* Reset years of blind UI layout fiddling
* Fixed clean Qt task
* Only show notice when time limited
* Fixed main window layout
* Show connected clients
* Set 15 spacing
* Auto connect on start
* More intentional screen size
* Fixed tests related to license
* Tests for expiry notifications
* Reorg tests and remove death test
* Update gtest
* Tests for dotenv parser
* Test command process
* What the heck is that doing there?
* Merge constants headers
* Fixed magic includes
* Remove helper function
* Remove comment
* Remove extern decl
* Update ChangeLog
* Call ensure_in_venv before all imports
* Create `gui` lib and link to `synergy` and test bins
* Move GUI IPC code to GUI lib
* Improve `AppConfig` members and change `minimizeOnClose` to `closeToTray`
* Group getters and setters
* Add missing `m_CloseToTray` load
* Fixed lint issue
* Add TODO comment for main window integ test
* Remove redundant comments and add override
* Remove dead code
* Update ChangeLog
* Fixed activation related compile errors
* Disable concurrency cancel jobs
* Disable fail-fast for matrix
* Migrate from `requirements.txt` to `pyproject.toml`
* Lower Python to 3.9 for GitHub Windows runner
* Increase timeout for valgrind
* Update ChangeLog
* Add coverage for both targets
* Use var for test bins
* Disable cmake-format comment fiddling
* Refactor GUI source config
* Use bin var for tests
* Remove unused member
* Add integration tests to CI
* Use modern cmake args
* Use max threads for build
* Use better var name for CPU core count
* Split build and configure steps
* Combine tests into action and add a PR comment
* Fixed yaml indentation in action
* Pass GITHUB_TOKEN
* Update coverage paths for SonarCloud
* Don't ignore return codes
* Add shell
* Run Valgrind on integ tests
* Use header for tests
* Save test results in table
* Move setup step outside of action
* Change logic of creating PR comment
* Remove header formatting
* Use emojis for simplicity
* Run build wrapper in build dir
* Use default make target
* Pass secrets
* Fixed SonarScanner warnings
* Don't allow unit tests to fail
* Fixed typo
* Update sonar scanner paths
* Fixed line endings
* Use step output
* Improve exclusion glob
* Exclude files from coverage
* Restore simpler pattern
* Set temp file path
* Coverage tests
* Re-create comment at start of job
* Append table header
* Add setup action
* Checkout before action
* Re-add projectBaseDir
* Restore original sonar scanner
* Use bash syntax for if
* Remove unused `shell`
* Add missing shell for valgrind action
* Restore new sonar scanner config
* Add missing shell
* Run only MainWindowTests
* Test with big change
* More changes
* Move to correct dir
* Remove test code
* Disable broken integ tests
* Switch coverage to front of filename
* Remove filter
* Refactor status step
* Disable segfault test
* Fixed: No status showing
* Add link to workflows
* Add test code for coverage
* Revert "Add test code for coverage"
This reverts commit c42309349b64f7828f2ca89149b30c5b0f93478a.
* Get workflow run URL
* Add missing shell
* Use dynamic URL in valgrind comment
* Revert "Revert "Add test code for coverage""
This reverts commit 9cff58b7ea5c581681ae6d6660c073bd76ba99aa.
* Test with commented out code
* Reintroduce 6 lines for coverage
* Test code to pass scanner
* Test code to pass scanner (take 2)
* Simplify to 2 new lines
* Add another line
* Trim changes to only 3 lines
* Add task for all tests
* Surface warning on failure
* Simplify build-wrapper step and move settings from web UI to CI
* Add missing line delims
* Also run tests action on Windows and macOS
* Add names to action steps
* Add timeout for test steps
* Add failure warning for integ tests
* Remove space
* Disable failing test on macOS
* Disable problem matcher
* Simplify names
* Disable freezing test on Windows
* Disable failing integ test on Windows
* Add build-kill task
* Ignore kill result on Windows
* Delete test code
* Update ChangeLog
* Move timeout to workflow step
* Add missing atom ctor init
* Init members with `None`
* Use in-class init and delcare getter inside if init
* Temp revert of changes ahead of unit test repair
* Move IPC header to shared, restore X clipboard test, simplify test cmake, new X clipboard unit test
* Suppress sonar for undefs
* Remove base dir include
* Revert "Temp revert of changes ahead of unit test repair"
This reverts commit 8f84b6ea5d5828f1be1362de3809279bcacb8cc8.
* Use new accessor
* Use default dtor
* Beef up to 32 core
* Use enum class
* Make IPC protocol headers const at all levels
* Use enum class and const char for better type safety
* Use unique_ptr for m_clipboard
* Use `-j` instead of `-j8` to utilize full parallelism
* Increase thread count for sonar-scanner
* Use 32 threads
* Use in-class init for IpcClientProxy members
* Use const instead of #define
* Remove ctor member inits
* Use unique_ptr on win
* Implement temp bin dir for windows with more robust post-build copy
* Fixed missing iostream
* Add warning about copy errors
* Only run clean-gcda on Linux
* Use in-class init for IPC mutex
* Do no-op on Windows
* Hide clean-gcda task
* Move flakey test to integtests
* Delete dead code
* Test
* Temp disable post_config_all
* Disable post config step
* Revert "Disable post config step"
This reverts commit 2f956a7714ba9bedacd4b39d4ae00940c3d565d6.
* Revert "Temp disable post_config_all"
This reverts commit b44ed72e44f838bfe1309f6e9672d2f1c6f21b75.
* Restore -j8
* Simplify error handling
* Use const for test port
* Remove python check
* Update changelog
* Fixed order
* Fixed bad issue number
* Fixed bin copy source path
* Remove redundant except
* Move QApplication out of main to reduce memory impact when running individual tests
* Add --valgrind arg and colorize output when command returns non-zero exit code
* Fixed: colorama not always available
* Test multiple Qt tests
* Fixed: Windows Qt test failing due to missing QCoreApplication
* Simplify fake args for Qt
* Use --ci-env arg
* Create Valgrind analysis workflow
* Rename vars for fake args
* Parse and output valgrind summary
* Add build mode to comment
* Use GITHUB_OUTPUT to output summary
* Merge valgrind comment
* Improve comment
* Use `tee` instead of `--log-file` to also print stdout
* Improve comment about debug and release
* Simplify output writing in parse step
* Improve step name
* Correct comment about summaries
* Remove commented out code
* Better var name
* Missing copyright
* Rename global to shared
* Remove space
* Revert change to ConfigTests.cpp
* Test: allocLockCursorToScreenInfo_withState_setsState
* Merge remote-tracking branch 'origin/master' into S1-1717-sonarcloud-issues
* Remove header wrappers for gmock/gtest
* Convenience wrapper script for tests
* Use `std::copy` instead of `strcpy`
* Use `std::ranges::copy` instead of `stdcpy`
* Delete dead code
* Add guitests VS Code config and test wrapper
* Revert "Delete dead code"
This reverts commit aa40f5cd35a22b4b69acfd1876aceea053088060.
* Build guitests with CMake
* Run all tests
* Don't use --gtest_filter for Qt tests
* Undo skip for GUI tests
* Coverage for `IpcClient::sendCommand`
* Remove provider and proxy
* Use lamda for StreamProvider to reduce boilerplate
* Restore version checker tests
* Remove activation souces
* Tasks for current/all tests
* Change command for tasks
* Mock QNetworkAccessManager
* Create core app to satisfy Qt assertations
* Use `std::copy` instead of `std::ranges::copy`
* Remove integtests
* Merge guitests into unittests
* Use std::string::length
* Remove include (resolves to root)
* Fix memory leaks
* Disable sigsegv tests
* Fixed formatting
* Remove guitests from CI
* New MainWindowTests
* Passing test for MainWindowTests
* Use alternative to strlen in MainWindow::checkSecureSocket
* Passing test for Log::print
* Fixed dtor call order
* Fixed var name typo
* Use proxy instead of `#define protected public`
* Add args test for log
* Add license ctor
* Fixed log test for release
* Add error log test
* Init qt with -platform offscreen
* Back-out initQt function
* Use QT_QPA_PLATFORM
* Try QT_QPA_PLATFORM=offscreen
* Use more readable env node
* Set QT_QPA_PLATFORM in CI and CodeQL
* Remove env not needed
* Modernize Log::print
* Calculate the length of the format string fmt during the initial scan loop
* More direct and efficient alterative to `strlen`
* Fixed major maint issues in AppConfig
* New clang and cmake rules
* Set `max_pargs_hwrap` to 4
* Undo clang format for now
* Fix missing `Setting::`
* Fixed missing `m_S` on Windows
* Re-add accidental dep resolution (fix later)
* Fixed missing buffer position increment
* Turn on errors
* Fixed tests and improve error message
* Fixed segfault on log refactor
* Extract log time to function
* Copyright date
* Update ChangeLog
* Remove Core5Compat
* Remove hack
* Update ChangeLog
* Revert "Remove hack"
This reverts commit dda3ad05818d346fdfcbb41944b9e731a4b547c0.
* Set `add_compile_definitions` for Qt
* Revert "Set `add_compile_definitions` for Qt"
This reverts commit 0258d2d226a76081068f4e565855f37993953be5.
* Use arm64_monterey bottle
* Revert "Use arm64_monterey bottle"
This reverts commit a46d743dc6883c925e2328b9628231189cb34367.
* Use aqt to install Qt on Mac
* Append env var instead of overwrite
* Fixed filename
* Use GITHUB_PATH
* Restore original GITHUB_ENV logic
* Use newer cache action
* Update ChangeLog
* Use Ubuntu ARM64 runner
* Add Windows 11 8-core ARM64 and use 8-core for Linux
* Add bootstrap step
* Install and use choco
* Add git to path
* Split bootstrap steps
* Merge bootstrap steps
* Export path manually
* Install Python in bootstrap step
* Add Python to path
* Add choco to path
* Add C:\Python312\Scripts to path
* Back out ARM64 runner (perhaps only suitable for running programs)
* Use ARM64 for build containers
* Don't run CodeQL in PR draft
* Speed up analysis workflows
* Run install deps on Debian
* Add badge to readme
* Fixed copy and use workdir
* Use mount instead of copy
* Fixed unwanted && and changed workdir
* Split deps and deps-full
* Fixed context
* Use /app dir
* Use copy instead
* Revert to --mount and use .py (not .sh)
* Test
* Add `./scripts/install_deps.py` to all platforms
* Add missing syntax
* Fixed Python dep for OpenSUSE
* Temp remove WORKDIR for OpenSUSE
* Re-add workdir
* Increase timeout
* Delete `zypper --non-interactive remove busybox-which`
* Restore python3
* Test
* Rename to `lint-source-code`
* Beef up analysis runners
* Fixed workflow runs-on
* Use deps script
* Try pipx for gcovr
* Use containers with deps
* Add -y arg
* Install curl
* Merge deps step
* Add unzip dep
* Make Git dir safe
* Add .local/bin to env
* Improve step name
* Use `pipx ensurepath`
* Install gcovr with apt
* Use Ubuntu 22 with pip
* Update ChangeLog
* Use 16-core for Windows
* Use choco cache
* Test
* Use 8-core for Windows (picked up quicker, more available?)
* Change tag name
* Change tag name
* Add ARM64 containers and Fedora 40
* Use dnf for Fedora
* Dist upgrade on Debian
* Upgrade and clean on Fedora
* Add name
* Fixed typo and use platform in Dockerfile
* Use matrix instead for arch
* Use config dir in matrix
* Fixed wrong var
* Specify base image in workflow
* Re-add platform
* Use slim images
* Run on Buildjet
* Use new images
* Add comment
* Remove QEMU (not needed because of Buildjet)
* Finish Dockerfile for Arch and OpenSUSE
* Use new containers
* Use correct config dir names
* Fixed config for Manjaro
* Missing zypper arg
* Clean Arch and OpenSUSE
* Update ChangeLog
* Elaborate on comment
* Use Qt 6
* Fixed some Qt6 deps
* Fixed minor compile issues for Qt6
* Drop Debian 11 support (no Qt6 lib)
* Move Debian to top
* Delete expensive to maintain code that yeilds low UX gain
* Unpack all values
* Use %lld instead of %u
* Minor UI improvements
* Add deps for Fedora, OpenSUSE, and Arch
* Fixed CMake lint issue
* Use package name from build.opensuse.org
* Used `zypper search` to find correct package names
* Add Git SHA to about screen
* Update ChangeLog
* Fixed formatting
* Use `GIT_SHA` for Git SHA
* Add `GIT_SHA` env var
* Use env var `GIT_SHA`
* Shorten the Git SHA to 8 chars for readability
* Shorten Git SHA to 8 chars
* Increase Linux timeout (Fedora 39 is always slow at deps)
* Update ChangeLog
* Revert "Update ChangeLog"
This reverts commit ac52777763571e9512e1c9b73b5cac23658d5ed2.
* Debian 12 ARM64 target
* Fixed comments
* Don't check for server name when exiting because of args
* Exit with success when using `--version`, `--help`, etc
* Test Linux installation
* Add Windows ARM builder
* Extract magic string
* Use proper arch name
* Swap arch order
* Fixed test
* Bootstrap Windows ARM runner
* Install winget
* Conditionally install winget
* Winget take 2
* Use shell: pwsh
* Try `powershell`
* Try cmd to install winget
* Only build distro once
* Use enum for clarity
* Remove shell
* Back out Windows ARM testing
* Attempt arch matrix
* Add Fedora arm64
* Label all -amd64
* Special case for zypper
* Fixed bad var name on Windows
* Add missing /bin ignore
* Disable GPG check on OpenSUSE
* Fixed typo
* Update ChangeLog
* Simplify options
* Use more sensible edition logic
* Use set instead of option for string
* Improve macro for product name
* Add tests launch config
* Restore unregistered state
* Reorganize cases for title and improve function name
* Code coverage on by default
* Fixed copyright
* Improve code coverage and test readability
* Separate build-all and build-coverage
* Back out coverage on by default
* Fixed bad var in cmake
* More verbose logging for coverage
* Restore tasks
* Restore preLaunchTask
* Use default comparitor
* Move temp files to temp dir
* Add tasks for tests
* Support for wstring
* Upgrade sonar-scanner to 6 on Debian 12
* Use modern pip install
* Install python for sonarcloud
* Use Ubuntu and install deps
* Fixed sonar-scanner URL
* Fix exported dir
* Persist build dir
* Don't use venv for pip install gcovr
* Fixed another path
* Update actions/checkout to v4 for SonarCloud analysis workflow
* Add coverage task
* Improve coverage for SerialKeyEdition.cpp
* Enable licensing for builds
* Fixed invalid macro names, missing arguments, etc
* Fixed more copyright
* Fixed incorrect use of "enterprise"
* Fixed incorrect use of "business"
* Experiment with environment
* Make package prefix variable
* Add environment matrix to all OS
* Improve job names
* Make job names easier to read
* Roll back environment matrix (too much noise)
* Fixed: default should override required
* Refactor CI with vars
* Fixed arg for env.get_env
* Lint script with CLang format
* Use `-i` for `clang-format` and add more logging for lint scripts
* Apply LLVM CLang formatting
* Fixed comment
* Update ChangeLog
* Fixed bad return code logic
* Improve output for linters
* Fixed re-used var in clang lint
* Fixed include order for tests and use `#if 0` instead of commenting out code
* Use full Clang format dump
* Dump Ubuntu Clang format
* Dump Clang format from Debian
* Dumped from: clang-format version 18.1.8
* Revert "Dumped from: clang-format version 18.1.8"
This reverts commit b9bbda2995bb0b4b65baf14afebb0361ec64e644.
* Remove BasedOnStyle
* Restore base Clang format file
* Use clang-format from pip
* Apply Clang format 18 style
* Add clang_format deps
* Fixed include order issues and *some* accidental includes
* Reorganize CMake Packaging module
* Match if statements to function order
* Cleanup root, res, and doc dirs
* Move deps to requirements.txt file
* Reorganize and format CMake files
* Rename changelog lint
* Add reccomended extension
* Workflow to lint CMake files
* Move CMake lint to script
* Try lighter dep
* Use venv
* Add --format arg
* Format all CMake files
* Convert bash script to Python
* Set CMake line ending format
* Restore formatting
* Add pyyaml dep
* Remove unused arg
* Rename config file
* Remove comment
* Repair copyrights (broken by defualt cmake-format)
* Restore 3rd party copyright
* Break up libs config into smaller macros
* Better macro name
* Load config after venv
* Make intentional noop clearer
* Only use upload step if required (make skip clearer)
* Use CPack for deb and rpm packaging
* Add upload step for Linux
* Remove cpack dep, doesn't exist
* Roll back presets version
* Fixed distro like match
* Update ChangeLog
* Legacy checkout for some distros
* All distros support v4
* Trying out newer Linux distros
* Install Git on Docker images
* Install without actions (not available before checkout)
* Delete useless action
* Install Python
* Support for Arch and OpenSUSE
* Add Arch and OpenSUSE to deps
* Name steps
* Full OpenSUSE names
* Mark Git dir safe
* Add pkgconf
* Legacy CMake for Debian 11
* Add OpenSSL to OpenSUSE
* Drop OpenSUSE Leap (no C++20 support)
* Skip packaging for Arch and OpenSUSE (for now)
* Shorten Arch/OpenSUSE names
* Clearer step name
* SImpler bootstrap
* Shell not needed
* Update apt
* Don't check return code
* Simplify python deps commands
* Add STGZ/.sh package type
* Prevent input prompt
* Only config git safe dir when needed
* Try cache v4
* Safe dir for Ubuntu
* Safe dir for Arch
* All Docker images seem to need safe dir config
* Refactor env var getters
* Make Ubuntu build extra packages
* Condense bootstep to single step
* Fixed var name
* Fixed bootstrap logic
* Simplify logic for upload condition (Windows and macOS)
* Make package/upload condition easier to understand
* Add Manjaro
* Generic names for Linux .tar.gz and .sh packages
* Add Manjaro deps
* Swap macOS matrix entries
* Add Red Hat UBI
* Remove RHEL subscription manager
* Throw on unsupported package distro
* Conditionally install pip and venv
* Remove extra pip arg
* Add config for RHEL
* Install EPEL for RHEL
* Back-out RHEL as EPEL requires subscription
* Restore Python deps logic
* Fixed bug: Packacking run twice
* Testing arm32v7 and arm64v8
* Revert "Testing arm32v7 and arm64v8"
This reverts commit cb3caf188d2b79ed083a62fc091de295f9889f3d.
* Re-add icon and shortcut file for Linux to package
* Support OpenSUSE RPM build
* Check return code
* Add `rpm-build` for OpenSUSE
* Reorg packages
* Remove busybox-which
* Add --non-interactive
* Move --non-interactive to correct position
* Experiment with makepkg
* Check and print package commands
* Make distro version optional
* Use 8 cores to build
* Default to distro name only
* Fixed bad PKGBUILD filename
* Use 4-part version for Arch
* Remove comma from conflicts
* Use .tar.gz from cwd
* Generate checksum for Arch
* Fixed file extension
* Use shell to print output
* Don't use shell
* Gaurd against bad cmd_utils.run
* Fixed bad import
* Use list command
* Fixed unable to run list commands
* Use source file name
* Simplify PKGBUILD to use make install
* Change install prefix
* Use DESTDIR
* Copy .desktop and .png to build dir
* Restore original `install(FILES...`
* Improving comments
* Fixed: makepkg runs from `src` by default
* Move error after command print
* Remove shell arg
* Package as a user instead of root (makepkg can't run as root)
* Fixed codesign runs in shell
* Allow list commands in shell on windows
* Don't use sudo on arch
* Install sudo on Arch
* Fixed typo
* Fix ownership of build directory for package user
* Improve example .env
* Change to depend on libstdc++6
* Add TODO
* Fixed Fedora version
* Remove libstdc++ deps (names vary between distros)
* Roll back to Fedora 40 and 39
* Improve comment
* Remove unneccesary default