Infinite retry loop can be seen as spam attack by relays

From relay operator @mikedilger

have had to block bostr on my relay due to an instant-retry-in-an-infinite-loop-that-is-essentially-a-dos-attack issue. In fact I think I'm blocking half of Japan at this point just because of this "bug".

Yes. I have been expected that this is could happening anytime soon. However resolving it may take a time to think for a solution.
Simply stop reconnecting after 3-7 attempts (or so) is brutal for a bouncer. But making a handler to wait other session could connect back to the upstream could seem fix the issue.
However just thinking how to put that in a code.

Some special note, It was supposed to be used for personal / private use. Making it for public of course will harm the upstream.

And another note, I've put 5 seconds of wait before reconnect since the very beginning.

Simply stop reconnecting after 3-7 attempts (or so) is brutal for a bouncer.

I wouldn't stop trying, I would just slow down.  A 5-minute timeout would be plenty.  If you tried every 5 minutes for eternity I would be ok with that.

I've put 5 seconds of wait before reconnect since the very beginning.

I'm getting about 27 retries per second per IP address, and there seem to be more and more IP addresses using bostr, so that's something like 40*27 connections per second, each one needing to setup IP, TCP, SSL, HTTP and Websockets, send in a first message. Then it gets closed from my side.  If I didn't close them my website would be essentially down, because that is how I discovered this. Eventually I figured out that blocking the IP addresses, not allowing the connections to establish in the first place, greatly relieved the strain and my website started working again.  But I don't want to block Japan. I love Japan. I want people in Japan to see my nostr notes.  I really just wish this could be fixed.
Here are my suggestions.  I am not claiming that these are not already in place, maybe some of them already are.  I didn't look at your code.

