axodotdev / axodotdev/cargo-dist

Migrate to config 1.0

Open
#1,533 4 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.