[Android] Chromebook android numpad issue

Whenever capture keylistener using RawKeyboard.instance.keypressed.
i'm getting with numlock logical key.
this only happening in chromebook android
[✓] Flutter (Channel stable, 3.7.8, on Microsoft Windows [Version 10.0.22621.1413], locale en-US)
[✓] Windows Version (Installed version of Windows is version 10 or higher)
Checking Android licenses is taking an unexpectedly long time...[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.5.3)
[!] Android Studio (not installed)
[✓] VS Code (version 1.76.2)
[✓] Connected device (5 available)
[✓] HTTP Host Availability

Hi @selvam920
Can you be more specific on Steps to reproduce of this? (which key did you press? and which key is logged actually?...).
Can this sample code reproduce the issue?

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

void main() {
  runApp(
    const MaterialApp(
      home: MyWidget(),
    ),
  );
  RawKeyboard.instance.addListener((event) {
    final key = event.logicalKey.keyLabel;
    print('$key - ${event.runtimeType}');
  });
}

class MyWidget extends StatelessWidget {
  const MyWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: Text(
          'Build some widgets!',
        ),
      ),
    );
  }
}

Also, please retry on the latest master channel to check if the issue is fixed or not. (since I don't have a such device, I can't verify this).

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(const MyApp());
}
class CallbackShortcuts extends StatelessWidget {
const CallbackShortcuts({
super.key,
required this.bindings,
required this.child,
});
final Map<ShortcutActivator, VoidCallback> bindings;
final Widget child;
bool accepts(ShortcutActivator key, RawKeyEvent event, RawKeyboard state) {
if (event is! RawKeyDownEvent) {
return false;
}
var keypressed = (state.keysPressed);
//keypressed.removeWhere((element) => element == LogicalKeyboardKey.numLock);
final bool keysEqual =
    keypressed.difference(key.triggers!.toSet()).isEmpty &&
        key.triggers!.toSet().length == keypressed.length;
return keysEqual;

}
@override
Widget build(BuildContext context) {
return Focus(
autofocus: true,
onKey: (node, event) {
KeyEventResult result = KeyEventResult.ignored;
if (event is RawKeyDownEvent) {
print('label: ${event.data.keyLabel}');
for (final ShortcutActivator activator in bindings.keys) {
if (accepts(activator, event, RawKeyboard.instance)) {
bindings[activator]!.call();
result = KeyEventResult.handled;
}
}
}
return result;
},
child: child,
);
}
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State createState() => _MyAppState();
}
class _MyAppState extends State {
bool _onEventKey(RawKeyEvent event) {
final key = event.logicalKey.keyLabel;
if (event is KeyDownEvent) {
  if (event.runtimeType == RawKeyDownEvent) {
    if (event.isKeyPressed(LogicalKeyboardKey.arrowLeft)) {}
  }
  print("Key down: $key");
}

return false;

}
@override
void initState() {
super.initState();
// ServicesBinding.instance.keyboard.addHandler(_onKey);
}
@override
void dispose() {
//ServicesBinding.instance.keyboard.removeHandler(_onKey);
super.dispose();
}
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
int _counter = 0;
bool ischildfocused = false;
@override
Widget build(BuildContext context) {
return CallbackShortcuts(
bindings: <ShortcutActivator, VoidCallback>{
LogicalKeySet(LogicalKeyboardKey.arrowLeft): () {
print('arrow left');
},
LogicalKeySet(LogicalKeyboardKey.enter): () {
print('enter');
},
LogicalKeySet(
LogicalKeyboardKey.controlLeft, LogicalKeyboardKey.keyC): () {
print('ctrl c');
},
},
child: Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
children: [
TextField(
focusNode: FocusNode(
onKey: (node, event) {
KeyEventResult result = KeyEventResult.ignored;
final key = event.logicalKey.keyLabel;
if (event is RawKeyDownEvent) {
if (event.runtimeType == RawKeyDownEvent) {
//print('child: ' + event.toString());
if (event.isKeyPressed(LogicalKeyboardKey.enter)) {
print("child enter");
result = KeyEventResult.handled;
}
}
}
                  return result;
                },
              ),
            ),
          ],
        ),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    ));

}
}

the below screenshot debug chromebook android app

Thanks, but when I run your sample code, then press key arrow left, enter, ctrl c and I can see it's printed on the console log output. I'm not sure how to reproduce the issue.
Can you also share the Steps to reproduce along with clear Actual result and Expected result?

I don't have Chromebook device, I checked it on Android with a connected physical keyboard.
As I can see from your screenshot above, it seems there are two keys pressed (Control Left and Num Lock), right? And the issue is that Num Lock is printed even you have not pressed it, right?
From my end, when I press Control Left, the output from the console is:
D/ViewRootImpl( 5721): processKeyEvent,KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x0, repeatCount=0, eventTime=3846879, downTime=3846879, deviceId=-1, source=0x101, displayId=-1 }
D/DecorView( 5721): dispatchKeyEvent handled=true, KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x0, repeatCount=0, eventTime=3846879, downTime=3846879, deviceId=-1, source=0x101, displayId=-1 }, activity=com.example.reproduce_issues.MainActivity@883cbd5, mFeatureId=-1
I/flutter ( 5721): label:
D/ViewRootImpl( 5721): processKeyEvent,KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x80, repeatCount=1, eventTime=3846881, downTime=3846881, deviceId=-1, source=0x101, displayId=-1 }
D/DecorView( 5721): dispatchKeyEvent handled=true, KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x80, repeatCount=1, eventTime=3846881, downTime=3846881, deviceId=-1, source=0x101, displayId=-1 }, activity=com.example.reproduce_issues.MainActivity@883cbd5, mFeatureId=-1
D/DecorView( 5721): dispatchKeyEvent handled=false, KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x0, repeatCount=0, eventTime=3846879, downTime=3846879, deviceId=-1, source=0x101, displayId=-1 }, activity=com.example.reproduce_issues.MainActivity@883cbd5, mFeatureId=-1
I/flutter ( 5721): label:
D/DecorView( 5721): dispatchKeyEvent handled=false, KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=META_CTRL_ON|META_CTRL_LEFT_ON, flags=0x80, repeatCount=1, eventTime=3846881, downTime=3846881, deviceId=-1, source=0x101, displayId=-1 }, activity=com.example.reproduce_issues.MainActivity@883cbd5, mFeatureId=-1
D/ViewRootImpl( 5721): processKeyEvent,KeyEvent { action=ACTION_UP, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=0, flags=0x0, repeatCount=0, eventTime=3847011, downTime=3847011, deviceId=-1, source=0x101, displayId=-1 }
D/DecorView( 5721): dispatchKeyEvent handled=true, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=0, flags=0x200, repeatCount=0, eventTime=3847011, downTime=3847011, deviceId=-1, source=0x101, displayId=-1 }, activity=com.example.reproduce_issues.MainActivity@883cbd5, mFeatureId=-1
D/DecorView( 5721): dispatchKeyEvent handled=false, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_CTRL_LEFT, scanCode=0, metaState=0, flags=0x200, repeatCount=0, eventTime=3847011, downTime=3847011, deviceId=-1, source=0x101, displayId=-1 }, activity=com.example.reproduce_issues.MainActivity@883cbd5, mFeatureId=-1

Can you share the log printed when pressing Control Left?

this issue only in chromebook android

Labeling the issue for further insights.
Issue summary

Sample code: https://github.com/flutter/flutter/issues/123565#issuecomment-1486346869
Behavior (Actual result + Steps to reproduce): https://github.com/flutter/flutter/issues/123565#issuecomment-1486720112
Flutter version: https://github.com/flutter/flutter/issues/123565#issue-1642931966

any update?

same issues in chromecast keyboard


Add cloudscale.ch driver

Proposed changes
Add docker-machine-driver-cloudscale to the list of 3rd party drivers.

Deploy preview for docsdocker ready!
Built with commit 8a69676f6ade71c6cec9ea68c872c7eee4571ef9
https://deploy-preview-8900--docsdocker.netlify.com

Is there anything I can help with to have our driver listed? :)
From what I can see the Jenkinks build does not seem to be failing due to my change, although I am not a hundred percent sure.
Thanks.

Thank you for contributing. Closing as Docker Machine is now deprecated.


Using the on-device GPU profiler shows no usage

I'm using the GPU profiler provided in all Android devices in the Developer options.
Surprisingly, for most grafika activities it does not show any bars. I was expecting it to show a continuous sequence of bars because we're calling several GPU functions (swap buffers, drawArrays).
Show + Capture Acitivity doesn't have any bars, whereas Continuous Capture does and I'm guessing this is because of the flickering [Recording] textview.
Does someone know how to profile the GPU properly?

Update :
I removed all textview.setText() calls in Continuous Capture Activity, and there are no bars being drawn. I have left the call to GLES20.glScissor(xpos, 0, width / 32, height / 32); on.
This makes me think that the on device GPU profiler only profiles UI elements, and ignore any calls we make through GLES.

Alright, I used the Opengles Tracer in Android Device Monitor and that shows all the GLES commands/functions I run per frame. This is helpful to trace commands, but it provides no profiling related information; example the memory used. From this SO post I understand the wall time and thread time give no useful information.


Promises: Pipe and Capture

pipe, capture, map, I guess adapt fits also here.
map and lift will be removed before final release.

Closing due to https://github.com/amphp/amp/commit/141875b1337f68b9e1608825cf2c5747e1406473


Bug in Horner's scheme

Description
Horner's scheme as it is implemented now gives wrong results.
Observed Behaviour
julia> using Polynomials
julia> p1 = Poly([Inf, Inf])
Poly(Inf + Inf⋅x)
julia> p1(Inf)
NaN
julia> p1(-Inf)
NaN
julia> p1(0)
NaN
julia> p2 = Poly([0, Inf])
Poly(Inf⋅x)
julia> p2(-Inf)
NaN

Desired Behaviour
julia> using Polynomials
julia> p1 = Poly([Inf, Inf])
Poly(Inf + Inf⋅x)
julia> p1(Inf)
Inf
julia> p1(-Inf)
NaN
julia> p1(0)
NaN
julia> p2 = Poly([0, Inf])
Poly(Inf⋅x)
julia> p2(-Inf)
-Inf

Moreover, without the bugfix, we currently have
julia> using Polynomials
julia> p = Poly([1])
Poly(1)
julia> p(Inf)
NaN
julia> p(NaN)
NaN

both of which should give 1.0, I suppose, as the polynomial is a constant polynomial.

Yes, this is how SymPy handles these cases.


Added domain for the AIT

School Name: Academy of Innovative Technology
Website: https://www.aoiths.org/en/

@mdmowla01 Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Add BloomSky weather station support

Add support for the BloomSky weather station.
Corresponding Web site documentation is in PR balloob/home-assistant.io#186

I had a few comments, mainly style wise. The code looks very good :+1: :dolphin:

@fabaff @balloob Thanks for the comments, I really appreciate them! I'll try to integrate these edits today.


