Windows support

This is a status report on Windows support for rviz. I'll describe the current state and list some things I've tried and some things that we need to do in order to get Windows fully supported in our "official release" of ROS 2.
First, the current state is this:

builds through rviz_common, but fails to link to rviz2 (the executable)
implicitly requires cmake 3.10 (or at least not 3.9)

The linking issue is due to Ogre symbols not being found by the rviz2_app executable. The reason (I think) is that rviz_common is a static library right now and so is the Ogre library, so it is not getting propagated correctly.
The solution, I believe, is to make both Ogre and rviz_common's library shared. I started doing this last night, but that brought with it some issues with freetype and Ogre as well as needing visibility control (dll import/export) for the API in rviz_common. I got that "done" (not fully tested), but then got hung up on some other Ogre issues. Here's the branch for that work in progress:
https://github.com/ros2/rviz/pull/143
Now, I ended up giving up on getting it in, because even with those issues fixed I would likely need a day or two to get rviz on Windows into mergeable shape for our CI, which would mean:

actually compiling and linking and running
no warnings (this includes dependencies like Ogre and the things Ogre builds like freetype)
proper library paths at runtime (like when using our binary and not building from source)
finding a good way to explicitly require a version of cmake that doesn't have the automoc issue

I simply didn't have time to do that, unfortunately.
I also wanted to point out a few things about the above branch:

I prevent Ogre from building dependencies

I do this because if those dependencies throw warnings then I cannot easily suppress them

I made Ogre create shared libraries, but the rviz_ogre_vendor package's cmake files were modified in a hacky way, so they need to be fixed up
I made rviz_common into a shared library, but I think there might be some lingering issues with the dll import/export stuff I did (again not well tested)
I didn't try debug builds yet, might be broken again

We could alternatively turn back on Ogre building it's own dependencies, but to do that we'd either need to:

patch ogre so it suppresses warnings when building its dependencies
make our build farm ignore these warnings some how

might be more work than suppressing them

Oh, and on the topic of suppressing warnings, Windows has a silly thing where I try to suppress all warnings with /w but then I get a non-suppressable warning that /w overrides the existing command line argument /W1. I was frustratingly unable to find where that flag was being introduced and that was another reason I didn't think I could get rid of all of the warnings before the release.

I should have probably posted this on https://github.com/ros2/rviz/issues/133, as it was already talking about getting rviz working on Windows, but since my WIP pr is attached to this one I'll leave it.

To help, I tried to build this on both Linux and Windows and here are my findings so far:
For Linux:

The RenderSystem_GL library cannot be found by CMake since it's missing a 'lib' in front. It's just called "RenderSystem_GL_d.so". Renaming to "libRenderSystem_GL_d.so" seems to do the trick. This is also a problem in the normal Ogre cmake build.
After this, the branch builds on Linux until linking in rviz2, where it's missing GLPlugin - I guess this would be inside OgreGLSupport, which is currently commented out in rviz_rendering. Commenting in that line, cmake fails in rviz_rendering. What I find weird is that libOgreGLSupport is still static even when building Ogre dynamically --> maybe an issue in Ogre? Do you know anything about this?

Windows:

On our system (Win 10 + VS2015) the CMake config of ogre_vendor doesn't work: The FREETYPE_LIBRARIES is a list of objects of the form "optimized;PATH_TO_RELEASE_BUILD;debug;PATH_TO_DEBUG_BUILD", but only the paths must be added here: https://github.com/ros2/rviz/blob/f06898d4d48fb92ccff3c9143a680f5292c1d210/rviz_ogre_vendor/rviz_ogre_vendorConfig.cmake.in#L103
After that, I get linking issues when linking rviz_rendering to Ogre. Still investigating...

I'm adding information as we find it. To keep things organized, I'm just going to edit my findings post.

In addition to @Martin-Idel-SI notes above the following is also necessary:

rviz2 needs to be liked against Ogre: add rviz_ogre_vendor::OgreMain and rviz_ogre_vendor::OgreOverlay to target_link_libraries
rviz_common tests also need to be linked against Ogre, this includes adding rviz_ogre_vendor as test dependency


feat: support custom org name

Description
Modified CLI to support additional argument for a custom organization name.
Type of Change

[X] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[ ] 🗑 Chore

@denangelov looks like the build is failing. Let me know if you need help fixing it.


gain access to profile's name, for example in the target context ?

Describe the feature
To my understanding, target.name is used to distinguish between managed (prod,preprod) and unmanaged (devs) environments.
Using dbt ontop a federation tool, I can potentially manage all my environments in the same place. not in terms of un/managed, but as a way to group resources (input sources, target collections...) by environment.
I thought about using the profile's name, but I dit not find how to access it for example in the generate_XXXX_name macros.
Could it be possible to have access to the profile's name for example in the target context ?
Describe alternatives you've considered
I added an extra environment attribute to my adapter credentials, but imho it's a disguised profile's name...
Additional context
Maybe dremio related ?
Who will this benefit?
me...
Are you interested in contributing this feature?
Let us know if you want to write some code, and how we can help.
Yes !

If I understand you correctly, @fabrice-etanchaud, you'd like profile_name to be a value exposed in dbt's Jinja context? Similar to how (e.g.) target and project_name are accessible today.
In the meantime, I could probably argue that you could probably accomplish any + all env-aware logic with just target.name. I think what you're asking for is reasonable and doable, but all the same I'd be curious to know a little more about your use case / deployment / how Dremio works (?) to understand exactly what this gets you.

