Non-breaking space character isn't honored when using WidgetSpans

Steps to reproduce
Use the example code to progressively constrain the available space for the text until there's not enough room to fit the icon image on the same line as the text before it.
Flutter version:
Flutter 3.19.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 54e66469a9 (4 weeks ago) • 2024-04-17 13:08:03 -0700
Engine • revision c4cd48e186
Tools • Dart 3.3.4 • DevTools 2.31.1

Expected results
The text splits such that the word before the icon image moves to the next line, along with the icon image.
Actual results
Only the icon image moves to the next line.
Code sample
Code sample
// ignore_for_file: missing_provider_scope
import 'package:flutter/material.dart';

void main() {
  runApp(
    const MaterialApp(
      home: _IconWrapDemo(),
    ),
  );
}

class _IconWrapDemo extends StatefulWidget {
  const _IconWrapDemo();

  @override
  State<_IconWrapDemo> createState() => _IconWrapDemoState();
}

class _IconWrapDemoState extends State<_IconWrapDemo> {
  int _bottomNavIndex = 0;
  double _constrainingPadding = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _buildContent(),
      bottomNavigationBar: _buildBottomNavBar(),
    );
  }

  Widget _buildContent() {
    return Column(
      children: [
        Expanded(
          child: Padding(
            padding: EdgeInsets.symmetric(horizontal: _constrainingPadding),
            child: Container(
              width: double.infinity,
              height: double.infinity,
              color: const Color(0xFFEEEEEE),
              child: Center(
                child: _bottomNavIndex == _iconMode //
                    ? _buildTextWithIcon()
                    : _buildTextWithEmoji(),
              ),
            ),
          ),
        ),
        Slider(
          value: _constrainingPadding,
          min: 0,
          max: 100,
          onChanged: (newValue) {
            setState(() {
              _constrainingPadding = newValue;
            });
          },
        ),
        const SizedBox(height: 48),
      ],
    );
  }

  Widget _buildTextWithIcon() {
    return const Text.rich(
      TextSpan(
        text: "Hello, world. This is long text that wraps.\u{00A0}",
        style: TextStyle(
          fontSize: 24,
        ),
        children: [
          WidgetSpan(
            child: Icon(Icons.image),
          ),
        ],
      ),
    );
  }

  Widget _buildTextWithEmoji() {
    return const Text(
      "Hello, world. This is long text that wraps.\u{00A0}🫠",
      style: TextStyle(
        fontSize: 24,
      ),
    );
  }

  Widget _buildBottomNavBar() {
    return BottomNavigationBar(
      currentIndex: _bottomNavIndex,
      onTap: (newIndex) => setState(() {
        _bottomNavIndex = newIndex;
      }),
      items: const [
        BottomNavigationBarItem(
          icon: Icon(Icons.image),
          label: "Icon",
        ),
        BottomNavigationBarItem(
          icon: Icon(Icons.text_fields),
          label: "Emoji",
        ),
      ],
    );
  }
}

int _iconMode = 0;
int _textMode = 1;

Screenshots or Video

Screenshots / Video demonstration
This video demonstrates the correct behavior of a non-breaking space with an emoji in the text, as compared to the broken behavior of a widget span that displays an icon image, which breaks the text at the wrong plae.
https://github.com/flutter/flutter/assets/7259036/d44246dc-41c4-4c78-935e-4671f5eccfc5

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Flutter 3.19.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 54e66469a9 (4 weeks ago) • 2024-04-17 13:08:03 -0700
Engine • revision c4cd48e186
Tools • Dart 3.3.4 • DevTools 2.31.1

CC @justinmc @LongCatIsLooong

Reproducible using the code sample provided above.

flutter doctor -v
[!] Flutter (Channel stable, 3.22.0, on macOS 14.4.1 23E224 darwin-arm64, locale en-GB)
    • Flutter version 3.22.0 on channel stable at /Users/nexus/dev/sdks/flutter
    ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5dcb86f68f (5 days ago), 2024-05-09 07:39:20 -0500
    • Engine revision f6344b75dc
    • Dart version 3.4.0
    • DevTools version 2.34.3
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode-15.3.0.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2023.1)
    • Android Studio at /Users/nexus/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 17.0.7+0-17.0.7b1000.6-10550314)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5)
    • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 77.2.2
    • Dart plugin version 232.10286

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

[✓] Connected device (6 available)
    • Pixel 7 (mobile)                • adb-28291FDH2001SA-5Lv71w._adb-tls-connect._tcp. • android-arm64  • Android 14 (API 34)
    • Nexus (mobile)                  • 00008020-001875E83A38002E                        • ios            • iOS 17.4.1 21E236
    • Dean’s iPad (mobile)            • 00008103-000825C811E3401E                        • ios            • iOS 17.4.1 21E236
    • macOS (desktop)                 • macos                                            • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad                            • darwin         • macOS 14.4.1 23E224 darwin-arm64
    • Chrome (web)                    • chrome                                           • web-javascript • Google Chrome 124.0.6367.202

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 3.22.0-33.0.pre.5, on macOS 14.4.1 23E224 darwin-arm64, locale en-GB)
    • Flutter version 3.22.0-33.0.pre.5 on channel master at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 21177cced4 (4 hours ago), 2024-05-14 01:06:32 -0400
    • Engine revision 84687fe0f1
    • Dart version 3.5.0 (build 3.5.0-152.0.dev)
    • DevTools version 2.36.0-dev.5

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode-15.3.0.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

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

[✓] Android Studio (version 2023.1)
    • Android Studio at /Users/nexus/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 17.0.7+0-17.0.7b1000.6-10550314)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5)
    • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 77.2.2
    • Dart plugin version 232.10286

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

[✓] Connected device (6 available)
    • Pixel 7 (mobile)                • adb-28291FDH2001SA-5Lv71w._adb-tls-connect._tcp. • android-arm64  • Android 14 (API 34)
    • Nexus (mobile)                  • 00008020-001875E83A38002E                        • ios            • iOS 17.4.1 21E236
    • Dean’s iPad (mobile)            • 00008103-000825C811E3401E                        • ios            • iOS 17.4.1 21E236
    • macOS (desktop)                 • macos                                            • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad                            • darwin         • macOS 14.4.1 23E224 darwin-arm64
    • Chrome (web)                    • chrome                                           • web-javascript • Google Chrome 124.0.6367.202

[✓] Network resources
    • All expected network resources are available.

• No issues found!


SW-2806 Localize notification timestamps

Currently, the timestamps on notifications are rendered using MomentJS with a
fixed format string. Replace that with a component that renders a timestamp
using the browser's built-in Intl.DateTimeFormat class. Since it's not possible
to add custom locales to Intl, the component has some special-case code for
the gibberish locale that can be used to test that dates are in fact localized.
Timestamps are rendered in the user's time zone, if one is set.
The default US English date format is similar to the one we were using before,
but not identical.

Old: January 21st 2023 at 12:14:54 am
New: January 21, 2023 at 12:14:54 AM

Adding a new component for this seemed like the best way to encapsulate it, but maybe it's overkill?

Adding a new component for this seemed like the best way to encapsulate it, but maybe it's overkill?

New component sounds great here!


Azure App Service Cluster Provider

First of all. thank you for this wonderful project!
For Elsa 3, we are using Proto.Actor as an option for the workflow runtime which works beautifully.
I am currently looking for a solution that allows us torun the Proto.Actor runtime implementation on Azure App Services and taking advantage of its ability to scale out into multiple nodes/instances.
It is my understanding that one would have to write a custom implementation of IClusterProvider to listen for changes (e.g. when instances are added or removed from the Azure app Service as it scales out or in).
If my understanding outlined above is correct, then I will get something started short-term, and if there's any interest, I will happily contribute the provider to this repo (or whatever repository is most appropriate for that).
If anyone has worked on this already and is willing to share, or if someone has any quick pointers to get going (for example, how to listen for Azure App Service scaling events from a .NET application), or anything else, that would be fantastic.
Last but not least, if anyone is interested in doing this as a paid project, please reach out to me directly at<EMAIL_ADDRESS>or sfmskywalker on Discord.

Hi Spike,
The nodes in a cluster need to be individually addressable and you need to be able to establish gRPC connections between them. Is this possible with Azure App Service?

Hi Marcin,
Thank you for the info!
Frankly, I do not know if this is the case, but I will find out and come back with an update here.

@marcinbudny Question: assuming this is possible (addressable + gRPC supported), what might an implementation look li,e, do you have an idea? Understanding this might help me find the answer to these questions by creating a test application to do some tests from within.

In essence, what cluster provider does is:

It registers current host as cluster node. E.g. with Consul this means adding a service entry to Consul. With K8S it means adding labels on the pod for other pods to detect new cluster node. With App Service - I'm not sure. Maybe you just assume all instances are cluster nodes.
It then monitors any changes - nodes entering and leaving cluster. It sends the updates (with proper address of the new nodes!) to MemberList.
Cluster + Remoting make sure that connection is established to any new nodes entering the cluster.
On shutdown, it deregisters current node.

Take a look at Consul implementation, it is rather straightforward and easy to reason about.

IIRC. it is not possible to run clusters on AppServices due to various limitations.
e.g. one instance may not communicate with another instance of the same service.
And I believe AppServices also lack any public API to query the active nodes.
Azure Container Apps should be a better choice, and I know that MS Orleans have some demo for this.
We could probably copy-paste most of that.

Azure Container apps could be a great alternative to K8 and App Service. Will check the Orleans demo 👍🏻

I attempted to get this working a while back and also ran into the limitation of instance discovery - you're better off going the container route. Also, Azure App Services have only just received preview support for gRPC as of September (see here).
Hangfire for example centralizes its instance/host list in a cache (Redis, SQLServer etc.) alongside other operational data using a heartbeat-based system so maybe an approach like that could work? Definitely nicer to have instances talk to each other directly but Azure App Services are quite limited.