repository does not exist

$ sudo ./run_docker_container.sh
Unable to find image 'thermal:darknet' locally
docker: Error response from daemon: pull access denied for thermal, repository does not exist or may require 'docker login'.
Ideas? Thank you.

I assume you still couldn't build the docker image. Therefore, you can't create a container from an image that doesn't exist.

@enesozi Yes. I have moved on. It was worth a try. Thanks for the response.


Also redact hashes inside arrays

Context
We were not traversing arrays of hashes to redact sensitive data
What was done
We improved the redact methods. We're now calling redact_object that handles array and hashes.

Rodamos pro seguinte caso:
hash = {data: {attributes: [{test: [{password: "password"}] }] }}
Resultado
{:data=>{:attributes=>[{:test=>[{:password=>"*"}]}]}}


Configurator Filter library

moving unit test files under gbpservice/neutron/tests/unit/nfp/

Changes look fine.


[eval] fix evaluation git patch post-processing

Short description of the problem this fixes or functionality that this introduces. This may be used for the CHANGELOG

Give a summary of what the PR does, explaining any non-trivial design decisions

Link of any specific issues this addresses

This merges to eval branch, not to main. So I'll go ahead and do it now.


[FEATURE] Trace analytics link directly to relevant logs in Event Analytics

Is your feature request related to a problem?
A clear and concise description of what the problem is, e.g. I'm always frustrated when [...]
What solution would you like?
A clear and concise description of what you want to happen.
What alternatives have you considered?
A clear and concise description of any alternative solutions or features you've considered.
Do you have any additional context?
Add any other context or screenshots about the feature request here.

@joshuali925 do you think a pre-req for this is to convert trace analytics to use PPL?

i don't know the detailed reqs but would it work if clicking on a button opens event analytics with ppl query searching for the trace id?


some questions about Multi DIC limitations

Dear,
We want to know about limitations of Multi DIC on speckle patterns.  Is  it necessary to create very organised speckle pattern (columns and rows xyz) to use Multi DIC? can we use Multi DIC with sprayed speckle patterns?
We are working with scapholunate ligament (wrist) with size of 10 mm (length) x 3 mm (width) and 2-5 mm (height).
Regards,
Nataliya

Hi Nataliya,
The speckle pattern can be applied in any way that you wish- sprayed, painted manually, printed, etc.
You just have to make sure that the speckles are of an appropriate size for your camera setup, and that the density and coverage are eduaqate.
The calibration object, however, must have rows and columns of dots with known accurate positions.
Thanks,
Dana

Dear,
I am a Chinese student and I don't do related research before, so I find it difficult to use Multi DIC.Even I don't know how to run it.Can you give me a video detailing the process.
Thanks, waiting for your reply.
Ben


Impact test pack

@udaybukke1 Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Undefined names: 'vals', '_scatter', and 'rescatter'

flake8 testing of https://github.com/google/jax  on Python 3.7.1
$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
./jax/interpreters/parallel.py:249:38: F821 undefined name 'vals'
      return call_primitive.bind(f, *vals, **params)
                                     ^
./jax/interpreters/parallel.py:372:10: F821 undefined name '_scatter'
  return _scatter(source, target, target_axis, name)
         ^
./jax/interpreters/parallel.py:422:9: F821 undefined name 'rescatter'
    x = rescatter(x, ydim, name)
        ^
3     F821 undefined name 'vals'
3

E901,E999,F821,F822,F823 are the "showstopper" flake8 issues that can halt the runtime with a SyntaxError, NameError, etc. These 5 are different from most other flake8 issues which are merely "style violations" -- useful for readability but they do not effect runtime safety.

F821: undefined name name
F822: undefined name name in __all__
F823: local variable name referenced before assignment
E901: SyntaxError or IndentationError
E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree

Thanks for the issue report!
The errors this code points to are in an experimental module that isn't quite finished yet. So it's possible it's not in a working state. I appreciate that we would need to fix them before enabling a flake8 travis presubmit.
Assigning to Matt since he's working on finishing up this code and I'm sure once finished this problem will be fixed also.

Final tips...  Put # noqa on any line that you want flake8 to ignore.  There is also # flake8: noqa to ignore a whole file.


fix #1693

Coverage increased (+0.02%) to 82.742% when pulling 354097b599621f4fa068e78de55291df5e6fa91a on antgonza:fix-1693 into d5c8d1c753c3da469535302b4cc2181823804014 on biocore:master.

:+1: looks good, just one small question that shouldn't be blocking.

After going over the issues I realized that a few extra minor changes will also fix #1395 so decided to add them. Note that the delete of the prep template also had a small bug that is being fixed here.

Two small comments

:+1: ready for merge once tests pass.

Coverage increased (+0.02%) to 82.737% when pulling 0be11dc27ef6b20c1ef8ea5b9424743470733a3e on antgonza:fix-1693 into d5c8d1c753c3da469535302b4cc2181823804014 on biocore:master.

so delete is available?

Yup, note that I just realized that it's blocking; will need to fix that.


Fix Documentation for Configuring Gateway Nodes for Distributed API-M Deployment

Description:
With the configurations given in the documentation Configure a Distributed API-M Deployment / Configure the Gateway Nodes / Connecting the Gateway to the Traffic Manager component in the Control Plane / Single Control Plane(tab) as shown below, it produces an error while trying to build the product.
[[apim.throttling.url_group]]
traffic_manager_urls = ["tcp://control-plane-host:9611"]
traffic_manager_auth_urls = ["ssl://control-plane-host:9711"]

[apim.throttling]
service_url = "https://control-plane-host:${mgt.transport.https.port}/services/"
throttle_decision_endpoints = ["tcp://control-plane-host:5672"]

However, when the configurations are swapped as in Configure a Distributed API-M Deployment / Configure the Gateway Nodes / Sample configuration for the Gateway it seems to be fixed.
Suggested Labels:

Suggested Assignees:

Affected Product Version:
APIM 4.1.0
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Closing this issue as this was fixed by the PR: https://github.com/wso2/docs-apim/pull/6390


Review ports for possible hints at what our API could do

