Skip to content

Commit 7ac984e

Browse files
committed
Clarify breaking changes (closes #2332)
1 parent de7f0e8 commit 7ac984e

File tree

4 files changed

+9
-205
lines changed

4 files changed

+9
-205
lines changed

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
44

5-
## [0.14.1] - 2025-10-27
5+
## [0.14.1] - 2025-10-28
66

77
If you are upgrading from v0.13.4 and below, this version includes **breaking changes** to the internal directory, calendar and contacts. Please read the [upgrading documentation](https://stalw.art/docs/install/upgrade) for more information on how to upgrade from previous versions.
88

@@ -30,9 +30,15 @@ If you are upgrading from v0.13.4 and below, this version includes **breaking ch
3030
- i18n: Swedish language support (contributed by @purung)
3131

3232
## Changed
33+
- **Breaking Database Changes** (migrated automatically on first start):
34+
- Internal directory schema changed.
35+
- Calendar and Contacts storage schema changed.
36+
- Sieve scripts storage schema changed.
37+
- Push Subscriptions storage schema changed.
3338
- Replaced `sieve.untrusted.limits.max-scripts` and `jmap.push.max-total` with `object-quota.*` settings.
3439
- Cluster node roles now allow sharding.
3540

41+
3642
## Fixed
3743
- Push Subscription: Clean-up of expired subscriptions and cluster notification of changes (#1248)
3844
- CalDAV: Per-user CalDAV properties (#2058)

crates/common/src/storage/index.rs

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use rkyv::{
1414
use std::{borrow::Cow, fmt::Debug};
1515
use store::{
1616
Serialize, SerializeInfallible,
17-
write::{Archive, Archiver, BatchBuilder, BlobOp, DirectoryClass, IntoOperations, TagValue},
17+
write::{Archive, Archiver, BatchBuilder, BlobOp, DirectoryClass, IntoOperations},
1818
};
1919
use types::{
2020
acl::AclGrant,
@@ -34,10 +34,6 @@ pub enum IndexValue<'x> {
3434
field: Field,
3535
value: Vec<IndexItem<'x>>,
3636
},
37-
Tag {
38-
field: Field,
39-
value: Vec<TagValue>,
40-
},
4137
Blob {
4238
value: BlobHash,
4339
},
@@ -379,15 +375,6 @@ fn build_index(
379375
}
380376
}
381377
}
382-
IndexValue::Tag { field, value } => {
383-
for item in value {
384-
if set {
385-
batch.tag(field, item);
386-
} else {
387-
batch.untag(field, item);
388-
}
389-
}
390-
}
391378
IndexValue::Blob { value } => {
392379
if set {
393380
batch.set(BlobOp::Link { hash: value }, vec![]);
@@ -524,27 +511,6 @@ fn merge_index(
524511
batch.unindex(field, value.into_owned());
525512
}
526513
}
527-
(
528-
IndexValue::Tag {
529-
field,
530-
value: old_value,
531-
},
532-
IndexValue::Tag {
533-
value: new_value, ..
534-
},
535-
) => {
536-
for old_tag in &old_value {
537-
if !new_value.contains(old_tag) {
538-
batch.untag(field, old_tag.clone());
539-
}
540-
}
541-
542-
for new_tag in new_value {
543-
if !old_value.contains(&new_tag) {
544-
batch.tag(field, new_tag);
545-
}
546-
}
547-
}
548514
(IndexValue::Blob { value: old_hash }, IndexValue::Blob { value: new_hash }) => {
549515
batch.clear(BlobOp::Link { hash: old_hash });
550516
batch.set(BlobOp::Link { hash: new_hash }, vec![]);

crates/common/src/storage/tag.rs

Lines changed: 0 additions & 151 deletions
This file was deleted.

crates/store/src/write/hash.rs

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,9 @@
44
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
55
*/
66

7+
use super::BitmapHash;
78
use crate::backend::MAX_TOKEN_LENGTH;
89

9-
use super::{BitmapClass, BitmapHash};
10-
11-
impl BitmapClass {
12-
pub fn word(token: impl AsRef<[u8]>, field: impl Into<u8>) -> Self {
13-
BitmapClass::Text {
14-
field: field.into(),
15-
token: BitmapHash::new(token),
16-
}
17-
}
18-
19-
pub fn stemmed(token: impl AsRef<[u8]>, field: impl Into<u8>) -> Self {
20-
BitmapClass::Text {
21-
field: field.into() | (1 << 7),
22-
token: BitmapHash::new(token),
23-
}
24-
}
25-
}
26-
2710
impl BitmapHash {
2811
pub fn new(item: impl AsRef<[u8]>) -> Self {
2912
Self {

0 commit comments

Comments
 (0)