Feat/allow credential ids

Add credentialIDs to iOS api
This pr adds the ability to pass a set of allowed credentialIDs to the iOS authenticate function. This enables the developer to force the user to choose a specific passkey when signing in. This is important in a crypto context where passkeys are used as an alternative to a seed phrase. In this situation you want force the user to use a specific key so they don't sign a transaction with the wrong key. But, of course, there are more non-crypto use-cases.

We have been using this patch in production for the past 7 months so I thought it was about time to create a pr!

diff --git a/ios/Passkey.m b/ios/Passkey.m
index 4c50f0d51709d1cb490af4b5c8092fe42cd3c2d9..aa81705149322fb8da2e957ae243c5f89c2bcecc 100644
--- a/ios/Passkey.m
+++ b/ios/Passkey.m
@@ -13,6 +13,7 @@ RCT_EXTERN_METHOD(register:(NSString)identifier

 RCT_EXTERN_METHOD(auth:(NSString)identifier
                   withChallenge:(NSString)challenge
+                  withCredentialIDs:(NSArray) credentialIDs
                   withSecurityKey:(BOOL) securityKey
                   withResolver:(RCTPromiseResolveBlock)resolve
                   withRejecter:(RCTPromiseRejectBlock)reject);
diff --git a/ios/Passkey.swift b/ios/Passkey.swift
index ead171651f8ab8ca8f0c9554d28871e4f9c358c6..b754e06e5e07a46e777ec5faf3063b08b4625674 100644
--- a/ios/Passkey.swift
+++ b/ios/Passkey.swift
@@ -69,8 +69,8 @@ class Passkey: NSObject {
     }
   }