What
Review the various ports of GOV.UK Frontend listed on X-Gov to gather if/how they extend our JavaScript components (eg. add extra listeners on component elements, try to update the component after it's been initialised...). We're especially interested in:

what actions they take
what they're trying to achieve doing it

Why
This would highlight what these forks need from us in terms of public API.
Who needs to work on this
Developers
Who needs to review this
Developers
Done when

[x] We gathered a list of how ports of GOV.UK Frontend interact with our JavaScript components

Findings are listed in this document (internal)


Test Pipeline Policy for capturing HTTP messages

Policy for capturing specific http messages from a client such that test assertions can be made afterwards with their contents.

API change check
API changes are not detected in this pull request.


Import environment variables

Hello, is there chance to import environment variables (e.g. ~/.bash_profile) to the application started with "brew services start"?
I spent a lot of time and found it is very big issue for MacOS Sierra.
Thank you.

No, sorry.


Configuration Report - Add support for HTTP and Email Templates

Add controller-wide support for HTTP and Email Templates

Fixed by d26c4d64bb1dfb895a110ecf182ac7340e877d72


fix: HPA container resource metrics beta graduation

The document update for https://github.com/kubernetes/enhancements/issues/1610

/hold cancel

Thanks.
/lgtm

/assign @krol3
For approval

Thanks.
/lgtm
/approve


test: add ut for hertz/pkg/common/adaptor

What type of PR is this?
test
Check the PR title.

[x] This PR title match the format: <type>(optional scope): <description>
[x] The description of this PR title is user-oriented and clear enough for others to understand.

(Optional) More detail description for this PR(en: English/zh: Chinese).

en: add ut for hertz/pkg/common/adaptor, coverage increased from 76.6% to 92.3%
zh(optional): 增加对hertz/pkg/common/adaptor的单测，覆盖率从76.6%提高到了92.3%
Which issue(s) this PR fixes:

#257

It is forbidden to add a test only for the purpose of coverage but without logical meaning.


Add new setting headerCopyrightOwner to use instead of organizationName for license detection

This change allows users to have headers like My organization <myorganizationurl.com>  without altering organizationName setting.
Defaults to organizationName so existent codebases do not break

Hey @hseeberger, any chance you could take a look at this one? Thanks in advance!


--net=host

--net=host: Uses host networking mode for proper uPNP functionality; by default, the web UIs and REST API listen on port 80 and the websockets service listens on port 443. If these ports conflict with other services on your host, you can change them through the environment variables DECONZ_WEB_PORT and DECONZ_WS_PORT described below.

I assume it won't work well without the --net=host, due to the uPNP you mention? I'd love to hide the deCONZ instance within Docker, and just link my Home Assistant container to the deCONZ container. I wouldn't have to worry about port collisions on my server. But if it won't work, then there's nothing to do about it. :)
I'm waiting for my ConBee stick to arrive, so I haven't been able to test yet.

The only issue I’m thinking of this if deCONZ is only exposed to Home Assistant (I assume you’re thinking of the Sure, you should be able to do this by linking

And since you can arbitrarily change the ports required with the environment variables, you shouldn’t have a collision problem - there’s more than 65000 to choose from. :)

Hehe, of course, but I prefer using the standard ports for stuff, with isoltion. But we'll see, I'll mess around when I get my ConBee stick!

@anton-johansson did you get it running on an isolated network? Trying to run it behind Traefik, but it seems it is discovering the gateway with the non-accessible internal ip.

Hey @anton-johansson, did you figure out a solution for this? Just opened this related issue with problem with discovery
https://github.com/dresden-elektronik/deconz-rest-plugin/issues/702

I forgot to check back in here... But it's working fine for me without --net=host. :)
Home Assistant package
Docker compose


[BUG] We need another DNS approach for [Synology] systems.

In Synology the current DNS implementation fails like this if you have a DNS  running localy :
The local DNS is listening in all available addresses for that  we need a DNS that will listen in a different port but not with the current implementation as it is not supported.
sudo netstat -tuln | grep -w ':53'

tcp6       0      0 :::53                   :::*                    LISTEN
udp6       0      0 :::53                   :::*

2024-05-13T23:20:38+03:00 WARN client/internal/dns/service_listener.go:185: binding dns on <IP_ADDRESS>:53 is not available, error: listen udp <IP_ADDRESS>:53: bind: address already in use
2024-05-13T23:20:38+03:00 WARN client/internal/dns/service_listener.go:185: binding dns on <IP_ADDRESS>:53 is not available, error: listen udp <IP_ADDRESS>:53: bind: address already in use
2024-05-13T23:20:38+03:00 WARN client/internal/dns/service_listener.go:185: binding dns on <IP_ADDRESS>:53 is not available, error: listen udp <IP_ADDRESS>:53: bind: address already in use
2024-05-13T23:20:38+03:00 WARN client/internal/dns/service_listener.go:215: failed to load DNS forwarder eBPF program, error: field NbXdpProg: program nb_xdp_prog: map .rodata: map create: read- and write-only maps not supported (requires >= v5.2)
2024-05-13T23:20:38+03:00 WARN client/internal/dns/server.go:316: the DNS manager of this peer doesn't support custom port. Disabling primary DNS setup. Learn more at: https://docs.netbird.io/how-to/manage-dns-in-your-network#local-resolver
2024-05-13T23:20:38+03:00 ERRO client/internal/dns/server.go:322: unable to configure DNS for this peer using file manager without a nameserver group with all domains configured

You guys are active, so  we are very close to make Netbird  fully supported in Synology.

@bcmmbaga  Hope in now that you are on fire :P

Hello @zzecool thanks for reporting this issue.
Can you test using user space mode?
If you are on DSM 7.0+ you can do that by using the following commands:
sudo mkdir -p /etc/sysconfig
echo 'NB_WG_KERNEL_DISABLED=true' | sudo tee -a /etc/sysconfig/netbird
sudo systemctl restart netbird

sudo mkdir -p /etc/sysconfig
echo 'NB_WG_KERNEL_DISABLED=true' | sudo tee -a /etc/sysconfig/netbird
sudo systemctl restart netbird

@mlsmaycon Yes here you are :
2024-05-22T18:52:59+03:00 INFO client/internal/connect.go:115: starting NetBird client version 0.27.7 on linux/amd64
2024-05-22T18:52:59+03:00 WARN client/system/info_linux.go:115: geucwReleaseInfo: exit status 1
2024-05-22T18:53:00+03:00 WARN client/internal/wgproxy/factory_linux.go:17: failed to initialize ebpf proxy, fallback to user space proxy: field NbXdpProg: program nb_xdp_prog: map .rodata: map create: read- and write-only maps not supported (requires >= v5.2)
2024-05-22T18:53:00+03:00 INFO iface/tun_usp_linux.go:33: using userspace bind mode
2024-05-22T18:53:00+03:00 INFO client/internal/routemanager/manager.go:93: Routing setup complete
2024-05-22T18:53:00+03:00 INFO iface/tun_usp_linux.go:45: create tun interface
2024-05-22T18:53:00+03:00 ERRO client/firewall/iptables/router_linux.go:51: failed to cleanup routing rules: failed to list rules in FORWARD chain: running [/sbin/iptables -t filter -S FORWARD --wait]: exit status 1: iptables: No chain/target/match by that name.
2024-05-22T18:53:00+03:00 ERRO client/firewall/create_linux.go:48: failed to create iptables manager: failed to list rules in FORWARD chain: running [/sbin/iptables -t filter -S FORWARD --wait]: exit status 1: iptables: No chain/target/match by that name.
2024-05-22T18:53:00+03:00 INFO client/internal/dns/host_linux.go:68: System DNS manager discovered: file
2024-05-22T18:53:00+03:00 INFO client/internal/engine.go:359: Network monitor is disabled, not starting
2024-05-22T18:53:00+03:00 INFO client/internal/connect.go:261: Netbird engine started, the IP is: <IP_ADDRESS>/16
2024-05-22T18:53:00+03:00 INFO signal/client/grpc.go:158: connected to the Signal Service stream
2024-05-22T18:53:00+03:00 INFO management/client/grpc.go:147: connected to the Management Service stream
2024-05-22T18:53:00+03:00 WARN client/internal/engine.go:551: running SSH server is not permitted
2024-05-22T18:53:00+03:00 INFO client/internal/dns/file_linux.go:107: created a NetBird managed /etc/resolv.conf file with the DNS settings. Added 1 search domains. Search list: [netbird.selfhosted]
2024-05-22T18:53:00+03:00 INFO client/internal/dns/file_repair_linux.go:48: start to watch resolv.conf: /etc/resolv.conf
2024-05-22T18:53:00+03:00 INFO client/internal/acl/manager.go:52: ACL rules processed in: 549.946µs, total rules count: 22
2024-05-22T18:53:02+03:00 WARN client/internal/dns/upstream.go:185: probing upstream nameserver <IP_ADDRESS>:53: read udp <IP_ADDRESS>:36965-><IP_ADDRESS>:53: i/o timeout
2024-05-22T18:53:02+03:00 WARN client/internal/dns/upstream.go:185: probing upstream nameserver <IP_ADDRESS>:53: read udp <IP_ADDRESS>:46327-><IP_ADDRESS>:53: i/o timeout
2024-05-22T18:53:02+03:00 WARN client/internal/dns/upstream.go:265: Upstream resolving i2024-05-22T18:53:00+03:00 INFO client/internal/dns/host_linux.go:68: System DNS manager discovered: file
2024-05-22T18:53:00+03:00 INFO client/internal/engine.go:359: Network monitor is disabled, not starting
2024-05-22T18:53:00+03:00 INFO client/internal/connect.go:261: Netbird engine started, the IP is: <IP_ADDRESS>/16
2024-05-22T18:53:00+03:00 INFO signal/client/grpc.go:158: connected to the Signal Service stream
2024-05-22T18:53:00+03:00 INFO management/client/grpc.go:147: connected to the Management Service stream
2024-05-22T18:53:00+03:00 WARN client/internal/engine.go:551: running SSH server is not permitted
2024-05-22T18:53:00+03:00 INFO client/internal/dns/file_linux.go:107: created a NetBird managed /etc/resolv.conf file with the DNS settings. Added 1 search domains. Search list: [netbird.selfhosted]
2024-05-22T18:53:00+03:00 INFO client/internal/dns/file_repair_linux.go:48: start to watch resolv.conf: /etc/resolv.conf
2024-05-22T18:53:00+03:00 INFO client/internal/acl/manager.go:52: ACL rules processed in: 549.946µs, total rules count: 22
2024-05-22T18:53:02+03:00 WARN client/internal/dns/upstream.go:185: probing upstream nameserver <IP_ADDRESS>:53: read udp <IP_ADDRESS>:36965-><IP_ADDRESS>:53: i/o timeout
2024-05-22T18:53:02+03:00 WARN client/internal/dns/upstream.go:185: probing upstream nameserver <IP_ADDRESS>:53: read udp <IP_ADDRESS>:46327-><IP_ADDRESS>:53: i/o timeout
2024-05-22T18:53:02+03:00 WARN client/internal/dns/upstream.go:265: Upstream resolving is Disabled for 30s
2024-05-22T18:53:02+03:00 INFO [nameservers: [{<IP_ADDRESS> udp 53} {<IP_ADDRESS> udp 53}]] client/internal/dns/server.go:504: Temporarily deactivating nameservers group due to timeout
2024-05-22T18:53:02+03:00 ERRO [nameservers: [{<IP_ADDRESS> udp 53} {<IP_ADDRESS> udp 53}]] client/internal/dns/server.go:525: Failed to apply nameserver deactivation on the host: unable to configure DNS for this peer using file manager without a nameserver group with all domains configureds Disabled for 30s
2024-05-22T18:53:02+03:00 INFO [nameservers: [{<IP_ADDRESS> udp 53} {<IP_ADDRESS> udp 53}]] client/internal/dns/server.go:504: Temporarily deactivating nameservers group due to timeout
2024-05-22T18:53:02+03:00 ERRO [nameservers: [{<IP_ADDRESS> udp 53} {<IP_ADDRESS> udp 53}]] client/internal/dns/server.go:525: Failed to apply nameserver deactivation on the host: unable to configure DNS for this peer using file manager without a nameserver group with all domains configured

@zzecool can you try adding a default nameserver in the NetBird's dashboard? As the detected DNS mode was file, it won't resolve DNS queries without one.

won't

I have a dns for this node in the Web management interface.
The dns is up and running fine.
It is on the same machine that netbird is running on port 53.

in that case, you can add one of the node's local IPs as a nameserver and distribute it to a group that only contains the Synology node.

in that case, you can add one of the node's local IPs as a nameserver and distribute it to a group that only contains the Synology node.

This is exactly what i have.
On the web interface for this node group the DNS is the <IP_ADDRESS>
and this is inside the node :
Its ip address just to be clear
$ ifconfig | grep -A 1 ovs
ovs_bond0 Link encap:Ethernet  HWaddr 00:11:32:8F:51:02
          inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>

The resolv test :
$ nslookup google.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   Google.com
Address: <IP_ADDRESS>
Name:   google.com
Address: 2a00:1450:4017:810::200e

in that case, you can add one of the node's local IPs as a nameserver and distribute it to a group that only contains the Synology node.
@mlsmaycon
This is exactly what i have.
On the web interface for this node group the DNS is the <IP_ADDRESS>
and this is inside the node :
Its ip address just to be clear
$ ifconfig | grep -A 1 ovs
ovs_bond0 Link encap:Ethernet  HWaddr 00:15:30:9F:71:02
          inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>

The resolv test :
$ nslookup google.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   Google.com
Address: <IP_ADDRESS>
Name:   google.com
Address: 2a00:1450:4017:810::200e

@mlsmaycon

Maybe this is the problem that after this rule i have cloudflare for ALL  ?
Does the first rule matched have higher priority and used or not ?
Thanks

Could be. The peers in the personal group might be using the cloudflare addresses.
Just to confirm, your Synology is part of the personal group? if not it should be, or you should add one of its group to the distribution groups.

Could be. The peers in the personal group might be using the cloudflare addresses.
Just to confirm, your Synology is part of the personal group? if not it should be, or you should add one of its group to the distribution groups.

Yes its part of the personal group.

ok, to validate the setup try limiting the cloudflare configuration to another group.

Yeap that did the trick. So the first matched rule is getting ignore and replaced, you have to consider if this is what you want, as most ppl we are used to the iptables way priority of rules.
2024-05-22T19:48:25+03:00 INFO client/internal/dns/file_linux.go:107: created a NetBird managed /etc/resolv.conf file with the DNS settings. Added 1 search domains. Search list: [netbird.selfhosted]
2024-05-22T19:48:25+03:00 INFO client/internal/dns/file_repair_linux.go:48: start to watch resolv.conf: /etc/resolv.conf
2024-05-22T19:48:25+03:00 INFO client/internal/acl/manager.go:52: ACL rules processed in: 508.582µs, total rules count: 22

Removing the /etc/sysconfig/netbird  breaks everything again.
So now that your install.sh script detects Synology just fine, please add the creation of /etc/sysconfig/netbird  file  :D
We are making progress :D

@zzecool can you confirm that this local resolver, <IP_ADDRESS>#53, comes with every Synology by default?

@zzecool can you confirm that this local resolver, <IP_ADDRESS>#53, comes with every Synology by default?

Nope this is a DNS that im personaly running on this machine.

Okay, in that case, it is better not to default to userspace mode just yet, as it may affect other users.
We will look into the masquerade issue and then make a decision.
Thanks for validating this.

Okay, in that case, it is better not to default to userspace mode just yet, as it may affect other users.
We will look into the masquerade issue and then make a decision.
Thanks for validating this.

Can you think any other way to make this work in kernel space while having the another DNS running in the same machine ?


calling AddShadowSubscription() after connect() disconnects client

with a client that is more or less copied from
https://github.com/aws/aws-iot-device-sdk-cpp/blob/master/samples/ShadowDelta/ShadowDelta.cpp
using openssl and the newest sdk
I might be making some simple error.  Is there a reason this might be happening?

Hi @larsonmpdx ,
Have you tried looking at the Cloudwatch logs for your account? There may be more information as to why the disconnect happened. Could you could paste the logs here after removing any account specific information present in it?
Thanks!
Varun

2017-11-08 08:05:26.972 TRACEID:deb245ad-08f0-feca-84df-91fc16b71792 PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [INFO] EVENT:MQTT Client Connect MESSAGE:Connect Status: SUCCESS
2017-11-08 08:05:26.972 TRACEID:deb245ad-08f0-feca-84df-91fc16b71792 PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [INFO] EVENT:MQTT Client Connect MESSAGE: IpAddress: <IP_ADDRESS> SourcePort: 58962
2017-11-08 08:05:27.008 TRACEID:73d16f81-227d-d505-85ef-c4ed23c8e553 PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [DEBUG] EVENT:KinesisActionStart TOPICNAME:$aws/events/presence/connected/4947bd70-c3fd-11e7-810d-a1ddbf03fe89 CLIENTID:N/A MESSAGE:Starting execution of KinesisAction on topic $aws/events/presence/connected/4947bd70-c3fd-11e7-810d-a1ddbf03fe89
2017-11-08 08:05:27.056 TRACEID:99a57e03-e53c-52cc-b77d-134e618639ac PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [ERROR] EVENT:MQTTClient Subscribe TOPICNAME:$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/get/accepted,$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/get/rejected,$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/update/accepted,$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/update/rejected,$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/delete/accepted,$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/delete/rejected,$aws/things/4947bd70-c3fd-11e7-810d-a1ddbf03fe89/shadow/update/delta MESSAGE:Subscribe Status: AUTHORIZATION_ERROR
2017-11-08 08:05:27.056 TRACEID:99a57e03-e53c-52cc-b77d-134e618639ac PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [INFO] EVENT:MQTTClient Subscribe MESSAGE: IpAddress: <IP_ADDRESS> SourcePort: 58962
2017-11-08 08:05:27.062 TRACEID:fb09cc27-0714-0d47-7408-13393df34a69 PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [INFO] EVENT:MQTT Client Disconnect MESSAGE:Disconnect Status: SUCCESS
2017-11-08 08:05:27.062 TRACEID:fb09cc27-0714-0d47-7408-13393df34a69 PRINCIPALID:d96b904de5dd079fcab4a4bf16d51af296b7de12f7acc3901359e9af009b0439 [INFO] EVENT:MQTT Client Disconnect MESSAGE: IpAddress: <IP_ADDRESS> SourcePort: 58962

would the AUTHORIZATION_ERROR on the subscribe call do this?  I don't have good debug output at the client side that matches this, is it the server initiating the disconnect?

Hi @larsonmpdx ,
It looks more like a policy issue. Could you try the same certs with the ShadowDelta sample and see if you get the same error? The shadow subscribe should fail and the sample should disconnect and quit if it is a policy issue.
Thanks!
Varun

ok, that also fails.  Can you give an example of a policy that allows this shadow functionality?  All of the documentation I can find is some simple "allow all" wildcard or if it's constrained to a device it skips the use of thing policy variables (http://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) and doesn't give specific recommendations about best practices.

Hi @larsonmpdx ,
Here is an example policy that uses thing policy variables:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iot:UpdateThingShadow",
      "Resource": "arn:aws:iot:us-east-1:<ACCOUNT ID>:thing/{iot:Connection.Thing.ThingTypeName}"
    },
    {
      "Effect": "Allow",
      "Action": "iot:GetThingShadow",
      "Resource": "arn:aws:iot:us-east-1:<ACCOUNT ID>:thing/{iot:Connection.Thing.ThingTypeName}"
    },
    {
      "Effect": "Allow",
      "Action": "iot:DeleteThingShadow",
      "Resource": "arn:aws:iot:us-east-1:<ACCOUNT ID>:thing/{iot:Connection.Thing.ThingTypeName}"
    },
    {
      "Effect": "Allow",
      "Action": "iot:Connect",
      "Resource": "arn:aws:iot:us-east-1:<ACCOUNT ID>:client/<THING_NAME>"
    },
    {
      "Effect": "Allow",
      "Action": "iot:Subscribe",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iot:Publish",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iot:Receive",
      "Resource": "*"
    }
  ]
}

