How can I obtain the attribute values in Level

This is part of the content of the level class
public class Level : ZeroFormattableBase<Level, string, int, List<Bubble>, BoardCondition, int, bool, int> // TypeDefIndex: 13106
{
	// Properties
	public string author { get; set; }

	// Methods
	// RVA: 0x21692A8 Offset: 0x21682A8 VA: 0x21692A8
	public string get_author() { }

}

This is the function being called and the return value
[AsyncStateMachine(typeof(LevelDataManager.<LoadLevel>d__9))]
// RVA: 0x21615D0 Offset: 0x21605D0 VA: 0x21615D0
public UniTask<Level> LoadLevel(int levelNumber) { }

This is my code
 const levelItem=LevelDataManager.field<Il2Cpp.Object>("Instance").value.method("LoadLevel").invoke(2);
    console.log(levelItem)
    console.log(levelItem.handle);
    console.log(levelItem.type)
    console.log(levelItem.type.handle)
    console.log(levelItem.method("ToString").invoke())

This is the output result
console------>Data.Level
console------>0x74c3fe1fa0
console------>Cysharp.Threading.Tasks.UniTask<Data.Level>
console------>0x74bc75bdf0
console------>"Data.Level"

The help needed
I cannot get what I want through field and method, new Il2Cpp.Object(levelItem.handle) also doesn't work
The problem seems to be with the return value UniTask, which I cannot handle

Hello, you first need to retrieve the UniTask result.
Here's a function to do so
import "frida-il2cpp-bridge";

function getUniTaskResult(uniTaskObj: Il2Cpp.Object): any {
    const awaiter = uniTaskObj.method("GetAwaiter").invoke() as Il2Cpp.Object;
    while (!(awaiter.method("get_IsCompleted").invoke() as boolean)) {}
    return awaiter.method("GetResult").invoke();
}

Here's how you can use it

Il2Cpp.perform(() => {
    const AsemblyCSharp = Il2Cpp.domain.assembly("Assembly-CSharp").image;
    const ExampleClass = AsemblyCSharp.class("LevelDataManager");
    const loadLevelMethod = ExampleClass.method("LoadLevel");
    const uniTaskObj = loadLevelMethod.invoke(2) as Il2Cpp.Object;
    const result = getUniTaskResult(uniTaskObj) as Il2Cpp.Object;
    console.log(result)
});

You can tweak the code as needed but this should help you fix your issue !

Level

Thank you for answering the question I raised due to my insufficient development skills. I can now use the Level object

Hello, you first need to retrieve the UniTask result. Here's a function to do so
import "frida-il2cpp-bridge";

function getUniTaskResult(uniTaskObj: Il2Cpp.Object): any {
    const awaiter = uniTaskObj.method("GetAwaiter").invoke() as Il2Cpp.Object;
    while (!(awaiter.method("get_IsCompleted").invoke() as boolean)) {}
    return awaiter.method("GetResult").invoke();
}

Here's how you can use it
Il2Cpp.perform(() => {
    const AsemblyCSharp = Il2Cpp.domain.assembly("Assembly-CSharp").image;
    const ExampleClass = AsemblyCSharp.class("LevelDataManager");
    const loadLevelMethod = ExampleClass.method("LoadLevel");
    const uniTaskObj = loadLevelMethod.invoke(2) as Il2Cpp.Object;
    const result = getUniTaskResult(uniTaskObj) as Il2Cpp.Object;
    console.log(result)
});