If the connection drops, wait for a timeout before trying again. 30 seconds would be a huge relief, but I'd prefer 5 minutes.  And if you can detect that the connection dropped in a way that indicates the server doesn't want you to retry (look at the HTTP status code, something like FORBIDDEN would be an indication that retrying won't work), then don't retry, store some kind of flag in the relay record that the relay has rejected the client (I'm not doing that, but someone might and it should be honored).  If you can't detect the server's intent (e.g. if SSL fails or IP drops without explanation), then retrying every 5 minutes is fine.
Timeout if the subscription drops before trying that same subscription again. 30 seconds would be okay at this layer I think.
Look at the CLOSED response if a relay CLOSED your subscription, and if it is catastrophic (blocked, invalid or error) then don't try that subscription again, instead mark the relay as unable to handle that kind of subscription. If the reason is 'rate-limited' then slow down somehow.  I would store a 'rate' field in the relay record.
Try not to open more than about 10 subscriptions. I know that's hard to get below 10 so I allow up to 24. I think that should be enough.

Maybe I'll take some time out to look through the code. I might be able to submit a PR.

If the connection drops, wait for a timeout before trying again. 30 seconds would be a huge relief, but I'd prefer 5 minutes.  And if you can detect that the connection dropped in a way that indicates the server doesn't want you to retry (look at the HTTP status code, something like FORBIDDEN would be an indication that retrying won't work), then don't retry, store some kind of flag in the relay record that the relay has rejected the client (I'm not doing that, but someone might and it should be honored).  If you can't detect the server's intent (e.g. if SSL fails or IP drops without explanation), then retrying every 5 minutes is fine.

This could be fine for me.

Timeout if the subscription drops before trying that same subscription again. 30 seconds would be okay at this layer I think.

It never tries to reuse subscription. In fact it does not handle CLOSED yet as majority of relays did not implemented it.

Look at the CLOSED response if a relay CLOSED your subscription, and if it is catastrophic (blocked, invalid or error) then don't try that subscription again, instead mark the relay as unable to handle that kind of subscription. If the reason is 'rate-limited' then slow down somehow.  I would store a 'rate' field in the relay record.

When you get NOTICE with the rate-limited reason, It could be either both publishing and requesting was being ratelimited, which ended up giving the client a small slowdown & confusion.

Try not to open more than about 10 subscriptions. I know that's hard to get below 10 so I allow up to 24. I think that should be enough.

You better tell to these nostr clients dev instead of me. Different relays often has different limit. So setting 10 at default is absurd. But for some reasons, I will implement this to be configureable.

Configureable ratelimits has been implemented as per a3b4c20
For bostr admins, Please check config.js.example

Notice to all relays operator
Bostr will now put it is version on it is user agent. Things about ratelimit has been fixed since v2.0.4-dev.
If there are another bostr function that acts up even at this version, It could be due to unconfigured ratelimit options.


How to call the api from Strapi? (strapi.db.query or strapi.entityService)

Hello, and thank you for your work on this plugin!
I would like to call the navigation api from a Strapi controller.
What is the equivalent of this public call http://localhost:1337/api/navigation/render/main-navigation if I want to call it from a strapi controller?
I suppose it is something like this but I can't find any documentation:
// controller.ts
const response = await strapi.db.query("api::navigation.content-api.render.main-navigation")

Thanks!

@maximelebreton  that's probably what you're looking for:
https://github.com/VirtusLab-Open-Source/strapi-plugin-navigation/blob/master/server/controllers/client.ts#L12
You can directly call the service method used in this controller.

thanks @cyp3rius, could you provide a little example?

like that:
strapi.plugin('navigation').service('client').render('main-navigation')

Thanks @cyp3rius, but I tried await strapi.plugin('navigation').service('client').render('main-navigation')  , and I have a "NotFoundError: Entity not found"...
(and the "main-navigation" entity exist because I have data when I call http://localhost:1337/api/navigation/render/main-navigation)

@cyp3rius ok it's working with:
await strapi.plugin("navigation").service("client").render({ idOrSlug: "main-navigation" });

thanks a lot for your time @cyp3rius!


Git Diff is Corrupt

I've recently been experiencing a strange bug where the Git diff preview in VSCode becomes corrupt, as seen below.

Issue Type: Bug

Create a new directory, and add stdafx_old.h to it
Rename stdafx_old.h to stdafx.h
Initialize a git repository in the directory and commit stdafx.h
Delete stdafx.h
Add stdafx_new.h to the directory and rename it to stdafx.h
Check the git diff view in VSCode

VS Code version: Code 1.21.1 (79b44aa704ce542d8ca4a3cc44cfca566e7720f1, 2018-03-14T14:46:47.128Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz (8 x 4200)

Memory (System)
31.93GB (25.56GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (13)

Extension
Author (truncated)
Version

Bookmarks
ale
0.18.2

markdown-table-prettify
dar
2.0.0

python
ms-
2018.2.1

cpptools
ms-
0.15.0

vscode-gn
npc
1.0.0

vscode-icons
rob
7.21.0

cod-sense
se2
0.0.3

shader
sle
1.1.2

vscode-hexdump
sle
1.6.0

dot
Ste
0.0.1

ninja
sur
0.0.1

vscode-lua
tri
0.12.3

shadron
vch
0.1.0

(1 theme extensions excluded)

Reproduces without extensions

Files and example repository: vscode_git_bug.zip

Does this happen for all files in that repo?
And for all files in other repos too?

/duplicate #21146


The error about “python3 extract_features.py wavs.txt -o hdf5/balanced.h5”，too

Hi，thanks for your excellent work.
When I rerun the program, I have got some errors.
such as:

I check it as "python3 extract_feature.py wavs.txt -o hdf5/balanced.h5"， but I got other error:

Hi，thanks for your excellent work. When I rerun the program, I have got some errors. such as:
I check it as "python3 extract_feature.py wavs.txt -o hdf5/balanced.h5"， but I got other error:

Does the AudioSet look like this?

Looking forward to your reply, thank you

Sorry,
I don not find where the shell "extracts_feature.py" is.

The raw wave files may be not published ~

 Sorry, I don not find where the shell "extracts_feature.py" is.

You need to run the script in this data/ directory.

The raw wave files may be not published ~

They are, just need to download them using i.e., some download tool. I recommend my own here.

 Sorry, I don not find where the shell "extracts_feature.py" is.

You need to run the script in this data/ directory.

The raw wave files may be not published ~

They are, just need to download them using i.e., some download tool. I recommend my own here.

thank you very much!


Add Invoke-ATHCorProfiler

Adding Invoke-ATHCorProfiler, Pester Tests, updating Readme.md, and AtomicTestHarnesses.psd1

Thank you so much for this, @jessecbrown! I appreciate your patience, hard work, and attention to detail.

No, thank YOU @mgraeber-rc ! Thanks for the opportunity, your patience, and teaching!


Scatter points locked to the left edge and dragged off bottom

https://codepen.io/mortac8/pen/LYNYJdj
If I run this code in jsfiddle or codepen it works but if I run it straight from an HTML page deployed on a web server, I get problems in that my point can be dragged off the bottom of the chart or locked to X=0.  Any ideas would be appreciated.  This one is driving me crazy.
Attached is a video of the problem I see.  It seems to be similar to what was mentioned in #39 and #35 .
I am using Chart.js 2.9.3 and dragdata 1.0.2 here in the attached examples.  If I revert to dragdata 0.0.5, this specific problem goes away for me on a barebones example like the inline code below but then I can't drag points on my plot in our production app.

<script src="Chart-2.9.3.js"></script>
<script src="chartjs-plugin-dragdata-1.0.2.js"></script>
<canvas id="inputChartGray" width=200 height=200></canvas>
<script>
    function createInputChart(chartElement, data){
        let inputScatterChart = new Chart(chartElement, {
            type: "scatter",
            data: {
                datasets: [
                {
                    label: "points",
                    showLine: true,
                    pointRadius: 5,
                    data: data,
                    type: "scatter"
                }]
            },
            options: {
                responsive: false,
                dragData: true,
                dragX: true
            }
        });
        return inputScatterChart;
    }

    initCharts();

    function initCharts(){
        let data = [{ x: 0, y: 0 }, { x: 65, y: 65 }, { x: 255, y: 255}];
        let inputChartGrayElement = document.getElementById("inputChartGray");
        let inputGrayChart = createInputChart(inputChartGrayElement, data);
    }
</script>

Hey,
thanks for raising an issue.
The reason why this works in the codepen and not when running your HTML directly is that the codepen references the latest version of the plugin (v1.1.3), which includes the fixes from the issues you found:
<EMAIL_ADDRESS>
while in your code you seem to use an outdated version (v.1.0.2).
I figure the confusion might have come through 1.0.2 being the latest release on the release page? Sorry, but I don't update them regularly as most people that use a bundler (Rollup/Webpack) for creating their production sites install their packages through npm/yarn.
In any case, you have the following options to fix your problem:

If you don't bundle your site, you could just use a CDN directly

 <script<EMAIL_ADDRESS>

If you do, update to the latest version of the plugin using

npm update chartjs-plugin-dragdata

You can always pull the latest versions of the plugin from the dist folder of the master branch

Hope this helps

Thanks Christopher!  That was my problem.
Yes I used 1.0.2 because that was the latest released / tagged version.


Handle TX withdrawal

https://cexplorer.io/tx/80c15d44471513eb70f811d1291eee91585f5fa350931908c1f893d6e8589d6c

Withdrawal now it looks like something like below
🔑 $0x616461
✉ 1 new transaction(s)
⤴ Sent Funds  17.10.2023, 07:33 PM
🔹Fee 0.18 ₳ (0.10 $)
🔹Sent -300.00 ₳ (-163.93 $)
🔻 Withdrawal 3.00 ₳ (1.64 $)


generation of the rust CPAL lib

Describe the bug
I try to generate a dart interface to cpal
rust_root: rust/
rust_input: crate::api,web-audio-api,cpal
dart_output: lib/src/rust
dump_all: true
#local: true
type_64bit_int: true

Do I have to install dummy mod.rs in rust/src/third_party/cpal ?
I get the following errors when compiling dart :

Showing Recent Messages
INFO: Building tau for aarch64-apple-ios-sim

SEVERE: ================================================================================

SEVERE: Cargokit BuildTool failed with error:

SEVERE: --------------------------------------------------------------------------------

SEVERE: External Command: rustup "run" "stable" "cargo" "build" "--manifest-path" "/Volumes/mac-J/larpoux/projmac/toto/tau/rust/Cargo.toml" "-p" "tau" "--target" "aarch64-apple-ios-sim" "--target-dir" "/Volumes/mac-J/larpoux/Library/Developer/Xcode/DerivedData/Runner-hgmqvhmgdtuiwxconnjtkeducngc/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/tau.build"

SEVERE: Returned Exit Code: 101

SEVERE: --------------------------------------------------------------------------------

SEVERE: STDOUT:

SEVERE: --------------------------------------------------------------------------------

SEVERE: STDERR:

SEVERE: Compiling tau v0.1.0 (/Volumes/mac-J/larpoux/projmac/toto/tau/rust)

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:   --> src/frb_generated.rs:60:28

SEVERE:    |

SEVERE: 60 | use cpal::host::coreaudio::macos::enumerate::*;

SEVERE:    |                            ^^^^^ could not find `macos` in `coreaudio`

SEVERE:    |

SEVERE:   --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:    |

SEVERE: 16 | mod macos;

SEVERE:    |     ^^^^^

SEVERE:    = note: the item is gated behind the `macos` feature

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:   --> src/frb_generated.io.rs:39:28

SEVERE:    |

SEVERE: 39 | use cpal::host::coreaudio::macos::enumerate::*;

SEVERE:    |                            ^^^^^ could not find `macos` in `coreaudio`

SEVERE:    |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:   --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:    |

SEVERE: 16 | mod macos;

SEVERE:    |     ^^^^^

SEVERE:    = note: the item is gated behind the `macos` feature

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:     --> src/frb_generated.rs:2343:48

SEVERE:      |

SEVERE: 2343 |                         cpal::host::coreaudio::macos::enumerate::default_input_device(),

SEVERE:      |                                                ^^^^^ could not find `macos` in `coreaudio`

SEVERE:      |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:     --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:      |

SEVERE: 16   | mod macos;

SEVERE:      |     ^^^^^

SEVERE:      = note: the item is gated behind the `macos` feature

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:     --> src/frb_generated.rs:2377:48

SEVERE:      |

SEVERE: 2377 |                         cpal::host::coreaudio::macos::enumerate::default_output_device(),

SEVERE:      |                                                ^^^^^ could not find `macos` in `coreaudio`

SEVERE:      |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:     --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:      |

SEVERE: 16   | mod macos;

SEVERE:      |     ^^^^^

SEVERE:      = note: the item is gated behind the `macos` feature

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:     --> src/frb_generated.rs:2187:48

SEVERE:      |

SEVERE: 2187 |                         cpal::host::coreaudio::macos::enumerate::Devices::as_inner(

SEVERE:      |                                                ^^^^^ could not find `macos` in `coreaudio`

SEVERE:      |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:     --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:      |

SEVERE: 16   | mod macos;

SEVERE:      |     ^^^^^

SEVERE:      = note: the item is gated behind the `macos` feature

SEVERE: help: consider importing one of these items

SEVERE:      |

SEVERE: 28   + use cpal::Devices;

SEVERE:      |

SEVERE: 28   + use crate::frb_generated::platform::Devices;

SEVERE:      |

SEVERE: help: if you import `Devices`, refer to it directly

SEVERE:      |

SEVERE: 2187 -                         cpal::host::coreaudio::macos::enumerate::Devices::as_inner(

SEVERE: 2187 +                         Devices::as_inner(

SEVERE:      |

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:     --> src/frb_generated.rs:2240:48

SEVERE:      |

SEVERE: 2240 |                         cpal::host::coreaudio::macos::enumerate::Devices::as_inner_mut(

SEVERE:      |                                                ^^^^^ could not find `macos` in `coreaudio`

SEVERE:      |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:     --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:      |

SEVERE: 16   | mod macos;

SEVERE:      |     ^^^^^

SEVERE:      = note: the item is gated behind the `macos` feature

SEVERE: help: consider importing one of these items

SEVERE:      |

SEVERE: 28   + use cpal::Devices;

SEVERE:      |

SEVERE: 28   + use crate::frb_generated::platform::Devices;

SEVERE:      |

SEVERE: help: if you import `Devices`, refer to it directly

SEVERE:      |

SEVERE: 2240 -                         cpal::host::coreaudio::macos::enumerate::Devices::as_inner_mut(

SEVERE: 2240 +                         Devices::as_inner_mut(

SEVERE:      |

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:     --> src/frb_generated.rs:2277:48

SEVERE:      |

SEVERE: 2277 |                         cpal::host::coreaudio::macos::enumerate::Devices::into_inner(api_that),

SEVERE:      |                                                ^^^^^ could not find `macos` in `coreaudio`

SEVERE:      |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:     --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:      |

SEVERE: 16   | mod macos;

SEVERE:      |     ^^^^^

SEVERE:      = note: the item is gated behind the `macos` feature

SEVERE: help: consider importing one of these items

SEVERE:      |

SEVERE: 28   + use cpal::Devices;

SEVERE:      |

SEVERE: 28   + use crate::frb_generated::platform::Devices;

SEVERE:      |

SEVERE: help: if you import `Devices`, refer to it directly

SEVERE:      |

SEVERE: 2277 -                         cpal::host::coreaudio::macos::enumerate::Devices::into_inner(api_that),

SEVERE: 2277 +                         Devices::into_inner(api_that),

SEVERE:      |

SEVERE:

SEVERE: error[E0433]: failed to resolve: could not find `macos` in `coreaudio`

SEVERE:     --> src/frb_generated.rs:2310:60

SEVERE:      |

SEVERE: 2310 |                     let output_ok = cpal::host::coreaudio::macos::enumerate::Devices::new()?;

SEVERE:      |                                                            ^^^^^ could not find `macos` in `coreaudio`

SEVERE:      |

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: found an item that was configured out

SEVERE:     --> /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/host/coreaudio/mod.rs:16:5

SEVERE:      |

SEVERE: 16   | mod macos;

SEVERE:      |     ^^^^^

SEVERE:      = note: the item is gated behind the `macos` feature

SEVERE: help: consider importing one of these items

SEVERE:      |

SEVERE: 28   + use cpal::Devices;

SEVERE:      |

SEVERE: 28   + use crate::frb_generated::platform::Devices;

SEVERE:      |

SEVERE: help: if you import `Devices`, refer to it directly

SEVERE:      |

SEVERE: 2310 -                     let output_ok = cpal::host::coreaudio::macos::enumerate::Devices::new()?;

SEVERE: 2310 +                     let output_ok = Devices::new()?;

SEVERE:      |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:32895:61

SEVERE:       |

SEVERE: 32895 |     flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DevicesInner>

SEVERE:       |                                                             ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 32895 |     flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DevicesError>

SEVERE:       |                                                             ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `Ordering` in this scope

SEVERE:      --> src/frb_generated.rs:32952:61

SEVERE:       |

SEVERE: 32952 |     flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Ordering>

SEVERE:       |                                                             ^^^^^^^^ not found in this scope

SEVERE:       |

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use core::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use core::sync::atomic::Ordering;

SEVERE:       |

SEVERE: 28    + use std::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use std::sync::atomic::Ordering;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:34811:20

SEVERE:       |

SEVERE: 34811 | impl SseDecode for DevicesInner {

SEVERE:       |                    ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 34811 | impl SseDecode for DevicesError {

SEVERE:       |                    ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:34815:69

SEVERE:       |

SEVERE: 34815 |             flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DevicesInner>,

SEVERE:       |                                                                     ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 34815 |             flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DevicesError>,

SEVERE:       |                                                                     ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `Ordering` in this scope

SEVERE:      --> src/frb_generated.rs:35005:20

SEVERE:       |

SEVERE: 35005 | impl SseDecode for Ordering {

SEVERE:       |                    ^^^^^^^^ not found in this scope

SEVERE:       |

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use core::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use core::sync::atomic::Ordering;

SEVERE:       |

SEVERE: 28    + use std::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use std::sync::atomic::Ordering;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `Ordering` in this scope

SEVERE:      --> src/frb_generated.rs:35009:69

SEVERE:       |

SEVERE: 35009 |             flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Ordering>,

SEVERE:       |                                                                     ^^^^^^^^ not found in this scope

SEVERE:       |

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use core::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use core::sync::atomic::Ordering;

SEVERE:       |

SEVERE: 28    + use std::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use std::sync::atomic::Ordering;

SEVERE:       |

SEVERE:

SEVERE: error[E0433]: failed to resolve: use of undeclared crate or module `chrono`

SEVERE:      --> src/frb_generated.rs:35209:16

SEVERE:       |

SEVERE: 35209 |         return chrono::Duration::microseconds(inner);

SEVERE:       |                ^^^^^^ use of undeclared crate or module `chrono`

SEVERE:       |

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use core::time::Duration;

SEVERE:       |

SEVERE: 28    + use std::time::Duration;

SEVERE:       |

SEVERE: help: if you import `Duration`, refer to it directly

SEVERE:       |

SEVERE: 35209 -         return chrono::Duration::microseconds(inner);

SEVERE: 35209 +         return Duration::microseconds(inner);

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:35506:79

SEVERE:       |

SEVERE: 35506 |     for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DevicesInner>>

SEVERE:       |                                                                               ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 35506 |     for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<DevicesError>>

SEVERE:       |                                                                               ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `Ordering` in this scope

SEVERE:      --> src/frb_generated.rs:35710:79

SEVERE:       |

SEVERE: 35710 |     for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Ordering>>

SEVERE:       |                                                                               ^^^^^^^^ not found in this scope

SEVERE:       |

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use core::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use core::sync::atomic::Ordering;

SEVERE:       |

SEVERE: 28    + use std::cmp::Ordering;

SEVERE:       |

SEVERE: 28    + use std::sync::atomic::Ordering;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:37924:51

SEVERE:       |

SEVERE: 37924 | impl flutter_rust_bridge::IntoDart for FrbWrapper<DevicesInner> {

SEVERE:       |                                                   ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 37924 | impl flutter_rust_bridge::IntoDart for FrbWrapper<DevicesError> {

SEVERE:       |                                                   ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:37930:81

SEVERE:       |

SEVERE: 37930 | impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper<DevicesInner> {}

SEVERE:       |                                                                                ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 37930 | impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper<DevicesError> {}

SEVERE:       |                                                                                ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:37932:51

SEVERE:       |

SEVERE: 37932 | impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<DevicesInner>> for DevicesInner {

SEVERE:       |                                                   ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 37932 | impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<DevicesError>> for DevicesInner {

SEVERE:       |                                                   ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:37932:70

SEVERE:       |

SEVERE: 37932 | impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<DevicesInner>> for DevicesInner {

SEVERE:       |                                                                      ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 37932 | impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<DevicesInner>> for DevicesError {

SEVERE:       |                                                                      ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `DevicesInner` in this scope

SEVERE:      --> src/frb_generated.rs:37933:43

SEVERE:       |

SEVERE: 37933 |     fn into_into_dart(self) -> FrbWrapper<DevicesInner> {

SEVERE:       |                                           ^^^^^^^^^^^^

SEVERE:       |

SEVERE:      ::: /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cpal-0.15.3/src/error.rs:47:1

SEVERE:       |

SEVERE: 47    | pub enum DevicesError {

SEVERE:       | --------------------- similarly named enum `DevicesError` defined here

SEVERE:       |

SEVERE: help: an enum with a similar name exists

SEVERE:       |

SEVERE: 37933 |     fn into_into_dart(self) -> FrbWrapper<DevicesError> {

SEVERE:       |                                           ~~~~~~~~~~~~

SEVERE: help: consider importing one of these items

SEVERE:       |

SEVERE: 28    + use cpal::platform::DevicesInner;

SEVERE:       |

SEVERE: 28    + use crate::frb_generated::platform::DevicesInner;

SEVERE:       |

SEVERE:

SEVERE: error[E0412]: cannot find type `Ordering` in this scope

SEVERE:      --> src/frb_generated.rs:38255:51

SEVERE:       |

SEVERE: 38255 | impl flutter_rust_bridge::IntoDart for FrbWrapper<Ordering> {

SEVERE:       |                                                   ^^^^^^^^ not found in this scope

SEVERE:       |

SEVERE: help: consider importing one of these items

SEVERE:       |

... ... ...

SEVERE: --------------------------------------------------------------------------------

SEVERE: BuildTool arguments: [build-pod, ../rust, tau]

SEVERE: ================================================================================

/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/Pods/SEVERE:1:1: could not compile `tau` (lib) due to 82 previous errors; 6 warnings emitted

Steps to reproduce
Hint: A simple way to reproduce is to clone and modify the https://github.com/fzyzcjy/flutter_rust_bridge/tree/master/frb_example/dart_minimal example package according to your needs.

...
...
...

Logs
larpoux@Mac-mini:~/projmac/toto/tau$ flutter_rust_bridge_codegen generate
[2024-06-21T16:57:29.867Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/hir/flat/transformer/merge_duplicate_transformer/mod.rs:72] There are still multiple objects with same key after merging, thus randomly pick one. This is an issue only if the object is indeed used. (key=("AudioParamValues < 'a >", "get"), objects={"namespace":"web_audio_api::render::processor","owner":{"StructOrEnum":{"impl_ty":"AudioParamValues < 'a >","trait_def_name":null}},"sources":["Normal"],"item_fn":"GeneralizedItemFn(name=get, vis=Some(Visibility::Public(Pub)), attrs=[# [doc = \" Get the computed values for the given [`crate::param::AudioParam`]\"], # [doc = \"\"], # [doc = \" For k-rate params or if the (a-rate) parameter is constant for this block, it will provide\"], # [doc = \" a slice of length 1. In other cases, i.e. a-rate param with scheduled automations it will\"], # [doc = \" provide a slice of length equal to the render quantum size (default: 128)\"], # [allow (clippy :: missing_panics_doc)]])"}, {"namespace":"web_audio_api::worklet","owner":{"StructOrEnum":{"impl_ty":"AudioParamValues < 'a >","trait_def_name":null}},"sources":["Normal"],"item_fn":"GeneralizedItemFn(name=get, vis=Some(Visibility::Public(Pub)), attrs=[# [doc = \" Get the computed values for the given [`AudioParam`]\"], # [doc = \"\"], # [doc = \" For k-rate params or if the (a-rate) parameter is constant for this block, it will provide\"], # [doc = \" a slice of length 1. In other cases, i.e. a-rate param with scheduled automations it will\"], # [doc = \" provide a slice of length equal to the render quantum size (default: 128)\"], # [allow (clippy :: missing_panics_doc)]])"})
[2024-06-21T16:57:29.869Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/hir/flat/transformer/merge_duplicate_transformer/mod.rs:72] There are still multiple objects with same key after merging, thus randomly pick one. This is an issue only if the object is indeed used. (key=("Host", "new"), objects={"namespace":"cpal::host::coreaudio::macos","owner":{"StructOrEnum":{"impl_ty":"Host","trait_def_name":null}},"sources":["Normal"],"item_fn":"GeneralizedItemFn(name=new, vis=Some(Visibility::Public(Pub)), attrs=[])"}, {"namespace":"cpal::host::null","owner":{"StructOrEnum":{"impl_ty":"Host","trait_def_name":null}},"sources":["Normal"],"item_fn":"GeneralizedItemFn(name=new, vis=Some(Visibility::Public(Pub)), attrs=[# [allow (dead_code)]])"})
[2024-06-21T16:57:29.870Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/hir/flat/transformer/merge_duplicate_transformer/mod.rs:72] There are still multiple objects with same key after merging, thus randomly pick one. This is an issue only if the object is indeed used. (key=("Devices", "new"), objects={"namespace":"cpal::host::coreaudio::macos::enumerate","owner":{"StructOrEnum":{"impl_ty":"Devices","trait_def_name":null}},"sources":["Normal"],"item_fn":"GeneralizedItemFn(name=new, vis=Some(Visibility::Public(Pub)), attrs=[])"}, {"namespace":"cpal::host::null","owner":{"StructOrEnum":{"impl_ty":"Devices","trait_def_name":null}},"sources":["Normal"],"item_fn":"GeneralizedItemFn(name=new, vis=Some(Visibility::Public(Pub)), attrs=[])"})
[2024-06-21T16:57:30.043Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/ty/lifetimeable.rs:52] To handle some types, `enable_lifetime: true` may need to be set. Please visit https://fzyzcjy.github.io/flutter_rust_bridge/guides/lifetimes for more details
[2024-06-21T16:57:30.053Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.055Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.056Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `get_channel_data` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.056Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `get_channel_data_mut` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.057Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.058Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.062Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `render_capacity` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.062Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.063Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.064Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.064Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.064Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `cancel_and_hold_at_time` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.064Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `cancel_scheduled_values` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.065Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.065Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `exponential_ramp_to_value_at_time` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.065Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `linear_ramp_to_value_at_time` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.065Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.065Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `set_target_at_time` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.066Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `set_value` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.066Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `set_value_at_time` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.066Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `set_value_curve_at_time` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.066Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.067Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `parameters` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.067Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.068Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.070Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.071Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.071Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.071Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.072Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.074Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.075Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.076Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.077Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.078Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `bytes` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.078Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `bytes_mut` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.078Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.079Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.080Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `as_inner` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.080Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `as_inner_mut` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.080Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.082Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.083Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.083Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.084Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.086Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.087Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.088Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.089Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.090Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.091Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.091Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.092Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.093Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.096Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.097Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.099Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.101Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.103Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.103Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.104Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.105Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.106Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `buffer_size` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.106Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `buffer_size` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.107Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `channel_config` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.109Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/parser/function/real/output.rs:74] Output type of `registration` is a reference, thus currently set to unit type. The "lifetimes" section in doc may be interesting.
[2024-06-21T16:57:30.112Z INFO /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/parser/mir/sanity_checker/auto_accessor_checker.rs:21] To use the automatically generated getters of the following fields of opaque types, it is suggested to read https://fzyzcjy.github.io/flutter_rust_bridge/guides/types/arbitrary/rust-auto-opaque/properties to know more details. (Related fields: cpal::InputStreamTimestamp.callback, cpal::InputStreamTimestamp.callback, cpal::InputStreamTimestamp.capture, cpal::InputStreamTimestamp.capture, web_audio_api::media_recorder::BlobEvent.blob, web_audio_api::media_recorder::BlobEvent.blob, web_audio_api::media_recorder::BlobEvent.event, web_audio_api::media_recorder::BlobEvent.event, web_audio_api::AudioProcessingEvent.input_buffer, web_audio_api::AudioProcessingEvent.input_buffer, web_audio_api::AudioProcessingEvent.output_buffer, web_audio_api::AudioProcessingEvent.output_buffer, cpal::StreamConfig.sample_rate, cpal::StreamConfig.sample_rate, cpal::StreamConfig.buffer_size, cpal::StreamConfig.buffer_size, web_audio_api::AudioRenderCapacityEvent.event, web_audio_api::AudioRenderCapacityEvent.event, cpal::OutputStreamTimestamp.callback, cpal::OutputStreamTimestamp.callback, cpal::OutputStreamTimestamp.playback, cpal::OutputStreamTimestamp.playback, web_audio_api::OfflineAudioCompletionEvent.rendered_buffer, web_audio_api::OfflineAudioCompletionEvent.rendered_buffer, web_audio_api::OfflineAudioCompletionEvent.event, web_audio_api::OfflineAudioCompletionEvent.event)
[2024-06-21T16:57:43.659Z WARN /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/commands/command_runner.rs:153] command=cd "/Volumes/mac-J/larpoux/projmac/toto/tau" && FRB_SIMPLE_BUILD_SKIP="1" "sh" "-c" "\"flutter\" \"pub\" \"run\" \"build_runner\" \"build\" \"--delete-conflicting-outputs\" \"--enable-experiment=class-modifiers\"" stdout=[INFO] Generating build script...
[INFO] Generating build script completed, took 165ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 87ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 736ms

[INFO] Running build...
[INFO] 1.0s elapsed, 0/16 actions completed.
[INFO] 3.5s elapsed, 9/21 actions completed.
[INFO] 4.5s elapsed, 10/21 actions completed.
[INFO] 5.6s elapsed, 10/21 actions completed.
[INFO] 6.7s elapsed, 18/21 actions completed.
[SEVERE] Unhandled build failure!
PathNotFoundException: Cannot delete file, path = '/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/.symlinks/plugins/tau/lib/src/rust/frb_generated.freezed.dart' (OS Error: No such file or directory, errno = 2)
[SEVERE] Failed after 6.7s
 stderr=
[2024-06-21T16:57:43.659Z WARN /Volumes/mac-J/larpoux/.cargo/registry/src/index.crates.io-6f17d22bba15001f/flutter_rust_bridge_codegen-2.0.0/src/library/codegen/polisher/mod.rs:89] Fail to execute_build_runner, but continue to run.
Error details: Err(Failed to run build_runner for "/Volumes/mac-J/larpoux/projmac/toto/tau": [INFO] Generating build script...
[INFO] Generating build script completed, took 165ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 87ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 736ms

[INFO] Running build...
[INFO] 1.0s elapsed, 0/16 actions completed.
[INFO] 3.5s elapsed, 9/21 actions completed.
[INFO] 4.5s elapsed, 10/21 actions completed.
[INFO] 5.6s elapsed, 10/21 actions completed.
[INFO] 6.7s elapsed, 18/21 actions completed.
[SEVERE] Unhandled build failure!
PathNotFoundException: Cannot delete file, path = '/Volumes/mac-J/larpoux/projmac/toto/tau/example/ios/.symlinks/plugins/tau/lib/src/rust/frb_generated.freezed.dart' (OS Error: No such file or directory, errno = 2)
[SEVERE] Failed after 6.7s
)
[2.7s] Parse
  └── [2.2s] Cargo expand & syn parse
  └── [0.3s] Parse HIR
  └── [0.2s] Parse MIR
[3.6s] Generate
[11.6s] Polish
  └── [9.8s] Run Dart build_runner
  └── [1.3s] Run Dart formatter
  └── [0.5s] Run Rust formatter
  └── [0.0s] Auto upgrade                                                                                Done!

Expected behavior
No response
Generated binding code
No response
OS
No response
Version of flutter_rust_bridge_codegen
No response
Flutter info
No response
Version of clang++
No response
Additional context
No response

It is possible that the default generated code for a quite complex package like cpal cannot be compiled with 100% automation without any manual configurations. Thus, we may need to look at the errors and fix them (one quick way is to firstly #[frb(ignore)] all things with error, and then add back.
Btw curious why do you need cpal (maybe need some lower level functionality)? IIRC last time you mentioned web-audio-api is good to be a API.

It is possible that I have to need things inside CPAL. CPAL is a layer under web-audio-api-rs.
But I don't really need to access directly this lib from  dart. I can write the function I need in rust.
I tried to generate just by curiosity and because I  master dart much better than rust.
Forget this requirement....

I see. Yes, if you only need a small portion of the full API, then it may be quicker to write down a few lines simple wrapper in Rust.


Update README.md

I'd like to suggest adding the ArchLinux option in the readme.
It's working good. Thanks for the easy scripts.

Sounds good. Note that Arch Linux will soon become the only option though, as this is moving to more packaged software that L4T/Ubuntu doesn't have in the desired version.


Menu not showing

When I try to get the menu that pops up when you point your right controller to your left palm nothing shows up. I have tried different angles, restarting my pc and headset, updating my headset and pc, reinstalling the vr mod, restarted steam vr and unplug my headset many times. Please help me with this issue because I really want to play Re2 in vr and have a great experience.

This feature is going to be removed in the future. If you need to turn first person on you can do it beforehand by editing your re2_fw_config.txt in your game folder and enabling the first person option.

I don't even find about the menu hotkey (google 37 says SPACE), and nether found keys reference.
Overlay key change doesn't work, always defaults to 37 if a key is clicked for binding.


feat: validate list parent resource_reference

This lints List*Request parent resource_reference annotations to check it does not reference the resource being listed.

I wonder if we should go stronger and say to always use child_type with the resource.

I think that would be reasonable, but previous advice has been that we can do either. There would be many API's in "violation" of this rule today if we enforced only child_type. Not a reason we shouldn't do it if we think it's right, but there was some merit to our existing practice that we will have to go back on.
I'm happy to change it if you think that is better though. LMK one way or the other.

That is a fair point. Okay.


Billing - periodic operations

Billing - Periodic Operations

scheduled once a month (at one o'clock on the 1st day of the month) to bill invoices that are in DRAFT state.
same job is used to attempt a payment on invoices in UNPAID state

@jerome-benoit : I would need your advice. I introduced a new BillingPeriodicOperationTask task running once a month, on the 1st day at 1 AM (crontab.guru/#0_1_1____)
I have changed the docker/config*.json files to declare the new task (in an inactive state).
How shall I proceed to declare it active on both our QA and PROD systems?

Yes, you have to make a PR for the configuration in ev-scp-sap-it and ev-aws repo.


codeql: 2.4.3 -> 2.4.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/github/codeql-cli-binaries/releases.
meta.description for codeql is: "Semantic code analysis engine"
meta.homepage for codeql is: "https://semmle.com/codeql"
meta.changelog for codeql is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2.4.4 with grep in /nix/store/1pswxcjczpwlb6xwbh3i6g3m83xskx0g-codeql-2.4.4

directory tree listing: https://gist.github.com/64dd8124fc4c5dde7c688e75d8f23cb5

du listing: https://gist.github.com/0c40babc7ec56d2dccf180957ac0e25b

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
0 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
codeql

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1pswxcjczpwlb6xwbh3i6g3m83xskx0g-codeql-2.4.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A codeql https://github.com/r-ryantm/nixpkgs/archive/c01376f960d3572bd1abace8ff6b9d1e166a190c.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1pswxcjczpwlb6xwbh3i6g3m83xskx0g-codeql-2.4.4
ls -la /nix/store/1pswxcjczpwlb6xwbh3i6g3m83xskx0g-codeql-2.4.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

codeql

Maintainer pings
cc @jollheef for testing.

Result of nixpkgs-review pr 115082 run on x86_64-linux 1

1 package built:

codeql


Produce readable version of error codes

Stubbing out an issue for this, see https://github.com/getsentry/symbolic/issues/375#issuecomment-829520432 for details.

@gabrielesvelto has volunteered to do this on top of https://github.com/luser/rust-minidump/pull/178


Simple Fortran test for --int64. Without math libraries.

Based on the approval https://github.com/scisoft/autocmake/issues/59#issuecomment-128119159 I am asking for this PR.

Thanks Miro. Why is the [static_linking] needed? And why is the PGI workaround needed here? I don't see any linking involved.

Simplified. Is the code  suitable for rebase and PR ?

Thanks!


TextInputFormatter gets wrong old value of a selection

TextInputFormatter gets wrong old value of a selection after character deletion when keyboardType is TextInputType.phone.
Example
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: TextField(
            controller: TextEditingController()..text = '123',
            inputFormatters: [SomeFormatter()],
            keyboardType: TextInputType.phone,
          ),
        ),
      ),
    );
  }
}

class SomeFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    print(oldValue);
    return newValue;
  }
}

Steps to reproduce: run example, tap on text field, press backspace ones
Expected result: TextEditingValue(text: ┤123├, selection: TextSelection(baseOffset: 3, extentOffset: 3, affinity: TextAffinity.upstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
Actual result: TextEditingValue(text: ┤123├, selection: TextSelection(baseOffset: 2, extentOffset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))
Tested on version 1.26, probably reproduced since version 1.23.

Flutter Doctor
[√] Flutter (Channel dev, 1.26.0-17.2.pre, on Microsoft Windows [Version 10.0.19041.746], locale ru-RU)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.5.2)
[√] Android Studio (version 4.1.0)

Hi @siqwin
Thanks for filling, this doesn't reproduce on the stable channel, the result is expected, however, it reproduces on 1.26  channels.

code sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: TextField(
            controller: TextEditingController()..text = '123',
            inputFormatters: [SomeFormatter()],
            keyboardType: TextInputType.phone,
          ),
        ),
      ),
    );
  }
}

class SomeFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(
      TextEditingValue oldValue, TextEditingValue newValue) {
    print(oldValue);
    return newValue;
  }
}

stable
[+73987 ms] I/flutter ( 6564): TextEditingValue(text: ┤123├, selection: TextSelection(baseOffset: 3, extentOffset: 3, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))

beta, dev & master
[+1307 ms] I/flutter ( 7390): TextEditingValue(text: ┤123├, selection: TextSelection(baseOffset: 2, extentOffset: 2, affinity: TextAffinity.downstream, isDirectional: false), composing: TextRange(start: -1, end: -1))

flutter doctor -v
[✓] Flutter (Channel stable, 1.22.6, on macOS 11.2 20D64 darwin-x64, locale en-GB)
    • Flutter version 1.22.6 at /Users/tahatesser/Code/flutter_stable
    • Framework revision 9b2d32b605 (2 weeks ago), 2021-01-22 14:36:39 -0800
    • Engine revision 2f0af37152
    • Dart version 2.10.5

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.4)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.53.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0

[✓] Connected device (2 available)
    • Android SDK built for x86 (mobile) • emulator-5554             • android-x86 • Android 10 (API 29) (emulator)
    • Taha’s iPad (mobile)               • 00008020-000255113EE8402E • ios         • iOS 14.4

! Doctor found issues in 1 category.

[✓] Flutter (Channel beta, 1.26.0-17.3.pre, on macOS 11.2 20D64 darwin-x64, locale en-GB)
    • Flutter version 1.26.0-17.3.pre at /Users/tahatesser/Code/flutter_beta
    • Framework revision 4b50ca7f7f (11 hours ago), 2021-02-04 19:44:27 -0800
    • Engine revision 2c527d6c7e
    • Dart version 2.12.0 (build 2.12.0-259.8.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.53.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0

[✓] Connected device (3 available)
    • Android SDK built for x86 (mobile) • emulator-5554             • android-x86    • Android 10 (API 29) (emulator)
    • Taha’s iPad (mobile)               • 00008020-000255113EE8402E • ios            • iOS 14.4
    • Chrome (web)                       • chrome                    • web-javascript • Google Chrome 88.0.4324.146

• No issues found!

[✓] Flutter (Channel dev, 1.26.0-17.2.pre, on macOS 11.2 20D64 darwin-x64, locale en-GB)
    • Flutter version 1.26.0-17.2.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision 79b49b9e10 (2 days ago), 2021-02-03 15:33:39 -0800
    • Engine revision 2c527d6c7e
    • Dart version 2.12.0 (build 2.12.0-259.8.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.53.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0

[✓] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554             • android-x86    • Android 10 (API 29) (emulator)
    • Taha’s iPad (mobile)               • 00008020-000255113EE8402E • ios            • iOS 14.4
    • macOS (desktop)                    • macos                     • darwin-x64     • macOS 11.2 20D64 darwin-x64
    • Chrome (web)                       • chrome                    • web-javascript • Google Chrome 88.0.4324.146

• No issues found!

[✓] Flutter (Channel master, 1.26.0-18.0.pre.210, on macOS 11.2 20D64 darwin-x64, locale en-GB)
    • Flutter version 1.26.0-18.0.pre.210 at /Users/tahatesser/Code/flutter_master
    • Framework revision a77388e670 (8 hours ago), 2021-02-04 22:51:04 -0800
    • Engine revision b04955656c
    • Dart version 2.13.0 (build 2.13.0-0.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.53.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.19.0

[✓] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554             • android-x86    • Android 10 (API 29) (emulator)
    • Taha’s iPad (mobile)               • 00008020-000255113EE8402E • ios            • iOS 14.4
    • macOS (desktop)                    • macos                     • darwin-x64     • macOS 11.2 20D64 darwin-x64
    • Chrome (web)                       • chrome                    • web-javascript • Google Chrome 88.0.4324.146

• No issues found!

Thamk you

This is related to the change made to RenderEditable._handleDelete in https://github.com/flutter/flutter/commit/58081821ab8f0f56a1e4c21da61203fcd0ef2f13
@chunhtai

The commit for the request is https://github.com/flutter/flutter/commit/b0d4d4485310bf87bd67c8f1b99f348403ecdd99

I'd rather not pick this over to the beta branch for 2.1; it's a pretty big code change and refactor. @chunhtai and @HansMuller WDYT?

This is causing a regression on https://github.com/flutter/flutter/issues/77855, we should hold off the cherry picking


Component updated every 16ms.

setState in MenuContext, which is called using controller when Menu is updated refresh the state again, which ends in a infinite loop of setState.

// Options haven't changed, no need to re-register.
if (this._options[name] === options) {
        return;
}

The function will always register since options are objects and the condition will always return false.

@ncnlinh  Thanks for reporting. Just published `0.19.0 that solves this issue.

I am facing the same issue after updating to 0.20.0 .


Accessing deployed database without token is confusing

Feature Request
What feature are you missing?
When following Quick start guide I've deliberately chosen template "typescript + auth" instead of recommended "basic" as I knew I am going to need both of those. Unfortunately, the guide did not account for that so after everything is started and I've navigated to http://docker:4466/prisma/dev (I love there is the playground right away) there was no clear evidence of any issue except in Schema tab there was no schema so I could not run any queries.
At this point, I wasn't really sure what's wrong and if I've misunderstood some part of the setup. Only later trying to open the dev console and after refresh seeing it's missing a token. And once again I wasn't really sure where to get one until I asked on the Slack that I need to run prisma token.
It's kinda funny now seeing that if I would have followed to the last point of the quick start guide, I would have started yarn dev and everything would be working right away without messing with a token.
How could this feature look like in detail? Tradeoffs?
The guide cannot probably account for impatient people like me. I was too excited and wanted to see it's working and then giving up seeing it's not. Perhaps the actual mention of the url where database is running is misleading there.
However, the playground should definitely provide more feedback on errors during initial schema introspection instead of just silently sitting there. I am not sure about add there hint about using prisma token since it's more of a generic software.

Thanks a lot for the feedback @FredyC and (again) sorry for the delay! I'm closing this issue as we have restructured our entire quickstart experience in the meantime.


Jupyter Notebook does not autocomplete brackets or parenthesis

Bug: Notebook Editor, Interactive Window, Python Editor cells

Steps to cause the bug to occur

Start a new notebook withing vscode

Actual & Expected behavior

Your Jupyter and/or Python environment
Please provide as much info as you readily know

Jupyter server running:                       Local
Extension version:                               22019.11.42782-dev
VS Code version:                                1.39
Setting python.jediEnabled:               true | false
Python and/or Anaconda version:     3.7.4
OS:                                                      Mac
Virtual environment:                          conda

Developer Tools Console Output

Thanks for the bug. This is likely an editor setting in VS code that we're not honoring at the moment.

Validated. Used cascadia code for ligatures and tested with the editor auto close bracket setting.


Update README.md

Libsass now allow us to add the missing compact and expanded output styles.

Thanks @antleblanc


Make storeRetained ordered using queues and bulk operations

This fixes #27 but I think it is a performance killer. @mcollina let me know what you think.
Whitout this PR connected clients will not receive all packets that is equally bad.

@mcollina Any thoughts ?

@mcollina Should be ok now

@mcollina I think it should be added as a test in abstract.js of aedes-cached-persistence

Also I don't understand If you mean add the entire example as a separetd file or create a test based on that one. Anyway the best solution is to add it in the generic persistence repo in order to make sure all other persistences (and new one in future) will get that test

We need a test based on that example.
Adding it to aedes-persistence is perfect.

@mcollina Ok, can you merge this pr and release an update? I will open an issue on aedes-persistence

I would prefer to release once we have a test that proves that the bug is solved.

@mcollina done https://github.com/mcollina/aedes-persistence/pull/37

that test fails here because of null/undefined issue, would you mind to fix that?

I’m not on my laptop right now, will try to find some time later or I will do it Monday sorry
Daniel

On 10 Jan 2020, at 19:35, Matteo Collina<EMAIL_ADDRESS>wrote:

that test fails here because of null/undefined issue, would you mind to fix that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@mcollina Seems the problem was the test itself and not related to this. Check my new PR to aedes-persistence https://github.com/mcollina/aedes-persistence/pull/38

@mcollina Everything works on my side, seems like that travis is not taking aedes-persistence 7.2.1

@mcollina I confirm that trevis is using aedes-persistence 7.2.0 instead of latest 7.2.1 this is why tests are failing

I had to clear travis caches

@mcollina Could you merge this now? Everything should be ok


Added Pbr and PbrWorkflow Python interfaces

Signed-off-by: ahcorde<EMAIL_ADDRESS>🎉 New feature
This PR is part of this mete ticket https://github.com/ignitionrobotics/sdformat/issues/931
Summary
Added Pbr and PbrWorkflow Python interfaces
Test it
from sdformat import Pbr, PbrWorkflow

pbr = Pbr()
pbrWorkflow = PbrWorkflow()

Checklist

[x] Signed all commits for DCO
[x] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[x] codecheck passed (See contributing)
[x] All tests passed (See test coverage)
[x] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

Codecov Report

Merging #994 (a298677) into main (bb84733) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #994   +/-   ##
=======================================
  Coverage   66.66%   66.66%
=======================================
  Files           2        2
  Lines          27       27
=======================================
  Hits           18       18
  Misses          9        9

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bb84733...a298677. Read the comment docs.


Simple preprocessing script to fix common annotation mistakes before tree validation

When I run validate_trees.py, I frequently get errors due to the following low-level annotation mistakes:

Making indents with \t rather than space characters
Trailing whitespace at the end of lines

To fix these mistakes automatically, I've found it helpful to run this preprocessing script on my .cgel annotation files prior to running validate_trees.py. Submitting for your consideration!

Cool. What is your editor setup by the way? I edit .cgel files in Python mode (with 4-space indents).

Ah, I've been editing in Sublime Text in Lisp mode!

May I suggest renaming this to something more specific, e.g. cleanup_tree_whitespace.py?


Multi-volume Rar streams

I'm attempting to read the contents of multi-volume Rar archive. The archive is never written to disk so I need to read them as streams. I do the following steps.
1: Declare a dictionary, rather than List, simply for ease of ordering/sorting.
var rd = new Dictionary<string, Stream>();
2: Populate the dictionary.
2.5: Ensure that the streams are ordered. For example:
file.part1.rar
file.part2.rar
file.part2.rar
or
file.rar
file.r00
file.r01
3: Open archive
var ra = RarArchive.Open(rd.Values.AsEnumerable());
From what I've read it is supposed to work with this procedure. However, it does not work.
ra.WriteToDirectory(@"C:\test\"); Produces nothing and neither does
foreach (var e in ra.Entries)
    {
          e.WriteToDirectory(@"C:\test\");
          //or
          var fs = new FileStream(@"C:\test\" + e.Key, FileMode.Create, FileAccess.Write);
          e.WriteTo(fs);
          fs.Close();
    }

If I open the archive with only the first volume with ArchiveFactory
var ra = ArchiveFactory.Open(rd.Values.First());
It works, for the whole files in the first volume. I can successfully use them and write them to disk.
What am I missing to be able to read the whole archive? Is this intended behavior or a bug?

It does work.  Here's a relevant test: https://github.com/adamhathcock/sharpcompress/blob/master/test/SharpCompress.Test/Rar/RarArchiveTests.cs#L191
I would think it's because Dictionary.Values.GetEnumerator doesn't return any guaranteed order.

Thanks for the reply. My issue was a bit more embarrassing though, the streams' position was at the end.
It works fine now, with the generic collections that I have tried, List/Dictionary/SortedDictionary/OrderedDictionary etc. Extracts even if it's out of order! but split-files are understandably split, heh.
Thanks for a nice library.


Validate correct opcode uses of OpFunction

Filed Khronos SPIR-V issue 352
Updated bad tests
Added new test

Rebased, squashed and committed as 8cb949ad3455ec767583bfe968de1e726f52fe85


Dev tools support?

I can't seem to get the RN dev tools appearing when using the fragment approach, is this something that is supported by this library? I'm doing the same approach that works for a standard RN activity add to AndroidManifest.xml:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application ...
...
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>

but it doesn't do anything

@inakianduaga Yes you are able to do that. We unfortunately forgot to add it to the example app so I'll try and submit a PR in the next few days to show how.
All you need to do is override your Activity's onKeyUp method and call into the ReactFragment's method https://github.com/hudl/react-native-android-fragment/blob/master/react-native-android-fragment/src/main/java/com/hudl/oss/react/fragment/ReactFragment.java#L235
We were hoping to minimize as many calls in the Activity as possible but some things we couldn't get around, unless others know of an easier way.
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        boolean handled = false;
        Fragment activeFragment = getSupportFragmentManager().findFragmentById(R.id.container);
        if (isReactNativeFragment(activeFragment)) {
            // isReactNativeFragment is a helper method to determine if it can be casted to ReactFragment
            handled = ((ReactFragment) activeFragment).onKeyUp(keyCode, event);
        }
        return handled || super.onKeyUp(keyCode, event);
    }


Does not export formatted text

I have a cell with the visible value having a partial strike through
£99 £55
There's no way to extract the formatted text, instead the value is retrieved as
£99 £55

In outline it seems like a change in tools.getRowData() would work.
If cellType is STRING and cell.getRichStringCellValue().numFormattingRuns() isn't 0, then build a HTML formatted string from the results of workbook.getFontAt(rich.getFontOfFormattingRun(n)) and the helps in HSSFRichTextString.
Hide the extra work behind a boolean in the call to read() so people who don't care about the format of the cell can get back just the raw text.
Someone must already have written such a parser...

Formatting is really just a visual layer on top of the data values, so to my mind it's mostly only appropriate when outputting to a spreadsheet object that will be viewed in Excel or something else that can display it.
If you're going the other way and reading into a query, then I think it's reasonable to expect you'll just get the raw values without formatting.
I take your point with your strikethrough example, but strictly speaking that data should be structured without relying on formatting if it needs to be portable. An option to somehow parse and mark-up formatted values might be useful in cases like this, but frankly it does sound quite tricky.

Yes, it's for input from Excel, and the raw text is a good default. People are editing the spread sheet, and we can't relie on them to always enter structured data, because people :-)
I have a mockup mostly working locally, I think. Just need to get my head around HSSFColor and then it'll return cell values as "£99 £55" (or what ever CSS styles are need to represent the formatting).
It's not that bad, Most of the work is finding the formatted ranges.
For my ultimate aim this is OK, and I'll hide it behind a new option to read().
I assume you'd still be happy to merge the feature ?

I'd need to see how it worked I think. I'm still a bit doubtful about the idea of "styles" post-read. It's making an assumption that what you read the data into will understand the CSS. Databases obviously won't. If you're reading into HTML or expecting the database to output to a browser later, then it makes more sense of course.
Maybe ok as an option, but too many options can lead to bloated, overly-complex software. Happy to consider it though. I can certainly see the use case.

See #60


Combining --config and --in-place to resolve issues does not use configuration

I run the following command and everything is reported as "OK" :
docformatter \
	--pre-summary-newline \
	--wrap-descriptions 0 \
	--wrap-summaries 120 \
	--make-summary-multi-line \
	--in-place \
	--recursive \
	.

Converting to the following:
docformatter \
	--in-place \
	--recursive \
	--config setup.cfg \
	.

And using setup.cfg:
[tool.docformatter]
recursive = true
wrap-descriptions = 0
wrap-summaries = 120
make-summary-multi-line = true
pre-summary-newline = true

I get many changes mostly ignoring make-summary-multi-line.
When I provide this parameter again in combination to --config, then fixes have the newlines again, but not the wrap-summaries = 120 (use default instead).
Running the same command with --config and replacing --in-place by --check reports everything is "OK" again, so this one considers the configuration file.

Update
Seems to be an issue with [tool.docformatter].
I replaced the section by [docformatter] and it works as expected.
The doc is misleading for setup.cfg.

This sounds like a documentation only issue.  There are two pieces of information missing or in error in the current documentation.

Command line arguments take precedence over configuration file values.
If using setup.cfg, the [docformatter] heading is the correct heading.