Original release notes
What's Changed
New features
- [Debug info screen] Show links to helpful resources by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2684
Bug fixes
- [jtx Board] Filter known properties from OTHER properties in VALARMs by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2716
- Fix sync always-pending issue (again) by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2721
- Update dav4jvm to fix Digest auth by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2735
- Propagate Sync Cancellation and Exceptions Correctly by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2813
- [Push] Add
content-update triggerandcontent-encodingby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2860
CI/CD
- [CI] Bump stefanzweifel/git-auto-commit-action from 5 to 7 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2714
- [CI] Bump gradle/actions from 6 to 6.2.0 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2742
- [CI] Bump gradle/actions from 6.2.0 to 6.3.0 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2793
- Add workflow to mirror english original strings to
davx5-translationsby @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2799 - Test string mirror workflow by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2804
- Cleanup test string by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2805
- Update string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2819
- Revert string update for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2822
- Add string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2829
- Delete string for testing translation CI by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2830
- Use translations from the l10n submodule by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2831
- Update error message for missing translations directory by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2845
- Move update contributors logic to submodule by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2861
- [CI] Bump actions/setup-java from 5 to 6 in the ci-actions group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2865
- Disable Dependabot cooldown for l10n submodule by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2869
- Consolidate CI test workflows into a single workflow file by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2896
Other changes
- [Release notes] Remove refactoring category; include Dependabot again by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2713
- Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2715
- Update dav4jvm to 4.0.0, add Ktor deadlock test by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2712
- [Coroutines] Check WebDAV package by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2703
- Update JtxBoard min version to 2.17.00 by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2711
AccountIdrefactoring (part 3) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2644AccountIdrefactoring (part 4) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2722AccountIdrefactoring (part 5) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2724AccountIdrefactoring (part 6) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2725- [Sync] Take settings snapshot for synchronization by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2718
AccountIdrefactoring (part 7) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2727- Clean up applicationScope usage by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2723
AccountIdrefactoring (part 8) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2730- Unify DAO method naming and convert easy blocking calls by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2736
- Simplify
SyncExceptionhandling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2737 - [UI] Debug info: clarify wording of 5xx "contact server support" message by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2733
- Bump the app-dependencies group with 8 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2743
- [SyncManager] Extract/reorganize some methods by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2744
AccountIdrefactoring (part 9) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2732- [SyncManager] Simplify
localCollectionargument by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2745 - [SyncManager] Simplify
SyncResultmembers by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2746 AccountIdrefactoring (part 10) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2748- Extract
SyncPendingProviderfromSyncFrameworkIntegrationby @cketti in https://github.com/bitfireAT/davx5-ose/pull/2754 AccountIdrefactoring (part 11) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2758- [SyncManager] Change
syncRemote()to process Flow by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2751 - Create
davCollectioninSyncerinstead ofSyncManagerby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2752 - Introduce remote WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2757
- [SyncManager] Move capability querying into
WebDavCollectionby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2759 - [SyncManager] Move querySyncState() responsibility to WebDavCollection by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2764
- [SyncManager] Move
deleteMembertoWebDavCollectionby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2767 - [SyncManager] Move upload PUT logic into
WebDavCollectionby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2773 AccountIdrefactoring (part 12) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2771- [SyncManager] Move multi-get into
WebDavCollectionby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2777 - [SyncManager] Rewrite
syncRemote()as a flow pipeline by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2778 - [SyncManager] Split
syncRemote()intoprocessListing()/processChanges()by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2779 - [SyncManager] Extract
listFilteredMembers()intoWebDavCollectionby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2774 - [SyncManager] Extract
listChangesby @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2781 - [VCardParser] Clarify handling of invalid vCards by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2785
- [SyncNotificationManager] Take notification tag ownership by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2787
AccountIdrefactoring (part 13) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2776- [DI] Inject
AccountManagervia Hilt by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2789 - Fix LocalAddressBookStoreTest by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2795
- [SyncManager] Extract
SyncExceptionHandlerto own sync error handling by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2783 - Update PR template for AI contributions by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2798
- Separate AccountSettings from actual storage by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2749
- [SyncManager] Extract upload step into own method by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2800
AccountIdrefactoring (part 14) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2806AccountIdrefactoring (part 15) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2807AccountIdrefactoring (part 16) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2809AccountIdrefactoring (part 17) by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2810- Place calendar components after timezone definition by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2816
- Allow to store AccountSettings in DB by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2803
- Bump the app-dependencies group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2818
- Move Local* classes to
resource.localpackage by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2832 - Throw exception when retrying an upload by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2834
- Bump com.squareup.okhttp3:okhttp from 5.4.0 to 5.5.0 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2836
- Split AGENTS.md for core/synctools; add instructions for blocking/suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2840
- Test all
AccountSettingsStoreimplementations by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2835 - Make
LocalResource.clearDirty()suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2839 - Make
LocalResource.updateUid()suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2841 - Make
LocalCollection.markNotDirty()andforgetETags()suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2843 - Make
LocalResource.updateFlags()suspending by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2844 - Make
LocalResource.updateSequence()/deleteLocal()/resetDeleted()suspend by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2846 - Treat 502 (BadGateway) as soft error by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2858
- Bump the app-dependencies group with 10 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2855
- Only use
dependencieslabel for dependabot submodule updates by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2864 - Bump the app-dependencies group with 3 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2866
- Move fastlane metadata to translations by @ArnyminerZ in https://github.com/bitfireAT/davx5-ose/pull/2863
- [l10n] Bump l10n from
b61ffc6to955f1e4by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2854 - Disable dependenciesInfo block for reproducible builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2871
- Do not exclude at.bitfire.** from optimization/shrinking by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/2862
- Bump the app-dependencies group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2874
- Add debug signing config option for release builds by @rfc2822 in https://github.com/bitfireAT/davx5-ose/pull/2875
- Distinguish empty path from literal slash in Url.lastSegment by @xhon-pelushi in https://github.com/bitfireAT/davx5-ose/pull/2797
- Ensure
Collection.urlandHomeSet.urlend with a slash by @cketti in https://github.com/bitfireAT/davx5-ose/pull/2881 - Bump org.slf4j:slf4j-jdk14 from 2.0.18 to 2.0.19 in the app-dependencies group by @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2883
- Wrap
RemoteExceptionwhen usingBatchOperationby @cketti in https://github.com/bitfireAT/davx5-ose/pull/2884 - Improve failed resource detection page by @sunkup in https://github.com/bitfireAT/davx5-ose/pull/2885
- Fix opaque log message for account configuration by @mbiebl in https://github.com/bitfireAT/davx5-ose/pull/2879
- [l10n] Bump l10n from
955f1e4to5f723ebby @dependabot[bot] in https://github.com/bitfireAT/davx5-ose/pull/2894
New Contributors
- @xhon-pelushi made their first contribution in https://github.com/bitfireAT/davx5-ose/pull/2797
Full Changelog: https://github.com/bitfireAT/davx5-ose/compare/v4.5.19-ose...v4.5.20-ose