You can tweak the code as needed but this should help you fix your issue ! (this code assumes that LoadLevel is static but it's not)

Thank you for answering the question I raised due to my insufficient development skills. I can now use the Level object


Issues in Transform docs?

The docs of Transform are a bit confusing.
The current signature in the docs is:
class Transform(mobject=None, *args, use_override=True, **kwargs)
but then the following list of parameters does not really match:
PARAMETERS:

- mobject ([Mobject](https://docs.manim.community/en/stable/reference/manim.mobject.mobject.Mobject.html#manim.mobject.mobject.Mobject) | None) – The [Mobject](https://docs.manim.community/en/stable/reference/manim.mobject.mobject.Mobject.html#manim.mobject.mobject.Mobject) to be transformed. It will be mutated to become the target_mobject.

- target_mobject ([Mobject](https://docs.manim.community/en/stable/reference/manim.mobject.mobject.Mobject.html#manim.mobject.mobject.Mobject) | None) – The target of the transformation.

- path_func (Callable | None) – A function defining the path that the points of the mobject are being moved along until they match the points of the target_mobject, see [utils.paths](https://docs.manim.community/en/stable/reference/manim.utils.paths.html#module-manim.utils.paths).

- path_arc (float) – The arc angle (in radians) that the points of mobject will follow to reach the points of the target if using a circular path arc, see path_arc_centers. See also [manim.utils.paths.path_along_arc()](https://docs.manim.community/en/stable/reference/manim.utils.paths.html#manim.utils.paths.path_along_arc).

- path_arc_axis (np.ndarray) – The axis to rotate along if using a circular path arc, see path_arc_centers.

- path_arc_centers (np.ndarray) –

The center of the circular arcs along which the points of mobject are moved by the transformation.

If this is set and path_func is not set, then a path_along_circles path will be generated using the path_arc parameters and stored in path_func. If path_func is set, this and the other path_arc fields are set as attributes, but a path_func is not generated from it.

- replace_mobject_with_target_in_scene (bool) –

Controls which mobject is replaced when the transformation is complete.

If set to True, mobject will be removed from the scene and target_mobject will replace it. Otherwise, target_mobject is never added and mobject just takes its shape.

does it not ? it's everything that can be passed to *args and **kwargs 🤷🏼

Not at all.
class Transform(mobject:Mobject, target_mobject:Mobject,  path_func: Callable = ???, path_arc:float = ??? , path_arc_axis:np.ndarray = ???, path_arc_centers:np.ndarray = ???, **kwargs)

Transforms mobject into target_mobject.

PARAMETERS:

- mobject ([Mobject](https://docs.manim.community/en/stable/reference/manim.mobject.mobject.Mobject.html#manim.mobject.mobject.Mobject)) – The [Mobject](https://docs.manim.community/en/stable/reference/manim.mobject.mobject.Mobject.html#manim.mobject.mobject.Mobject) to be transformed. It will be mutated to become the target_mobject.

- target_mobject ([Mobject](https://docs.manim.community/en/stable/reference/manim.mobject.mobject.Mobject.html#manim.mobject.mobject.Mobject)) – The target of the transformation.

- path_func (Callable) – A function defining the path that the points of the mobject are being moved along until they match the points of the target_mobject, see [utils.paths](https://docs.manim.community/en/stable/reference/manim.utils.paths.html#module-manim.utils.paths).

- path_arc (float) – The arc angle (in radians) that the points of mobject will follow to reach the points of the target if using a circular path arc, see path_arc_centers. See also [manim.utils.paths.path_along_arc()](https://docs.manim.community/en/stable/reference/manim.utils.paths.html#manim.utils.paths.path_along_arc).

- path_arc_axis (np.ndarray) – The axis to rotate along if using a circular path arc, see path_arc_centers.

- path_arc_centers (np.ndarray) – The center of the circular arcs along which the points of mobject are moved by the transformation.

- **kwargs - keyword arguments passed to the parent class Animation.

> NOTE: If this is set and path_func is not set, then a path_along_circles path will be generated using the path_arc parameters and stored in path_func. If path_func is set, this and the other path_arc fields are set as attributes, but a path_func is not generated from it.

In-spite there are many tweaks to be done (like the ???'s and perhaps something to be fixed here and there), from a user perspective I bet that the wide majority would find this version more clear compared to what is currently in the docs.
Even semantically: if Transform is intended to transform A into B, it must require at least two positional arguments.
The fact that "under the hood" you could call Transform(None) has no utility for the user. What does it mean this semantically? What the user shall expect after this? It is just confusing overhead that produce zero value (actually it produces "negative" value, i.e. confusion).

The parameter documentation is correct, the signature in the function header is a bug that comes from implementing Animation.__new__, I believe. This is a minor thing, but it should be fixed.


NTR: [ADP-riboxanase activity]

Hi GO,
I would need a new term for an enzyme that mediates a new post-translational modification. Please note that the Rhea reaction is not yet public
Thanks
Sylvain
ADP-riboxanase activity
Catalysis of the reaction: L-arginyl-[protein] + NAD(+) = ADP-riboxanated L-argininyl-[protein] + H(+) + NH4(+) + nicotinamide
RHEA:69500
PMID:34671164;
child of  GO:0016829 lyase activity

from @sylvainpoux  - this corresponds to EC:4.3.99.-

+[Term]
+id: GO:0140740
+name: ADP-riboxanase activity
+namespace: molecular_function
+def: "Catalysis of the reaction: L-arginyl-[protein] + NAD(+) = ADP-riboxanated L-argininyl-[protein] + H(+) + NH4(+) + nicotinamide." [PMID:34671164, RHEA:69500]
+comment: Note that this activity has two steps: a transfer of an ADP-robose group, followed by the elimitation of an ammonia group.
+xref: EC:4.3.99.-
+xref: RHEA:69500
+is_a: GO:0016772 ! transferase activity, transferring phosphorus-containing groups
+is_a: GO:0016841 ! ammonia-lyase activity
+is_a: GO:0140096 ! catalytic activity, acting on a protein
+relationship: part_of GO:0043687 ! post-translational protein modification
+property_value: term_tracker_item https://github.com/geneontology/go-ontology/issues/22480 xsd:anyURI
+created_by: pg
+creation_date: 2021-11-30T08:29:49Z
+

@sylvainpoux please note I have added
part_of GO:0043687 ! post-translational protein modification
Let me know i this is not right
Thanks

Hi @pgaudet , yes, it is perfect. ADP-riboxanation in a PTM
Many thanks
Sylvain


Update PPP

Update PPP

Codecov Report
Base: 65.44% // Head: 65.44% // No change to project coverage :thumbsup:

Coverage data is based on head (bbd1e9d) compared to base (e5b0b31).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #191   +/-   ##
=========================================
  Coverage     65.44%   65.44%
  Complexity      640      640
=========================================
  Files           101      101
  Lines          2402     2402
  Branches        291      291
=========================================
  Hits           1572     1572
  Misses          719      719
  Partials        111      111

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


fix(tunnel): add legacy route for api-route for gg nodes

For backwards compat

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#769
#768
#767  👈
#760
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NathanFlurry and the rest of your teammates on  Graphite


Linting and formatting

Hi
We have just upgraded to the latest version of the charting library and are having some problems getting the charts to render.
The first issue we have come across is the styling, there appears to be errors in this file
The code:
newStyle.height === null && 600
seems to be trying to set default values but that is not what it is doing, I think the correct code would be something like:
newStyle.height = newStyle.height == null ? 600 : newStyle.height
this will set newStyle.height to 600 if the current value is null or undefined (=== will only check for null) this code could also be made a lot more concise using object spread but may be more difficult to understand.
The checks for null such as if (newStyle.tickLabelTextStyle===null) will only work if the value is null the typescript does not all null to be set only undefined this could be fixed by adding a check for undefined or changing to == as mentioned above.
=== should be used everywhere except checking for null when you also want to check for undefined.
A linting tool such as eslint with moderately strict settings should catch issues like this as the current code would do nothing.
I would also recommend adding a formatting tool like prettier to help keep code style consistent.
I would be happy to do a PR if you would like me to resolve any of these issues, adding a formatter would change the formatting of all the files so may be difficult to review.

Thanks for the fast fix, I totally get not using object spread.
Just to note in the code such as newStyle.infoBoxStroke == null || '' is probably not what you want as || '' will always be falsey as it is equivelant to || false I think the code needs to be something like
newStyle.infoBoxStroke = newStyle.infoBoxStroke == null || newStyle.infoBoxStroke == '' ? "#CDCDCD" : newStyle.infoBoxStroke
or
newStyle.infoBoxStroke = newStyle.infoBoxStroke ? newStyle.infoBoxStroke : "#CDCDCD"
the 2nd way is maybe a little less intuitive and could have some not intended behaviour if newStyle.infoBoxStroke is any falsy value then the check will "fail" and the default value will be used but I think in this case it is acceptable as any falsy value would not be what you want.

Thank you - it struck me that some of the values could simply be empty strings rather than null/undefined so added that in.
Testing for empty string though would be ===`` though, not ==```?

Ah yes you are correct it would be best to use ===
newStyle.infoBoxStroke = newStyle.infoBoxStroke == null || newStyle.infoBoxStroke === '' ? "#CDCDCD" : newStyle.infoBoxStroke

Thanks that is helpful. I have been through and checked for null and length where the prop is a string. Pushing a patch now.


Error occurs after clicking: Cannot convert argument 2 from bool to float

After clicking, error occurs:
res://addons/panku_console/components/lynx_window2/lynx_windows_manager_2.gd
Invalid type in GDScript utility function ''. Cannot convert argument 2 from bool to float.

I add test code to debug:
var array = range(get_child_count() - 1, -1, -1)
print_debug(array)
for i in range(get_child_count() - 1, -1, -1):

Then array is fine to print.
So it is weird. If I write code like
var array = range(get_child_count() - 1, -1, -1)
for i in array:

Then there won't be any error.
Addon Version: 1.3.73
Godot Version: v4.0.rc4.official [e0de3573f]

Fixed by https://github.com/godotengine/godot/pull/73841


Stopping in progress job

I hope this message finds you well.
I am currently facing a challenge with stopping in-progress jobs in Solid Queue and would appreciate your guidance on this matter.
In my use case, I have built a scraper that uses a proxy service with bandwidth that incurs costs. Although my job is not failing, it occasionally gets stuck in a loop due to a bug, leading to continuous connections to the proxy and unnecessary bandwidth consumption. This is becoming quite costly.
I have tried to find a way to gracefully stop an in-progress job, but I haven't found a solution, even in Mission Control. I suspect this might be by design, but not being able to stop a job is problematic in my scenario.
Could you please provide the best approach to gracefully stop an in-progress job.
By the way I'm running it all on Digital Ocean's app platform if that makes any difference
Thank you so much

Hey @luigi7up! Right now, the only way to stop an in-progress job is to send a QUIT signal to the worker running the job. You can check this in Mission Control. The worker should show the hostname where it's running and its pid, so you can use that to send the signal. The worker will exit! when it receives the QUIT signal, killing its thread pool. Other jobs being run by that worker (if you're running a number of threads > 1) will also be killed. One thing to note is that the jobs will eventually be automatically released back to the queue and will be picked up again by another worker.
Check also https://github.com/rails/solid_queue/issues/124.

Going to close this one in favour of #124


Data foundation: Need bill of materials for DB2WH

Data foundation: Need bill of materials for DB2WH

Already done.  See https://github.com/cloud-native-toolkit/automation-solutions/tree/main/boms/software/cp4d


Error deploy on vivasoft app service

Does this occur consistently?
Repro steps:

1.deploy on vivasoft app service
2.Message from visual code
Action: appService.Deploy
Error type: 409
Error Message: The 'Preparing zip package' operation conflicts with the pending 'Preparing zip package' operation started at redacted:id01T09redacted:id0551188Z.  Please retry operation later.
Version: 0.24.7
OS: win32
OS Release: 10.0.19045
Product: Visual Studio Code
Product Version: 1.75.1
Language: en

Call Stack
new RestError extension.bundle.js:2:1709073
extension.bundle.js:2:1696547extension.bundle.js:2:1696547

Based on the error, it seems like there is a zip operation conflict.  Does the error reproduce consistently?  If it fails again, could you try deploying from a new App Service instance and let us know if it works.  Thank you


Fix Bandit issues

For some reason, bandit on CI is calling us out for more SQL injection vulnerabilities than it is locally.
First, try to fix the things they caught. Second, we should try to figure out why the bandits differ.

I think the pre-commit hooks also only update once a week, and so they were still at bandit 1.7.4 while the new environment in CI immediately updated to 1.7.5 the next time it got rebuilt.


Migrate to ES6

I have started working on migrating this project to ES6. I'm working on this in the develop branch.
The version in this branch will be the first 1.0.0 release.
Todo

[x] Install babel to enable usage of ES6 on the back-end
[x] Install and configure ESLint rules based on standardjs (with some additions)
[x] Replace Grunt with Gulp as a task-runner
[x] Leverage webpack + babel to enable usage of ES6 in the front-end
[x] Remove bower in favor of npm packages for the front end
[ ] Restructure directory layout (move app code into a src dir)
[ ] Implement bootstrap-admin-ui (fork of rdash-ui)
[ ] Add a build-step
[ ] Add tests for back- and frond end

Known issues

[ ] The dropdowns in the navbar don't work
[ ] The back end and front end servers are started separately (npm run dev and webpack-dev-server)

If you find any more issues, please let me know.

Hi!!
Thanks for your help and sorry for the late reply.
Some issues still here :
I upgraded node to 6.2.0 and strongloop to 2.28.0 (Latest stable) => deprecated warnings in package.json :
npm WARN deprecated<EMAIL_ADDRESS>graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to<EMAIL_ADDRESS>as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated<EMAIL_ADDRESS><EMAIL_ADDRESS>is no longer maintained. Upgrade to<EMAIL_ADDRESS>npm WARN deprecated<EMAIL_ADDRESS>graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to<EMAIL_ADDRESS>as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g

Closing in favor of work on project based on Angular 2+ / TypeScript. Follow here https://github.com/beeman/loopback-angular-admin/issues/202


chore: Upgrade or deprecate Packer template

Comes from CVE-2018-21246 critical vulnerability for github.com/caddyserver/caddy package
Tracking issue for:

[ ] https://github.com/meltano/meltano/security/code-scanning/1187

Not entirely sure this is still used or intended to be used. The most evidence of its use I can find is our marketplace listing on DO: https://marketplace.digitalocean.com/apps/meltano
That hasn't been updated in 2 years, and unless there are other places our cloud/packer template gets used, then this code hasn't been used in that time.
To resolve we need to do one of:

Grab the latest binary release for caddy with the right arch, test the packer template, test resulting image on Digital Ocean?
Determine if this is still necessary based on the current staleness, consider alternatives, delete?

cc: @WillDaSilva

We should be able to delete it. The DO package is not maintained. If I recall correctly there was discussion about removing it from the marketplace.
Relates to #6262
CC @afolson

@WillDaSilva - Yes:
We should be able to delete it. The DO package is not maintained. If I recall correctly there was discussion about removing it from the marketplace.
This sounds right to me too.

Fixed by:

https://github.com/meltano/meltano/pull/6842


RaygunClient.send causes NullPointerException, null pointer exception is not handled properly causing another null pointer exception

Calling RaygunClient.send causes NullPointerException
The following appears in the logcat
2018-10-08 11:18:52.845 10560-10560/? W/Raygun4Android: Couldn't get all env data: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
2018-10-08 11:18:52.847 10560-10560/? E/Raygun4Android: Failed to build RaygunMessage - java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
2018-10-08 11:18:52.847 10560-10560/? E/TLog: Raygun failed to send error, trying again with limited data. Error: java.lang.NullPointerException: Attempt to invoke virtual method 'main.java.com.mindscapehq.android.raygun4android.messages.RaygunMessageDetails main.java.com.mindscapehq.android.raygun4android.messages.RaygunMessage.getDetails()' on a null object reference

Looks like there are three problems here!
First problem
2018-10-08 11:18:52.845 10560-10560/? W/Raygun4Android: Couldn't get all env data: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference

  public RaygunEnvironmentMessage(Context context) {
    try {
      architecture = Build.CPU_ABI;
      oSVersion = Build.VERSION.RELEASE;
      osSDKVersion = Build.VERSION.SDK;
      deviceName = Build.MODEL;
      deviceCode = Build.DEVICE;
      brand = Build.BRAND;
      board = Build.BOARD;

      processorCount = Runtime.getRuntime().availableProcessors();

      int orientation = context.getResources().getConfiguration().orientation; // ----> context is null here!

      .setEnvironmentDetails(RaygunClient.context)

I don't know how the context could possibly be null, although I am investigating this issue now. This could be a problem with my code base. Will provide updates later when i find more information
Second problem
2018-10-08 11:18:52.847 10560-10560/? E/Raygun4Android: Failed to build RaygunMessage - java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference

Another null context problem, could be related to the above problem, am investigating this issue now
Third problem
    2018-10-08 11:18:52.847 10560-10560/? E/TLog: Raygun failed to send error, trying again with limited data. Error: java.lang.NullPointerException: Attempt to invoke virtual method 'main.java.com.mindscapehq.android.raygun4android.messages.RaygunMessageDetails main.java.com.mindscapehq.android.raygun4android.messages.RaygunMessage.getDetails()' on a null object reference

  public static void send(Throwable throwable, List tags, Map userCustomData) {
    RaygunMessage msg = buildMessage(throwable);

    msg.getDetails().setTags(mergeTags(tags));          // -----> See below comment. Of course we are getting a null pointer exception here!
    msg.getDetails().setUserCustomData(mergeUserCustomData(userCustomData));

    if (RaygunClient.onBeforeSend != null) {
      msg = RaygunClient.onBeforeSend.onBeforeSend(msg);
      if (msg == null) {
        return;
      }
    }

    postCachedMessages();
    spinUpService(RaygunClient.apiKey, new Gson().toJson(msg), false);
  }

  private static RaygunMessage buildMessage(Throwable throwable) {
    try {
      RaygunMessage msg =  RaygunMessageBuilder.instance()
          .setEnvironmentDetails(RaygunClient.context)
          .setMachineName(Build.MODEL)
          .setExceptionDetails(throwable)
          .setClientDetails()
          .setAppContext(RaygunClient.appContextIdentifier)
          .setVersion(RaygunClient.version)
          .setNetworkInfo(RaygunClient.context)
          .build();

      if (RaygunClient.version != null) {
        msg.getDetails().setVersion(RaygunClient.version);
      }

      if (RaygunClient.userInfo != null) {
        msg.getDetails().setUserContext(RaygunClient.userInfo, RaygunClient.context);
      }
      else if (RaygunClient.user != null) {
        msg.getDetails().setUserContext(RaygunClient.user);
      }
      else {
        msg.getDetails().setUserContext(RaygunClient.context);
      }
      return msg;
    }
    catch (Exception e) {
      RaygunLogger.e("Failed to build RaygunMessage - " + e);
    }
    return null; // -------------------------> Somebody wasn't thinking straight :P. The catch above shouldn't even be there!
  }

This issue Could be related to #44

Aha so the first two problems were caused by some really complex legacy code in my application. I'm glad I found that problem
anyway the third problem is still a problem with the RayGun code. If there is any exception creating a message, RayGun will crash via a null pointer exception. This should be fixed. Also, the full stack trace ideally should be printed out, not just the first line

anyway the third problem is still a problem with the RayGun code. If there is any exception creating a message, RayGun will crash via a null pointer exception. This should be fixed. Also, the full stack trace ideally should be printed out, not just the first line

I fully agree. This will for sure be fixed in RG4A 4.0 (We're currently working on that). Would you be interested in giving an early version of a 4.0.0-alpha build a go (maybe in 1-2 weeks?)
I need to check with the RG team if this is something we're going to bac kport into the 3.0.0 branch at this stage.
cc: @mduncan26

Thanks for your quick response. Work is quite hectic at the moment so probably won't get time to do that :(

This issue has been fixed in the latest version of Raygun4Android (3.0.6). Closing this issue.


Unhandled 'error' event

Using node v6.7.0 and npm 3.10.3
Doing a simple yo webpack-angular throws:
Trying to copy from a source that does not exist: /Volumes/extra/PROJECTS/node/webpack-angular/node_modules/generator-webpack-angular/templates/app/_.babelrc
    at EditionInterface.exports._copySingle (/Volumes/extra/PROJECTS/node/webpack-angular/node_modules/mem-fs-editor/lib/actions/copy.js:45:3)
    at EditionInterface.exports.copy (/Volumes/extra/PROJECTS/node/webpack-angular/node_modules/mem-fs-editor/lib/actions/copy.js:23:17)
    at EditionInterface.module.exports [as copyTpl] (/Volumes/extra/PROJECTS/node/webpack-angular/node_modules/mem-fs-editor/lib/actions/copy-tpl.js:10:8)
    at AppGenerator.configFiles (/Volumes/extra/PROJECTS/node/webpack-angular/node_modules/generator-webpack-angular/generators/app/index.js:85:17)
    at Object.<anonymous> (/Volumes/extra/PROJECTS/node/webpack-angular/node_modules/yeoman-generator/lib/base.js:439:23)
    at /Volumes/extra/PROJECTS/node/webpack-angular/node_modules/run-async/index.js:25:25
    at /Volumes/extra/PROJECTS/node/webpack-angular/node_modules/run-async/index.js:24:19
    at /Volumes/extra/PROJECTS/node/webpack-angular/node_modules/yeoman-generator/lib/base.js:440:9
    at runCallback (timers.js:574:20)
    at tryOnImmediate (timers.js:554:5)

Arf yeah, that's hell of a fail.
Seems like there is not even half of the package that has been published on NPM ... Checking for what happened.

Fixed, you can upgrade to 0.0.4 :)


[Snyk] Fix for 4 vulnerabilities

Snyk has created this PR to fix 4 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

sdk/apimanagement/api-management-custom-widgets-tools/package.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Regular Expression Denial of Service (ReDoS) SNYK-JS-MOCHA-2863123
  192

Missing Release of Resource after Effective Lifetime SNYK-JS-INFLIGHT-6095116
  131

Regular Expression Denial of Service (ReDoS) npm:debug:20170905
  58

Regular Expression Denial of Service (ReDoS) SNYK-JS-MINIMATCH-3050818
  45

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)

:tada: Snyk checks have passed. No issues have been found so far.
:white_check_mark: security/snyk check is complete. No issues have been found. (View Details)


Design a FAQ page

Hey, I can design a FAQ page. So please assign it to me.

Wiat till 10th July

@QAZIMAAZARSHAD Can I work on this issue?

@QAZIMAAZARSHAD Can I work on this issue?

Look for some other issues. Will assign you if this remains unresolved for a few days.

Hey @QAZIMAAZARSHAD , thanks for assigning this issue to me.
Can you please suggest some questions for the faq page.

I suggest referring to the FAQ pages of some e-commerce websites.
You can include questions like
What is the return policy?
How long it takes for the shipment to arrive?
Is service available in my country?
etc.

Hey @QAZIMAAZARSHAD , please have a look !

Looks nice.
check responsiveness as well.
Make PR after 10th.

@QAZIMAAZARSHAD Can I work on this issue.

@QAZIMAAZARSHAD Can I work on this issue.

This issue has already been resolved.


java.util.Properties get and getProperty are inconsistent

Summary
When initializing a new instance of java.util.Properties with an already existing instance as defaults, all keys are returned from propertyNames(). When iterating over the returned enumeration and  trying to retrieve the associated value with get(k) null is returned if the values is mapped in the defaults and not in the current instance. Using getProperty(k) instead will return the correct value.
Problem was discovered while updating the Oracle JDBC driver which  internally changed and now iterates over the Enumeration of PropertyNames and uses get instead of cloning the given properties as a whole as done before.
Steps to reproduce
import java.util.Enumeration;
import java.util.Properties;

public class PropertiesInconsistentRetrievalTest {

    public static void main(String[] args) {
        Properties orig = new Properties();
        orig.put("x", "x");

        Properties next = new Properties(orig);
        next.put("y", "y");

        Enumeration<?> enumeration = next.propertyNames();
        while (enumeration.hasMoreElements()) {
            Object k = enumeration.nextElement();
            System.err.println("k: '" + k + "' v: '" + next.get(k) + "' p: " + next.getProperty((String) k));
        }
    }
}

Expected results
Given the above code sample get(k) and getProperty(k) should return the same result if the key k is returned in propertyNames().
Actual results
Given the above code sample get(k) returns null and getProperty(k) return x
Triaging info
Java version:
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)
What is your operating system and platform?
Fedora 35
Linux 5.16.18-200.fc35.x86_64
x86_64 GNU/Linux
How did you install Java?
zipped
Did it work before?
unknown
Did you test with other Java versions?
No

I'm fairly certain this expected behavior with java.util.Properties, albeit probably not amazing API design. get comes from the Hashtable class that java.util.Properties extends. It doesn't recursively look up properties, whereas getProperty is defined by the java.util.Properties class and per its documentation, does recursively look them up.
In other words, the thing looking up properties should be using getProperty and not get.

@suresk i agree that the API "design" is rather poor here - so if this is most likely not being addressed within java itself i think i will open an Oracle SQL Driver bug cause they are using get instead of getProperty which leads to missing driver settings.

@karianna  thx for closing the issue here. I filed a bug for the Oracle JDBC Driver that their handling of the given Properties Object is faulty.
BR Alex


ZMQ: Update to 4.3.1

Description
XVG has a vulnerable version of the dependency zeromq, and puts the users which have this feature enabled at risk for a remote-code-execution bug related to CVE-2019-6250 .
This bug can also be triggered via a malicious website talking to localhost via a browser that is on the same computer as a full node with zeromq enabled, using a "DNS rebinding attack". Many
automated tools to perform these attacks now exist, some written by Google Project Zero researchers.
Many block explorers and mining pools use zeromq and are particularly at risk. Exchanges may also have this feature enabled. This vulnerability can lead to exfiltration of private keys, loss of funds and potentially backdooring of servers.
Example Scenarios
Remote Node attack

Various unix user accounts exist on the same server as an instance of an XVG full node with zeromq enabled
Unprivileged user on the same machine as user of Insight explorer is compromised
User uses zeromq CVE-2019-6250 via localhost to steal wallet.dat, leave backdoor/etc

Local Node attack

Developer runs a development/testing version of a zeromq-enabled XVG full node on localhost
Developer browses to a malicious website
Website uses DNS rebinding attack to communicate directly with zeromq
Website uses zeromq CVE-2019-6250 to steal all funds and leave a backdoor/etc

Any application which uses a XVG node with zeromq enabled is vulnerable, Insight explorers are just a common and well-known example.
All versions of zeromq from 4.2.0 to 4.3.0 are vulnerable, so this Pull Request upgrades XVG to 4.3.1, bringing XVG in sync with BTC upstream.
Block explorers and mining pools should be updated with this new dependency, as well as any other applications that enable zeromq.  Changing configurations to add authentication to zeromq and specifically not trust all connections from localhost is also highly encouraged.
A bounty would be greatly appreciated at this address:
D7FQXWqcnpxRuHVWH4tCJDMTJ9on2r6zGm

and will help fund my future security research in XVG.
My GPG keys can be obtained from Keybase if desired.
Thanks,
Duke Leto
Motivation and Context
Maintain the security of full nodes with zeromq enabled.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

I dont know for some reason I cant open your keybase link.


Docs EN : Webpack to webpack

webpack is used without majuscule (and even in starting of phrase) : http://webpack.github.io/docs/

— see https://webpack.js.org/configuration/ for phrase majuscule example
— see https://webpack.js.org/development/release-process/ for link/title example)

You are definitely correct that it's the convention used within Webpack's docs, but it does feel strange to me. 😕  More generally in open source, kebab-case (or snake_case in some communities) seems to be the convention when referring to a package (e.g. in the context of install instructions), while Title Case is the convention when referring to projects and ecosystems. At least, this is what I believe I've observed.
Since Webpack's internal convention breaks what I think might be a more general convention, I'm tempted to stick with the more general convention. I worry that lower-cased "webpack" next to "Browserify" and "Rollup" (for example) might look like a mistake and be off-putting to readers -especially at the beginning of a sentence.
Does that make sense? What do others think?

Hi @chrisvfritz!
I totally understand what you explained because I have same conventions. Me too, if I follow my ego (the little voice that said, my believe is thruth and not others) I will say:
« Starting a sentence without a capital is not something authorised! » or « All nouns must begin by a capital! »
But I try to see the scene from an external point of view and understand more globaly if it's just my ego that speak. In the « 2.x » world, the case of name is important.
If someone write « Jquery » and not « jQuery » I think it's not professional, it's a person « not structured » / « not organized » / « not respectful » that write that. So it's possible others professionals think that when the Vue.js documentation is red.
Same if I see « Iphone » and not « iPhone » (https://www.apple.com/fr/iphone), « NPM » and not « npm » (https://www.npmjs.com/), « Javascript » and not « JavaScript » (https://en.wikipedia.org/wiki/JavaScript), « MicroSoft » and not « Microsoft » (https://www.microsoft.com/), « NodeJS » and not « Node.js », « Angular.js » and not « AngularJS » (https://angularjs.org/), « VueJS » and not « Vue.js » (or Vue) etc.
So why because « webpack » not following some « Webpack », « wEbpack » or « WebPack » conventions (I have usually see) I will add a first capital?
If someone write my name « bruno » and not « Bruno », I have the same feeling of « not professional / not respectful » behavior so, if all occurences of webpack, included the name on project itself, are in lowercase, I think a respectful, profesionnal and structured behavior is to write « webpack ».
In my personal case I have a npm/github Node.js MVC framework called « NodeAtlas » with the node-atlas package name or CLI command (that's following the convention you have mention!) and it's also my conventions so I understand your point.
Ultimatly, it's your decision so if you choose to kept Webpack, the world will not collapse! So it's you that decide and that know better than me the english culture.
For french culture, « respectful » is important to allows credit of something so we will choose « webpack » in french translation :)
Thank you very, very much for taking time to respond to my PR
Très cordialement :)

@Haeresis Outside of our own documentation, I don't think I mind whether people write Vue.js, VueJS, vuejs, Vue, or vue. 🤷♂
I can understand your points though and it sounds like for you and some others, seeing "Webpack" with a capital "W" would be distracting. That's definitely something I'm concerned about, as I actually have the same (but opposite) concern: I don't want to distract readers with an exception to a rule followed in the rest of the core documentation, more generally in the software community, and by English grammar at the beginning of sentences.
As you point out, we each have our cultural biases and I agree with your decision for the French translation. 👍  Since the English docs have a more international readership and we have a very international core team and community, I'll open this up to a vote, so we can measure which would be the least distracting to most people. Once we have 10 votes, I'm happy to go whichever direction is decided. 🙂
Voting instructions

👍  Change all instances of "Webpack" to "webpack", regardless of context
👎  Keep "Webpack" capitalized when used in a project context

Wow, 5-5! I guess in the case of a tie, I'll selfishly choose the one I prefer. 😅  I'm potentially open to revisiting this in the future though.

For example, you use already « axios » without majuscule same as documentation : https://github.com/mzabriskie/axios#axios-api


[WIP] Stencil proxy

Stencil Buffer usage to draw proxy tiles:
Approach:

Draw Non-Proxy Tiles

Enable stencil writing and draw all non-proxy tiles marking stencil fragments to 1

Draw Proxy Tiles

Pass 1:

Disable color buffer writing
enable stencil writes and depth tests
set stencil to invert when depth and stencil test pass.
enable GL_POLYGON_OFFSET_FILL
set glPolygonOffset (this is required to avoid z fighting between same depth proxy and non-proxy fragments)

Pass 2: Enable color buffer writing, disable stencil writes and draw proxy tiles with stencil tests enabled

Issues to work on:

[ ] Text and Point/Icon style drawing for proxy tiles. (Because these have their own z depth).
[ ] Update RenderStates with new gl functions.
[ ] Possible better values for glPolygonOffset for 16bit depth buffer or another approach?

Now that you've started using polygon offset, I wonder.. Can we just

Render non-proxy tiles
Set glPolygonOffset to add a small depth
Render proxy tiles

?

Nopes that will give the same effect (https://github.com/tangrams/tangram-es/issues/411), where the buildings from both proxy and non-proxy tiles will be visible.

Ah right, I guess the trick is that we can't just offset polygons by a small delta because depth is already being modified by 'order'.
Does the approach here resolve the case in #411 correctly? It seems like we would end up with the same problem because fragments from the proxy building geometry would pass a depth test against the non-building geometry.

I have not tested the school case in #411. But based on the logic used in the drawing, it should not draw buildings from both the tiles (one of the building from the 2 tiles (proxy and non-proxy) should/will win).

With respect to #411, I do not seem to notice the issue, with this PR.

Its more discussion than review. If discussion is all positive we can merge.

I'm not seeing the right behavior here. A good test case is slowing down the tile worker, did you get it to work as you expect?

As I understand it, this approach effectively only changes the use of custom depth modification via projection matrix to the use of polygon offset. (And uses a larger value for offsetting)
If the gist of the rendering passes is:

pass 1: write original depth, set stencil mask to 1 for each drawn fragment (of non-proxy tiles)

proxy tiles:

pass 2: set stencil mask to 0 where stencil mask is 1 for fragments that pass the depth test (offsetting incoming fragments with polygon_offset)
pass 3: draw to color buffer where stencil mask is 0

I wonder why is it necessary to split pass 2 and 3. How is this different from directly drawing where the depth test passes?
The problem still remains that polygon offset must be chosen large enough to hide all flat-ground features of proxy tiles below the ground (earth-layer) of non-proxy tiles. So I would think #411 is not resolved yet.
For the general case we also need to handle overlapping proxy tiles from multiple zoom-levels. But that for later..

@hjanetzek  (correct me if I'm wrong @tallytalwar), but he intent of pass 2 and pass 3 is what we were dealing with with @tallytalwar on our tests, the blue part in the screenshot:

Where the building should be discarded even if coming from a non-proxy tile, for fragment where stencil test failed (so flipping the bits will put 0s in stencil buffer, and in pass 3 continue after stencil test and let the depth test fail, so proxy would be drawn in blue area).

@karimnaaji you are correct in explaining the usage of 2 passes to render the proxy tiles.

This looks like the proxy was drawn with just checking the stencil mask (for where no stencil bit is set).
As I see it, the second pass does solely unset the stencil bit for fragments where the proxy tile passes the depth test, in order to be able to draw the proxy tile on top of the previous tiles (in the third pass).
So if the only factor that determines whether the proxy tile will be drawn on top of non-proxies is passing of the depth test in the second pass - then I don't see the difference of directly using polygon-offset for proxy tiles (with the usual depth testing) in a single pass.

You get some z-fighting when you do not have polygon offset, specially when fragments from both proxy and non-proxy are at same depth. glPolygonOffset is used to get rid of such cases.

yes, but one could use polygon-offset to draw proxy tiles in the first (and single) pass likewise

Also stencil test is done before depth testing in the opengl pipeline. If we do not do the passes separately, it will simply discard the fragments failing stencil test (potentially having lower depth than non-proxy fragments) without even doing the depth test. (Hence the image from @karimnaaji comment).

How is the order of test relevant when the stencil op in the second pass requires both tests to pass to have an effect?

@hjanetzek, do you mean this? https://github.com/tangrams/tangram-es/pull/458/files#diff-7681bca1a2db71358101887f729b7b1dR213
glStencilOp only tells on what condition stencil buffer is written.
wrt stencil testing (glStencilFunc), https://github.com/tangrams/tangram-es/pull/458/files#diff-7681bca1a2db71358101887f729b7b1dR228, is only set to pass when the value of the stencil buffer is equal to 1.

I too am not clear on how the stencil operations are making any difference here. The only fragments that are culled by the stencil test are those that did not pass a depth test against present geometry, and those fragments would be culled by a depth test anyway. Is this not the case?

@tallytalwar , the current issue I'm seeing is on the video, it's a 100% reproducible bug; it happens sometimes and everything is cleared in between the zooms.
stencil-rec.mov.zip

Had a chat with @blair1618 about this.
The confusing behavior we are discussing here is (why use stencil buffer at all if, depth test is checked with proxy and non-proxy tiles), an alternative approach being to:
1. Draw non-proxy tiles
2. polygon offset
3. Draw proxy tiles

Which conceptually seems to be the same thing as being done with the stencil buffer. However on trying the same, it results in slight different behavior (more z-fighting). I will try to reason on what the differences are which results in different behavior.

@karimnaaji I have not been able to reproduce the issue you have in the video, can anyone else repro it?

@tallytalwar Yep that's the essence of my comment earlier this morning.

Yup, as mentioned, stencil approach in this PR and doing just polygonOffset for proxy tiles, have the same result (practically and conceptually).
Closing this PR, until we find a better approach to do the same.

Does anyone has any other suggestions for this?


Add 'links' to json hash for relationships with URLs.

I still need to write some unit tests for the URL regex so it's a work in progress.

As I mentioned in #58, supporting this properly means users will need a custom Hyperlinked serializer field. The problem is that the hasMany relationship is created with multiple URLs instead of one URL that will limit only return the related items. For example:
Post
{
    "id": 11,
    "title": "post title 11",
    "body": "post body 11",
    "comments": [
        "http://localhost:8000/api/comments/9/",
        "http://localhost:8000/api/comments/10/",
        "http://localhost:8000/api/comments/11/"
    ]
}

It's possible to support the belongsTo relationship in the default DRF configuration because it uses one URL. For example:
Comment
{
    "id": 9,
    "body": "comment body 1 for post 11",
    "post": "http://localhost:8000/api/posts/11/"
}

The next task would be to create the custom Hyperlinked serializer field that generates one URL using the DjangoFilterBackend or using embedded URLs (e.g. /api/posts/11/comments/). Is this something that you think is useful? If not, I'll just drop this and use coalesceFindRequests.

@benkonrath I am working on a comment for this, just want to verify a couple things.

@dustinfarris Great, thanks. In the meantime, I've whipped up a hyperlinked serializer field that generates the url with related query param.
class DjangoFilterHyperlinkedRelatedField(HyperlinkedRelatedField):

    def __init__(self, view_name=None, **kwargs):
        # TODO: Try to get related_query_param_key automatically from the related view.
        self.related_query_param_key = kwargs.pop('related_query_param_key', None)
        super(DjangoFilterHyperlinkedRelatedField, self).__init__(view_name, **kwargs)

    def get_url(self, related_manager, view_name, request, format):
        """
        Given a related_manager, return the URL with query param that filters the related objects.

        May raise a `NoReverseMatch` if the `view_name` attribute is not
        configured to correctly match the URL conf.
        """
        # Managers without an instance and unsaved instances will not yet have a valid URL.
        if hasattr(related_manager, 'instance') and hasattr(related_manager.instance, 'pk') and related_manager.instance.pk is None:
            return None

        related_query_param_value = getattr(related_manager.instance, self.lookup_field)
        url = self.reverse(view_name, request=request, format=format)
        return '{0}?{1}={2}'.format(url, self.related_query_param_key, related_query_param_value)

It would be used on the serializer like this:
class PostSerializer(serializers.ModelSerializer):
    comments = DjangoFilterHyperlinkedRelatedField(read_only=True, view_name='comment-list', related_query_param_key='blog')

With this in place, the post json looks like this:
{
    "id": 11,
    "title": "post title 11",
    "body": "post body 11",
    "comments": "http://localhost:8000/api/comments/?post=11"
}

Having gone through all this, I do feel that the coalesceFindRequests solution we have in place accomplishes the same thing as this django-filter solution but has the advantage that it's easier to setup and easier to document. I'm going to switch to using the coalesceFindRequests solution for my projects. I'm still interested to hear your opinion / thoughts though.

I'd still like to get this functionality into EDA. I don't want to provide support directly for the django-filter based solution that I described in my previous comment because it's too complex. This means that HyperLinkedRelatedField would not work out of the box but the HyperLinkedIdentityField would work. hasMany fields would still load related records from a URL - it's just not how DRF represents related records by default.
This isn't too much work to finish up and support at least the HyperLinkedIdentityField would be nice. @dustinfarris @holandes22 What do you guys think?

Yes, would love to get this in as well.
On the HyperLinkedIdentityField, would something like this work for hasMany relationships?:
# models.py

class Person(models.Model):

    name = models.CharField(max_length=20)

class Animal(models.Model):

    name = models.CharField(max_length=20)
    owner = models.ForeignKey(Person, related_name='pets')

# serializers.py

class PersonSerializer(serializers.ModelSerializer):

    pets = serializers.HyperLinkedIdentityField(view_name='person-pets')

    class Meta:
        model = Person

class AnimalSerializer(serializers.ModelSerializer):

    class Meta:
        model = Animal

# viewsets.py

class PersonViewSet(viewsets.ModelViewSet):

    queryset = Person.objects.all()
    serializer_class = PersonSerializer

    @detail_route()
    def pets(self, request, pk=None):
        person = self.get_object()
        serializer = AnimalSerializer(person.pets.all(), many=True)
        return Response(serializer.data)

Yes, works great! I didn't know about the @detail_route feature. I will finish the PR and write some docs based on your example. Thanks.

What's the status on this?

I should have an updated version that's ready to merge in the next couple of days.

Great!  Thanks

Ok, it's ready to go. Feedback is appreciated.

Looks great!  Will review further tomorrow.

I've fixed the null relationship bug. Let me know if you want me to squash these commits into one.

Fantastic work, @benkonrath!
This is literally a drop-in replacement.  I was able to add the detail route, and then change:
pets = serializers.PrimaryKeyRelatedField(queryset=Animal.objects.all(), many=True, required=False)

to
pets = serializers.HyperlinkedIdentityField(view_name='person-pets')

and everything just worked!  No changes required on the Ember side.  The documentation looks great too.
Yes, please rebase/squash and I'll merge right away.

Also, we should note somewhere that this is preferred over coalesceFindRequests since there is a limit on the number of records per request due to URL length restrictions.

For read-only fields, that is.

I've just made these changes:

Added the note as you suggested.
Added an example of paginating the nested related results.
Squashed / reset the commits (except for the mkdocs fix).

@dustinfarris Thanks to you as well - this was definitely a team effort. :)

:+1:


Bluez-alsa fails at make

Hi,
I can't get my bluez-alsa installation to "make". I tried configure with just --enable-debug and also without any options and it succeeds but then "make" fails with this.

gcc -DHAVE_CONFIG_H -I. -I../../src -I..    -pthread -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -g -O2 -MT ba-transport.o -MD -MP -MF $depbase.Tpo -c -o ba-transport.o ../../src/ba-transport.c &&
mv -f $depbase.Tpo $depbase.Po
../../src/ba-transport.c: In function ‘transport_acquire_bt_sco’:
../../src/ba-transport.c:919:39: error: ‘BT_VOICE_CVSD_16BIT’ undeclared (first use in this function)
919 |     t->type.codec == HFP_CODEC_CVSD ? BT_VOICE_CVSD_16BIT : BT_VOICE_TRANSPARENT) == -1) {
|                                       ^~~~~~~~~~~~~~~~~~~
../../src/ba-transport.c:919:39: note: each undeclared identifier is reported only once for each function it appears in
../../src/ba-transport.c:919:61: error: ‘BT_VOICE_TRANSPARENT’ undeclared (first use in this function); did you mean ‘IP_TRANSPARENT’?
919 |     t->type.codec == HFP_CODEC_CVSD ? BT_VOICE_CVSD_16BIT : BT_VOICE_TRANSPARENT) == -1) {
|                                                             ^~~~~~~~~~~~~~~~~~~~
|                                                             IP_TRANSPARENT
make[3]: *** [Makefile:629: ba-transport.o] Error 1
make[3]: Leaving directory '/home/user/bluez-alsa/build/src'
make[2]: *** [Makefile:686: all-recursive] Error 1
make[2]: Leaving directory '/home/user/bluez-alsa/build/src'
make[1]: *** [Makefile:444: all-recursive] Error 1
make[1]: Leaving directory '/home/user/bluez-alsa/build'
make: *** [Makefile:376: all] Error 2

I tried looking around for any similar errors but couldn't find any information. I'm running Ubuntu 20.04.
I seem to have all the dependencies installed so not sure what is this about... Any ideas what might be the issue?

Looks like you do not have libbluetooth-dev installed. Please check the dependencies on Ubuntu from the wiki guide here:
https://github.com/Arkq/bluez-alsa/wiki/Installation-from-source

Looks like you do not have libbluetooth-dev installed. Please check the dependencies on Ubuntu from the wiki guide here:
https://github.com/Arkq/bluez-alsa/wiki/Installation-from-source

No, that's not the case...

sudo apt-get install libbluetooth-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libbluetooth-dev is already the newest version (5.53-0ubuntu3).

I also tried to do everything with sudo, but the error is exactly the same.

No, that's not the case...

sudo apt-get install libbluetooth-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libbluetooth-dev is already the newest version (5.53-0ubuntu3).

I also tried to do everything with sudo, but the error is exactly the same.

what is the output of
grep BT_VOICE_CVSD_16BIT /usr/include/bluetooth/bluetooth.h

what is the output of
grep BT_VOICE_CVSD_16BIT /usr/include/bluetooth/bluetooth.h

grep BT_VOICE_CVSD_16BIT /usr/include/bluetooth/bluetooth.h
#define BT_VOICE_CVSD_16BIT                     0x0060

grep BT_VOICE_CVSD_16BIT /usr/include/bluetooth/bluetooth.h
#define BT_VOICE_CVSD_16BIT                     0x0060

Hmm, then that's a mystery to me. I don't have Ubuntu 20.04 to test with, but there have been no other similar error reports here. Is it possible that there is some other file called bluetooth/bluetooth.h in your include search path? Other than that I can't imagine any reason why gcc would give that particular error message.

Hmm, then that's a mystery to me. I don't have Ubuntu 20.04 to test with, but there have been no other similar error reports here. Is it possible that there is some other file called bluetooth/bluetooth.h in your include search path? Other than that I can't imagine any reason why gcc would give that particular error message.

I've just checked with ubuntu 20.04 (desktop image from here: https://releases.ubuntu.com/20.04/) and current master bluez-alsa. I've built basic bluez-alsa configuration (./configure without any options) and it has succeeded.
Maybe you've got some environment variable which modifies CFLAGS or something like this. Or maybe, like @borine has said, you've got some other bluetooth.h file somewhere on include path (search paths may be also changed via environment variable).
Pleas post the line with the configure from the head config.log output.

I've just checked with ubuntu 20.04 (desktop image from here: https://releases.ubuntu.com/20.04/) and current master bluez-alsa. I've built basic bluez-alsa configuration (./configure without any options) and it has succeeded.
Maybe you've got some environment variable which modifies CFLAGS or something like this. Or maybe, like @borine has said, you've got some other bluetooth.h file somewhere on include path (search paths may be also changed via environment variable).
Pleas post the line with the configure from the head config.log output.

You turned out to be correct - I had another bluetooth.h file in /usr/local/include/bluetooth/bluetooth.h
My installation is pretty messed up from futile attempts to make my BT speakerphone work... :) I've tried almost everything at this point, let's hope bluez-alsa helps.
Thanks a lot!

You turned out to be correct - I had another bluetooth.h file in /usr/local/include/bluetooth/bluetooth.h
My installation is pretty messed up from futile attempts to make my BT speakerphone work... :) I've tried almost everything at this point, let's hope bluez-alsa helps.
Thanks a lot!


add autoshutdown tag to ccd vm

Jira link (if applicable)
add autoshutdown tag to ccd vm
Change description
Checklist

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)
[ ] Does this PR introduce a breaking change

Jenkins run - https://build.hmcts.net/blue/organizations/jenkins/HMCTS_a_to_c%2Fccd-elastic-search/detail/PR-103/31/pipeline/202
the aat should be true and prod is false

No longer required as will left tagging resource manually for now


init: ported Trim_Prefix_{String,Unicode} primitive function

Since a number of level 1 Hestia libraries use string functions, we have to port its primitive ones into HestiaKERNEL library package. Hence, let's do this.
This patch ports Get_Prefix_{String,Unicode} primitive function into HestiaKERNEL library in init/ directory.

Merge first since production is unaffected.


suppression of invisible f-components

The f-component ftp_blt_ext.3 (with no iteration) is flagged with status="invisible" in the input XML but it is showing up in the mandatory SFRs section. It has appropriately been suppressed from all other places (e.g. consistency rationale table) and is appropriately showing up in the ECD, but the actual component should not be present in the main body of the Module.

I don't the invisible component in the mandatory SFR section.

This is from the latest version for me:
@.***D72C62.EAA04C70]
Regards,
Justin
From: Bob Clemons @.>
Sent: Thursday, April 8, 2021 10:11 AM
To: commoncriteria/bluetooth @.>
Cc: Fisher, Justin M. [US-US] @.>; Author @.>
Subject: EXTERNAL: Re: [commoncriteria/bluetooth] suppression of invisible f-components (#11)
CAUTION: This email originated from outside of Leidos. Be cautious when clicking or opening content.
I don't the invisible component in the mandatory SFR section.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/commoncriteria/bluetooth/issues/11#issuecomment-815856819, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGNQCY6UC72L4TWBID2EKTLTHW2NZANCNFSM42RNQZGQ.

Just checked the latest versions of each and it’s present in bluetooth.html and bluetooth-release-linkable.html, but not in bluetooth-release.html. So that probably explains it. I generally work off the ones with EAs built into the page rather than having the Module and SD open in separate tabs.
Regards,
Justin
From: Fisher, Justin M. [US-US]
Sent: Thursday, April 8, 2021 10:36 AM
To: 'commoncriteria/bluetooth' @.>; commoncriteria/bluetooth @.>
Cc: Author @.***>
Subject: RE: EXTERNAL: Re: [commoncriteria/bluetooth] suppression of invisible f-components (#11)
This is from the latest version for me:
@.***D72C65.3AFC6EE0]
Regards,
Justin
From: Bob Clemons @.>
Sent: Thursday, April 8, 2021 10:11 AM
To: commoncriteria/bluetooth @.>
Cc: Fisher, Justin M. [US-US] @.>; Author @.>
Subject: EXTERNAL: Re: [commoncriteria/bluetooth] suppression of invisible f-components (#11)
CAUTION: This email originated from outside of Leidos. Be cautious when clicking or opening content.
I don't the invisible component in the mandatory SFR section.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/commoncriteria/bluetooth/issues/11#issuecomment-815856819, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGNQCY6UC72L4TWBID2EKTLTHW2NZANCNFSM42RNQZGQ.


ASP.NET Core web app throws unhandled "Correlation failed" exception when navigated to from Microsoft Word

Describe the bug
When navigating to an ASP.NET core Web app from a hyperlink in Microsoft word to an web app configured for AAD an correlation exception is thrown, whereas everything works fine when navigating to directly
To Reproduce
Steps to reproduce the behavior:

Using this version of ASP.NET Core 2.2.101' (but also fails with previous version)
Run this code 'Dotnet new mvc --auth SingleOrg' and fill-in the application coordinates
Run the app directly. This work
Copy the URL of the app to word, which therefore creates a hyperlink

Expected behavior
From Word, we should navigate to the application by ctrl+click on the link, and be able to sign-in.
Actual
An exception is thrown
Exception: Correlation failed. Unknown location
Additional context
This is blocking a first party scenario (DT Design Studio platform).
Here are details
An unhandled exception occurred while processing the request.
Exception: Correlation failed.
Unknown location
Exception: An error was encountered while handling the remote login.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<TOptions>.HandleRequestAsync()
Exception: Correlation failed.

Show raw exception details
System.Exception: Correlation failed.
Exception: An error was encountered while handling the remote login.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<TOptions>.HandleRequestAsync()
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

System.Exception: An error was encountered while handling the remote login. ---> System.Exception: Correlation failed.
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.HandleRequestAsync()
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Likely a duplicate of https://github.com/aspnet/Security/issues/1252.


NCGenerics: fix runtime metadata request strategy (demangling vs response)

NCGenerics: fix runtime metadata request strategy
We generally should use the open-coded, metadata function "accessor"
strategy when targeting older runtimes, but if the type is part of
the stdlib, assume the runtime demangler will produce correct
metadata, as the retrofitting of Optional, etc, was done Carefully.
resolves rdar://131337585

NCGenerics: limit field metadata heuristic
We have had a heuristic that lets you reflect fields of types, where
the field's type is conditionally Copyable, despite the reflection
infrastructure always copying a field. That heuristic was added to allow
ubiquitous types like Optional in the stdlib to continue to be
reflected, even if the Optional at runtime really isn't Copyable.
As a consequence, we were also allowing reflection of fields containing
user-defined conditionally copyable types, when that's unsafe for no
real benefit, yielding runtime crashes!
I think in that case it's better to fall-back on the non-crashy case of
reflection seeing it as the EmptyTupleType, which isn't inhabited, so it
won't try to copy the field and instead basically skip-over it until a
future runtime supports the reflection safely.
So, this patch limits the dangerous reflection to only stdlib-defined
types, until Mirror and friends are updated.

@swift-ci test

@swift-ci test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test macOS

@swift-ci smoke test macOS

@swift-ci smoke test macOS

@swift-ci test

The only test that isn't passing still:
'Swift(iphonesimulator-x86_64) :: Interpreter/moveonly_reflection.swift'

An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
The operation couldn’t be completed. No such file or directory
No such file or directory

This appears to be some test-setup issue.

@swift-ci smoke test


Add simple tts20240516

This (quite minimal) repo is part of refreshing on JavaScript and digging into Node.js.
This PR uses a configuration file to translate a specified string into an audio recording, then saves the recording.
Specifics (e.g., what file name and extension to use) are now parameterized in config.json instead of being hard coded.
(Also, cleanup included adding testing and documentation folders, but populating them is out of scope for now.)

As I'm developing this on my own, I'll approve my own PRs. Ideally, in a a workplace (or open source) setting, any code would be reviewed by someone else before being approved.


Add ualberta.ca

Add University of Alberta domain (ualberta.ca)

@liyuxuan-academic I am sorry, the domain ualberta.ca is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Pack at https://education.github.com/discount_requests/application. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Database url not read from .env file.

Following the steps to the letter in this, it appears that the postgres url supplied in the .env file is not passed to the build process.
This results in errors both in the docker-compose logs output, and also error messages visible via Prisma studio.
calendso_1  | Prisma schema loaded from prisma/schema.prisma
calendso_1  | Error: Get config: Schema Parsing P1012
calendso_1  |
calendso_1  | error: Error validating datasource `db`: the URL must start with the protocol `postgresql://` or `postgres://`.
calendso_1  |   -->  schema.prisma:6
calendso_1  |    |
calendso_1  |  5 |   provider = "postgresql"
calendso_1  |  6 |   url      = env("DATABASE_URL")
calendso_1  |    |
calendso_1  |
calendso_1  | Validation Error Count: 1
calendso_1  |

For what it's worth, manually updating calendso/prisma/schema.prisma with the desired URL allows Calendso to successfully deploy, but is not an ideal solution.

The single/double quotes must be removed from the .env file in order for this to work properly. Docker doesn't respect them in the env files. This also affects the GOOGLE_API_CREDENTIALS, the json object must not be wrapped in quotes or else the variable is interpreted as '{}'
With single quotes:
warn  - Disabled 'Google Calendar' integration. Reason: Invalid value for GOOGLE_API_CREDENTIALS environment variable. When set, this value needs to contain valid JSON like {"web":{"client_id":"<clid>","client_secret":"<secret>","redirect_uris":["<yourhost>/api/integrations/googlecalendar/callback>"]}. You can download this JSON from your OAuth Client @ https://console.cloud.google.com/apis/credentials.

Tested on Docker Desktop 4.1 in WSL
https://dev.to/tvanantwerp/don-t-quote-environment-variables-in-docker-268h

I removed the single and double quotes didn't help.
Any other way to resolved this?

same issue, removed the quotes but still getting the same error

@kelvinalfaro @agapejon does anything change if you use yarn dev instead of yarn start?
also, I did some significant rework of the dockerfile, since I had other issues with the use of yarn build that I haven't pushed through yet. yarn build is likely generating static files at docker build time, which wont include the .env variables used by docker-compose. yarn dev should support runtime compile with env vars.
FROM node:14-alpine as deps

RUN apk add --no-cache libc6-compat
RUN mkdir app
COPY calendso/package.json calendso/yarn.lock /app/
COPY calendso/prisma /app/prisma
WORKDIR /app
RUN ls
RUN yarn install

FROM node:14-alpine as builder
COPY calendso /app
COPY --from=deps /app/node_modules /app/node_modules
WORKDIR /app
# RUN yarn install

FROM node:14-alpine as runner
ENV NODE_ENV production

# copy all files
COPY --from=builder /app /app
COPY .env /app/.env
# COPY --from=builder /app/next.config.js ./
# COPY --from=builder /app/public ./public
# COPY --from=builder /app/.next ./.next
# COPY --from=builder /app/node_modules ./node_modules
# COPY --from=builder /app/package.json ./package.json
# COPY --from=builder /app/prisma ./prisma
COPY  scripts /app/scripts
WORKDIR /app
EXPOSE 3000
CMD ["/app/scripts/start.sh"]

Thanks. This worked well. Though I gave up on it for now. Once it deployed, i was unable to set up the database. Maybe will try again soon. Your response was really appreciated however.

That may be a combination with my other issue posted. I'll get a WIP branch up to try early this week

@krumware Trying the new Dockerfile got me further in the process, but I get this error when running
sudo docker-compose up --build
error:

Error: Could not find a production build in the '/app/.next' directory. Try building your app with 'next build' before starting the production server. https://nextjs.org/docs/messages/production-start-no-build-id

Adding yarn build into the start.sh script got the app to run successfully, but not sure if that's really the proper thing to do here

Ah, must have left that in there while trying things. I've been working on this locally today, I'll see if I can clean it up

Can you also by chance try yarn dev instead of yarn build in the start file?

Ah, yea, using the new dockerfile you provided + changing yarn start to yarn dev in scripts/start.sh got it working. Thanks!

The single/double quotes must be removed from the .env file in order for this to work properly. Docker doesn't respect them in the env files.
working example: (I added POSTGRES_HOST for better capability with start.sh)
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}/${POSTGRES_DB}

This also affects the GOOGLE_API_CREDENTIALS, the json object must not be wrapped in quotes or else the variable is interpreted as '{}'
With single quotes:
warn  - Disabled 'Google Calendar' integration. Reason: Invalid value for GOOGLE_API_CREDENTIALS environment variable. When set, this value needs to contain valid JSON like {"web":{"client_id":"<clid>","client_secret":"<secret>","redirect_uris":["<yourhost>/api/integrations/googlecalendar/callback>"]}. You can download this JSON from your OAuth Client @ https://console.cloud.google.com/apis/credentials.

Tested on Docker Desktop 4.1 in WSL https://dev.to/tvanantwerp/don-t-quote-environment-variables-in-docker-268h

Thank you :-)


Removed: Overridden logo height(#490)

Removed forcefully overridden Height of logo in a-logo
Related Issues

Closes #490
Short Description and Why It's Useful

Height of logo in a-logo is forcefully overridden, SFUI default height works perfectly
Screenshots of Visual Changes before/after (If There Are Any)

Before

After

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[X] I read and followed contribution rules

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

Many thanks to @dt2patel for the suggestion!

Closing this PR, as overridden hieght is neccesory for the error page


Revert "Add ESP readout support to Qiskit (#6543)"

Summary
The changes made in #6543 were unecessary and add ibm backend specific
options to common interfaces in terra. This commit reverts #6543 so it
can be isolated to just the ibmq provider as the new options added in
it are not common to all providers and isolated to just ibm backends.
The changes made in #6543 should have been done directly in the ibm
provider and no changes to terra are actually needed here. Terra already
provides all the functionality to enable the provider to add custom options
like this. A provider can advertise the new run time option via the
backend's Options object, expose the backend configuration option as
a custom attribute at construction time, and pass the setting from the
options to assemble so it gets set in the qobj config appropriately
without requiring any changes from terra. However, this isn't all
necessarily clear as the interface for BackendV1 was primarily
inherited from BaseBackend which didn't have this level of flexibility
and doesn't make the distinction between required, optional, and custom
options and backend attributes super clear. This is something we can
hopefully address in the next version of the backend interface
BackendV2 (ideas for this are being collected in #5885).
Details and comments
This reverts commit 6d605a0d6ab493002729b8db1e5d36d3738078af.

I agree that the overall right approach is what you propose @mtreinish. If you believe the current approach is sufficiently incorrect that we must revert the changes we will. I will note that this work is critical to the QV64/128 release milestone and will have to make its way into the provider quickly to make this release date. It could be argued that the existing solution is sufficiently workable to not warrant a reversion given the circumstances. If we do make this reversion @zachschoenfeld33 will have to find a way to integrate into the unit test framework of the provider.

If we need to revert, I am working w/ @jyu00 to put the check in the provider...


Fix(antd) Upgrade antd verison 3.19.4 to 3.26.16

Signed-off-by: Siye Wang<EMAIL_ADDRESS>image:  wangsiye/longhorn-ui:cac7544
https://github.com/longhorn/longhorn/issues/1329

What's the impact? Security issue fix?


Allow to select from the start of the line on some nodes

Needs https://github.com/nvim-treesitter/nvim-treesitter/pull/1953
This is an alternative solution for the problem described at
https://github.com/nvim-treesitter/nvim-treesitter-textobjects/pull/70.

auto_expand doesn't make sense as a global option. It would also select parameters line-wise.

that will only be for parameters that don't have a trailing comma, but I get it, better to have per-mapping/object options (would also be useful for the lookahead/lookbehind options). Currently, we don't have a way to do that, I'll open an issue with suggestions for a way to define those options.

I think this PR is really old at this stage, Please reopen rebased if still relevant


fix: semantic deploy

:tada: This PR is included in version 1.0.6 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


There may be a way to implement the API

def add_block(self, position, block, world):
    world[position] = block

then reloading the world or calling window.update(1)
something like that??

I don't understand what you are talking about.
What do you want to change and why?

In the readme, there is a part saying that fogleman wants an API.


Follow redirects during HTTP POST calls to Salesforce

When making a call to a lightning domain, for example customer.lightning.force.com, the salesforce instance will return a 302 Found to the equivalent customer.my.salesforce.com domain.
The default behavior of the request library is to only follow redirects on GET requests, meaning that the library doesn't follow the redirect on the POST /services/oauth2/token call, and then doesn't detect the 300-series response as an error and attempts to parse an empty response as JSON, resulting in:
SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Request._callback (/release/rest-server/node_modules/salesforce-oauth2/lib/salesforce-oauth2.js:41:28)
    at Request.self.callback (/release/rest-server/node_modules/salesforce-oauth2/node_modules/request/request.js:122:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/release/rest-server/node_modules/salesforce-oauth2/node_modules/request/request.js:1019:14)
    at emitOne (events.js:121:20)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (/release/rest-server/node_modules/salesforce-oauth2/node_modules/request/request.js:970:12)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at IncomingMessage.wrapped (/release/rest-server/node_modules/newrelic/lib/transaction/tracer/index.js:181:22)
    at IncomingMessage.wrappedResponseEmit (/release/rest-server/node_modules/newrelic/lib/instrumentation/core/http-outbound.js:98:26)
    at endReadableNT (_stream_readable.js:1056:12)
    at wrapped (/release/rest-server/node_modules/newrelic/lib/transaction/tracer/index.js:181:22)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback [as _tickCallback] (internal/process/next_tick.js:218:9)

If the request.post() call is configured with followAllRedirects and followOriginalHttpMethod, the 302 response should be followed and the follow-up call should be successful.
From https://github.com/request/request/:

followRedirect - follow HTTP 3xx responses as redirects (default: true). This property can also be implemented as function which gets response object as a single argument and should return true if redirects should continue or false otherwise.
followAllRedirects - follow non-GET HTTP 3xx responses as redirects (default: false)
followOriginalHttpMethod - by default we redirect to HTTP method GET. you can enable this property to redirect to the original HTTP method (default: false)

An alternative solution here would be to change the error handling code:
if (response.statusCode >= 400) {

to
if (response.statusCode >= 300) {

and fail-fast instead.

I needed to bump the version of request as the previous version didn't have the followOriginalHttpMethod parameter in it's documentation, so I assume it's not supported.

Thanks, to follow redirect seems reasonable in this case.
I think node version in package.json will also need bumping to >= 4 as this is what's required by request 2.85 and that's why Travis build fails.

Should I bump the version in this PR as well?

(Sorry, I meant the version of this package not the NodeJS version. I've bumped the node version in package.json).

I bumped the version to 0.2.0 and published to npm. Cheers!

Thanks!


Protocol 3.5 Device Discovery Updates

Device discovery packets redux
Newer v3.5 devices do not send out unsolicited discovery broadcasts.  Instead, they listen for broadcasts from a client app and send their discovery packet directly to that client.
The client broadcast contains the payload {"from":"app","ip":"<IP_ADDRESS>"} and is sent to the subnet broadcast address (i.e. <IP_ADDRESS>) on port 7000.  It is GCM encrypted the same way as broadcasts above.
When a device receives a client broadcast, it responds by sending a device discovery packet directly to the IP address specified in the client broadcast.  This again uses port 7000 and is GCM encrypted the same way as broadcasts above.  The device I used in my testing will send the device discovery packet out as a broadcast if the client app specifies "<IP_ADDRESS>" as the IP address, however I suspect this is an accident and is not something they intended to be used.
Originally posted by @uzlonewolf in https://github.com/jasonacox/tinytuya/discussions/260#discussioncomment-9979656

I wonder if we could use a function to pull the local IPs and broadcast addresses. This would require psutil or netifaces:
import importlib

def get_ip_to_broadcast():
    if importlib.util.find_spec('psutil'):
        import psutil
        import socket

        interfaces = psutil.net_if_addrs()
        ip_to_broadcast = {}

        for addresses in interfaces.values():
            for addr in addresses:
                if addr.family == socket.AF_INET and addr.broadcast:  # AF_INET is for IPv4
                    ip_to_broadcast[addr.address] = addr.broadcast

        return ip_to_broadcast

    elif importlib.util.find_spec('netifaces'):
        import netifaces

        interfaces = netifaces.interfaces()
        ip_to_broadcast = {}

        for interface in interfaces:
            addresses = netifaces.ifaddresses(interface)
            ipv4 = addresses.get(netifaces.AF_INET)

            if ipv4:
                for addr in ipv4:
                    if 'broadcast' in addr:
                        ip_to_broadcast[addr['addr']] = addr['broadcast']

        return ip_to_broadcast

    else:
        raise ImportError("Neither psutil nor netifaces is installed. Please install one of these packages to proceed.")

# Example usage:
print(get_ip_to_broadcast())

That looks like it would work.  The scanner already uses netifaces if it is installed to get the force-scan list.
Instead of raising an error if neither are installed, we could also use the getmyIP() method of just making a random connection and seeing what IP was used and just bind to it and broadcast to <IP_ADDRESS>.  It's not going to work on multi-interface machines but would at least work on single-interface ones (which I suspect is what most users have anyway).

Hmm, I just tried it on one of my single board computers but it blew up with
$ python3
Python 3.11.2 (main, May  2 2024, 11:59:08) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib
>>> importlib.util.find_spec('netifaces')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'importlib' has no attribute 'util'

It seems importlib.util is separate from importlib https://discuss.python.org/t/python3-11-importlib-no-longer-exposes-util/25641 and I'm not sure which python version added importlib.util.

Ok, this is what I'm planning on adding to the scanner.  I flipped addr and broadcast in the ip_to_broadcast dict so interfaces with multiple IPs in the same subnet are only added once.
...
try:
    import psutil
    PSULIBS = True
except ImportError:
    PSULIBS = False
...
def get_ip_to_broadcast():
    ip_to_broadcast = {}

    if NETIFLIBS:
        interfaces = netifaces.interfaces()
        ip_to_broadcast = {}

        for interface in interfaces:
            addresses = netifaces.ifaddresses(interface)
            ipv4 = addresses.get(netifaces.AF_INET)

            if ipv4:
                for addr in ipv4:
                    if 'broadcast' in addr:
                        ip_to_broadcast[addr['broadcast']] = addr['addr']

        if ip_to_broadcast:
            return ip_to_broadcast

    if PSULIBS:
        interfaces = psutil.net_if_addrs()

        for addresses in interfaces.values():
            for addr in addresses:
                if addr.family == socket.AF_INET and addr.broadcast:  # AF_INET is for IPv4
                    ip_to_broadcast[addr.broadcast] = addr.address

        if ip_to_broadcast:
            return ip_to_broadcast

    ip_to_broadcast['<IP_ADDRESS>'] = getmyIP()
    return ip_to_broadcast


pythonPackages.fints: add implicit setuptools dependency

Motivation for this change
I've noticed the fints package uses modules from the setuptools package, which is not explicitly referenced in the setup.py.
Things done
Added setuptools to the propagatedBuildInputs.

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Could you show the stack trace? I don't see any uses of pkg_resources or setuptools.

Could you show the stack trace? I don't see any uses of pkg_resources or setuptools.

It's actually in bleach, must have overlooked that:
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-5ad800947b4b> in <module>
      1 import keyring
----> 2 from fints.client import FinTS3PinTanClient
      3 from datetime import timedelta, datetime
      4
      5 import logging

/nix/store/9k43i6a1svymld044hc0jaqrdq6jlb6h-python3-3.7.4-env/lib/python3.7/site-packages/fints/client.py in <module>
      8 from enum import Enum
      9
---> 10 import bleach
     11 from sepaxml import SepaTransfer
     12

/nix/store/9k43i6a1svymld044hc0jaqrdq6jlb6h-python3-3.7.4-env/lib/python3.7/site-packages/bleach/__init__.py in <module>
      3 from __future__ import unicode_literals
      4
----> 5 from pkg_resources import parse_version
      6
      7 from bleach.linkifier import (

ModuleNotFoundError: No module named 'pkg_resources'

@FRidh thanks for checking!
I've created a new PR for bleach.

https://github.com/NixOS/nixpkgs/pull/70006