Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

book: how to migrate from git defmt to crates.io defmt #240

Merged
merged 2 commits into from Nov 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions book/src/SUMMARY.md
Expand Up @@ -39,3 +39,4 @@
- [Deserialization](./deserialization.md)
- [Log frames](./log-frame.md)
- [Lookup](./lookup.md)
- [Migrating from git defmt to stable defmt](./migration.md)
76 changes: 76 additions & 0 deletions book/src/migration.md
@@ -0,0 +1,76 @@
# Migrating from git defmt to stable defmt

On 2020-11-11, a stable version of `defmt` became available on crates.io.
If you are still using the git version you are encouraged to migrate your project to the crates.io version!
Two things need to be done to use the crates.io version of `defmt`:

1. change `defmt`, `defmt-rtt` and `panic-probe` dependencies from git to version `"0.1.0"` in relevant `Cargo.toml`-s
2. install version v0.1.4 (or newer) of [`probe-run`]

[`probe-run`]: https://github.com/knurling-rs/probe-run

Here's are the exact steps for migrating an [`app-template`] project.

[`app-template`]: https://github.com/knurling-rs/app-template

1. In your `app-template` project, change the root `Cargo.toml` as shown below:

``` diff
[workspace]
members = ["testsuite"]

-[dependencies.defmt]
-git = "https://github.com/knurling-rs/defmt"
-branch = "main"
-
-[dependencies.defmt-rtt]
-git = "https://github.com/knurling-rs/defmt"
-branch = "main"
-
-[dependencies.panic-probe]
-git = "https://github.com/knurling-rs/probe-run"
-branch = "main"
-
[dependencies]
+defmt = "0.1.0"
+defmt-rtt = "0.1.0"
+panic-probe = { version = "0.1.0", features = ["print-defmt"] }
cortex-m = "0.6.4"
cortex-m-rt = "0.6.13"
```

2. In your `app-template` project, also change the `testsuite/Cargo.toml` as shown below:

``` diff
name = "test"
harness = false

-[dependencies.defmt]
-git = "https://github.com/knurling-rs/defmt"
-branch = "main"
-
-[dependencies.defmt-rtt]
-git = "https://github.com/knurling-rs/defmt"
-branch = "main"
-
-[dependencies.panic-probe]
-git = "https://github.com/knurling-rs/probe-run"
-branch = "main"
-# enable the `print-defmt` feature for more complete test output
-features = ["print-defmt"]
-
[dependencies]
+defmt = "0.1.0"
+defmt-rtt = "0.1.0"
+panic-probe = { version = "0.1.0", features = ["print-defmt"] }
cortex-m = "0.6.3"
cortex-m-rt = "0.6.12"
```

3. Finally, install `probe-run` version v0.1.4 (or newer)

``` console
$ cargo install probe-run -f
```

Now you can resume working on your project!