-  @objc(auth:withChallenge:withSecurityKey:withResolver:withRejecter:)
-  func auth(_ identifier: String, challenge: String, securityKey: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
+  @objc(auth:withChallenge:withCredentialIDs:withSecurityKey:withResolver:withRejecter:)
+  func auth(_ identifier: String, challenge: String, credentialIDs: Array<String>, securityKey: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {

     // Convert challenge to correct type
     guard let challengeData: Data = Data(base64Encoded: challenge) else {
@@ -92,6 +92,18 @@ class Passkey: NSObject {
         // Create a new assertion request without security key
         let platformProvider = ASAuthorizationPlatformPublicKeyCredentialProvider(relyingPartyIdentifier: identifier);
         let authRequest = platformProvider.createCredentialAssertionRequest(challenge: challengeData);
+        if (credentialIDs.isEmpty == false) {
+            var ids: [ASAuthorizationPlatformPublicKeyCredentialDescriptor] = [];
+
+            credentialIDs.forEach { base64Id in
+              guard let id: Data = Data(base64Encoded: base64Id)
+              else { return; }
+
+              ids.append(ASAuthorizationPlatformPublicKeyCredentialDescriptor.init(credentialID: id));
+            }
+
+            authRequest.allowedCredentials = ids;
+          }
         authController = ASAuthorizationController(authorizationRequests: [authRequest]);
       }

@@ -152,6 +164,7 @@ enum PassKeyError: String, Error {
   case notSupported = "NotSupported"
   case requestFailed = "RequestFailed"
   case cancelled = "UserCancelled"
+  case invalidCredentialId = "InvalidCredentialId"
   case invalidChallenge = "InvalidChallenge"
   case notConfigured = "NotConfigured"
   case unknown = "UnknownError"
diff --git a/lib/commonjs/Passkey.js b/lib/commonjs/Passkey.js
index 59528c08ab4f225e4dbe7df0313a2ddd1f73e621..08630d3367401722fed5411a3b3626584906e14e 100644
--- a/lib/commonjs/Passkey.js
+++ b/lib/commonjs/Passkey.js
@@ -76,7 +76,7 @@ class Passkey {
       throw _PasskeyError.InvalidChallengeError;
     }
     try {
-      return await _NativePasskey.NativePasskey.auth(this.identifier, challenge, (options === null || options === void 0 ? void 0 : options.withSecurityKey) ?? false);
+      return await NativePasskey.auth(this.identifier, challenge, (options === null || options === void 0 ? void 0 : options.credentialIDs) ?? [], (options === null || options === void 0 ? void 0 : options.withSecurityKey) ?? false);
     } catch (error) {
       throw (0, _PasskeyError.handleNativeError)(error);
     }
diff --git a/lib/module/Passkey.js b/lib/module/Passkey.js
index 1f3067d956591b1f3569aa802129fed30d7e06cc..78d830025a165249b59db669888d155279fba021 100644
--- a/lib/module/Passkey.js
+++ b/lib/module/Passkey.js
@@ -70,7 +70,7 @@ export class Passkey {
       throw InvalidChallengeError;
     }
     try {
-      return await NativePasskey.auth(this.identifier, challenge, (options === null || options === void 0 ? void 0 : options.withSecurityKey) ?? false);
+      return await NativePasskey.auth(this.identifier, challenge, (options === null || options === void 0 ? void 0 : options.credentialIDs) ?? [], (options === null || options === void 0 ? void 0 : options.withSecurityKey) ?? false);
     } catch (error) {
       throw handleNativeError(error);
     }
diff --git a/lib/typescript/Passkey.d.ts b/lib/typescript/Passkey.d.ts
index 4c492f5b9dbe5d85d55ea70139a76669c4e8b72a..04305549e889f0c40f4395414927e69469ffe4fe 100644
--- a/lib/typescript/Passkey.d.ts
+++ b/lib/typescript/Passkey.d.ts
@@ -41,7 +41,8 @@ export declare class Passkey {
     static isSupported(): Promise<boolean>;
 }
 export interface PasskeyOptions {
-    withSecurityKey: boolean;
+    credentialIDs?: Array<string>;
+    withSecurityKey?: boolean;
 }
 /**
  * The result of a successful registration request

Things to note

We have only ever had a need for one credentialID at a time but the api should support more. I say this to say that allowing more is untested & I have left a comment to add a todo for this.
I have updated the types on the authenticate function to allow for backwards compatibility with the current api but also to warn the user that using credentialIDs & withSecurityKey is forbidden for now. This uses a simple discriminated union
I am not sure how the test are setup (they seem to use a passkey local to the lib author?) but they are passing on my local machine & they could definitely be improved to better test this new functionality! For example, by checking that the specified keys are those that actually show up in the passkey modal.
I am unfamiliar with Kotlin (& Swift 😅) but happy to dig into the api for this and try adding this for Android too but maybe best to wait until the following api issue is decided on.

Supporting both credentialIDs & withSecurityKey
I want to open a discussion around the desired api for combining these two options. How best to design the api is unclear.
To my mind there are two obvious approaches:

Allow each credential to have a specific transport type that you wish to enforce
export type PasskeyOptions = {
    credentialIDs: Array<string>;
    withSecurityKey?: false;
 } | {
    credentialIDs?: Array<{credentialID: string, transports: Array<AllowedTransports> }>;
    withSecurityKey: true;
 }

Allow the user to pass acceptable transports
 export type PasskeyOptions = {
     credentialIDs: Array<string>;
     withSecurityKey?: false;
  } | {
     credentialIDs?: Array<string>;
     transports?: Array<AllowedTransports>
     withSecurityKey: true;
  }

Transport enum choice
For the transports there is also a choice to be made, whether to go with the Apple naming convention
  export type AllowedTransports = 'nfc' | 'bluetooth' | 'usb' | 'all'

Or the w3c definitions?
 export type AllowedTransports = 'nfc' | 'ble' | 'internal' | 'usb'

Hey just realised that in the version 2 the credentials are actually passed with the request but it doesn't look like they are respected in the iOS version?
This actually answers my questions about the api etc too so I will update the pr to account for this in a bit 👍

Thank you for the PR!
You are right, for cross-platform compatibility reasons I had to change the way requests are made in version 2.
Since Android just takes the json request as is and uses it to register/authenticate the user we can assume that the [allowCredentials](https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-allowcredentials) option gives developers enough control over targeting specific credentials (and transports).
iOS works a bit different, so we would need to extract the credential descriptors from the json request and pass it in separately, similar to the way you proposed.
This would include the transports data which could be translated to the iOS-specific enum and replace the withSecurityKey option.
Let me know what you think.


Full-Text Indexes

This is a partial implementation of Full-Text indexes. There is still quite a bit to finish on the GMS side (as can be seen from the copious amount of TODOs), but this shows the broad strokes of how it's implemented, along with most of the "difficult" design choices being implemented. The major choice that has not yet been finalized is how to deal with FTS_DOC_ID, as it's an AUTO_INCREMENT column in MySQL, but that would not play well with Dolt merging. I already have ideas on how to handle that (taking into account remotes, etc.), but that would come from a later PR.
https://docs.google.com/document/d/1nGyYg461AhxQjFLzhEEj01XMz0VaTBaBaA44WNu0fc4/edit
Quite a few things have changed from the initial design doc, mostly based on feedback during the meeting, however some of it was post-meeting. There are three tables instead of 1: Config (stores table-specific information shared across all indexes), WordToPos (maps words to an ID and position, not fully used in the default search), and Count (used to calculate relevancy, also not fully used in the default search). I was planning on converting MATCH ... AGAINST ... to a join between the tables, which would work when fetching results, but MATCH ... AGAINST ... may also be used as a result, which necessitated writing all of the functionality anyway, so the join plan was dropped.
Last thing to mention, is that I'm pretty sure that Full-Text indexes actually do a full table scan. It seems weird, but AFAICT the indexes are used to quickly calculate relevancy for each search mode. It seems that, for overly large tables, the search time increases even when other index operations continue to operate nearly instantaneously.
I've tagged two people for review to make it a bit easier. Of course, feel free to take a look at more if you desire.
@reltuk The sql/fulltext/fulltext.go file is an expansion of the file you've previously reviewed (all still kept to a single file for now). To complement it and see how it'll be implemented on the Dolt side, you can look at  memory/table.go. Dolt's table editor will be similar, and the merge paths will only use the FulltextEditor, which special logic to interface with it from those paths.
@max-hoffman Take a look at the analyzer changes, along with the sql/plan/ddl.go file. You'll probably need to reference sql/fulltext/fulltext.go as well.

All of the new changes have been grouped into the 2nd commit.

I'm a bit tripped up on why some Query Plans are failing, but I don't want to hold this PR up any longer while trying to find and fix that when it's probably something relatively small. I'm also still missing quite a few tests (due to Query Plans), but I'm not anticipating any issues arising from them as I was doing a bit of testing while developing to make sure things worked as expected.


BERT model fails with error

This was discovered by @CharlieL7  while reviewing #1234
Issue is as follows :
When I try to run on develop branch bertsquad-10.onnx it hits the following error :
umayadav@rocm-rome-6:~/repo/AMDMIGraphX/build/bin(develop)$ ./driver perf bertsquad-10.onnx
Compiling ...
Reading: bertsquad-10.onnx

 terminate called after throwing an instance of 'migraphx::version_1::exception'
  what():  /home/umayadav/repo/AMDMIGraphX/src/program.cpp:171: compile: Dangling reference in module main from instruction 996
Aborted (core dumped)

When --fp16 is passed, it fails with following error :
umayadav@rocm-rome-6:~/repo/AMDMIGraphX/build/bin(develop)$ ./driver perf bertsquad-10.onnx --fp16
Compiling ...
Reading: bertsquad-10.onnx
driver: /home/umayadav/repo/AMDMIGraphX/src/module.cpp:267: migraphx::instruction_ref migraphx::module::replace_instruction(migraphx::instruction_ref, migraphx::instruction_ref): Assertion `!rep->outputs().empty() or rep == std::prev(end())' failed.
Aborted (core dumped)

When I try to run the same with khalique's allocate-op PR #1183  , It goes further but fails later with following error :
Allocating params ...
Running performance report ...
:0:rocdevice.cpp            :2603:<PHONE_NUMBER>483 us: 210726: [tid:0x7fb952d5c700] Device::callbackQueue aborting with error : HSA_STATUS_ERROR_MEMORY_FAULT: Agent attempted to access an inaccessible address. code: 0x2b
Aborted (core dumped)

Passing initialization flags
root@557fcf91b2a1:/code/2_AMDMIGraphX/docker_build# ./bin/driver read bertsquad-10.onnx | grep param
input_ids:0 = @param:input_ids:0 -> int64_type, {1, 256}, {256, 1}
input_mask:0 = @param:input_mask:0 -> int64_type, {1, 256}, {256, 1}
segment_ids:0 = @param:segment_ids:0 -> int64_type, {1, 256}, {256, 1}
unique_ids_raw_output___9:0 = @param:unique_ids_raw_output___9:0 -> int64_type, {1}, {1}

root@557fcf91b2a1:/code/2_AMDMIGraphX/docker_build# ./bin/driver run bertsquad-10.onnx --fill1 input_ids:0 --fill1 input_mask:0 --fill1 segment_ids:0
Compiling ...
Reading: bertsquad-10.onnx
terminate called after throwing an instance of 'migraphx::version_1::exception'
  what():  /code/2_AMDMIGraphX/src/program.cpp:171: compile: Dangling reference in module main from instruction 996
Aborted (core dumped)

root@557fcf91b2a1:/code/2_AMDMIGraphX/docker_build# ./bin/driver run bertsquad-10.onnx --fill1 input_ids:0 --fill1 input_mask:0 --fill1 segment_ids:0 --fp16
Compiling ...
Reading: bertsquad-10.onnx
terminate called after throwing an instance of 'migraphx::version_1::exception'
  what():  /code/2_AMDMIGraphX/src/program.cpp:171: compile: Dangling reference in module main from instruction 998
Aborted (core dumped)

I tried passing fill1 and fill0 to with allocate_op PR. but it still fails.
umayadav@rocm-rome-6:~/repo/AMDMIGraphX/build/bin((HEAD detached at upstream/allocate_op))$ ./driver run bertsquad-10.onnx --fill1 input_ids:0 --fill1 input_mask:0 --fill1 segment_ids:0 --fp16
Compiling ...
Reading: bertsquad-10.onnx
driver: /home/umayadav/repo/AMDMIGraphX/src/module.cpp:267: migraphx::instruction_ref migraphx::module::replace_instruction(migraphx::instruction_ref, migraphx::instruction_ref): Assertion `!rep->outputs().empty() or rep == std::prev(end())' failed.
Aborted (core dumped)

Well past this error.


[BUG] Pagination prevent fetching more than 100 repositories

Current perPage limit is 100 in Gitlab, and the script use 9999, thus fetching no more than 100 repositories.
https://docs.gitlab.com/ee/api/rest/index.html#pagination

per_page 	Number of items to list per page (default: 20, max: 100).

https://github.com/adroste/gitlab-clone-group/blob/main/gitlab-clone-group.py#L17

api_url = 'https://' + posixpath.join(args.gitlab_domain, 'api/v4/groups/', args.group_id, 'projects') + '?per_page=9999&page=1&include_subgroups=true'

I personally never hit this limitation but I'm happy to accept a PR.
Should easily be doable by iterating for the pages ?per_page=100&page=n and concatenating the responses.


Prepare examples of prettier formatted code

@JuliaGerasymenko please use button resolve conversation for fixed issues.

Need to rebase on master @JuliaGerasymenko

Not relevant for v2.x


Constant plugin crashes

Hi, error in my logs:
NSFileSandboxingRequestRelatedItemExtension: an error was received from pboxd instead of a token. Domain: NSPOSIXErrorDomain, code: 1
it started showing up on version 1.3.4, but in small quantity and didn't bother as much
After 1.4.2 timeline is uneditable
This error causes unstability in plugin and crashes itself across all clips, so i have to restart FCP every time it happens.
i thought maybe its corelated to braw being on my NAS server, but after putting files on SSD and relinking media, it's still unstable, my timeline is uneditable, because i have restart fcp every few minutes, sometimes seconds of work.
HW: Apple M1

Can you please try granting BRAW Toolbox sandbox access to all the drives that contain BRAW files - see:
https://brawtoolbox.io/collaboration/
After you've granted access, please restart your computer - and let me know if you're still having issues?

Tried it, unfortunaly still the same issue
https://we.tl/t-mUibd1C1Vt
Link to my Fxplug log file, couldn't pase it on pastebin because it's 150mb file

Apologies for the delayed reply - busy end to the year!
Unfortunately that links now expired. Are you able to upload the crash logs and error logs here:
https://latenitefilms.digitalpigeon.com

Files has been sent over ;)


setCentering support

Are you going to support this nice function as option?
https://developers.google.com/doubleclick-gpt/reference#googletag.PubAdsService_setCentering

Thanks for the pull request... all merged and ready to go!


Issue with Converting PDMX JSON to MusicXML

Hi, thanks for your awesome work! I encountered an issue while trying to convert PDMX JSON files to MusicXML. The conversion doesn’t seem to work as expected.
I use the code below to convert:
for idx, json_file in enumerate(json_files):
    music = pdmx.load(json_file)
    music.write_midi(f'pdmx_test_{idx}.midi')
    music.write_musicxml(f'pdmx_test_{idx}.musicxml')

    score = music.to_music21()
    score.write('musicxml', f'pdmx_test_{idx}_21.musicxml')

And we get the result:
Convert to midi:

Convert to music21/musicxml(muspy use music21 as backend to save musicxml file, so it get the same result):

It seems that there are some problem on converting to musicxml. I’ve also attached some example files for reference. Could you give some guidance on how to resolve this issue? Thank you for your help!
debug.zip

The functionality that writes to MusicXML is not perfect (I spent most of my time focusing on writing to MIDI and WAV formats). I am currently working on improving this part of MusicRender -- it should be ready in about a week.

I've pushed an updated version of the output to MusicXML function. A lot of stuff should be fixed (notes and annotations should be in the right place). However, by the nature of reading music into a universal object, some information gets lost and cannot be recovered. Where this affects the output to MusicXML is that information necessary for recreating drum tracks (which notes map to which drums) is lost. For this reason, drum tracks are all placed on a single pitch; however, the rhythms are still correct. Everything else should work OK though.
Let me know if you find any other problems. However, the output to MusicXML function can only be so good, as some information always is lost when using the MusicRender object, so the outputted MusicXML file can never be a perfect recreation after the original is loaded as MusicRender.

Actually, I am working on improving the drum output. Should be done by today.


Optimize the Count CombineFn

Previously the accumulator was stored as a Long.  This uses
a singleton long[] to avoid the boxing and unboxing on every
increment.
This required changing the Coder (the format actually remains
the same, but we have no way of declaring that) so is not
backwards compatible with reload.

R: me!

Jenkins failure is a known breakage not related to this PR.

Jenkins failure is a known breakage not related to this PR.

Also, @peihe might want to take a look.

@peihe Incorporated your suggestion. For a large number of accumulators, this happens to be worse due to the indexing, but I suppose a small number of accumulators is more common. The difference is in the nanosecond-per-element range either way...


Animation finish with wrongs values

I've defined this animation (computed in a getter):
{
    duration: 0.5,
    repeat: 0,
    stopMethod: 'immediate',
    actions: [{
        p: 'y',
        v: {
            0: this.y,
            0.5: this.y - 50,
            1: this.y
        }
    }]
}

I've setup the handler (even this is computed in a getter).
(If it is relevant) Animations are 4 computet in a get animations(){}.
Object.values(animations).forEach(a => a.on('finish', this.finish));

get finish() {
    return () => {
        this.fireAncestors('$positionMoved', this.x, this.y, this.playerId);
    };
}

The element starts from a position of x = 0, y = 0 (checker in the debugger);
$positionMoved(x, y, playerId) {
    const index = playerId || 0;
    const can = this.tag('Markers').check(x, y);
    if (can) this.tag('Cursors').childList.getAt(index).enable();
    if (!can) this.tag('Cursors').childList.getAt(index).disable();
}

In this handler I got:
x = 0, y = -0.29488556486184336

Expected:
x = 0, y = 0

Simple definition
I need to animate a cursor on top, left, right, bottom simulate the inability of going forward, then recheck if I have to disable it based on the position of It started. For achieve this, I've stopped common handlers of checking both from transition and animations.

How can I be sure that the position is correct after the finish of the animation?
There are other patterns?
Is some related to animation frames?
It is some related to the configs of the animations?

Extra
I need even to disable handlers (ex: _handleEnter()) during animation to prevent bad interactions.
Best regards
Mattia

Can you provide an example that we can run and debug?

@erikhaandrikman,
This is a similar case to my personal case.
This reproduces and considers only the finish event and the y coordinate animation.
Assertion fails.
https://jsfiddle.net/e563mtjh/6/
Code
// Open console, focus canvas and press Enter, then see the assertion test
class AnimationsExample extends lng.Application {
  static _template() {
    return {
   		y: 10,
    	text: { text: 'Enter' }
    }
  }
  get object() {
  	return {
      y: this.y
    }
  }
  get handlers() {
  	return {
      finish: ()=> {
      	this.fireAncestors('$finish', this.object);
        console.assert(this.object.y == 10, JSON.stringify(this.object));
      }
    }
  }
  get animations() {
  	const animations = [
      this.animation({
          duration: 0.5,
          repeat: 0,
          stopMethod: 'immediate',
          actions: [{
            p: 'y',
            v: {
              0: this.y,
              0.5: this.y - 50,
              1: this.y
            }
          }]
        })
    ];
    animations[0].on('finish', this.handlers.finish);
    return animations;
  }
  _handleEnter() {
  	this.animations[0].start();
  }
}
const options = {stage: {w: 600, h: 600, clearColor: 0xFF000000, canvas2d: false, useImageWorker: false}, debug: true}
const app = new AnimationsExample(options);
window.app = app;
document.body.appendChild(app.stage.getCanvas());

lightning.js
<EMAIL_ADDRESS>


Fix release workflow

Coverage remained the same at 82.699% when pulling 76ba15990af637b7198c6f275ba106cb994d0a8d on fix-release-workflow into 4d5747893840627574358cb6e25551839075503a on main.


Added row team blog

I will send you figures by email, not sure if I properly formatted the math text.

Looks good. Math looks correct.

Getting this error:
ERROR: Could not process ./row.rst
  | SystemMessage: /home/travis/build/mechmotum/mechmotum.github.io/content/row.rst:10: (WARNING/2) Field list ends without a blank line; unexpected unindent.

You can test locally running something like:
rst2html row.rst row.html

Or use something like:
https://github.com/retext-project/retext
or:
http://rst.ninjs.org/#

This is a better link instead of the last one: https://livesphinx.herokuapp.com/


Consolidating troubleshooting guides

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

MicrosoftCollaboratePortal/images/Distribution-Mgr-Settings.PNG
:white_check_mark:Succeeded

MicrosoftCollaboratePortal/package-downloads.md
:white_check_mark:Succeeded

MicrosoftCollaboratePortal/support.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Break down Identity Epic

User Story
As members of the Data Platform Apps and Tools, we want to break down the identity epic so we can understand our journey and the deliverables for our identity strategy in Alpha and beyond.
Value / Purpose
No response
Useful Contacts
No response
User Types
No response
Hypothesis
If we agree a common identity strategy we can make plans how to implement it.
Proposal
Hold a whiteboarding session with the whole team to break down our identity strategy and our approach to implementation.
In scope for the meeting:

Assessing our current state of identity in AP and DP
Agreed the common interface for identity management
Discuss proposals of implementation of common identity strategy across the platform
TBD

Additional Information
No response
Definition of Done

[ ] Document our current state of identity and access management, capturing all identity and middlewear providers and what uses what.
[ ] Document our Data Platform Identity Strategy and make it available in our documentation
[ ] Agree proof of concepts to test aspects of identity strategy
[ ] Validate strategy with other Data Platform stakeholders
[ ] Raise follow-on stories

https://docs.google.com/document/d/1VKnbJpNfw4UZDUQ3RCjdWeJASBjSjpfpDRDY044JmYM/edit#heading=h.6bdcpvwr740s


avg()[5m] doesn't work

Use Case *
avg(errorlog{domain="1"})
What I want *
avg(errorlog{domain="1"})[5m]
I want the avg function allow aggregating  a given instant vector and return an range vector with 5 minutes

Thanks for your report. It looks as if this is actually a question about usage and not development because avg() works only with range vectors. In other words, avg(errorlog{domain="1"}) doesn't make sense since you need at least 2 datapoints to compute the average.
To make your question, and all replies, easier to find, we suggest you move this over to our user mailing list, which you can also search. If you prefer more interactive help, join or our IRC channel, #prometheus on irc.freenode.net. Please be aware that our IRC channel has no logs, is not searchable, and that people might not answer quickly if they are busy or asleep. If in doubt, you should choose the mailing list.
Once your questions have been answered, please add a short line pointing to relevant replies in case anyone stumbles here via a search engine in the future.


Apply spotless fixes

We need to make use of spotless checks so that we have some level of consistency when it comes to white spaces and remove things like unused imports and unused private methods; basically, clean up the code with the tools available.
I suggest we add the spotless check each time someone submits a PR.
./gradlew :fineract-provider:spotlessCheck
The issues raised by this command can be addressed by running this ./gradlew :fineract-provider:spotlessApply
This is a practice in the community that we should adopt.

@Napho @hiteshprajapati kindly assist with this

@hagafrank conflict here, also maybe we can add a sanity checks workflow in this repo so atleast we dont merge anything with spotless checks failing

Yes, that's the idea.... there are conflicts here because the PR has been in the queue for a while. I can close it and submit a new one. That will been to be merged ASAP. But yes, I agree with the idea of the sanity checks


flutter test does not appear to timeout tests?

See https://github.com/flutter/flutter/issues/2181
flutter test was hung on the bots for 23 hours in this case.  date_picker_test.dart was where the hang happened, but presumably flutter test (or package:test) needs to know how to timeout tests.  package:test probably already does and we're just holding it wrong.
@abarth @nex3 @yjbanov

There are a few ways to write a test that runs forever without timing out. The timeout logic is handled entirely in the test's isolate (or iframe or process), so if it enters a synchronous infinite loop it will never time out. Also, the test runner only times out after a certain period of inactivity, which is defined based on the test's interaction with testing primitives. If it's registering new callbacks with expectAsync() or the completes or completion matcher those callbacks are firing, then it won't time out.

@nex3 In our case, there's a problem in that we don't really test the subprocess (it's one of the things we're testing). It would be ideal if we could have the timing logic in the outer process.

Having an external timeout doesn't work very well when you want to frequently reset it from within the test. If you need one, I suggest building it into your platform plugin—if you emit a timeout error through the returned StreamChannel, the runner should handle that gracefully.

Ah, I didn't realise tests could interact with their timeouts.

Yeah, that's how it formalizes the idea of "inactivity".

I'm actually convinced my change to add a timeout was wrong.  I believe the underlying error is that flutter does not pass  https://github.com/dart-lang/sdk/blob/master/tests/isolate/handle_error2_test.dart as far as I can tell.  See comments on #3366.

I studied this and decided to WONTFIX it. Our bots have their own timeouts, which should be good enough to catch regressions. The test framework has timeouts to catch well-behaving slow/hung tests. There's not really a good place to put another timeout.


Error: Tensor Size Mismatch in compute_seg Function (utils.py)

Hello! After running your program, I found that the lines normD_down = D_down + norm_down and normD_right = D_right + norm_right in the utils.py file, following the compute_seg function, are causing errors. The line normD_down = D_down + norm_down is giving a RuntimeError: The size of tensor a (640) must match the size of tensor b (479) at non-singleton dimension 2, where the shape of D_down is (1, 479, 640), and the shape of norm_down is (1, 3, 479). A similar issue is occurring with normD_right. I'm not sure how to resolve this. Looking forward to your response!

Hi, this may induced by the version difference. please change
norm_down = pdist(aligned_norm[:, :, 1:], aligned_norm[:, :, :-1])
norm_right = pdist(aligned_norm[:, :, :, 1:], aligned_norm[:, :, :, :-1])
to
norm_down = pdist(aligned_norm[:, :, 1:].permute(0, 2, 3, 1), aligned_norm[:, :, :-1].permute(0, 2, 3, 1))
norm_right = pdist(aligned_norm[:, :, :, 1:].permute(0, 2, 3, 1), aligned_norm[:, :, :, :-1].permute(0, 2, 3, 1))
and then have a try.

Thank you, this works! Additionally, I've noticed that in train.py, it's necessary to add if args.multiprocessing_distributed: before group = dist.new_group([i for i in range(ngpus_per_node)]) to avoid encountering errors.

Received with thanks!


Several metadata/asset inconsistencies

I did some detailed analysis on the asset data/metadata and noted several inconsistencies:

Foot: has "unicodeSkintones" but is missing skintone folders
Handshake: has "unicodeSkintones" (with some wrong codes) and is missing skintone folders
Man with bunny ears: does not have "unicodeSkintones" but has skintone folders
Man wrestling: does not have "unicodeSkintones" but has skintone folders
Person genie: has "unicodeSkintones" (with some wrong codes) and is missing skintone folders
Person with bunny ears: does not have "unicodeSkintones" but has skintone folders
Person wrestling: does not have "unicodeSkintones" but has skintone folders
Playground slide: missing Color folder
Pregnant person: missing Medium-Dark/3D style folder
Skier: does not have "unicodeSkintones" but has skintone folders
Troll: has "unicodeSkintones" (with some wrong codes) and is missing skintone folders
Woman with bunny ears: does not have "unicodeSkintones" but has skintone folders
Woman wrestling: does not have "unicodeSkintones" but has skintone folders

One other strange one is "O button blood type" which uses parentheses around 'blood_type' in the svg filenames. For all other asset data, the file name is the lowercase of the parent asset folder + style (Color, Flat, etc.) with spaces replaced by "_", so based on that pattern I'd expect the filenames for this to be e.g. o_button_blood_type_color.svg, etc. Alternatively, the parent folder name could be O button (blood type) which would make the pattern work.

This duplicates some of https://github.com/microsoft/fluentui-emoji/issues/61


Allow skipping generated files

Add a command-line flag that, if enabled, skips processing auto-generated files. The auto-generated files are recognized by certain comments like Code generated by ... or DO NOT EDIT.
This feature is only implemented for the CLI, since the analyzer used in golangci-lint will already receive a subset of files that are not auto-generated.
Right now it's disabled by default, but that is just to not introduce a breaking change. I think it should be enabled by
default. This might require the flag to be "inverted", e.g. renamed to IncludeGeneratedFiles or similar.
The testdata and the function that recognizes auto-generated files were taken almost verbatim from https://github.com/golangci/golangci-lint.
Fixes: https://github.com/daixiang0/gci/issues/66

Please fix CI then we can make it land.


Include cluster IDs and other infrastructure information as outputs

Description
After making use of this module for our team's automation, we see value in adding all the ID of all clusters created as outputs. Currently, only names are included.
Moreover, it would also be very helpful if there was a way to map the clusters created to the resource group they were created in. Currently, there are two separate arrays: One for cluster names and another for resource group names.
Perhaps a complex object that includes VPC, region, resource group and cluster?

New or affected modules

https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone

By submitting this issue, you agree to follow our Code of Conduct

PR under review if you wanted to have a preview @luisarojas https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone/pull/606

Hey @Aashiq-J @ocofaigh,
How about something like this? I think this way there would be less redundant data, considering that:

CRNs can be inferred from IDs, for both VPCs and clusters.
Resource group name can be inferred from resource group ID.
Resource group and region for a cluster depends for the VPC that it is a part of; and all clusters in that VPC will have the same information.
Always favour using IDs instead of names, especially if they will be used as object keys. I'm not using this in the proposal below, but in the case that you do want to go the route of a large nested object, I strongly suggest you use clusters IDs instead of names as the key.
Anyway, what are your thought on something like this?

In an array of VPCs:
[
  {
	"id" = "r018-f0249f19-7ff4-4675-5f310e0429e6",
	"resource_group_id" = "bb23c29b8345vdsdf2345a75faa7282".
	"region" = "eu-gb",
	"clusters" = [
		"ckj4534berebfgddfhlg90"
	]
  },
  {
	"id" = "r018-0c202cba-5ed9-43d9-870254000294",
	"resource_group_id" = "d7ef1d4c2345wdfsddfebe8b05359",
	"region" = "eu-gb",
	"clusters" = [
		"ckjcf54bethrvrydb59g"
	]
  }
]

Added new output
vpc_resource_list = [
  {
    "clusters" = [
      "ckmii89s03469jb01fd0",
    ]
    "id" = "r026-ab6f85aa-52ac-4681-b25e-88ac76a56b49"
    "name" = "roks-test-management-vpc"
    "region" = "au-syd"
    "resource_group_id" = "ab96da73758240f3aae793c81c5ea982"
    "vsi" = tolist([])
  },
  {
    "clusters" = [
      "ckmii6ps0tpf4cmht60g",
    ]
    "id" = "r026-9ae95bca-1109-4ce5-82db-2f4891aa181b"
    "name" = "roks-test-workload-vpc"
    "region" = "au-syd"
    "resource_group_id" = "7c40cb0e076947be91b0461349c91f5c"
    "vsi" = tolist([])
  },
]

@luisarojas happy enough with new proposed output? Changes have been pushed to https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone/pull/606 if you wanted to review?

@ocofaigh Looks good to me, thanks.

PR merged. Closing issue


Use the Mono debugger library instead of SDB to enable Windows support

It would be extremely useful to remote debug Mono applications from Windows. SDB is just a CLI wrapper for the mono debugger libraries (https://github.com/mono/debugger-libs). While SDB requires a POSIX environment to execute, the libraries do not. Please change this extension to depend upon the debugger libraries to enable Windows support.

Indeed, not being able to use Mono with debugging on Windows is kinda weird.

I'm accepting pull requests!

I don't think the extension relies on SDB in a way that it requires to execute SDB. Therefore it does not require a POSIX environment.
If you adapt Initialize (https://github.com/t-h-e/vscode-mono-debug/commit/24da939de7aeb3fc58e2763da2e62314c6684d53), you can already use this extension on Windows. Although I had cygwin installed to build everything.
The project does rely on some of the code from the SDB project as well as its dependencies to Mono.Cecil, NRefactory, Mono.Debugger.Soft, Mono.Debugging and Mono.Debugging.Soft. I moved the dependencies to packages.config and added some code from SDB.
I created a pull request for the changes: https://github.com/Microsoft/vscode-mono-debug/pull/15


Improvements to wordcloud

The wordcloud can be given some extra functionality to be more informative.

[ ] Add the option for the table to show percentages instead of absolute frequencies
[ ] If the user has entered a query or filter and is viewing a subset of the corpus, they can currently see the term frequencies in their subset. Also add the option to see frequencies relative to the whole corpus, e.g. as TF-IDF score.
[ ] Add a setting to show bigrams/trigrams instead of unigrams. Since the wordcloud relies on a CountVectorizer, this should be trivial, though it may be problematic for the TF-IDF mentioned above.

For bigrams / trigrams, arguably a flat word list would be more readable than a word cloud. While of course the table view does just that, I wonder if the word cloud visualization may actually put people off.

Here's what that would look like (in the troonredes corpus):

For the record: in our last meeting we discussed that it may be a good idea to add a horizontal bar chart layout to this visualisation. (Some other visualisations also offer different "views".) This could look like the ngram graph, but without the timeline section:


Will this tool still work under Twitter new API policy?

Free access will stop from Feb-9.

@cangyuyao I hope to be able to continue supporting this library and my API key service. However, Twitter still has not published any pricing yet. I'll be able to provide a more substantial update once they do 👍

Hi @cangyuyao, unfortunately I will not be able to continue offering the TTM free API keys with the Twitter changes. If you have your own bearer token from Twitter itself, you can use that, but using a key from https://ttm.kbravh.dev will stop working on Feb. 13.


Fixed create_remittance endpoint.

Thanks. Should get it passing on Circle first tho. I'll be able to check it later today.

Thanks


[Feature Request] hope add dbclick event in tree component

Existing Component
是
Component Name
el-tree
Description
hope add dbclick event in tree component
or can add check-on-dbclick-node Attributes.
This problem once bothered me for a long time.

pr welcome


doc/add voltbuilder to tools

Platforms affected
documentation only.
Motivation and Context
Add a new tool to the list of tools using Cordova
Description
Add a short description and an icon
Testing
Loaded the existing page, applied the changes and examined the result.
Checklist

[x] I've run the tests to see all new and existing tests pass
[x] I added automated test coverage as appropriate for this change
[x] Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
[x] If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
[x] I've updated the documentation if necessary

Sorry - this one fell behind my desk. All references on our site to Cordova should now read Apache Cordova.

I noticed "Replace PhoneGap." on the main page of https://volt.build/ and the link to a "migration guide" seems to be broken.
I noticed there is a table with just "PhoneGap" in a column header.
We had a bad experience in the past where PhoneGap Build would force people to use older versions of some Cordova platforms and would appreciate some reassurance that there would be flexibility in the future.
I would also appreciate a comparison to https://ionicframework.com/appflow which seems to support building with both Cordova and Capacitor
I would also advise resolving the conflict on GitHub

Thanks for the constructive comments!

Link on main page fixed - thanks!
Column header now says "PhoneGap Build"
We suffered as PhoneGap users too - it was what drove us to make VoltBuilder. We added a statement to the About page stating we continuously update the VoltBuilder toolchain to the latest versions.
We're not qualified to do a comparison to AppFlow - but we'll be happy to work with anyone interested in doing one.
The conflict on GitHub has been resolved.

Checks are green. Several Green checks, no explicit red checks. Merging!
Thank you @gwhenne for taking the time for this PR and applying the requested changes. Hope VoltBuilder does well.


HDDS-4227. Implement a 'Prepare For Upgrade' step in OM that applies all committed Ratis transactions.

What changes were proposed in this pull request?
Through HDDS-4143, we have a generic factory to handle multiple versions of apply transaction implementations based on layout version. Hence, this factory can be used to handle versioned requests across layout versions, whenever both the versions need to exist in the code (Let's say for HDDS-2939).
However, it has been noticed that the OM ratis requests are still undergoing lot of minor changes (HDDS-4006, HDDS-4007, HDDS-3903), and in these cases it will become hard to maintain 2 versions of the code just to support clean upgrades.
Hence, this patch adds a pre-upgrade utility (client API) that makes sure that an OM instance has no "un-applied" transactions in its Raft log. Invoking this client API before updating the software version makes sure that the upgrade starts with a clean state. Of course, this would be needed only in a HA setup. In a non HA setup, this can either be skipped, or when invoked will be a No-Op (Non Ratis) or cause no harm (Single node Ratis).
More details in JIRA.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4227
How was this patch tested?
Manually tested.
Unit/Acceptance tests pending.

Hi @avijayanhwx
the initial changes look good to me thank you for sharing the wip state, and it seems to be a good direction so far.
Maybe one minor comment from me as well, are we sure we want to add --prepareForDowngrade as an option alias? It suggests that we might support downgrade, and I fear that might cause some misunderstandings.
I am unsure whether we can use the same functionality to get back to an older version in all scenarios either.

Hi @avijayanhwx
the initial changes look good to me thank you for sharing the wip state, and it seems to be a good direction so far.
Maybe one minor comment from me as well, are we sure we want to add --prepareForDowngrade as an option alias? It suggests that we might support downgrade, and I fear that might cause some misunderstandings.
I am unsure whether we can use the same functionality to get back to an older version in all scenarios either.

Thanks for the review @fapifta. I agree "downgrades" may not be supportable from each any arbitrary state (post finalize). Since this is a specialized command, I see no harm in adding the alias. When the downgrade is not supported, starting the component in the older version will be flagged out anyway. And, this prepare step is a must do for any supported downgrade. In the future, we may be able to add a bit of validation on the prepareDowngrade step to check finalization state or some marker on disk.

Only some minor comments above.
In additional, can you add the new unit test for PrepareForUpgrade scenario? Current unit test change cannot cover this.

Thanks for the review @linyiqun. I am planning to write tests in my next commit and bring this PR out of "Draft" status.

There are some follow up work items for Prepare for Upgrade flow.

Purging Logs after applying the last txn.
Validating that an OM is "prepared for upgrade" when starting of in a newer version.
Acceptance Tests

These work items will be handled in subsequent PRs.

Hi @avijayanhwx
sorry for the long silence, the changes look good to me with the follow up items, +1.

Thank you for the reviews @linyiqun, @fapifta & @swagle. Merging this.


Add pre-commit hooks for spell checking

Problem

We don't have Git hooks to check for spelling mistakes in code or in commit messages.
Description

pre-commit has several hooks that could provide this check. Visit https://pre-commit.com/hooks.html and filter by the words 'spell' or 'typo' to see a list of options. Finding a popular, maintained one in the list and using it would improve the spelling situation considerably.
Alternatives

Relying on spell check by our IDEs and text editors is okay but it doesn't always work. Just yesterday, I made a commit called "Update pacakges" even though my IDE showed a wavy underline under the word.
References
Here are some of the most starred options from pre-commit's list:

https://github.com/codespell-project/codespell (1.1k)
https://github.com/crate-ci/typos (985)
https://github.com/streetsidesoftware/cspell-cli (25, but uses https://github.com/streetsidesoftware/cspell (710))
https://github.com/hcodes/yaspeller (620)

Hey folks, can I pick this issue and work on it?

@MalanB sure! Please go ahead.

So far, tried codespell and cspell-cli on local. Codespell missed few typos made on dictionary and on non-dictionary words. cspell-cli did not work even after trying out their setup guide. Will figure if any other spell checker fits the need.

I can see how spell checking code is a whole other problem compared to prose. If you could compile a report of why each of the rejected options was rejected, that'll be a good enough resolution. We'll close this issue if none of the spell checkers are a good fit.

I'd be curious about trying to use LanguageTool for this. It has an excellent dictionary, can easily be configured with exceptions, gives very good feedback, and can be configured to check various prose style and phrase complexity rules.
As far as I can tell there isn't an out-the-box solution for this, but I'd be keen to give making this work a shot with a custom pre-commit hook that uses the LanguageTool docker image. It's certainly a heavier solution than cspell or hunspell, but it's very good for natural languages. The plain english rules, for example, would probably benefit us greatly.
We would certainly need something else altogether for code, though. And whatever custom solution for using LanguageTool we used would need to have an ignore-pragma built in.

I've looked into trying to use LanguageTool for this and it would be way too complicated. We should just use codespell for code and cspell for Markdown/documentation.

@MalanB Are you still interested in working on this issue? I've unassigned you for now, but if you'd like to take it on again, just ping here and let us know :pray:

Sorry I was occupied with work so could make progress on this. I would let someone to take this issue further.


Memory leak on test

I run your test suit using miri and there is a small leak
running 33 tests
test minivec_as_mut ... ok
test minivec_dedup_by_test ... ok
test minivec_dedup_needs_drop ... ok
test minivec_default_constructed ... ok
test minivec_deref_test ... ok
test minivec_extend ... ok
test minivec_extend_from_slice ... ok
test minivec_from ... ok
test minivec_from_raw_part ... ok
test minivec_from_raw_parts ... ok
test minivec_hash ... ok
test minivec_index ... ok
test minivec_insert ... ok
test minivec_into_iter ... ok
test minivec_leak ... ok
test minivec_macro ... ok
test minivec_pop ... ok
test minivec_push ... ok
test minivec_remove ... ok
test minivec_remove_item ... ok
test minivec_remove_panic ... ok
test minivec_resize_with ... ok
test minivec_retain ... ok
test minivec_shrink_to ... ok
test minivec_shrink_to_panic ... ok
test minivec_splice ... ok
test minivec_splice_raii ... ok
test minivec_split_off ... ok
test minivec_swap_remove ... ok
test minivec_test_resize ... ok
test minivec_truncate ... ok
test minivec_with_capacity ... ok
test minvec_drain ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

The following memory was leaked: alloc300481 (Rust heap, size: 56, align: 8) {
    0x00 │ ╾a300481+0x18[<untagged>] (8 ptr bytes)╼ 03 00 00 00 00 00 00 00 │ ╾──────╼........
    0x10 │ 04 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 │ ................
    0x20 │ 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 │ ................
    0x30 │ __ __ __ __ __ __ __ __                         │ ░░░░░░░░
}

error: the evaluated program leaked memory

error: aborting due to previous error

error: test failed, to rerun pass '--test mine'

I am on macOS

I'm actually impressed that Miri ran for you. I tried it in the past and it wasn't as effective as running the code through valgrind was.
Anyway, that leak is known and actually quite deliberate.
It happens here: https://github.com/LeonineKing1199/minivec/blob/d7af2441f184e7ffd72e2c2df4c32f34f37dc2be/tests/mine.rs#L238
It was to make sure that leak actually leaked and I relied on valgrind to pick that up for me. Right now this test is a little flimsy and there's actually more idiomatic ways of making sure that a destructor wasn't run.
If you'd like, a PR improving this test would be appreciated.

#[test]
fn minivec_leak() {
	let mut static_ref: &'static mut [usize];
	{
    	let x = mini_vec![1, 2, 3];
    	static_ref = MiniVec::leak(x);
	}
    static_ref[0] += 1;
    assert_eq!(static_ref, &[2, 2, 3]);

	// and call the drop method manually maybe
}

i have this in mind i will create a pr tonight what do you think ?

It seems like it'd be best to avoid testing for UB... how about this?
struct HasDropped<'a>(&'a mut bool);
impl Drop for HasDropped<'_> {
    fn drop(&mut self) {
        *self.0 = true;
    }
}
let mut has_dropped = false;
{
    let leaked = MiniVec::leak(mini_vec![HasDropped(&mut has_dropped)]);
}
assert!(!has_dropped);

...or maybe there's a way to require that a test is run through miri?

Either way, testing leak will need to leak an allocation. I think it's simplest to just #[cfg_attr(miri, ignore)] on the minivec_leak test

Actually,
struct HasDropped<'a>(&'a mut bool);
impl Drop for HasDropped<'_> {
    fn drop(&mut self) {
        *self.0 = true;
    }
}
let mut has_dropped = false;
{
    let leaked = MiniVec::leak(mini_vec![HasDropped(&mut has_dropped)]);
}
assert!(!has_dropped);

is exactly what I had in mind!
I see there's a PR to have miri simply ignore the leak. I'd much rather see this test inside the codebase instead.
One thing I'd like to prove in the test is that Dropping actually works too. So maybe something that pops off a few elements and then leaks.

Supporting MIRI and improving the Drop tests are two different issues, and I'd recommend handling them as separate contributions. It's mostly for the sake of making the project more welcoming for contributors by creating for hoops to jump through for positive changes (of course, you're right to reject changes that aren't suitable).
Another option would be to guarantee that MiniVec::from_raw is valid on a &'static mut [T] returned from Minivec::leak, and use that to clean up the test. If not, an exception would have to be made to support running the tests in MIRI

Alright, sounds fair to me. I'll merge the PR for the Miri fix.


should a Resource's "version" properties be optional when model's maxversions=1 ?

Pro: hides the version attributes from the serialization (stickyversionid, defaultversionid, defaultversionurl)
Con: if they ever need a url to the version they would need to query the versions collection to get it, it would no longer be available as a property of the Resource.
@deissnerk

Perhaps we need to make up our minds, if retrieving the default version should be just like retrieving any other version, or if it should always require special handling by the client. Right now, some special handling is required, as also the id field reflects the resource id and not the version id.

I wonder if we need to find a better wording for what "the Resource" is, rather than just "it's the default version".  It's sort of an alias. This concept isn't unique, even git has it... branch names remain the same while the underlying file it points to changes. Same as a Resource's id. The only diff is that with git the branch name doesn't appear as part of the underlying data. So, maybe we just need to find the best wording to describe it, but saying "it's the default version" might not be accurate enough.
You said "some special handling is required"... I'd like to explore that some more. If a client doesn't wish to know about versioning at all and ignores all version related attributes on the Resource's metadata, what special processing do they do? Ideally, none because they should be able to read or write the Resource and have those changes reflected on the current "default version" w/o really knowing about the indirection. What special processing did you have in mind?

On the 7/16 call we decided that for consistency we'll always have/show them on the Resource.


[IDE] Console view not working on trial

Describe the bug
Console view on trial returns an error [ERROR] Connection problem! Check security roles assignments.
In the network tab web socket connection is immediately closed

What version of the XSK are you using?
0.9.2

To Reproduce
Steps to reproduce the behavior:

Go to https://trial.apps.xsk.io/services/v4/web/ide/#
Open the console view
See error

Expected behavior
Logs are streamed and no error is shown
Desktop (please complete the following information):

OS: MacOS
Browser: tried both in Safari and Chrome

@ThuF on trial https://trial.apps.xsk.io deployment there is Kyma with Istio, but on https://trial.apps.dirigible.io deployment we don't use Istio. I think this is something with configuration of mTLS on Istio.

Issue cloned to https://github.com/eclipse/dirigible/issues/1478

Fixed with https://github.com/eclipse/dirigible/pull/1480, will be available with the next released version of Eclipse Dirigible.


Running a program

Type: Bug
Running a program  on the terminal is faulty. Running a program doesnt work on the first runa and needs multiple calls until it works
VS Code version: Code 1.72.2 (d045a5eda657f4d7b676dedbfa7aab8207f8a075, 2022-10-12T22:15:18.074Z)
OS version: Windows_NT x64 10.0.19044
Modes:
Sandboxed: No

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
pythondataviewer:30285071
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vsclangdc:30486549
c4g48928:30535728
dsvsc012:30540252
azure-dev_surveyone:30548225
pyindex848cf:30577861
nodejswelcome1cf:30587006
fc301958:30595537
2e4cg342:30596373

/gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette).
Happy coding!

The problem is:
for example, I want to run a python program on code from the terminal using
"python3 testwordcloud.py".. The program prints output as soon as it is
run.. However, on  executing the command, it is not detected and I need to
run the command multiple times for the program to be invoked. In teh gif
attached you can see that the program runs on the 4th attempt. At times,
this has happened straight off for 20 times and I have been executing the
command without the output which works on the 21st time.
Kindly help fix this
Thank You
Regards
Shree Lakshmi R
On Fri, Oct 28, 2022 at 4:44 PM VSCode Triage Bot @.***>
wrote:

Thanks for reporting this issue! Unfortunately, it's hard for us to
understand what issue you're seeing. Please help us out by providing a
screen recording showing exactly what isn't working as expected. While we
can work with most standard formats, .gif files are preferred as they are
displayed inline on GitHub. You may find https://gifcap.dev helpful as a
browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling
screencast mode for the recording (Developer: Toggle Screencast Mode in
the command palette).
Happy coding!
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/164857#issuecomment-1294711152,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AF6YRTSME3BBV2O7RVCX7Z3WFOG7DANCNFSM6AAAAAARQZ6NDU
.
You are receiving this because you authored the thread.Message ID:
@.***>

GIFs attached to email replies get stripped by GitHub. Please visit the issue on the GH website and drag/drop or paste the image into a new comment.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


style: bump prettier and enforce its formatting

The prettier version we use is old and doesn't support import type. We've also been using eslint with the prettier plugin, but not prettier itself, so there's various formatting things that have slipped through that prettier doesn't like.
This bumps prettier (and unlocks its version), reformats everything (yarn prettier -w .), and adds an explicit prettier check to the lint step.

I didn't add or remove any rules; this just just:

bumps all the already-installed prettier package versions
run yarn prettier -w .
stuck explicit prettier runs into the lint commands in package.json

I didn't add or remove any rules; this just:

bumps all the already-installed prettier package versions
run yarn prettier -w .
stuck explicit prettier runs into the lint commands in package.json

this should be configured as a plugin for eslint it integrates with IDE's in one step and becomes a one step build failure.

also, you'll need to coordinate with anyone that has branches in progress that aren't already open as PRs, as this is the worlds nastiest merge conflict to fix.


ActiveMQ configuration: avoid port 61617 to force SSL

Contact Details
No response
Version
8.x
On which operating system(s) are you experiencing the issue?
Windows
Using which broker(s) did you encounter the issue?
ActiveMQ
What are the steps required to reproduce the issue?
1. Configure ActiveMqHostConfigurator with 61617 as port of the address

What is the expected behavior?
SSL is not forced upon this port. We would need some way to use the 61617 port and to specify we don't want to use SSL.
What actually happened?
SSL is automatically added when using the 61617 port:
https://github.com/MassTransit/MassTransit/blob/8c34d9939adb00a6b608ad0b22b89fb4e6c9ccee/src/Transports/MassTransit.ActiveMqTransport/ActiveMqTransport/Configuration/ActiveMqHostConfigurator.cs#L16-L17
Related log output, including any exceptions

Link to repository that demonstrates/reproduces the issue
No response

I understand that it's about convention but we have a client that has an environment having ActiveMQ with the port 61617 without SSL configured and we can't modify it.
As a workaround we used reflection but we would like something more solid, do you have any idea?
public static void UnsafeDisableSslWithReflection(this IActiveMqBusFactoryConfigurator configurator)
{
    var fieldInfo = configurator.GetType().GetField("_hostConfiguration", BindingFlags.Instance | BindingFlags.NonPublic)!;
    var hostConfiguration = (ActiveMqHostConfiguration)fieldInfo.GetValue(configurator)!;
    ((ConfigurationHostSettings)hostConfiguration.Settings).UseSsl = false;
}


Hi! The peer ID is PO and the user agent is porla.


Regular expression after /* comment */ is not highlighted in TypeScript

Importing https://github.com/Microsoft/TypeScript-Sublime-Plugin/issues/391
Issue example:
let regex = /**/ /foo/;

VSCode Version: 1.32.2
OS Version: MacOSX 10.12.6
the problem still exists after @sheetalkamat closed #717 in 06d49b5 on Feb 7


There are two sources of information for MAX32625PICO

Here is the other link to the other page. It will be good to consolidate this into one source of truth https://github.com/MaximIntegratedMicros/max32625pico-firmware-images

Thanks for highlight it,
It is done.


cannot import name 'version' from 'keras'

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with the
documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go
here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script
provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue
happens on a mobile device:
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Python version:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with:
python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

tf.version.GIT_VERSION: v2.8.0-rc1-32-g3f878cff5b6
tf.version.VERSION: 2.8.0
TF installed from binary
OS: win11
Python: 3.7.5
CUDA: cuda_11.6.2_511.65_windows.exe
cuDNN: cudnn-windows-x86_64-<IP_ADDRESS>_cuda11.6-archive.zip
GPU: MSI Nvidia Geforce RTX 3060, 12 GB
These imports worked on TF 2.3.4, but give "cannot import name 'version' from 'keras'" on TF 2.8:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.preprocessing.image import img_to_array
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras.layers import Activation
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dropout
from tensorflow.keras.layers import Dense
from tensorflow.keras import backend as K

@lmocsi,
I don't see any issue in your imports and I was able to execute the code successfully using TF2.8.
Can you please run the code snippet below on your machine and let me know the output?
import tensorflow as tf
print (tf.__version__)
from tensorflow import keras
print (keras.__version__)

According to tested build configurations the compatible versions for TF2.8 are as shown below

To investigate further, Can you please let us know the steps that you have followed to install Keras/ Tensorflow? Thank you.

I had Keras / Tensorflow installed for a while now, I always used 'pip install --upgrade xxx' to keep them up-to-date.
The result of the above code are:
2.8.0
Traceback (most recent call last):
File "a.py", line 4, in
print (keras.version)
File "C:\Program Files\Python37\lib\site-packages\tensorflow\python\util\lazy_loader.py", line 58, in getattr
module = self._load()
File "C:\Program Files\Python37\lib\site-packages\tensorflow\python\util\lazy_loader.py", line 41, in load
module = importlib.import_module(self.name)
File "C:\Program Files\Python37\lib\importlib_init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 953, in _find_and_load_unlocked
File "", line 219, in _call_with_frames_removed
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 953, in _find_and_load_unlocked
File "", line 219, in _call_with_frames_removed
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 953, in _find_and_load_unlocked
File "", line 219, in _call_with_frames_removed
File "", line 1006, in gcd_import
File "", line 983, in find_and_load
File "", line 967, in find_and_load_unlocked
File "", line 677, in load_unlocked
File "", line 728, in exec_module
File "", line 219, in call_with_frames_removed
File "C:\Program Files\Python37\lib\site-packages\keras_init.py", line 25, in
from keras import models
File "C:\Program Files\Python37\lib\site-packages\keras\models.py", line 20, in
from keras import metrics as metrics_module
File "C:\Program Files\Python37\lib\site-packages\keras\metrics.py", line 24, in
from keras import activations
File "C:\Program Files\Python37\lib\site-packages\keras\activations.py", line 20, in
from keras.layers import advanced_activations
File "C:\Program Files\Python37\lib\site-packages\keras\layers_init.py", line 23, in
from keras.engine.input_layer import Input
File "C:\Program Files\Python37\lib\site-packages\keras\engine\input_layer.py", line 21, in
from keras.engine import base_layer
File "C:\Program Files\Python37\lib\site-packages\keras\engine\base_layer.py", line 43, in
from keras.mixed_precision import loss_scale_optimizer
File "C:\Program Files\Python37\lib\site-packages\keras\mixed_precision\loss_scale_optimizer.py", line 18, in
from keras import optimizers
File "C:\Program Files\Python37\lib\site-packages\keras\optimizers_init.py", line 1, in
from tensorflow.keras.optimizers import *
File "C:\Program Files\Python37\lib\site-packages\keras\api_v2\keras_init.py", line 8, in
from keras import version
ImportError: cannot import name 'version' from 'keras' (C:\Program Files\Python37\lib\site-packages\keras_init.py)

@lmocsi,
It seems there was an issue in keras upgrade. Please can you uninstall both Tensorflow and Keras from your machine and install tensorflow only as shown below
!pip install tensorflow
After successful installation of Tensorflow, Please can you run below code snippet again and let us know your output?
import tensorflow as tf
print (tf.__version__)
from tensorflow import keras
print (keras.__version__)

Thank you.

2.13.0-rc1
AttributeError                            Traceback (most recent call last)
Cell In[29], line 4
2 print (tf.version)
3 from tensorflow import keras
----> 4 print (keras.version)
AttributeError: module 'tensorflow.keras' has no attribute 'version'

AttributeError: module 'tensorflow.keras' has no attribute 'version'

Still have this problem on 2024.

Problem solved for my case:
my issues were these two libraries:
from keras.models import Sequential
from keras.layers import Dense
problem solved, after changing to these:
from keras.api.models import Sequential
from keras.api.layers import Dense
please look back on your keras file, if you have multiple model and layers files in your keras folder then you should change it accordingly. My models and layers were inside keras.api.models, then it works for my case.
Hope this will help, thanks


Update opengraph metadata

Since the v2 website has been released, the dev hostname can now be replaced.

Thank you so much ❤


Error "Unrecognized line" when Using Specific Arguments in Functions.

Describe the bug
I am encountering a recurring problem when checking the code of my ft_cd function with the norminette tool. The tool returns an "Unrecognized line" error specifically on the prototype line of the function, when a second argument is used.
Erroneous code
#include "minishell.h"

void	change_directory(const char *path)
{
	if (chdir(path) != 0)
		print_error("cd: Error changing directory");
}

void	handle_home_directory(t_minishell *shell)
{
	t_envp *home_env;

	home_env = get_env_var("HOME", shell->l_envp);
	if (home_env == NULL || home_env->value == NULL)
		print_error("cd: HOME not set");
	else
		change_directory(home_env->value);
}

void	handle_oldpwd_directory(t_minishell *shell)
{
	t_envp *oldpwd_env;

	oldpwd_env = get_env_var("OLDPWD", shell->l_envp);
	if (oldpwd_env == NULL || oldpwd_env->value == NULL)
		print_error("cd: OLDPWD not set");
	else
	{
		printf("%s\n", oldpwd_env->value);
		change_directory(oldpwd_env->value);
	}
}

void	update_pwd_oldpwd(t_minishell *shell, char *old_dir)
{
	char	new_dir[MAX_PATH_LENGHT];
	if (getcwd(new_dir, sizeof(new_dir)) != NULL)
	{
		update_env_var("PWD", new_dir, shell->l_envp);
		update_env_var("OLDPWD", old_dir, shell->l_envp)
	}
}

void	ft_cd(char **args, t_minishell *shell)
{
	char old_dir[MAX_PATH_LENGHT];
    if (getcwd(old_dir, sizeof(old_dir)) == NULL)
	{
        print_error("cd: Error retrieving current directory");
        return ;
    }
	if (args[1] == NULL || args[1][0] == '\0')
		handle_home_directory(shell);
	else if (strcmp(args[1], "-") == 0)
		handle_oldpwd_directory(shell);
	else
		change_directory(args[1]);
	update_pwd_oldpwd(shell, old_dir);
}

Additional infos

OS: Ubuntu 22.04 LTS
python3 --version: Python 3.10.12
norminette -v: norminette 3.3.54

Additional context
The norminette is returning the following error:
ft_cd.c: Error!
Error: Unrecognized line (56, 28) while parsing line [<IDENTIFIER=t_minishell>, <SPACE>, <MULT>, <IDENTIFIER=shell>, <RPARENTHESIS>]

Line 56 corresponds to the prototype of the ft_cd function with two arguments: an array of strings char **args and a pointer to the t_minishell structure. The error occurs regardless of the order of the arguments.
Steps to reproduce:

write a function with the following prototype: void ft_cd(t_minishell *shell, char **args);
Run the norminette on the ft_cd file.

Attempted solution:

I rewrote the line manually to exclude the possibility of invisible characters.
I tested with different names for the arguments.
I reversed the order of the arguments, but the error persisted.
I temporarily removed the second argument, and norminette didn't show the error.

Request:
I would like to understand if this behavior is expected due to some specific rule of the standard or if it could be a bug in the norminette tool. Any clarification or suggestion on how to solve or work around this problem would be very helpful.
Thanks in advance!

Hello, @alessandracruz!
The weird behavior is because you forgot a semicolon at the end of line 40:
void	update_pwd_oldpwd(t_minishell *shell, char *old_dir)
{
	char	new_dir[MAX_PATH_LENGHT];
	if (getcwd(new_dir, sizeof(new_dir)) != NULL)
	{
		update_env_var("PWD", new_dir, shell->l_envp);
		update_env_var("OLDPWD", old_dir, shell->l_envp)  // Right here
	}
}

About your request, "it's not a bug, it's a feature", when norminette checks a line that is a function call, it will only stop when a semicolon, and, or or a comma appears. So in your case, when norminette sees the comma in the prototype of ft_cd, it recognizes it as the end of the function call at line 40.

Thank you very much for your attention and for quickly pointing out what the problem was. I still understand that forgetting a simple semicolon can lead to chaos!!! I was already very tired and it seems that we go blind looking for the error. I had already corrected it without knowing when I decided to run norminette with a flag that let me correct the rest and I ended up correcting the lack of semicolon without knowing that it was the lack of it that was causing the strange behavior. Thank you!


SonarPowerNoise

Adds SonarPowerNoise node  to generate fractional Brownian motion (fBm) noise. It  produces various types of noise including gaussian, pink, 2D brownian noise, and all intermediates. Beside alpha, additional parameters for band-pass filter, shape, and mixing make artistic uses more practical.
The readme contains a documentation sketch. It might be a bit too technical, I'll let you complete it and maybe cut some parts.

this is great! thank you very much for the contribution. i'll merge this now and improve the docs/add you to the credits section in the next couple days.


HistoryLocation Subclass Question

I was reading the code for addon/locations/router-scroll.js and I'm not totally sure if it is required any longer.
The two methods it overwrites are pushState and popState, but when reading ember's latest history_location implementation, it appears to essentially do the same. The exception being, the subclasses methods, do not set this._historyState.
If the reason for the subclass is to avoid setting _historyState then, i suppose it needs to remain. (Although a comment as to why, would be great). But if we don't need to avoid setting _historyState then we should likely just use the default history location object.

Agreed.  Can't believe this hasn't been removed!  Plan for removal in 2.0
https://github.com/dollarshaveclub/ember-router-scroll/pull/201


The future of syntax highlighting

As I hack on go-mode's fontification to support generics, I also am looking at other options.
To summarize how go-mode currently fontifies, it uses a combination of regexes and structural understanding of paren/bracket pairs. We make use of more advanced font-lock facilities such as function matchers and anchored matchers. These are relatively slow, but jit font lock mode does a really good job of only fontifying parts of the file that change, so performance is fine.
Tree-sitter is hot, but unfortunately also only has syntactic information, so does not help in ambiguous cases such as foo[bar](). It also may be more sensitive to syntax errors than go-mode's approach, but on the other hand is almost certainly faster. I think we should consider adopting tree sitter if/when it is part of core emacs, but before that the benefits don't seem that great. (It may have other benefits beyond syntax highlighting, though.)
The other option is LSP's semantic tokens. gopls does support semantic tokens and I was able to get it working with lsp-mode after fixing some things in gopls. In general it works, and of course it has full type information so all our ambiguity problems are solved. The fortification via lsp-mode is asynchronous, so it doesn't cause any lag, although that means it doesn't pop in immediately as you type. You can configure the idle delay before it fontifies. Setting it to 100ms gives a pretty good experience (although if you are working in a package that takes longer than 100ms to type check, the semantic tokens will be slower as well). One of the main problems is syntax errors. Without proper AST and type info, semantic tokens fall apart. To address this, I think we  would need better support for partial fontification where gopls and/or lsp-mode know to keep fontification around for parts of the file that can't currently be type checked. This may be easier said than done.
My general idea is to continue to maintain basic fontification in go-mode, but support optionally augmenting it with gopls semantic tokens to fill in the holes. Once that is working well, we can consider completely offloading syntax highlighting to gopls. Thoughts?

My opinions on the matter:
At its core, it's syntax highlighting. We've spent too much time and code on trying to guess type information. This never worked 100%, and generics make it worse. I'd be more than happy to limit go-mode's native support to actual syntax.
I'd also like to switch to tree-sitter once that's been in core for a couple releases. The core of our syntax highlighting is based on regular expressions, which is of course the wrong tool for Go. We have some custom parsing routines, which add complexity to our code and still aren't perfect. I was also planning on switching to tree-sitter for most custom movement commands. We'll of course have to see how tree-sitter handles invalid code, but from quick testing I've done, it seems to perform fine.
I'm fine with relying on LSP for adding type information to our highlighting. However, I wouldn't be fine with relying on LSP for all syntax highlighting. Having a noticeable delay between typing and any kind of syntax highlighting is IMO a no-go. Having a delay for type information, OTOH, is fine.
To summarize, my end-goal would be:

tree-sitter for syntax highlighting
LSP for semantic highlighting

In the interim, I would be fine with:

simplifying our syntax highlighting to remove the bits that pertain to type information
using LSP for semantic highlighting

Thanks for that. It sounds like our views mostly align. I suggest we do at least 4baab54c from my branch since that fixes existing fontification.
In the meantime I will mail some gopls fixes and work on getting its semantic token support out of experimental.

Note, I know next to nothing about semantic tokens in LSP, but the comment in https://github.com/golang/go/issues/45313#issuecomment-1087664169 suggests that it doesn't need type information, which is either wrong, or means semantic tokens are less powerful than we need them to be?

The existing implementation of semantic tokens in gopls uses type information when that is available. One might be able to get by solely using the ast, but the code would have to be rewritten. Or, by providing less information, which seems to defeat the point.

Thank you for the clarification.

As tree-sitter is merged into 29 that's the way to go forward


Readme typo

First line: The algorithm uses the "lefrmost largest match".

Fixed. Thanks! dcb54bb638d6701908024d4b7535822a01ebc938


When testing in videos, the results are dithering

在视频中测试时,结果抖动明显

@1996scarlet Hi,
Did you perform face detection first? The model is not designed to localize landmarks in the wild, you have to run face detector to crop faces.
The algorithm is designed to take temporal information, so the jittering effect exists on videos. You might implement some smoothing algorithm to smooth out this effect.

@protossw512 Hi,
Thanks for your reply!
Retinaface has been used for face detection in videos/
I'll try to add some smoothing algorithm

@1996scarlet Could you please share your test scripts?I will test with some smooth algorithms.

@flynnamy Try this:
# usage
from face_alignment import AlignmentorModel
fa = AlignmentorModel(stack=4)
landmarks = fa.get_landmarks(frame, box)

And the face_alignment.py code:
# coding: utf-8
import os
import torch
import numpy as np
import cv2
import time
import collections
import models

models_urls = {
    'WFLW_4HG': './weights/WFLW_4HG.pth',
}

class AlignmentorModel:
    def __init__(self, device='cuda', stack=4, verbose=False):
        self.device = device
        self.verbose = verbose
        self.stack_num = stack

        if 'cuda' in device:
            torch.backends.cudnn.benchmark = True

        print(f'Using model 2DFAN (Hourglass stack {self.stack_num})')

        PRETRAINED_WEIGHTS = models_urls['WFLW_4HG']

        self.net = models.FAN(self.stack_num)

        if PRETRAINED_WEIGHTS != "None":
            checkpoint = torch.load(PRETRAINED_WEIGHTS)
            pretrained_weights = checkpoint['state_dict']
            model_weights = self.net.state_dict()
            pretrained_weights = {k: v for k, v in pretrained_weights.items()
                                  if k in model_weights}
            model_weights.update(pretrained_weights)
            self.net.load_state_dict(model_weights)

        # torch.save(self.net, './xkls.pt')
        # exit(0)
        self.net.to(device)
        self.net.eval()
        torch.set_grad_enabled(False)

        self.pre_landmarks = None

    def crop_face(self, frame, det):
        img = frame[int(det[1]):int(det[3]), int(det[0]):int(det[2]), :]
        H, W, _ = img.shape
        offset = W / 64.0, H / 64.0, det[0], det[1]
        # offset = W / 128.0, H / 128.0, det[0], det[1]
        return img, offset

    def get_landmarks(self, image, det=None):
        """Predict the landmarks for each face present in the image.

        This function predicts a set of 68 2D or 3D images, one for each image present.
        If detect_faces is None the method will also run a face detector.

         Arguments:
            image_or_path {numpy.array} -- The input image or path to it.

        Keyword Arguments:
            detected_faces {list of numpy.array} -- list of bounding boxes, one for each face found
            in the image (default: {None})
        """

        img, offset = self.crop_face(image, det)
        cropped = cv2.resize(img, (256, 256))[..., ::-1]
        inp = cropped.copy()
        inp = torch.from_numpy(inp.transpose((2, 0, 1))).float()
        inp = inp.to(self.device)
        inp.div_(255.0).unsqueeze_(0)

        # st = time.perf_counter()
        outputs, boundary_channels = self.net(inp)
        out = outputs[-1][:, :-1, :, :]
        heatmaps = out.detach().cpu().numpy()
        # print(time.perf_counter() - st)

        pred = self._calculate_points(heatmaps).reshape(-1, 2)

        pred *= offset[:2]
        pred += offset[-2:]

        return pred

    def _calculate_points(self, heatmaps, center=None, scale=None):
        """Obtain (x,y) coordinates given a set of N heatmaps. If the center
        and the scale is provided the function will return the points also in
        the original coordinate frame.

        Arguments:
            hm {torch.tensor} -- the predicted heatmaps, of shape [B, N, H, W]

        Keyword Arguments:
            center {torch.tensor} -- the center of the bounding box (default: {None})
            scale {float} -- face scale (default: {None})
        """

        B, N, H, W = heatmaps.shape
        HW = H * W
        BN_range = np.arange(B * N)

        heatline = heatmaps.reshape(B, N, HW)
        indexes = np.argmax(heatline, axis=2)

        preds = np.stack((indexes % W, indexes // W), axis=2)
        preds = preds.astype(np.float, copy=False)

        inr = indexes.ravel()

        heatline = heatline.reshape(B*N, HW)
        x_up = heatline[BN_range, inr + 1]
        x_down = heatline[BN_range, inr - 1]
        y_up = heatline[BN_range, inr + W]
        y_down = heatline[BN_range, inr - W]

        think_diff = np.sign(np.stack((x_up - x_down, y_up - y_down), axis=1))
        think_diff *= .25

        preds += think_diff.reshape(B, N, 2)
        preds += .5

        return preds

@flynnamy @1996scarlet did you manage to get smooth landmarks on video?
Would it be possible to share your code?
Thanks!


Allow to customize the application icon per workspace

I started using VS Code at work and because I often work on multiple projects with different languages/settings/extensions I always end up with multiple open windows. VSCode should provide a way to differentiate between them by allowing per-workspace setting for the application icon, ideally with the options of choosing between a set of stock icons or using one from the workspace directly.
This is a dup of #99415; it's been over a year and a lot has changed such as remote ssh capability and I think we should revisit this.

Here is my solution https://github.com/rtllxndr/update-icons/


Implement a Websocket backpressure mechanism

See https://github.com/rabbitmq/rabbitmq-web-stomp/issues/40 for details.
Not sure what form it should take exactly but pretty sure it should be something the handler can control. Cowboy should only worry about the handler telling it to read, or not read, from the socket. So having a command to stop/resume reading would be enough.

Websocket doesn't have flow control which means that such a feature would prevent pings from being responded to. This needs to be clearly explained in the docs.

I have added {active, boolean()} to my local copy. It will be pushed soon but will remain undocumented until Cowboy 2.6.


Hotkey doesn't seem to work.

I can't seem to get this to work. I see options for it, but nothing I try gets it to move and copy the DMs screen.

Oh, I wasn't using it correctly then. Thank you for helping me.


(1000) Correct 4 digit Digital Marketplace Service IDs

Parse the original Excel uploads, extract the correct "Digital Marketplace Service IDs" and save them to a CSV ready to run as part of a data migration.
NB: This is a draft PR as I don't actually want to add the 'Roo' Excel parsing gems to the app, and will instead create a separate PR with only the final generated migration.

LGTM! Thanks for doing this.

Closing, as this has served its purpose - data migration itself was extracted to #370.


[dubbo-common] typo: config-centre

[x] I have searched the issues of this repository and believe that this is not a duplicate.
[x] I have checked the FAQ of this repository and believe that this is not a duplicate.

Environment

Dubbo version: v2.7.3
Java version: 1.8

Actual Result
https://github.com/apache/dubbo/blob/master/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java#L77
logger.warn("You specified the config centre, but there's not even one single config item in it.");

Expected Result
logger.warn("You specified the config center, but there's not even one single config item in it.");

Although centre has a simmilar meaning with center, we usually call a config center config center but not config centre. so consider changing it to config center?

You can pull a request for it :D


replace deprecated old types

Fixed chip types are deprecated, replace them with new customizable types.
e.g. use Weight<WeightType> instead of weight_t.

solved with [commit]


[ISSUE #7201] Remove the DefaultMessageStore.class dependency in TransientStorePool

….class

Which Issue(s) This PR Fixes

Fixes #7201
Brief Description

How Did You Test This Change?

Codecov Report

Merging #7202 (362c9d1) into develop (5a3de92) will increase coverage by 0.00%.
Report is 1 commits behind head on develop.
The diff coverage is 24.19%.

@@            Coverage Diff             @@
##             develop    #7202   +/-   ##
==========================================
  Coverage      42.47%   42.48%
- Complexity      9352     9357    +5
==========================================
  Files           1149     1149
  Lines          82042    82059   +17
  Branches       10699    10699
==========================================
+ Hits           34847    34862   +15
+ Misses         42837    42829    -8
- Partials        4358     4368   +10

Files Changed
Coverage Δ

.../rocketmq/broker/metrics/BrokerMetricsManager.java
11.27% <0.00%> (-0.62%)
:arrow_down:

...che/rocketmq/broker/metrics/PopMetricsManager.java
28.97% <0.00%> (+0.26%)
:arrow_up:

...q/controller/metrics/ControllerMetricsManager.java
19.37% <0.00%> (ø)

...ketmq/remoting/metrics/RemotingMetricsManager.java
11.11% <0.00%> (+0.30%)
:arrow_up:

...ache/rocketmq/store/AllocateMappedFileService.java
39.28% <0.00%> (ø)

...n/java/org/apache/rocketmq/store/MessageStore.java
0.00% <ø> (ø)

...etmq/store/metrics/DefaultStoreMetricsManager.java
18.01% <ø> (ø)

...ketmq/store/plugin/AbstractPluginMessageStore.java
0.00% <ø> (ø)

.../java/org/apache/rocketmq/common/BrokerConfig.java
27.23% <25.00%> (-0.02%)
:arrow_down:

...org/apache/rocketmq/store/DefaultMessageStore.java
46.75% <25.00%> (-0.19%)
:arrow_down:

... and 3 more

... and 26 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Error: listen EADDRINUSE: address already in use :::4000

Basically my port is in use, it should however show an option to open another port just like create-react-app does it :)

Which command is this? This very likely looks like a app level code.  Here's my code.
It's just a GraphQL API boilerplate (without auth) but the PORT is only specified in console.log here

Found the solution on https://github.com/prisma/graphql-yoga.
I changed the code to change the default PORT -
const opts = {
  port: 4001,
}

server.start(opts, ({ port }) =>
  console.log(
    `🚀 Server ready at: http://localhost:${port}\n⭐ See sample queries: http://pris.ly/e/js/graphql#6-using-the-graphql-api`,
  ),
)

This can be added to the GraphQL example as I think beta testers are running multiple applications at the same time.


Update BuildingStatus API Subscription

Time tracking: https://www.speedchecker.com/broadband-data/measurement-method.html
This is complete when the:

[ ] subscription to the BuildingStatus API limited to authenticated users

Dupe of #1613


react-intl messages defined incorrectly?

I stumbled upon this issue after having run the project code through the TypeScript compiler.
In any file that uses the defineMessages function of the react-intl library you will see something like this:
export default defineMessages({
  copy: 'Copy Request',
  invoice_copied_notification_title: 'Payment Request copied',
  invoice_copied_notification_description: 'Payment Request has been copied to your clipboard',
  pay_req: 'Payment Request',
  memo: 'Memo',
  request: 'Request',
  save: 'Save as image',
  not_paid: 'Not Paid',
  paid: 'Paid'
})

However, the type definitions and the documentation for react-intl v2.7.2 (used in this project) show this API: https://github.com/yahoo/react-intl/wiki/API#definemessages
It seems to me that the data is not being passed into defineMessages in the shape it expects it?

Hey @bolatovumar .
This is actually handled by a babel plugin react-intl-auto. See https://github.com/LN-Zap/zap-desktop/blob/master/babel.config.js#L17-L23

@bolatovumar Also worth noting - yarn extract-messages will extract all translation strings from the source code and upsert into the files in /app/translations
See https://github.com/LN-Zap/zap-desktop/blob/master/package.json#L15


Decoder crash due to invalid array indice read found during fuzzing tests

Hello,
I was running fuzzing tests on the decoder and found following issue:

amend CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a0226d5..7fe656c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,6 +7,9 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_CXX_EXTENSIONS OFF)
 set(CMAKE_SUPPRESS_REGENERATION true)

+add_compile_options(-fsanitize=address)
+add_link_options(-fsanitize=address)
+
 # Add Library Target
 add_library (
         ia_mpeghd_lib

and run following tests after build (1.txt is a mhas file)

./ia_mpeghd_testbench -ifile:./1.txt -ofile:./1.wav
crashes because c = -1 in /impeghd_hoa_render_mtrx.c:191
beta = ia_hoa_beta_value_table[c];

Hi @miartad,
Thanks for bringing this up!
We too have come across this issue during our fuzzer testing. We will be uploading fix for this issue along with other issues seen at our end soon.
We will keep this thread open till then.
Appreciate your efforts for carrying out fuzzer runs on our workspace!

Addressed in #41.
Thanks!

Hello @miartad,
I was wondering if you got a chance to validate the fix pushed for this issue.
Thanks!

Hi @SakethSathuvalli
I plan to do that this week, thank you for fixing the reported issues!

hi @SakethSathuvalli
I checked against our crash logs, 6/8 fuzzer crash logs were fixed, but 2 still remain crashing, I can provide the example files that cause crashes later

Hi @miartad,
Are the 2 crashes happening with the same array or a different one ?
If different I suggest We close this issue and report the two crashes in a different thread/issue.
Thanks again for bringing up fuzzer issues !

Hi @SakethSathuvalli
here are some more sample files that will produce crashes in unique places in code:
crash-3.txt
crash-2.txt
crash-1.txt
I could create a separate issue, as Im not sure whether these crashes are related...

Hi @SakethSathuvalli
here are some more sample files that will produce crashes in unique places in code: crash-2.txt crash-1.txt
I could create a separate issue, as Im not sure whether these crashes are related...

If the crash locations are different than the ones mentioned in this issue, I recommend You to create a new issue.
Meanwhile we will check the new crashes and let us know our feedback.
Thanks!

thanks, I will create separate issue and we can close this one I believe.


[Bug]: Unable to install additional components

Describe the bug
I'm using shadcn-vue with Nuxt, my components.json is the following
{
  "$schema": "https://shadcn-vue.com/schema.json",
  "style": "default",
  "typescript": true,
  "tailwind": {
    "config": "tailwind2.config.js",
    "css": "assets/css/tailwind.css",
    "baseColor": "slate",
    "cssVariables": false
  },
  "framework": "nuxt",
  "aliases": {
    "components": "@/components",
    "utils": "@/lib/utils"
  }
}

And when I'm trying to add a new component with
pnpm dlx shadcn-vue@latest add tabs

I get the following

This used to work yesterday and I was able to add Button, Textarea, Input and many more without issues. There were no changes to the components.json file
System Info
System:
    OS: macOS 13.5
    CPU: (10) arm64 Apple M1 Max
    Memory: 197.50 MB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.19.0 - /opt/local/bin/node
    Yarn: 1.22.19 - /opt/local/bin/yarn
    npm: 8.19.4 - /opt/local/bin/npm
    pnpm: 8.3.1 - ~/Library/pnpm/pnpm
    bun: 1.0.0 - /usr/local/bin/bun
  Browsers:
    Chrome: 122.0.6261.94
    Safari: 16.6
  npmPackages:
    @vueuse/core: ^10.9.0 => 10.9.0
    nuxt: ^3.10.2 => 3.10.2
    radix-vue: ^1.4.9 => 1.4.9
    shadcn-nuxt: ^0.9.0 => 0.9.0
    vue: ^3.4.19 => 3.4.19

Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

Yes, I also encountered this problem

Yes I think it's related to c12 for now please copy and pastes components

Yup, i'm facing the same problem too

Yes, I'm facing this problem too.


npm electron-packager build to /lib64 location

Issue description
i build we-chat project with npm:
https://github.com/geeeeeeeeek/electronic-wechat
when i build the binary execute using: npm run build:linux
it produce the binary file linked to /lib64/ld-linux-x86-64.so.2
Steps to reproduce
git clone https://github.com/geeeeeeeeek/electronic-wechat
npm run build:linux
Technical details

system: "x86_64-linux"
host os: Linux 4.14.52, NixOS, 18.03.132803.2f06e04b74e (Impala)

I believe we are not patching npm in any way, so you will have to use something like node2nix to make a nodejs application behave.

i switch to node2nix, it just build the result to /nix/store for linking,
but it produce still the /lib64  executable binary .
for this project: https://github.com/geeeeeeeeek/electronic-wechat,
it use scripts/build.sh to produce executable binary, that  turn over to electron-packager to built binary.
i notice nixpkgs contains "electron", but not electron-packager.

I'm not familiar with electron packaging but nix-tour seems to be an electron application so maybe have a look at that for inspiration?

thanks, it works now.

If you have the packaging sorted out, please ping me in the PR so we can get it added to nixpkgs.