WIP Add bitbox support

[x] redo the participate setup step in installer

Just noting as a reminder i want to have a look at the spend info analysis on the daemon side and why it could crash, before we merge this.

The problem (see then solution done at the end)
I am gonna illustrate with an example.
Here a decarying multisig, with bitbox and a ledger, primary path is a 3 of 3 with ledger and two times the same bitbox.
wsh(or_i(and_v(v:pkh([75897fd4/48'/1'/0'/2']tpubDEtwaiemyuvA8UXisdZFR4j1y6aUhxQ8wf9Tf2wYWw1cooP1PHdA7uAUK6H53vZkBvF84ibChB7Wpgd1tkPuuZMVJpRp1iLx9h3AyqefUGh/<6;7>/*),older(3)),or_d(multi(3,[ffd63c8d/48'/1'/0'/2']tpubDExA3EC3iAsPxPhFn4j6gMiVup6V2eH3qKyk69RcTc9TTNRfFYVPad8bJD5FCHVQxyBT4izKsvr7Btd2R4xmQ1hZkvsqGBaeE82J71uTK4N/<0;1>/*,[75897fd4/48'/1'/0'/2']tpubDEtwaiemyuvA8UXisdZFR4j1y6aUhxQ8wf9Tf2wYWw1cooP1PHdA7uAUK6H53vZkBvF84ibChB7Wpgd1tkPuuZMVJpRp1iLx9h3AyqefUGh/<0;1>/*,[75897fd4/48'/1'/0'/2']tpubDEtwaiemyuvA8UXisdZFR4j1y6aUhxQ8wf9Tf2wYWw1cooP1PHdA7uAUK6H53vZkBvF84ibChB7Wpgd1tkPuuZMVJpRp1iLx9h3AyqefUGh/<2;3>/*),and_v(v:thresh(2,pkh([ffd63c8d/48'/1'/0'/2']tpubDExA3EC3iAsPxPhFn4j6gMiVup6V2eH3qKyk69RcTc9TTNRfFYVPad8bJD5FCHVQxyBT4izKsvr7Btd2R4xmQ1hZkvsqGBaeE82J71uTK4N/<2;3>/*),a:pkh([75897fd4/48'/1'/0'/2']tpubDEtwaiemyuvA8UXisdZFR4j1y6aUhxQ8wf9Tf2wYWw1cooP1PHdA7uAUK6H53vZkBvF84ibChB7Wpgd1tkPuuZMVJpRp1iLx9h3AyqefUGh/<4;5>/*)),older(2)))))#a4gxxd5y

wsh(or_i(
  and_v(v:pkh([75897fd4/48'/1'/0'/2']bitbox/<6;7>/*),older(3)),
  or_d(multi(3,[ffd63c8d/48'/1'/0'/2']ledger/<0;1>/*,[75897fd4/48'/1'/0'/2']bitbox/<0;1>/*,[75897fd4/48'/1'/0'/2']bitbox/<2;3>/*),
  and_v(v:thresh(2,pkh([ffd63c8d/48'/1'/0'/2']ledger/<2;3>/*),a:pkh([75897fd4/48'/1'/0'/2']bitbox/<4;5>/*)),older(2)))))

By creating a recovery for two coins using the last unlocked recovery path, gui provides us three choices:

3 more signatures from Bitbox and Ledger
2 more signatures from Bitbox and Ledger
1 more signature from Bitbox

(I choose the recovery example because with the multiple path it shows the confusion)
The bip32_derivations (BTreeMap field in the rust-bitcoin PSBT struct) looks like:
Input  0

index
pubkey
fingerprint
path
usage

#0
028a1b3260 ...
75897fd4
m/48'/1'/0'/2'/0/1
primary path

#1
0293e5f0e65 ...
75897fd4
m/48'/1'/0'/2'/4/1
recovery path older(2)

#2
02f4e7c25e5f ...
ffd63c8d
m/48'/1'/0'/2'/0/1
primary path

#3
0300b8f8792 ...
75897fd4
m/48'/1'/0'/2'/2/1
primary path

#4
036c044cc10a ...
ffd63c8d
m/48'/1'/0'/2'/2/1
recovery path older(2)

#5
03aca8fce1a ...
75897fd4
m/48'/1'/0'/2'/6/1
recovery path older(3)

Input  1

index
pubkey
fingerprint
path
usage

#0
02348438ade2b ...
75897fd4
m/48'/1'/0'/2'/2/0
primary path

#1
023eeb02ffd936 ...
75897fd4
m/48'/1'/0'/2'/0/0
primary path

#2
02f165c3d2976 ...
ffd63c8d
m/48'/1'/0'/2'/0/0
primary path

#3
02f8f64e4f177e ...
ffd63c8d
m/48'/1'/0'/2'/2/0
recovery path older(2)

#4
03317868e0ff02 ...
75897fd4
m/48'/1'/0'/2'/6/0
recovery path older(3)

#5
03ef54bdf4dcc5 ...
75897fd4
m/48'/1'/0'/2'/4/0
recovery path older(2)

Bitbox will not sign for all bip32_derivation per inputs but the first one that match its master fingerprint
It sadly means that without modification on our side, bitbox signs on first round:

input
bip32_derivation index
pubkey
fingerprint
path
usage

#0
#0
028a1b3260 ...
75897fd4
m/48'/1'/0'/2'/0/1
primary path

#1
#0
02348438ade2b ...
75897fd4
m/48'/1'/0'/2'/2/0
primary path

Then (by removing the bip32_derivation that have a partial_sigs that match the fingerprint, otherwise bitbox02 will sign again the same derivation), bitbox signs on second round

input
bip32_derivation index
pubkey
fingerprint
path
usage

#0
#1
0293e5f0e65 ...
75897fd4
m/48'/1'/0'/2'/4/1
recovery path older(2)

#1
#1
023eeb02ffd936 ...
75897fd4
m/48'/1'/0'/2'/0/0
primary path

input#0 is missing a sig for the primary path (instead, it received a sig for a recovery path) but input#1 has the two signatures required.
:warning: Lianad does not like that, it expects that when an input is signed for a particular path, all the other inputs are also signed for the same path.
The solution/What was done in async-hwi and this PR:

remove before signing all bip32_derivation that has pubkey that match the partial_sigs pubkeys (aka bip32_derivation already signed) and put them back after the signing process is done.
Order derivation paths the bip32_derivations of each inputs and remove before signing any bip32_derivations that have the same master_fingerprints and that is not first in the order, then put them back once the device signed.

The bip32_derivations become:
Input  0

previous index
pubkey
fingerprint
path
usage

#4
036c044cc10a ...
ffd63c8d
m/48'/1'/0'/2'/2/1
recovery path older(2)

#5
03aca8fce1a ...
75897fd4
m/48'/1'/0'/2'/6/1
recovery path older(3)

Input  1

previous index
pubkey
fingerprint
path
usage

#3
02f8f64e4f177e ...
ffd63c8d
m/48'/1'/0'/2'/2/0
recovery path older(2)

#4
03317868e0ff02 ...
75897fd4
m/48'/1'/0'/2'/6/0
recovery path older(3)

Bitbox will sign only for the recovery path older(3) for both inputs.
Ledger will only sign for the last path the device as a key in which means recovery path older(2).
So previously, for the recovery, bitbox was only able to sign first for the primary path (first in the bip32_derivations order),
Now it signs for the same path  for each input and by order desc of derivation it will mostly sign for the last recovery path available, if and only if the following hypothesis works:
Every inputs that are from the liana setup have all the same sets of bip32_derivation with only the input last derivation index as difference.
(which is not sure, user can open bip174.org, remove bip32_derivation and give it to an other user that will import it and liana will not complete the missing bip32_derivations. Then some inputs may have only bip32_derivation of recovery path and others only primary path, so it breaks again the wallet)

Ok, i think i finally understand the ordering issue. Indeed this is quite convoluted. I'll try to sum this up, let me know if i'm missing anything.
Contrary to the Ledger Nano series, the Bitbox won't fill up a PSBT with signatures for all its pubkeys but only for the first one as ordered in the PSBT_IN_BIP32_DERIVATION BIP174 field. On our end, when creating a transaction, we fill the PSBT with as much information from the descriptor as possible (as advised in BIP174). When in turn passing this PSBT to the Bitbox for signing this creates two issues:

If multiple keys from the Bitbox are used in the same spending path, signing a transaction will require multiple signing rounds.
If multiple keys from the Bitbox are used at all (i.e. even across spending paths), the Bitbox may return incompatible signatures across inputs (i.e. for different spending paths, whichever key appears first in the PSBT_IN_BIP32_DERIVATION mapping).

The first issue is concerning but arguably only reachable for pathological descriptors. Concerning because it means a user would be shown twice "Confirm sending X BTC" on their device's screen, which would mean they are sending 2 * X BTC but actually they aren't. Normalizing this practice would train users to ignore what their signing device is telling them, which is pretty bad. In addition i don't think there is any usecase for repeating a key in a single spending path (aside from https://github.com/wizardsardine/liana/issues/611#issuecomment-1680876629 but that's due to a self-imposed limitation). Therefore if it opens up issues like this one, we should just prevent users from creating such descriptors in the first place.
The second issue is however reachable for perfectly reasonable descriptors. A decaying or expanding multisig is one such example. Here the Bitbox is arguably not respecting the PSBT flow by artificially limiting how many signatures it provides (see for instance how the BIP174 "Simple Signer Algorithm" signs for all keys it can). By doing so it forces us to withhold some information from the PSBT to direct it at signing what we're interested in. This:

introduces unnecessary complexity on our side;
is confusing in itself to only partially approve a transaction when a user approves it entirely on their device (such as they may have to approve it entirely more than once to effectively only approve it once);
may rule out some (edgy) use cases: when you sign for a latter-available spending path it's useful to sign for all previously-available spending paths. (The opposite isn't possible since the nSequence / nLockTime is committed to by the signature.)

So instead of creating PSBTs with all the information and then having the GUI massage it to remove keys for other spending paths, how about we simply create the PSBT with only the information for a given spending path in the first place?
I think this would solve all the issues in a much less error-prone manner. Would it break any existing use though?

So instead of creating PSBTs with all the information and then having the GUI massage it to remove keys for other spending paths, how about we simply create the PSBT with only the information for a given spending path in the first place?
I think this would solve all the issues in a much less error-prone manner. Would it break any existing use though?

looks great to me (until bitbox fix this issue), @edouardparis did you open an issue about that on the bitbox repo?

I've also heard Coldcard has the same behaviour so this would preemptively patch it for supporting them as well.
-------- Original Message --------
On Oct 3, 2023, 8:26 PM, pythcoiner wrote:

So instead of creating PSBTs with all the information and then having the GUI massage it to remove keys for other spending paths, how about we simply create the PSBT with only the information for a given spending path in the first place?
I think this would solve all the issues in a much less error-prone manner. Would it break any existing use though?

looks great to me (until bitbox fix this issue), @.***(https://github.com/edouardparis) did you open an issue about that on the bitbox repo?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

Creating PSBTs for single spending paths: https://github.com/wizardsardine/liana/pull/722.

The other part is here: https://github.com/wizardsardine/liana/pull/723.
Once both #722 and #723 land and are integrated in the GUI, we can move forward with (a much simplified version of) this PR.

rebased on master, for fixing multiple conflicts.

rebased and squashed all fix commits.

updated liana version and rebased


ERROR - 'int' object is not callable at end of run

Sometime the following error occurs at the end of a tapeimgr run:
2018-12-04 14:34:48,206 - ERROR - 'int' object is not callable
Traceback (most recent call last):
  File "/home/johan/.local/lib/python3.5/site-packages/tapeimgr/gui.py", line 341, in main
    time.sleep(0.1)
TypeError: 'int' object is not callable

Ther error refers to the following line (sleep value for main loop in GUI):
 time.sleep(0.1)

After https://github.com/KBNLresearch/tapeimgr/commit/752db320ad38ebd0419e2cb239e3835f73544a53 (and https://github.com/KBNLresearch/tapeimgr/commit/4cb07d4bc1d29e24e2153d417c155cdbb2cc31dd) this hasn't happened. Will keep issue open for a bit until reasonably sure this fixes it.

Seems to be fixed, closing issue.


Support for Bamboo 6.0.x

Can you add support for version 6.0.x of Bamboo? Currently the latest version of Bamboo that is supported is 5.15.x by version 2.0.2 of the plugin.

Anyone has an alternative for Bamboo 6 before they release a new version?

We are not aware of any compatibility issue between the latest Artifactory Plugin version and Bamboo 6. If you do see any breaking issue, please let us know and we'll release a compatible version.

@eyalbe4 could you then release a compatible version so we can install directly from the add-ons section?

Version 2.1.1 is compatible with Bamboo 6.0.x.  Thanks.


fix(franka_hw_sim): fix robot name differ warning

This pull request ensures that the Caution: Robot Names differ! warning is not thrown when the user omits the <robotNamespace> tag in their URDF/SDF file.

replaced by #366.


Tenant Set Token URI WIP

single, all request_type
batch coming soon (untested)

sorry, initial commit message incorrect; only one commit was linter

Let's not add the whole help in README.
Maybe we can just say how to use it and have some examples.
The help is too big and makes the README very hard to read

I split out the command line help to a separate md file (CMDLINE.md) and link to it.  This shortens the readme while still enumerating the command line options in the docs.


Demo version

This pull request provides the minimal demo version of this library. Still lots to do
TODO:

[x] CI testing fixes
[x] Fill in basic project metadata i.e. setup.py and README
#7

@all-contributors
please add @dfulu  for code.
please add @AUdaltsova  for code.
please add @Sukh-P   for code.
please add @peterdudfield    for code.

@all-contributors
please add @AUdaltsova for code.

@all-contributors please add @Sukh-P for code.

@all-contributors please add @peterdudfield  for code.


Support more SCM vendors

digger currently supports Github, but we also want to extend it to other SCM vendors:

Bitbucket
Azure DevOps
GitLab

However, to do that the codebase needs to be adapted:

Start using a PullRequestService struct
Add SCMProvider interface as property

Then instead of using Github or Bitbucket directly, we'll call PullRequestService which will rely on the underlying SCM provider.
The right SCM provider will be injected when creating a PullRequestService.
Example of implementation, check below
There seems to already be a PullRequestManager (our interface):
type PullRequestManager interface {
	GetChangedFiles(prNumber int) ([]string, error)
	PublishComment(prNumber int, comment string) error
}

The PR Service:
type PullRequestService struct {
	pr PullRequestManager
}

func (prs *PullRequestService) PublishComment(prNumber int, comment string) error {
    return prs.pr.PublishComment(prNumber, comment)

Bitbucket implementation example:
type Bitbucket struct {
}

func (bb *Bitbucket) GetChangedFiles(prNumber int) ([]string, error) {
	return []string{}, nil
}

func (bb *Bitbucket) PublishComment(prNumber int, comment string) error {
	return nil
}

Github implementation example:
type Github struct {
}

func (gh *Github) GetChangedFiles(prNumber int) ([]string, error) {
	return []string{}, nil
}

func (gh *Github) PublishComment(prNumber int, comment string) error {
	return nil
}

Full workflow (kept easy to be readable):
//Detect scm vendor (or will be defined in digger.yaml)
scmVendor := getScmVendor(&config)
var prManager PullRequestManager

// Use switch or if/else
if scmVendor == "Bitbucket" {
    prManager := prManager.(Bitbucket)
}

if scmVendor == "Github" {
     prManager := prManager.(Github)
}

prService := PullRequestService {
    pr: prManager
}
prService.PublishComment(2, "digger apply")

sounds like a good plan!

just a quick note that there is another bit of functionality related to SCMs: events data that digger read from env vars, GitHub Context for example. I'm implementing similar thing for Bitbucket Contexts at the moment(for the case when we trigger Bitbucket pipeline using webhooks)

Thank you for this detailed issue and outlining refactoring steps @ynden. All looks good here, looking forward to reading your PR

This is now being performed as part of a separate branch and it will be merged in parts /youn-refactor/


Deprecated utcnow() method used in the test patch

Describe the bug
Instance ID:  django__django-11848
Category: Verified
The test patch currently uses the deprecated utcnow() method from the datetime module to retrieve the current UTC. As of Python 3.12, utcnow() has been deprecated and is scheduled for removal in future versions of Python.
Question: Should the agent be producing deprecated code? If not, replacing utcnow with now will solve this.
Steps/Code to Reproduce
swebench.cloud eval result
Expected Results
Test patch should use now()
Actual Results
Test patch have utcnow()
System Information
No response

Will not fix, see #264 for explanation.


More return scope fixes

It turns out there is a slight difference between annotating a member function with scope return or return scope.
The scope in both return scope and scope return means you aren't allowed to escape a pointer member. It is also required if you want to call a method on a variable that has a scope annotation.
The return in scope return means you are allowed to return a reference to a struct's member. Whereas the return in return scope allows you to return pointer members.
struct RS {
    int* p;
    auto get() return scope {
        return p; // returning a pointer member
    }
}

struct SR {
    int p;
    auto get() scope return {
        return &p; // returning a reference to a member, essentially a pointer+offset to the struct
    }
}

Many of the connect functions were annotated with scope return, but we don't care much about the Sender's lifetime - they are just a collection of values needed to connect the async operation - but rather about the lifetime of Operation returned.

The ASan 'regressions' are caused by a druntime 2.102 change - exception traces are now malloc'd, not allocated by the GC anymore. And freed in the Throwable finalizer.

The ASan 'regressions' are caused by a druntime 2.102 change - exception traces are now malloc'd, not allocated by the GC anymore. And freed in the Throwable finalizer.

But why do they leak though? You would expect the system to clean up after itself.

I'm not up to speed wrt. whether finalizers are called during program shutdown. And whether the ASan leaks are reported after they have run if they are.

I've run the ASan-enabled tests with LDC v1.32.0 with a custom druntime, featuring some printf outputs.

There are 63 Throwable.info mallocs in total.
56 of these are free'd.
81 Throwables are finalized in total; 60 with a non-null .info.

The only finalized Throwables that have a non-null .info but a null .infoDeallocator are concurrency's ThrowableClone (fine). There are 4 of those, so 56 Throwables with non-null .info and non-null .infoDeallocator are finalized, matching the 56 .info frees above.

ASan complains about 6 objects leaking, but they should be 63-56=7?

Maybe the 7+ non-finalized Throwables are still ref'd at program shutdown somewhere? Or their finalization is skipped when terminating the program?

Or maybe these Throwables aren't even GC-allocated? Some are emplaced into their static init symbol in druntime IIRC (staticError).

Looks like this is it. 7 Throwables are emplaced into static init symbols via staticError.

Little correction: Throwables emplaced into their init symbol actually don't get a trace (.info), there's an according special case in _d_createTrace(). BUT staticError emplaces into a separate TLS buffer: https://github.com/dlang/dmd/blob/f8cfdcd7ca96eb445cfda1b752904b34347aa1f4/druntime/src/core/exception.d#L856-L875
=> IMO safe to add _D4core7runtime19defaultTraceHandlerFPvZC6object9Throwable9TraceInfo to the ASan suppressions.

I can confirm that this fixes the compile errors we previously hit at Symmetry. There are still some deprecations, e.g.:
/home/mkinkelin/dev/concurrency/source/concurrency/stream/stream.d(79): Deprecation: scope variable `this` assigned to non-scope parameter `stream` calling `this`
/home/mkinkelin/dev/concurrency/source/concurrency/stream/tolist.d(20): Deprecation: scope variable `this` assigned to non-scope parameter `stream` calling `this`

With more attributes inference, there's a single remaining deprecation when compiling the stdlib/core-concurrency unittests:
diff --git a/source/concurrency/operations/then.d b/source/concurrency/operations/then.d
index 9f564e9..93a4570 100644
--- a/source/concurrency/operations/then.d
+++ b/source/concurrency/operations/then.d
@@ -58,7 +58,7 @@ struct ThenSender(Sender, Fun) if (models!(Sender, isSender)) {
   alias Value = ReturnType!fun;
   Sender sender;
   Fun fun;
-  auto connect(Receiver)(return Receiver receiver) @safe return scope {
+  auto connect(Receiver)(return Receiver receiver) @safe {
     alias R = ThenReceiver!(Receiver, Sender.Value, Fun);
     // ensure NRVO
     auto op = sender.connect(R(receiver, fun));
diff --git a/source/concurrency/stream/stream.d b/source/concurrency/stream/stream.d
index fb98f54..b8d3af2 100644
--- a/source/concurrency/stream/stream.d
+++ b/source/concurrency/stream/stream.d
@@ -74,7 +74,7 @@ auto fromStreamOp(StreamElementType, SenderValue, alias Op, Args...)(Args args)
     alias Value = SenderValue;
     Args args;
     DG dg;
-    auto connect(Receiver)(return Receiver receiver) @safe return scope {
+    auto connect(Receiver)(return Receiver receiver) @safe {
       // ensure NRVO
       auto op = Op!(Receiver)(args, dg, receiver);
       return op;
diff --git a/source/concurrency/stream/tolist.d b/source/concurrency/stream/tolist.d
index efae5bf..0f8f78b 100644
--- a/source/concurrency/stream/tolist.d
+++ b/source/concurrency/stream/tolist.d
@@ -15,7 +15,7 @@ struct ToListSender(Stream) {
   alias Properties = StreamProperties!Stream;
   alias Value = Properties.ElementType[];
   Stream stream;
-  auto connect(Receiver)(return Receiver receiver) @safe return scope {
+  auto connect(Receiver)(return Receiver receiver) @safe {
     // ensure NRVO
     auto op = ToListOp!(Stream, Receiver)(stream, receiver);
     return op;
diff --git a/source/concurrency/syncwait.d b/source/concurrency/syncwait.d
index 000816d..f62eb10 100644
--- a/source/concurrency/syncwait.d
+++ b/source/concurrency/syncwait.d
@@ -127,7 +127,7 @@ auto syncWait(Sender)(auto scope ref Sender sender) {
   return result;
 }

-private Result!(Sender.Value) syncWaitImpl(Sender)(auto scope ref Sender sender, StopSource stopSource) @safe {
+private Result!(Sender.Value) syncWaitImpl(Sender)(auto ref Sender sender, StopSource stopSource) @safe {
   import mir.algebraic : Algebraic, Nullable;
   static assert(models!(Sender, isSender));
   import concurrency.signal;

Oh, just needed another manual scope removal. No more deprecations for core-concurrency with:
diff --git a/source/concurrency/operations/then.d b/source/concurrency/operations/then.d
index 9f564e9..93a4570 100644
--- a/source/concurrency/operations/then.d
+++ b/source/concurrency/operations/then.d
@@ -58,7 +58,7 @@ struct ThenSender(Sender, Fun) if (models!(Sender, isSender)) {
   alias Value = ReturnType!fun;
   Sender sender;
   Fun fun;
-  auto connect(Receiver)(return Receiver receiver) @safe return scope {
+  auto connect(Receiver)(return Receiver receiver) @safe {
     alias R = ThenReceiver!(Receiver, Sender.Value, Fun);
     // ensure NRVO
     auto op = sender.connect(R(receiver, fun));
diff --git a/source/concurrency/stream/stream.d b/source/concurrency/stream/stream.d
index fb98f54..b8d3af2 100644
--- a/source/concurrency/stream/stream.d
+++ b/source/concurrency/stream/stream.d
@@ -74,7 +74,7 @@ auto fromStreamOp(StreamElementType, SenderValue, alias Op, Args...)(Args args)
     alias Value = SenderValue;
     Args args;
     DG dg;
-    auto connect(Receiver)(return Receiver receiver) @safe return scope {
+    auto connect(Receiver)(return Receiver receiver) @safe {
       // ensure NRVO
       auto op = Op!(Receiver)(args, dg, receiver);
       return op;
diff --git a/source/concurrency/stream/tolist.d b/source/concurrency/stream/tolist.d
index efae5bf..0f8f78b 100644
--- a/source/concurrency/stream/tolist.d
+++ b/source/concurrency/stream/tolist.d
@@ -15,7 +15,7 @@ struct ToListSender(Stream) {
   alias Properties = StreamProperties!Stream;
   alias Value = Properties.ElementType[];
   Stream stream;
-  auto connect(Receiver)(return Receiver receiver) @safe return scope {
+  auto connect(Receiver)(return Receiver receiver) @safe {
     // ensure NRVO
     auto op = ToListOp!(Stream, Receiver)(stream, receiver);
     return op;
diff --git a/source/concurrency/syncwait.d b/source/concurrency/syncwait.d
index 000816d..46fbe8e 100644
--- a/source/concurrency/syncwait.d
+++ b/source/concurrency/syncwait.d
@@ -115,7 +115,7 @@ auto syncWait(Sender, StopSource)(auto ref Sender sender, StopSource stopSource)
   return syncWaitImpl(sender, (()@trusted=>cast()stopSource)());
 }

-auto syncWait(Sender)(auto scope ref Sender sender) {
+auto syncWait(Sender)(auto ref Sender sender) {
   import concurrency.signal : globalStopSource;
   auto childStopSource = new shared StopSource();
   StopToken parentStopToken = parentStopSource ? StopToken(parentStopSource) : StopToken(globalStopSource);
@@ -127,7 +127,7 @@ auto syncWait(Sender)(auto scope ref Sender sender) {
   return result;
 }

-private Result!(Sender.Value) syncWaitImpl(Sender)(auto scope ref Sender sender, StopSource stopSource) @safe {
+private Result!(Sender.Value) syncWaitImpl(Sender)(auto ref Sender sender, StopSource stopSource) @safe {
   import mir.algebraic : Algebraic, Nullable;
   static assert(models!(Sender, isSender));
   import concurrency.signal;

... but this patch segfaults DMD & LDC v2.101/2...


Enhancement/polls

Basic implementation of the polling systems.
The front-end gives basic pages (poll creation, editing, vote casting and results). Links with the threads pages are to be made.
The "color" feature is not implemented in the front-end while it is present in the back-end.

Apologies for not looking at this sooner.
Will review now, but from first impression there seem to be quite a few merge conflicts so might take a little time to merge properly :)

Copied all commits to feature/polls branch (b0b39f364a0f22a62dc857cdd04bf7ad80e2ae38) to resolve merge conflicts.

After a full review, and rewriting parts of this PR, I'm closing this as it does not fully comply with best practices.
Please see 0ce28d465c61efa0b75d9159b6466497e6dcfe94 for the upcoming PR implementing this functionality.
Nonetheless, thanks for doing all the base work for this functionality!


newCredential.response?.getAuthenticatorData is not a function

I'm trying to use KeePassXC's passkey support with WebAuthn.Net, and it fails.
My environment is Windows 11.

Install the latest snapshot version KeePassXC (only that one supports passkeys for now).
Start KeePassXC, open or create a database.
In the KeePassXC settings, enable the browser support, also install the Chrome extension.
In the browser extension settings, enable Passkey generator:

Try to register at https://webauthn.vanbukin.com

Expected result: same as with other passkey providers, it should generate a new passkey and authenticate.
Actual result: KeePassXC successfully shows its window to generate the passkey, but nothing happens after I generate it. The KeePassXC window just closes.
In the browser console, I see the following error message:
Uncaught (in promise) TypeError: newCredential.response?.getAuthenticatorData is not a function
    at completeRegistration (lib.js:129:71)
    at HTMLButtonElement.onRegisterButtonHandler (register.js:100:42)

Note that KeePassXC works well on the test site https://webauthn.io/, so I believe it is a problem with WebAuthn.Net.

newCredential.response?.getAuthenticatorData

Was invalid undefined/null check at demo lib.js, fixed at #5682d8a and now should work fine


[BUG] Submitting an issue to this repository results in a failed github action

To Reproduce
Open an [Image Update] issue #338
Observed Behavior
https://github.com/Azure/CloudShell/actions/runs/5631495354/job/15258501726

Access Denied: The Personal Access Token used has expired

Expected behavior
After submitting #338 I got notified about a failed github action by email
Is this specific to Cloud Shell?
No, it's an issue in the https://github.com/Azure/CloudShell repo
Interface information
N/A
Additional context
N/A

@marcindulak -- thank you for reporting this  -- We are investigating and will respond back here.

Hi @marcindulak -- Could you please retry the operation again and report if there are any additional error messages?

Currently another error is present https://github.com/Azure/CloudShell/actions/runs/6189136644, the github action fails with

HttpError: Bad credentials


Add Project statistics to Project Menu

Godot version:
3.2 e40aea7
Issue description:
It would be great if Godot would have a project statistics available in project menu from the top of editor.
I think that there should be info about:

number of scenes - tscn, escn, scn
authors
number of models - dae, gltf
number of materials
number of scripts - gd(not built-in), vs, cs
number of all imported things - jpg, cs, gd, dae
number of all not imported things - kra, txt, vhdl
language - gdscript, visualscript, c#, mixed(gdscript,c++)
time spent with project

I don't think we can store "time spent with project" accurately especially with the use of source versioning. Also, people may not want that.

Also, people may not want that.
Why wouldn't they? If they don't want to know, they just have to not have to look at the stats.

I think users might be OK with it, but building and maintaining such stat system is likely complex.
Indeed the stats cannot be computed before importing the project, as parsing all folders to compute stats is not acceptable. So, basically, we have to compute everything when saving the project. If we store it in the project folder, data is sharable but people will complain about files changing all the time in VCS, but if we store them locally, the stats won't be available until your import the project for the first time.
However, metadata like authors, license, etc... are likely easier to store in the project itself.

I think something like this would be cool too:

Time spent with project might be found out by subtrating the system time you opened the project from the system time you closed it and then adding it to some Total time spent variable

This would be not only fun for curiosity but could be used to get the general sense of a project, especially someone who's new to it.
IE. This project uses mostly one scripting language over the other so I should probably typically use that. Oh, they use 100% fbx, so I should maybe not use dae or obj.
However, anything that would need to be committed and therefore would cause a merge conflict in version control should be left out, disabled by default, or only be local to the user in a [dot]file/[dot]folder. Yes, I'm looking at you "Time spent with project". If a team wants to track time spent they'll do it through project management software or some other means.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


[pt-br] Add docs/concepts/services-networking/ingress.md

Add translation to Brazilian Portuguese:

pt-br/docs/concepts/services-networking/ingress.md
pt-br/examples/service/networking/default-ingressclass.yaml
pt-br/examples/service/networking/external-lb.yaml
pt-br/examples/service/networking/ingress-resource-backend.yaml
pt-br/examples/service/networking/minimal-ingress.yaml
pt-br/examples/service/networking/name-virtual-host-ingress-no-third-host.yaml
pt-br/examples/service/networking/name-virtual-host-ingress.yaml
pt-br/examples/service/networking/simple-fanout-example.yaml
pt-br/examples/service/networking/test-ingress.yaml
pt-br/examples/service/networking/tls-example-ingress.yaml

/cc @rikatz @stormqueen1990 @edsoncelio @devlware

@MrErlison I was checking the preview here, looks like some images are not fully rendering the all the text inside some boxes. Are you experiencing the same behavior?

/approve
/hold
Left some reviews, overall lgtm :)

lgtm

/lgtm

/unhold


Ctrl + click any tickbox in the settings to create a toggle on/off keybind

Not sure how UI friendly this would be, but I'm sure it'd be easier than only making certain options toggleable via keybinds, such as ground items, cannon hit spots, metronome, and boosted stats.

This should be specific to plugins, and seems like there is like almost no interest in this feature as its pretty generic. We already have open issues for both metronome, ground items and cannon (that shows the spots only if you have cannon in inv) so this issue is no longer relevant/way too much generic for no reason.

It’s meant to be generic, allowing users more freedom as far as customization goes. The fact it is generic means you, the developer, has to do less work WHILE allowing users to have a customizable interface. I still think this type of UI would be very useful. Not sure if you misunderstood this or what.

It would not actually mean less work. Also as I said we have issues open already for your examples, and doing it per-plugin should be better anyway since we have the new hotkey config type.

Fair enough. I haven’t been playing rs lately but since this was addressed I figured I’d address my original intentions for this issue. Anyways keep up the good work.

It would require more effort to add keybind toggles for any tickbox compared to specifically tailoring options per plugin?

Yeah. We already have quite easy way to create keybind for specific options and check for it being pressed when its plugin specific, but making it generic would require us actually making something that works with that.

Gotcha.


Post-It could be scrollable?

There was a request to have the Post-It be scrollable to account for long texts. BlishHUD doesn't natively support this and it will need to be looked into further to find a solution (or wait for BlishHUD core to add scrollability to Multiline Textboxes)

I really want a scroll here, because now I cant create another notes, I cant see the notes on the bottom of the page.

Yep, that's a problem. I'll make that a top priority item when I have time
to work on Blishpad.
I've got several enhancements I can do now that BlishHUD supports more
things...
On Fri, Apr 28, 2023, 1:18 PM Patrick Maciel @.***>
wrote:

[image: image]
https://user-images.githubusercontent.com/671670/235234228-4cd5c72c-b651-4139-897b-79a1ec2ceaf7.png
I really want a scroll here, because now I cant create another notes, I
cant see the notes on the bottom of the page.
—
Reply to this email directly, view it on GitHub
https://github.com/Snaid1/BHUD-Blishpad/issues/9#issuecomment-1527989752,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFTA4B7GU5CSVZ4LEE3DVXDXDQJYVANCNFSM5QK4CJRA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add support for time series graphs without having to explicitly import chartjs-adapter-date-fns

Hi,
This looks like a great library. It would be nice if there were direct support for time series graphs without having to import additional modules and call ReinitializeChart.
Perhaps it could also be possible to just specify modules that should be loaded during initialization, like the data labels plugin.

Ps. this is my current TimeSeriesChart component, that wraps all the set up stuff that's needed:
@using pax.BlazorChartJs
@implements IAsyncDisposable
@inject IJSRuntime jsRuntime
<ChartComponent @ref="ChartComponent" ChartJsConfig="ChartConfig" OnEventTriggered="EventTriggered"></ChartComponent>
@code {
    private Lazy<ValueTask<IJSObjectReference>>? moduleTask;
    private bool isRegistered = false;

    public ChartJsConfig ChartConfig { get; } = new ChartJsConfig()
    {
        Type = pax.BlazorChartJs.ChartType.line,
    };

    public ChartComponent? ChartComponent { get; private set; }

    protected override void OnInitialized()
    {
        moduleTask = new(() => jsRuntime.InvokeAsync<IJSObjectReference>("import", "https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@3/dist/chartjs-adapter-date-fns.bundle.min.js"));
    }

    private async void EventTriggered(ChartJsEvent chartJsEvent)
    {
        if (chartJsEvent is ChartJsInitEvent initEvent)
        {
            await RegisterPlugin();
        }
    }

    private async Task RegisterPlugin()
    {
        if (!isRegistered)
        {
            var module = await moduleTask!.Value;
            isRegistered = true;
            ChartConfig.Data = new ChartJsData()
            {
                Datasets = new List<ChartJsDataset>()
                {
                    new LineDataset() {
                        Label = "My First Dataset",
                        Data = new List<object>()
                        {
                            new { x = "2022-09-07", y = 20 },
                            new { x = "2022-09-08", y = 40 },
                            new { x = "2022-09-09", y = 20 },
                            new { x = "2022-09-10", y = 60 },
                            new { x = "2022-09-11", y = 70 },
                            new { x = "2022-09-12", y = 20 },
                            new { x = "2022-09-13", y = 10 },
                            new { x = "2022-09-14", y = 50 },
                            new { x = "2022-09-15", y = 30 },
                            new { x = "2022-10-01", y = 30 },
                        },
                        Fill = false,
                        BorderColor = "rgb(75, 192, 192)",
                        Tension = 0.1
                    }
                },
            };
            ChartConfig.Options = new ChartJsOptions()
            {
                Scales = new ChartJsOptionsScales()
                {
                    X = new TimeCartesianAxis()
                    {
                        Type = "time",
                        Time = new TimeCartesianAxisTime()
                        {
                            Unit = "minute"
                        }
                    }
                }
            };
            ChartConfig.ReinitializeChart();
        }
    }

    public async ValueTask DisposeAsync()
    {
        if (moduleTask!.IsValueCreated)
        {
            var module = await moduleTask.Value;
            module?.DisposeAsync();
        }
    }
}

I added a sample with one way to avoid the ReinitializeChart. Another would be to work with css hidden if the point is to avoid the flicker.
It is not possible to intergrate all available plugins the same way as the data labels plugin. Maybe there is a way to enable a general import of plugins but it might be a security issue if the library is able to load any javascript.

Thank you @ipax77. A few questions/comments:

I have multiple components on screen at the same time that all may show a time series graph (if toggled on), so I am fine with just preloading needed JavaScript once when the app first loads. Is it possible to do that from _Layouts.cshtml (I'm using Blazor Server) without it interfering with the BlazorChartJs bootstrapping?

I think plugin loading could just work by having the user (me) specify a NPM link to a plugin I want to load, and then pass an anonymous object with any configuration needed to ChartsOptions. When you ask System.Text.Json to serialize an anonymous object, it will just serialize it as is.

Ps. if you enable Discussions in the repo, we can use that for QA instead of issues, if you prefer. I have a few other questions I want to throw your way if possible. Otherwise, I am fine just creating new issues.

I enabled discussions - let's see how it works :)

Loading multiple charts does fetch the chart.js file only once (tested with Google Chrome), same with custom plugins
I can't think of a clean way to provide a general option at the moment, I've yet to think about it.

I am happy to answer any further questions and will answer them as best I can.


pull request for e2e test at 01/09/2017 12:45:10

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


code --status displays a lot of errors before actual status output

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.78.2 (installed via snap)
OS Version: Ubuntu 23.04

Steps to Reproduce:

Run code --status

[79076:0530/132835.062279:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present, cannot set Floss enable/disable.
libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
[79103:0530/132835.109953:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[79103:0530/132835.110053:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[79103:0530/132835.110092:ERROR:gl_display.cc(920)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
[79103:0530/132835.113137:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[79103:0530/132835.113194:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[79103:0530/132835.113230:ERROR:gl_display.cc(920)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[79103:0530/132835.113267:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed.
[79103:0530/132835.114696:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
[79114:0530/132835.177975:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[79114:0530/132835.178069:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[79114:0530/132835.178125:ERROR:gl_display.cc(920)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
[79114:0530/132835.181294:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Could not create a backing OpenGL context.
[79114:0530/132835.181394:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Could not create a backing OpenGL context.
[79114:0530/132835.181472:ERROR:gl_display.cc(920)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
[79114:0530/132835.181559:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed.
[79114:0530/132835.183344:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
[79134:0530/132835.219654:WARNING:sandbox_linux.cc(380)] InitializeSandbox() called with multiple threads in process gpu-process.
MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load driver: iris
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load driver: kms_swrast
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
failed to load swrast driver
Version:          Code 1.78.2 (b3e4e68a0bc097f0ae7907b217c1119af9e03435, 2023-05-10T14:47:05.613Z)
OS Version:       Linux x64 6.2.0-20-generic
CPUs:             Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 x 799)
Memory (System):  7.65GB (3.82GB free)
Load (avg):       1, 1, 1
VM:               0%
Screen Reader:    no
Process Argv:     --no-sandbox --force-user-env --unity-launch
GPU Status:       2d_canvas:                              unavailable_software
                  canvas_oop_rasterization:               disabled_off
                  direct_rendering_display_compositor:    disabled_off_ok
                  gpu_compositing:                        disabled_software
                  multiple_raster_threads:                enabled_on
                  opengl:                                 disabled_off
                  rasterization:                          disabled_software
                  raw_draw:                               disabled_off_ok
                  video_decode:                           disabled_software
                  video_encode:                           disabled_software
                  vulkan:                                 disabled_off
                  webgl:                                  unavailable_software
                  webgl2:                                 unavailable_software
                  webgpu:                                 disabled_off

CPU %	Mem MB	   PID	Process
    0	   157	 78834	code main
    0	    39	 78836	   zygote
    0	    63	 78889	     gpu-process
    0	    39	 78837	   zygote
    0	    63	 78875	   utility-network-service
    0	   282	 78906	window [1] (Visual Studio Code)
    0	   118	 78948	shared-process
    0	    71	 78994	     ptyHost
    0	    78	 78949	fileWatcher [1]
    0	   157	 78968	extensionHost [1]
    0	    63	 79018	     electron-nodejs (/snap/code/129/usr/share/code/code --ms-enable-electron-run-as-node /snap/code/129/usr/share/code/resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=78968)

Expected behaviour:
Just the status is displayed
Actual behaviour:
Lots of errors are displayed before the actual status output

--status will enable verbose logs from the runtime as well https://github.com/microsoft/vscode/blob/60bfd19afb29aec3171aef91d72e26eb2263c97f/src/vs/code/node/cli.ts#L191 . @bpasero do you know why runtime logs are enabled in this mode ?

I think the real issue here is enabling the electron verbose logging, which is not good I think.

This is fixed for the most part, but certain logs may still appear:

Hm, @SimonSiefke could you try your steps again using VS Code insiders: https://code.visualstudio.com/insiders/
@deepak1556 what would cause these low level messages to appear in the output, do you know?

Chromium will always log to stderr for messages that are of severity level ERROR or higher https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:base/logging.cc;l=613-630 when no explicit logging destination is provided. If we want to hide these messages, then a better way would be to separate the runtime logs to a separate file destination using --enable-logging=file --log-file=<path> https://github.com/electron/electron/blob/main/docs/api/command-line-switches.md#--log-filepath and ignore them for --status mode.

@deepak1556 could we pass in /dev/null unless --verbose is used? I am not convinced these messages are helpful, unless maybe we explicitly ask for it.

https://github.com/microsoft/vscode/pull/184031 ignores stderr unless verbose is used.

Can be verified with the build tomorrow (Friday) with the additional changes.

Now when I run code-insiders --status I get no output at all. I get some output with code-insiders --status --verbose. Is that the expected behavior?

@joyceerhl you should either a message saying you need to open a window to use this command, or something like this:

I'm on Windows and I do not see this message if the app was launched from the taskbar, but I do see this message after launching with the CLI

Yeah we have regressed the behavior on windows. It looks like we only had access to stderr on Windows when launching as ELECTRON_RUN_AS_NODE and routing the console output via https://github.com/electron/electron/blob/d818f35ad4ec44c83f21dd3656ef1072e196c34f/shell/app/electron_main_win.cc#L162, internally all node console outputs from the main application process were redirected to stderr. @bpasero I will bring back stderr for windows to fix the regression and can investigate why stdout is not available as follow-up.

Reopening this as it is not merged into release branch yet.

Verification

This needs verification on macOS, Windows and Linux
have one code insiders window opened
from the command line run code-insiders --status
verify you see status related output
verify you do not see Electron/Chrome related output such as [79076:0530/132835.062279:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present,

verified on windows

verified on linux

Uh, I see this error
$ code-insiders --status
Cannot read properties of null (reading 'on')

Verification

This needs verification on macOS
have one code insiders window opened
from the command line run code-insiders --status
verify you see status related output
verify you do not see Electron/Chrome related output such as [79076:0530/132835.062279:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present,

when I run that, I see
Cannot read properties of null (reading 'on')

as the output

@meganrogge the next insiders should include the required changes for https://github.com/microsoft/vscode/issues/183787#issuecomment-1574220690


Web console: fix bad results if there is not native bigint

This PR bumps the version of json-bigint-native to fix a bug where it would throw an error if BigInt was not defined (instead of doing a fallback).
This caused the results not to get parsed (due to the code in https://github.com/apache/druid/blob/master/web-console/src/singletons/api.ts#L37) and be returned as a string, which causes this madness:

This is on Safari 13.1 (which does not have BigInt yet)
Added a test to make sure there is a graceful fallback to number

nice test!

nice test!


fixed bug in ekf_premier_league file: issue #70

Remember to modify the docs themselves too (they're not currently clever enough to have the code only in one place 🙈)
https://github.com/normal-computing/posteriors/blob/cef163d3e2d893d87115661bbf3b415f65767eb2/docs/tutorials/ekf_premier_league.md?plain=1#L33

Ahh yes. thanks. updated docs as well.

Totally minor thing, but we may as well unify the formatting, so have the docs code on one line too. Good to merge after that!


FileDescriptors are exhausted

Seeing a fd leak on large scale tests.
Per Jinming:

Hi core sdk team, we recently found an fd leak issue during our large scale test, which will cause file descriptors to be exhausted after the process running for a few days.
I captured the fds opened by the process every 30 seconds, as we can see in the below graph. X-asix represents number of samplings. There are in total 659 samplings during 5.5 hours. Two kinds of fds kept increasing as time goes on, unix domain socket (purple line) and socket (pink line).
Maybe these two kinds of leak are related or maybe they are not. I investigated the unix domain socket leak as it looks worse. Typically unix domain socket can only be opened by two system calls, socketpair() and socket(AF_UNIX,). So I recorded all the system calls with strace. I found only socketpair() was called. Then I ran the program in gdb and set a breakpoint at SYSCALL 53 and got a stacktrace. It looks like the leak was in libcurl transport layer. I only found this issue on Linux but not on Windows. Maybe windows is not affected or maybe it’s just because Windows has a higher fd limit. Can you please help investigate this issue? Thanks.

Looks to be coming from
Azure::Core::Http::_detail::CurlConnectionPool::ExtractOrCreateCurlConnection

The issue is in:
sdk/storage/azure-storage-common/src/reliable_stream.cpp:
https://github.com/Azure/azure-sdk-for-cpp/blob/master/sdk/storage/azure-storage-common/src/reliable_stream.cpp#L39
When using the Reliable body stream, if there is a failure while reading from the network, the current code is calling release():
try
      {
        auto const readBytes = this->m_inner->Read(buffer, count, context);
        // update offset
        this->m_retryOffset += readBytes;
        return readBytes;
      }
      catch (std::runtime_error const& e)
      {
        // forget about the inner stream. We will need to request a new one
        // As m_inner is unique_pr, it will be destructed on reassignment (cleaning up network
        // session).
        this->m_inner.release();
        (void)e; // todo: maybe log the exception in the future?
        if (intent == this->m_options.MaxRetryRequests)
        {
          // max retry. End loop. Rethrow
          throw;
        }
      }

This causes the curl-session to be leaked. At any case, the expected call should be reset(), to call the dtor.  But calling release is just leaving the object in the head without a handler.
As a better, general practice, we should avoid calling reset() or release() to smart ptrs since we are losing the benefit of them and introducing this potential issues.
@Jinming-Hu, please remove the release() call, or replace it for reset() and try out your application. If you remove it, you need to adjust the logic to set the ptr to null, as I think you use it as a condition to request a new bodyStream...  that's why I am not creating a PR and leaving it to you to decide what to do.
The further explanation behind this issue is that it requires a failure to happen while reading a body stream which is more likely to happen on a 20TB download (the bigger the blob download is, the bigger chances to get a body-stream read failure)
This was an interesting issue, hard to debug. As a lesson learned I would ask again for not calling release()/reset() to unique ptrs as a guideline.  @RickWinter.  And review all other occurrences where there is a call to smart ptrs.Release() as a potential bug/leak.


IllegalArgumentException when parsing null value from DB into  Option[scala.math.BigDecimal]

Issue
For Option[scala.math.BigDecimal], in line 301 of DbCodec, it delegates to ScalaBigDecimalCodec.readSingle.
At Line 281 of DbCodec, rs.getBigDecimal(pos) returns null, which when passed to the constructor of scala.math.BigDecimal causes it to throw IllegalArgumentException.
To reproduce:
Setup of table and data:
CREATE TABLE IF NOT EXISTS test(
    test_id INT NOT NULL,
    my_big_decimal NUMERIC,
    PRIMARY KEY (test_id)
);

INSERT INTO test(test_id) VALUES (1);

Scala representation:
case class Test(@Id() testId: Int, myBigDecimal: Option[BigDecimal])

Query:
connect(ds)(sql"SELECT * FROM test WHERE test_id = 1".query[Test].run())

Result:
IllegalArgumentException("null value for BigDecimal")

Workaround
Declare field as Option[java.math.BigDecimal] instead and convert manually later.

Would changing OptionCodec.readSingle() to perform rs.getObject, then calling codec.readSingle() only if the result is not null be efficient enough?

Thanks for the report, I'll take a look soon!
On Fri, Feb 16, 2024, 3:45 AM William Haw @.***> wrote:

Would changing OptionCodec.readSingle() to perform rs.getObject, then
calling codec.readSingle() only if the result is not null be efficient
enough?
—
Reply to this email directly, view it on GitHub
https://github.com/AugustNagro/magnum/issues/20#issuecomment-1948242586,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQOKNRHLTQSIWI4JUALVMDYT5BGTAVCNFSM6AAAAABDL4LEEGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBYGI2DENJYGY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

If OptionCodec.readSingle() is changed to perform rs.getObject(pos), then call codec.readSingle() only if the result is not null, would this be efficient enough?

This is a good idea; but since we already propagate null in the case of the other type classes, it should be enough to do the same for ScalaBigDecimalCodec.
Please review the above MR, and then I will release v1.1.1

LGTM! Thanks!

Released v1.1.1: https://github.com/AugustNagro/magnum/releases/tag/v1.1.1


Enable advanced-instances tier?

Hi - I have high hopes for the sagemaker-ssh-helper, for which thanks!
After setup, upon running
ssh -i ~/.ssh/sagemaker-ssh-gw -p 10022 root@localhost

at the end I get:
An error occurred (BadRequest) when calling the StartSession operation: Enable advanced-instances tier to use Session Manager with your on-premises instances
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535

The error aside, does this mean the library will only work with the "advanced-instances tier"?? How does one know if one has this? I am trying to SSH into a plain old sagemaker instance... Help!

Hi, jtlz2! Thank you for your interest in SageMaker SSH Helper!
The error that you've shared is probably happening when you run one of the sm-local-ssh-* commands, before you ssh to localhost.
Indeed, it means that you need to enable the Advanced Instances Tier. This step is described in IAM_SSM_Setup.md in section 2h:

Enable advanced instances tier to use managed instances (such as SageMaker managed containers): Systems Manager > Fleet Manager > Account management > Instance tier settings > Change account setting > Confirm change from Standard-Tier to Advanced-Tier

As described in the Systems Manager doc, you need to enable it, because you're connecting to the hybrid-activated nodes. In case of SageMaker SSH Helper, these nodes are SageMaker containers.
Let me know if this answers your question.
Please, also note in #4 that "plain old" SageMaker Notebook instances are not fully supported by SageMaker SSH Helper at this moment.


Difficulty installing Music Mixing Style Transfer (Linux and Windows)

Hello, I am trying to create a colab for Music Mixing Style Transfer, but I am receiving the following error:
ERROR: Could not find a version that satisfies the requirement pymixconsole==0.0.1 (from versions: none)
ERROR: No matching distribution found for pymixconsole==0.0.1

Colab: https://colab.research.google.com/drive/1xjhfPaXrRBWjsik4o9BGaSHtcTN7vfHr?usp=sharing
I have tried removing the version "==0.0.1" and leaving only "pymixconsole", but the error remains.
How could I be solving this problem?
Note, I have already tried installing MMST on Windows, but I received exactly the same problem, I have not yet discovered the reason for the error and how to solve it.
We await your response, in advance my thanks.
Sincerely,
Lucas Rodrigues.

Hello Lucas,
Thank you for pointing this issue out. The installation command for pymixconsole is actually as follows:
pip install git+https://github.com/csteinmetz1/pymixconsole
which can be found at the official repository of the "pymixconsole": https://github.com/csteinmetz1/pymixconsole
I have now fixed the "requirements.txt" file to address this issue. Please let me know if there are any other issues to run the code.

Hello Lucas,
Thank you for pointing this issue out. The installation command for pymixconsole is actually as follows: pip install git+https://github.com/csteinmetz1/pymixconsole which can be found at the official repository of the "pymixconsole": https://github.com/csteinmetz1/pymixconsole
I have now fixed the "requirements.txt" file to address this issue. Please let me know if there are any other issues to run the code.

thanks, fixed it, now this other error happened:
ERROR: Could not find a version that satisfies the requirement torch==1.8.1+cu111 (from versions: 1.4.0, 1.5.0, 1.5.1, 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2, 1.11.0, 1.12.0, 1.12.1, 1.13.0, 1.13.1)
ERROR: No matching distribution found for torch==1.8.1+cu111

Hello Lucas, thanks for checking this.
I have now tested with the "requirements.txt" and I hope this installation process works now :)

Hello everything is fine? I tried to install, and now apparently it worked, but in the inference step, I'm getting this error:
Traceback (most recent call last):
  File "inference/style_transfer.py", line 22, in <module>
    from networks import FXencoder, TCNModel
  File "/content/music_mixing_style_transfer/mixing_style_transfer/networks/__init__.py", line 1, in <module>
    from .architectures import *
  File "/content/music_mixing_style_transfer/mixing_style_transfer/networks/architectures.py", line 75, in <module>
    import pytorch_lightning as pl
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/__init__.py", line 20, in <module>
    from pytorch_lightning import metrics  # noqa: E402
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/metrics/__init__.py", line 15, in <module>
    from pytorch_lightning.metrics.classification import (  # noqa: F401
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/metrics/classification/__init__.py", line 14, in <module>
    from pytorch_lightning.metrics.classification.accuracy import Accuracy  # noqa: F401
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/metrics/classification/accuracy.py", line 18, in <module>
    from pytorch_lightning.metrics.utils import deprecated_metrics
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/metrics/utils.py", line 29, in <module>
    from pytorch_lightning.utilities import rank_zero_deprecation
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/utilities/__init__.py", line 18, in <module>
    from pytorch_lightning.utilities.apply_func import move_data_to_device  # noqa: F401
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/utilities/apply_func.py", line 28, in <module>
    if _compare_version("torchtext", operator.ge, "0.9.0"):
  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/utilities/imports.py", line 53, in _compare_version
    pkg = importlib.import_module(package)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/usr/local/lib/python3.8/dist-packages/torchtext/__init__.py", line 6, in <module>
    from torchtext import _extension  # noqa: F401
  File "/usr/local/lib/python3.8/dist-packages/torchtext/_extension.py", line 64, in <module>
    _init_extension()
  File "/usr/local/lib/python3.8/dist-packages/torchtext/_extension.py", line 58, in _init_extension
    _load_lib("libtorchtext")
  File "/usr/local/lib/python3.8/dist-packages/torchtext/_extension.py", line 50, in _load_lib
    torch.ops.load_library(path)
  File "/usr/local/lib/python3.8/dist-packages/torch/_ops.py", line 104, in load_library
    ctypes.CDLL(path)
  File "/usr/lib/python3.8/ctypes/__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python3.8/dist-packages/torchtext/lib/libtorchtext.so: undefined symbol: _ZN5torch6detail10class_baseC2ERKSsS3_SsRKSt9type_infoS6_

what I researched has to do with torchtext..

Hello Lucas,
Could you try installing one of the following versions of torchtext?
pip install torchtext==0.9.1
pip install torchtext==0.8.0
I'm not so sure of the environment that you're using, so it would be great if you could check which version makes this work.

Hello Soumya,
Thanks for bringing this up, the commands I used to install soxbindings were as below (from here):
$ apt-get install libsox-fmt-all
$ apt-get install sox
$ pip install sox
If this is the way that you've tried and didn't work, could you please also refer me to the site that reported this issue?


Fix some more stream names to be IDs, and mark the rest

Our goal in this series isn't yet to resolve the issue #3918, but to
get to where it's easy to audit our code for the remaining things we
need to do to complete it.
The first 10 commits in this PR are focused on that. The remaining
6 commits go on to fix some of the remaining instances of the issue.
There are a handful of others that remain.

There are two kinds of searches one wants to do in such an audit:

(a) Searching for known instances of the issue, in order to find
remaining items to work on and eventually to confirm there are
none left.  For this, we want simple systematic patterns to
search for.

(b) Searching for yet-unknown instances of the issue.  This is
inherently fuzzier; one searches for patterns like /stream.name/
or /streamName/ or even /stream.*name/i to try to find code that
refers to stream names, which produce a lot of matches including
some legitimate uses and some that aren't even about stream names.
For this, the main thing we can do is make it as simple as
possible when reading such search results to confirm that a given
spot is a known instance of the issue, in order to focus on those
that might be unknown.

For the sake of (a), we add TODO-3918 comments at each instance
that's actionable on its own, and references to #3918 where there's
another TODO comment that the fix blocks on.
For the sake of (b), when a given instance of the issue pops up in a
number of scattered places (like the definition and each call site of
a given function that takes a stream name), we add references to #3918
at each of those places even when we only need one TODO comment.

I believe this covers all remaining instances of #3918.  That means
that every place we refer to a stream name should either:

be a legitimate use of stream names;
have a TODO-3918 comment; or
have a different kind of TODO comment (as it happens, always a
TODO-server comment), and a mention of #3918.

As a result, a search like git grep TODO..3918 will find all the
remaining places we need to act in order to close issue #3918,
according to the plan I described here:
https://github.com/zulip/zulip-mobile/issues/3918#issuecomment-1026479673
The broader search git grep -w 3918 will additionally find all the
places that are (known) instances of the issue but are blocked purely
on server upgrades.

Looks like there are some rebase conflicts, would you mind resolving those?

Sure -- done.

Thanks for the review! Merged.


pep8: remove the trailing spaces

A commit to remove the trailing spaces according to the instruction of pep8.
It is a simple commit and has low risk to affect the other components of the code.

We may discuss the flow to submit such commit so we may have a more efficient work flow.
For example, we may allow the contributors with the associated permission to commit this kind of fix to the master trunk directly without any PR review.
What do you think? @yungyuc  @yuhow


fix(sections): add unique key

Fixes #176

Codecov Report

Merging #185 into master will increase coverage by 0.08%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #185      +/-   ##
==========================================
+ Coverage   84.97%   85.05%   +0.08%
==========================================
  Files           1        1
  Lines         173      174       +1
  Branches       51       51
==========================================
+ Hits          147      148       +1
  Misses         11       11
  Partials       15       15

Impacted Files
Coverage Δ

src/Autosuggest.vue
85.05% <100.00%> (+0.08%)
:arrow_up:

Continue to review full report at Codecov.

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


Fixed typos on lines 20 & 32

[x ] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[ x] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[ x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Hi @a-Daley,
Thanks for the PR but seems like there was another older PR which fixed the changes you made.
Sorry for that, but feel free to open a new one in future.
Happy coding.


🍒 Cherry pick PR #5923 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/App/pull/5923 to staging 🍒

🚀 Deployed to production by @roryabraham in version: 1.1.8-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Changelog

Just saw that 0.7 had been released - would be great if there was a changelog to aid in upgrading :)

That's a great idea! I'll try and start including this for future releases, and try to summarize the 0.6.x -> 0.7.x changes as well.
IIRC, 0.7 was just to bump the dependency on heapless, and to support const-generics (and remove the dependency on typenum).

Started doing this in v0.7.1! Thanks again for the suggestion :)


ReactTable column refresh by selecting with "" dropdown value

Hi, everyone.
Please let me know kindly about my issue.
I am using custom dropdown for reacttable filtering.(every colum has own filter method.)
All are working correctly, but not working to show original column list with setting "all" item in select.
I was set as like following.

colume setting
{
Header: translations['cocom'],
accessor: 'cocom',
Filter: ({ filter, onChange }) =>
<FilterDropdown dropdownData={(value)=>
{onChange({filterValue:value}); console.log(value);}} value={this.state.filterValue}/>
}

FilterDorpdown
 renderItems() {
  return this.state.dropdownItems.map(function(data, key){
      if(data.label == "All"){
          return ( <option key={key} value="">{data.label}</option>) ;
      } else {
          return (<option key={key} value={data.label}>{data.label}</option> );
      }
  })
}

handleChange = (e) => {
    const { name, value } = e.target;
    const { selectedDropDownValue } = this.state;
    this.setState({
      selectedDropDownValue: value
    }, () =>{
       this.props.dropdownData(this.state.selectedDropDownValue);
    });
}

 render() {
    let key = this.props.id || 0;
    return (
      <div>
           <select name={key} onChange={this.handleChange}>
                {this.renderItems()}
           </select>
       </div>
     );
}

But in this https://react-table.js.org/#/story/custom-filtering, I was setting as like following attached image
http://prntscr.com/jk03y4
Mean's to set filter value with "", then working to show original list.
What is my fault using this?
Hope to get kindly teaching.
Regards.

Closing as part of our long-overdue issue cleanup. If this issue was a question, please ask it again on https://spectrum.chat/react-table. If you think this issue needs to be reopened or if it should be turned into a pull-request, please check the latest version of React-Table for the issue or feature once more and reopen or create a PR if appropriate. Thanks!


(docs) Revise reduce function docs.

One last formatting glitch that needs fixing, and then we're good to go.

Cool. I'm gonna merge as soon as the travis build finishes.


Problems with Cookiecutter + Docker + PyCharm

Hello everyone!
I have some issues getting comfy with Cookiecutter, Docker and PyCharm.
I'm using current commit ( https://github.com/pydanny/cookiecutter-django/commit/d95bdc6a378062382c536da07364bf8c46f8ea9c ) with latest PyCharm Professional (2018.2.2) and latest docker-ce (18.06.1 ce) and latest docker-compose (1.22.0) on Ubuntu 18.04.1 LTS.
One of my biggest problems is, that the manage.py shell doesn't work as it used to in earlier versions of Cookiecutter. Things like createsuperuser and shell worked flawlessly before.
Now I get errors trying to do this. For example this appears when trying to call on the manage.py shell via CTRL+ALT+R (calling manage.py) and running shell:
docker-compose -f ...PROJECT/local.yml -f .../.PyCharm2018.2/system/tmp/docker-compose.override.362.yml run --rm -p <IP_ADDRESS>:33593:33593 django
Starting janustats_mailhog_1 ...
Starting janustats_pycharm_helpers_1 ...
Starting janustats_mailhog_1         ... done
Starting janustats_postgres_1        ...
Starting janustats_postgres_1        ... done
Starting janustats_pycharm_helpers_1 ... done
import sys; print('Python %s on %s' % (sys.version, sys.platform))
import django; print('Django %s' % django.get_version())
sys.path.extend(['/opt/project', '/opt/.pycharm_helpers/pycharm', '/opt/.pycharm_helpers/pydev'])
if 'setup' in dir(django): django.setup()
import django_manage_shell; django_manage_shell.run("/home/.../.../PROJECT")
Python 3.6.6 (default, Aug 22 2018, 20:48:31)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.
PyDev console: using IPython 6.5.0
Python 3.6.6 (default, Aug 22 2018, 20:48:31)
[GCC 6.4.0] on linux
Django 2.0.8
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/environ/environ.py", line 273, in get_value
    value = self.ENVIRON[var]
  File "/usr/local/lib/python3.6/os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'DATABASE_URL'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2961, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-1-2c10784a87dc>", line 6, in <module>
    if 'setup' in dir(django): django.setup()
  File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/usr/local/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python3.6/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python3.6/site-packages/django/conf/__init__.py", line 106, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/opt/project/config/settings/local.py", line 1, in <module>
    from .base import *  # noqa
  File "/opt/project/config/settings/base.py", line 41, in <module>
    'default': env.db('DATABASE_URL'),
  File "/usr/local/lib/python3.6/site-packages/environ/environ.py", line 204, in db_url
    return self.db_url_config(self.get_value(var, default=default), engine=engine)
  File "/usr/local/lib/python3.6/site-packages/environ/environ.py", line 277, in get_value
    raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: Set the DATABASE_URL environment variable

Running migrate and runserver from the predefined run/debug configs works. Copying the migrate config and changing "migrate" to 'createsuperuser' or 'shell' doesn't work. (No debug information to be seen, just an either exiting or seemingly freezing container.)
I've checked the pycharm configuration.rst but couldn't find hints to my problem there.
Please help me to find out how to properly call upon the manage.py shell and how to createsuperuser within PyCharm using docker-compose again. Sorry in advance if I missed something in the documentation regarding my problem.

It seems that there might be a problem with the PyCharm editor. When making migrations I see
janustats_mailhog_1 is up-to-date
Starting janustats_pycharm_helpers_1 ...
janustats_postgres_1 is up-to-date
Starting janustats_django_1          ...
Attaching to janustats_django_1
django_1           | PostgreSQL is available

and then nothing.
When running in terminal, I see the question if I have renamed a model to another name and can answer to it.
So I guess it's something PyCharm related, any ideas how I could let PyCharm correctly "hook" into the docker-provided shell?

Settings -> Project Interpreter -> Add -> Docker-compose -> Choose the local.yml compose file
I believe this is available only for the pro version, not the community version.

Thank you very much @sfdye for pointing this out, I'll try it out when I'm at my PC again. I have the pro version, indeed, so I hope I won't run into problems.

Hey @sfdye , it seems that I already have this setting:

Any other ideas or hints on what I should try/provide? 😦

How about just from command line:
docker-compose -f local.yml run django python manage.py createsuperuser

As mentioned in https://github.com/pydanny/cookiecutter-django/issues/1766#issuecomment-416590222 running docker-compose commands in terminal (command line) works just fine.
Working with cookiecutter templates within PyCharm and docker worked a few months before, flawlessly. You could execute the manage.py shell within PyCharm and everything.
Either something within PyCharm or cookiecutter must have changed, I believe. I hoped someone could have an idea what we could try.

What version of PyCharm are you using?

I just tried, "Run manage.py Task" works fine for me but "Python Console" failed with the same error. Running manage.py shell from command line works fine too. So I am afraid this is now a PyCharm issue.

I love PyCharm - but why not close this issue. It's generally a better practice to use a shell as a shell ...

You're stunting your productivity if you're staying in an IDE-embedded shell 😬

To run "runserver" I agree. However, it's simpler to just click on green arrow on side of function and say "Run 'Unittests for function X'" than type a long text in terminal.
BTW: I'm having the same problem to run tests.

I had the same problem and I found a way to partially solve this problem by manually adding the environment variable DATABASE_URL

If someone feels like contributing, I'll be happy to help people who want to tackle this.
I suspect the changes should be done inside the .idea directory, it's most likely because our config was generated for a version of Pycharm from a few years ago.
How to get started? First thing is to see what's wrong in our config, we can do it by following the steps below (I think):

Generating a dummy project with use_pycharm=y
Remove the .idea entries from the dummy project .gitignore:
https://github.com/pydanny/cookiecutter-django/blob/b039e241302deeeec211ea5bf80c61254dede022/{{cookiecutter.project_slug}}/.gitignore#L174-L195
Git add and commit everything
Open the project in PyCharm, fix all the config
Do a git diff to see what's changed, or better, commit and push a public repo that can be shared here

Even without sending a pull request, just doing the above steps would be super helpful.

The compose/production/django/entrypoint scripts adds the DATABASE_URL and CELERY_BROKER_URL env variables. Pycharm does not use the entrypoint script and therefore the variables are missing.
Add the next code after the import statements in File | Settings | Build, Execution, Deployment | Console | Django Console fixes the issue.
import os
os.environ.setdefault("DATABASE_URL","postgres://{}:{}@{}:{}/{}".format(
    os.environ['POSTGRES_USER'],
    os.environ['POSTGRES_PASSWORD'],
    os.environ['POSTGRES_HOST'],
    os.environ['POSTGRES_PORT'],
    os.environ['POSTGRES_DB']
))
os.environ.setdefault("CELERY_BROKER_URL", os.environ['REDIS_URL'])

Pycharm stores this setting in .idea/workspace.xml. Adding this file will solve the issue I hope.

@browniebroke Should the above commit also be merged?


Promote next event

Promote next workshop
This PR also adds links to the 2 GBI events

See https://snoopycrimecop.github.io/www.openmicroscopy.org/

All looks good, but maybe i do not understand - Basel is the next event (still as of now). This will be deployed on Monday or Wednesday ?

It will be deployed mid-week post Basel

Ready to merge then. Thank you

Yep - looks good.

@will-moore @mtbc updated

Merging so we can update front page


Terragrunt plugins prototype

Description
Fixes #000.

TODOs
Read the Gruntwork contribution guidelines.

[ ] Update the docs.
[ ] Run the relevant tests successfully, including pre-commit checks.
[ ] Ensure any 3rd party code adheres with our license policy or delete this line if its not applicable.
[ ] Include release notes. If this PR is backward incompatible, include a migration guide.

Release Notes (draft)

Added / Removed / Updated [X].
Migration Guide

Changes included in https://github.com/gruntwork-io/terragrunt/pull/3218


Added react-native-material-showcase-ios & react-native-taptargetview libraries

Hi @jimmylee
This is with reference to issue: 87 & 84. As guided I have added both libraries in react-native-libraries.json file
Can you please merge this PR. Please let me know in case any changes are required
Thanks
Pranav

They look good! Thanks @prscX


Extend generators endpoint

What was the problem?
This PR resolves #1606
How was it solved?

[x] Added search functionality to generators endpoint
[x] Updated swagger
[x] Updated docs
[x] Added integration tests

How was it tested?

[x] By running testcases
[x] By running APIs

Please also update the description for search in Swagger docs, if applicable.

Search description is already up to date.


Using the invitation link while also logged in as a Google user

Chris Gooch of Parramatta tried to login on staging but as he was also logged in with his private Google account, he got an ugly error message, see screenshot.
The whole process and 403 errors were very confusing to him. I'm not sure what steps he actually tried, but maybe this situation should be tested to see what happens exactly.

Based on my test experience: When opening an invitation link you are directed to the login page. Here you have the options to login through Google, specific Corporate ID or existing AWS Cognito credentials or create an account (sign up option). Chris will have opted for Google, instead of using his existing Lizard credentials (he will already have been registered with his work email through Lizard production).
As the login screen is the standard for AWS Cognito I guess there is no way to make it more clear to the user what could go wrong when choosing the wrong login option.
This message of mismatching email between invitation and login is quite clear to me. The one you get when you log in with an unregistered Google/Corporate ID without an invitation is more ambiguous to me (nens/lizard-nxt#4754).
@caspervdw Any thoughts on this? Otherwise I think it can be closed.

I think this is precisely as you described.
Signing in with Google, Corporate ID or AWS Cognito/SSO credentials are all different methods which lead to different external user ids. So when Chris signs in via Google he really is "somebody else"  than if he signs in via AWS Cognito/SSO. So he can't use his work email privileges (access to lizard) or accept invitations intended for its work email.
From the perspective of Lizard you can't make the message more informative because there is no way to connect the private and work accounts.
Connecting accounts in general is a tricky subject which we avoid.


Fixed modelFactoryFor bug.

Fixes #251 .

Nice! thats for fixing this up. LGTM

@jakesjews I'm going to go ahead and cut 2.11.2. I don't foresee any more changes between now and 2.12 releasing. Sound good?

Sounds good to me


[FLINK-29345] Create reusing reader/writer config in orc format

Currently OrcFileFormat will create new org.apache.hadoop.conf.Configuration instance in methods createReaderFactory and createWriterFactory. The initialization of org.apache.hadoop.conf.Configuration tries to load local file core-site.xml.
This PR will initialize the writerConf and readerConf of org.apache.hadoop.conf.Configuration and reuse them in createReaderFactory and createWriterFactory.

Hi @JingsongLi
I create this new PR for FLINK-29345. I find the ThreadLocalClassLoaderConfiguration in OrcBulkWriterFactory can't be removed while it is used to avoid classloader leaks and the detail is in the docs of ThreadLocalClassLoaderConfiguration.
I have created writerConf and readerConf of org.apache.hadoop.conf.Configuration and reuse them in createReaderFactory and createWriterFactory


more fixes

Attr 'corresondence' to 'correspondence' with sheetworker
lower DP1 roll missing closing bracket
science and politics swapped

Thanks Phil
On Mon, Apr 4, 2016 at 3:13 PM, Phil<EMAIL_ADDRESS>wrote:

Merged #1550 https://github.com/Roll20/roll20-character-sheets/pull/1550
.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/Roll20/roll20-character-sheets/pull/1550#event-614188409


fela-sort-media-query-order enhancer

Description
Adds an enhancer to automatically sort the mediaQueryOrder in a mobile-first approach.
Versioning
Minor
Checklist
Quality Assurance

You can also run yarn run check to run all 4 commands at once.

[x] The code was formatted using Prettier (yarn run format)
[x] The code has no linting errors (yarn run lint)
[x] All tests are passing (yarn run test)
[x] There are no flow-type errors (yarn run flow)

Changes
If one of the following checks doesn't make sense due to the type of PR, just check them.

[x] Tests have been added/updated
[x] Documentation has been added/updated
[x] My changes have proper flow-types

LGTM :) 👍


Placeholder for extending Hadoop Bad Rows with JavaScript support

The idea is that you pass in a JavaScript function which lets you fixup the bad rows for reprocessing.

This is genius

This would allow eg:

Write a JavaScript function that inspects the error messages on the bad rows, and where it sees error messages that indicate that a given field caused an issue, mutate the given field to a safe value


Support OpenAPI example field

Hello,
Is there any way to add the example property to the generated OpenAPI?
I'm interested to use this for DTOs. This is usually possible when declaring DTOs manually with the ApiProperty decorator, but I'm not sure how to do it when using createZodDto.
Thanks!

Hello, @MihaiVoinea @risenforces any updates on this?

I found possibility to add example and more metadata to property in zod-openapi:
https://github.com/anatine/zod-plugins/blob/main/packages/zod-openapi/README.md#extend-a-zod-schema-with-additional-openapi-schema-via-a-function-wrapper
I will be cool if it will be added to nestjs-zod

I ended up switching to zod-openapi & zod-nestjs from @anatine for the time being. Those support this and other useful things.

I won't add the same API, since it's very poorly designed. I'll try to find some better option and come back

I think there may be an option to override all basic Zod types and add example property, but I assume it will have consequences.

Hi
Can we specify this in the README so people can judge the tradeoffs before committing to this option?

@risen228 do you have any updates about this issue?


ng update to v9 fails with invalid semver in package.json

Is this a regression?
Yes, the previous version in which this bug was not present was: .8.2.13
Description
ng update fails if package.json version is not fully semver (x.x.x).
Minimal Reproduction
$ ng new blah
$ cd blah
$ ng update rxjs
# Found 30 dependencies.

Edit package.json to change "version":  "0.0".
$ ng update rxjs --allow-dirty
Found 0 dependencies.
Package 'rxjs' is not a dependency.

Is there any particular use case for non-semver version numbers? AFAICT, NPM requires the version field to be semver (emphasis mine).

Version must be parseable by node-semver, which is bundled with npm as a dependency. (npm install semver to use it yourself.)

It doesn't really define what that format is, but instead defers to the implementation of semver, which does not consider it to be valid:
const semver = require("semver");
semver.valid("0.0"); // null

Is there a specific use case you want us to support, or is this simply a matter of having a clearer error message about the problem?

From our side, we don't use semver, but a combination of {year}-{dayOfYear}-{GitHash}
So when we upgraded to v9 and met this restriction, we just set the version to 0.0.0, stopped using it, and created another field to store our real version.
I'm sure npm registries already enforce semver when you try to add it, so why make enforcement mandatory when it may be the top level package and never get installed via npm

@Stexxen, you can continue to  use semver if you are willing to change to
{year}{dayOfYear}+{GitHash}

^ that's one - removed and another one replaced with +, it's in the spec.
<version core> ::= <major> "." <minor> "." <patch>
<valid semver> ::= <version core> "-" <pre-release> "+" <build>

So for today, which is day 150 of 2020, you can use 1.0.0-2020150+daf6b1c8 and this will allow you to keep using the package.json version field and also have the required info. And as a bonus, you can increment the <version core> whenever you wish, or you can continue to use the same <version core> and just increment the <pre-release> part and the <patch> part

@SchnWalter wow, I had no idea the semver spec has so much flexibility.
Thanks for this. I think we can use semver afterall 👍

Great! Most people don't realize semvers are that flexible (I didn't either until a month or two ago).
We could probably do a better job of communicating the error, but this is a pretty specific condition, so I think I'll just close the issue unless we start seeing this recur frequently enough to warrant a fix.


Make the location where module analysis cache and other files are stored customizable

Summary of the new feature/enhancement
As a user, I want to be able to override the location where module analysis cache, startup profile data, telemetry.uuid, etc. are created by PowerShell, so that a more appropriate path can be configured when needed. The location PowerShell selects now causes a problem in Azure Functions: https://github.com/Azure/azure-functions-powershell-worker/issues/365.
Proposed technical implementation details
Platform.CacheDirectory is an internal variable initialized here (Windows):
https://github.com/PowerShell/PowerShell/blob/a34d0f3e808659b0c07b8fdac83aaae1dae43c21/src/System.Management.Automation/CoreCLR/CorePsPlatform.cs#L149
The problem is that the Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) call returns an empty string in certain environments (such as Azure App Service sandbox). As a result, PowerShell creates (of fails to create) files at an unexpected location (see https://github.com/Azure/azure-functions-powershell-worker/issues/365 for more details).
This problem can be avoided if PowerShell either automatically selected a different location, or allowed us override the default location.
Implementation ideas:

Instead of just invoking Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), look for an environment variable with a certain name (PSCacheDirectory? PSOverrideCacheDirectory? we need to find a good name). If the variable is present, use it. Otherwise, use the default location.
Alternatively, give just PS SDK users an API to set this location. This would be enough to mitigate the issue with Azure Functions. Implementing this would be somewhat challenging though, since Platform.CacheDirectory is a static variable, and it is initialized and used early. Also, there could be scenarios that require using pwsh.exe anyway.

@AnatoliB PowerShell already will use a path defined in env var PSModuleAnalysisCachePath if it exists, otherwise it uses the default path

@SteveL-MSFT the only place I can find that documentation is here: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_windows_powershell_5.1?view=powershell-5.1
I think we might want to put that information in a more accessible place; that's certainly not where I'd be looking for information on PowerShell v6 and up.

@vexx32 it should probably be documented here: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-7#environment-variables-that-store-preferences.  I'll submit a PR.

@SteveL-MSFT I see, thank you. From looking at the code, though, my impression is that it applies literally to the module analysis cache only. There are other files (e.g. telemetry.uuid, StartupProfileData*) still created under Platform.CacheDirectory. Can/should we move them, too?

@AnatoliB yes, that env var is literally just the for the module analysis cache.  We should probably have a setting in powershell.config.json to set that path if defined.  In the case that it's not defined in powershell.config.json and that API call returns an empty string, perhaps we should use the temp path?

@SteveL-MSFT Yes, an optional setting in powershell.config.json and the fallback to temp works for me.

@vexx32 doc PR here: https://github.com/MicrosoftDocs/PowerShell-Docs/pull/5479

Try setting the $ENV:TMP environment variable:
PS[1] (11) > $env:tmp = "c:\temp"                                                                                PS[1] (12) > [io.path]::GetTempFileName()
c:\temp\tmpB23F.tmp
PS[1] (13) >

Should we move PSModuleAnalysisCachePath to config file too for consistency?


Update Romana details

omit it as an example from CNI-Genie
update the hyperlink

Follows on to https://github.com/kubernetes/website/pull/32834
As a separate piece of work, it'd be great to switch to using the CNCF Landscape for this list - see https://github.com/kubernetes/website/issues/32778
This PR is not that fix.

@sftim GitHub says that this branch has conflicts that must be resolved.
Please resolve conflicts. :)

This is ready for review

/approve

@sftim You deleted the 'Contiv' line in this PR. I wonder this was what you intended, or an accidental one.

Hmm. I think that was an accidental removal. Oops.


flushing cache effect on throughput

When running a model with --model-mode flashinfer (I have tested mistralai/Mistral-7B-Instruct-v0.2), for a large batch (eg 50,000 text input), I usually see that the throughput is high the first few minutes and then it starts degrading.
Does using flush_cache every few iterations (like in steps of 256 iterations) create any improvement? Does this make sense to create bathces of 256 and do http://<IP_ADDRESS>:80000/flush_cache upon sending the request for each batch?

That depends on your use cases. If you only get high throughput in the first few requests, I imagine your requests have less common prompts so that you barely benefit from RadixAttention but suffer from cache eviction overhead. In this case flushing cache may help with throughput.

Thanks! My requests all have a common prefix (sys prompt), but they are diverse after the prefix.

That should still benefit from RadixAttention, so you shouldn't see throughput dropping after a while unless your system prompt is very short. Anyways you can firstly try to flush cache every N requests to see if that helps.

@comaniac  This thread is fascinating.  My naive question is how can cache evictions have such high cost for RadixAttention as to cause throughput slowdowns? I assume the caches are just mapped blocks of gpu memory (non-contagious) and on cache eviction one may need to del them and/or  some segmented memory merges? Doesn't cuda offer async memory ops? Again, I come from the point of curiosity as how such ops can be a bottle neck.


Code syntax out of date

componentWillMount has been renamed, and is not recommended for use
componentWillReceiveProps has been renamed, and is not recommended for use
componentWillUpdate has been renamed, and is not recommended for use
I don't have that in my code

大佬们  控制台报这个警告     有时间可以处理一下吗