bug(versioned): Fix how we (de)serialize enums in the tracking status
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start with the failing roundtrip test in crates/stackable-versioned/tests/person.rs, which panics on the tracking status enum. Find where those enums derive serde and check how the crate applies serde attributes to them. Apply serde_with's with::singleton_map_recursive to the (de)serialization, then rerun the PersonSpec roundtrip test. Done when the roundtrip passes without the Tagged-enum error.
Written by the indexing model from the issue text.
Description
Discovered in #1294.
By default, yaml_serde/serde_yaml (de)serialize enums as a custom YAML tag instead of a map. The error looks like this:
thread 'PersonSpec_roundtrip_down_up' (600819) panicked at crates/stackable-versioned/tests/person.rs:45:1:
called `Result::unwrap()` on an `Err` value: Error("invalid type: map, expected a Value::Tagged enum")
To fix this, we need to serialize and deserialize using with::singleton_map_recursive. I'm interested to work on this.
- Dominant language
- Rust
- Stars
- 169
- Forks
- 20
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 18
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stackabletech/operator-rs
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
stackabletech/operator-rs#1273 · 1 comment ·
Maintainers usually reply within 1 day
-
type/bug
Difficulty 3/5 1-2 days Newbie friendliness 48/100
stackabletech/operator-rs#1302 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
stackabletech/operator-rs#1077 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
stackabletech/operator-rs#1063 ·
Maintainers usually reply within 1 day
-
stackable-versioned: Require inner module definitions to have the same visibility as the parentOpen
Difficulty 3/5 1-2 days Newbie friendliness 45/100
stackabletech/operator-rs#1028 ·
Maintainers usually reply within 1 day
All issues in stackabletech/operator-rs
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
EmbarkStudios/cargo-deny#910 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tursodatabase/turso#10054 ·
Maintainers usually reply within 1 day
-
build: Update rust versionPossibly taken A pull request linked to this issue is open or already merged. Opendependencies
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
ibm-granite-community/granite-cli#229 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
orottier/web-audio-api-rs#658 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
aosama/astronomical#1318 ·
Maintainers usually reply within 1 day