For more information on how to use thing-policy variables, please refer to here
Let me know if this works for your use case.
Thanks!
Varun

Thank you, that works.  Can you explain what was happening?  Does the server disconnect any client that has an authorization error?

Hi @larsonmpdx ,
Yes the server disconnects the client, it has no other way of communicating an authorization error to the device. There is more information about this in #25 as the issue was essentially the same.
Thanks!
Varun

how can I restrict the allowed subscription topics to only what's needed for the shadow?  I tried this policy with an asterisk after "shadow" and it failed:
    {
      "Effect": "Allow",
      "Action": "iot:Subscribe",
      "Resource": [
            "arn:aws:iot:iot:us-west-2:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*"
        ]
    },

Hi @larsonmpdx ,
The resource should not be topic, but topicfilter, like so:
"Resource": [
            "arn:aws:iot:iot:us-west-2:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*"
        ]

Let me know if that works.
Thanks!
Varun

oh, good catch.  that isn't working.  I found this note about wildcards in the shadow topic names:
https://forums.aws.amazon.com/thread.jspa?threadID=219158
it seems to suggest changing the * to #, I tried it both ways and it doesn't work

Hi @larsonmpdx ,
I just tested the resource I posted in the last reply and it worked for me.
It's also recommended to not use wildcards as the Shadow specification can change to include more topics in the future, as stated here. If you do not mind using individual topics, you can have multiple topics in the resource as shown below:
"Resource": [
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/accepted",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/rejected",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/delta",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/document",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/accepted",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/rejected",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/accepted",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/rejected"
      ]

