axodotdev / axodotdev/cargo-dist
Migrate to config 1.0
- Dominant language
- Rust
- Stars
- 2.1k
- Forks
- 149
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 32
Description
Internally, we've migrated to the planned 1.0 config format - we parse the original format, then do a conversion to the new structure. The new structure is set up with serialization and deserialization routes that makes it theoretically possible to read the new files - but nothing is set up to actually do so. Our final steps to complete this migration will be:
* Introduce parallel deserialization of both config formats. We need to keep being able to read the old format to report to users that they need to upgrade, and so that we can:
* Use `dist init` to read the old config format and migrate to the new one, and then use that new format as the basis for edits we make to the user's config files on their behalf. This should allow us to painlessly migrate everyone to the new format.
My plan is that when we introduce this, any commands except `init` will refuse to run if they're loaded from the old config files, but can use that as information to notify users that they need to upgrade via `dist init`.
Contributor guide
Research direction
Trace the existing parsing and conversion from the original config format into the new structure, then inspect the new serialization and deserialization routes and the `dist init` flow. Done means both formats can be read, `dist init` migrates the old format, and other commands refuse old configs while directing users to upgrade.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100