Release on crates.io
Hi,
any plans for a release on crates.io? There is a version 0.7.0 tagged in the repo, but I couldn't find it on crates.io.
We currently have a problem in probe-rs with version 0.6.3 of itm-decode (see https://github.com/probe-rs/probe-rs/issues/1283), due to the indirect dependency on funty 1.2.0, which got yanked.
A new release on crates.io would be great so that we can fix this.
Thanks!
I'm waiting for a v0.8 release of cortex-m (https://github.com/rust-embedded/cortex-m/issues/368) from which a singular structure is used IIRC. A quick fix would be to just copy the implementation verbatim for now, but I do not have a lot of time at the moment to handle this, but can review contributions. Is there no compatible funty release that supplants the yanked version?
Do note that, when a release is possible, itm-decode turns into a CLI binary and the old itm crate is updated with this repo's new implementation.
Unfortunately there is no semver compatible update. So we need this release. Do you know what is blocking the cortex-m release? I can ping folks to have another look at your MR. Last movement was in May.
Do you know what is blocking the cortex-m release?
I do not. But the crate depends on cortex_m::peripheral::itm::LocalTimestampOptions and cortex_m::peripheral::scb::VectActive. However, IIRC the VectActive implementation used in the patched cortex-m now differs from cortex-m HEAD. So a v0.8 rc wouldn't be the only requirement, hence the recommendation to just copy verbatim for now.
Also, is it possible to release a crate if a feature-gated module requires unreleased code? If not, the serial module will have to be refactored.
Addendum: the API of itm has been redesigned in favor of iterators, but I don't think this will be a major pain point for probe-rs.
Can't we just make a patch release with the old codebase?
The old codebase is no longer maintained. But I've published a hotfix pre-release you can try out: https://crates.io/crates/itm/0.9.0-rc.1.
Thanks!
To be honest, the new Decoder api which consumes a reader makes this neigh impossible to use properly. You cannot access raw trace data anymore, you cannot add timeout conditions, just handling in general is basically impossible.
Is there any way to get the push() based API back?
I don't think it impossible to offer a push() alongside the current API. Are there any other API functions you need?
https://github.com/probe-rs/probe-rs/blob/master/cli/src/trace.rs#L56C17-L59 is what we need :)
For the pull_with_timestamp you can use the new iterator API.
That's not really true. That moves the decoder. So you cannot iterate over it. So if you want to look at items in another loop that does not work. In this case you can switch it up, but for a general case the current API is not nice.