@rogeralsing Do you happen to know where to find the MS Orleans demo by any chance? We've been looking for it, but we didn't get much further than learning about their IMembershipTable abstraction and its various implementations.
@jammehcow Depending on our findings with Azure Container Apps, we might try and do a custom cluster provider that uses e.g. Redis as a central store and let each app instance register itself (assuming that's how it would work)
@marcinbudny Thanks for the clear step by step description, that's very helpful.

Hi everyone,
I am currently implementing Azure Container Apps cluster provider by using the new sdk which is in preview. There is one issue I couldn't find a workaround yet. The issue is about registering the member as it is needed for Gossip Protocol. Please see this for the issue: https://github.com/microsoft/azure-container-apps/issues/521
I checked Orleans implementation but I couldn't quite understand it. They were using azure table storage to integrate azure container apps somehow. So I could not get an idea from their implementation as I'm using Azure Container Apps SDK. I don't know what kind of design Orleans is using but it doesn't look like gossip protocol from Proto.Actor.
Can you please check the issue I'm having in the GitHub link I provided and suggest a solution if you can think of any? Thanks!

Solved the issue I mentioned by using the default environment variables of azure container app. There are plenty of environment variables including revision name and replica name in the running instance in azure container apps. You can use them to access the replica to update the tags which are needed by proto actor cluster provider interface.

@gurkanguran Great work!
@rogeralsing would you consider accepting a PR adding a cluster provider for Azure Container Apps?

Looks like we can close this now that @gurkanguran 's PR is merged 🎉
Thanks for the wonderful help everyone!


Doesn't work with SingletonModel

It's not possible to extend admin with Import/Export class for SingletonModel.

There are mixins for that.


kubescape fails with [Error] failed to init host sensor

kubescape is failing with following error
[root@ssc-vm-g2-rhev4-2905 ~]# kubescape scan framework nsa -e kube-system,kube-public,calico-system,tigera-operator,kube-node-lease,calico-apiserver --enable-host-scan
ARMO security scanner starting
[progress] Installing host sensor
[Error] failed to init host sensor
Warning: failed to get policies from github release, loading policies from cache
Warning: failed to get config inputs from github release, this may affect the scanning results
[progress] Downloading/Loading policy definitions
open /root/.kubescape/nsa: no such file or directory

I am referring -> https://github.com/armosec/kubescape
[root@ssc-vm-g2-rhev4-2696 ~]# kubescape scan framework nsa --enable-host-scan
ARMO security scanner starting
[progress] Installing host sensor
[Error] failed to init host sensor
Warning: failed to get policies from github release, loading policies from cache
Warning: failed to get config inputs from github release, this may affect the scanning results
[progress] Downloading/Loading policy definitions

[root@ssc-vm-g2-rhev4-2696 ~]# kubescape scan
ARMO security scanner starting
Warning: Kubernetes cluster nodes scanning is disabled. This is required to collect valuable data for certain controls. You can enable it using  the --enable-host-scan flag
Warning: failed to get policies from github release, loading policies from cache
Warning: failed to get config inputs from github release, this may affect the scanning results
[progress] Downloading/Loading policy definitions

[root@ssc-vm-g2-rhev4-2905 ~]# kubescape download nsa/C-0001 -o nsa.json
Error: requires two arguments : framework/control /

[root@ssc-vm-g2-rhev4-2905 ~]# kubescape download framework nsa --output nsa.json
error: error getting: ControlID_RuleName from: 'https://github.com/armosec/regolibrary/releases/latest/download' ,error: HTTP request failed. URL: '/armosec/regolibrary/releases/download/v1.0.133/ControlID_RuleName', HTTP-ERROR: '404 Not Found', BODY: '

@swanand-gadre , hi!
We have been experiencing issues around the frameworks and controls in the last 18 hours (see https://github.com/armosec/regolibrary/actions/workflows/export.yaml) and they should've been fixed ~3 hours ago.
Do you still seeing these issues?

Thanks @slashben
It started working
But I am still seeing this error

[root@ssc-vm-g2-rhev4-2905 ~]# kubescape scan framework nsa -e kube-system,kube-public,calico-system,tigera-operator,kube-node-lease,calico-apiserver --enable-host-scan
ARMO security scanner starting
[progress] Installing host sensor
[Error] failed to init host sensor

@swanand-gadre , what is the type of your cluster? Is it a managed cluster? Do you have some policy engine in place? (like OPA-Gatekeeper or Kyverno)

Hi @slashben
Thanks for quick response.
I am using kubernetes cluster
Regarding policy engine, no I am not using policy engines.
I am closing this issue now, that I am able to scan
Regards
Swanand


New Wallet: Store Everything in SQLite

Store everything except for the private key and a small numbers of settings in SQLite and the rest in a "wallet" file (anything that can be re-created from the seed / private key goes in SQLite).

torba branch: https://github.com/lbryio/torba/pull/1/files
orchstr8 branch: https://github.com/lbryio/orchstr8/pull/5/files

This is done, everything is stored in SQLite.


cmd/go: check for import path collision in go build

What version of Go are you using (go version)?
go version go1.10.3 linux/amd64
Does this issue reproduce with the latest release?
Yes
Proposal: Raise a warning or an error at compile time if the import path of a local package matches the import path of package from the standard library.
This is prevents a fairly niche problem, namely collisions, but in practice the compile error that they produce remind of a declaration/syntax/code organization error so it's pretty hard to guess what went wrong.

When the collision happened I've got compile-time errors such as:

undefined: pkgname.XXXXXX".

Maybe a good compromise would be to check if "pkgname" matches the name of package library when these errors happen, and if that the case,  print a final error "No XXXXXX provided by standard library package pkgname"?

Perhaps so. I'm not sure how smart should the compiler errors get. /cc @mdempsky @randall77 @josharian

If we did this it would be in cmd/go instead of cmd/compile. But this is a legitimate thing to do, so I don’t think we should make it an error. Also, I have personally used vendored versions of modified stdlib packages to incorporate fixes and performance improvements that were not upstream yet.

As best I can tell, the issue is that @UsernameIsAlreadyTaken6 created a $GOPATH/src/foo/bar package; but then when they tried to use it, $GOROOT/src/foo/bar was used instead?
In practice, this doesn't happen because user import paths are rooted in a domain name, which contains a period, whereas stdlib packages don't contain periods. Maybe we should formalize that practice better with a vet or lint warning?

I thought naming my package "context" would be nice (I'm a newbie).. turns out it was not very nice.
I didn't use a domain name because it's a local project at the moment and deliberately adding a dummy domain would have been weird, but.. that's your call really.

If you tried to run "go install" in your context dir you get a good error:
$ cd $GOPATH/src
$ mkdir context
$ cd context
$ echo package context >c.go
$ go install
go install: no install location for /Users/rsc/src/context: hidden by /Users/rsc/go/src/context
$

(/Users/rsc/go is my $GOROOT.)
Maybe we should break "go build" too? I don't think we should make all builds trying to import the standard context break just because $GOPATH/src/context exists. And soon GOPATH will be gone anyway.

Seems like making go build and go install consistent in their error messages makes sense.

This came up again as the lack of an error leaks into downstream tooling and makes for a subpar user experience. See #53825. That was closed as a duplicate, but we may want to consider raising the priority of resolving this. Unclear who should do it, though.

does this mean each new package in the std library is breaking backwards compatibility?

No, given https://github.com/golang/go/issues/32819. As you correctly point out, without reserving dot-less import paths for the standard library, adding any new standard library package could potentially break users.


Add moments and entropy to truncated distribution

Codecov Report
Attention: Patch coverage is 87.93103% with 7 lines in your changes are missing coverage. Please review.

Project coverage is 82.82%. Comparing base (ebf3a96) to head (26bf291).

Files
Patch %
Lines

preliz/distributions/truncated.py
85.71%
5 Missing :warning:

preliz/distributions/distributions.py
75.00%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #373      +/-   ##
==========================================
+ Coverage   82.50%   82.82%   +0.32%
==========================================
  Files          60       60
  Lines        5486     5520      +34
==========================================
+ Hits         4526     4572      +46
+ Misses        960      948      -12

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add a new sample dynamic_alloc to test the new API

This patch adds a new sample to test a new API DetourAllocateRegionWithinJumpBounds that was introduced by #27.  I'll update the wiki after this PR is done.

Thanks. I've updated wiki.


release 5.3.4

prepare the 5.3.4 release

@legal90 there's a very strange bug that's being tracked down right now where it fails the first time then succeeds - did you try running kitchen converge twice? (not an ideal workaround, but appears to do the trick until we can get a fix out)

@scotthain Yes, i did. In chef-cookbooks/windows#553 confirmed that it fails only once, but works fine on the subsequent runs.
But unfortunately, in my case it's not an option. I run it via Chef-Solo provisioner in Packer (https://packer.io) for building AWS AMI, so the whole build fails because of the provisioner error :(

@legal90 ahh that's a bummer, sorry to hear that! I'm hoping we'll get a fix at some point soon, it's a really annoying bug.

@scotthain I've found why the subsequent run passes successfully. It happens because windows_zipfile is skipped here due to action :nothing:
https://github.com/chef-cookbooks/wix/blob/8ba8228e64069d3fc4492eca4b4924df510acee4/recipes/default.rb#L33
So that, the wix archive remains unpacked and C:\wix is not created while Chef Client run reports a success. That is crucial because such Omnibus builder node won't work.
If we remove the pre-cached wix311-binaries.zip file, then the remote_file resource will notify windows_zipfile and chef-cookbooks/windows#553 will appear again.
So, the subsequent run doesn't actually fix anything, it just hides the error by following a wrong scenario.
P.s. Let me know if you should move this discussion somewhere else to avoid an off-topic here.

@legal90 We found that yesterday as well! It should be resolved by https://github.com/chef-cookbooks/windows/pull/555 - try updating your windows cookbook.
@robbkidd since we know this is not an omnibus cookbook specific issue, feel free to continue your release whenever you have the cycles

I updated this PR with the additional cleanup I did and bumped things to 5.4.0.


[Request] <IP_ADDRESS>/logs/startux sorting

Can we sort this page alphabetically?? Its a PITA to find anything.
And some file details like size

+1 or sort by type (UAT, 1090, GPS)

+1.  +100 if I could.  I just now pulled logs for @cyoung.  What a pain it was.

The only way I can see to get this going is json.
Can we get a json array of files in the log folder.
we can parse with angularUI and list sort and filter. then we can build a link around each file .
I don't know how to do that in any timely manor but I know we could take that approach
Thoughts???

Don't bother too much with it, in the next release we'll be using a webserver (not Go webserver) to serve the webui files + logs. What you are requesting is a fairly standard feature of most webservers.

Great.

Any better?

Oh yes!

Accessible at http://<IP_ADDRESS>/view_logs. Linked also in the "Logs" tab of the main interface.

I have 796d0a2 but my /logs/ tab does not link to /view_logs.  And in /logs/ when I click on "SDR, AHRS, and GPS logs" I see the old-style listing of log files.

The first part is not intended behavior, the second part sounds like your browser may have cached the files.
Did you try going directly to the link? http://<IP_ADDRESS>/view_logs/

Yes, when I tried to go directly to the link, the next thing I saw in the browser window was the Web UI's "Status" tab.


testing out webtorrent api

We need also need to explore what APIs Webtorrent can offer. This might give us some ideas for improving yast design. For now trying out how webtorrent api do under the hood when provided with a magnet.

https://github.com/webtorrent/webtorrent-cli/blob/master/README.md


euphoria-flink: streaming word-count with time-sliding very slow

Executing a word-count like program - this is the simplest scenario to trace down the problem - against an Euphoria's Flink Streaming executor using TimeSliding windowing, reveals a huge shuffle overhead compared to an implementation of the same program using Flink's native Java API.
Experiment characteristics

Apart from the key, the actual "values" being shuffled (as intended by the programmer) are actually small (in both cases):

On native flink: it's a word (string)
On euphoria: it's just a long (the value to be reduced)

TimeSliding; the more windows the bigger Euphoria's overhead

Problem
Euphoria tries to implement a strategy such that the size of the actual values being shuffled gets reduced. This is, instead of shuffling RBK's (and RSBK's) original input elements, before the shuffle phase it extracts the "values" (to be later reduced) and sends those for reduction (instead of the original input elements). The reasoning behind this choice is to send the typically smaller values instead of the bigger input elements. However, due to windowing being applied to the operator's original input elements, it also needs to extract the original input elements' windows before sending them together with the value across the wire. The more windows there are for a single value, the bigger the overhead of data being shuffled.
The more data is being shuffled, the quicker network buffers get filled, which can lead to back pressure, thereby making the consumer side go slower. (To mitigate against back pressure, we can resize the network buffers at the cost of memory consumption.)
Our implementation of the idea to shuffle only values instead of the original input elements suffers under the following items:

If the "value" being shuffled isn't smaller than or equal size as the original input element, we're immediately introducing unnecessary overhead.
If the "value" being shuffled plus the necessary window information for the element isn't smaller than or equals size as the original input element, we're introducing unnecessary overhead. (note: this problem is not relevant when considering a partitioning schema by "window and key"; this is a potential but not-yet-implemented/explored reduce-by-key strategy.)
Users of the Euphoria API have no chance to express a preference for a particular strategy in regards to the shuffle.

What's to do next

[ ] Attempt to reduce the serialized size of window types natively provided by Euphoria

@vanekjar had a very nice idea about optimizing the TimeSliding windowing use-case: instead of creating many physical objects for each TimeInterval of the time slides, i.e. a HashSet<TimeInterval>, create one object which is able to lazily expand itself into these many window objects only when they are iterated - which for the RBK happens after the shuffle. the serialized form of such a "set of windows" can be of constant size independent of the number of windows presented

[ ] Declare what is good enough for us, i.e. it's fine to say "we don't care about word-count like reductions" and not further bother with the problem
[ ] Depending on the previous item, find a way to hint the executor for an alternative shuffle strategy (this doesn't necessarily have to be an easy-to-use feature, but it shall be possible.)

Conclusion
It is unclear whether the strategy currently implemented by Euphoria's streaming Flink executor is sufficient for most common use-cases. At best, we can say the strategy is not flexible to support use-cases where the original input element's size is not significantly different that the "value" being reduced. Further, from an API perspective users are not able to optimize for such use-cases (whereas users can optimize the opposite use-case in the Flink API - basically users of the Flink API can implement what Euphoria's streaming Flink executor does.)
Last but not least, the problem of this "reduce-by-key" strategy as detailed above, explains a significant part of the overhead measured under #14, which uses a benchmark with a "word-count" like reduction using TimeSliding.

Very nice explanation of the problem, @xitep. Is there any chance to recognize what shuffle strategy to use during runtime? I think that it could be possible, but I'm not sure if it is worth the complications it would bring into the implementation. In my point of view, a very simple solution would be not to apply to value-mapper before shuffle.
Is there any chance we could measure the impact of such a "simple" change?

The impact is considerable, of course! I just "hacked" the RBK to do windowing after the shuffle (see branch pete/flink-streaming-performance-experiments) and could reduce the execution time of the mentioned TimeSliding benchmark from ~40m down to ~25m. The amount of shuffle data went down from ~19.3GB to ~2.3GB (the TimeSliding windowing in this benchmark sets up 24 windows per element). (just for comparison: the same, native flink program executes in ~15minutes with 1.65GB shuffled data.)
In a test with Time windowing (i.e. always one window per element), I could see the amount of shuffled data going down from 4.2GB to (the expected) 2.3GB. However, I could not see any significant improvement to the execution time. This is more or less expected as the bottleneck with the TimeSliding windowing was introduced by the back-pressure due to filling network buffers too quickly. (just for comparison: the same, native flink program executes in ~15m with 1.65GB shuffled data; actually the same as with TimeSliding.)

That sounds to me like it would be beneficial to completely drop the value mapper before shuffle phase and to just shuffle the original elements. What do you think?

I would disagree with the latest idea of dropping the value mapper completely. When the value mapper is used there is great chance of element size reduction in most cases - it's some kind of field extraction or even remapping element to just a number (in case of word count).
My proposed solution would be:

Optimize the serialized size of Set<Window> which is shuffled along with each element. No need to shuffle all TimeInterval elements with time sliding windowing. These can be recomputed lazily just from 3 numbers startTime, endTime, slideSize as mentioned in the original description.

Don't enforce the usage of  value mappers in API builders. Usage of valueBy should be optional and considered as identity function by default.

When the default value mapper is used the runtime can decide to optimize and not to extract the window set before shuffle. Since the value mapper is identity in this case, windows can be extracted later after the shuffle.

The problem of this is that is all sounds like a classical premature optimization. There are many other questions that arise:

what about situations where user supplies user-defined windowing that emits large number of windows - there is no systematic way to overcome the performance drop in that case
AFAIK the valueBy is optional (or is intended to be), exactly as you write
when user specifies valueBy it is not because of the optimization, but because it is beneficial for the downstream processing - the function has to be applied, but the runtime can figure out where

If the value mapper is applied consistently after the shuffle, then the user can code the optimization himself - first do the value mapping in a separate MapElements operator and only after that do the stateful aggregation, which solves the problem for him. If euphoria executor does this optimization automatically, the user cannot do anything to prevent it.

i think, it's not that easy, unfortunately.
attached windowing forces us to transfer windows along the elements. hence, in more complicated programs, i.e. programs with two or more stateful operators in a flow, the savings of applying valueBy  only after shuffle are only clear to estimate for the very first stateful operator (with an explicit windowing strategy defined) consuming a "not yet windowed" dataset. followers of this first stateful operator have then to forward the original window further down the channel for the potentially next window assignment function. if there's a shuffle in between, we'll again be transferring windows.
to minimize the overhead of transferring windows or to avoid it entirely where it is not necessary, a flow specific analysis and translation of the DAG as a whole would be necessary. i don't think we can get away with translating operators one by one independently of each other to end up with a relatively straight forward translation layer while keeping the overhead small.

I agree, when it comes to attached windowing, then there is no other option than to (somehow) transfer the windows with the data. BUT, when user uses attached windowing, then the window label becomes part of the data itself (from a practical point of view), so the upper definition holds, windowing is still applied after the shuffle.
The question of minimizing the shuffle data then boils down to providing a way of crunching multiple windows into a single serialized data object. I can imagine that this would be a user supplied function. One of the implementations for sliding time windows could be as you have suggested. Nevertheless, it seems to me better not to do any stuff that is not obvious to the user and that he cannot control. At lease until there is some sort of deeper DAG analysis as you suggest.

closing this issue with the following remarks to re-act on all points we wanted to look at:

#66 introduced a remedy against the huge overhead per item on time-sliding windowing (or potentially other windowing strategies)
as of #53 users are able to hint the flink streaming executor to extract the value after shuffle
and, yes, we do care about word-count-like programs :) after all, they are actually not that rare


[BUG] System winget.exe dependency used even though UniGetUI not set to do so

Please confirm these before moving forward

[X] I have searched for my issue and have not found a work-in-progress/duplicate/resolved issue.
[X] I have tested that this issue has not been fixed in the latest (beta or stable) release.
[X] I have checked the FAQ section for solutions.
[X] This issue is about a bug (if it is not, please use the correct template).

UniGetUI Version
3.1.0 beta 1
Windows version, edition and architecture
Windows 11 Pro
Describe your issue
When running UniGetUI I get the popup:

but as you can see by the logs below, it is found.
The experimental setting is not enabled to use the system WinGet. Also, the %LOCALAPPDATA%\UniGetUI dir does not contain the file which (I believe) tells UniGetUI to use the system WinGet or not.
Steps to reproduce the issue
Before installing beta 1, I uninstalled beta 0 and deleted my %LOCALAPPDATA%\UniGetUI dir to have a clean start.
UniGetUI Log
[01/07/2024 16:24:26] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                      █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                      █ Name: Winget
                      █ Enabled: True
                      █ Found: True
                      █ Fancye exe name: winget.exe
                      █ Executable path: D:\Scoop\shims\winget.exe
                      █ Call arguments:
                      █ Version:
                      █   Naive WinGet CLI Version: v1.7.11261
                      █   Microsoft.WinGet.Client PSModule version:
                      █   Using Native WinGet helper (COM Api)

...

[01/07/2024 16:24:33] Dependency Microsoft.WinGet.Client was not found for manager Winget, installing...

Package Managers Logs
Manager Winget with version:
Naive WinGet CLI Version: v1.7.11261
Microsoft.WinGet.Client PSModule version:
Using Native WinGet helper (COM Api)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 01/07/2024 16:30:11
Process end time:   01/07/2024 16:30:11

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "D:\Scoop\shims\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 01/07/2024 16:30:15
Process end time:   01/07/2024 16:30:17

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 01/07/2024 16:30:15
Process end time:   01/07/2024 16:30:19

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

  Import-Module : The specified module 'Microsoft.WinGet.Client' was not loaded because no valid module file was found
  in any module directory.
  At line:1 char:1
  + Import-Module Microsoft.WinGet.Client
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ResourceUnavailable: (Microsoft.WinGet.Client:String) [Import-Module], FileNotFoundExcep
     tion
      + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

  Get-WinGetPackage : The term 'Get-WinGetPackage' is not recognized as the name of a cmdlet, function, script file, or
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
  again.
  At line:1 char:1
  + Get-WinGetPackage | Print-WinGetPackage
  + ~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Get-WinGetPackage:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 01/07/2024 16:30:16
Process end time:   01/07/2024 16:30:16

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 01/07/2024 16:30:17
Process end time:   01/07/2024 16:30:20

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : The term 'Write-Output' is not recognized as the name of a cmdlet, function, script file, or
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
  again.
  At line:1 char:1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

  Import-Module : The specified module 'Microsoft.WinGet.Client' was not loaded because no valid module file was found
  in any module directory.
  At line:1 char:1
  + Import-Module Microsoft.WinGet.Client
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ResourceUnavailable: (Microsoft.WinGet.Client:String) [Import-Module], FileNotFoundExcep
     tion
      + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

  Get-WinGetPackage : The term 'Get-WinGetPackage' is not recognized as the name of a cmdlet, function, script file, or
  operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
  again.
  At line:1 char:1
  + Get-WinGetPackage | Print-WinGetPackage
  + ~~~~~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Get-WinGetPackage:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

Return code: SUCCESS (0)

——————————————————————————————————————————

Relevant information
No response
Screenshots and videos
No response

After installing, is it showing up?

I have just fixed the .NET Tool Outdated, this was an issue whith .net being misdetected when it is not installed.
But the WinGet one didn't appear again, right?

No, WinGet is not thr requirement, but the WinGet PowerShell Module

Please try to install and check if it asks for it again

The issues you were facing should be fixed now

This option is old, and I have not removed it yet, but it has no effect.

System WinGet will always be used. In fact, bundled WinGet is still present for compatibility reasons with fetching package installer details, but once I can sort this issue out UniGetUI will not bundle WinGet anymore.


Fix uncovered issues

This proposal will have prop_id 13 and fix the following issues:

inability to claim from merkle tree airdrop
inability to pass proposals in ways other than express

IMPORTANT
For this proposal to pass, 66 % of ALL CARM TOKENS must vote yes. Every vote counts.

Class hash: 0x707093622c1c2e136ec3e35747b8368268094d4bb7e34c5347eafd5d2a0f6d3


Cancel Download function not working

Description:
The cancel() method in react-native-blob-util is not functioning as expected. When attempting to cancel an ongoing download, the download continues instead of being halted.
Steps to Reproduce:
Start a download using react-native-blob-util.
Attempt to cancel the download using the cancel() method.
Observe that the download continues despite the cancellation attempt.
Expected Behavior:
The download should be halted immediately upon calling the cancel() method.
Actual Behavior:
The download continues even after calling the cancel() method.
Environment:
Library Version: 0.18.6
React Native Version: 0.71.7
Platform: Android & IOS
Code Example:
       let DownloadDir = "Storage/to/Path"
        let fileName = Name + extension;
        let filePath = DownloadDir + fileName;
        let folderName = DownloadDir + Name;

        let options = {
            fileCache: true,
            addAndroidDownloads: {
                useDownloadManager: true,
                notification: false,
                path: filePath,
                description: "downloading...",
            },
            path: filePath,
        };

       const task = config(options)
            .fetch("GET", FILE_URL)
            .progress((received, total) => {
                const progress = Math.floor((received / total) * 100);
            })
            .then((res) => {
                console.log("res)
            })
            .catch((error) => {
                if (fs.exists(folderName)) {
                    fs.unlink(folderName);
                }
            });

        task.cancel((err) => {
          if (err) {
            console.error('Failed to cancel download:', err);
          } else {
            console.log('Download cancelled successfully');
          }
      });

@RonRadtke @pcardon Can you please check it once

Even I also facing the same issue. Kindly give the solutions for the same @pcardon / @RonRadtke

Hi,
I am also wanted to cancel the ongoing download. I have tried abortController and tried to abort/cancel the download but is also not working. I am also using react-native-blob-util. Please find the below code snippet I have tried.
import React, { useState } from 'react';
import { View, Button, Text, StyleSheet, PermissionsAndroid, Platform } from 'react-native';
import RNFetchBlob from 'react-native-blob-util';
const DownloadComponent = () => {
const [isDownloading, setIsDownloading] = useState(false);
const [downloaded, setDownloaded] = useState(false);
const [error, setError] = useState(null);
const [controller, setController] = useState(null);
const requestStoragePermission = async () => {
try {
if (Platform.OS === 'android') {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
{
title: 'Storage Permission Required',
message: 'App needs access to your storage to download files',
}
);
return granted === PermissionsAndroid.RESULTS.GRANTED;
}
return true;
} catch (err) {
console.warn(err);
return false;
}
};
const startDownload = async () => {
const hasPermission = await requestStoragePermission();
if (!hasPermission) {
setError('Permission denied');
return;
}
const abortController = new AbortController();
setController(abortController);
setIsDownloading(true);
setDownloaded(false);
setError(null);
RNFetchBlob.config({
fileCache: true,
path: RNFetchBlob.fs.dirs.DownloadDir + '/test-download.pdf',
})
.fetch('GET', 'https://example.com/test-download.pdf', null, abortController.signal)
.progress((received, total) => {
console.log('progress', received / total);
})
.then((res) => {
console.log('The file saved to ', res.path());
setDownloaded(true);
setIsDownloading(false);
setController(null);
})
.catch((err) => {
if (err.name === 'AbortError') {
console.log('Download cancelled');
} else {
console.error(err);
setError(err.message);
}
setIsDownloading(false);
setController(null);
});
};
const cancelDownload = () => {
if (controller) {
controller.abort();
}
};
return (

{isDownloading && Downloading...}
{downloaded && Download Complete!}
{error && Error: {error}}

);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
});
export default DownloadComponent;

Facing the same issue looking for solution

@TirumalReddy The confusion seems to stem from the fact that the cancel method exists on the fetch function in the react-native-blob-utils library, but you're trying to chain it to a promise result, which won't work.
Here is code snippet from docs:
let task = ReactNativeBlobUtil.fetch('GET', 'http://example.com/file/1')

task.then(() => { ...
})
        // handle request cancelled rejection
        .catch((err) => {
            console.log(err)
        })
// cancel the request, the callback function is optional
task.cancel((err) => { ...
})

@TirumalReddy The confusion seems to stem from the fact that the cancel method exists on the fetch function in the react-native-blob-utils library, but you're trying to chain it to a promise result, which won't work.
Here is code snippet from docs:
let task = ReactNativeBlobUtil.fetch('GET', 'http://example.com/file/1')

task.then(() => { ...
})
        // handle request cancelled rejection
        .catch((err) => {
            console.log(err)
        })
// cancel the request, the callback function is optional
task.cancel((err) => { ...
})

🎉This code works well for canceling the download. How can I implement resume functionality to continue downloading from where it left off?


Feature Request - Add support to add multiple Task List

Add support to add multiple Task List.
That way we can create task track time for each task.

This project is no longer active. The feature which might help you is the "tag" feature which allows you to add a tag to each task.


integration-test failed: ConsulCatalogSuite.TestSimpleConfigurationWithWatch

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you do?
I ran make test on the freshly cloned repo at the master branch.
I was hoping to see all the tests pass before I started coding.
What did you see instead?
FAIL: consul_catalog_test.go:237: ConsulCatalogSuite.TestSimpleConfigurationWithWatch

consul_catalog_test.go:276:
    c.Assert(err, checker.IsNil)
... value *fmt.wrapError = &fmt.wrapError{msg:"try operation failed: got status code 200, wanted 404", err:(*errors.errorString)(0xc001946350)} ("try operation failed: got status code 200, wanted 404"

What version of Traefik are you using?
Testing against...

Test ran with the method 1, using docker.
If applicable, please paste the log output in DEBUG level
No response

Hello,
it can be related to a timeout, so you have to add CI=1.
FYI: the tests are always run in our CI.

I tried CI=1 make test and know the K8sSuite.TestCRDConfiguration fail. Should I car or it can be due to something else and only the CI tests have to be checked ?

CI=1 only increases timeout, there are no other specific things for the CI.
The integration tests are required a lot of CPU and memory.
I recommend running only the tests that you need to run:
CI=1 TESTFLAGS="-check.f K8sSuite.TestCRDLabelSelector" make test-integration


Update version to 1.0.83-6 on staging

Update version to 1.0.83-6

🚀 Deployed to production by @isagoico in version: 1.0.85-9 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Packhuis de Zwijger : Presentation and Prep

Definition of done:

Make a post on linkedin about Chris Speaking ( Canva)
Try to get people to join
Read into liquid democrasy ;
(audiobook)

'31st of januari;


Notify of unneeded exceptions

Let the user know if they have extra, unneeded exceptions in their .nsprc file.
Use case:

library added as dependency
vulnerability disclosed in library
nsp exception added for library in .nsprc file
library vulnerability patched
user forgets to remove unneeded exception from .nsprc file

that's an interesting idea.. i'll toss it in the feature pile and we'll see what we can come up with. thanks!


Dynamic polygon remover

Description

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Was this merged in race common already?

No these are separate changes in Autoware

Was this merged in race common already?

Approved


Decompilation takes too much memory

The file I'm decompiling is kinda publicly available but I'm not sure how to share it with devs because the people who have written the code probably don't want it to be decompiled in the first place.
I'd be happy to send the file to a dev via mail or some other means.
I'm running: ./decompiler.sh <path/to/dll>
Which at some point runs: llvmir2hll -target-hll=c -var-renamer=readable -var-name-gen=fruit -var-name-gen-prefix= -call-info-obtainer=optim -arithm-expr-evaluator=c -validate-module -llvmir2bir-converter=orig -o [...].dll.c [...].dll.c.backend.bc -enable-debug -emit-debug-comments -config-path=[...].dll.c.json
Once it reaches the step below, it slowly starts eating memory until at one point it quickly goes from 8GB -> 32 GB and then get's killed by docker.
How would I help debugging this? My guess would be it's running into some infinite depth loop.
Running phase: optimizations [normal] ( 52.09s )
 -> running RemoveUselessCastsOptimizer ( 52.09s )
 -> running UnusedGlobalVarOptimizer ( 52.63s )
 -> running DeadLocalAssignOptimizer ( 53.80s )
 -> running SimpleCopyPropagationOptimizer ( 65.16s )
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `v1_1002017b = (v3_10020166 + 1)` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `v1_1002031f = (v3_1002030a + 1)` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `v1_100200c9 = (v3_100200b4 + 1)` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `v1_10020f22 = (v3_10020f0d + 1)` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `goto 0x10020eca` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `eax_global_2d_to_2d_local = v3_10021abe` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `eax_global_2d_to_2d_local = v3_100224d9` -> skipping this edge
Warning: [NonRecursiveCFGBuilder] there is no node for an edge to `v10_1002391d = v2_1002386d` -> skipping this edge

Can you upload your dll somewhere? Looks interesting.

https://www.file-upload.net/download-12866451/2mbTurnsInto32Gigs.dll.html
Def. worth looking into in terms of denial of service. I've renamed the original dll, like I said, this isn't from an open source project or anything so I'm not sure regarding the legality of decompiling it.

Thank you for the report. We will investigate it.  I'm wondering if this is a larger design issue; formerly an analyst would be using RetDec on a remote server via the API, while with the open source release most analysts are running directly on their own low powered desktops/laptops.
That being said, somebody (or me eventually) should probably generate a couple flame graphs to check if there's any easy problems to squash.

With the testing I did yesterday I can already say that turning off optimizations (-no-opts) prevents this bug from occurring. Seeing that the optimizers running are printed, the bug would be most likely in the SimpleCopyPropagationOptimizer.

We are aware of the memory/speed issues when decompiling certain binaries. In most cases, they are caused either by invalid instruction decoding (when e.g. data are decompiled as code) or simply by the size of the code that is being decompiled (the larger the binary is, the slower and more memory-intensive its decompilation may be). Many cases are already reported in our original bug tracker, which we want to migrate into GitHub.
We plan to provide more information concerning these performance issues. Please, bear with us. There are a lot of things that still need to be done (fix of build issues on different systems, migration of our old bug tracker, wiki pages, documentation, tests, continuous integration, dependency management, roadmap, etc.). We try to do our best.
Until then, I would just like to point out that in most cases, these issues are NOT caused by a single, particular bug somewhere it the decompiler. Rather, improvements in multiple parts of the decompiler will be needed.

After 20 hours it crashed after having gone through 110GB of RAM: https://i.imgur.com/KgN8AR0.png

Yep, removing those from the decompile.sh as --backend-no-opts did nothing makes it finish in 90min and 10GB RAM.

It breaks at 2mb? I've got a binary that's 45 megabytes... what are my options? I've tried using --backend-no-opts and it'll just get stuck at Running phase: Input binary to LLVM IR decoding ( 1.48s )

@mhsjlw:

It breaks at 2Mb?

It depends on the input binary. Many times, even larger binaries can be decompiled without a problem.

I've got a binary that's 45 megabytes... what are my options?

Generally, when a decompilation takes too much time or consumes too much memory, you can perform a selective decompilation, which will decompile only a part of the input file. For example, by running
decompile.sh FILE --select-functions func1,func2 --select-decode-only

the decompiler will decode and decompile only functions named func1 and func2. However, note that this works only when the input executable has symbol names in it. If it does not, you will have to specify address ranges to be decompiled via e.g.
decompile.sh FILE --select-ranges 0x404000-0x405000 --select-decode-only

This will decompile everything between addresses 0x404000 and 0x405000.

I've tried using --backend-no-opts and it'll just get stuck at Running phase: Input binary to LLVM IR decoding ( 1.48s )

This parameter only applies to the back-end phase (llvmir2hll). The phase you have mention is from the front-end part (bin2llvmir) + the decoding phase is mandatory as without decoding, the decompilation cannot go further.

Ok, I'll give the selective decompilation a try, thanks.

I think you can try some selective decompilation...I’m not sure...

Same problem with another DLL. On Linux eats 16 GB RAM

Maybe the code could be refactored to use binary trees or some other memory efficient data structure.

While this is indeed unfortunate, and I'm sure the retdec team is looking into it, users must deal with what we have available to use.
While analyzing the binary you feed it retdec creates a JSON document that describes the assembly (and the functions which is what we are mostly after). We can get function offsets and names from this.
To that end I have written a python 3 script that makes this somewhat easier (albeit still a bit tedious, I'm open to improvement suggestions).
#!/usr/bin/python3

import os
import sys
import json

try:
    path_to_decompiler_sh = sys.argv[1]
    path_to_file_to_decompile = sys.argv[2]
    path_to_retdec_json = sys.argv[3]
except IndexError:
    print("Usage: path/to/decompiler.sh path/to/file.exe path/to/retdec.json")
    sys.exit(1)

with open(path_to_retdec_json, 'r') as f:
    obj = json.load(f)
    for fn in obj['functions']:
        n = fn['name']
        if not n.startswith("function_"):
            continue

        s = hex(fn['startAddr'])
        e = hex(fn['endAddr'])
        cmd = "{} {} --select-ranges {}-{} --select-decode-only -o {}.fn" \
            .format(path_to_decompiler_sh,
                    path_to_file_to_decompile,
                    s,
                    e,
                    n)

        print(cmd)

Running the script:
$ ./the-script.py ~/bin/decompiler.sh path/to/my.exe /path/to/retdec_output.json

Will produce something similar to the following:
/home/thill/bin/decompiler.sh path/to/my.exe --select-ranges 0x5350e9-0x5350e9 --select-decode-only -o function_5350e9.fn
/home/thill/bin/decompiler.sh path/to/my.exe --select-ranges 0x53fbd8-0x53fbd8 --select-decode-only -o function_0x53fbd8.fn

Which I can then run directly.
You can of course modify the script to use subprocess/popen.
Hopefully this helps someone.

I would also like to add a little more. When optimizing in the backend, I mainly encounter problems with the SimpleCopyPropagationOptimizer. If I exclude it, I have no problems with most examples and tests. So there seems to be some mistake here.

@0xBEEEF What flag did you use/remove to disable that step?

Sample from #97 is also taking to much time and memory in llvmir2hll.

No, just zip it and upload it here if you want to share it for testing.

Ok, thanks, here is the link.
Please note that this file is somewhat like the op's file in terms of availability, and that it's an android app's library working as a native Activity

I had a similar problem with a 1.2mb (not packed) file. DeadLocalAssignOptimizer issued "warning: out of memory: trying to recover" in a seemingly endless loop. Though only 17GB of a total 32GB RAM was actually used.
Adding the --backend-no-opts arg and the whole process completed in seconds.

retdec-decompiler.py --backend-disabled-opts DeadCode,DeadLocalAssign LGTM

env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 retdec-decompiler.py --backend-disabled-opts=DeadCode,DeadLocalAssign --no-memory-limit ./app.bin LGTM

dead_code_optimizer
dead_local_assign_optimizer

retdec-decompiler.py --backend-disabled-opts=DeadCode,DeadLocalAssign,CopyPropagation,SimpleCopyPropagation ...

I have same problem. I'm trying to decompile some.dll (11 Mb), and now I stuck for 20 hours at this step with enormous memory consumption:

Decompilation settings are all default. Just set no memory limit. -_-

same here, it just stop somewhere using half of my ram

I finally decided to rent an Azure-server to be able to allow as much optimization as possible using virtual memory.
I selected the default batch-runner Windows 2016 server image on a machine with 2 cores, 64GB RAM and 128GB SSD + 128GB TEMP disk. I added another 400GB SSD, partitioned, formatted and assigned it a drive letter, but that appeared not to be necessary as the decompilation until now hasn't taken more than about 100GB committed memory in the task overview.
I upped the swap-file to those disks outside C: to max-size, however enabling system managed swap on enough disks would already allow swap 3 times RAM = 192 GB,
I allowed IE usage, installed python 3.7.3 on the server, ran retdec-decompiler.py with the --no-memory-limit option, turned off the automatic turn off of the server at 7PM UTC, turned off Windows update that rebooted my system around 6 AM, and even installed Application Insights to follow the committed memory usage from outside the server without having to RDP to it.
At the moment the server decompile-process is finally surviving the night.

As a reference, I once tried to decompile a 30MB binary. It ended up using 800GB of RAM 😮

这是一封自动回复邮件。已经收到您的来信，我会尽快回复。


V5 - Dart Support/Better API design

Call pazusoba with dart ffi and improve the API of pazusoba.

[x] Added so in Makefile to build a shared library for Dart
[ ] Return the route to dart
[ ] Improve the API design so that, it is easier to be called

this will add more parameters to the function (profile list included)
route should use 64bit integers instead (easier to pass back) (one number can do 21 steps so 5 should be enough)

[ ] Dynamic profile support (change profile by passing in a different struct?)

using a 32bit integer should also be fine (4 bits for which profile + 14 bits for colour or the number), an integer list can be passed in as well, just need to unpack it from C++
if I am doing the integer list, I need to do a script for it as well just to make it easy

[x] Better hash function of the board
[ ] Better threading because results are different everytime, this should be fixed
[ ] and More...

It is now able to call the method but data is not returned. Surprisingly, Dart FFI is very easy to use.

FFI for Dart and Python can be moved to another repo in the future as pazusoba-ffi. This will be open until then.


how do you create your official website & deploy it? (empty issue body)

what? you mean https://github.com/egoist/docute ?

amazing! inspired by vue?XD
how do u deploy https://sao.js.org/#/

It's here https://github.com/saojs/sao/tree/master/docs served by github pages, I don't need to deploy it.


Update description of hooks in rfc

this is a possible first pass,
feedback in how to restructure/rewrite this is more than welcome :)

@lukemelia good catch!
happy to chat more about other changes/rewording here or on slack

This is OK to merge from my POV.


Fix /register and /login client side validation

What's the problem? (required)
The client side validation for both register and login forms does not work at intended. The browser should prompt the user to enter required fields if they're missing.

https://github.com/livepeer/livepeer-com/pull/854


menu item color not dynamically updated when branding download finishes

The branding was not yet downloaded when the view controller started.

The icons should have circles, but they don't.
At the moment the branding is downloaded, the icons are not re-rendered.

We fixed this in #37


modified test scripts for new structure and added script to test a docker image build.

added tab to util/test.t as it wasn't defined before
changed utils to util
added docker script in .travis.yml

Added functionality to create releases for different operation systems in travis and appveyor scripts.


Use map idx instead of map name to check for a character's map data

Closes #494 and #499.
This renders the functions to look up map data based on map names unused, but I'd keep it there just in case we need them.
Also, since an uninitialized integer is 0 because it cannot be null (besides, I made sure I initialized entitydata's m_map_idx to 0 when it's created), the warnings for not finding map data in charsel screen shouldn't be there anymore (The case is the charsel screen asks for map datas for all characters in the slot, even if the characters are not yet created). They will return Outbreak, but not because it is defaulted to that, but because g_defined_map_datas[0] is indeed Outbreak.

This looks good and works as expected.
I do appear to be getting a regression in Team-ups where the client fails to load team members correctly in the team list. Something to do with either the db_id sent, or the map name() here in EntityResponse.cpp:
        QString member_mapname  = tm_ent->m_client->m_current_map->name();
        bool tm_on_same_map     = true;

        if(member_mapname != src.m_client->m_current_map->name())
            tm_on_same_map = false;

I'm unable t replicate on master. That said, I'm also not clear how your changes impact this, sooooo.... I'm comfortable merging your PR without a fix, but let this serve as a reminder to open a new issue to track the regression.


Added partials to QueryDatabaseResponse

This allows partial properties such as icon, archived & properties to be available without having to check for this property. This provides a fix for #247.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

https://github.com/makenotion/notion-sdk-js/issues/247#issuecomment-1012602803 sorts this. Since there is no need for this, I'm closing it


lxd/device: Add support for bridge port isolation

This is a preliminary pull request to discuss implementation of addition.

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Sorry about that, I corrected the issue.

@matthewa150 please can you also add an API extension commit similar to https://github.com/lxc/lxd/commit/8d898bc66cf38ad3b6a856266fa97c0933d2595e that documents the new API key you've added.
Thanks! :)

I added the change to the API as requested.

This needs a rebase, it's currently conflicting with master.

@tomponline I've made the requested changes.

jenkins: test this please

One minor doc tweak and then assuming the tests pass I think this is good to be merged. Thanks!

Testsuite passed

Oops, that was a mistake on my end, replaced the doc text with the suggested text.

Build seems to be failing due to qmp?

Yep we are aware, an upstream depency changed their API and we need to update our usage of the package.

No worries, just wanted to make sure I hadn't goofed something on a rebase.

jenkins: test this please

That was my mistake on the last checks, failed to properly resolve a rebasing issue. Should be fine now.

Thanks!

Works great too, thanks.


worker thread

Any plan about worker base thread

No such plans, no!

It would be very easy to add given the explicit ipc layer, but no current requests for it


Jupyter code cell folding feature request

Feature: Notebook Editor, Interactive Window, Python Editor cells

Description
When you have a python file with jupyter code cells (using # %%), it would be nice if I could fold individual cells, like I can fold functions.

Microsoft Data Science for VS Code Engineering Team: @rchiodo, @IanMatthewHuff, @DavidKutu, @DonJayamanne, @greazer

Note: This is a simple enough change. We have the cell ranges. All we need to do is create a class that provides the collapsible ranges to VSC. Return the cell ranges and things should work as expected.

I am also interested in this feature. I and think this is related to this #5227 issue.

This is the main reason stopping me from using VSCode more instead of the standard JupyterNB with Nbextensions, I work with a lot of cells that many become set in stone and not needed to be changed, not being able to fold/hide them increases the clutter immensely, it becomes harder to work.

@Huud If you have content in cells that is not likely to be changed, you should put it in a library.

Dupe of #5227


image viewer main

image viewer for fibsem images

Hello @Rohit-Kannachel! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file fibsem/ui/FibsemImageViewer.py:

Line 7:1: E302 expected 2 blank lines, found 1
Line 7:46: E231 missing whitespace after ','
Line 23:80: E501 line too long (87 > 79 characters)
Line 30:31: W291 trailing whitespace
Line 33:1: W293 blank line contains whitespace
Line 36:43: E231 missing whitespace after ','
Line 43:5: E303 too many blank lines (2)
Line 43:27: E201 whitespace after '('
Line 43:54: E231 missing whitespace after ','
Line 43:80: E501 line too long (86 > 79 characters)
Line 44:1: W293 blank line contains whitespace
Line 59:5: E303 too many blank lines (2)
Line 59:35: E231 missing whitespace after ','
Line 74:80: E501 line too long (87 > 79 characters)
Line 84:80: E501 line too long (90 > 79 characters)
Line 92:80: E501 line too long (139 > 79 characters)
Line 98:1: W293 blank line contains whitespace
Line 114:5: E303 too many blank lines (3)
Line 114:35: E231 missing whitespace after ','
Line 125:80: E501 line too long (85 > 79 characters)
Line 126:80: E501 line too long (97 > 79 characters)
Line 127:80: E501 line too long (112 > 79 characters)
Line 128:74: E272 multiple spaces before keyword
Line 128:80: E501 line too long (130 > 79 characters)
Line 129:80: E501 line too long (121 > 79 characters)
Line 132:5: E303 too many blank lines (2)
Line 132:33: E231 missing whitespace after ','
Line 143:80: E501 line too long (96 > 79 characters)
Line 144:80: E501 line too long (96 > 79 characters)
Line 145:80: E501 line too long (123 > 79 characters)
Line 146:80: E501 line too long (117 > 79 characters)
Line 147:1: W293 blank line contains whitespace
Line 148:1: W293 blank line contains whitespace
Line 150:5: E303 too many blank lines (3)
Line 150:29: E231 missing whitespace after ','
Line 164:80: E501 line too long (112 > 79 characters)
Line 165:80: E501 line too long (97 > 79 characters)
Line 166:80: E501 line too long (124 > 79 characters)
Line 167:80: E501 line too long (106 > 79 characters)
Line 168:80: E501 line too long (115 > 79 characters)
Line 170:80: E501 line too long (105 > 79 characters)
Line 171:1: W293 blank line contains whitespace
Line 174:80: E501 line too long (125 > 79 characters)
Line 182:5: E303 too many blank lines (5)
Line 182:31: E231 missing whitespace after ','
Line 193:80: E501 line too long (107 > 79 characters)
Line 194:80: E501 line too long (86 > 79 characters)
Line 195:80: E501 line too long (106 > 79 characters)
Line 196:80: E501 line too long (119 > 79 characters)
Line 198:29: E231 missing whitespace after ','
Line 209:80: E501 line too long (83 > 79 characters)
Line 210:80: E501 line too long (82 > 79 characters)
Line 211:80: E501 line too long (103 > 79 characters)
Line 212:80: E501 line too long (89 > 79 characters)
Line 215:1: W293 blank line contains whitespace
Line 221:1: E303 too many blank lines (8)
Line 226:11: W292 no newline at end of file

In the file fibsem/ui/FibsemUI.py:

Line 95:5: E303 too many blank lines (2)
Line 98:58: W291 trailing whitespace
Line 99:41: E127 continuation line over-indented for visual indent
Line 99:54: W291 trailing whitespace
Line 100:41: E127 continuation line over-indented for visual indent
Line 100:67: W291 trailing whitespace
Line 101:41: E127 continuation line over-indented for visual indent

In the file fibsem/ui/qtdesigner_files/FibsemUI.py:

Line 77:80: E501 line too long (81 > 79 characters)

In the file fibsem/ui/qtdesigner_files/image_viewer.py:

Line 18:80: E501 line too long (108 > 79 characters)
Line 21:80: E501 line too long (81 > 79 characters)
Line 33:80: E501 line too long (80 > 79 characters)
Line 38:80: E501 line too long (83 > 79 characters)
Line 79:80: E501 line too long (82 > 79 characters)
Line 103:80: E501 line too long (88 > 79 characters)
Line 105:80: E501 line too long (81 > 79 characters)
Line 106:80: E501 line too long (80 > 79 characters)
Line 125:80: E501 line too long (80 > 79 characters)
Line 140:80: E501 line too long (80 > 79 characters)
Line 173:80: E501 line too long (85 > 79 characters)
Line 209:80: E501 line too long (114 > 79 characters)
Line 223:80: E501 line too long (85 > 79 characters)
Line 230:80: E501 line too long (81 > 79 characters)
Line 245:80: E501 line too long (81 > 79 characters)
Line 249:80: E501 line too long (81 > 79 characters)
Line 261:80: E501 line too long (85 > 79 characters)
Line 312:80: E501 line too long (86 > 79 characters)
Line 343:80: E501 line too long (82 > 79 characters)
Line 395:80: E501 line too long (82 > 79 characters)
Line 457:80: E501 line too long (85 > 79 characters)
Line 465:80: E501 line too long (80 > 79 characters)
Line 479:80: E501 line too long (94 > 79 characters)
Line 481:80: E501 line too long (107 > 79 characters)
Line 482:80: E501 line too long (94 > 79 characters)

In the file fibsem/utils.py:

Line 394:34: E231 missing whitespace after ','


[Enhancement] Enable skip filling local cache

Add a new filesystem option skip_fill_local_cache for skip filling the local cache
What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_admit_test

run starrocks_be_unittest

run starrocks_be_unittest

run starrocks_admit_test


Predict more than one frame at the sametime

Hello,
In ultralytics repo we can use batch prediction like these:
frames = [frame1, frame2, ..]
results = model(frames)

how can we use batch prediction in this repo?

Maybe you should export dynamic batch onnx for engine building.
And add a function for preparing batched images,
and parser outputs for every image in batch.

Here is a onnx export demo.
https://github.com/triple-Mu/YOLOv8-TensorRT/pull/44

closed, feel free to reopen it if you have further questions. Thanks!


Public PoC before CVE assigned

The public release of the Proof of Concept discloses the SSN vulnerability before a CVE has been assigned.
Please review the disclosure policy at cveform.mitre.org

link seems to be broken

I have the correct link here: cveform.mitre.org

I have the correct link here: cveform.mitre.org

This is the right one. Thanks for digging that up.


Erro in open project

Hi,
when i want open project i see this error , i am using vs 2013
Microsoft Visual Studio
The project file 'InstaSharp' cannot be opened.
The project is targeting frameworks that are either not installed or are included as part of future updates to Visual Studio. See http://go.microsoft.com/fwlink/?LinkID=287985 for more information.
OK

Do you have the latest update? http://www.microsoft.com/en-us/download/details.aspx?id=48129

Thank you , i install update 5 , but when run i have this error :
Microsoft Visual Studio
A project with an Output Type of Class Library cannot be started directly.
In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project.
OK

@hanigamini That is not a code error. Do you google much?
You cannot run a class library project. You should add the InstaSharp project in your MVC or Web Project as a Project reference, and set that project as the startup project. See here => http://stackoverflow.com/a/5095677/325521
@fujiy I think you can close this issue out.

Hi theShiva ,
Thanks for your response ,
I know it , but InstaSharp project have this error :

and this is my vs

my vs about

@hanigamini you are able to create Portable Class Libraries?

Hi,
no , error in create  Portable Class Libraries project  :
Microsoft Visual Studio
An internal error occurred. Please contact Microsoft Product Support Services.
OK

So the problem seems to be at Visual Studio


PHP language

Adds PHP 7 support. Parity with Java examples.

Thanks for that! 👏 👍
It has been merged. There were some problems but somehow I did it (magic).


ChatOpenAI.get_num_tokens_from_messages: use self.model_name and support GPT-4

A couple problems:

ChatOpenAI.get_num_tokens_from_messages() takes a model parameter that is not included in the base class method signature. Instead, it should use self.model_name, similar to how the BaseOpenAI.get_num_tokens() does.
ChatOpenAI.get_num_tokens_from_messages() does not support GPT-4. See here for the updated formula: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb

There is already a PR to fix this issue at #1858.
Is this fix acceptable?

Yes, looks like it would fix this issue, thanks!
One minor suggestion is to link to the official documentation from the code:
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_format_inputs_to_ChatGPT_models.ipynb
That way anyone reading the code would know where it came from and can verify that it's up to date.

Thanks! I added the link to code.


k8s besu claim template

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 16.95%. Comparing base (32d3586) to head (b77c7df).
Report is 22 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #847      +/-   ##
==========================================
- Coverage   17.67%   16.95%   -0.72%
==========================================
  Files          33       36       +3
  Lines        4227     4412     +185
==========================================
+ Hits          747      748       +1
- Misses       3405     3585     +180
- Partials       75       79       +4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Regression Tests are not valid until we check for specific exceptions

From @bytemaster on June 30, 2015 18:18
Right now a test checking for an exception will pass regardless of what type of error actually occurred.  For the tests to be valid every exception that we test for needs to be explicit.
Copied from original issue: cryptonomex/graphene#113

Related: #117

From @theoreticalbts on July 6, 2015 4:3
Here is my proposal for an exception hierarchy:

graphene::chain::chain_exception will be the root of anything that can happen in the chain DB.
Exception opcodes will be six digit numbers of the form 3xxyyzz.
The initial digit 3 is inherited from the BTS 0.x exception numbering scheme.
The next two digits xx represent a phase of validation.
The meaning of the next four digits yyzz may depend on xx.
For ops which represent operations, xx has the following meanings for yy and zz:
yy is the operation number (i.e. which member of the static_variant in operations.hpp)
zz is the number of the exception within the operation

Compile-time template automagic will be used to enforce the correct value yy (i.e. instead of hard-coding numbers, it will be done based on the compile-time-known static variant tag for the requrested type).  Thus, reordering the operations will change exception codes!
Currently the following values of xx are defined (in my private branch for this refactor):

xx = 01:  Database query exception.  Thrown by methods which are raw queries to the chain database, e.g. get_recent_transaction().
xx = 02:  Block validation exception.  Thrown during evaluation of block-wide concerns (e.g. incorrect signing witness ID).
xx = 03:  Transaction validation exception.  Thrown during evaluation of tx-wide concerns (e.g. tx is expired).
xx = 04:  Operation validation exception.  Thrown by operation during validate().
xx = 05:  Operation evaluation exception.  Thrown by some evaluator in evaluate().

From @theoreticalbts on July 6, 2015 4:10
Note, many operations throw FC_ASSERT( fee_amount > 0 ).  My above-proposed scheme would assign different exception types / codes to each operation's version of this check.
This is actually a feature, not a flaw.
If the primary purpose of exceptions is to allow the testing framework to confirm that a specific assert exception triggers under the conditions set up by the test, then it makes sense to have each exception type thrown by a very small number of places in the code -- ideally in only one place.  This makes each test able to confirm with high specificity that the observed exception does in fact indicate the desired assertion has failed, and not some other assertion.

From @theoreticalbts on July 6, 2015 4:17
If it is desired to have a general insufficient_fee_exception which is used for all fee_amount > 0 checks, it is possible to do so by making each op's exception for this condition descend from a base class insufficient_fee_exception.  This allows unit tests which test for specific ops to catch the fee_amount > 0 exception for that op, and then other code which wants to catch generic insufficient fee condition can catch the base class.
It seems hard to figure out an actual use case which would actually want to catch the base class, however -- which suggests this feature need not be implemented.

From @theoreticalbts on August 17, 2015 17:12
Many commits progress, e.g. d4e4854eb69a23011c315a66bf782e8c94667a5b 9c4ac2e064ed38706fbcf11768a8f9556670eb53 54103da9a8057717312fab85cc474c217b2bcfe9 36e155bc0c4abb2b3a1f592010c6b05c74df0968 35ab119b26daf80ee778e451222a8c275ea1fd76 1b5a7cb213a028d4fa981063e507503dfdf9414f

Too complex


Windows timeouts

needed to remove a couple of debug statements

Thanks, and sorry for the slow response.


Update our compatibility to zlib 1.2.13 and merge in remaining bug fixes.

Requires: #1384

It looks like we may be missing 2 commits from Dec from here: https://github.com/madler/zlib/compare/master...develop

@nmoinvaz Are you saying we should update our compatibility to <IP_ADDRESS> or were those part of 1.2.13 already?

Actually you were right. I wasn't aware that there was an official 1.2.13 release yet. So those changes from Dec (after 1.2.13) should probably not go in until later.

Actually you were right. I wasn't aware that there was an official 1.2.13 release yet. So those changes from Dec (after 1.2.13) should probably not go in until later.

For bug fixes, it really doesn't make a difference, but for something that breaks the ABI or API, it's completely different story...

Rebased.

LGTM. Probably want to rebase for abi package changes.

More likely if #1412 is merged before this as this was already rebased after ABI fixes, even though this didn't need recreating ABI files as different base commit is used.

Rebase?

Rebase?

Done... Just to see everything still passes with flying colours...


RabbitMQ Listener Issue: Consumer received fatal exception on startup and com.rabbitmq.client.ShutdownSignalException: channel error

Affects Version(s): <Spring AMQP version>

You need to provide much more information, logs etc; so wee can tell what happened.

Logs.txt
Thank you for responding to the issue. I've attached more logs on the issue. Please let me know, if anything is required.

no queue 'springCloudBus.anonymous.dyryxaHMSgKLbkRwYI8uIA' in vhost 'b3ba3b9c-385e-4d81-85b2-cda09d691387'

What version of spring-cloud-bus are you using?
This was a problem with early versions with auto-delete anonymous queues; this was fixed in recent spring-cloud-stream versions.
With older versions, you need a policy on the RabbitMQ server to make sure that queues matching these names have the queue_master_locator argument set to client_local.
See https://www.rabbitmq.com/ha.html#queue-master-location

Thank you for details. We've this version in our POM file for spring cloud bus version.
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
	  <dependency>
		<groupId>com.rabbitmq</groupId>
		<artifactId>amqp-client</artifactId>
		<version>4.1.1</version>
	</dependency>

Spring Boot 1.5.x is no longer supported; the last 1.5.x version was 1.5.22 released August 2019. 1.5.2 is over 3 years old.
In any case; whatever version of spring-cloud supported by that boot version certainly doesn't have the fix. You need to set the master locator policy on the broker as I described, to avoid this issue.
But you really need to upgrade to supported software versions.

Sure, will do. Thank you so much for help!


Edit Environments frontend and backend

installed applications
url of the testing server

Done in https://github.com/ls1intum/Helios/pull/87


Earlgrey: bind_of_rv_and_dmdpi doesn't work in Verilator after Opentitan update

After updating Opentitan to newest version, bind_of_rv_and_dmdpi test is failing with:
%Warning-WIDTH: /media/hdd/uhdm/uhdm-integration/verilator/uhdm-integration/../uhdm-tests/opentitan/module_tests//..//opentitan/build/lowrisc_dv_chip_verilator_sim_0.1/src/lowrisc_ip_lc_ctrl_pkg_0.1/rtl/lc_ctrl_pkg.sv:177:60: Operator VAR 'TransTokenIdxMatrix' expects 1323 bits on the Initial value, but Initial value's REPLICATE generates 2987 bits.

                                : ... In instance top
                ... For warning description see https://verilator.org/warn/WIDTH?v=4.213
                ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message.
%Error: Exiting due to 1 warning(s)

This file also needs lc_ctrl_pkg.sv (see #495).

Now it gives error
%Error: Unknown object type: unsupported_typespec

It uses prim_fifo_async (https://github.com/chipsalliance/UHDM-integration-tests/issues/494) that gives the same warning


Wash your Teeth

This app allows you wash your teeth in an efficent way.

Great, thanks! I think you need to:

create a new folder called apps/dentigrossi and put everything in there
You just need metadata.json (not metadata.js)
You need an icon png file brush-teeth.png
My Denti needs renaming to app.js

Then I think you should be good. But I think as-is this probably doesn't work in your version of the app loader?

Hi - do you think you'll get around to fixing this, or shall I close this PR?

Hi Williams.
We are still working on this project together with our school teacher and
we are really interested in having the app published in your store. Because
we have already bought the Bangle js smartwatch.
Thanks in advance
regards
Elia Renzoni,  Moretti Nico
Il giorno mer 30 mar 2022 alle ore 09:46 Renzoni, Elia <
@.***> ha scritto:

My team is going to fix the problems, right now. If we have other
problems, should you help us ?
Thanks in advance
Il giorno mer 30 mar 2022 alle ore 09:36 Gordon Williams <
@.***> ha scritto:

Hi - do you think you'll get around to fixing this, or shall I close this
PR?
—
Reply to this email directly, view it on GitHub
https://github.com/espruino/BangleApps/pull/1620#issuecomment-1082732142,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYL3NLMM6LBPKRQQ73USDBDVCP76VANCNFSM5RTPVZVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Questo account è gestito da Istituto di istruzione secondaria  "Polotre"
Fano

Ok, great! Do you see there's a red 'X' next to your last commit? If you click that, then 'Details' you'll see it shows you what errors there currently are?
Currently it says:
ERROR: App MegaDenti has no JS icon

It looks like the app-icon.js file got removed a few commits ago
I'll fix this for you now and merge though

Ok, just merged - looks like the icon wasn't gone as the PR implied, but for some reason it was corrupted.
I've just tweaked that and merged the app though. It's now named megadenti not MegaDenti to fit with the other apps which all have lowercase names.
Hope that helps!

Sorry Williams but probably we have not expressed correctly our goal.
We'd like to create a line of a colour (only one, for example blue), then
every second of the timer a new line (this one must be coloured with a
different colour then the previous one, like red) starts to overlap the
other one till the first line (the blue one) become completely red (this
event has to coincide with the end of the timer).
We hope that this time it is clear what we'd like to do.
Thanks in advance,
Elia and Nico.
Il giorno gio 7 apr 2022 alle ore 18:05 Gordon Williams <
@.***> ha scritto:

Our first idea was to create a line that changes colour every second of
the timer.
I think you could just have an array of the colours you like, like ["#0f0","#00f",
...]. A bit like:
var myColors = ["#0f0","#00f", ...];
var myColorIdx = 0;
g.setColor(myColors[myColorIdx]);
myColorIdx++;
if (myColorIdx>=myColors.length) myColorIdx=0;
—
Reply to this email directly, view it on GitHub
https://github.com/espruino/BangleApps/pull/1620#issuecomment-1091920074,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYL3NLJJZNVIYWSTX5TRSF3VD4BT3ANCNFSM5RTPVZVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Questo account è gestito da Istituto di istruzione secondaria  "Polotre"
Fano

So you mean a bit like a 'progress bar'?

Hi Williams,
you are right, we can consider it a 'progress bar', that increases its
length every second of the timer.
Thanks in advance,
Elia and Nico
Il giorno ven 8 apr 2022 alle ore 10:10 Gordon Williams <
@.***> ha scritto:

So you mean a bit like a 'progress bar'?
—
Reply to this email directly, view it on GitHub
https://github.com/espruino/BangleApps/pull/1620#issuecomment-1092577196,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYL3NLLZNMKASSKP65LJFW3VD7SV3ANCNFSM5RTPVZVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Questo account è gestito da Istituto di istruzione secondaria  "Polotre"
Fano

Hi Williams,
Can you answer our previous email ?
Besides that,  how can we add our app in the Bangle.js App Loader ?
We are looking forward to your reply.
Thanks in advance,
Elia and Nico
Il giorno sab 9 apr 2022 alle ore 18:12 Renzoni, Elia <
@.***> ha scritto:

Hi Williams,
you are right, we can consider it a 'progress bar', that increases its
length every second of the timer.
Thanks in advance,
Elia and Nico
Il giorno ven 8 apr 2022 alle ore 10:10 Gordon Williams <
@.***> ha scritto:

So you mean a bit like a 'progress bar'?
—
Reply to this email directly, view it on GitHub
https://github.com/espruino/BangleApps/pull/1620#issuecomment-1092577196,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYL3NLLZNMKASSKP65LJFW3VD7SV3ANCNFSM5RTPVZVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Questo account è gestito da Istituto di istruzione secondaria  "Polotre"
Fano

Hi - afraid I've been on holiday.
For the progress bar, I see you have a counter variable? So maybe do:
var x = g.getWidth()*counter/5;
var myColors = ["#0f0","#00f", ...];
g.setColor(myColors[counter]);
g.fillRect(0, 53, x, 60); // you might want to change 53/60 to whatever you want your Y coordinates to be

But if you have other questions about how to implement something, please can you just post on the forum?

how can we add our app in the Bangle.js App Loader ?

It's there! Only available for Bangle.js 1 as that's all it seems you tagged it for? https://banglejs.com/apps/?id=megadenti

Hi Williams,
we have also been on holidays so that's why we can answer your email only
today.
As for the progress bar -as you can see- we have found a solution. We have
introduced a circular progress bar around the timer.
As for the publication of the app on the App Loader we are grateful for
your help.
We'll post other questions on the forum, if we have any.
Thanks for your support,
Nico and Elia
Il giorno mar 19 apr 2022 alle ore 12:02 Gordon Williams <
@.***> ha scritto:

Hi - afraid I've been on holiday.
For the progress bar, I see you have a counter variable? So maybe do:
var x = g.getWidth()*counter/5;
var myColors = ["#0f0","#00f", ...];
g.setColor(myColors[counter]);
g.fillRect(0, 53, x, 60); // you might want to change 53/60 to whatever you want your Y coordinates to be
But if you have other questions about how to implement something, please
can you just post on the forum?
how can we add our app in the Bangle.js App Loader ?
It's there! Only available for Bangle.js 1 as that's all it seems you
tagged it for? https://banglejs.com/apps/?id=megadenti
—
Reply to this email directly, view it on GitHub
https://github.com/espruino/BangleApps/pull/1620#issuecomment-1102436991,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYL3NLLVAJUSXAF5RMMJRL3VF2ADBANCNFSM5RTPVZVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Questo account è gestito da Istituto di istruzione secondaria  "Polotre"
Fano

My team is going to fix the problems, right now. If we have other problems,
should you help us ?
Thanks in advance
Il giorno mer 30 mar 2022 alle ore 09:36 Gordon Williams <
@.***> ha scritto:

Hi - do you think you'll get around to fixing this, or shall I close this
PR?
—
Reply to this email directly, view it on GitHub
https://github.com/espruino/BangleApps/pull/1620#issuecomment-1082732142,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYL3NLMM6LBPKRQQ73USDBDVCP76VANCNFSM5RTPVZVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Questo account è gestito da Istituto di istruzione secondaria  "Polotre"
Fano

If you post on the forum with any issues I can try and help out, yes