Document improvement: Alert user to use confidential.WithX5C() option

Some microsoft endpoints require the x5c option to be set. However, almost nobody knows this knowledge, and it will cost the engineer several hours to hunting this hidden issue.
After wasting 4 hours on bug-hunting, I think it's very very important to add these information into our document, to help other users avoid this issue.
I'm not sure about the best method to improve the doc. This is some proposal, and welcome for suggestion.

I think it's also a good idea to add an "FAQ" section in our documents.
The error message looks like this:
panic: [Error] on : FromAssertion(): http call(https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token)(POST) error: reply status code was 401:
{"error":"invalid_client","error_description":"AADSTS700027: The certificate with identifier used to sign the client assertion is not registered on application. [Reason - The key was not found., Thumbprint of key used by client: 'AB10DE3FD194EAF748EDBDF3B89AF37D4BC0DFE4', Please visit the Azure Portal, Graph Explorer or directly use MS Graph to see configured keys for app Id 'ed857452-e380-4621-a248-a2764e8cb70c'. Review the documentation at https://docs.microsoft.com/en-us/graph/deployments to determine the corresponding service endpoint and https://docs.microsoft.com/en-us/graph/api/application-get?view=graph-rest-1.0&tabs=http to build a query request URL, such as 'https://graph.microsoft.com/beta/applications/ed857452-e380-4621-a248-a2764e8cb70c']. Alternatively, SNI may be configured on the app. Please ensure that client assertion is being sent with the x5c claim in the JWT header using MSAL's WithSendX5C() method so that Azure Active Directory can validate the certificate being used.\r\nTrace ID: 0c963619-0123-4e6b-bda3-ebea58d92b00\r\nCorrelation ID: 4412981f-c72a-4137-8a98-66e8010fcbf4\r\nTimestamp: 2022-07-27 08:21:44Z","error_codes":[700027],"timestamp":"2022-07-27 08:21:44Z","trace_id":"0c963619-0123-4e6b-bda3-ebea58d92b00","correlation_id":"4412981f-c72a-4137-8a98-66e8010fcbf4","error_uri":"https://login.microsoftonline.com/error?code=700027"}

Then we can add some document like this:
## FAQ

### invalid_client: The certificate with identifier used to sign the client assertion is not registered on application. The key was not found.

Solution is adding confidential.WithX5C() to your confidential.New() function call.

@recolic - which endpoints require this? Afaik only Microsoft 1p apps can use the x5c feature, which simply means that the cert verification will be done based on subject name and issuer instead of thumbprint. 3p apps have to rely on thumbprint now. There are not plans to make the x5c auth available to 3p.
We are investing more into certificatless authentication, for example via managed identity, currently available via Azure SDK https://github.com/Azure/azure-sdk-for-go

Oh no the whole repository disappeared.
That's why I hate developing with microsoft toolchain. Good luck.

Recolic Keghart
@.***
Mail from China goes: @.***
On 2022-10-10 18:41, Bogdan Gavril wrote:

@recolic [1] - which endpoints require this? Afaik only Microsoft 1p
apps can use the x5c feature, which simply means that the cert
verification will be done based on subject name and issuer instead of
thumbprint. 3p apps have to rely on thumbprint now. There are not
plans to make the x5c auth available to 3p.
We are investing more into certificatless authentication, for example
via managed identity, currently available via Azure SDK
https://github.com/Azure/azure-sdk-for-go
--
Reply to this email directly, view it on GitHub [2], or unsubscribe
[3].
You are receiving this because you were mentioned.Message ID:
@.***>
Links:
[1] https://github.com/recolic
[2]
https://github.com/AzureAD/microsoft-authentication-library-for-go/pull/332#issuecomment-1273120774
[3]
https://github.com/notifications/unsubscribe-auth/AEVTVEBUHUUB2JYK5ASQU4DWCPXFZANCNFSM54YVKUOA

Which repository disappeared? https://github.com/AzureAD/microsoft-authentication-library-for-go is still here.

