0.11.0
Release notes:
This release marks a significant milestone in thin-edges's history. The thin-edge.io components have been refactored to use an Actor model which improves the internal project structure and lays the ground work for even faster releases, with even more features in the future (and not to mention even easier to test features 💯).
Functionally, everything will work as it did before, however you may notice that the traceability of each component has improved significantly, allowing you to better reason with what is going on.
A big thanks to the core team who worked very hard over the last few months to make this happen ❤️
- @didier-wenzek, @albinsuresh, @rina23q, @PradeepKiruvale, @gligorisaev, @Bravo555, @Ruadhri17, @jarhodes314, @jmshark, @reubenmiller
New features
Refactoring
- Migrate all services to use the actor model (no breaking changes have been introduced) by Core Team (too many PRs to mention here)
Monitoring
- Add support for PID files by @Ruadhri17 in #1849
MQTT
- Add MQTT client authentication by @Bravo555 in #1864
- Add MQTT server authentication by @Bravo555 in #1816
- mosquitto.conf: put
per_listener_settings
first by @Bravo555 in #1919 - Add separate HTTP and MQTT endpoints for Cumulocity by @Bravo555 in #1957
- fix(cli): use clean session when validating url connectivity during tedge connect by @reubenmiller in #1967
- Quit the MQTT event loop on Outgoing::Disconnect by @didier-wenzek in #1982
Telemetry
- Measurement type is static as "ThinEdgeMeasurement" by @PradeepKiruvale in #1911
Packaging
- feat: package all binaries in single tarball by @reubenmiller in #1944
- Improve debian systemd service enable/start logic in post installation scripts by @reubenmiller in #1865
Misc.
- feat: use native (OS) certs by default for reqwest by @reubenmiller in #1891
- Downloader to download directly to target location by @albinsuresh in #1881
Bug fixes
- fix: always remove/purge if package exists by @reubenmiller in #1866
- Ignore errors when cleaning up remote access plugin by @jarhodes314 in #1871
- fix: use transfer dir setting instead of hard-coded path by @reubenmiller in #1898
- tedge-mapper-c8y service restart is required after a change of supported operation file contents by @PradeepKiruvale in #1959
Docs
- Cosmetic documentation improvements by @didier-wenzek in #1892
Developer
- Add just file support by @Ruadhri17 in #1889
What's Changed in 0.11.0 (full list)
- feat: add new plugins to install/remove script by @reubenmiller in #1857
- fix: bump tedge version in script to 0.10.0 by @reubenmiller in #1858
- Correct spell check errors by @gligorisaev in #1860
- Feat: Detect latest thin-edge.io version via github api in install script by @reubenmiller in #1861
- Rewrite c8y-log-plugin using c8y_log_manager by @didier-wenzek in #1820
- Remove message box trait by @jmshark in #1855
- Refactor c8y-config-plugin to use c8y-config-manager actor by @albinsuresh in #1828
- Add #[derive(Document)] to TEdgeConfigDto and replace FilePath with camino::Utf8PathBuf by @jarhodes314 in #1867
- Remove unnecessary AWS config field alias by @Bravo555 in #1859
- Add support for PID files by @Ruadhri17 in #1849
- fix: always remove/purge if package exists by @reubenmiller in #1866
- Added examples to keywords by @gligorisaev in #1868
- Add test for checking the lock file creation set/unset by @gligorisaev in #1851
- Add MQTT server authentication by @Bravo555 in #1816
- Add Converter trait and ConvertingActor by @didier-wenzek in #1873
- Impl Sender for TimedMessageBox test helper by @albinsuresh in #1870
- Fixed most clippy lints and enabled clippy for all targets by @Bravo555 in #1874
- Ignore errors when cleaning up remote access plugin by @jarhodes314 in #1871
- Removed the Task trait by @jmshark in #1878
- Downloader to download directly to target location by @albinsuresh in #1881
- Fix flaky test: test_fs_events by @didier-wenzek in #1882
- Install rust version from Cargo.toml in CI checks by @jarhodes314 in #1885
- Improve debian systemd service enable/start logic in post installation scripts by @reubenmiller in #1865
- Add test for documented configuration examples by @jarhodes314 in #1877
- Add tedge-downloader-actor by @rina23q in #1884
- add test for raising alarms in folder telemetry and move the child de… by @gligorisaev in #1887
- feat: use native (OS) certs by default for reqwest by @reubenmiller in #1891
- Cosmetic documentation improvements by @didier-wenzek in #1892
- docs: use inline code blocks to avoid warnings by @reubenmiller in #1893
- Add steps to check PID in lock file by @gligorisaev in #1895
- Add a Config type parameter to MessageSink by @didier-wenzek in #1880
- Refactor Azure and Aws mapper using actors by @PradeepKiruvale in #1888
- docs: add missing debian packages to instructions by @reubenmiller in #1901
- Bump peter-evans/create-pull-request from 4 to 5 by @dependabot in #1903
- get pid api by @PradeepKiruvale in #1890
- docs: use double quotes instead of open/close by @reubenmiller in #1897
- doc: fix spelling mistakes by @reubenmiller in #1900
- fix: use transfer dir setting instead of hard-coded path by @reubenmiller in #1898
- Use mdbook-pagetoc to add a table of contents to each page by @didier-wenzek in #1904
- Add just file support by @Ruadhri17 in #1889
- Refactor the collectd mapper using actors by @didier-wenzek in #1817
- New
c8y_firmware_manager
by @rina23q in #1830 - Cargo update by @didier-wenzek in #1910
- Improve actor builders by @didier-wenzek in #1913
- mosquitto.conf: put
per_listener_settings
first by @Bravo555 in #1919 - CI: use beta toolchain for clippy by @Bravo555 in #1924
- Delay systemd automatic service restarts by 5 sec by @reubenmiller in #1921
- Run
cargo update
to passcargo audit
by @Bravo555 in #1925 - Add MQTT client authentication by @Bravo555 in #1864
- Fix rename by @Ruadhri17 in #1914
- Test configuration management on main device by @reubenmiller in #1875
- Test configuration of tedge services to use a remote MQTT broker by @reubenmiller in #1848
- Fix/1896/file modifications by @jmshark in #1928
- Fix typo in mqtt.client.auth.key set error message by @Bravo555 in #1929
- Fix MQTT session of c8y_http_proxy by @didier-wenzek in #1933
- extend error message for chown function by @Ruadhri17 in #1930
- ci(fix): Used fixed version for udeps by @reubenmiller in #1938
- ci: remove deprecated docs workflow by @reubenmiller in #1937
- Create collectd test case by @gligorisaev in #1915
- Fix timer actor behavior on shutdown by @didier-wenzek in #1934
- Finalize actor documentation by @didier-wenzek in #1908
- Cumulocity mapper using actors #1909 by @albinsuresh in #1922
- fix(test): reduce test scope for firmware restart by @reubenmiller in #1941
- tedge service init session error message is not verbose enough by @PradeepKiruvale in #1912
- fix: improve collectd integration test to avoid sporadic failures by @reubenmiller in #1948
- fix: tedge-agent init on non-systemd installs by @reubenmiller in #1939
- feat: package all binaries in single tarball by @reubenmiller in #1944
- fix: remove service dependency on tedge-mapper-c8y by @reubenmiller in #1947
- dev: refactor/extend just integration test recipes by @reubenmiller in #1943
- fix(test): increase operation assertion timeouts by @reubenmiller in #1945
- Refactor SmartREST operation handling into CumulocityConverter by @albinsuresh in #1942
- update to clap 3.2.25, move back to stable clippy by @Bravo555 in #1956
- Measurement type is static as "ThinEdgeMeasurement" by @PradeepKiruvale in #1911
- Add separate HTTP and MQTT endpoints for Cumulocity by @Bravo555 in #1957
- Feature flag guard for test-helpers by @albinsuresh in #1952
- telemetry test for thin-edge device by @PradeepKiruvale in #1960
- tedge-mapper-c8y service restart is required after a change of supported operation file contents by @PradeepKiruvale in #1959
- Refactor tedge-agent by actor model by @rina23q in #1940
- fix(cli): use clean session when validating url connectivity during tedge connect by @reubenmiller in #1967
- Fix tedge-mapper-c8y does not shutdown cleanly if JWT retriever is retrying by @didier-wenzek in #1965
- Await for a shutdown request when a restart is triggered by @didier-wenzek in #1968
- tedge-mapper-c8y service restart is required after a change of supported operation file contents by @PradeepKiruvale in #1970
- c8y-configuration-plugin panics when required folder/s are missing by @PradeepKiruvale in #1963
- Improve debugability of JWT failures by @didier-wenzek in #1977
- C8Y operation plugins to respect --config-dir cli arg by @albinsuresh in #1975
- Shutdown a server actor on ^C by @didier-wenzek in #1979
- Fix agent and mapper failing to gracefully shutdown when mosquitto is down by @didier-wenzek in #1980
- Quit the MQTT event loop on Outgoing::Disconnect by @didier-wenzek in #1982
- FsWatcher actor to gracefully shutdown on SIGINT #1983 by @albinsuresh in #1984
- http_ext: Replace request to httpbin with mock by @Bravo555 in #1985
Full Changelog: 0.10.0...0.11.0