The forum post states that the if you want to subscribe to wildcard topics, you use the MQTT wildcards i.e. for example, if your device itself is subscribing to /this/is/+/topic/wildcard and /this/is/+/topic/wildcard2, then your topic filter will be /this/is/+/topic/*.
Thanks!
Varun

I found the problem, the example had "iot:iot" in it instead of "iot"
I think policies that include the thing name variable are OK with wildcards.  that should mean a malicious device can only access its own resources, even if it gets more types of resources in the future
I added a publish limit like this:
    {
      "Effect": "Allow",
      "Action": "iot:Publish",
      "Resource": [
        "arn:aws:iot:us-west-2:123456789012:topic/intake",
        "arn:aws:iot:us-west-2:123456789012:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/*"
      ]
    },

and also the "can connect only if using the attached cert" rule:
{
      "Effect": "Allow",
      "Action": "iot:Connect",
      "Resource": [
        "*"
      ],
      "Condition": {
        "Bool": {
          "iot:Connection.Thing.IsAttached": [
            "true"
          ]
        }
      }
    },

now I feel pretty good about the policy overall.  thanks for all the help!

Hi @larsonmpdx
Sorry about that, I corrected it in my policy but I forgot to post the corrected version where I removed the extra :iot. Good to know it worked! I'll close this issue, please open another issue if you have any more questions.
Thanks!
Varun


Incomplete python code generation

Type: Bug
after I type a requirement in the prompt (Ctrl+K), it will generate code, but it will stop after generate around 60 rows without finishing the code. I try to use input 'continue' or 'complete the code' with it, but it still cannot go on after 60 rows.
Extension version: 2023.6.0
VS Code version: Cursor 0.2.1 (72bf0113753c0c51eb3454a37bedc442dd109699, 2023-04-06T20:26:43.787Z)
OS version: Windows_NT x64 10.0.19044
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz (8 x 1190)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
15.77GB (5.57GB free)

Process Argv

Screen Reader
no

VM
0%

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.77.1. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Looks like this is about Cursor?

VS Code version: Cursor 0.2.1


GUI Backend Classes

Summary
Now that we have made some simple modifications to the UI #64 and we have completed some OO analysis #5, we can begin to start writing code for all of the classes needed in the GUI back end. Refer to the UML Class diagram.
Add your changes to a new branch from https://github.com/albertaloop/T_SWE_2022_2023/tree/GUI/main, title your branch GUI/(yourname)-(changes) without parenthesis and create a pull request to merge your branch back to GUI/main when your work is completed.
Acceptance Criteria

[x] Create Command classes and subclasses
[x] Test issuing and receiving commands
[x] Create TelemetryModel based on Observer pattern
[x] Test TelemetryModel
[x] Create Logic class

Solved with issues #25 #26 and #17


feat(demo): add driver variant environments

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/graycoreio/daffodil/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
Currently, we don't have a neatly defined way of providing per-driver environment configurations.
Fixes: N/A
What is the new behavior?
This adds environments for the different core drivers that Daffodil supports along with a AOT-compatible and foldable driver lookup to retrieve the appropriate driver based on the environment.
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information

lgtm


topic_sidebar: Add unmute topic option in development environment.

if in development environment, for a topic in muted stream show additional option for unmuting the topic that sets visibility policy to unmute.

Fixes:
#24244

Screenshots and screen captures:
setting and removing unmute visibility policy:
https://user-images.githubusercontent.com/64723994/229842881-4ae9ec42-0404-4988-8eef-8419addae6d2.mp4

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@timabbott, Pushing the progress till now, I have addressed all the feedback received above except the name of "Unmute topic". This PR is not ready yet as it has a few failing tests that I will fix and push the updated PR tomorrow till then you can review the PR again for any additional feedback if you like. I'll also address additional feedback alongside the failing tests.

I have updated all the instances where I mistakenly wrote UNMUTED instead of INHERIT due to some naming confusion.
I am waiting for feedback on this.
I think there are only 2 failing tests: one mentioned above that will arise due to lost coverage if we move the update_topic_visibility_policy function to user_topics.js  and the second in settings_muted_topics.test.js as mentioned in this commit.
Both of them can be addressed while working on #24243 as this PR should get merged to start working on 6 parallel UI tasks of #24243.
@timabbott your feedback on this?

Summary:

Progress till now:
* commit 1[b475046ec241481323993ce1990a155dcbde2bbd]: Added topic_visibility_policy object containing {visibility_policy: corresponding integer value} pairs in settings_config.ts.
* commit 2[4b4ab7478541073c7b277afb10d68394feca8498]: Added new function update_topic_visibility_policy that uses new API endpoint. Removed mute_topics and unmute_topic functions that were using the old API endpoint.
* commit 3[52b2682aed3a3a3e729c4264388ef6eff4bbeb38]: * Replaced muted_topics Map with topics_dict Map.
* Removed add_muted_topic and remove_muted_topic functions and replaced them with a single function
update_topics_dict that add/remove/update topics in new topics_dict Map.
* Added get_topic_visibility_policy which returns visibility_policy if stream_id is not undefined else return false.
* commit 4[3f22eed8e226482222d5e05316d73547d296a6a6]: If in development environment, in topic_sidebar_action popover, include an option to add/remove unmute visibility_policy for a topic in a muted stream. Updated click handlers for both mute/remove mute and unmute/remove unmute options.
* commit 5[9b23ac0eaaec461ff77eaf7d4bdb107ae11aacc6]: Updated the following node tests to use updated functions.

Discussion required:
* The naming discussion for both the design part and the frontend technical part is CZO.
* In commit 2, the new function update_topic_visibility_policy which uses new API endpoint makes user_topics.js lose test
coverage. The functions mute_topic and unmute_topic in muted_topics_ui.js that were using the old API endpoint had
no tests and muted_topics_ui.js was in EXEMPT_FILES in test-js-with-node. Was this intentional? Should I also keep
user_topics.js in EXEMPT_FILES? I have kept user_topics.js in EXEMPT_FILES in this PR till further feedback.
* Review whether the test in settings_muted_topic.test.js is updated correctly?

Work to be done in follow-ups:
* In commit 3, I have created 2 helper functions is_topic_muted and is_topic_unmuted for this PR only that use
get_topic_visibility_policy to check for mute and unmute respectively. is_topic_muted is kept as it has 40+ occurrences
in the repo. But in the follow-up, these functions will be converted to one general function something like
has_visibility_policy that returns true if a topic has visibility_policy passed as a parameter.
* Make functions more generalized to work for all visibility policies rather than functions like mute_or_unmute_topic and
mute_or_unmute_topic in muted_topics_ui.js.
* Work on UI tasks of #24243 once this PR is merged.

I have updated the PR to resolve conflicts that were raised due to the topic menu being converted to Tippy. Updated PR to work for the tippy menu too.
Also updated above summary as per updated PR.
I will update the namings once finalized on CZO.

I have updated the PR to reflect the suggested changes in naming, as discussed here.
Additionally, I have removed the topic_visibility_policy from settings_config.ts and used the original visibility_policy from user_topics.js, as was suggested here.
This PR is ready for review now.

@Ddharmani3 As per the PR template, please remember to always post still screenshots of any UI changes in the description, not just a video.

Actually, I'm realizing this PR probably doesn't require testing/review from me, as this just adds an option rather than implementing the desired UI for now.

Actually, I'm realizing this PR probably doesn't require testing/review from me, as this just adds an option rather than implementing the desired UI for now.

Yes, this PR does not implement the UI itself, it lays the groundwork for the desired feature. Once this PR is merged, the work will begin on #24243 to implement the desired UI for this feature.

I changed the strings to make (1) the strings outside the development environment special case be unchanged and (2) the special development environment strings be clearer about how they're different from the main ones. We can proceed with building the actual UI on top of this.
With those changes, I've marked this to merge once CI passes, thanks for all the work on this @Ddharmani3 and @prakhar1144!


Implement hiding of groups with ctrl+click

Implements #101 / #96
I made IsOpen an attribute of the group itself and not the entry in the list.
Check list:

[x] Hiding of groups with ctrl + click
[x] Enable showing hidden groups with a checkbox
[ ] discuss reintroduction of IsOpen code which was removed here without comment
[ ] localization of "show hidden"
[ ] make check box nicer/smaller (?)
[ ] Add tootltip for user (maybe next to checkbox)

Please, merge it !

I have tester your version. It seems to work fine. I would concider adding a X mark or an icon of an eye in addition of using a special shortcut. It will be more intuitive.

It seems that the Dungeon filter is not working anymore.
I have choose BRD and all other intance are displayed.

Thanks for testing.

It seems that the Dungeon filter is not working anymore.
I have choose BRD and all other intance are displayed.

Strange, I did not see that the last time I played. I will look into it. Can you attach a screen of your settings page?

Hey thanks for your effort! I will look into it on the weekend and see what I can do :)


Resources without boundParams get a "default" cache key

(and maybe a warning that can be disabled).
From a comment on the bites blog:

Dear Max, I am having such a problem:
ngCachedResource instance [object Object] doesn't have any boundParams. Please, make sure you
specified them in your resource's initialization, f.e. {id: "@id"}, or it won't be cached.
Why is that error happens? The requests are done but seemingly no caching happening. My URL
does not have any bound Params so I left the field empty, like so:
// URL has no params
var containerUrl = ConstantValueService.get('webApiUri') + '/api/containertype';
// trying to get it cached
return $cachedResource('sw_containerTypes',containerUrl, {},
{
// rest methods
getAll: {...}}

My response:

Hi Askar, sorry you're having difficulties with our module!
$cachedResource uses the bound parameters of the objects returned by an endpoint as a cache key (that's how it differentiates between objects!).
In your use case, do you only ever call getAll? Does the getAll endpoint have "isArray: true" set? If so, then you should be fine setting a bound parameter even though the parameter does not show up in the URL; set it to anything that could be a unique identifier returned by the getAll endpoint, like {id: '@id"}.
I've added an issue on github describing your use case; it seems like we could relatively easily allow for "localy defined" default cache keys, to alleviate this problem.
Hope that helps!
~Max

The proposed solution would only work for isArray cache keys, and is not amazingly ideal, but it would make the module useful for more people.

How would you propose to properly solve this issue?
We seem to be having the same issue with @superdecimal so I was playing around and was very tempted to try and force a default pair on the params.
I was thinking something along the lines of https://github.com/geoah/angular-cached-resource/commit/4631bcfc70a22e42d374f750e10e206fbcd70118 which seems to be working.
Probably adding a providerParams.forceParam option to trigger the param enforcement would be needed. eg providerParams.forceParam = true; or providerParams.forceParam = { key: "_fc", value: "default" };
At least this way I can get the forceParam and pass the tests.
Any better ideas? I've been only playing with this for half an hour so maybe I'm missing something.

Seems like you're on the right track, though in your code, every instance in the array returned from the server would have the same cache key -- so the cache would turn a response like this:
[ {a : 1}, {b: 2}, {c: 3} ]

into this, on the second request to the same resource:
[ { c: 3}, { c: 3 }, { c: 3 } ]

If you changed your code just a little bit, to have the default param use the array index as well, it'd fix that issue. Something like this:
    addInstances: (instances, dirty) ->
      cacheArrayReferences = []
      for instance, index in instances
        cacheInstanceParams = instance.$params()
        if Object.keys(cacheInstanceParams).length is 0
          cacheInstanceParams["_fc"] = "default-#{index}"
        cacheArrayReferences.push cacheInstanceParams
        cacheInstanceEntry = new ResourceCacheEntry(@key, cacheInstanceParams).load()
        cacheInstanceEntry.set instance, dirty
      @set cacheArrayReferences, dirty

Want to write a pull request? You're halfway there! Some thoughts, to make it perfect:

[ ] I like your idea of a forceParam argument in the provider, especially one that lets you set the key and value yourself.
[ ] It would need a unit test before I could merge it in, though if you'd prefer, I can write one.
[ ] It'd be useful if we triggered a $log.warn message anyway, in this situation.

First of all thank you for a very fast response. :)
I've started working on it. The easy part is done. https://github.com/geoah/angular-cached-resource/commit/b2e7ae1ea6b31a253ed9161a782836bd4f498e55
It's a bit more verbose than it should but you are most welcome to make any changes you'd like before considering merging.
Now to the tests...
I'll try to write tests to check that

setForceParam(true)

produces warning

setForceParam(true, true)

does not produce warning

setForceParam(true, true, "key", "prefix-")

adds the correct params to the URL
caches the array with correct key/prefix

Anything else I should check?
ps. As I've never tested anything like this before I promise that this will work! :P As you can see https://gist.github.com/geoah/7477ddbfad915554423f it isn't working well so far. ~hehe.

Somehow I am getting the warning when I have all boundParam specified. Using 1.4.1

I have the same issue, my endpoint return an array instead of object, so i get the error
ngCachedResource 'Tag' instance doesn't have any boundParams. Please, make sure you specified them in your resource's initialization, f.e. {id: "@id"}, or it won't be cached
+1


systemd: error: conflicting types for 'lookup_errno'

https://gist.github.com/b213e0ef776596e915b8e778e687ec72

In file included from src/basic/errno-list.c:31:0:
src/basic/errno-from-name.h:143:1: error: conflicting types for 'lookup_errno'
 lookup_errno (register const char *str, register size_t len)
 ^
src/basic/errno-list.c:27:33: note: previous declaration of 'lookup_errno' was here
 static const struct errno_name* lookup_errno(register const char *str,
                                 ^
make[2]: *** [Makefile:14175: src/basic/libbasic_la-errno-list.lo] Error 1
make[1]: *** [Makefile:18384: install-recursive] Error 1
make: *** [Makefile:19618: install] Error 2

https://gist.githubusercontent.com/anonymous/b213e0ef776596e915b8e778e687ec72/raw/86493c9b5b89e9bc03ce830eba200808f162a139/02.make

Consider installing Linuxbrew in /home/linuxbrew/.linuxbrew/ if possible so that you can use precompiled binary packages (known as bottles) for non-relocatable formula like systemd.
The precompiled binary bottles of non-relocatable bottles can only be used if you install in /home/linuxbrew/.linuxbrew, otherwise they have to be built from source. See the documentation below, but wherever it reads /usr/local, which is for macOS, read instead /home/linuxbrew/.linuxbrew.

http://docs.brew.sh/Installation.html#alternative-installs
http://docs.brew.sh/FAQ.html#why-do-you-compile-everything
http://docs.brew.sh/Bottles.html#cellar-cellar


measure-object and json test fixes

rename and update json tests for change in precision
update measure-object test for additional precision

PR Summary

PR Context

PR Checklist

[ ] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[ ] Summarized changes
[ ] Change is not breaking
[ ] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

User-facing changes

[ ] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

@SteveL-MSFT, your last commit had 1 failures in PowerShell-CI-macos
Send-MailMessage.Error occurred in Describe block
Cannot bind argument to parameter 'Path' because it is null.
At /Users/vsts/agent/2.150.0/work/1/s/test/powershell/Modules/Microsoft.PowerShell.Utility/Send-MailMessage.Tests.ps1:11 char:30

@SteveL-MSFT, your last commit had 39 failures in PowerShell-CI-windows
(These are 5 of the failures)
Hard link and symbolic link tests.New-Item and hard/symbolic links.New-Item can create a directory symbolic link to a directory
Expected exactly 'C:\Users\VSSADM~1\AppData\Local\Temp\61bdd481-16b2-408b-8098-34ceb59ce812\subdir', but got C.
at <ScriptBlock>, D:\a\1\s\test\powershell\Modules\Microsoft.PowerShell.Management\FileSystem.Tests.ps1: line 483
483:             $link.Target[0] | Should -BeExactly $real.ToString()

Dot-source operator is not allowed in modules on locked down systems that export functions with wildcards.Verifies that a classes only module with dot-source and with using directive loads successfully
The term 'PublicUsingFn' 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 <ScriptBlock>, D:\a\1\s\test\powershell\Modules\Microsoft.PowerShell.Security\ConstrainedLanguageModules.Tests.ps1: line 426
426:                 $result = PublicUsingFn

Import trusted manifest files in system lockdown mode.Verifies that trusted manifest with nested modules and no extension module exports explicit function
Cannot load the module 'C:\Users\VSSADM~1\AppData\Local\Temp\21471474-f453-40cb-ad56-4ad25845f20f\ImportTrustedManifestWithNestedModsAndNoExtNoFnExport_System32' because the module nesting limit has been exceeded. Modules can only be nested to 10 levels. Evaluate and change the order in which you are loading modules to prevent exceeding the nesting limit, and then try running your script again.
at <ScriptBlock>, D:\a\1\s\test\powershell\Modules\Microsoft.PowerShell.Security\ConstrainedLanguageModules.Tests.ps1: line 1214
1214:                 $module = Import-Module -Name $manifestFileName -Force -PassThru

PowerShellGet - Module tests (Admin).Error occurred in Describe block
Exception calling "ShouldContinue" with "2" argument(s): "Object reference not set to an instance of an object."
At D:\a\1\s\src\powershell-win-core\bin\release\netcoreapp3.0\win7-x64\publish\Modules\PowerShellGet\PSModule.psm1:11044 char:9

PowerShellGet - Script tests (Admin).Error occurred in Describe block
Exception calling "ShouldContinue" with "2" argument(s): "Object reference not set to an instance of an object."

At /home/vsts/work/1/s/test/powershell/Modules/Microsoft.PowerShell.Utility/Send-MailMessage.Tests.ps1:11 char:30


Facing pathing issues with modules-includes when building for application

Hello There,
I am facing an issue with module-includes pathing when I am building an ios_application rule using objc_static_framework. I am seeing the following issue:
<module-includes>:3:9: note: in file included from <module-includes>:3:
#import "../../../../../external/Branch/Branch-SDK/Branch-SDK/BNCCommerceEvent.h"
        ^
OMITTED/external/Branch/Branch-SDK/Branch-SDK/BNCCommerceEvent.h:9:9: error: 'BNCServerRequest.h' file not found
#import "BNCServerRequest.h"
        ^
OMITTED/TestHarnessViewController.swift:9:8: error: could not build Objective-C module 'Branch'
import Branch

With the following Folder structure:
tree -d ios-branch-deep-linking-attribution-0.33.1/Branch-SDK/Branch-SDK
├── BNCCommerceEvent.h
├── BNCCommerceEvent.m
..Some File omitted for brevity
├── Branch.h
├── Branch.m
├── Networking
..Some File omitted for brevity
│   ├── BNCServerRequest.h
│   ├── BNCServerRequest.m
│   └── Requests
..Some File omitted for brevity
│       ├── BranchCPIDRequest.h
│       ├── BranchCPIDRequest.m
Now I am able to build the backing ObjC library and the Framework for this dependency, yet when I import this code into ios_application via apple_library it cannot build. I have tried flattening the directory structure and that did make it work (i.e. Moving all files to a single directory), this would be my easiest option but this is an external dependency I do not own.
Oddly enough I also got this to work by placing this single objc_static_framework as a dependency of another objc_library rule and importing that into an ios_application rule. This will not work for my project since my App is pure swift
Am I missing something here? I have tried adding paths to includes but I get the same error.

Can you try running Bazel with --incompatible_objc_compile_info_migration? It's required for building with the latest rules_apple, which I haven't tested this with.

--incompatible_objc_compile_info_migration plus adding Branch-SDK/Branch-SDK to my includes did the trick. Thanks again 😄


customizible encoder to hide/redact sensitive information

Is your feature request related to a problem? Please describe.
We need ability to hide sensitive information during pb to json encoding.
Describe the solution you'd like
Customizible encoder that will allow to work with options (see https://go.dev/blog/protobuf-apiv2).
Describe alternatives you've considered
Make most of internal parts importable to minimize copy-paste.
Additional context
None

Hi, sorry for late reply.
Protobuf redaction with following marshaling performs poorly due to double iteration over nested elements.
Internal part that could be used for redaction functionality, but lacks public interface to modify it's behaviour: https://github.com/protocolbuffers/protobuf-go/blob/b8fc7706010499f46982c883add4351b12e30c0b/encoding/protojson/encode.go#L259

@lfolger, Hello, I've came across this issue with same questions as the @ofen. My proposal is to extract the visitFunction and make it default visitFunction for MarshalOptions. So it will look like this:
func WriteJsonField(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {
        // Current logic from line 228
}

type MarshalOptions struct {
	pragma.NoUnkeyedLiterals
        // all-the-current-options fileds
        VisitFn VisitField
}

// Sample usage
func writeAndClear(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {
    clear(fd, v)
    return WriteJsonField(fd, v)
}
opt := protojson.MarshalOptions{VisitFn: writeAndClear}

If it looks good enough I can make a PR with the implementation

Would writeAndClear even work without mutating the original? Or otherwise, wouldn’t writeAndClear clear the value and then output it? So “clearAndWrite`?

The clearAndWrite sounds better, didn't think about it :)
About the mutating the original object, I think it is up to library user to mutate the values so general usage would look like
clonedMessage := myMessage.clone()
opt := protojson.MarshalOptions{VisitFn: clearAndWrite}

logger.logStructured(opt.Marshall(clonedMessage)

@Olex1313 this would require us to exposse the encoder because it is used in the code 228+.
This is a quite large change and I don't think we can do this right now without sufficient evidence that it has a significant impact.
Again, if you can share some pprof profiles or benchmarks that show the difference, it would help us to evaluate such a change.

@lfolger, I think you are right, I'm writing clone-based solution right now, I will provide benchmarks when I finish to see if it is really that necessary, but for repeated fields or maps I think it would be great to have a cheap masking option

@Olex1313 have you started the project? мне тоже нужно)

@ofen, sorry for late answer, been quiet busy.
Sample gist with proto clearup: https://gist.github.com/Olex1313/88ff52b1f4cad1af15c6733b4553b4cb
As for benchmarks I'll post it today evening, after switching from work to personal laptop

Hi @Olex1313 do you mind to share the progress?
Recently i'm looking for a solution of this issue. I also try to do some research and update. If you guys don't mind i can try to update, but need your help to review it.
My solution is that:

i add HideSensitiveMessage bool into MarshalOption struct
updating the RangeFields into:

order.RangeFields(fields, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {
		name := fd.JSONName()
		if e.opts.UseProtoNames {
			name = fd.TextName()
		}

		if fd.IsSensitiveField() && e.opts.HideSensitiveMessage {
			return true
		}

		if err = e.WriteName(name); err != nil {
			return false
		}
		if err = e.marshalValue(v, fd); err != nil {
			return false
		}
		return true
	})

this step in on_progress, i need to add new tag is_sensitive_field for the proto file

please let me know if this update is not suitable or can have issue.
cc @puellanivis

@Mahes2, I can not share the benchmarks, but as the @puellanivis said it's very complex design issue in protobuff serialization, and this doesn't go well with the purpose of Proto to JSON, because it works only in one way, but obviously you can't convert json->proto afterwards.
I've shared a gist https://gist.github.com/Olex1313/88ff52b1f4cad1af15c6733b4553b4cb, it contains sample approach to clearing the message for logs/etc.
For implementation in https://github.com/golang/protobuf I think it should be a third-party library, but not the part of it

@Mahes2

I see. but is it ok if i give contribution to add new tag and using the approach i have given above?
It's up to maintainers, if they are ok with such approach I would like to help w code/review

why it should be a 3rd party library?
As @lfolger said upwards, designing custom deserialization api is out of context of encoder api, because it provides a simple way of ser/des of proto objects. Hiding sensible data is not the single feature that should be provided, and api should be extendable for more than that.
My personal opinion that if you really have to hide data in serialized protos you can even use a encoding/json package with json:"-" annotation, or clear proto message and there are more ways how it can be implemented. The main question is should this really be part of golang/protobuf package, because it is kinda out of context and more specific usage.

I think implementing redaction logic inside protojson serialiser is bad idea, but it still good idea to have some internal parts accessible/public to let developers build their custom logic upon it.

I see. but is it ok if i give contribution to add new tag and using the approach i have given above?

Unfortunately, this is—as I said in your first issue—not going to be accepted. This package needs to stick fairly strictly to the protobuf standard, and this feature is definitely something that we don’t want to walk into. (Even adding the json tag itself is a well-known mis-step of the package, because it was just so easy to add them, and get JSON, right? And once protobuf actually established a proper JSON mapping, it was entirely incompatible with the new JSON mapping.)

Hi @puellanivis can you share me any doc or blog that has explaination about the protobuf standard? because i still don't know which standard that you are talking about.
Also, is the proper JSON mapping already in progress?
Finally, i thank you guys for giving the tips on how to handle the sensitive message. I did a little update with @Olex1313's suggestion and add it to my libs.
I have made a PR and it's also included with the benchmark
Really appreciate it if you guys @puellanivis @Olex1313 @ofen @lfolger can help me review it as well. thank you
https://github.com/Mahes2/go-libs/pull/9/files

https://protobuf.dev/programming-guides/proto3/ is the proto3 standard.
The proper JSON mapping is already complete, and done. It was done for v1 API with jsonpb and for the v2 API in protojson.


panic fix for root struct has unexported field and support embeded mi…

Bug fix, if outer struct has both exported and unexported field, it will panic.
Feature enhancement, if embed struct has both exported and unexported field then this embed struct will be ignore, I think it's better to just ignore that unexported field of that embed struct.

Looks great, thanks!

Hi, Has this change promoted to latest version ?

I just found that this change was merged in master.  @chidiwilliams  Can you please release a patch version or bump minor version with this change ?


Rclone

Source name
rclone
Source link
https://rclone.org/
Source language
multi
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a title with source name.
[X] I have checked that the extension does not already exist on the website extensions list or the app.
[X] I have checked that the extension does not already exist by searching the GitHub repository and verified it does not appear in the code base.
[X] I will fill out all of the requested information in this form.

https://github.com/rclone/rclone

In android the application called round sync adopts rclone
https://github.com/newhinton/Round-Sync

It supports
#3340
#3344
#3353
#3354

Wouldn't rcloning a directory to localsource achieve the same effect without the use of an extension?

It requires to always run the roundsynce app so everytime I need to use aniyomi I first need to start the round sync app or leave the app always running in background , and we can not  download episodes from remote server because media from local source always shows that the content is downloaded.
And the u need to manually change the ip address  everytime it changes if u are using some sort on own server in ur home server .

And the u need to manually change the ip address everytime it changes if u are using some sort on own server in ur home server

I hate this part the most , i setup a directory from saf for aniyomi and set it as the aniyomi folder and it was working well for the most but the next time I connected my server again to wifi the ip address changed from <IP_ADDRESS>:8080 to <IP_ADDRESS>:8080
And I refreshed the media in aniyomi everything went blank no cover , episodes and I had to setup the app again and the whole library was lost . So I gave up on using the Roundsync app .

And the u need to manually change the ip address everytime it changes if u are using some sort on own server in ur home server

I hate this part the most , i setup a directory from saf for aniyomi and set it as the aniyomi folder and it was working well for the most but the next time I connected my server again to wifi the ip address changed from <IP_ADDRESS>:8080 to <IP_ADDRESS>:8080
And I refreshed the media in aniyomi everything went blank no cover , episodes and I had to setup the app again and the whole library was lost . So I gave up on using the Roundsync app .

if you have a router then i think you can bind the MAC address of your device to an IP addres.

And the u need to manually change the ip address everytime it changes if u are using some sort on own server in ur home server

I hate this part the most , i setup a directory from saf for aniyomi and set it as the aniyomi folder and it was working well for the most but the next time I connected my server again to wifi the ip address changed from <IP_ADDRESS>:8080 to <IP_ADDRESS>:8080
And I refreshed the media in aniyomi everything went blank no cover , episodes and I had to setup the app again and the whole library was lost . So I gave up on using the Roundsync app .

if you have a router then i think you can bind the MAC address of your device to an IP addres.

Can u please guide me how if u dont mind . It'd help a lot .

And the u need to manually change the ip address everytime it changes if u are using some sort on own server in ur home server.

You can make the server use a static ip address rather then rely on dhcp.
If that doesn't work either, vpns can work too.

Don't use this chat for rclone/roundsync/whatever support please

Can u please guide me how if u dont mind . It'd help a lot .

you can google it with the name of your router (it varies based on different router brands)

Wouldn't rcloning a directory to localsource achieve the same effect without the use of an extension?

It requires to always run the roundsynce app so everytime I need to use aniyomi I first need to start the round sync app or leave the app always running in background , and we can not download episodes from remote server because media from local source always shows that the content is downloaded. And the u need to manually change the ip address everytime it changes if u are using some sort on own server in ur home server .

A native support would be much appreciated than using thirdparty app


Relation_io_tests fail intermittenly

For some time now the Relation_io_tests have been failing intermittently with errors like the following.
0: I1215 11:31:46.450402 11052 relation_io.hpp:148] write.bin has 6 rows
0: /sampa/home/nelson/grappa-jkl/applications/join/Relation_io_tests.cpp(112): error in "test1": check 2 == results.numtuples failed [2 != 6]
0: I1215 11:31:46.452055 11052 relation_io.hpp:148] write.bin has 8 rows
0: /sampa/home/nelson/grappa-jkl/applications/join/Relation_io_tests.cpp(137): error in "test1": check 4 == results.numtuples failed [4 != 8]

There seem to be two problems here. The first is that the "write.bin" file created by the tests is not deleted, so repeated runs fail. The second is unclear.

Aware of the issue at some point; I must not have fixed it in master. will do

Thanks!


Windows Integrated Auth fails

All our users are not able to authenticate with our DevOps Artifacts feed.
[Verbose] [CredentialProvider]GET https://XXX
[Verbose] [CredentialProvider]Could not find AAD authority from headers, using default: https://login.microsoftonline.com
[Verbose] [CredentialProvider]Using AAD authority: https://login.microsoftonline.com/common
[Verbose] [CredentialProvider]Failed to acquire token from cache
[Verbose] [CredentialProvider]VstsCredentialProvider - Exception trying to generate VSTS/TFS token: https://XXX, message: password_required_for_managed_user: Password is required for managed user, stack:    at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenNonInteractiveHandler.PreTokenRequestAsync()
   at Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Flows.AcquireTokenHandlerBase.RunAsync()
   at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenCommonAsync(String resource, String clientId, UserCredential userCredential)
   at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContextIntegratedAuthExtensions.AcquireTokenAsync(AuthenticationContext ctx, String resource, String clientId, UserCredential userCredential)
   at NuGetCredentialProvider.CredentialProviders.Vsts.AdalTokenProvider.AcquireTokenWithWindowsIntegratedAuth(CancellationToken cancellationToken) in E:\A\_work\203\s\CredentialProvider.Microsoft\CredentialProviders\Vsts\AdalTokenProvider.cs:line 98
   at NuGetCredentialProvider.CredentialProviders.Vsts.BearerTokenProvider.GetAsync(Uri uri, Boolean isRetry, Boolean isNonInteractive, Boolean canShowDialog, CancellationToken cancellationToken) in E:\A\_work\203\s\CredentialProvider.Microsoft\CredentialProviders\Vsts\BearerTokenProvider.cs:line 65
   at NuGetCredentialProvider.CredentialProviders.Vsts.VstsCredentialProvider.HandleRequestAsync(GetAuthenticationCredentialsRequest request, CancellationToken cancellationToken) in E:\A\_work\203\s\CredentialProvider.Microsoft\CredentialProviders\Vsts\VstsCredentialProvider.cs:line 70
[Verbose] [CredentialProvider]VstsCredentialProvider - Could not find credentials for https://XXX
[Information] [CredentialProvider]Username:
[Information] [CredentialProvider]Password:

Hi Christian.
Sorry about this issue - there's indeed a bug in 0.1.7 where if WIA fails unexpectedly, it doesn't attempt to use other mechanisms (e.g. device code flow). I've fixed this as well as another issue in a PR that I plan to merge within the next couple days after some more testing. Until then, I'd recommend jumping back to 0.1.6 which doesn't have WIA, as a workaround.
For my understanding / to make sure there isn't another bug, did you expect WIA to succeed? e.g. are you attempting to log into an AAD-backed Azure DevOps organization using a domain account?

I've released https://github.com/Microsoft/artifacts-credprovider/releases/tag/0.1.8 which should resolve this issue. Please give it a try and let me know if it's resolved for you.

We will give it a try. Thanks!


Similar support as ALZ for AMBA policies

Is your feature request related to a problem? Please describe.
The solution to sync up ALZ policies in EPAC is nice and it is easy to set up an automated/recurring sync.
However, the AMBA set up is entirely manual.
Describe the solution you'd like
I would like a similar Cmdlet like Sync-ALZPolicies but for AMBA (Sync-AMBAPolicies?)
And more documentation similar to what is offered for ALZ policies.
Thank you.

This is on my radar to do, I'll try and get something out in the next few weeks.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: cjtous1 @.>
Sent: Saturday, September 21, 2024 9:42:53 AM
To: Azure/enterprise-azure-policy-as-code @.>
Cc: Subscribed @.***>
Subject: [Azure/enterprise-azure-policy-as-code] Similar support as ALZ for AMBA policies (Issue #750)
Is your feature request related to a problem? Please describe.
The solution to sync up ALZ policies in EPAC is nice and it is easy to set up an automated/recurring sync.
However, the AMBA set up is entirely manual.
Describe the solution you'd like
I would like a similar Cmdlet like Sync-ALZPolicies but for AMBA (Sync-AMBAPolicies?)
And more documentation similar to what is offered for ALZ policies.
Thank you.
—
Reply to this email directly, view it on GitHubhttps://github.com/Azure/enterprise-azure-policy-as-code/issues/750 or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACWCJVQ4EJH7GKGR5M5W4U3ZXSXH5BFKMF2HI4TJMJ2XIZLTSOBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJLJONZXKZNENZQW2ZNLORUHEZLBMRPXI6LQMWBKK5TBNR2WLJDUOJ2WLJDOMFWWLLTXMF2GG2C7MFRXI2LWNF2HTLDTOVRGUZLDORPXI6LQMWSUS43TOVS2M5DPOBUWG44SQKSHI6LQMWVHEZLQN5ZWS5DPOJ42K5TBNR2WLKJTGM3TCNRSHAZTRAVEOR4XAZNFNFZXG5LFUV3GC3DVMWVDENJTHE4DEMBQGE2KO5DSNFTWOZLSUZRXEZLBORSQ.
You are receiving this email because you are subscribed to this thread.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Summing and Subtracting units with different degrees throws exception.

Summing and Subtracting units with different degrees throws exception,. Forexample, if you try to add 'm' onto 'm2', both are metric type only with different degrees, it throws an exception as expected. However, there may be a better way to cope with this behavior such as LSP and intellisense.  Because, it is inferible during compile time.

related notes:

any unit  is an immutable object.
degrees of units only changes during multiplication and division operations.
degrees of units shall be equal during summing and subtracting.


feat: add tracer.startActiveSpan()

adds helper function tracer.startActiveSpan()  which creates a new span and activates it in the current Context

Since this isn't in the spec and we have the problem for the suppress instrumentation system, can we even merge this in the API ?

Since this isn't in the spec and we have the problem for the suppress instrumentation system, can we even merge this in the API

According to spec this functionality may be offered by a separate operation, would this not be it? https://github.com/open-telemetry/opentelemetry-js-api/pull/14#issuecomment-829501740
I'm ignorant to the suppress instrumentation problem though.

I'm ignorant to the suppress instrumentation problem though.

Its our system to avoid exporting loop to "stop" instrumentation from generating spans which is an additional "operation/API" too but we've been asked to either add it to the spec or package it as a seperate npm package.

According to spec this functionality may be offered by a separate operation, would this not be it? #14 (comment)

Looks like the spec acknowledge it indeed so this should be fine to add

we have the problem for the suppress instrumentation system

What is the problem regarding suppress instrumentation here? Isn't this API is just a helper around exiting APIs?

we have the problem for the suppress instrumentation system

What is the problem regarding suppress instrumentation here? Isn't this API is just a helper around exiting APIs?

No there is no technical problem. I think @vmarchaud was using it as an example of a feature that we implemented without spec and got pushback from the TC.

Why is this WIP?

Why is this WIP?

It is not ready to be merged in its current state, and am still requesting comments/direction, e.g.: https://github.com/open-telemetry/opentelemetry-js-api/pull/54#discussion_r625023928

Ready for review.
todo: tests

I find the name startActiveSpan misleading as the span is never set on active context.
tracer.startActiveSpan("name", (span) => {
  assert.strictEqual(getSpan(context.active()), span);
});

I find the name startActiveSpan misleading as the span is never set on active context.
tracer.startActiveSpan("name", (span) => {
  assert.strictEqual(getSpan(context.active()), span);
});

IMO it should be made active. This is the whole point of the PR i thought

I find the name startActiveSpan misleading as the span is never set on active context.
tracer.startActiveSpan("name", (span) => {
  assert.strictEqual(getSpan(context.active()), span);
});

IMO it should be made active. This is the whole point of the PR i thought

yes, oversight of mine... bit of an uphill battle with this one

Two questions remain before I'm on to tests:

Should the context that is passed to startSpanAsActive(), be both the context in which to set the span as active (1st arg to setSpan()), as well as the context used to extract a parent (3rd arg to startSpan())?

Implementation in noop and proxy tracers are the exact same,  could this be factored out?

Hopefully the comment I left can help you with your sinon stub typing

Thanks! 🙏

Hopefully the comment I left can help you with your sinon stub typing

In the end it was still broken, sinon types + overloads don't play nicely as per https://github.com/DefinitelyTyped/DefinitelyTyped/issues/36436
But was able to work around it with any. I am going to now squash my commits, this PR is finally good to go

Thanks for the help everyone!


APIs for ASP.NET Core 2.2 Preview 3 are missing

Describe the bug
No APIs for ASP.NET Core 2.2 Preview 3 are available.
To Reproduce
Steps to reproduce the behavior:

Go to https://docs.microsoft.com/en-us/dotnet/api/index?view=aspnetcore-2.2
See "No Namespaces"

Expected behavior
I should see a list of available namespaces to browse.

Thanks for the report, @johnduhart - we will get this addressed shortly.

Thanks for the report, @johnduhart - we will get this addressed shortly.

ASP.NET 2.2 has been releases officially yet its api still missing from the api browser

Cross-link: https://github.com/MicrosoftDocs/feedback/issues/930 ... it's prob a dup of this issue.

This is already resolved 😄 Thank you for the feedback @johnduhart!


bug: Disabled fab-buttons no longer have an opacity set

Bug Report
Ionic version:
[x] 4.6.0
Current behavior:
If the disabled attribute is set on a ion-fab-button, the opacity of the fab-button is no longer set to 0.5.
Expected behavior:
As in v.4.5.0 the button should be displayed with an opacity of 0.5
Other information:
Seems like the problem is related to a wrong style definition in fab-button.[ios|md].css:
:host(.fab-button-disabled) {   --opacity: .5;   pointer-events: none; }
I guess this should be something like:
:host(.fab-button-disabled) {  opacity: .5;   pointer-events: none; }
or
:host(.fab-button-disabled) {   opacity: var(--opacity);   pointer-events: none; }

Thanks for the issue! I was able to reproduce this: https://codepen.io/liamdebeasi/pen/zVWBjY
We will look into this! cc @brandyscarney

Fixed by #18685 will be in our 4.6.1 hotfix release, please follow for updates on this issue: #18655


Vendor in numeric as ESM

Rebuilt numeric.js from scratch
Refactored it into an ESM module

I had to modify several direct evals and string-based Functions that use the global scope, but it seems to work now. There doesn't appear to be a need anymore for globals (or the distill CSS).
Todo: types are missing, but I'm not sure how to vendor those in.

btw, I transferred the repo to abdenlab

Ideally, we'd just vendor the functions we actually use (and understand the usage in the orignal source code).

Yes, there's only a couple that are actually used. And even fewer that actually need to be used. Basically just the steps for gram-schmidt orthogonalization.


drivers: reset: Use of reserved identifier assert

Describe the bug
The reset controller driver header file makes use of the identifier assert, which is reserved by the C standard and should not be defined outside the C library:
https://github.com/zephyrproject-rtos/zephyr/blob/25e6279493d673ec76ef5cb72bbfb0b651274144/include/zephyr/drivers/reset.h#L140
This causes a conflict with the newlib assert.h header, which defines the assert macro that gets expanded when accessing the reset controller driver API struct member assert.
https://github.com/zephyrproject-rtos/zephyr/blob/25e6279493d673ec76ef5cb72bbfb0b651274144/include/zephyr/drivers/reset.h#L209
Logs and console output
/home/stephanos/Dev/zephyrproject/zephyr/include/zephyr/drivers/reset.h: In function 'z_impl_reset_assert':
/home/stephanos/Dev/zephyrproject/zephyr/include/zephyr/drivers/reset.h:213:28: error: macro "assert" passed 2 arguments, but takes just 1
  213 |  return api->assert(dev, id);

In file included from /opt/zephyr-sdk-0.14.2/arm-zephyr-eabi/arm-zephyr-eabi/sys-include/sys/reent.h:503,
                 from /opt/zephyr-sdk-0.14.2/arm-zephyr-eabi/arm-zephyr-eabi/sys-include/sys/errno.h:11,
                 from /opt/zephyr-sdk-0.14.2/arm-zephyr-eabi/arm-zephyr-eabi/sys-include/errno.h:9,
                 from /home/stephanos/Dev/zephyrproject/zephyr/include/zephyr/drivers/uart.h:23,
                 from /home/stephanos/Dev/zephyrproject/zephyr/drivers/serial/uart_rpi_pico.c:8:
/opt/zephyr-sdk-0.14.2/arm-zephyr-eabi/arm-zephyr-eabi/sys-include/assert.h:16: note: macro "assert" defined here
   16 | # define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \
      |

To Reproduce
Include newlib assert.h and drivers/reset.h together.
Impact
Unable to use the drivers/reset.h alongside the C library assert.h.
Environment (please complete the following information):

OS: Ubuntu 20.04
Toolchain: Zephyr SDK 0.14.2
Commit SHA: 25e6279493d673ec76ef5cb72bbfb0b651274144

Additional context
Discovered in https://github.com/zephyrproject-rtos/zephyr/issues/45932

FYI @andrei-edward-popa

FYI @andrei-edward-popa
Could you please look into this?

Hi! I understand the issue, but if you include assert.h after drivers/reset.h the code compiles because the assert name is not replaced by the assert define. If it is necessary, I can change assert and deassert into something else. @gmarull What do you think?

For context, the problem would appear with a reset driver (there's only reset_rpi_pico.c for now) and CONFIG_NEWLIB_LIBC=y. For example west build -p -b rpi_pico samples/basic/blinky -DCONFIG_NEWLIB_LIBC=y fails.

For context, the problem would appears with a reset driver (there's only reset_rpi_pico.c for now) and CONFIG_NEWLIB_LIBC=y. For example west build -p -b rpi_pico samples/basic/blinky -DCONFIG_NEWLIB_LIBC=y fails.

Oh, it is clear for me now. I have 2 options to fix this: to change the name from assert and deassert to something else (I am open to any suggestions for this), or to insert "#undef assert" into include/zephyr/reset.h. @carlocaione What do you think?

@stephanosio mentioned on Discord that this API was never part of a release, so it should be ok to modify without going through the API change process. Guess if we want to change it (I say it's the right thing to do) we should do it before v3.1 gets cut.
Not sure about the naming... set/unset?

to insert "#undef assert" into include/zephyr/reset.h

That is going to be problematic if there is anything after the inclusion of reset.h that actually makes use of the assert macro from the assert.h.

to change the name from assert and deassert to something else

That would be the most viable solution in my opinion; though, it might be feasible to keep the assert/deassert nomenclature and simply prefix (or suffix) it (e.g. line_assert and same for line_deassert for the sake of consistency).
cc @carlescufi

Fine to me the name change and the line_{assert,deassert} proposal

Cool, I will do a PR today with those changes.


Wiring Instruction feature

Description
When MakeCode detects that some requires electronic components mounted on a breadboard, it generates a precise assembly instruction booklet. The instructions are meant to drive a beginner through the process of wiring the breadboard to make the code work.
How to enable it?
If your code requires wiring, a "tool" icon will appear in the simulator toolbar.
If you cannot see that button and you editor supports this experiment, go to About, then click Experiments and Wiring Instructions. If you cannot see this card, your editor does not support yet this feature.
Feedback
Do you use this feature? Is there something you'd like to change? Did you encounter issues? Please drop a comment on this issue to send us your feedback.

The tool icon doesn't appear for "analog read pin". It appears when I had "play tone" but the wiring instructions don't seem right.
Project:

Printout:

We should hide the screen too :)
Get Outlook for iOShttps://aka.ms/o0ukef

From: Martin Williams<EMAIL_ADDRESS>Sent: Friday, December 7, 2018 4:59 AM
To: Microsoft/pxt
Cc: Peli de Halleux; Author
Subject: Re: [Microsoft/pxt] Wiring Instruction feature (#4739)
The tool icon doesn't appear for "analog read pin". It appears when I had "play tone" but the wiring instructions don't seem right.
Project:
[image]https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F989126%2F49648928-7fcef580-fa1f-11e8-9726-53b7c9d836a1.png&data=02|01|jhalleux%40microsoft.com|a250f84f051e483d5f8608d65c43e3cb|72f988bf86f141af91ab2d7cd011db47|1|0|636797843988714607&sdata=tYQLN8phXkhWkHr14ZpKtW%2BgGOw0klwjRV6IppbSKpo%3D&reserved=0
Printout:
[image]https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F989126%2F49648886-62019080-fa1f-11e8-8a52-614263c1c375.png&data=02|01|jhalleux%40microsoft.com|a250f84f051e483d5f8608d65c43e3cb|72f988bf86f141af91ab2d7cd011db47|1|0|636797843988724616&sdata=yfxLfMNIYmpiQjcxmEy1YDolWrEfek9eL7bEAPpju%2FQ%3D&reserved=0
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fpxt%2Fissues%2F4739%23issuecomment-445225674&data=02|01|jhalleux%40microsoft.com|a250f84f051e483d5f8608d65c43e3cb|72f988bf86f141af91ab2d7cd011db47|1|0|636797843988734624&sdata=w2VqfrYVVwd7bRLoJLBSDZoFlDL%2BXO7txrMGsTEWTUQ%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAD-4KYe4ocWSq5uDbJMI1MsvginW20eqks5u2mZNgaJpZM4W7qJD&data=02|01|jhalleux%40microsoft.com|a250f84f051e483d5f8608d65c43e3cb|72f988bf86f141af91ab2d7cd011db47|1|0|636797843988734624&sdata=l%2BnZl0Y1kntoIDvVsDzpKR2JOIpNkE1UeTc2Adib%2Blo%3D&reserved=0.

Wiring Instructions printing fails on iOS and is slow on macOS.
Please see issue here:
https://github.com/Microsoft/pxt-microbit/issues/1722


conda the special version

Habitat-Sim version
vx.x.x
Habitat is under active development, and we advise users to restrict themselves to stable releases. Are you using the latest release version of Habitat-Sim? Your question may already be addressed in the latest version. We may also not be able to help with problems in earlier versions because they sometimes lack the more verbose logging needed for debugging.
Main branch contains 'bleeding edge' code and should be used at your own risk.
Docs and Tutorials
Did you read the docs? https://aihabitat.org/docs/habitat-sim/
Did you check out the tutorials? https://aihabitat.org/tutorial/2020/
Perhaps your question is answered there. If not, carry on!
❓ Questions and Help
my problem is how to use the conda to install the special version habitat-sim
like habitat-sim 0.1.7  and the commit version == ee75ba5312fff02aa60c04f0ad0b357452fc2edc
what's the command should input?
thank you

From our readme:

Conda packages for older versions can installed by explicitly specifying the version, e.g. conda install habitat-sim=0.1.6 -c conda-forge -c aihabitat