oh the "view it on github" link in the email is broken (it's redirecting me to the azure-sdk repo)
maybe something just broken. never mind
Oct 11, 2022 01:40:51 Bogdan Gavril @.***>:

Which repository disappeared? https://github.com/AzureAD/microsoft-authentication-library-for-go is still here.
—
Reply to this email directly, view it on GitHub[https://github.com/AzureAD/microsoft-authentication-library-for-go/pull/332#issuecomment-1274320022], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AEVTVECTIATOAL4JYCMEXITWCURYXANCNFSM54YVKUOA].
You are receiving this because you were mentioned.[Tracking image][https://github.com/notifications/beacon/AEVTVEBWBPNSQJR3RLOCW3DWCURYXA5CNFSM54YVKUOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJP2JJFQ.gif]


TestScheduler seems to use bogus values for frameTimeFactor

RxJS version:
5.2.0
The value frameTimeFactor seems to be a static on VirtualTimeScheduler and used in some places in TestScheduler.
In some places its  used as a static, TestScheduler.ts:35
    return indexOf * TestScheduler.frameTimeFactor;

But in others its used on this when there is no `this:
TestScheduler.ts:149
      const frame = i * this.frameTimeFactor;

TestScheduler.ts:199
    const frameOffset = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);

TestScheduler.ts:212
      const frame = i * this.frameTimeFactor + frameOffset;

Changing this.frameTimeFactor to TestScheduler.frameTimeFactor seems to fully allow for adjusting the resolution of time intervals. I believe there is a issue to that as part of testing improvements, but this is an easy fix standalone.

I agree with this request.   In order to fully control the time factors and max frames, I need to either ensure all time is overridable to 10ms increments or extend VirtualTimeScheduler myself and not use TestScheduler for testing.   I have retry logic that waits several seconds that I'd like to test without injecting new delays into the source code.

this.frameTimeFactor is the same as TestScheduler.frameTimeFactor
class TestScheduler {
    static frameTimeFactor = 1;
    static kickDog() {
        return this.frameTimeFactor;
    }
}

// compiles to

var TestScheduler = (function () {
    function TestScheduler() {
    }
    TestScheduler.kickDog = function () {
        return this.frameTimeFactor;
    };
    return TestScheduler;
}());
TestScheduler.frameTimeFactor = 1;

In TS and JS, classes are objects themselves (not just the instances of those classes) so using when calling a function, this will refer to the object in which the function was called on.
TestScheduler.kickDog() is the same as TestScheduler.kickDog.call(TestScheduler), so TestScheduler is the context, used as this.

Are you actually seeing cases where this.frameTimeFactor is erroring out with Cannot read property 'frameTimeFactor' of undefined?

You might also like https://www.npmjs.com/package/@kwonoj/rxjs-testscheduler-compat which was made by one of the core team members to experiment with bringing a similar api as v4 back to v5

Regarding @CrazyBS comment about fully controlling frameTimeFactor, I'd also like to be able do this.
Say I have a stream with .throttleTime() applied, which throttles a provided input stream so that it emits only every 20 seconds (the 20s duration is arbitrary, and is provided externally).
I'd like to test it with a marble diagram like the following, where each dash represents 5000ms instead of 10ms:
INPUT:  -a-b-c-d-
OUTPUT: -a---c----
I feel like this would be possible if I could override frameTimeFactor to equal 5000, on a TestSchedular instance basis, but because it is static I can not.
Does this make sense as a feature request, or am I missing an easier way to do this?

https://github.com/ReactiveX/rxjs/issues/3231 and https://github.com/ReactiveX/rxjs/pull/3314 tracking this.

@kwonoj fantastic, thanks!

This is resolved with TestScheduler "run mode". https://rxjs.dev/guide/testing/marble-testing


feat(data): isMALAccountLinked data function

What feature does this satisfy?
Describe the feature

[ ] Returns true or false if the current user has linked their OtakuOracle account with MAL.

Additional context
Recommended/suggested endpoints (please modify as you see fit when working on the issue):

N/A

Blocked by:

N/A

We don't need this as the session stores this.


Automated cherry pick of #3200: huawei & aws bugfix

Cherry pick of #3200 on release/2.10.0.
#3200: huawei & aws bugfix

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@87581f8). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #3204   +/-   ##
================================================
  Coverage                  ?   7.47%
================================================
  Files                     ?     414
  Lines                     ?   66197
  Branches                  ?       0
================================================
  Hits                      ?    4946
  Misses                    ?   60828
  Partials                  ?     423

Flag
Coverage Δ

#aFlag
7.47% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/hostdrivers.go
18.18% <ø> (ø)

pkg/compute/models/disks.go
0.72% <0%> (ø)

pkg/util/aws/vpc.go
0% <0%> (ø)

pkg/compute/models/guests.go
0.65% <0%> (ø)

Continue to review full report at Codecov.

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

/lgtm

/approve


[EH] fixes + changelog

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-eventhub

/azp run python - eventhub - tests

swathi is taking over


Completing tests for mapGameArea and ConfigLoader

Description
Feature: #469
Tests need to be written in alignment with the Config Test Plan and MapGameArea Test Plan.
Dependencies
List any tasks on which this ticket relies. If there is already an existing ticket, reference it using #xx. If a task needs to be implemented, and the issue does not already exist, make a new ticket and leave it unassigned for someone else to take on. Ensure other team members are aware of the issue.

None Currently

Milestones
List of steps that need to be completed for this task.

[x] Config Loader tests (Oct. 13)
[ ] MapGameArea tests (For entities made by ship team) (Oct. 13)

Completion Deadline: Oct. 13
Documentation

Main description of feature
JavaDoc
...

Member

Name (GitHub Username) (Slack Handle)
e.g. Richard (@AppleByter) (Richard Thomas)
Isaac (@Minirobbo)

@McArthur-Alford Are you able to check off when you complete the remained of the structure configs :)


Update RayCast class ref

Add descriptions to member variables
Add examples
Minor grammar/wording

Good work @cbscribe - Thank you.

Please squash commits together.

Squashed commits


Chain Stats - failure: 500 Invalid JSON response

Hi i deployed cp-web on local and connected to IBM bluemix. Chaincode deployed successfully but i am getting following error sometimes due to which node.js application crashes.
[ibc-js] Chain Stats - failure: 500 Invalid JSON response:

302 Found

Found
The document has moved here.

Hey, @kamraanki!
When do you see this bug?  Is this occurring on a fresh service instance, or a network that has been up for a while?

Hey @masterDev1985  This was occurring on a fresh service instance.

Typically, we see this error when a network has just been created and we are still configuring the routing to access the peer.  If the network had just been created in the past 5 minutes, then I would recommend waiting and trying again.  If the issue persists, then create a new network and try again.


Implement interpolateOutOfBoundsScroll to make dragging out of bounds function correctly

BoardListView and BoardView interpolateOutOfBoundsScroll

This isn't that important, works pretty much perfect with the 1500 number so this is basically done


Update client3:circe, client3:core to 3.10.1

About this PR
📦 Updates

com.softwaremill.sttp.client3:circe
com.softwaremill.sttp.client3:core

from 3.8.16 to 3.10.1
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.sttp.client3" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.softwaremill.sttp.client3" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #269.


Accent color change

I love the heck out of this theme but always end up going back to ernie's modern UI (much more complicated overhaul) because I need to change the accent color to match my sheets/game :) A simple accent color picker would be amazing! (like for button selected borders, the little line under the active tab, scrollbars, links.)

Hi,
Great idea, this is implemented with: 1.6.0
Couple notes:

Won't change too much regarding some components such as links, because those are often tied to the system in use (color wise). I try to keep this module as system agnostic as possible.
Keep in mind that colors should remain unobtrusive. Bright colors might defeat the purpose of this module.

AHHH thank you it looks amazing!


feat: Assign default value to fields and args of type enum with only one value (box/box-codegen#465)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

49 of 69 (71.01%)  changed or added relevant lines in 9 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.3%) to 89.421%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

box_sdk_gen/managers/classifications.py
2
4
50.0%

box_sdk_gen/schemas.py
38
56
67.86%

Files with Coverage Reduction
New Missed Lines
%

box_sdk_gen/schemas.py
1
85.47%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
8461

Relevant Lines:
9462

💛  - Coveralls


Supports viewing raw traces via GET /api/v1/trace/:id?raw

When troubleshooting instrumentation, we sometimes need to hop to the
database to see what the collector stored (which is closer to what the
instrumentation sent).
In some cases, we are hunting down "clock skew" problems, and sometimes
that's a red herring. Some times we are looking to see if applications
are sending the same span multiple times. The reason we have to go to
the database is we can't quite tell if query-time adjustment logic is
helping or hurting.
This introduces a new query flag "raw" to the get trace endpoint. When
specified, no query time adjustments are made after data is returned
from the backend.

cc @yurishkuro who requested this and a few others I think might find this useful (instrumentation-peeps): @marcingrzejszczak @dsyer @kristofa @jcarres-mdsol @prat0318

Incidentally, this came in handy troubleshooting a duration issue with @fedj today. By running the raw query, we were able to isolate input data that shows there's a duration bug!

LGTM
Thanks for putting this in!  It will be very useful during our instrumentation work.
Hint: the new trace image on zipkin.io is actually partially broken, if you pay attention - the root (local) span is not shown, so the first span does not encompass the whole trace.  I think with ^^^ change I can dig down easier why that happens (I'm pretty sure adjusters drop it for some reason).

Are you sure ?raw is the best format? How about ?clock_skew=false?

from my perspective, I wanted the "raw" as in "no adjustments", which includes not only clock skew, but all other adjustments that can potentially drop or alter the spans recorded in the storage.

Are you sure ?raw is the best format? How about ?clock_skew=false?

yeah, we used to have clock_skew, but the thing is that there are several
adjustments. For example, there's a current bug with choosing the correct
duration while merging spans at query time.
Yuri convinced me pretty quickly that "raw" is best, basically don't
manipulate the data at query time when this flag is present, regardless of
whether this is merging, correcting skew, filling timestamps, etc.


AND/OR mode for @Pattern constraint

Fully backwards compatible.
Allows us to to write awesome stuff like:
// subject needs to have both permissions
@Pattern(value = { "curator.museum.insects", "killer.undead.zombie" }, mode = AND)

// subject needs to have one of these permissions
@Pattern(value = { "curator.museum.insects", "killer.undead.zombie" }, mode = OR)

Together with the deadbolt.java.constraint-mode setting this is really useful. E.g. you could set deadbolt.java.constraint-mode = AND, annotate the controller with @Restrict(...) to only allow certain roles and on the method method you can then require that this role has x or y permission to access that action method. Nice.

Wouldn't be a problem if somebody was already using ConstraintMode from here: https://github.com/schaloner/deadbolt-2-java/pull/87 ?

That's ok, they are two different things. One is for global mode and one for the Pattern. Unfortunately we can't re-use because they have different values.


Spotify playlist not fully loading

What version of Music Assistant has the issue?
2.1.0.b1
What version of the Home Assistant Integration have you got installed?
2024.5.1
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
I have a playlist that has 620 tracks on spotify but only 43 load in MA. Things I have tried:

removing a song to see if it gets replaced with another (it does not)
removing and adding the Spotify provider
removing tracks that the provider said could not be found
shared the playlist with another user, copied it so it would be their own playlist - same issue, same 43 tracks show in MA

Link to the offending playlist: Island Music
How to reproduce
Since I tried this with another account you should be able to try to add the above linked playlist to your Spotify, then sync MA. The Spotify list has 620 tracks.
Music Providers
Spotify
Player Providers
DLNA
Full log output
MA-051824.txt
Additional information
No response
What version of Home Assistant Core are your running
2024.5.5
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Generic x86-64 (e.g. Intel NUC)

Same happens with "filesystem provider". Only the first 49 songs will be loaded

I was able to get the Spotify playlist in question to fully load after removing songs that Spotify must have lost the license(s) to. This was similar to a problem I saw with Tidal playlists a few releases ago so there's still some logic that needs to be inserted for missing/unavailable tracks in a playlist. Especially since it seems like the streaming services are continuously losing/gaining licenses for tracks.

We will keep this open to look into this.

This one should be fixed in the next patch release

@drjjr2 Are you able to confirm this has been fixed?

I can confirm that it works (at least with  filesystem provider). Even a playlist with about 1200 songs loaded correctly


Add Codeigniter Cache

Add new cache driver

Current coverage is 77.22% (diff: 0.00%)

Merging #82 into master will decrease coverage by 1.97%

@@             master        #82   diff @@
==========================================
  Files            27         28     +1
  Lines           899        922    +23
  Methods         183        188     +5
  Messages          0          0
  Branches          0          0
==========================================
  Hits            712        712
- Misses          187        210    +23
  Partials          0          0

Powered by Codecov. Last update d29586f...8743a7e

Great, thank you!
Can you also add tests for the CodeIgniter cache driver?

Hi Mpociot,
I cann't integration codeIgniter for test case.
codeIgniter execute phpunit fail when cli.
I need modify codeIgniter core code.


[Bug] Cannot sign a partially signed transaction.

When I try to deserialize a partially signed transaction (using Message.Deserialize), the existing Signers aren't deserialized.
var message = Message.Deserialize(compiledTransaction);
var tx = Transaction.Populate(message);

tx.Signers is empty

Example of transaction partially signed :
2,1,9,22,138,180,156,252,109,252,108,26,186,0,196,69,57,102,15,151,149,242,119,181,171,113,120,224,0,118,155,61,246,56,178,47,5,127,54,85,153,40,206,27,171,173,182,91,139,93,158,49,186,39,248,83,155,236,96,44,203,26,220,42,251,159,70,112,183,85,45,211,31,117,170,249,115,142,150,7,154,72,234,129,11,230,240,210,134,238,214,97,253,27,211,30,75,60,118,127,101,227,21,206,161,126,156,225,86,221,116,65,168,99,209,82,86,59,16,110,183,108,230,243,66,64,71,40,117,164,187,99,63,134,33,168,224,98,57,6,130,207,74,70,177,120,155,22,187,210,145,210,87,121,127,133,186,230,130,227,186,45,8,203,174,193,163,124,28,112,153,122,201,57,164,147,48,3,118,148,224,223,30,201,169,42,101,186,221,16,12,105,205,206,184,40,59,36,183,144,56,251,155,81,96,93,7,7,219,43,71,8,208,98,194,93,185,165,22,67,53,73,19,3,205,198,244,136,12,158,58,228,224,183,152,74,250,18,157,96,7,160,158,224,142,150,46,161,202,218,73,218,230,18,50,147,194,191,195,125,8,175,246,228,16,89,36,102,175,155,72,107,229,118,121,242,246,139,65,205,220,49,224,32,146,119,74,143,99,98,237,19,209,153,198,66,18,170,194,214,107,34,24,236,131,130,61,208,73,81,158,126,202,103,0,217,87,191,29,139,185,179,80,124,9,53,112,39,242,45,163,184,137,196,188,191,254,181,145,62,221,231,28,53,225,167,180,239,1,79,78,188,11,127,10,244,55,72,197,77,248,37,66,27,52,17,65,62,34,245,181,2,195,178,157,92,136,150,245,185,188,43,112,46,121,233,229,183,6,65,156,6,69,48,246,214,66,103,66,217,59,252,205,155,71,130,219,39,90,159,10,158,105,79,210,149,191,206,251,237,195,27,24,204,62,20,138,10,82,147,129,137,32,237,250,237,171,57,30,73,51,108,11,116,219,102,157,16,71,3,66,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,168,130,96,176,127,33,78,199,111,187,23,51,224,75,77,123,238,132,54,175,209,79,66,238,152,255,201,92,49,107,204,100,183,92,7,83,215,231,109,133,77,59,235,252,5,77,52,253,206,87,198,134,219,200,139,133,234,2,250,83,168,138,53,6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169,6,167,213,23,25,44,92,81,33,140,201,76,61,74,241,127,88,218,238,8,155,161,253,68,227,219,217,138,0,0,0,0,140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89,0,11,227,225,235,161,122,71,63,137,176,247,232,226,73,64,242,10,235,142,188,167,26,136,253,233,93,75,131,183,26,9,5,33,159,137,154,129,212,255,132,251,89,61,46,223,138,144,172,27,58,179,66,88,247,223,35,62,165,3,2,177,189,46,113,99,38,145,255,18,151,141,114,210,40,195,146,232,115,42,123,115,199,137,26,52,227,146,215,220,71,228,185,73,34,84,3,21,6,0,1,2,8,13,14,17,242,35,198,137,82,225,242,182,255,0,202,154,59,0,0,0,0,21,12,0,1,15,16,2,8,13,3,8,17,14,18,34,102,6,61,18,1,218,235,234,255,255,0,202,154,59,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,23,0,4,1,5,15,16,2,6,8,13,7,3,8,9,8,17,14,19,20,18,10,11,12,42,37,74,217,157,79,49,35,6,255,250,0,202,154,59,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255

Not a bug, Message doesn't hold signatures, this design is a mirror of web3.js.
You only get signatures if you do TransactionBuilder.Build(....) or Transaction.Build(..) followed by Transaction.Deserialize(..) or Transaction.Populate(...)

ok so how do you handle partial sign with Solnet ? I tried to solution which bot failed (even using the fix for #386
Still using the info from above, here is what I tried and the error I get.
Using PartialSign :
var walletMnemonic = "lens scheme misery search address destroy shallow police picture gown apart rural cotton vivid cage disagree enrich govern history kit early near cloth alarm";
var buyerAccount = (new Wallet.Wallet(walletMnemonic)).GetAccount(0);

-- This data comes from MagicEden using the test wallet above
 var data = new byte[] { 2, 1, 9, 22, 138, 180, 156, 252, 109, 252, 108, 26, 186, 0, 196, 69, 57, 102, 15, 151, 149, 242, 119, 181, 171, 113, 120, 224, 0, 118, 155, 61, 246, 56, 178, 47, 5, 127, 54, 85, 153, 40, 206, 27, 171, 173, 182, 91, 139, 93, 158, 49, 186, 39, 248, 83, 155, 236, 96, 44, 203, 26, 220, 42, 251, 159, 70, 112, 183, 85, 45, 211, 31, 117, 170, 249, 115, 142, 150, 7, 154, 72, 234, 129, 11, 230, 240, 210, 134, 238, 214, 97, 253, 27, 211, 30, 75, 60, 118, 127, 101, 227, 21, 206, 161, 126, 156, 225, 86, 221, 116, 65, 168, 99, 209, 82, 86, 59, 16, 110, 183, 108, 230, 243, 66, 64, 71, 40, 117, 164, 187, 99, 63, 134, 33, 168, 224, 98, 57, 6, 130, 207, 74, 70, 177, 120, 155, 22, 187, 210, 145, 210, 87, 121, 127, 133, 186, 230, 130, 227, 186, 45, 8, 203, 174, 193, 163, 124, 28, 112, 153, 122, 201, 57, 164, 147, 48, 3, 118, 148, 224, 223, 30, 201, 169, 42, 101, 186, 221, 16, 12, 105, 205, 206, 184, 40, 59, 36, 183, 144, 56, 251, 155, 81, 96, 93, 7, 7, 219, 43, 71, 8, 208, 98, 194, 93, 185, 165, 22, 67, 53, 73, 19, 3, 205, 198, 244, 136, 12, 158, 58, 228, 224, 183, 152, 74, 250, 18, 157, 96, 7, 160, 158, 224, 142, 150, 46, 161, 202, 218, 73, 218, 230, 18, 50, 147, 194, 191, 195, 125, 8, 175, 246, 228, 16, 89, 36, 102, 175, 155, 72, 107, 229, 118, 121, 242, 246, 139, 65, 205, 220, 49, 224, 32, 146, 119, 74, 143, 99, 98, 237, 19, 209, 153, 198, 66, 18, 170, 194, 214, 107, 34, 24, 236, 131, 130, 61, 208, 73, 81, 158, 126, 202, 103, 0, 217, 87, 191, 29, 139, 185, 179, 80, 124, 9, 53, 112, 39, 242, 45, 163, 184, 137, 196, 188, 191, 254, 181, 145, 62, 221, 231, 28, 53, 225, 167, 180, 239, 1, 79, 78, 188, 11, 127, 10, 244, 55, 72, 197, 77, 248, 37, 66, 27, 52, 17, 65, 62, 34, 245, 181, 2, 195, 178, 157, 92, 136, 150, 245, 185, 188, 43, 112, 46, 121, 233, 229, 183, 6, 65, 156, 6, 69, 48, 246, 214, 66, 103, 66, 217, 59, 252, 205, 155, 71, 130, 219, 39, 90, 159, 10, 158, 105, 79, 210, 149, 191, 206, 251, 237, 195, 27, 24, 204, 62, 20, 138, 10, 82, 147, 129, 137, 32, 237, 250, 237, 171, 57, 30, 73, 51, 108, 11, 116, 219, 102, 157, 16, 71, 3, 66, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 168, 130, 96, 176, 127, 33, 78, 199, 111, 187, 23, 51, 224, 75, 77, 123, 238, 132, 54, 175, 209, 79, 66, 238, 152, 255, 201, 92, 49, 107, 204, 100, 183, 92, 7, 83, 215, 231, 109, 133, 77, 59, 235, 252, 5, 77, 52, 253, 206, 87, 198, 134, 219, 200, 139, 133, 234, 2, 250, 83, 168, 138, 53, 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169, 6, 167, 213, 23, 25, 44, 92, 81, 33, 140, 201, 76, 61, 74, 241, 127, 88, 218, 238, 8, 155, 161, 253, 68, 227, 219, 217, 138, 0, 0, 0, 0, 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89, 0, 11, 227, 225, 235, 161, 122, 71, 63, 137, 176, 247, 232, 226, 73, 64, 242, 10, 235, 142, 188, 167, 26, 136, 253, 233, 93, 75, 131, 183, 26, 9, 5, 33, 159, 137, 154, 129, 212, 255, 132, 251, 89, 61, 46, 223, 138, 144, 172, 27, 58, 179, 66, 88, 247, 223, 35, 62, 165, 3, 2, 177, 189, 46, 113, 99, 38, 145, 255, 18, 151, 141, 114, 210, 40, 195, 146, 232, 115, 42, 123, 115, 199, 137, 26, 52, 227, 146, 215, 220, 71, 228, 185, 73, 34, 84, 3, 21, 6, 0, 1, 2, 8, 13, 14, 17, 242, 35, 198, 137, 82, 225, 242, 182, 255, 0, 202, 154, 59, 0, 0, 0, 0, 21, 12, 0, 1, 15, 16, 2, 8, 13, 3, 8, 17, 14, 18, 34, 102, 6, 61, 18, 1, 218, 235, 234, 255, 255, 0, 202, 154, 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 23, 0, 4, 1, 5, 15, 16, 2, 6, 8, 13, 7, 3, 8, 9, 8, 17, 14, 19, 20, 18, 10, 11, 12, 42, 37, 74, 217, 157, 79, 49, 35, 6, 255, 250, 0, 202, 154, 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255 };

var transaction = Transaction.Populate(Message.Deserialize(data));
transaction.PartialSign(buyerAccount);

var tx = transaction.Serialize();
var rpc = ClientFactory.GetClient(Cluster.MainNet);
var res = rpc.SendTransaction(tx, true, Types.Commitment.Confirmed);

=> Failed : res.Reason = "invalid transaction: Transaction failed to sanitize accounts offsets correctly"

Using AddSignature :
var walletMnemonic = "lens scheme misery search address destroy shallow police picture gown apart rural cotton vivid cage disagree enrich govern history kit early near cloth alarm";
var buyerAccount = (new Wallet.Wallet(walletMnemonic)).GetAccount(0);

-- This data comes from MagicEden using the test wallet above
 var data = new byte[] { 2, 1, 9, 22, 138, 180, 156, 252, 109, 252, 108, 26, 186, 0, 196, 69, 57, 102, 15, 151, 149, 242, 119, 181, 171, 113, 120, 224, 0, 118, 155, 61, 246, 56, 178, 47, 5, 127, 54, 85, 153, 40, 206, 27, 171, 173, 182, 91, 139, 93, 158, 49, 186, 39, 248, 83, 155, 236, 96, 44, 203, 26, 220, 42, 251, 159, 70, 112, 183, 85, 45, 211, 31, 117, 170, 249, 115, 142, 150, 7, 154, 72, 234, 129, 11, 230, 240, 210, 134, 238, 214, 97, 253, 27, 211, 30, 75, 60, 118, 127, 101, 227, 21, 206, 161, 126, 156, 225, 86, 221, 116, 65, 168, 99, 209, 82, 86, 59, 16, 110, 183, 108, 230, 243, 66, 64, 71, 40, 117, 164, 187, 99, 63, 134, 33, 168, 224, 98, 57, 6, 130, 207, 74, 70, 177, 120, 155, 22, 187, 210, 145, 210, 87, 121, 127, 133, 186, 230, 130, 227, 186, 45, 8, 203, 174, 193, 163, 124, 28, 112, 153, 122, 201, 57, 164, 147, 48, 3, 118, 148, 224, 223, 30, 201, 169, 42, 101, 186, 221, 16, 12, 105, 205, 206, 184, 40, 59, 36, 183, 144, 56, 251, 155, 81, 96, 93, 7, 7, 219, 43, 71, 8, 208, 98, 194, 93, 185, 165, 22, 67, 53, 73, 19, 3, 205, 198, 244, 136, 12, 158, 58, 228, 224, 183, 152, 74, 250, 18, 157, 96, 7, 160, 158, 224, 142, 150, 46, 161, 202, 218, 73, 218, 230, 18, 50, 147, 194, 191, 195, 125, 8, 175, 246, 228, 16, 89, 36, 102, 175, 155, 72, 107, 229, 118, 121, 242, 246, 139, 65, 205, 220, 49, 224, 32, 146, 119, 74, 143, 99, 98, 237, 19, 209, 153, 198, 66, 18, 170, 194, 214, 107, 34, 24, 236, 131, 130, 61, 208, 73, 81, 158, 126, 202, 103, 0, 217, 87, 191, 29, 139, 185, 179, 80, 124, 9, 53, 112, 39, 242, 45, 163, 184, 137, 196, 188, 191, 254, 181, 145, 62, 221, 231, 28, 53, 225, 167, 180, 239, 1, 79, 78, 188, 11, 127, 10, 244, 55, 72, 197, 77, 248, 37, 66, 27, 52, 17, 65, 62, 34, 245, 181, 2, 195, 178, 157, 92, 136, 150, 245, 185, 188, 43, 112, 46, 121, 233, 229, 183, 6, 65, 156, 6, 69, 48, 246, 214, 66, 103, 66, 217, 59, 252, 205, 155, 71, 130, 219, 39, 90, 159, 10, 158, 105, 79, 210, 149, 191, 206, 251, 237, 195, 27, 24, 204, 62, 20, 138, 10, 82, 147, 129, 137, 32, 237, 250, 237, 171, 57, 30, 73, 51, 108, 11, 116, 219, 102, 157, 16, 71, 3, 66, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 168, 130, 96, 176, 127, 33, 78, 199, 111, 187, 23, 51, 224, 75, 77, 123, 238, 132, 54, 175, 209, 79, 66, 238, 152, 255, 201, 92, 49, 107, 204, 100, 183, 92, 7, 83, 215, 231, 109, 133, 77, 59, 235, 252, 5, 77, 52, 253, 206, 87, 198, 134, 219, 200, 139, 133, 234, 2, 250, 83, 168, 138, 53, 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169, 6, 167, 213, 23, 25, 44, 92, 81, 33, 140, 201, 76, 61, 74, 241, 127, 88, 218, 238, 8, 155, 161, 253, 68, 227, 219, 217, 138, 0, 0, 0, 0, 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89, 0, 11, 227, 225, 235, 161, 122, 71, 63, 137, 176, 247, 232, 226, 73, 64, 242, 10, 235, 142, 188, 167, 26, 136, 253, 233, 93, 75, 131, 183, 26, 9, 5, 33, 159, 137, 154, 129, 212, 255, 132, 251, 89, 61, 46, 223, 138, 144, 172, 27, 58, 179, 66, 88, 247, 223, 35, 62, 165, 3, 2, 177, 189, 46, 113, 99, 38, 145, 255, 18, 151, 141, 114, 210, 40, 195, 146, 232, 115, 42, 123, 115, 199, 137, 26, 52, 227, 146, 215, 220, 71, 228, 185, 73, 34, 84, 3, 21, 6, 0, 1, 2, 8, 13, 14, 17, 242, 35, 198, 137, 82, 225, 242, 182, 255, 0, 202, 154, 59, 0, 0, 0, 0, 21, 12, 0, 1, 15, 16, 2, 8, 13, 3, 8, 17, 14, 18, 34, 102, 6, 61, 18, 1, 218, 235, 234, 255, 255, 0, 202, 154, 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 23, 0, 4, 1, 5, 15, 16, 2, 6, 8, 13, 7, 3, 8, 9, 8, 17, 14, 19, 20, 18, 10, 11, 12, 42, 37, 74, 217, 157, 79, 49, 35, 6, 255, 250, 0, 202, 154, 59, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255 };

var signature = buyerAccount.Sign(data);
var transaction = Transaction.Populate(Message.Deserialize(data));
transaction.AddSignature(buyerAccount, signature);

var tx = transaction.Serialize();
var rpc = ClientFactory.GetClient(Cluster.MainNet);
var res = rpc.SendTransaction(tx, true, Types.Commitment.Confirmed);

=> Failed : res.Reason = "invalid transaction: Transaction failed to sanitize accounts offsets correctly"

Note :
In BOTH case, the new generated tx has for the first byte the value 1 while I expect it to still be 2 (2 signers required).
Also (using the same partially signed data)
var transaction = Transaction.Populate(Message.Deserialize(data));
var tx = transaction.Serialize();

transaction = Transaction.Populate(Message.Deserialize(tx));

i would expect this code to works but it throw the exception below
Exception has occurred: CLR/System.IndexOutOfRangeException
An exception of type 'System.IndexOutOfRangeException' occurred in System.Private.CoreLib.dll but was not handled in user code: 'Index was outside the bounds of the array.'
   at System.ThrowHelper.ThrowIndexOutOfRangeException()
   at System.ReadOnlySpan`1.get_Item(Int32 index)
   at Solnet.Rpc.Models.CompiledInstruction.Deserialize(ReadOnlySpan`1 data) in /Users/bouh/Development/Solnet/src/Solnet.Rpc/Models/TransactionInstruction.cs:line 104
   at Solnet.Rpc.Models.Message.Deserialize(ReadOnlySpan`1 data) in /Users/bouh/Development/Solnet/src/Solnet.Rpc/Models/Message.cs:line 200
   at Solnet.Rpc.Test.TransactionTest.PartialSignME3Test() in /Users/bouh/Development/Solnet/test/Solnet.Rpc.Test/TransactionTest.cs:line 430

I expect the (re)serialized tx to be the same as the data but it's not. The Serialized() method added an extra byte of value 0
[

]

Is that payload the entire payload?
I tried decoding it and it decodes perfectly as a Message. The message part is only the contents of the transaction (instructions), it contains no signatures. The header of the message starts with the # of required signatures for that given message. The header for the transaction starts with the number of signatures that follows the first byte.
The reason a Message starts with byte 2, gets prepended the byte 0 as a transaction is because you have a message with 2 required signatures, and put it together as a transaction with 0 signatures.
The only reason I see this happening is that something might be missing from that payload. I don't have time right now to dig deeper into this, so it will have to wait for the weekend.
Paging @murlokito to give this a second look, as he is the expert on partial signatures as he did here.

My mistake, they updated their Json structure and added a second entry for the signed tx.
Gonna do further test to see if all is ok.

So here is the actual Json :
{"tx":
    {"type":"Buffer","data":[2,1,9,21,138,180,156,252,109,252,108,26,186,0,196,69,57,102,15,151,149,242,119,181,171,113,120,224,0,118,155,61,246,56,178,47,5,127,54,85,153,40,206,27,171,173,182,91,139,93,158,49,186,39,248,83,155,236,96,44,203,26,220,42,251,159,70,112,183,85,45,211,31,117,170,249,115,142,150,7,154,72,234,129,11,230,240,210,134,238,214,97,253,27,211,30,75,60,118,127,218,176,102,253,138,71,38,27,7,235,46,158,242,104,170,249,49,171,231,130,73,47,250,5,136,65,180,48,162,196,127,192,178,248,17,88,10,67,202,209,218,64,160,122,201,124,188,183,138,1,80,124,103,191,46,109,19,251,220,6,232,127,202,86,104,121,236,161,163,145,22,104,251,214,195,167,40,144,165,137,125,103,252,82,238,244,187,231,34,135,239,204,177,236,32,22,219,249,47,88,27,43,106,93,53,216,83,236,153,109,229,251,36,9,200,49,145,15,129,77,34,112,114,173,36,62,236,110,12,158,58,228,224,183,152,74,250,18,157,96,7,160,158,224,142,150,46,161,202,218,73,218,230,18,50,147,194,191,195,125,8,175,246,228,16,89,36,102,175,155,72,107,229,118,121,242,246,139,65,205,220,49,224,32,146,119,74,143,99,98,237,19,13,132,117,14,245,6,153,169,85,40,27,100,21,174,68,187,108,212,30,222,128,217,201,249,45,138,186,94,166,187,10,235,41,205,82,109,253,176,130,42,238,206,165,200,24,50,188,208,215,135,5,248,131,82,116,201,31,159,53,80,184,225,198,95,236,2,240,147,220,248,179,32,243,104,68,185,1,15,88,227,79,223,130,47,250,151,111,36,193,141,55,202,21,126,183,103,195,27,24,204,62,20,138,10,82,147,129,137,32,237,250,237,171,57,30,73,51,108,11,116,219,102,157,16,71,3,66,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,93,243,113,106,118,124,29,94,205,38,194,235,5,148,37,179,98,119,9,113,206,219,131,76,219,44,227,175,199,22,189,116,235,174,247,254,13,195,90,171,13,244,110,2,65,58,174,203,197,197,222,179,199,159,186,249,24,233,203,208,43,166,206,6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169,6,167,213,23,25,44,92,81,33,140,201,76,61,74,241,127,88,218,238,8,155,161,253,68,227,219,217,138,0,0,0,0,140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89,0,11,227,225,235,161,122,71,63,137,176,247,232,226,73,64,242,10,235,142,188,167,26,136,253,233,93,75,131,183,26,9,5,33,159,137,154,129,212,255,132,251,89,61,46,223,138,144,172,27,58,179,66,88,247,223,35,62,165,3,2,177,189,46,25,81,161,120,205,221,148,12,81,228,109,193,138,66,240,124,244,131,160,152,232,136,137,76,110,42,15,170,244,59,99,147,3,20,6,0,1,2,8,12,13,17,242,35,198,137,82,225,242,182,255,0,0,0,0,0,0,0,0,20,12,0,1,14,15,2,8,12,3,8,16,13,17,34,102,6,61,18,1,218,235,234,252,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,22,0,4,1,5,14,15,2,6,8,12,7,3,8,9,8,16,13,18,19,17,10,11,42,37,74,217,157,79,49,35,6,255,250,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255]},
 "txSigned":
    {"type":"Buffer","data":[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,129,74,17,32,0,255,158,115,99,39,240,246,70,239,176,137,61,191,181,74,239,161,238,51,192,66,152,252,175,211,133,206,87,198,87,97,225,124,109,26,59,186,58,122,100,158,92,25,182,142,77,70,189,254,192,177,4,189,44,40,44,20,15,2,1,9,21,138,180,156,252,109,252,108,26,186,0,196,69,57,102,15,151,149,242,119,181,171,113,120,224,0,118,155,61,246,56,178,47,5,127,54,85,153,40,206,27,171,173,182,91,139,93,158,49,186,39,248,83,155,236,96,44,203,26,220,42,251,159,70,112,183,85,45,211,31,117,170,249,115,142,150,7,154,72,234,129,11,230,240,210,134,238,214,97,253,27,211,30,75,60,118,127,8,175,246,228,16,89,36,102,175,155,72,107,229,118,121,242,246,139,65,205,220,49,224,32,146,119,74,143,99,98,237,19,218,176,102,253,138,71,38,27,7,235,46,158,242,104,170,249,49,171,231,130,73,47,250,5,136,65,180,48,162,196,127,192,178,248,17,88,10,67,202,209,218,64,160,122,201,124,188,183,138,1,80,124,103,191,46,109,19,251,220,6,232,127,202,86,104,121,236,161,163,145,22,104,251,214,195,167,40,144,165,137,125,103,252,82,238,244,187,231,34,135,239,204,177,236,32,22,219,249,47,88,27,43,106,93,53,216,83,236,153,109,229,251,36,9,200,49,145,15,129,77,34,112,114,173,36,62,236,110,12,158,58,228,224,183,152,74,250,18,157,96,7,160,158,224,142,150,46,161,202,218,73,218,230,18,50,147,194,191,195,125,13,132,117,14,245,6,153,169,85,40,27,100,21,174,68,187,108,212,30,222,128,217,201,249,45,138,186,94,166,187,10,235,41,205,82,109,253,176,130,42,238,206,165,200,24,50,188,208,215,135,5,248,131,82,116,201,31,159,53,80,184,225,198,95,236,2,240,147,220,248,179,32,243,104,68,185,1,15,88,227,79,223,130,47,250,151,111,36,193,141,55,202,21,126,183,103,195,27,24,204,62,20,138,10,82,147,129,137,32,237,250,237,171,57,30,73,51,108,11,116,219,102,157,16,71,3,66,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,93,243,113,106,118,124,29,94,205,38,194,235,5,148,37,179,98,119,9,113,206,219,131,76,219,44,227,175,199,22,189,116,235,174,247,254,13,195,90,171,13,244,110,2,65,58,174,203,197,197,222,179,199,159,186,249,24,233,203,208,43,166,206,6,221,246,225,215,101,161,147,217,203,225,70,206,235,121,172,28,180,133,237,95,91,55,145,58,140,245,133,126,255,0,169,6,167,213,23,25,44,92,81,33,140,201,76,61,74,241,127,88,218,238,8,155,161,253,68,227,219,217,138,0,0,0,0,140,151,37,143,78,36,137,241,187,61,16,41,20,142,13,131,11,90,19,153,218,255,16,132,4,142,123,216,219,233,248,89,0,11,227,225,235,161,122,71,63,137,176,247,232,226,73,64,242,10,235,142,188,167,26,136,253,233,93,75,131,183,26,9,5,33,159,137,154,129,212,255,132,251,89,61,46,223,138,144,172,27,58,179,66,88,247,223,35,62,165,3,2,177,189,46,25,81,161,120,205,221,148,12,81,228,109,193,138,66,240,124,244,131,160,152,232,136,137,76,110,42,15,170,244,59,99,147,3,20,6,0,1,2,3,12,13,17,242,35,198,137,82,225,242,182,255,0,0,0,0,0,0,0,0,20,12,0,1,14,15,2,3,12,4,3,16,13,17,34,102,6,61,18,1,218,235,234,252,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,22,0,5,1,6,14,15,2,7,3,12,8,4,3,9,3,16,13,18,19,17,10,11,42,37,74,217,157,79,49,35,6,255,250,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255]}}

The txSigned contains the partial signature in position 2.
using this code :
var walletMnemonic = "lens scheme misery search address destroy shallow police picture gown apart rural cotton vivid cage disagree enrich govern history kit early near cloth alarm";
var buyerAccount = (new Wallet.Wallet(walletMnemonic)).GetAccount(0);

var data = new byte[] { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 129, 74, 17, 32, 0, 255, 158, 115, 99, 39, 240, 246, 70, 239, 176, 137, 61, 191, 181, 74, 239, 161, 238, 51, 192, 66, 152, 252, 175, 211, 133, 206, 87, 198, 87, 97, 225, 124, 109, 26, 59, 186, 58, 122, 100, 158, 92, 25, 182, 142, 77, 70, 189, 254, 192, 177, 4, 189, 44, 40, 44, 20, 15, 2, 1, 9, 21, 138, 180, 156, 252, 109, 252, 108, 26, 186, 0, 196, 69, 57, 102, 15, 151, 149, 242, 119, 181, 171, 113, 120, 224, 0, 118, 155, 61, 246, 56, 178, 47, 5, 127, 54, 85, 153, 40, 206, 27, 171, 173, 182, 91, 139, 93, 158, 49, 186, 39, 248, 83, 155, 236, 96, 44, 203, 26, 220, 42, 251, 159, 70, 112, 183, 85, 45, 211, 31, 117, 170, 249, 115, 142, 150, 7, 154, 72, 234, 129, 11, 230, 240, 210, 134, 238, 214, 97, 253, 27, 211, 30, 75, 60, 118, 127, 8, 175, 246, 228, 16, 89, 36, 102, 175, 155, 72, 107, 229, 118, 121, 242, 246, 139, 65, 205, 220, 49, 224, 32, 146, 119, 74, 143, 99, 98, 237, 19, 218, 176, 102, 253, 138, 71, 38, 27, 7, 235, 46, 158, 242, 104, 170, 249, 49, 171, 231, 130, 73, 47, 250, 5, 136, 65, 180, 48, 162, 196, 127, 192, 178, 248, 17, 88, 10, 67, 202, 209, 218, 64, 160, 122, 201, 124, 188, 183, 138, 1, 80, 124, 103, 191, 46, 109, 19, 251, 220, 6, 232, 127, 202, 86, 104, 121, 236, 161, 163, 145, 22, 104, 251, 214, 195, 167, 40, 144, 165, 137, 125, 103, 252, 82, 238, 244, 187, 231, 34, 135, 239, 204, 177, 236, 32, 22, 219, 249, 47, 88, 27, 43, 106, 93, 53, 216, 83, 236, 153, 109, 229, 251, 36, 9, 200, 49, 145, 15, 129, 77, 34, 112, 114, 173, 36, 62, 236, 110, 12, 158, 58, 228, 224, 183, 152, 74, 250, 18, 157, 96, 7, 160, 158, 224, 142, 150, 46, 161, 202, 218, 73, 218, 230, 18, 50, 147, 194, 191, 195, 125, 13, 132, 117, 14, 245, 6, 153, 169, 85, 40, 27, 100, 21, 174, 68, 187, 108, 212, 30, 222, 128, 217, 201, 249, 45, 138, 186, 94, 166, 187, 10, 235, 41, 205, 82, 109, 253, 176, 130, 42, 238, 206, 165, 200, 24, 50, 188, 208, 215, 135, 5, 248, 131, 82, 116, 201, 31, 159, 53, 80, 184, 225, 198, 95, 236, 2, 240, 147, 220, 248, 179, 32, 243, 104, 68, 185, 1, 15, 88, 227, 79, 223, 130, 47, 250, 151, 111, 36, 193, 141, 55, 202, 21, 126, 183, 103, 195, 27, 24, 204, 62, 20, 138, 10, 82, 147, 129, 137, 32, 237, 250, 237, 171, 57, 30, 73, 51, 108, 11, 116, 219, 102, 157, 16, 71, 3, 66, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 93, 243, 113, 106, 118, 124, 29, 94, 205, 38, 194, 235, 5, 148, 37, 179, 98, 119, 9, 113, 206, 219, 131, 76, 219, 44, 227, 175, 199, 22, 189, 116, 235, 174, 247, 254, 13, 195, 90, 171, 13, 244, 110, 2, 65, 58, 174, 203, 197, 197, 222, 179, 199, 159, 186, 249, 24, 233, 203, 208, 43, 166, 206, 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169, 6, 167, 213, 23, 25, 44, 92, 81, 33, 140, 201, 76, 61, 74, 241, 127, 88, 218, 238, 8, 155, 161, 253, 68, 227, 219, 217, 138, 0, 0, 0, 0, 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89, 0, 11, 227, 225, 235, 161, 122, 71, 63, 137, 176, 247, 232, 226, 73, 64, 242, 10, 235, 142, 188, 167, 26, 136, 253, 233, 93, 75, 131, 183, 26, 9, 5, 33, 159, 137, 154, 129, 212, 255, 132, 251, 89, 61, 46, 223, 138, 144, 172, 27, 58, 179, 66, 88, 247, 223, 35, 62, 165, 3, 2, 177, 189, 46, 25, 81, 161, 120, 205, 221, 148, 12, 81, 228, 109, 193, 138, 66, 240, 124, 244, 131, 160, 152, 232, 136, 137, 76, 110, 42, 15, 170, 244, 59, 99, 147, 3, 20, 6, 0, 1, 2, 3, 12, 13, 17, 242, 35, 198, 137, 82, 225, 242, 182, 255, 0, 0, 0, 0, 0, 0, 0, 0, 20, 12, 0, 1, 14, 15, 2, 3, 12, 4, 3, 16, 13, 17, 34, 102, 6, 61, 18, 1, 218, 235, 234, 252, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 22, 0, 5, 1, 6, 14, 15, 2, 7, 3, 12, 8, 4, 3, 9, 3, 16, 13, 18, 19, 17, 10, 11, 42, 37, 74, 217, 157, 79, 49, 35, 6, 255, 250, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255 };

var deserialized = Message.Deserialize(data);
var transaction = Transaction.Populate(deserialized);

I get this exception on the Populate instruction
Exception has occurred: CLR/System.ArgumentOutOfRangeException
An exception of type 'System.ArgumentOutOfRangeException' occurred in System.Private.CoreLib.dll but was not handled in user code: 'Index was out of range. Must be non-negative and less than the size of the collection.'
   at System.ThrowHelper.ThrowArgumentOutOfRange_IndexException()
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at Solnet.Rpc.Models.Transaction.Populate(Message message, IList`1 signatures) in /Users/bouh/Development/Solnet/src/Solnet.Rpc/Models/Transaction.cs:line 303
   at Solnet.Rpc.Test.TransactionTest.PartialSignME3Test() in /Users/bouh/Development/Solnet/test/Solnet.Rpc.Test/TransactionTest.cs:line 425

But the problem is inside the Message.Deserialize as the result is quite empty

Let me know if I am doing something wrong or want me to do more tests.

Ahhh, thats looking better.
So, it goes back to my previous comment.
The "tx" object in that json is the Message contents, and you deserialize with Message.Deserialize(). The txSigned  contains signatures and is an actual Transaction object, and you deserialize with var tx = Transaction.Deserialize(data).
Now the tricky part is that you need to look into the resulting transaction signatures, figure which one is supposed to be yours and replace with a valid signature. We could probably do some improvement here in the future, but for the given problem, you need to fill the first with the signature from the expected PK tx.Signatures[0].PublicKey.
            var tx = Transaction.Deserialize(data);

            tx.Signatures[0] = new SignaturePubKeyPair() // first signature has to pay transaction fees, so its the reason they fill the second and yours needs to be first
            {
                PublicKey = MY_PK,
                Signature = MY_SIGNATURE
            };

            var res = tx.Serialize();

Note: you only sign the stuff inside the "tx" object, not the "txSigned".

What is supposed to be signed in  MY_SIGNATURE? The deserialization of the Message (['tx'])?
Thanks

I still can't get it working.
in both case (below), I get "Transaction signature verification failure"
            var txUnsigned = Transaction.Populate(Message.Deserialize(data.Tx));
            var txSigned = Transaction.Deserialize(data.TxSigned);

            txSigned.Signatures[0] = new SignaturePubKeyPair() // first signature has to pay transaction fees, so its the reason they fill the second and yours needs to be first
            {
                PublicKey = buyerAccount.PublicKey, // tx.Signatures[0].PublicKey
                Signature = buyerAccount.Sign(txUnsigned.CompileMessage())
            };

            var res = rpcClient.SendTransaction(txSigned.Serialize());

            txSigned.Signatures[0] = new SignaturePubKeyPair() // first signature has to pay transaction fees, so its the reason they fill the second and yours needs to be first
            {
                PublicKey = buyerAccount.PublicKey, // tx.Signatures[0].PublicKey
                Signature = buyerAccount.Sign(unsignedData)
            };

            res = rpcClient.SendTransaction(txSigned.Serialize());

What is weird is if I try to verify the 2nd signature it return false.
I read in a discord someone had to use SendRawTransaction to make it works but this method isn't available on SolNet. Not sure if it would help though.

This goes back to the problem of the keys orders! I'm going to implement this fix and ME aren't even following it.
If they use that in the future, you should be good to go. In the meantime, I suggest you hack them together (its even more performant than decoding and encoding things together):
            byte[] txSigned = data;
            byte[] txMessage = data[(1 + 64 * 2)..]; // advance sig count byte + signature bytes, or simply use the original object from the json

            var mySig = buyerAccount.Sign(txMessage);

            Array.Copy(mySig, 0, txSigned, 1, mySig.Length);

Then you can just send the txSigned array!
Heres the confirmation that the signatures now match:
            // verify signatures
            var tx = Transaction.Deserialize(txSigned);

            var s1 = tx.Signatures[0].PublicKey.Verify(txMessage, tx.Signatures[0].Signature); // true
            var s2 = tx.Signatures[1].PublicKey.Verify(txMessage, tx.Signatures[1].Signature); // true

            var badKeyOrdering = tx.VerifySignatures(); // returns false

This trick did it. Many thanks

bc1qjjplftu2yflnn7q53p5sh673gj2qw0a7v3flrp

hello, when you say txMessage, what are you referring to exactly? the tx data or the entire json response which contains both tx and txSigned.

@nazbrok
Hi
Can You Send Your code ?
Because i don't Create partially signed transaction


If 'nklib_proc' process crashes it must crash all client processes ca…

…lled 'put'.

This pull request illustrates the solution described in an issue #2 .

I have merged it into develop and cleaned up everything.


[$500] Chat - Video - Mute status icon is inconsistent between full screen mode and mini player mode

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

Version Number: 1.4.52-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Send a video as an attachment inside of a chat
Open the video in full screen mode
Mute the video
Go out of full screen mode and observe the sound icon

Expected Result:
The sound icon should turn to mute indicator
Actual Result:
The sound icon does not show mute icon instead is still in its previous mode
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/f7cd445c-e905-44a9-9d67-b72a333f8733

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01412339609ab3cb7a
Upwork Job ID:<PHONE_NUMBER>492872192
Last Price Increase: 2024-03-29

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

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - Video - Mute status icon is inconsistent between full screen mode and mini player mode
What is the root cause of that problem?
Our custom video controller use updateVolume and volume from VolumeContextProvider  to update the volume and display the UI. But fullscreen displays native video controller, which does not call updateVolume when the volume is updated and because of this the volume icon is not updated when we returns back
What changes do you think we should make in order to solve the problem?
Adding below code here will fix the error
if ( e.fullscreenUpdate === VideoFullscreenUpdate.PLAYER_DID_DISMISS) {
    currentVideoPlayerRef.current.getStatusAsync().then((status) => {
        if(status.volume === 0 || status.isMuted === true){
            updateVolume(0)
        }
    });
}

But there is one problem too.  If we mute the video before opening full screen mode, then pressing on the volume icon does not cause any effect. The reason is that the native controller is displayed in full screen mode (as I described above), and it does not unmute  video audio if its volume is set to "0".  But we set default volume to 0 here and  besides it when we press on volume icon to mute the video , we here also set the volume to 0 . We should use two different functions to mute and update volume.
What alternative solutions did you explore? (Optional)

Asking for help on which project this belongs to here -https://expensify.slack.com/archives/C01SKUP7QR0/p1710520232153099

@mkhutornyi - could you review the proposal?

@shahinyan11 thanks for the proposal. Does your solution also cover the reversed case?

No. To fix the reversed case, we need to make changes in several places.

This issues is not reproducible.

@kaushiktd I can reproduce it in the latest version

Where are we at on this one @mkhutornyi?

@mkhutornyi don't you have any feedback on my proposal?

You said above and didn't want to update proposal before confirmation. So I asked expected behavior.

Yes but I provide proposal for fixing inconsistent. The root cause of second issue is different and I think it would be better to open new issue for that one

Asking in Slack about expected behavior: https://expensify.slack.com/archives/C01GTK53T8Q/p1711381704207499

@mkhutornyi is unexpectedly going to be OOO for a while, @jayeshmangwani , can you please take over as C+ here? If it doesn't work for you, please post in #contributor-plus

@mallenexpensify bumped on the slack for more eyes for the expected behaviour of the issue

@shahinyan11 If we will decided to fix the inconsistency between the fullscreen and mini player mode, then we need to fix the reversed case too in this issue, and also need to fix for all the Platforms, IMO we should not create a new issue for the reversed case.

@jayeshmangwani  There is not reversed case which cause inconsistence . I want that you understand me correct those are different issues and the bug you call reversed case is absolutely different bug. To solve the second problem, we need to change the custom video control logic. Changes should be made in multiple files

@jayeshmangwani Ok I will create a PR with all necessary changes

Here is the branch which covers all errors.
But there is something left to discuss. I already mentioned above that the native controller does not unmute the volume if it was lowered to 0 through the volume sensor.
Here a question arises. How should work our custom video controller in this case ?

@shahinyan11 I have tried to add this code on src/components/VideoPlayer/BaseVideoPlayer.js component to handleFullscreenUpdate useCallback function, but this does not solve the initial issue
https://github.com/Expensify/App/assets/35371050/d78a2190-d208-4b64-af1a-145753a1dbb1
Steps:

Open video in mini player with sound On
Go to fullscreen mode and sound is On and thats expected
Press mute button in fullscreen mode
Go to mini player mode > Observe the Mute button
Expected is that button is on the Mute if we have Muted in mini player mode

@shahinyan11 Can you please confirm if these steps are working fine on your side, and what results you are getting ?

@mallenexpensify Are you added const {updateVolume} = useVolumeContext();  in component ?

We're still evaluating proposal, I have faced few inconsistencies between the Sound icon and the volume slider, making the list of that inconsistencies.

We're still evaluating proposal, I have faced few inconsistencies between the Sound icon and the volume slider, making the list of that inconsistencies.

Could you please check if the inconsistencies you found are still relevant in the branch I shared here?

@shahinyan11 Yes sure I'll compare it  with the mentioned branch , give me some time I need to compare it one by one, and in some time I'll post all the test cases here

@shahinyan11 Except the original GH description issue, I found the below bugs at the time of testing the Sound between fullscreen player => mini player, mini player => fullscreen player
please check with your code that does any of the below bugs will be solved in that, as your this code only solves the mentioned GH issue, and I also feel that volume value should be synced between

Mini player => Fullscreen Player,
Fullscreen Player => Mini player.

Bug 1

Send a video as an attachment inside of a chat
Open the video in full screen mode
Use the slider to adjust the sound and set the sound to 0, We can see mute Icon
Go out of full screen mode and observe the sound icon
The sound icon does not show mute icon instead is still in its previous mode

Bug 2

Send a video as an attachment inside of a chat
Open the video in full screen mode
Mute the video, go to any other tab or any other application
Go back to fullscreen video tab, observe the sound icon
The sound icon does not show mute icon instead is still in its previous mode

Bug 3

Send a video as an attachment inside of a chat
Open the video in full screen mode
Mute the video, go to any other tab using the chrome short cut (command + (any other tab number))
Go back to tab where app was open
Video will displayed in the mini player and observe the sound icon
The sound icon does not show mute icon instead is still in its previous mode

NOTE: If you feel that any of the above Bug should be handled separately please let us know

@jayeshmangwani Update in this branch covers all 3 bugs mentioned in this comment

@shahinyan11 Your proposal needs to be updated; please update the proposal on how we are going to handle the volume value and the Mute Icon status and vice-versa. Code changes and minor details can be changed in PR; update the proposal for a high-level overview of the changes.

@jayeshmangwani  Sorry, my previous comment may have confused you.
My current proposal will fix both the original GH issue and 3 bugs described in this https://github.com/Expensify/App/issues/38307#issuecomment-2028912880 ыo updates to the branch are not necessary to fix these. The updates in branch related with the error I described in my7 proposal

But there is one problem too. If we mute the video before opening full screen mode, then pressing on the volume icon does not cause any effect.

@shahinyan11 Does this proposal will fix the mentioned bugs?

@shahinyan11 Thanks for bearing with me, and I am sorry for the back and forth; your proposal will solve the issue in hand where the Mute icon is not in sync, and in the PR, we can determine and fix anything the internal engineer will decide for the volume value sync between the fullscreen and mini player.

@shahinyan11 's proposal will solve the issue at hand where the Mute icon is not in sync from fullscreen to mini player; in the PR, if we want to fix the volume value sync between the fullscreen and mini player, then we can handle it in PR.
🎀 👀 🎀 C+ reviewed

Agree on fixing all the inconsistencies for the video mini / full screen player here

PR will be created until tomorrow evening

@lschurr I think automation doesn't work here. The period of regression should have already begun

You're right @shahinyan11 - Thanks!
PR was deployed to prod on April 22nd, so the pay date will be April 29th.

Payment summary:

Contributor: @shahinyan11 $500 (to be paid in Upwork on 4/29)
Contributor+: @jayeshmangwani $500 (to be paid in Upwork on 4/29)

This is complete!


Modify the README.md file

Stylize the  README.md file and give it a professional look

Format heading
Add badges

@gursi26 can I work on this for Hacktoberfest

Hi! Yes feel free to contribute. I'll add the Hacktoberfest tag to the project shortly.

okey, thanks

Does this look good

Yea that looks great! Small thing though it looks like you misspelled PyTorch in the bar above. Other than that is is pretty good!

Added some more stuff, just want to ask will it be fine if I remove Camera demo word

Hi! Yea it looks great. You can make any changes you feel are necessary and then PR. Thanks for your contribution.

Happy to Contribute in this amazing project

can you pls tag this issue as hacktoberfest

Alright, I have labelled the issue.


Document CLC snippets usage

We support CLC snippets on AWS and, after #355, on Packet.
However, we don't have any documentation on how to use them, we should document it.
We can use Typhoon's documentation as a reference.

Fixed by https://github.com/kinvolk/lokomotive/pull/657


dynamic_reconfigure: 1.5.44-0 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository dynamic_reconfigure to 1.5.44-0:

upstream repository: https://github.com/ros/dynamic_reconfigure.git
release repository: https://github.com/ros-gbp/dynamic_reconfigure-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.5.21
previous version for package: 1.5.43-0

dynamic_reconfigure
* Add server namespaces (#56 <https://github.com/ros/dynamic_reconfigure/issues/56>)
  * Add optional namespace argument to Python Server
  * Add test for server with multiple namespaces
* Merge pull request #61 <https://github.com/ros/dynamic_reconfigure/issues/61> from vagvaz/Issue_51_Unable_to_reload_parameters_from_file
  fix issue #51 <https://github.com/ros/dynamic_reconfigure/issues/51> reloading parameters from dumped file
* Contributors: Evangelos Vazaios, Mikael Arguedas, v-lopez

Please wait for synchronized release.


[APIM-4.1.0][Dependency Upgrade] Upgrade jackson-databind jar

Description
Upgrade com.fasterxml.jackson.core:jackson-databind from <IP_ADDRESS> to <IP_ADDRESS> or above
Affected Component
APIM
Version
4.1.0

Closing this since, the fix is already available in the master.


L10n in route action name

Mojolicious version: 6.56 (Clinking Beer Mugs)
Perl version: v5.18.2 (linux)
Operating system: Linux

Steps to reproduce the behavior
test fail
Log:
[Wed Jun  1 21:10:31 2016] [debug] GET "/l10n"
[Wed Jun  1 21:10:31 2016] [debug] Action "버그" is not allowed
Expected behavior
content of GET /l10n is "완료"
Actual behavior
404 Not Found

Any changes regarding this might have security implications that need to be considered.

Do we need to support this?

I don't think using anything except [\w]

I don't think using anything except \w+ in subroutine names is a good idea.

Just for information's sake (read: I'm not arguing in any direction) perl allows unicode in identifiers as long as it matches /\w/ (see http://perldoc.perl.org/perlunifaq.html#Can-I-use-Unicode-in-my-Perl-sources%3F). By comparison, Mojolicious allows a much smaller subset of method names for action given by not being "hidden" as defined here: https://github.com/kraih/mojo/blob/aea16c61fd730a14053539332707ff3f770e7277/lib/Mojolicious/Routes.pm#L50-L54

I think that to avoid security and other risks you should give for endpoint mojo user the feature to configure hidden method like:
$app->routes->your_method_name_allow_action(qr/[\x{ac00}-\x{d7af}]/)

still, let along notice similar thing:
use Mojo::Base -base;
has qw[궁];

Attribute "궁" invalid at /home/elk/perl5/lib/perl5/Mojo/Base.pm line 37.
That is regexp also.

If there's a security risk, we will avoid it, but definitely not make it optional.

It appears that there is not much interest in unicode identifiers at the moment, and the exact naming rules are still unclear, so i'm afraid we'll not support them for now.


From VCF to VRS

Submitter Name
Andreas Prlić
Submitter Affiliation
Invitae
Submitter Github Handle
andreasprlic
Additional Submitter Details
No response
Which event day would the project be offered?

[X] ISMB 2022 Hackathon Day 1
[X] ISMB 2022 Hackathon Day 2

Project Details
From VCF to VRS
Build a tool that allows to quickly associate all alleles in a VCF file with vr-spec representation (hashes?)
Input: VCF, output: a file with a mapping of the alleles to VRS allele hashes.
One problem:
Performance of creating the VRS representation is slow-ish. We will want to cache that.
Implementation sketch:

Write a tool that given a VCF file, can scan it
Lookup vcf-keys (assembly name, chromosome accession, start, stop, ref, alt) for each allele in cache. If missing, add VRS representation to cache (sqllite?, anyvar?)
Write out a file of VCF alleles mapped to VRS hashes.  (details of the representation could be looked up in the cache, or the verbosity of the created output file could be configured via parameters)

Required Skills
Python

Great idea.
How about these two outcomes: 1) VCF digester, 2) Use the digester for perf analysis of entire stack ?

We now have a VCF annotation script in VRS-python. We can have users try out the script and then we could ask for improvement or next steps from the group.

Documentation issue: what does this work for, what does it not?

I tested this using the Genome in the bottle 4.2.1 benchmark vcf. It worked great except for the star alleles which are currently left as blank for vrs representation.

CNVs, e.g. from the 1000genomesDRAGEN set? We have converted this for Progenetix with the CNVs accessible through our Beacon API (e.g. http://progenetix.org/beacon/biosamples/onekgbs-HG00142/g_variants.
IMO the VCF provided by Lajoie et al. would be a good example case to:

tune a VCF->VRS converter
evaluate problems or ambiguities in the VCF annotations w/ respect to VRS (e.g. relative vs. absolute CN counts/classes ...)
demonstrate round-trip conversions, e.g. VCF->VRS->(... resource ...)->Beacon w. VRSified variants->VCF

Admittedly I haven't explored the current state of the VRS-python tools but would love to get pointers what is there/missing (CNV et al. related).

@wesleygoar  can you put a 1-3 minute pitch on this topic to give at the start of the day to try to entice folks to join in on this? we are planning on having a cutoff of 4 people minimum to officially work as a group on a topic. Every topic lead will pitch.


Fix read only method in widget how to RE: Feedback Ticket 433712

Closes ticket number 433712

These minor code fixes will resolve Feedback item 433712. The user's code suggestion was correct. Steps have been taken to try and ensure that these code errors happen less frequently.


feat!: generation of @google-cloud/notebooks

initial library generation.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@5e7b097). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #1   +/-   ##
=========================================
  Coverage          ?   98.55%
=========================================
  Files             ?        5
  Lines             ?     3316
  Branches          ?      141
=========================================
  Hits              ?     3268
  Misses            ?       47
  Partials          ?        1

Continue to review full report at Codecov.

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


Warning in developer console, from moment.js

Warning triggered by src/components/manage/Widgets/DatetimeWidget.jsx:

Deprecation warning: use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.

@nzambello

@avimishra18 is this issue still open?

I think this issue may be closed by https://github.com/plone/volto/pull/3160. @tiberiuichim @sneridagh please confirm.


Lock to Radon 3.0.1

Codecov Report

Merging #29 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #29   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           4      4
  Lines         268    268
=====================================
  Hits          268    268

Continue to review full report at Codecov.

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

@tisnik Your image is available in the registry: docker pull MISSING_REGISTRY_NAME/MISSING_IMAGE_NAME:SNAPSHOT-PR-29


Configure options for gRPC (Triton server)

Hello! I am trying to play around with the configs for gRPC for the triton server.
I’m using the docker-compose setup, so not sure if the CLI will work for my usecase (perhaps passing them as env variables would work?)
For instance, I’d like to set some variables like this:
('grpc.max_send_message_length', 512 * 1024 * 1024), ('grpc.max_receive_message_length', 512 * 1024 * 1024)]

Is this possible currently? I’m getting an error from gRPC that my payload is more than the limit (8MB instead of 4MB…)
#2

Hey @amirhmk! v1.3.0 is now out supporting gPRC channel configuration

@amirhmk I'm closing the issue. Please reopen if required.


[2001] Update program type

Context
Providers' need to be able to update the study mode of their courses to be within a defined scope.
SCITT's self accredited  courses can either be
:pg_teaching_apprenticeship or
:scitt_programme
HEI's self accredited courses can either be
:pg_teaching_apprenticeship or
:higher_education_programme
Externally accredited courses can be
:pg_teaching_apprenticeship or
:school_direct_training_programme or
:school_direct_salaried_training_programme
Changes proposed in this pull request

Allow the study mode attribute to updated
Validations
Refactor of concerns to model agnostic

Guidance to review
Checklist

[x] Make sure all information from the Trello card is in here
[x] Attach to Trello card
[x] Rebased master
[x] Cleaned commit history
[x] Tested by running locally

 Edit 'Course Salaried/Fee Paying/Apprenticeship' - (MCBE)

 Edit 'Course Apprenticeship' - (MCBE)

Is the program type a concept we need to continue with? Can it be something that is derived from a model for UCAS API purposes only?
Going forward would we be better served by a model property for "fee paying/salaried/apprenticeship"?

Is the program type a concept we need to continue with? Can it be something that is derived from a model for UCAS API purposes only?
Going forward would we be better served by a model property for "fee paying/salaried/apprenticeship"?

I suspect it may be relevant for the Allocations work and likely Apply, as it's relevant for DfE funding calculations.

Hey @davidgisbey, sorry there's a few more comments. Almost there, though. :)
We discussed this on the chat, but just to note down on the PR itself, I think this really should've been more like 3 PRs:

expose program_type in api v2 provider endpoint
add update of program_type in api v2 provider endpoint
refactor edit options into separate concerns

The last one we probably wouldn't have discovered until we started this work, fair enough, but the first two I think are useful distinctions to keep these PRs from getting too big. Sometimes it doesn't work to split the show/update up, but if we can we probably should.


[BUG] Disparities in font colors in Darkmode

Has this bug been raised before?

[X] I have checked "open" AND "closed" issues and this is not a duplicate

Description
The Background color of the popup modals along with the texts are not visible in the Darkmode.

Fix this font color in darkmode,
Change the background color of the modal cards when in darkmode

Screenshots

Do you want to work on this issue?
No
If "yes" to above, please explain how you would technically implement this
No response

@pooranjoyb Please assign this issue to me.


Add version channel artifact

High-level description
This adds a channel artifact containing the version string. Example: https://downloads.dcos.io/dcos/testing/pull/2488/version
Corresponding DC/OS tickets (obligatory)
These DC/OS JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS_OSS-2146 Simplify getting the release version from a DC/OS build

Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label shipit


Check for double selecting same cell for simulation

Currently the system doesn't check for the same cell being selected two times for simulation. Implement validation and checks for when same cell e.g. "A1" is already chosen by the user and display the error in an intuitive way.

Fixed and implemented into the inputpane component at this time.


default copies data between two storage endpoints asynchronously

"the copy operation runs in the background using spare bandwidth capacity that has no SLA in terms of how fast a blob is copied"
Does it mean that the copy operation doesn't impact to network performance?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1141c265-4aea-c6be-4d61-3566fe8474b8
Version Independent ID: 3cb0f2ba-cf8b-7fdd-414b-b8d95dca004c
Content: Copy or move data to Azure Storage with AzCopy on Windows
Content Source: articles/storage/common/storage-use-azcopy.md
Service: storage
GitHub Login: @seguler
Microsoft Alias: seguler

@kazshi Thanks for your question. We are checking on this and will respond to you soon.

@kazshi Certainly it doesn't cause impact to other operations.
async copy is a wrapper to service side async blob copy. The pro is the transfer process is totally fulfilled in service side, the con could be there is no SLA on how fast the copy would be fulfilled.
For additional information: Refer to the suggestion mentioned in the GitHub link

@SumanthMarigowda-MSFT Thank you for the clarification. Closing.


Updating EntityBody[F] alias, to have the correct parameters

Updated EntityBody to have the correct alias of ``Stream[F, Byte]instead ofStream[F, ByteVector]`
Updated links to the functional streams library and a youtube video on the topic.
closes https://github.com/http4s/http4s/issues/1505

@ChristopherDavenport Updated.

Thank you for your help! My apologies for the miscommunication, not my finest hour.


How to unmerge cells?

I only find merge_cells methods .but how to unmerge cells?

There is no pre-existing convenience method for that at this time. But you can certainly write one!


Can't delete stable-diffusion-webui folder

Hi,
I'm having trouble with img2img and in-painting not working (txt2img works fine) so I want to do a fresh install of everything. I updated the notebook and attempted to delete the stable-diffusion-webui folder so it could be re-installed but a message popped up saying:
Delete Failed
Directory /notebooks/storage/stable-diffusion/stable-diffusion-webui not empty.
I'm not very tech savvy so please explain where I'm going wrong as if you're talking to a five year old :)
Thanks

rm -rf /notebooks/storage/stable-diffusion/stable-diffusion-webui

Thanks for the very fast response. I've attached a screenshot that highlights where I'm guessing this needs to be entered. Can you clarify I'm right please, I'd hate to do this wrong and break everything.

Nevermind, I figured it out and it worked. Thanks :)


Trees cannot be loaded after creation of new account without trees

After creating a new account, loading the dashboard errors out. See console log below.
This only happens instantly after login or registration, when being signed and reloading the dashboard, everything works fine.
This also happens at main branch.

    at useTreesQuery.ts:11:29
    at s (runtime.js:45:40)
    at Generator._invoke (runtime.js:274:22)
    at forEach.e.<computed> [as next] (runtime.js:97:21)
    at r (_async_to_generator.mjs:3:20)
    at a (_async_to_generator.mjs:25:9)
    at _async_to_generator.mjs:32:7
    at new Promise (<anonymous>)
    at Object.queryFn (_async_to_generator.mjs:21:12)
    at Object.fetchFn [as fn] (query.js:298:29)
    at u (retryer.js:95:31)
    at retryer.js:149:11
(anonymous) @ instrument.js:107
instrument.js:107 TypeError: Cannot read properties of undefined (reading 'getCollection')
    at useTreesQuery.ts:11:29
    at s (runtime.js:45:40)
    at Generator._invoke (runtime.js:274:22)
    at forEach.e.<computed> [as next] (runtime.js:97:21)
    at r (_async_to_generator.mjs:3:20)
    at a (_async_to_generator.mjs:25:9)
    at _async_to_generator.mjs:32:7
    at new Promise (<anonymous>)
    at Object.queryFn (_async_to_generator.mjs:21:12)
    at Object.fetchFn [as fn] (query.js:298:29)
    at u (retryer.js:95:31)
    at retryer.js:149:11
(anonymous) @ instrument.js:107```

This should be fixed by #199


[SPARK-48576][SQL] Rename UTF8_BINARY_LCASE to UTF8_LCASE

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

Was this patch authored or co-authored using generative AI tooling?

Hi~
May I ask why we need to rename it?

of course, I'll update the PR description with more details soon
but shortly: as part of the collation effort in Spark, we've moved away from byte-by-byte logic towards code point per code point logic, so what we used to call UTF8_BINARY_LCASE is now UTF8_LCASE, as this describes more precisely what is going on
here's a couple PRs regarding these changes:
https://github.com/apache/spark/pull/46700
https://github.com/apache/spark/pull/46761
https://github.com/apache/spark/pull/46762
https://github.com/apache/spark/pull/46682
https://github.com/apache/spark/pull/46589
https://github.com/apache/spark/pull/46682

of...

got it, thanks

all checks good, but several conflicts popping up
adding @mkaravel @dbatomic @cloud-fan for review

adding @dbatomic and @cloud-fan to review

thanks, merging to master!


Is this spec living?

I noticed when playing with https://foolip.github.io/day-to-day/ that Loader hasn't had any activity in the last 8 weeks, and in fact there is no directory in web-platform-tests. I'm wondering if I should exclude it or not.
I don't know this space very well, but is this something that would be implemented in JS engines, or on top of them? Is there any implementer interest?
Whatever the state of the document is, making its status clear (in the spec itself) would be great.

I'm wondering if I should exclude it or not.

remove it.

Whatever the state of the document is, making its status clear (in the spec itself) would be great.

https://github.com/whatwg/loader#status

Thanks, I'll exclude it! I was hoping that the spec itself (https://whatwg.github.io/loader/) would say something about its status, as certainly I would never go looking at the GitHub repo looking for such information.

I was recently pointed to https://github.com/whatwg/html/issues/3161 . It's a WIP, and has very different objectives, but if your objective is to use any of the half of a million packages on npm that you need bare specifies to use (ex: import foo from "foo" or import fooBar from "foo/bar"), it seems to be the effort that's gonna make this happen atm.

I've been told that it's completely abandoned. The repositories dates would reflect this.

Last I heard, @caridy is concentrating on Realms as that's needed before they can proceed with this: https://github.com/tc39/proposal-realms

part of this is now solved by import() and imports map. the other part will be feed into the realms proposal.


new term request: OL and subesophageal tracts/fascicles

FBrf0232885 defines and characterises several tracts - summarised in Table 1
Optic lobe calycal tract 1-5 (OLCT)
subesophageal calycal tract 1-2 (SCT)
I think the recommendation is that these should be called fascicles rather than tracts?

So looking through the ontology, a 'fascicle' is a subclass of 'ipsilateral tract' and several subclasses of 'fascicle' exist. There are also non-'fascicle' sub-classes of 'ipsilateral tract', several of which have the word "fascicle" in their name!
@dosumis is there a clear distinction between 'fascicle' and non-'fascicle' 'ipsilateral tract' classes?
From this paper, I think OLCT5 is not a 'fascicle', as it crosses the midline. Naming this one a tract and the other OLCTs fascicles would create consistency issues. I would prefer to use the names used by the authors.

Ito, 2014 - Systematic Insect Brain Nomenclature Document S1 II-1 suggests fascicle over tract

This was duplicated in issue #350 and fixed by PR #570


internal error

Hello , I am getting error "Internal Error" in the screen Emergency attendances forecast "Actual Vs Forecast".
I have followed all the above steps. pls help.
internal error.docx

Hi @irfanmd2010 , that's not enough information to diagnose the issue. I'll need a full log from the SSE terminal to help.

Closing this issue as it has been inactive for more than a month. If you're still having problems, please raise a new issue using the '2 Exception during usage' template.


MicrobeAnnotator module completeness

Hi @cruizperez
Please is there a reason why a subset of a genome can give contradictory results? To explain this, I generated a subset from a genome and run the two and the I found out that some modules were present in the subset but not in the whole genome. I would be glad if you could give a little explanation on generating the module completeness.
Thank you

Hi @cruizperez
Can you please help me with an explanation to how this can happen? I have read about module completeness but I still can't explain why this happens
Thank you

Are you looking at the heatmap image or at the output tsv file with all the data? I think the heatmap shows only the top most complete modules (not all of the modules) and so it can change.
Why are you annotating subsets of genomes?

The MicrobeAnnotator heatmap has two modes.
1st, it looks for KEGG modules that >=50% complete. If it finds modules matching this then those are the modules that make the plot. Any module <50% complete is not included.
2nd, if no modules >=50% complete are found then it plots all modules.
If you are exploring subsets of your genome and then comparing the heatmaps from those to the heatmap of the complete genome then this behavior may create discrepancies between your heatmaps.
However if you look in the annotation_results folder the .annot files are tab separated value (tsv) files that can be opened in Excel or view and processed by any other method you use for tab separated files. These are the files I would compare because the heatmaps can change based on the input.
Does this help?


Is Responder.MouseEvent and View.OnMouseEvent backwards?

I thought the event pattern was:

Verb method (e.g. MouseEvent)

is not virtual.
calls "on method" - OnMouseEvent

Invokes events - e.g. MouseClick

Currently,

Verb method called form Applicaiton.ProcessMouseEvent is view.OnMouseEvent

Which calls MouseEvent(), which tons of views override

Am I just confused or was this all done incorrectly?

Am I just confused or was this all done incorrectly?

It was done incorrectly to not breaking changes in v1. So the correct wold be:
//On Responder:
public virtual bool OnMouseEvent(MouseEvent mouseEvent)

//On View:
public override bool OnMouseEvent(MouseEvent mouseEvent)

//where will invoke first
public event EventHandler<MouseEventEventArgs> MouseEvent
//and if not canceled will call the
base.OnMouseEvent(mouseEvent)

I think so. I also think that the MouseClick event is confusing and unnecessary. The MouseEvent event is enough.

Should be addressed in

#2029

Closing

I'm re-opening this. I'd like to fix just this part of the big "mouse mess" in order to make progress on

#3278

without having to fix ALL of the sins of MouseEvent.
I'll be working on a PR for this today.

I've already noticed that after the v2_develop merger, my PR is no longer working, especially the mouse in the adornments.

I've already noticed that after the v2_develop merger, my PR is no longer working, especially the mouse in the adornments.

It only worked before because you worked around bugs in v2_develop that I fixed in #3274 and #3277.
You will either need to wait until I finish fixing #3274 (PR #3278) or re-hack your PR temporarily.

@BDisp please look at the ToDos in #2579 and let me know your thoughts relative to this. Thanks.

On #3281 I already looked at the Todos and I agree with al of them. Have a good work.

Thank you. One less work item for when I get to that mythical event refactor task, probably some time around version 42.


Pydantic logic and folder checking for Canadian gages

[Short description explaining the high-level reason for the pull request]
Additions

Included equivalent to existing types of gages for Canadian gages in config.py

Removals

Changes

Testing

Run any relevant example, e.g., Lower Colorado v4

Screenshots
Notes

Todos

Checklist

[ ] PR has an informative and human-readable title
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows project standards (link if applicable)
[ ] Passes all existing automated tests
[ ] Any change in functionality is tested
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future todos are captured in comments
[ ] Visually tested in supported browsers and devices (see checklist below :point_down:)
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[ ] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist
Target Environment support

[ ] Windows
[ ] Linux
[ ] Browser

Accessibility

[ ] Keyboard friendly
[ ] Screen reader friendly

Other

[ ] Is useable without CSS
[ ] Is useable without JS
[ ] Flexible from small to large screens
[ ] No linting errors or warnings
[ ] JavaScript tests are passing

Closing this - redundant, PR 777 includes this


Is it possible to use "proxy" setting available in pip

I really like the ease of use of pipenv. But I'm still trying to find my way.
One thing I can't find in pip where I can set the proxy option:
--proxy              Specify a proxy in the form [user:passwd@]proxy.server:port
As I often need to work behind a firewall at my workplace (a school).
Describe you environment

Mac Sierra
Python version: Python 3.6.2 | packaged by conda-forge | (default, Jul 23 2017, 23:01:38)
pipenv, version 8.2.5

Expected result
something like:
pipenv --proxy myproxy
Thanks.

I think i would be a long time for pipenv to support it beause pip doesn't support proxy setting.
However, exporting the http_proxy environment variable can do the same thing(before running pipenv).
$ export http_proxy=your_server
$ export https_proxy=your_server

@ivechan pip does support installing from proxy if you pass it --proxy.  @nateprewitt @techalchemy Thoughts about adding a proxy section to the pipfile spec?

@erinxocon I feel like @kennethreitz wanted to keep as few things as possible in the Pipfile and kept pushing people to set up their pip.conf or pip.ini for things like this.  However, that would mean we will have to figure out how to respect those settings for pip-tools as well, and I am not sure how that would work.

@techalchemy That's what I was thinking.  We could use config files in the root of the project directory, but pip-tools doesn't currently respect that in our code.

@erinxocon @techalchemy imo we need to respect pip.conf and the fact we aren't is a problem because we're rebuilding a lot of functionality pip should already handle (better) for us. We don't need the file to be in the directory, it's noted by a env variable or the default path established by pip. We just need to add a patch for pip-tools to respect it if it's not.
Also we definitely do not want a proxy entry in the Pipfile, that's user specific and isn't necessarily required. Anything that's system/instance specific should be left on the origin machine.

not being supported, currently

@kennethreitz would you accept a pull request to support this? imho npm has the ideal method:
npm config set https-proxy http://someproxy:8443

That way you can set it and forget it. Unlike pip where you need to use an alias to always add the proxy.

I would also be interested to hear more about this...

I might as well bumb this again. Any updates?
Right now I can put my proxy in ~/pip/pip.conf or ~/pip/pip.ini (linux or windows). But it would be much better if I just could add my proxy in the pipfile.

Any updates? 🤔

Is there any update? What is the current workaround?

Any updates?

I will say something new: any updates ?

Maybe re-open this?

Bumping. I'm stuck with 2 proxy between me and my Artifactory pypi repo.
Pip does work with --extra-index-url but pipenv with the same URL in the Pipefile doesn't.

Bumping. I'm stuck with 2 proxy between me and my Artifactory pypi repo.
Pip does work with --extra-index-url but pipenv with the same URL in the Pipefile doesn't.

If you have a Pipfile.lock ready, you can try to use micropipenv:
micropipenv install -- --proxy myproxy

If the lock file is not present, micropipenv will not resolve it though.

pip does support proxy these days...

Please add a proxy option to pipenv, I can't rely on environmental variables.

I believe this is resolved now with my work on index restricted packages.  Correct me if I am wrong, but the proxy feature was specifically about using an alternate address (a proxy) on the internal network to bypass a firewall and connect to somewhere outside the network.  Since index restricted packages requires that all packages use a specific index, wouldn't it work to just specify the proxy address for that source in the Pipfile?
So for example:
[[source]]
url = " https://<usr_name>:<password>@<proxyserver_name>:<port#>"
verify_ssl = true
name = "my-proxy"

[packages]
requests = "*"

[dev-packages]

[requires]
python_version = "3.10"


Ability to supply separate jabber domain and TCP connection details

It would be useful to be able to provide the TCP IP/port pair separate from the jabber domain, for use with proxies and multi-homed servers. Right now the hostname from the jabber id is used, which makes it a pain to connect through SSH-forwarded ports and the like.

yo, PR welcome. related to #10...

is now supported!


Change gc for nim's fast implementation to recommended arc gc

While markAndSweep is mostly better than the default gc in nim, the new "arc" gc is even more performant and results in a lot less memory usage overall. In order to be consistent with new upstream development, the "fast" nim implementation should use arc. More details available at https://nim-lang.org/docs/gc.html
See https://youtu.be/yA32Wxl59wo?t=830 for an example benchmark. Using arc instead of markAndSweep saves over 10 seconds and uses less memory!

@OpenSourceAnarchist Thank you for the contribution! I will get back to it once I have enough free time. Sorry for the delay, the things are hectic at the moment.

These other changes disable runtime safety checks for the "tuned" Nim implementations. In reality this is obviously not a great idea for most code, but since this is a benchmark, it's worth trying out :)
If the Nim code doesn't run or compile, I'd try reverting the gc (arc) commits before the -d:danger ones, but both should not break any code. It is recommended to run the Nim nightly/devel version for using the arc gc mode, so if you're still on Arch it might benefit you to use the nim-git AUR package (https://aur.archlinux.org/packages/nim-git/) instead of the 1.2.0 version in the community repo, but it shouldn't make that much of a difference.

I am not going to include stats for dev/nightly branches of compilers, as I don't have the bandwidth to deal with them, sorry. You can provide your measurements for the benchmarked versions on the solutions from the scoreboard alongside the dev/nightly results on your hardware as a comment in an issue as a reference for those who are interested in those comparisons and I will add a link to the README.

I benchmarked a variety of configurations using the latest nightly version on a Windows 10 desktop. Using the ARC gc option significantly reduced performance, so I got rid of those changes in this PR. However, the -d:danger flag did slightly improve the runtime performance.
The results (no memory stats, just seconds from before calling the main function to directly after, averages of 100 runs for each config option):
naive: 0.4369715857505798s
naive + markAndSweep: 0.2204265379905701s
fast + markAndSweep: 0.1612434196472168s
manual + none: 0.1611993479728699s
naive + danger + markAndSweep: 0.1983912968635559s
naive + arc: 0.36674724817276s
naive + danger + arc: 0.4587049174308777s
fast + danger + markAndSweep: 0.159391508102417s
fast + danger + arc: 0.3393148064613342s

Closing as I am no longer keeping up with Nim development. If this project is ever updated, I'll make another updated PR for Nim with new benchmarks, and submit an implementation in V (similar goals to Nim, but with Go-like syntax and compile-time memory management).


Style and className props missing on widgets

Issue Type
Feature request
Description
Widgets like Button, TextBox and others are not accepting style and className props. If I want to place two Buttons next to each other with a margin between them, I have to wrap them in a div.
Environment Details
devextreme 18.1.1-pre-18093
devextreme-react 18.1.1-alpha.4
react 16.3.0
typescript 2.8

Hi,
Currently, className and style props are not supported but you can use the elementAttr prop instead:
<Button text="Button with style attr" elementAttr={{ style: "background-color: #ffc" }} />


plugin-stripe: StripeWebhookHandler cannot be async with strict linter rules

Hi, I've been updating my repos with new recommended linter rules from eslint v6 and am getting this error on stripePlugin.webhooks because of the type of StripeWebhookHandler screenshotted below. It does not include Promise<void> as a return type

I had a quick look at the code in this repo and it seems that async handlers should be properly handled (and this has been working in prod for us), just the type definition might be inaccurate
I believe all that needs to happen is | Promise<void> added to the return type of StripeWebhookHandler
Update: I have worked around the linter errors by adding this to my eslint config:
{
"@typescript-eslint/no-misused-promises": [
      "error",
      {
        /**
         * allow passing async functions to things without a `Promise<T>` return type e.g. allow
         * ```ts
         * type Endpoint = {
         *   handlers: (...args) => void; // no`| Promise<void>` in the return type, but `async` handlers work fine
         * }
         * ```
         */
        "checksVoidReturn": false
      }
    ],
}

@allannnc thank you for patience on this one, this should go out in the next release. I've got a duplicative PR pointing against beta as well, to prevent regression on v3.


Update About Content + Mobile

Not much here. Just added a quick quote for the about page.
8/24 - A few small changes were added to the about page, which will soon be pushed to this branch.
8/25 - The branch is now ready with new content in the about page as well as CSS allowing the page to remain responsive.

As this project has not yet entered production, I'm going to merge this branch to keep PRs from getting backed up. If a bug should arise, a fix will be introduced in a future PR.

This PR looks (looked?) good, btw - just did an extra review and saw no missing pieces. I have to say I wasn't aware of the mobile designs though, so I'll need to catch up with Becky on these.