As a 'mature' ;-) organization, my employer - a life insurance company - has several software environments, preproduction, production and at least one for each current project (as there are software developments, but many human validations). Each environment has its own source's versions that dbt should select correctly. And for each of these environments, I would also like dbt to switch seemlessly from managed (read from the environment sources, write on the managed dremio's space) to unmanaged (read from the environment sources, write on developer's home space).
imho it would be logical for dbt to find all the required configuration in the profile. So if target is used to switch from managed to unmanaged behavior, I would need an extra configuration parameter to set the environment (the prefix to apply on sources' databases) independently. I thought profile_name could do the trick. I ended up adding a extra environment credential parameter.
But you are right I can use target.name as a composite key containing both environnement name and managed/unmanaged flag, and split it when needed (in the get database/schema name functions and when prefixing source's databases.
Does that make sense to you ? I will be glad to have your feeling about that !

Thank you @beckjake , yes, it worked !

@beckjake Very nice. Is there any reason we shouldn't document that?

@jtcohen6 I can't think of one.


Fixed render issue when  or  is used after an inline element

When block elements
 and
 are used after an inline element such as , the
 and
 are still inline as the newline is at the suffix.  This PR fixes it by moving the newline to the prefix.
Example, given two structures:
function blockInline() {
    return (

            This is a span that is inline.

This is a div that should be on a newline.

    );
}

function list() {
    return (

            Span title

Item 1

Item 2

    );
}

Before:

After:

Coverage remained the same at 80.758% when pulling db856abbe679f0645e190f38baeda98c42b7d29d on Sylphony:block-inline-fix into ad88ad393f18a77ccc74183cea40f205a27cff78 on vutran:master.


[reproduce] Which version of Boost library does the code use?

I used Boost version 1.83.0 in this project, but it seems to have encountered many compilation errors. So, I'm wondering which version of Boost I should use to reproduce the results in the paper.

Hello,
I do not remember the exact version of Boost I used (I was running the code in 2019).
Boost 1.6 should work. It's hard to say exactly given that I do not know what compilation errors you get.

Hello, I do not remember the exact version of Boost I used (I was running the code in 2019). Boost 1.6 should work. It's hard to say exactly given that I do not know what compilation errors you get.

Thanks, it works fine with Boost 1.66.0.


Doesnt seem to work?

Hey, can you (or anyone haha) confirm this still works?
Im playing the alpha and followed all the instructions, but I cant seem to make this work at all. Playing on PC m+k, capslock doesnt activate anything, suit or no suit.

Skipping [Free Cam Mod 1.1.3] because of process filters (OuterWilds_Alpha_1_2.exe) is mentioned in the log?

Okay nevermind, I have 2 alpha versions that I think are the same, but one is not literally that exact filename

Okay, so, new issue. Does this work with the very latest alpha release? Called "OuterWilds_AlphaDemo_PC.exe"?

I haven't tested the mod in that version, and sadly I think bepinex will refuse to load the mod on the demo version, because of mismatched executable names. If you do try to run it, try renaming the demo alpha to OuterWilds_Alpha_1_2.exe.


QGIS version with QgsVectorLayer::supportsEditing

Needed to fix https://github.com/opengisch/QField/issues/1460

Thanks!

Thanks!


build xoop for different shaped screens

refactor to define shape and rules in map_* scripts
script to build xoop_* binary based on named map

Create map_* script to define boundaries and warp rules, and build independent xoop binary for any screen map.
Inspired by screen maps in taralli

Hey thanks for the PR! This is an interesting idea. I wonder whether it wouldnt be more user-friendly to use a config file to define map rules. It would certainly be less flexible but I suspect it would be more accessible for people who install compiled binaries from a package rather than compile from source. What do you think?

Thankyou for this application ^_^
It depends if a user-friendly config can represent the shapes and warps that users might want. I don't know what people want -_-;, but map_beef is a basic example of a non-standard screen layout with custom warps.
For me a config file could not be used, I have a custom layout with various barriers and warp-translations between screens of different sizes.


Add removal of DOCKER_HOST env when docker_host is None

This PR enhances the handling of the DOCKER_HOST environment variable in the codebase.
Changes:

Replaced the existing if let structure with a match statement.
Added logic to remove the DOCKER_HOST environment variable when the docker_host option is None.

Impact:
Without this change, running tests locally would fail because the DOCKER_HOST variable wouldn't be removed when docker_host was None.

Thanks for the PR! I was just in that area so included this update in https://github.com/railwayapp/nixpacks/pull/1180


Significant pod memory use jump after switching to AL2023-based AMIs

What happened:
After migrating to AL2023-based from AL2-based EKS AMIs, Java-based workloads are consuming significantly more memory upon booting up (pods on AL2 nodes hovered at around 40% of their memory limit, on AL2023 nodes they hover around 80%, frequently getting killed by the OOM Killer without even the service actively being in use). The node and pod configuration are exactly the same, nodes have been simply been rolled by Karpenter with only the AMI name/family being changed. This has been repeated a couple of times to validate occurence (rolled back and forth between AL2 and AL2023 nodes and had the pods be rescheduled and inspected their memory use).
# cat /proc/(pid)/status on AL2023
[...]
VmPeak:	10511056 kB
VmSize:	10511056 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	  788224 kB
VmRSS:	  788224 kB
RssAnon:	  754280 kB
RssFile:	   33944 kB
RssShmem:	       0 kB
VmData:	 1040008 kB
VmStk:	     192 kB
VmExe:	       4 kB
VmLib:	   24840 kB
VmPTE:	    2672 kB
VmSwap:	       0 kB
HugetlbPages:	       0 kB
CoreDumping:	0
THP_enabled:	1
Threads:	121
[...]

# cat /proc/(pid)/status on AL2
[...]
VmPeak:	 5172272 kB
VmSize:	 5172272 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	  486220 kB
VmRSS:	  486120 kB
RssAnon:	  452508 kB
RssFile:	   33612 kB
RssShmem:	       0 kB
VmData:	  635676 kB
VmStk:	     192 kB
VmExe:	       4 kB
VmLib:	   24840 kB
VmPTE:	    1528 kB
VmSwap:	       0 kB
HugetlbPages:	       0 kB
CoreDumping:	0
THP_enabled:	1
Threads:	43
[...]

What you expected to happen:
Nominal memory use of a pod provisioned on either AL2 or AL2023-based EKS nodes should remain within the same boundaries.
How to reproduce it (as minimally and precisely as possible):
Launch a simple OpenJDK 11-based hello world application that allocates a significant amount of memory, with properly set -Xms and -Xmx and requests/limits in AL2 and AL2023.
Anything else we need to know?:
Environment:

AWS Region: us-west-2
Instance Type(s): Varies (Karpenter-managed)
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.7
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.29
AMI Version: amazon-eks-node-al2023-x86_64-standard-1.29-v20240615
Kernel (e.g. uname -a):  6.1.92-99.174.amzn2023.x86_64
Release information (run cat /etc/eks/release on a node):

BASE_AMI_ID="ami-003ef79521859c6a4"
BUILD_TIME="Sat Jun 15 04:48:19 UTC 2024"
BUILD_KERNEL="6.1.92-99.174.amzn2023.x86_64"
ARCH="x86_64"

I think you're running into the file descriptor limit change discussed in #1746.
On AL2, the limit for your containers is 810042 (both default and max). On AL2023, the default is 65536 and the max is 1048576.
The JVM bumps its file descriptor limit to the maximum (unless configured otherwise with XX:-MaxFDLimit), and I assume it uses the file descriptor limit to allocate some region of memory (commonly for things like hash tables). That would explain your higher memory usage on AL2023.
You can try setting the limit to the AL2 values to see if that gets your metrics in line: https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/examples/#modifying-container-rlimits
And if that does the trick, consider disabling the JVM's auto-increase of its file descriptor limit. You should see significantly lower memory allocated with the default limit on AL2023 of 65536.

@dims yes, we validated the metrics against AL2023 images using the AL2 limits (810042 for both soft/hard maximums), against AL2023 defaults and again against AL2/AL2023 limits with JAVA_TOOL_OPTIONS: -XX:-MaxFDLimit

Thanks @priestjim I'll try to repro this and take a closer look.

Which Java 11 version is being used? Versions prior to <IP_ADDRESS> do not have support for cgroup v2 which is used by AL2023. This leads to the JVM lacking container awareness and using whatever memory it can.
From the pod, what's the output of java -XshowSettings:system -version?
If this is seen then it supports cgroup v2:
Operating System Metrics:
    Provider: cgroupv2

If instead you see this then it does not have support for cgroup v2:
Operating System Metrics:
    No metrics available for this platform

@JoeNorth you're absolutely correct in that the JDK version we're using (11.0.6) does not support cgroupv2. We'll look into upgrading to the latest OpenJDK 11 patch version and report back.

ah thanks @JoeNorth, yeah in general you'll need openjdk 15+ to get cgroupv2 support, unless the distro you use has cherry-picked it.


networking gadgets: instantiate ebpf prog once per netns

networking gadgets: instantiate ebpf prog once per netns
In the tests with 100 containers on a node, the networking gadgets were
sometimes failing by timeout because they were too slow. Profiling
showed that most of the time is spent in the ebpf verifier. That is
because networking gadgets load the ebpf program once per network
namespace.
This patch refactors networking gadgets to use only one instance of ebpf
gadget. It is used for all network namespace. Unfortunately, we cannot
attach the ebpf program directly on the raw socket for each network
namespace because we need to know the netns in the ebpf program to get
the enrichment working properly.
So we have a new, very small ebpf program named 'dispatcher',
instantiated for each netns. Each instance is attached to a raw socket
on that netns. Each instance knows the current_netns then doing a tail
call on the singleton ebpf program. Since we cannot pass parameters in
tail calls, we use the skb->cb[] buffer to pass the context.
Since the dispatcher is very small, the ebpf verifier is still fast
enough, even with 100 instances.
Thanks @mauriciovasquezbernal for the idea to use skb->cb[] and tail calls.
The documentation for skb->cb[] says:

This is the SKB control block. It is an opaque storage area usable by protocols, and even some drivers, to store private per-packet information. TCP uses this, for example, to store sequence numbers and retransmission state for the frame.

In the context of ebpf programs running on socket filters, the skb given to the ebpf program is a skb clone:

In order to make quick references to SKB data, Linux has the concept of SKB clones. When a clone of an SKB is made, all of the 'struct sk_buff' structure members of the clone are private to the clone. The data, however, is shared between the primary SKB and it's clone. When an SKB is cloned, the 'cloned' field will be set in both the primary and clone SKB. Otherwise is will be zero.

So reading/writing on skb->cb[] from the socket filter will not interfere with the networking stack.
How to use
Run the benchmarks:
IG_BENCHMARKS_GADGET_REGEX='trace-[ds]n[si]' go test -exec 'sudo -E' -bench=. -run=Benchmark ./internal/benchmarks/... -count 8 |tee main.bench
IG_BENCHMARKS_GADGET_REGEX='trace-[ds]n[si]' go test -exec 'sudo -E' -bench=. -run=Benchmark ./internal/benchmarks/... -count 8 |tee patched.bench

Check the results:
$ benchstat main.bench patched.bench
goos: linux
goarch: amd64
pkg: github.com/inspektor-gadget/inspektor-gadget/internal/benchmarks
cpu: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
                                     │ main.bench  │           patched.bench           │
                                     │   sec/op    │   sec/op    vs base               │
AllGadgetsManyContainers/trace-dns-4   2.945 ± 11%   1.584 ± 8%  -46.21% (p=0.000 n=8)
AllGadgetsManyContainers/trace-sni-4   4.735 ± 11%   1.523 ± 9%  -67.82% (p=0.000 n=8)
geomean                                3.734         1.553       -58.40%

Benchmarks showed a 58% performance improvement when starting a
networking gadget with 100 containers.
Testing done
TODO

[ ] Get https://github.com/inspektor-gadget/inspektor-gadget/pull/1419 merged first
[ ] Test the 3 networking gadgets

[ ] dns
[ ] sni
[ ] network

[ ] Test with different frontends

[ ] kubectl-gadget
[ ] ig

[ ] Test the enrichment (node, pod, namespace...)

[ ] in the main events
[ ] in the debug events ("tracer attached" messages)

This PR is part of https://github.com/inspektor-gadget/inspektor-gadget/issues/1394

I ran more benchmarks with 0, 1, 10 and 100 containers:
IG_BENCHMARKS_GADGET_REGEX='[sd]n[is]' go test -exec 'sudo -E' -bench=. -run=Benchmark ./internal/benchmarks/... -count 8 | tee main.bench
IG_BENCHMARKS_GADGET_REGEX='[sd]n[is]' go test -exec 'sudo -E' -bench=. -run=Benchmark ./internal/benchmarks/... -count 8 | tee patched.bench

$ benchstat main.bench patched.bench
goos: linux
goarch: amd64
pkg: github.com/inspektor-gadget/inspektor-gadget/internal/benchmarks
cpu: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
                                                  │  main.bench   │            patched.bench            │
                                                  │    sec/op     │    sec/op     vs base               │
AllGadgetsWithContainers/container0/trace-dns-4      854.2m ± 76%   797.1m ± 16%        ~ (p=0.721 n=8)
AllGadgetsWithContainers/container0/trace-sni-4      923.2m ± 22%   927.8m ± 16%        ~ (p=0.721 n=8)
AllGadgetsWithContainers/container1/trace-dns-4      878.3m ± 11%   806.2m ±  7%        ~ (p=0.279 n=8)
AllGadgetsWithContainers/container1/trace-sni-4      839.9m ± 27%   834.6m ± 21%        ~ (p=0.878 n=8)
AllGadgetsWithContainers/container10/trace-dns-4    1072.8m ± 16%   881.4m ± 22%  -17.84% (p=0.028 n=8)
AllGadgetsWithContainers/container10/trace-sni-4    1388.1m ± 52%   932.0m ± 11%  -32.86% (p=0.000 n=8)
AllGadgetsWithContainers/container100/trace-dns-4     3.345 ± 16%    1.511 ± 10%  -54.83% (p=0.000 n=8)
AllGadgetsWithContainers/container100/trace-sni-4     4.693 ± 14%    1.516 ± 12%  -67.70% (p=0.000 n=8)
geomean                                               1.386         991.8m        -28.43%

I am thinking choice 1 is better

I agree. That'd be great if we're able to uniform those networking gadgets even more. It worries me a little bit that we're creating some dependencies between PRs but I think it's the only way to keep this organized and avoid a lot of conflicts.

Thanks for the review, I updated the branch and I will merge once the CI is green.


Create changes to code and make it compatible for windows system

Create changes to code and make it compatible to work in windows system

Can you please assign this issue to me

@HemanthSai7 : Yeah, There you go!!!

Issue Resolved by @HemanthSai7


Feature/participation ratio

Add's the capability to calculate the participation ratio by using the Phonon.calculate_participation_ratio() command.

Looking good.  One suggestion (can be done before or after merging to the master), can you add the demo of this new feature in your example? Or you can send me an example script and then I add it in other clathrate examples.


brgenml1cupswrapper: fix regression and improvements

Things done

[ ] Tested using sandboxing (nix-build --option build-use-chroot true or nix.useChroot on NixOS)

Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"

[x] Tested execution of all binary files (usually in ./result/bin/)

[x] Fits CONTRIBUTING.md.

[x] Tested non-rebased version by printing through it. Worked fine.

[x] Built rebased version using nix-shell -p. Built fine.

cp, grep, chmod, sed executables
no longer found when upgrading from nixos
15.09 to 16.03. Fixed by use of wrapper
script that brings these executables into
PATH.
Also fix lpd binaries on 64 bits machines
by use of callPackage_i686.

Does this need backporting to release?

It would be nice, however the package init commit it relies on has not made it to the 16.03 release. I
had to cherry pick it on top of my local snapshot. Thanks for the quick merge. It would definitely
be nice for it to be backported assuming potential users. Let me know if I can do anything to
help with it.

You can cherry pick the init commit & this one from master onto release and submit the result as a PR against release-16.03 (please also verify that it builds & stuff).


Picamera for windows

I tried to use Picamera 2 with a Windows as OS for raspberry pi 4, but give me this error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
This module only works on linux
is there any solution for this situation?

I'm sorry, but we don't support Picamera2 on any form of Windows OS. You would probably need to contact the developer/maintainer of the Windows port for Raspberry Pi.  Sorry not to be more help.

Thank you for your reply
On Mon, 28 Nov 2022 at 13:22, davidplowman @.***> wrote:

I'm sorry, but we don't support Picamera2 on any form of Windows OS. You
would probably need to contact the developer/maintainer of the Windows port
for Raspberry Pi. Sorry not to be more help.
—
Reply to this email directly, view it on GitHub
https://github.com/raspberrypi/picamera2/issues/456#issuecomment-1328843214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASI4ZGIUAAXN42H5VEU5FK3WKSBVXANCNFSM6AAAAAASNCP47I
.
You are receiving this because you authored the thread.Message ID:
@.***>


feat: add settings for max_body_size and max_buffer_size

closes #133

coverage: 85.207%. remained the same
when pulling 50154fa986ed0f4f047c9c7282aac524da1dc7e6 on max-body-buffer-size
into 99ac07fba7714522200c6f86d55c710234f3cecd on main.

This is now included in #131


Modify Emission API to Export Date Fields in ISO Format

[ ] Modify Emissions API to export all Date and DateTime (Timestamp) fields in ISO Format

Date:  YYYY-MM-DD
DateTime:  YYYY-MM-DDTHH:MI:SS.000Z

Pull Request: https://github.com/US-EPA-CAMD/easey-emissions-api/pull/364

Emissions API to export Date and DateTime (Timestamp) fields have been updated


Requests made in jupyter notebooks are not captured

Steps to reproduce:

OPENAI_API_KEY="..." tokmon --no_json --beam localhost:9000 jupyter-notebook
Create a new notebook
Paste the contents of https://github.com/yagil/tokmon/blob/main/tests/python_example.py into a cell
Run the cell

Expected results:
The request to the OpenAI API is captured and shows up in the token-beam UI
Actual results:
The request completes successfully in the notebook but nothing shows up in the boken-beam UI.
Observations:

tokmon --beam localhost:9000 python python_example.py via the cli works as expected (shows up properly in the token-beam UI), so the setup is working under ordinary circumstances.
os.environ['HTTP_PROXY'] contains 'http://localhost:7878' when running in a notebook, so the env vars are getting set properly

@motin thanks for the bug report. Does it work with vanilla tokmon (without the beam UI)?
OPENAI_API_KEY="..." tokmon jupyter-notebook

It does, if I gracefully shut down the Jupyter server (not on keyboard interrupt):
tokmon cost report:
================================================================================
Monitored invocation: jupyter-notebook notebooks/
Models: ['gpt-3.5-turbo-0301']
Total Usage: {'total_prompt_tokens': 20, 'total_completion_tokens': 13, 'total_tokens': 33}
Pricing: {'gpt-3.5-turbo-0301': {'prompt_cost': 0.002, 'completion_cost': 0.002, 'per_tokens': 1000}}
Total Cost: $0.000066
================================================================================

Writing cost summary to JSON file: /tmp/tokmon_usage_summary_1686771165.json (run with --no_json to disable this behavior)

But no luck in beam mode...


MediaPipe doesn't work

Hello, I need to know how to fix this bug in there #73

Please don't create a new issue to remind.


osx-vscode-release builds with -O0 instead of -O3

Hi there,
Great tool you've built here! I'm still very much learning how to use it, but I've encountered some strange behaviour.
When I do ./fips build osx-vscode-release it seems to compile with debug flags rather than release.
This doesn't appear to happen with any other osx configs such as make or xcode.
Let me know if their is any more info I can provide that would help!

Hi, that would indeed be strange, can you provide steps to reproduce the problem? Doing a quick check compiling on the command it seems to work as expected (with osx-vscode-release and osx-make-release), both produce identical executables:

However, it is possible to override the original build config files in the project, or dependencies, this type of bug can happen when osx-vscode-release has been overridden in a project, but the build_type=Release hasn't been set in the config file.
Can you do a ./fips list configs in your project directory and post the list here? This should show where the osx-vscode-release config is taken from.


manually entered transaction dates are not used and are not exportable: feels like they are thrown away

Who is your user?
This is an issue for collectives which are their own fiscal hosts,  and who want to keep a record of transactions that happen in their bank account, completely outside of the OC platform.
What are they trying to achieve?

These users want to be able to understand why the "Todays Balance" number on opencollective homepage is so different from their bank account balance.

VERSUS

When I see two accounts that do not match up, I know how to fix it.  We fix it by zipping together the two transaction records so that  each entry in system A matches up with one or more entries in system B, or vice versa.
One can use a spreadsheet program to do this, or one can create software to do it.
When I was looking at this spreadsheet data, my eyes glazed over:

I ended up opting for the "create software" option:
https://git.cyberia.club/cyberia/layerzero-account-balance/
Here is a screenshot of the output of my software.  So far it is pretty good at matching up transactions based on the amount and the date, including contribution transactions which get bunched up into single stripe deposits into our bank account:

So far so good...  Contributions are looking great.  Now we just need to match up contributions & expenses that are originated outside the OC system & then manually entered.   We also need to manually enter any contributions and expenses that are not represented in the OC system yet.
How are they currently doing this?
I manually went through the output of my automated matcher-upper script and found all the contributions & expenses that are originated outside the OC system.
I made a list of them.
Then I went into the OC web application and went through the "enter expense" flow in order to enter the expenses and contributions.
Here is one of the expenses in question:

You can see the submitted date is December 1, 2022 and the manually entered transaction date is Date: October 7, 2022.
(BTW, this is what the submission form looks like when submitting such an expense):

However, notice that the date that was entered for this expense is not used for sorting. Instead, the submitted date was used for sorting:

And when the Download CSV feature is used, even if we manually tick all of the "custom fields" checkboxes that have to do with dates and times, the manually entered date is not present in the exported CSV file, only the submitted date is there.
This means that we cannot use the transaction CSV export to match up our records. It does not include the transaction dates, which are very important to the matching-up process.
We would have to do everything manually or potentially create a custom API integration with the GraphQL API: https://graphql-docs-v2.opencollective.com/
How well understood is this problem?

[ ] Surfacing: if you feel this is a seed of an idea that needs to be researched.
[X] Understanding: if you've done some research and feel it is already well understood and ready for shaping.
[ ] Shaping:  if you feel a solution is clearly defined and can be made into a pitch (read more about shaping)
[ ] Pitching: if you feel that it is ready to be presented for prioritisation (read more about pitching)

BTW I was able to access these dates via the graphQL API. here is an example for node.js:
import fetch from 'node-fetch';

// querying-graphql-with-node
// https://stackoverflow.com/a/62231582/1592004

const token = process.env.OPENCOLLECTIVE_TOKEN;

// https://graphql-docs-v2.opencollective.com/queries/transactions

const transactionsGraphQLQuery = `query (
  $account: [AccountReferenceInput!]
  $limit: Int!
  $offset: Int!
  $type: TransactionType
  $paymentMethodType: [PaymentMethodType]
  $fromAccount: AccountReferenceInput
  $host: AccountReferenceInput
  $orderBy: ChronologicalOrderInput!
  $dateFrom: DateTime
  $dateTo: DateTime
  $searchTerm: String
  $hasExpense: Boolean
  $hasOrder: Boolean
  $includeRegularTransactions: Boolean!
  $includeIncognitoTransactions: Boolean!
  $includeChildrenTransactions: Boolean!
  $includeGiftCardTransactions: Boolean!
  $includeDebts: Boolean!
  $kind: [TransactionKind]
  $group: String
  $dynamic: Boolean
  $full: Boolean
) {
  transactions(
    account: $account
    limit: $limit
    offset: $offset
    type: $type
    paymentMethodType: $paymentMethodType
    fromAccount: $fromAccount
    host: $host
    orderBy: $orderBy
    dateFrom: $dateFrom
    dateTo: $dateTo
    searchTerm: $searchTerm
    hasExpense: $hasExpense
    hasOrder: $hasOrder
    includeRegularTransactions: $includeRegularTransactions
    includeIncognitoTransactions: $includeIncognitoTransactions
    includeChildrenTransactions: $includeChildrenTransactions
    includeGiftCardTransactions: $includeGiftCardTransactions
    includeDebts: $includeDebts
    kind: $kind
    group: $group
  ) {
    offset
    limit
    totalCount
    nodes {
      type
      kind
      description(dynamic: $dynamic, full: $full)
      amount {
        value
        currency
        valueInCents
      }
      paymentProcessorFee {
        valueInCents
      }
      fromAccount {
        slug
        name
      }
      toAccount {
        slug
        name
      }
      expense {
        legacyId
        items {
          incurredAt
          description
          amount
        }
      }
      order {
        status
        description
        processedAt
      }
      isRefunded
      isRefund
      isDisputed
      isInReview
      isOrderRejected
    }
  }
}`;

const response = await fetch('https://api.opencollective.com/graphql/v2', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'authorization': `Bearer ${token}`,
      },
      body: JSON.stringify({
        query: transactionsGraphQLQuery,
        variables: {
          limit: 1000,
          offset: 0,
          orderBy: { "field": "CREATED_AT", "direction": "DESC" },
          includeRegularTransactions: true,
          includeIncognitoTransactions: true,
          includeChildrenTransactions: true,
          includeGiftCardTransactions: true,
          includeDebts: true,
          host: {slug: "layerzero"}
        }
      }),
})

console.log(response.status, response.statusText)

const responseObject = await response.json();

console.log(JSON.stringify(responseObject, null, "  "))

Hi @ForestJohnson, sorry for the late response; this issue slipped our attention.

The date on the transaction.createdAt is when the payment occurs; it cannot be tampered with.
The date you've set in the expense form was set on the item and is meant to represent the date of the invoice/receipt. There can be multiple items, with each different date. The way you accessed that through transactions.expense.items.incurredAt is correct.

I'm closing as it seems to be resolved, but feel free to re-open if you have other questions.

Ah, I didn't fully update the issue as I discovered work arounds.
AFAIK this is still an issue in terms of the
transactions.expense.items.incurredAt
Being really hard to access, there is no indication that its even possible to access until you start digging into the graphql api

No, this is not true, I cannot re-open it: https://stackoverflow.com/a/21333938/1592004

If you are not a collaborator of a repo, then (in regards to issues)

you can open issues
you can comment on all existing issues (open or closed)
you can close your own issues
you can re-open your own issues if you closed them yourself
you cannot close or re-open issues opened by someone else
you cannot re-open your own issues if a repo collaborator closed them

So I would like to propose:

in the transactons list view,  add the option to sort by manually entered transaction date

if there is no manually entered transaction date, it should use whatever date it uses now.
if there are multiple manually entered dates, maybe use the most recent one for descending  view and oldest one for ascending view? Or something?

In the Transactions CSV export feature, add an option to include the transactions.expense.items.incurredAt field.

For transactions with multiple items,  either put multiple dates in the same table cell, or just pick the most recent date

No, this is not true, I cannot re-open it: stackoverflow.com/a/21333938/1592004

Thanks for sharing, I was not aware of this limitation with Github.

in the transactons list view, add the option to sort by manually entered transaction date

The fundamental problem is that most expenses have multiple items with different dates. Even if we go with a min date/max date approach like suggested, you can see how this behavior will be challenging to predict and explain clearly in the interface.

what's the point of allowing us to enter it in the 1st place?

Today, this date is collected by fiscal hosts because they need it for legal reasons; the date of a receipt is part of its mandatory metadata.

In the Transactions CSV export feature, add an option to include the transactions.expense.items.incurredAt field.

That's something we could do, even though the variable number of items makes it difficult to deal with.

I'd like to suggest another solution to address the use case you've described in the root issue. Simply put, what you're trying to achieve is to specify the date at which an expense took place when importing historical transactions from your bank account into Open Collective (please correct me if this assumption is wrong).
So, really, what you're looking for is not expense.item.incurredAt, but more of an expense.incurredAt field. In fact, expense.paidAt would probably be an even better representation. While the latest could be a bit more challenging to design, the expense.incurredAt field actually exists already in our model (it currently defaults to the date of creation). We could:

Expose this field in the createExpense mutation to let you customize it in your script
By default, sort the expenses list using this field rather than createdAt
Add the field in the CSV export

How would that work our for you?


WIP: BDD tests - Initial set

Implements a minimal set of BDD tests using Godog, to help outline suite and scenario structure.
To run the tests, execute the following commands:

Install godog: go get github.com/DATA-DOG/godog/cmd/godog
Change to the featuretests directory: cd featuretests/
Run the individual suites: cd spaces && go test or cd spaces && godog ../../features/spaces/

The feature files (BDD scenarios) are present in features/ while the corresponding test implementation is in featuretests/.
Note: Setup Code is replicated across suites due to test isolation.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

[test]

Current coverage is 69.80% (diff: 100%)

Merging #678 into master will not change coverage

@@             master       #678   diff @@
==========================================
  Files            76         76
  Lines          4391       4391
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           3065       3065
  Misses         1030       1030
  Partials        296        296

Powered by Codecov. Last update 30fb7d7...311bc16

Do you have a way as parts of the build scripts to invoke this?

@aslakknutsen We could write up a bash script that iterates through various suite directories and executes go test within them. Collating results and publishing it somewhere is possible using the JUnit formatter of godog. What do you think? I'll track these are two additional tasks to complete this PR.

@kwk Thoughts? This would require the built Core image to run as well as the DB

@aslakknutsen looking at it now.

I haven't looked through everything yet, but have talked to @ldimaggi . @aslakknutsen yes, the core needs to be running. And we also need to make sure that tests clean up after they have been running. Since tests run against the core process we can no longer assume that we can have a defered function that cleans up all created objects.
The most naive, brutal, and probably time intensive way to get a fresh database is by destroying and recreating the postgres docker container for every feature that is being tested. This would also mean that core will lose its connection to the DB and so we would have to restart core as well all the time.
I'm looking to find another way to reset the database back to its state after core was started and come back later.
@

Currently trying to find out if this answer is any good: CREATE DATABASE ... TEMPLATE: http://dba.stackexchange.com/a/3447

I have to postpone my work on this in order to finish my tasks. But I have sketeched out some ideas for running this on CI.

@VineetReynolds you mentioned that some tests are failing. Please, make sure that all your tests work so I can be certain I broke something on my side if a test is failing. Okay?

@kwk To follow up on the discussion over chat, the 2 out of 3 scenarios for "story-357" on creating new spaces fail, as space names are unique across all spaces instead of spaces under a user or org.

I've added a CICO script to run the BDD tests. You can run what the CI does (without installation of packages) on your computer by executing:
export SKIP_PKG_INSTALLATION=1; bash ./cico_run_bdd_tests.sh

After the merge of master into this branch, those tests fail badly. Version d8c1015 was somewhat better.
I still need to do some clean up and figure out what problems there are now.

@VineetReynolds I have updated your PR to include everything to let the tests run from CI. But you need to make sure that the tests run. We cannot leave BDD tests untouched if master changes. Can you please make sure your tests work again? No matter what you do, please don't rebase.

[test]


Signpost to API reference for StorageClass

This PR adds metadata in the front matter of the /docs/concepts/storage/storage-classes.md file. With this change, the StorageClass API reference link is prominently displayed at the top of the meta links (alongside "Edit this page" and "Create an Issue") on "Storage Classes" concept page.
Updated Preview Page

/lgtm


Support the use of multiple tags for operations

User story.
As a technical writer, I'd like to be able to use multiple tags on operations to have them appear in more than one location in the documentation.
Is your feature request related to a problem?
Depends on what you consider a problem. Stoplight Elements currently ignores all but the first tag in a tags array. Some might think that's a problem.
Describe the solution you'd like
The tags property of an operation takes an array for a reason: to allow flexibility in how information is organized in the documentation. Here's a faked sample-- don't worry about any missing parts:
/pets
get:
summary: List pets
description: See all pets available for adoption.
tags:
- Pets
- Cats
- Dogs
That should result in left column navigation that looks something like this:
Cats
List pets
Dogs
List pets
Pets
List pets
The example would have more impact if there were other tags and operations mixed in there, but hopefully it conveys the idea.

This is a good point. Stoplight has historically used the first tag only, and that may have been a specific requirement at some point, but I do wonder why. I can try and poke some people to find out, but I think this would be a good PR and if there's any conflict we can put it behind some sort of switch at least.

Can, perhaps, multiple tags be used to have nested foldable routes?

The convention is that the first tag is used for navigation structure, then other tags can be used for whatever other purposes people use them for (all sorts of things from team ownership to code generation).
Popping those extra tags in to make nested navigation would be a breaking change and potentially a bit messy.
Have you ever seen x-tagGroups from our friends over at ReDoc?
https://redocly.com/docs/api-reference-docs/specification-extensions/x-tag-groups/
Would something like that solve the use case?

Message ID: @.***>

yeah @philsturgeon, i found that a couple days ago. that's the best solution imo
-> #1390

Cool! I think we can close this one down, @steve-nay-sage perhaps you could subscribe to #1390 instead.

I'd like to point out that the related issue (introducing tag groups) doesn't solve all the use cases that people use multiple tags for. Sometimes even though we want to design clean APIs, the product requirements are weird, and it results in operations being related to two different concerns. Not Pets > Cats and Pets > Dogs, but more like Pets > Cats and Banking.
Other tools simply make the operation available in both of these tags, e.g. openapi-generator will create the investInCats method in both the Cats service and the Banking service.
Tag grouping can be a complement to this.


Restify next(err) don't serialize extraneous options created by makeConstructor

When sending error with next(error) callback, response sent to client does not contain optionnal properties of my new Error Object created with makeConstructor restify-errors module.
Env : Node v12.18.3 with ESM loader (type: "module") in package.json
Example :
import errs from 'restify-errors';
const TestError = errs.makeConstructor("TestError", {
   statusCode: 500,
   info: {errcode: "ERR_GENERIC"},
   message:"App Error"
});
const tmp = new TestError();
console.log("tmp.info exists : ", JSON.stringify(tmp.info));
console.log("But this is sent to client when next(tmp) called : ", JSON.stringify(tmp));

Print :
tmp.info exists : {"errcode":"ERR_GENERIC"}
But this is sent to client when next(tmp) called : {"code":"Test","message":"App Error"}

It seems to be caused by JSON.stringify that only check for ownProperties (it don't look for prototype chain).

I finally used this workaround :
import errs from 'restify-errors';

const toJSONf= function() {
    let tmp = {};
    for(let key in this) {
        if(typeof this[key] !== 'function' && !key.startsWith('jse_') && key!=="body")
            tmp[key] = this[key];
    }
    return tmp;
}

const TestError = errs.makeConstructor("TestError", {
    statusCode: 500,
    info: {errcode: "ERR_GENERIC"},
    message:"App Error",
    toJSON: toJSONf
});


Can't edit pipeline that has been submitted and run

Module: Create a regression model with Azure Machine Learning designer
Lab/Demo: Explore Regression with Azure Machine Learning Designer
Task: Create Training Pipeline
Step: 1. Return to the pipeline you created
Description of issue
After running the pipeline which prepares the dataset for model training I am unable to edit the pipeline again without cloning it first - this is if I select the pipeline through the 'Jobs' list under 'Assets' in the menu group on the left.
The documentation should direct users to go to the 'Designer' option under the 'Authoring' group.
Documentation source: instructions/02a-create-regression-model.md
Repro steps:

Create pipeline, add transformations, run pipeline.
Return to pipeline created in previous step
Am now unable to edit pipeline, only option is to clone and make edits to clone.

Same problem when I get to Evaluate Model

I'm also not clear on the difference between steps 6 & 7 under the heading Evaluate Model

And it would be good to include a description of what an Inference Pipeline actually is or what it does.

I can confirm the Python code as given in the training module fails and that @HairyDrumroll's version works. Here's the error when using the original:
Execution failed. User process '/azureml-envs/azureml_8f317849db35f281450cf74333640b98/bin/python' exited with status code 1. Please check log file 'user_logs/std_log.txt' for error details. Error:     ModuleReflector(parser.module_entry, env).exec(   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/modulehost/module_reflector.py", line 397, in exec     self._handle_exception(bex)   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/modulehost/module_reflector.py", line 471, in _handle_exception     raise exception   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/modulehost/module_reflector.py", line 379, in exec     output_tuple = self._entry.func(**reflected_input_ports, **reflected_parameters)   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/modulehost/module_reflector.py", line 76, in wrapper     ret = func(*args, **validated_args)   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/modules/python_language_modules/execute_python_script.py", line 126, in run     return _run_impl(**input_values)   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/modules/python_language_modules/execute_python_script.py", line 216, in _run_impl     ErrorMapping.throw(executing_script_error)   File "/azureml-envs/azureml_8f317849db35f281450cf74333640b98/lib/python3.8/site-packages/azureml/studio/common/error.py", line 835, in throw     raise err azureml.studio.common.error.FailedToEvaluateScriptError: The following error occurred during script evaluation, please view the output log for more information: ---------- Start of error message from Python interpreter ---------- Got exception when invoking script: 'IndentationError: unexpected indent (user_script_8ca2342671e34bb0bf50fe17714f4eb4.py, line 1)'. ---------- End of error message from Python  interpreter  ----------

@HairyDrumroll, thanks for bringing these issues up. Let me go through them one by one.
Topic 1 - unable to edit pipeline.
It sounds like the UI got a bit of an update and my instructions could be clearer. I will update the instructions with directions to return to the pipeline by selecting designer>pipelines.
The edit issue occurs if you stay on the "jobs" tab.

If you go back to the designer page, you can select your pipeline and continue to edit it.

Sounds like the same issue for Evaluate Model. Hope this resolves both.

Topic 2 - steps 6 & 7 in Evaluate Model section repeat. I have removed the repeat. Thanks for identifying that.

Topic 3 - more information on inference pipelines would be helpful.
Totally, you can find more information here. What is covered is out of scope for AI-900 but is covered in DP-100.
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/innovate/best-practices/ml-deployment-inference

Topic 4 - @HairyDrumroll @John-Vance , yes, there is an issue with the copy and paste adding an extra space. Thanks for bringing that to my attention. I will add a note for users to be aware that might be an issue.


I don't get articles from all rss sources

Hi, I've added some custom rss sources to Kindleear from the webpage and I just receive some of them. I mean, from some sources I get all the articles, from others I get nothing. For example, it happens with this feed from Lifehacker which is quite famous. I can send a book through Calibre setting the same url. Any idea? I don't get any information looking at the GAE log. Thanks!

KindleEar supports only RSS/ATOM format. but the link you give in issue is HTML format,
you can append a query string 'format=xml' to the link, for example:
http://feeds.gawker.com/lifehacker/vip?format=xml

@cdhigh Now, it works like a charm, thanks a lot!


cgroups: report device names with blkio metrics

Signed-off-by: Stephen J Day<EMAIL_ADDRESS>

Codecov Report

Merging #9 into master will increase coverage by 0.81%.
The diff coverage is 62.79%.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
+ Coverage   36.89%   37.71%   +0.81%
==========================================
  Files          20       20
  Lines        1347     1384      +37
==========================================
+ Hits          497      522      +25
- Misses        755      764       +9
- Partials       95       98       +3

Impacted Files
Coverage Δ

blkio.go
25.11% <62.79%> (+9.02%)
:arrow_up:

Continue to review full report at Codecov.

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


fix the package config (and more)

so i think i had tried transitioning to using pyproject.toml but did not do it correctly. still might need to fiddle with this, but this gets a local install working properly at least...

this will mostly address #7  but i'll leave #7 open until a release is cut


runtime: cannot run go file using qemu-arm when I disable core 0 in docker

What version of Go are you using (go version)?

$ go version
go version go1.12.6 linux/arm

Does this issue reproduce with the latest release?
Yes. I have tested it with g1.14.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="arm"
GOBIN=""
GOCACHE="/home/quickbuild/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/quickbuild/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/golang"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_arm"
GCCGO="gccgo"
GOARM="7"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build242285369=/tmp/go-build -gno-record-gcc-switches"

What did you do?

package main
func main(){
for i:=0; i<1000; i++ {
println("Hello world")
}
}
What did you expect to see?
Hello world
Hello world
Hello world
... (997 times more)
What did you see instead?

bash-3.2# go run test.go
fatal error: schedule: holding locks
panic during panic
SIGILL: illegal instruction
PC=0xc9ec4c m=3 sigcode=2
goroutine 122 [runnable]:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)
bash-3.2#
Hello!
I figure out that sometimes simple go application is not working.
I am using docker + qemu-arm + go( for armv7l).
These are version info below.
root@VDBS1535:~# docker -v
Docker version 17.09.1-ce, build 19e2cf6
bash-3.2# qemu-arm --version
qemu-arm version 2.7.0, Copyright (c) 2003-2016 Fabrice Bellard and the QEMU Project developers
This issue is come only when I disable core 0 using a command below.
please check "--cpuset-cpus=1-55" option.
sudo docker run --privileged -d -i -t --cpuset-cpus=1-55 --mount type=bind,source="/home/dw83kim/mnt",destination="/mnt" --network host --name="ubuntu_core1" ubuntu:xenial-20200212

We currently lack a QEMU builder (#1508), and per http://golang.org/wiki/PortingPolicy, supported platforms require builders. Therefore, the QEMU platform is not supported.
Also note that QEMU has known bugs that may cause Go programs to fail (#33746).
Please let us know if the issue is reproducible using a supported OS on a physical ARM platform.

Hello guys
Thanks for your rapid reply.
I took long time to  test.
Fortunately the issue is fixed.
Please check it below.
https://bugs.launchpad.net/qemu/+bug/1868055
Thanks!

Fixed, closing.


Android - Hybrid app - Login - 'Join' and 'Next' button are not disabled in offline mode

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v9.0.49-1
Reproducible in staging?: N
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/5088467
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Navigate to Hybrid android App
In the email field, enter email address for a new account
Press Next
Disable the internet connection in the device
Notice “Join” button is not disabled.
Go back to the email field Notice that the Next button is also not disabled.

Expected Result:
'Join' and 'Next' button are disabled in offline mode
Actual Result:
'Join' and 'Next' button are not disabled in offline mode
Workaround:
Unknown
Platforms:

[ ] Android: Standalone
[x] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/63a4ae61-941c-4a43-8e2e-61699ef79433

View all open jobs on GitHub

@twisterdotcom  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Sorry but is the video in this isssue is right one?

@IuliiaHerets I don't think this is an issue given the video right?

QA team can repro this issue in the latest build, sorry, firstly added the wrong video
https://github.com/user-attachments/assets/7a760369-e274-4bf9-a8aa-fc7cbd54e574

@twisterdotcom I don't think HybridApp bugs can be worked on externally?

Issue not reproducible during KI retests. (First week)


Develop

Coverage increased (+100.0%) to 100.0% when pulling 5a96324ee9ffd03b09eede6ba04f5c5cc02d8044 on develop into 72dee13f183358b67ffbba42061e5dc9d42edcbc on master.

Coverage increased (+100.0%) to 100.0% when pulling 2cd92ce0656d61a112394806973645fac66be38d on develop into 72dee13f183358b67ffbba42061e5dc9d42edcbc on master.

Coverage increased (+100.0%) to 100.0% when pulling 6e85c3abeb0ff001d823a504cd98308069fc6bbd on develop into 72dee13f183358b67ffbba42061e5dc9d42edcbc on master.

Coverage increased (+100.0%) to 100.0% when pulling 0839afcfb3c8900f2709bf00f59194320affe45a on develop into 72dee13f183358b67ffbba42061e5dc9d42edcbc on master.

Coverage increased (+100.0%) to 100.0% when pulling 39c0aca12ba80ad537a709afa20f68eed936fbac on develop into 72dee13f183358b67ffbba42061e5dc9d42edcbc on master.

Coverage increased (+100.0%) to 100.0% when pulling 5b27ade00d943d2019c27d784dc0afef4c7ff62a on develop into 72dee13f183358b67ffbba42061e5dc9d42edcbc on master.


Including the sentry system service in overview

Update the overview hosting diagrams https://github.com/dapr/docs/blob/master/overview.md
Add the sentry service description in overview docs

Closed with #337


Db root

Alongside bringing quick_setup.py inline with configure_cairis_db.py added root password to cairis.cnf so as to allow the creation/deletion of databases on installations that are set to use passwords on root.

Coverage remained the same at 62.077% when pulling 736d341c7edad4f6a323491447de909f1a80670d on nathanbjenx:db-root into 5a922324f516a3227179c5d361d5d66ac9b28c3c on failys:master.

Yes you're quite right it shouldn't be!

Coverage remained the same at 62.077% when pulling 736d341c7edad4f6a323491447de909f1a80670d on nathanbjenx:db-root into 5a922324f516a3227179c5d361d5d66ac9b28c3c on failys:master.


fix(datasets): consistent dataset list

SUMMARY

closes: https://github.com/apache/superset/issues/14262
Currently, between the Dataset list view and change dataset modal datasets order is inconsistent. The change dataset modal can not display all datasets.
This PR make

Dataset list view and change dataset modal datasets order is consistent
make server pagination in change dataset modal
All datasets can be displayed in change dataset modal
backend sort by in change dataset modal
use owners replace creator

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Before

After
Consistent dataset list between dataset list and Change dataset modal

https://user-images.githubusercontent.com/2016594/121185206-67fab580-c898-11eb-9f7c-5b0d61c79d9c.mp4
TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[x] Has associated issue: https://github.com/apache/superset/issues/14262
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up

😞thanks for the PR.

after the PR, sorting no longer work~ :(  please make sure when we add new feature, the old related behavior is preserved.
not related to this PR, please have pagination fixed at the bottom on scroll.

https://user-images.githubusercontent.com/67837651/121073555-802edf80-c787-11eb-9697-a8a2e95c8573.mov

@junlincc

The frontend sorting seems that not work previous. the after screenshot is on the master branch.

the pagination flowing, I will fix it in separate PR.

/testenv up

/testenv up

@zhaoyongjie thanks for addressing the issues! Pagination is 'fixed' and Sort works mostly as expected! 🙏
only thing I'm not sure is the cap F goes to the top of the list.
I spot checked pagination in other areas, list view, data south table, they all look good!
https://user-images.githubusercontent.com/67837651/121239710-6efcd600-c84e-11eb-899d-4c4d76b5ae9d.mov

@zhaoyongjie thanks for addressing the issues! Pagination is 'fixed' and Sort works mostly as expected! 🙏
only thing I'm not sure is the cap F goes to the top of the list.
I spot checked pagination in other areas, list view, data south table, they all look good!
Screen.Recording.2021-06-08.at.11.38.44.AM.mov

Due to server sorting, it's order is ASCII order. refer to:
https://support.ecisolutions.com/doc-ddms/help/reportsmenu/ascii_sort_order_chart.htm

Got it, let's address it in a separate PR. 🟢


Incorrect Message Owner Validation in caller_address FN Reverts Transaction

The caller_address function currently has an issue when validating the owners of inputs. Specifically, when validating the owner of a message, the function uses the message sender, but the correct owner of the message is in the field recipient.
This incorrect validation results in the transaction reverting with val 0x0 when a contract function calls msg_sender and the transaction includes a Message Coin within its inputs.
You can see the problematic code here:
https://github.com/FuelLabs/sway/blob/1bda0e8c9862d04e230abee09f17607c11d9d152/sway-lib-std/src/auth.sw#L165-L167

when the user has a message funding the transaction, this breaks the withdraw of erc20 in the bridge as the fungible token uses msg_sender resulting in a revert(0)

Some questions:

Can a Message be generated by means other than the generation by the PoA when including messages that come from L1?

If the answer above is no, and generation of Messages is restricted to PoA:

Is the senderfield of a message always a L1 entity?

If the answer above is yes, following the logic:

Does it make more sense to say that we should be looking at the message recipient rather than the sender? The message recipient would always be a fuel entity, which is the owner of the message. Looking into the sender of the message input to derive the sender of the call might be more of an idiomatic intuition than the logic thing to do. A L1 entity would never be a call sender.

As discussed internally:

Messages can only be generated by the block producer as a result of the message parsing from L1. From this it is derived that the InputMessage::sender is always a L1 address
The owner of a message is its recipient, which is a L2 entity. Thus, we should change the code to check the recipient, not the sender.


chore(deps): update commitlint monorepo to v8.3.3

This PR contains the following updates:

Package
Type
Update
Change

@commitlint/cli
devDependencies
minor
8.2.0 -> 8.3.3

@commitlint/config-conventional
devDependencies
minor
8.2.0 -> 8.3.3

Release Notes

conventional-changelog/commitlint
v8.3.3
Compare Source
v8.3.2
Compare Source
v8.3.1
Compare Source
Bug Fixes

load: resolve nested parser preset factories (#831) (73a7df7)

v8.3.0
Compare Source
Features

cli: add helpurl flag (#789) (75cef4e)
config-conventional: use parser with short breaking change support (#821) (4b5300a)
resolve-extends: accept absolute path in extends (#825) (ecac29f)

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about these updates again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

:tada: This PR is included in version 2.153.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.153.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Redirecting command output to file results in different row counts each time

Environment
Windows build number: Win32NT             10.0.19041.0 Microsoft Windows NT 10.0.19041.0
Your Distribution version: (Debian) Release:        10
Whether the issue is on WSL 2 and/or WSL 1:Linux version 4.19.104-microsoft-standard (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Wed Feb 19 06:37:35 UTC 2020

Steps to reproduce
Run the following command multiple times:
/mnt/c/Program\ Files\ (x86)/Calibre2/calibredb.exe --with-library http://localhost:8080/#Calibre_Library list -s "vl:Unread" -f "id" --sort-by id --ascending > /mnt/c/temp/a.out ; wc -l /mnt/c/temp/a.out
-->
Expected behavior
The command should write the output of the calibredb command to the file a.out each time and result in a.out containing 3806 lines on each invocation.
Actual behavior
The number of lines written to a.out varies on each invocation of the command as can be seen in screenshot 1.
Other information
If I pipe the output to the wc command instead of writing to a file the output is 3806 every time, as expected. See screenshot 2.
/mnt/c/Program\ Files\ (x86)/Calibre2/calibredb.exe --with-library http://localhost:8080/#Calibre_Library list -s "vl:Unread" -f "id" --sort-by id --ascending | wc -l

Update: I have rolled back my WSL instance from WSL2 to WSL1 and can confirm that this problem only manifests in the WSL2 instance.

Ref #4082 which has an evens chance of being the same. The one line submitted above is not a repro.

So I had one day when this worked, but now the original construct is back to producing random truncated output:
/mnt/c/path/to/windows.exe > /mnt/c/temp.a.out
whereas the truncation does not seem to occur with:
/mnt/c/path/to/windows.exe > ~/a.out


Mention apache license in release notes

Before contributing, please read our contributing guidelines and code of conduct.
Overview

CHANGELOG updates for mentioning Apache 2.0 license

BTW, thank you so much for changing the license to Apache 2. My software under the AGPL license could use none of the application monitoring tools because they all had proprietary SDKs. Now I have a choice.


Added playwright information for debian

Reference Issues/PRs
resolve #283
What does this implement/fix?

Added missing information (guide) on how to resolve dependencies which are required, in order to install playwright (which is required to run tests) on debian

Neat👌. FYI https://github.com/brillout/vite-plugin-ssr/commit/2c8a7bddd27b8d3a34f7f16eed50615fb7c36355.


Unable to access kcContext.properties

Hi, I'm trying to migrate an existing .ftl theme to ReactJS and have encountered some issues.
I aim to make the logo and favicon URLs dynamic so that I can customize these images for each realm. In pursuit of this, I referred to extraThemeProperties and decided to add the URL to the environment. I successfully added a new theme property. However, when attempting to access properties from the kcContext, I encountered the error "Property 'properties' does not exist on type 'KcContext'." Upon inspecting the KcContext from the console, I couldn't find the properties field.
More Information:

Part of my package.json file:

"version": "5.1.4",
"keycloakify": {
    "themeName": "myrealm-v3-react",
    "loginThemeResourcesFromKeycloakVersion": "19.0.1",
    "extraThemeProperties": [
        "locales=en,vi",
        "logoUrl": "${env.LOGO_URL}"
    ]
},
"dependencies": {
    "evt": "^2.5.7",
    "keycloakify": "^9.1.9",
    "node-fetch": "2.6.1",
    "react": "18.1.0",
    "react-dom": "18.1.0"
},

Thank you

Hello @huyenvu2101,
A few things:

The type definition for the KcContext["properties"] has been added very recently, you should update Keycloakfy.
Regardless of what TypeScript says, the kcContext.properties does exist at runtime. The type definition of the KcContext is meerly a manually updated reflexion of what's actually observed to be there at runtime.  It's the Keycloak server that fills up the KcContext, not keycloakify. Keycloakify just convert the FTL context into a JavaScript context.
I see you're specifying your Keycloakify options in your package.json. I assumer you're using Webpack and not Vite? Because if you're using Vite, the keycloakify options are better defined in the vite.config.ts.

See: https://docs.keycloakify.dev/environnement-variables

thank you for your quick response, I'll try


fix ownership for tmp/cache directory

This should be owned by wwwrun:www but if this is an update, it is
owned by root. Thus, we need to force it to be owned by wwwrun:www
This follows up with the fix in 496976

what about doing so for all tmp. I think there's also a tmp/pids for example.

There is on only tmp/cache


Use traits and extension traits for explicit request methods

Right now, the generator crate generates two sets of protocol: one in the x11rb-protocol crate and one in the x11rb crate. The greater majority of the useful logic is in x11rb-protocol, and the parts in x11rb are mostly convenience functions. It would be nice if we could move the generated code that's currently in x11rb to x11rb_protocol, if not just to reduce the complexity of the generator, and to reduce the overall amount of generated code.
My proposal is to have a SendTarget trait, like this:
trait SendTarget<Req> where Req: ReplyRequest {
    type Output;

    fn send(&mut self, req: Req) -> Output;
}

Since there are three types of request traits with different expected outputs (VoidRequest, ReplyRequest and ReplyRequestWithFds), we would probably use three SendTarget traits to avoid overlap (since there's no real way to tell the compiler that types that implement VoidRequest will never implement ReplyRequest and ReplyRequestWithFds, and so on and so forth).
Then, we'd implement them on x11rb::RequestConnection like so:
impl<'c, Conn: RequestConnection + ?Sized, Req: ReplyRequest> SendTarget<Req> for &'c Conn {
    type Output = Result<Cookie<'c, Conn, Req::Reply>, ConnectionError>;

    fn send(&mut self, req: Req) -> Self::Output {
        /* ... */
    }
}

Then, you could implement the utility functions like this:
pub fn foo<S: SendTarget<FooRequest>>(conn: &mut S, foo: u32) -> S::Output {
    let req = FooRequest { foo };
    conn.send(req);
}

Finally, you could also reimplement utility traits (ConnectionExt) to use SendTarget instead of RequestConnection.
What are your thoughts on this @psychon?

Quick first reaction: The current convenience code for PutImage can use an IoSlice and does not have to copy all the pixel data for sending (well, perhaps copy it into the output buffer, but if it is too large for that, then it might still be send without copy). The current trait-based request sending has to put the whole request into a single Vec<u8>, because of lifetime issues. This is why I left the code in its current "there are two ways to send requests"-state. I think I already commented on this on some other issue that you opened, but I don't have much time to look for that currently:
TL;DR: Yup, the goal sounds great, but I am worried about performance regressions due to this design (even though I always say that performance goals should be measured and not just assumed, I just assumed...)

Yeah. I’ll whip up a branch this week, and see how the PutImage request suffers.

Just experimented with this; I don't think it works. It relies on being able to implement the foreign trait (e.g. SendTarget) on a local generic type (e.g. Conn: RequestConnection), which Rust's trait resolver can't do.


DEC L implementation and tests

Coverage increased (+0.008%) to 99.115% when pulling 80bdda5df9ee8cb41d9c6c8f27f5aafb6b3e02ef on decl-implementation into b5b61c0148e11d268ec982787fbe6dfc26f6a177 on master.


[Dev/Bug] Fivecells/Fourcells diverge

The user can't jump to the rule pages since fivecells and fourcells are different puzzle types in puzz.link.

Fixed in commit 0a093cf4f906a200222558965452805ebaf65c00 in the dev branch


Failed prop type: Invalid prop runOnMount of type string supplied to VelocityTransitionGroup, expected boolean.

this is my codes
<VelocityTransitionGroup ref='container' component='div' enter={enterAnimation} leave={leaveAnimation} runOnMount='true' className='container'>               <Table />          </VelocityTransitionGroup>
howover, ## the console occur 'Failed prop type: Invalid prop runOnMount of type string supplied to VelocityTransitionGroup, expected boolean.

You need runOnMount={true}

thank you


Run ethereum/tests in CI

Clones https://github.com/ethereum/tests and runs revme statetest on it :smiley:
Fixes #2

This is really nice! Thank you!

Seems like there is a serde error and the CLI does not exit with code 1 on failed tests

You are right, need to check newest test from eth and see what is going on.
New field (owner or caller) was recently added and maybe that is reason for json parssing error.

Yey, tests are now passing. You can merge this, And I can add error handling later.

I am not able to merge, you have to do that :sweat_smile:


feat: added Linux Mint Support

Added Linux Mint support.
Following Problems induced changes:

the codename for name: Debian | Add Tailscale Deb would point to wilma but it should be noble (viriginia -> jammy, etc. respectively)
Solution:

introduction of a mapping dict tailscale_debian_release, that replaces sub distro codenames to parent distro code names.
added Value for codename when calling ansible.builtin.apt_repository, but only if the codename has to be overridden

Linux Mint was not among the list of supported operating systems
Solution: added entries for Linux Mint at tailscale_debian_family_distros

URLs would include linux mint or wilma instead of ubuntu and noble (e.g. https://pkgs.tailscale.com/stable/linux mint/wilma.noarmor.gpg instead of https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg)
Solution:

also added entries for Linux mint at tailscale_debian_distro
added functionality to actually look up table values from tailscale_debian_distro with automatic fallback to ansible_distribution

Currently supported:

Linux Mint 21,22

Tested on:

Linux Mint 22
Debian 12

Ah, TIL platforms isn't respected by Galaxy anymore anyway
https://forum.ansible.com/t/role-meta-data-platform-key-broken/4651/9

Looks like apt_codename needs to be handled in the uninstall tasks: https://github.com/artis3n/ansible-role-tailscale/actions/runs/11873194056/job/33087762830?pr=515#step:6:277

Looks like apt_codename needs to be handled in the uninstall tasks: https://github.com/artis3n/ansible-role-tailscale/actions/runs/11873194056/job/33087762830?pr=515#step:6:277

I will take care of that.

Why is this image 4+GB? The other ubuntu-based ones are much smaller 🤔


[CodingStandard] from static to service

Possible space for forbidden non-public constructor sniff

Possible space for forbidden non-public constructor sniff


Trying to connect with Jxplorer

II think I did all the setup for the ldap server (using a docker container and Synology NAS) but I cannot manage to connect to it using Jxplorer or anything else. I didn't do the part for configuring Samba or to make the NAS as a client because I don't plan to use the ldap server like that. My plan is to use it with piserver.
What settings could I try ?

Is it possible that a firewall is blocking the port? If not, it may be that ldapseach is not considered a valid user DN by Jxplorer and prefixes it with a different value. Could you try "uid=ldapsearch" or "uid=ldapsearch,cn=users,dc=example,dc=com" instead?

Thank you. It works


RemotePushDelegate.h file not found

I tried to use react-native-remote-push but any callback is triggered, so on docs i see that is necessary put  #import "RemotePushDelegate.h" to AppDelegate.m. but i get a file not found alert on xcode.

Have you added the .m and .h files from the repo to your XCode project? Sounds like that might be the problem, if XCode isn't finding them in your build path

Massive apologies! My mistake, I hadn't checked in the file. It's now been pushed to the repository.


[Feature] Introduce "--device-model"

It"d be the same as "device-type" but more specific. Eg. trezor -> trezort + trezorone, leger -> ledgernanos, ledgernanox.
This'd be especially useful in some cases, like trezor setup. With Trezor T I can just tell the device to setup and it does everything by itself, however with Trezor One, I have to fire up a hwi console app, because setup requires a fair bit of interaction.
However I cannot differentiate between them based on what hwi enumerate tells me, so I'll have to ask the user what device he has before giving out the command.

I think we could just expand device-type to include the specific models while keeping the current generic types that could be multiple models. For example, if you just use trezor, it would talk to any Trezor device. But if you specified trezorone, then it will only communicate with a Trezor One.

Good idea. In enumerate this won't break software silently, which is good.


Colormap Dialog

The Autoscale option should not be checked when Colormap Dialog is invoked.

Why? If the default is autoscale, it should be checked. If it has been modified by the user not to be in autoscale, then you are correct.

As far as I have tested, the Autoscale option in the Colormap dialog depends on the currently used colormap.

@t20100
Do we have a clean way to set a default colormap? I do not consider it clean, but in PyMca I can import the module and I can change some static variables so that any new plot gets initialized with the chosen colormap unless explicitly set.

There is a setDefaultColormap method in silx Plot that it inherits from PyMca.
But there is no way to set a default for the default.
We can add a class attribute (it's the case for the default backend) or a module global variable for that. This very is easy to do.
We can also think of a unified way to set default variables as matplotlib.rcParams....

@sole, following comment in #1185, how I understand this issue is about having a global variable default colormap one can override to change all new PlotWidget default colormap.
This is not available, but one can create a subclass of any PlotWidget subclass to set its default through the API.
If this is enough (and to me it sounds reasonable), we can close this issue.


Feature mismatches between binding builders and Spring registration beans

We recently added many service-level configuration options to our fluent service binder. However, they are missing in our Spring registration beans, e.g. AccessLogWriter.
This means:

We have to add the same set of properties to registration beans when we update our service binding API.
We have to update the code that translates the registration beans into our service binding API.

.. which are just a bunch of boilerplate code that does not add much value in my opinion. I'm curious if Spring community really prefers registration beans to ArmeriaServerConfigurator. If so, what value does it bring Armeria+Spring users beyond following the convention?
This issue was discussed briefly at https://github.com/line/armeria/issues/1704#issuecomment-481236467 without clear conclusion, and I'd like to get to some conclusion before 1.0.

which are just a bunch of boilerplate code that does not add much value in my opinion.

I agree with it. So I really want to remove the APIs. But I'm extremely worried because there are so many users using it. 😭

com.linecorp.armeria.spring.MeterIdPrefixFunctionFactory could be removed as well now that we have ServiceConfig.defaultServiceName().


Ditto Compatibility App

Create an app that quickly tests overall Ditto compatibility and potential challenges on the current hardware and software. This is essentially an extended version of the WiFi Aware checker. This app should:

Setup appropriate Ditto permissions and show any issues with those (can potentially leverage the permissions health tools)
Show hardware and software versions in the UI

Include BLE version if possible

Notably, this app does not require the Ditto SDK (unless doing so makes a first draft faster)
If possible, build this as a tool and embed in a thin wrapper app.
This should also reference the details of what permissions we need and why from our docs when that becomes available in the near future.

Do we need a new repo for this?

@rajramsaroop Yes, we should be able to create one under the getditto org (private by default, to be made public later when ready)

Should it be a monorepo or should I make it Android specific?

@rajramsaroop I think Android-specific in this case.

So a quick outline of tasks to be done to create an MVP:

Create repo
Create new project in Android Studio and push to repo
Update the Health tool to include the wifi aware checker code
Include and display the Health tool in the app
Include links to documentation regarding permissions (should this be in the Health tool or just part of this app?)
Display hardware/software versions in app

Adding the Wifi aware code to either the app or the Health tool is pretty much the same amount of work, with the only difference being if it's added to the Health tool a tools update will be required.
Let me know if I'm missing anything. Will connect with @rdas-ditto to pair up.

Repo created and initial commit added.
The health tool that includes wifi aware capability checking is in review: https://github.com/getditto/DittoAndroidTools/issues/112
Once this is merged and published to maven, it should be trivial to integrate with the app

@rajramsaroop I think maybe you meant to link to #130 above?

Ya, updated. Thanks.


Godot crash on startup on Linux ARM64

Godot version
Downloaded from debian repository
System information
Debian Linux Arm64
Issue description
Godot 3 Crash on Debian 10 buster
Godot has been downloaded from "sudo apt install godot3*"
system info
Debian 10 Buster linux
Arm64
Ram 2 gb
Output

Steps to reproduce
Start Godot from terminal
'godot3
Minimal reproduction project
Old Log when launch godot from terminal
shared memfd open() failed: Function not implemented shared memfd open() failed: Function not implemented ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM default ERROR: init_device: Condition ' status < 0 ' is true. returned: ERR_CANT_OPEN At: drivers/alsa/audio_driver_alsa.cpp:80. ERROR: initialize: AudioDriverManager: all drivers failed, falling back to dummy driver At: servers/audio_server.cpp:165. OpenGL ES 3.0 Renderer: llvmpipe (LLVM 7.0, 128 bits) handle_crash: Program crashed with signal 11 Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues [1] linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x7fb0bfb4e0] () [2] /lib/aarch64-linux-gnu/libgcc_s.so.1(+0x6800) [0x7fafc85800] () [3] llvm::sys::Memory::protectMappedMemory(llvm::sys::MemoryBlock const&, unsigned int) () -- END OF BACKTRACE -- Aborted

This is a distribution-provided package, which is severely outdated and not supported anymore. We don't support Godot 3.2 anymore, so please use a recent build or compile one yourself.