🐞 Codegen changing causing inconsistent func names across Go SDK module and dependency in case of protocol in name

What is the issue?
tl;dr I suspect that codegen is trying to make certain keywords or acronyms consistent and thus using TCP instead of Tcp, for example. We need to look into that, ensure we know and like the behavior, and document it. My suspicion seems to be confirmed when I use Foo instead of protocol names (see below). This has the effect that a Go SDK function dependency might have a TcpTest function, but to call it in the module that installed the dependency, you'd have to use TCPTest which is very confusing. We document these cases and perhaps should alert or fail on the use of names that will cause this issue (or alternatively change the behavior in codegen).
I suspect this is due to the "Common Initialisms" used bygqlgen
https://github.com/dagger/dagger/blob/main/go.mod#L9
https://github.com/99designs/gqlgen/blob/master/codegen/templates/templates.go#L709-L763
@helderco please confirm
@vikram-dagger if this is the case, we could document the initialisms to watch out for. Not sure if there are similar initialisms in Python or Typescript or other SDKs.
When you use a function name that contains a protocol name like TCP, UDP, IP, HTTP, HTTPS, many Golang users would assume they should use PascalCase for their public function names, for example, TcpTest or HttpsTest, but when those function names are run through codegen in the Go SDK at least, certain substrings (containing protocol names, for example) are upcased. So the functions above become TCPTest and HTTPSTest. This has the effect that a Go SDK function dependency might have a TcpTest function, but to call it in the module that installed the dependency, you'd have to use TCPTest which is very confusing.
On the other hand, a function name like FooTest results in FooTest in the codegen.
Dagger version
dagger v0.11.0 mac
Steps to reproduce
https://discord.com/channels/707636530424053791/1229172690082857173/1229172690082857173
https://github.com/jpadams/main/blob/main/dep/main.go
package main

type Dep struct{}

func (m *Dep) TcpTest() string {
    return "TcpTest"
}
func (m *Dep) UdpTest() string {
    return "UdpTest"
}
func (m *Dep) IpTest() string {
    return "IpTest"
}
func (m *Dep) HttpTest() string {
    return "HttpTest"
}
func (m *Dep) HttpsTest() string {
    return "HttpsTest"
}
func (m *Dep) FooTest() string {
    return "HttpsTest"
}

git clone https://github.com/jpadams/main
cd main

# Tcp -> TCP
grep -rin tcptest | grep func
./internal/dagger/dagger.gen.go:1967:func (r *Dep) TCPTest(ctx context.Context) (string, error) {
./dep/main.go:5:func (m *Dep) TcpTest() string {

# Https -> HTTPS
grep -rin httpstest | grep func
./internal/dagger/dagger.gen.go:1894:func (r *Dep) HTTPSTest(ctx context.Context) (string, error) {
./dep/main.go:17:func (m *Dep) HttpsTest() string {

# versus FooTest
grep -rin footest | grep func
./internal/dagger/dagger.gen.go:1870:func (r *Dep) FooTest(ctx context.Context) (string, error) {
./dep/main.go:20:func (m *Dep) FooTest() string {

Or open main.go in VSCode

I suspect this is due to the "Common Initialisms" used bygqlgen

You're right that it originally came from there, but we've managed our own fork since the very beginning of the Go SDK, in codegen. There's a couple Dagger additions as well:
https://github.com/dagger/dagger/blob/bdce95d0abfa9014a35f5e3962a64afce03d5fca/cmd/codegen/generator/go/templates/lint_name.go#L122-L124
This is the underlying problem of:

https://github.com/dagger/dagger/issues/6669

Difference is you're talking about the choice of function names, while that's about the struct's name (module name). So a module initialized with --name=ssh created a struct named Ssh. In that particular case, there was a compilation failure which was fixed in https://github.com/dagger/dagger/pull/6692, but you make a good point:

This has the effect that a Go SDK function dependency might have a TcpTest function, but to call it in the module that installed the dependency, you'd have to use TCPTest which is very confusing.

I agree. With the introduction of modules and putting API schema expansion on the hands of users, doing the initialisms doesn't seem worth the potential confusion. At least not in an automatic way like today.
Here’s another fun one for you:

https://github.com/dagger/dagger/issues/6310

The way I’ve wanted to fix the inconsistency is through:

https://github.com/dagger/dagger/issues/5226

You can see nameWords() in the codegen module:
❯ dagger -m<EMAIL_ADDRESS>call introspect get-type --name=Container fields name-words
as service
as tarball
build
default args
directory
entrypoint
env variable
env variables
experimental with all GPUs
experimental with GPU
export
exposed ports
file
from
id
image ref
import
label
labels
mounts
pipeline
platform
publish
rootfs
stderr
stdout
sync
terminal
user
with default args
with default terminal cmd
with directory
with entrypoint
with env variable
with exec
with exposed port
with file
with files
with focus
with label
with mounted cache
with mounted directory
with mounted file
with mounted secret
with mounted temp
with new file
with registry auth
with rootfs
with secret variable
with service binding
with unix socket
with user
with workdir
without default args
without entrypoint
without env variable
without exposed port
without focus
without label
without mount
without registry auth
without unix socket
without user
without workdir
workdir

The intent there is for SDKs to codegen based on this common base, rather than the lower level GraphQL introspection and everyone figuring out and implementing the same rules all over.
Notice how GPU capitalization is preserved:
experimental with all GPUs
experimental with GPU

This way it’s easier to convert to any naming convention because you don’t have to worry about preserving capitalization in any non-first letter:

camelCase: capitalize only the first letter of second to last words, and concatenate them
PascalCase: capitalize only the first letter of every word, and concatenate them
snake_case: lower case every word and join with underscore
kebab-case: lower case every word and join with dash

Example (not how it looks today!):

GraphQL: experimentalWithAllGPUs
Go: ExperimentalWithAllGPUs
Python: experimental_with_all_gpus (today it ends in gpu_s!)
TypeScript: same as GraphQL

But, codegen here works off of the API, so we need to try and persist the capitalization in acronyms in user modules when creating the API fields, like the above example.
So, let’s say the core API defines ContainerID, everything works the same from codegen, but Go would preserve the capitalization rather than force it. If a module creates a GetContainerID, it would produce getContainerID in the API. But the module uses GetContainerId, that would create a getContainerId in the API. In both cases it would look the same in the module and in a generated client.
The problem now is it’s a breaking change for Go and Typescript modules that depend on a module that uses acronyms without being capitalized (like TcpTest).


NFTs fractionalization

Description:
As discussed, this is a pallet that does the following:

Takes ownership of an NFT from the pallet-uniques
Creates a new asset in pallet-assets
Mints the input amount to the previous owner of the NFT as the beneficiary

Questions to clarify:

For the created asset, currently the owner is the previous NFT owner, and the admin is the pallet
Need to add a public getter to pallet-assets to query overall minted amount of a new asset
Or keep track of it in the pallet storage, which is convenient if only the pallet can mint

Next steps: add unlocking functionality

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2155536

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2159244

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2159243

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2159245

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2159237

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2159354

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2159677

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2161785

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2162805

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2187891

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2187985

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2193204

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate-macos
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208580

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208567

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208577

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208568

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208566

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable-int
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208573

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208563

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2208578

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate-macos
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2213755

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2213742

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2213741

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2213737

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2213743

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate-macos
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225972

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225969

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225970

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable-int
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225965

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225958

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225959

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225954

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225960

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2225955

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2325025

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2325665

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2365998

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2366000

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2365994

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2365999

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2366571

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2366572

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2366566

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2366570

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2385254

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2385239

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2385709

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2603049

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2690724

bot bench $ pallet dev pallet_nft_fractionalization

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2692726

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-each-crate
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2702667

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable-int
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2761200

bot rebase

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2845885

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2845887

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2845886

bot bench $ pallet dev pallet_nft_fractionalization

bot bench $ pallet dev pallet_nft_fractionalization

bot clean

bot bench $ pallet dev pallet_nft_fractionalization

bot rebase

bot merge


Can't set GitRepository Labels

We're trying to set labels on GitRepository objects, and we've seen that while we can set them when we apply the file directly, eg:
> kubectl apply -f my-repo.yaml

for a file:
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: my-repo
  namespace: flux-system
  labels:
    branch: master
    id: "my-id"
    gitops.appsflyer.com/my-label: "test-value"
spec:
  interval: 30s
  ref:
    branch: master
  url: ...
  secretRef:
    name: flux-system

we can see the labels:
❯ kubectl get gitrepo -n flux-system -oyaml my-repo | yj | jq .metadata.labels
{
  "branch": "master",
  "gitops.appsflyer.com/my-label": "test-value",
  "id": "8412"
}

However, when we push that file to our fleet repo, they doesn't get set, and are instead overwritten with kustomize.toolkit.fluxcd.io/... labels:
❯ kubectl get gitrepo -n flux-system -oyaml my-repo-fleet | yj | jq .metadata.labels
{
  "kustomize.toolkit.fluxcd.io/name": "flux-system",
  "kustomize.toolkit.fluxcd.io/namespace": "flux-system"
}

We see that those labels get set here, and it looks like it shouldn't overwrite the labels, but yet, our labels are being overwritten. Do you have any idea what could be happening?

I wasn't sure whether it was better to open this issue here or in https://github.com/fluxcd/kustomize-controller/ , apologies if it's not the right place.

However, when we push that file to our fleet repo, they doesn't get set, and are instead overwritten

Are you sure you've pushed the label changes to Git and Flux has reconcile the change? We don't override labels, unless they are set with kubectl apply. Delete the GitRepository from the cluster and reconcile again, Flux should recreate it as it is in Git. Mixing kubectl apply with gitops is going to result in all sorts of conflicts.

Yup, the changes were pushed. I only got started with kubectl apply when I saw that those labels weren't being set, so definitely not a conflict there.

Are you sure you've set the labels on the right object? From your example they don't seem the same, one is calls my-repo and the other is my-repo-fleet.

Yes, I've set them on the right object. I just differentiated it in the examples to try and make it clearer, but I can fix that if necessary.

Hmm after trying again with some new objects, I can't reproduce it either. I'm not sure what happened earlier! Sorry to waste your time, I'll close the issue

One thought is that it could be I had changed only the labels, but not the artifact, and that the GitRepository object wasn't getting updated with the new metadata (though I had also tested creating a new object with the labels, so that wouldn't fully explain my situation). It was a fluke though


GEOSldas o_server capability

Make o_server work with GEOSldas
Branch: feature/o_servers

Addressed with PRs #381 and #406


chore: Update react-native to v0.70

Acceptance Criteria

Upgrades react native to v0.70

Suggested approach

Because of the downsides described below, it is suggested that the react-navigation dependency be updated before the react-native. Afterwards, this branch can be rebased on top of it and both dependencies will be correctly updated.

Downsides
In this branch the<EMAIL_ADDRESS>requires<EMAIL_ADDRESS>, but only finds it on version 2.8.0.
Becuase of this, a simple npm install command does not work, and a --force option is required to make it install completely.
After the installation, however, the application works correctly.
The complete npm error message below:
While resolving<EMAIL_ADDRESS>Found<EMAIL_ADDRESS>node_modules/react-native-gesture-handler
<EMAIL_ADDRESS>from the root project

Could not resolve dependency:
peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>node_modules/react-navigation-stack
<EMAIL_ADDRESS>from the root project

Conflicting peer dependency<EMAIL_ADDRESS>node_modules/react-native-gesture-handler
  peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>  node_modules/react-navigation-stack
<EMAIL_ADDRESS>from the root project

Security Checklist

[ ] Make sure you do not include new dependencies in the project unless strictly necessary and do not include dev-dependencies as production ones. More dependencies increase the possibility of one of them being hijacked and affecting us.

After the rebase with the code on #283 it became clear this version is still unstable. Other PRs upgrading other dependencies ( namely react-navigation ) will be implemented before to improve overall compatibility between dependencies.


⚠ Bofrost.lu has degraded performance

In 4de3b5f, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2539 ms

Resolved: Bofrost.lu performance has improved in 1d97e02 after 37 minutes.


[BUG]: node-postgres client doesn't have end function

What version of drizzle-orm are you using?
0.36.0
What version of drizzle-kit are you using?
0.27.1
Describe the Bug
Give this code
import { drizzle } from "drizzle-orm/node-postgres";

export const db = await drizzle({
  schema: schema,
  connection: {
    // ...
  },
});

In tests i need to close the connection but there's no function called end in db.$client.end(). It's only exposed when manually creating pg Pool. Drizzle is not creating pool by itself?
Expected behavior
It should expose end function
Environment & setup
No response

deferred upgrade due to this. we are closing the connection in migration but v36 does not have any API for that

i had the same issue in my migration script but could terminate the connection using
await db.$client.end();

I think the type is wrong?
// @ts-expect-error
await db.$client.end();

the other way around:
import { drizzle } from 'drizzle-orm/node-postgres';
import pg from 'pg';

const { Pool } = pg;
const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
});

const db = drizzle(pool);


use cases / supplement for paper

notebook with python and R doing sorta what Map of Life does
cc @cboettig

have use cases


[WIP] USLEEP model

Add USleep model for sleep staging
Joint work with @l-omar-chehab

Ok. I changed n_channels to in_chans in the final model (USleep) to
homogenize with other braindecode models.
For the intermediate classes (_EncoderBlock, _DecoderBlock), maybe for now
we can leave in_channels and out_channels as is, given they are the names
of the attributes in pytorch? And we could address the more general naming
issue in a separate PR?

OK

also you need to merge master to fix conflicts in what's new page

looks good https://1291-232335424-gh.circle-artifacts.com/0/dev/auto_examples/plot_sleep_staging_usleep.html !
+1 for MRG on my side

@hubertjb @gemeinl @robintibor merge if happy

Taking a look now!

I left one comment regarding classes.
Another thing, can we further reduce example doc building time by using less data or fewer epochs? Right now it definitely increases doc build time quite a bit more than all other examples:

I made a few changes, mainly uniformizing the two sleep staging examples. I've changed the preprocessing to fit with the U-Sleep paper, and also tried to limit running time - we'll see if that has the expected effect on the CI.

@hubertjbanville we will squash and merge this one. We'll have robust scaler and Usleep in one commit. For me it's a bad example for the younger folks here :) can you make a dedicated PR to show good practices? 🙏

@hubertjbanville we will squash and merge this one. We'll have robust scaler and Usleep in one commit. For me it's a bad example for the younger folks here :) can you make a dedicated PR to show good practices? pray

Aah right if we squash that would be a mess. Please see #291 ! :)

don't merge yet

ok then please reindicate in title when ready to merge

I also removed the window-wise zscoring step, which isn't in the USleep paper.
Re-reading the paper there's actually one more preprocessing step that is not currently in the example:

We then clip any value which has an absolute deviation from the median of more than 20 times the IQR of that channel.
Not sure this is necessary for this example but we could add it too.

I left one comment regarding object creation.
Another thing, can we further reduce example doc building time by using less data or fewer epochs? Right now it definitely increases doc build time quite a bit more than all other examples:

ah and please also consider about this

btw, I would in general advocate to mostly try to reduce running time in examples by reducing number of datapoints and reducing number of epochs (drastically if needed, with clear note this is to reduce running time). This can be done for any example and makes things more uniform across examples and also seems easy to understand to me. Feel this is better than making model smaller which will mean something different for any architecture etc.

+1

@robintibor 2min46 for the USleep examples, is it ok for you ?

2 min 46 s is fine to me.
However, would prefer if:

example clearly states whenever a choice is done to make stuff run faster at that point, not just at end of example
as much as possible, as written before, just n_epochs is reduced and data size is reduced, e.g., could you keep model same and just reduce crop_wake_mins=30 quite a lot?

I just had a chat with @Tgnassou and @l-omar-chehab. There are three things that still need to be done in this PR:

Clarify what hyparameters were actually used in the USleep paper. The paper, the Supplementary Materials and the keras implementation all have different descriptions of how the numbers of convolutional channel are computed. A quick summary:

Paper (p.8): c_t = floor(c_{t-1} * np.sqrt(2)); c_1 = 5
Suppl. (p.32): c_t = floor(c_{t-1} * np.sqrt(1.67)); c_1 = 6 (doesn't seem to fit with the values in the table)
Keras : c_t = floor(h_{t-1} * np.sqrt(2)) where h_t = floor(h_{t-1} * 2); h_1 = ?

@Tgnassou and @l-omar-chehab will reach out to the authors to ask them which version they ended up using.

Make sure the model can be used with more than just one fixed input sampling rate. Right now the kernel size and maxpool size are hardcoded to avoid previously seen problems with the dimensions of layers. It looks like the actual problem is that the maxpool size and the depth size (i.e. number of blocks) need to be compatible. @Tgnassou is looking at that.

We need another test that compares the dimensions of the model to those reported in the paper.

Also, to answer your previous comment @robintibor : crop_wake_mins actually shouldn't be decreased below 30 (it's the typical value used in the literature). I think at this point the data is really as small as it can get, unless we want to only use a few examples from the two sleep recordings that are used in the example.

Maybe a clarification regarding examples as I see it @hubertjb
Obviously the nicest thing would be to have the best-performing pipeline as the examples, so people can directly use the code and expect great results and at the same time it is validated to run by the CI.
However, this would take too long on the CI, and in the end we decided that:

all decoding examples will run in CI
code should be as close as possible to good pipeline so users may not be confused and run suboptimal hyperparameters expecting good results
to ensure fast runs on CI, we drastically reduce data and epochs, even if it makes the example nonsensical as it is and clearly note that these are not useful values, indicating what are the useful values

This way, we can make sure the code always runs, is fast enough on CI, and should prevent users from mistakenly adopting suboptimal pipelines. And it is acceptable if the example due to reduced data and reduced number of examples does not learn anything as is (e.g., our trialwise decoding example (https://braindecode.org/master/auto_examples/plot_bcic_iv_2a_moabb_trial.html)  is barely above chance on train and exactly at chance on valid at the end of training).
Otherwise, with examples that are "more realistic" but with suboptimal hyperparameters, we have seen users adopt suboptimal hyperparameters in their training and expect good results.

This PR is ready to merge

See comments by me and alex, and also @Tgnassou I invited you to be maintainer, then you don't have to always wait for me to approve workflows. could you accept this invitation?

So I think the loss comment from me above https://github.com/braindecode/braindecode/pull/282#discussion_r672987582 definitely needs addressing. Is somebody still active on it or do we need to search somebody @hubertjb  @Tgnassou @agramfort

I am in holidays, that's why i'm not very active these days. But I will continue the work in september! Is it ok for you @robintibor ?

ok my plan was to have a release ~end of august, but maybe we can shift to midseptember anyways, then this one could be inside as well

I'm still working on it and should have results soon @robintibor

Trying to conclude on this @robintibor @agramfort @Tgnassou

U-Sleep is much harder to train on the "small-ish" SleepPhysionet. I found some configurations that could somewhat learn more quickly (e.g. model depth=8, weight decay=5e-5, learning rate=1e-5), but they never go much above 50% test balanced accuracy. SleepStagerChambon2018 in contrast can easily reach >70% in under 100 epochs. Using really low learning rates (e.g. 1e-7 like in the paper) does yield very smooth learning curves, but we would have to train models for a lot more than the 100 epochs I tested on to get interesting performance.

The balanced sampler seems to help quite a lot. The models learn faster and reach slightly better test performance. Here are some learning curves obtained with SleepStagerChambon2018:

The self-ensembling also does help, with gains of 5-10% balanced accuracy in my limited experiments on (overfitting) U-Sleep.

Overall, I'm confident the model implementation is accurate. I went through the original keras implementation and made sure the dimensions and the number of parameters were exactly the same (there are now unit tests for these). The model does not learn as well on SleepPhysionet, but my guess is this is an issue with the scale of the data and the training budget rather than the model itself.

Great summary. I suggest to merge. Thanks @hubertjb for finishing this and @Tgnassou and @l-omar-chehab for the ground work

Very nice ! Thanks you @hubertjb !

@robintibor the green button is yours !

There were some conflicts now due to other PR merge, which I have resolved.
More importantly @hubertjb , it seems the comment regarding applying softmax and using crossentropyloss has not been addressed I think (https://github.com/braindecode/braindecode/pull/282/#discussion_r672987582) ? Crossentropyloss will apply softmax again, so it is not correct what is happening there I think... Maybe even apply_softmax=False could already solve it? Or do I have some misunderstanding? :)

Thanks @robintibor for fixing the conflicts and for pointing that out! I forgot to change that line - it should indeed be apply_softmax=False.

Great stuff, thanks @Tgnassou @l-omar-chehab @hubertjb , merged now

awesome team effort @Tgnassou @l-omar-chehab @hubertjb 🚀 🚀 🚀 🚀 👏 👏 👏 👏


Arista AVD Version - v4.2.0-dev2 - Build failure

Issue Summary
We are unable to generate the intended config with Arista AVD Version "4.2.0-dev2". We have identified the root cause of the issues and some we have resolved with work around, but others we are unable to resolve, and this will require a change in your code base.
Which component(s) of AVD impacted
new components
How do you run AVD ?
Ansible CLI with AVD Runner
Steps to reproduce
We are unable to generate the intended config with Arista AVD Version "4.2.0-dev2". We have identified the root cause of the issues and some we have resolved with work around, but others we are unable to resolve, and this will require a change in your code base.

Can these issues be resolved as a priority, specifically the second issue, because this is blocking the generation of intended config? if you need any further details don't hesitate to contact me, alternatively we can arrange a call as well.

The details are provided below.

Mismatch in the Json schema version between avd and cvp as shown below.
avd (v4.2.0-dev2)
jsonschema>=4.5.1,<4.18
cvp (v3.6.1)
jsonschema>=3.2.0

In arista-eos, the version mismatched between the tag and galaxy.yml, in the repo it is mentioned as 6.0.0, but the avd image is tagged as 6.0.1.

Relevant log output
No response
Contributing Guide

[X] I agree to follow this project's Code of Conduct

Hi, thank you for reporting these issues.

jsonschema requirements are different between the two collections, but they don't conflict as such. I mean jsonschema>=4.5.1,<4.18 still fulfills the jsonschema>=3.2.0 the requirement.
The arista.eos collection is maintained by RedHat, so any discrepancies will have to be solved on their repo. I checked what you mentioned, and it seems like overwrote their automatic version numbering in this commit. If you just install from galaxy or automation hub, you should not see any issues.

I would like to understand why these things are blocking you. Feel free to contact me directly if we should set up a call<EMAIL_ADDRESS>

We are getting below error message highlighted while running AVD for the second issue which was reported, due to this we can proceed further.
Do you want us to raise separate ticket in eos space to correct this error in their codebase?
https://github.com/ansible-collections/arista.eos
ERROR LOG:-
TASK [arista.avd.eos_designs : Verify Requirements] ************************************************************************************************************************************************************************************
task path: /home/avd/.ansible/collections/ansible_collections/arista/avd/roles/eos_designs/tasks/main.yml:2
Not a git repository
AVD version 4.2.0-dev2
 Found netaddr 0.8.0 installed!
 Found Jinja2 3.1.2 installed!
 Found treelib 1.6.4 installed!
 Found cvprac 1.3.1 installed!
 Found paramiko 3.2.0 installed!
 Found jsonschema 4.17.3 installed!
 Found requests 2.28.1 installed!
 Found PyYAML 6.0.1 installed!
 Found md-toc 8.1.9 installed!
 Found deepmerge 1.1.0 installed!
 Found cryptography 41.0.2 installed!
### ERROR! arista.eos version running 6.0.0 - required version is >=6.0.1
{
"ansible": {
"collection": {
"name": "arista.avd",
"path": "/home/avd/.ansible/collections/ansible_collections",
"version": "4.2.0-dev2"
},
"ansible_version": "2.14.8",
"requires_ansible": "!=2.13.0,<2.15.0,>=2.12.6",
"collection_requirements": {
"not_found": {},
"valid": {
"arista.cvp": {
"installed": "3.6.1",
"required_version": ">=3.6.1"
},
"ansible.utils": {
"installed": "2.10.3",
"required_version": ">=2.10.3"
}
},
"mismatched": {
"arista.eos": {
"installed": "6.0.0",
"required_version": ">=6.0.1"
}
},
"parsing_failed": []
}
},
"python": {
"python_version_info": {
"major": 3,
"minor": 9,
"micro": 16,
"releaselevel": "final",
"serial": 0
},
"python_path": [
"/home/avd/.local/share/virtualenvs/netbox_extract-zMJz_RXI/bin",
"/usr/lib64/python39.zip",
"/usr/lib64/python3.9",
"/usr/lib64/python3.9/lib-dynload",
"/home/avd/.local/share/virtualenvs/netbox_extract-zMJz_RXI/lib64/python3.9/site-packages",
"/home/avd/.local/share/virtualenvs/netbox_extract-zMJz_RXI/lib/python3.9/site-packages"
],
"python_requirements": {
"not_found": {},
"valid": {
"netaddr": {
"installed": "0.8.0",
"required_version": ">=0.7.19"
},
"Jinja2": {
"installed": "3.1.2",
"required_version": ">=2.11.3"
},
"treelib": {
"installed": "1.6.4",
"required_version": ">=1.5.5"
},
"cvprac": {
"installed": "1.3.1",
"required_version": ">=1.3.1"
},
"paramiko": {
"installed": "3.2.0",
"required_version": ">=2.7.1"
},
"jsonschema": {
"installed": "4.17.3",
"required_version": "<4.18,>=4.5.1"
},
"requests": {
"installed": "2.28.1",
"required_version": ">=2.25.1"
},
"PyYAML": {
"installed": "6.0.1",
"required_version": ">=5.4.1"
},
"md-toc": {
"installed": "8.1.9",
"required_version": ">=7.1.0"
},
"deepmerge": {
"installed": "1.1.0",
"required_version": ">=1.1.0"
},
"cryptography": {
"installed": "41.0.2",
"required_version": ">=38.0.4"
}
},
"mismatched": {},
"parsing_failed": []
}
}
}
fatal: [SVP-CAMP01 -> localhost]: FAILED! => {
"changed": false,
"msg": "Set 'avd_ignore_requirements=True' to ignore validation error(s)."
}
==================================================================================
Below are the collection list returned by Galaxy.
[avd@90d0b1f8adb1 netbox_extract]$ ansible-galaxy collection list
/home/avd/.ansible/collections/ansible_collections
Collection            Version

ansible.netcommon     5.1.2
ansible.utils         2.10.3
arista.avd            4.2.0-dev2
arista.cvp            3.6.1
arista.eos            6.0.0
community.hashi_vault 3.4.0

To unblock your workflow, add this to your group_vars:
avd_ignore_requirements: true

So our arista.eos collection requirement is >=6.0.1 but you only have 6.0.0 installed as reported by both ansible-galaxy collection list as well as our requirements validation tool.
So I think you should try to upgrade arista.eos with ansible-galaxy collection install "arista.eos:==6.0.1".
I just checked the tar ball from Ansible Galaxy and it correctly reports version 6.0.1.
If you clone from Github based on the tag, this might indeed fail like you see, because of the issue you mentioned. Generally we always recommend to install from Galaxy.
Re the arista.eos version issue, it would be good to submit an issue on that repo.

we are installing eos 6.0.1 using ansible-galaxy
But when it gets installed the MANIFEST.json gets created & it gets  the version 6.0.0 from galaxy.yml
Your python script verify_requirements.py reads MANIFEST.json to find out the installed version
Raised below issue in arista.eos repo
https://github.com/ansible-collections/arista.eos/issues/427

I think there is still some misunderstanding here:

When you install from galaxy.ansible.com you pull down the tar file (https://galaxy.ansible.com/download/arista-eos-6.0.1.tar.gz) and when checking that file, you can see the MANIFEST.json having 6.0.1 in there:{
 "collection_info": {
  "namespace": "arista",
  "name": "eos",
  "version": "6.0.1",
  "authors": [
   "Ansible Network Community (ansible-network)"
  ],
...

So I am not sure how you are installing it, but I am guessing you are installing it with some git tag instead of using galaxy.ansible.com.

Moving to a discussion since this is not a bug in arista.avd.


additional details and example of component data arrow functions

I've noticed a couple tutorial sites using arrow functions for component data. Thought it would be good to add it in as an example to avoid for the style guide as it is already part of the API documentation. Long ago I was using arrow functions personally and didn't understand why I was having trouble with certain things. Hopefully, this ends up helping someone else.

Rather than appending to this rule, I think I might add a more general Priority D rule about using arrow functions for component option values. I'll open a new issue for that.


pressure plates not working

Hi,
Regarding version 4.0 [23/090/2016] on MC1.10.
I have some iron doors operated by pressure plates  (which are not checkpoints) in the course which no longer work. The checkpoint pressure plates work as expected.
Also is there a way to put more than one death block in the config.yml?
Thanks.

Hi Steve,
Thanks again for reporting issues. It helps the plugin development a lot :)
I have added an option to disable this "OnCourse.PreventPlateStick", this will only affect people that are actually on a course though. I will close this ticket when I release the next build.
Parkour 4.0 has changed the way it uses blocks now, which are in the form of ParkourBlocks for performance reasons. Each set of ParkourBlocks will have it own individual set of blocks (DeathBlock etc.) so the short answer is no, but each course can theoretically have it's own deathblock, hope this helps.
Thanks


Auto complete feature

Tries are often used to implement auto complete, objective is to have a script that lists all the possible words from a list for a specific input.

Not related to development

Hey @Mrinank-Bhowmick, I have a pretty decent knowledge of Python, and I want to contribute to the Auto Complete project.
Could you please assign this to me?
Thanks for reading!


Resize handling

Currently, winpty doesn't seem to propagate CSI codes when the actual console is being resized. Is that true and/or intended to work that way?
I'm using winpty together with xterm.js. For example, I could start far manager and resize the window afterwards. Winpty would correctly resize the terminal buffer, so far manager renders correctly. However, when exiting far manager, the console will be resized to the size before far manager was started; when starting far manager again, the window sizes would not match.
It's also easy to repo that by setting WINPTY_SHOW_CONSOLE and simply resizing the console; no control codes are generated.
I think the correct control code would be "[8,rows,cols,t"
(However, xterm.js doesn't handle that, too - but that's another issue)

That's the code, more or less. (http://invisible-island.net/xterm/ctlseqs/ctlseqs.html, grep for CSI Ps ; Ps ; Ps t).
Support for it is dodgy:

mintty: works
VTE: works if the terminal window has only a single terminal/pty (i.e. no tabs). Otherwise ignored.
xterm: code is ignored
Terminal.app, iTerm2: code is ignored
Konsole: acknowledges the code and resizes the virtual(?) terminal buffer, but the actual X11 window doesn't resize
IntelliJ (on Linux): Strange things happen:

Bash's $LINES and $COLUMNS variables don't update. It does update when I resize the terminal pane, so I'm not sure how this is happening.
The terminal pane doesn't resize.
Yet, the screen buffer has clearly resized. If the new size is smaller than the GUI size, the extra rows/cols are blank. If the new size is bigger, the extra rows/cols are clipped.

Eclipse TM Terminal: code is ignored
Win 17623 Conhost - WSL: code is ignored

It's true that winpty doesn't propagate a console size change to the terminal, but maybe it could. I'm not sure I'll ever get around to doing it.
winpty is frequently used for embedding a terminal in a pane of an IDE. I wonder how an IDE should handle a resize command. Are there any that already do?
If mintty/VTE respond to the code, they'll resize the GUI and the pty buffer (using ioctl). IIRC, resizing the pty then fires SIGWINCH. With winpty, on the other hand, the console window is already resized (and command-line programs notified of the change), by the time winpty-agent notices anything. If it forwards the size-change to the terminal, a likely result is that the terminal ignores the request. Maybe winpty should follow a protocol where it:

sends a size-change request to the terminal
wait a bit...
if no acknowledgement comes back from the terminal, it attempts to size the console to the last terminal size it saw

It might get into a loop if the console size doesn't stabilize on the terminal size.
Maybe a more fruitful approach would be getting Far Manager to stop resizing the console.

I thought this wasn't related to Far Manager, but it's actually the only program where I can repo the problem, it seems to save/restore the window position. Midnight Commander, on the other hand, doesn't even handle resize situations at all.
Xterm.js doesn't care about the control code; I would expect it to at least resize it's internal buffer so the output isn't distorted. However, I guess the problem is too rare to care about actually. I only used Far Commander to test behaviour of console "gui" applications.
I like your suggested solution, though.

I tried to reproduce with a couple of clients but couldn't reproduce the duplicate output as you experienced. The clients I used were - Session Manager console, and Session Manager CLI from iTerm2 or the Terminal built in with mac, and Session Manager CLI from a Linux machine.
Can you please share what client you use, and share the logs from client side and SSM agent side? Here are some documentations that run through how to enable debug-level logs for SSM CLI and agent:
https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-agent-logs.html
https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html#install-plugin-configure-logs

Additionally, can you share your window and buffer sizes? Some example commands:
$pshost = get-host
$pswindow = $pshost.ui.rawui
$buffersize = $pswindow.buffersize
echo $buffersize
$windowsize = $pswindow.windowsize
echo $windowsize


Unable to import, update or delete any data

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.19.0
Regression From
No response
Architecture
x64
Storage Explorer Build Number
No response
Platform
Windows
OS Version
Windows 10
Bug Description
Unable to import tables, or edit/ update existing tables
Steps to Reproduce
Import table (excel table on desktop) under local storage account
Actual Experience
N/A
Expected Experience
No response
Additional Context
No response

@lmulligan27 a couple of things:

We're in the middle of releasing a hotfix for 1.22.0. Can you please try again with that hotfix? You can find it here: https://github.com/microsoft/AzureStorageExplorer/releases/tag/v1.22.1
Would you be willing to share the full .csv you are trying to import to Azurite? If you do not wish to post it here, we can give you an e maiil address to send it to.

Thanks for the prompt reply! I tried the updated version no luck unfortunately.
I don't think the data is the issue however as the error is reproduceable with any table.
In addition I could not update any data in an existing table. However I downloaded version the previous version before 1.22.0 and it worked.
Thanks for your help!

@lmulligan27 We made a few fixes for importing and exporting in 1.22.1, so it's concerning that it doesn't work for you. How large is the table you are exporting? How large is the file you're importing? What's the general structure of the data in the table (number of properties, data types, characters used, etc.)? Would you be willing to provide a sample CSV file we could try importing?

@lmulligan27 When you import data into a table, are the target tables empty, or do they have existing entities in them that are also in the CSV file you're importing?
Possibly related to #5387.

This happens to me as well. Version I have is 1.22.1, and when I try to import CSV file with 30.000+ entries to a table, nothing happens.
I've tried both on existing and new/empty tables and behavior is the same.

@lmulligan27 @bojned I just noticed this issue mentions importing to a local storage account. I assume that means you are using an emulator. If that's the case, are you using Azurite? If so, this is already a known issue which should be resolved in an Azurite update (see #5299, #5307).

@lmulligan27 @bojned I just noticed this issue mentions importing to a local storage account. I assume that means you are using an emulator. If that's the case, are you using Azurite? There are known problems related to Boolean or Int32 data which should be resolved in an Azurite update (see #5299, #5307).

No, I am not using emulated storage, I am facing this issue when uploading to the actual storage account.

@bojned Since you're not on an emulator, this may be a separate issue. Could you open a new issue and provide:

All appropriate information, including the platform and app version you're using.
The error message you're receiving.
Any relevant logs
A description of the data you're trying to import or a sample of import data that reproduces the error.

I think the problem is with the data, not the tool. Tool has only problem that not showing exact error message.
my problem was related to Datime format,
it has to be exactly ISO 8601 formatted if you are trying to import Datetime Column. Otherwise this error message is returned.

I think the problem is with the data, not the tool. Tool has only problem that not showing exact error message. my problem was related to Datime format, it has to be exactly ISO 8601 formatted if you are trying to import Datetime Column. Otherwise this error message is returned.

Not for me I'm afraid, as even data exported using this tool is misbehaving. I've opened a new issue here:
https://github.com/microsoft/AzureStorageExplorer/issues/5469

@bojned  have you tried "try and fail"? i have tried like this

leave only 1 row and try to import, if it fails, remove each column 1 by 1 to see if any of the column causing the issue. At least you may know what is the root of the issue

@lmulligan27 @bojned @EmilAlipiev We released version 1.23.0 not too long ago. Do you still experience issues with that version?

@lmulligan27 @bojned @EmilAlipiev We released version 1.23.0 not too long ago. Do you still experience issues with that version?

Hi, my apologies for not coming back sooner on this issue, as I was preoccupied with other things.
I am still facing this import problem even with version 1.23. Version 1.21.3 works ok and I will continue to use it.
Unfortunately, I cannot share my data due to sensitivity of the information stored there, but I would gladly show you examples if you want to directly get in touch with me.

@bojned Are you using an emulator? If so, which one and what version? Have you tried updating to the latest?
If you are not using an emulator, please open a separate issue, as this issue is concerned with importing to an emulator table.

Everyone, we just put out a new version, 1.23.1, which contains more table fixes. Please update to this version and try again. If you're still having problems, please open a new issue.

Closing due to lack of further activity.


Incorrect sprite in css if also used in JS

I tried using the same SVG both as background in CSS and in <use> by importing a reference to it in JS and it only worked in JS. In CSS the SVG file was just injected into url(), not turned into a reference (sprite.svg#idOfSymbol).
When I copied the SVG file so one is used in Js and the other in CSS it works.

Please provide your webpack config

{
  module: {
    loaders: [
      {
        test: /sprite(?:s)?\/.*\.svg$/,
        loader: 'svg-sprite-loader',
        options: {
          extract: true,
        },
      },
    ]
  },
  plugins: [
    new SpriteLoaderPlugin(),
  ]
}

I use https://github.com/kisenka/svg-sprite-loader/blob/master/examples/assets/twitter.svg as example.svg
I include it 2 times in my project:
once using <use> (via angular1 component, but it's not relevant) and it works:

And another time as element background:

where it doesn't work:

Whether there's SpriteLoaderPlugin or not does not seem to matter (but: I don't get warned in case it's missing)

Sorry for the delay, are you sure svg-sprite-loader is only once who process SVGs? Could you please create repo with minimal demo code - webpack config, package.json, svg images & pieces of code which import images.

@jrencz ping

Sorry, I'm busy with other parts of the project not related to svg. I can't tell you where will I have more time to create simplified demo.
I'm sure those svg are only processed by this loader. They are filtered by a regexp which only takes svg files from a certain directory and there another one (file loader) which processes all others

I had the same issue. I had to set the following configuration:
extract: true,
esModule: false

and then in my js, append /sprite.svg:
<svg>
      <use xlinkHref={`/sprite.svg#${glyph.id}`} />
    </svg>

@Grsmto you're right, it's a configuration issue. Should be mentioned in FAQ.


[Feature Request] Armor planning

Currently, Tinker's Planner only allows planning tools. But in Tinkers' Construct you can also apply modifiers to the armor, so it would be cool to plan armor as well. Moreover, the mod already shows defense stots, so it would make sense.

From what I understand tools and armors are quite different internally. This would mean that the planner would require a major re-write for armor to work. The main feature of the planner is being able to see tool part combinations with modifiers being something extra. Maybe a planner for armor will come at some point but not anytime soon.


Add grid markup to stop the post heading from getting too long

I spotted a design history in the wild with a long post heading. I think it looks a bit broken when the heading can span the entire width of the container.
Please Design History gods, consider this request for an update and I offer you this screenshot as a proof of my unwavering devotion to you.

Thanks @jesseyuen – fixed this with slightly less markup in a4433bf9d2720a11d803f670dfde35ffda552b02.


BSMS import does not create a usable wallet

Hello,
I am trying to import a BSMS file (2of3 multisig) produced by Nunchuk (Android) into Sparrow.
Almost all the "Settings" page is there (except I can't export the wallet), but the other ones are grey ("Transactions", "Send", etc.), as you can see on the screenshot.
I expected to be able to use it as any wallet. Have I missed something?
Sparrow 1.7.4
Kubuntu 22.04 LTS

As indicated by the red outlined text, there is a problem with Keystore 3 - a missing or invalid field, or perhaps a non-standard derivation path. If it’s the latter you can turn off derivation path validation in the General Preferences.

Thank you. It works with your trick.
The problem may come from Nunchuk.


 Validation will be executed over format of message <type>(<scope>): <subject>

Cool!

merged with 9c7620c... thanks @kwonoj


[FullNode] Is disposed 3 times

Described by @noescape00 in https://github.com/stratisproject/StratisBitcoinFullNode/pull/789#issue-276450273
please continue here with the discussion

what kind of workaround?

By workaround I mean checking if it is already disposed:
if (this.IsDisposed)                 return;

pls show more details about why do you think it is hard to dispose FN just once

FullNode gets disposed 3 times:
3rd time is FullNodeExtensions : 101 (end of the using(node) block)- so here it's all clear and this is  intended.
1st and 2nd are called by Microsoft.Extensions.DependencyInjection.ServiceProvider:121 (you need to uncheck Debug=> Options=> Just my code in VS settings to debug that). So on this line we have a _disposables list that for some reason has 2 FullNode items (in total there are 21 and full node ones are the first. I'm not sure if we should dispose FullNode before the services).
First time full node gets added to that list when we call
var fullNode = fullNodeServiceProvider.GetService<FullNode>();  at FullNodeBuilder:177
Second time FullNode gets added after we call that:
this.ChainBehaviorState = this.Services.ServiceProvider.GetService<ChainState>(); FullNode:160
The reason why FullNode gets captured here is that ChainState requires IFullNode in the constructor.
So Ideally FullNode should never be disposed by ServiceProvider.

ok in theory that ChainState thing should be relatively easy to get rid of, but i'm not if we want that or not
it would require providing IBlockDownloadState instead, which should be possible, the interface is trivial, we can have a trivial dummy that does nothing
this way we would get rid of the second dispose
that using in FNE, why it is there? you can see there is Node.Stop which does all the disposing, or not?

this way we would get rid of the second dispose

this way we would get rid of the second dispose
Not really.
FullNode will be added to disposables in the next service that has IFullNode as a parameter in the constructor. In our case after commenting out
this.ChainBehaviorState = this.Services.ServiceProvider.GetService<ChainState>();
FullNode would be added after that call:

FullNode:183
this.fullNodeFeatureExecutor = this.Services.ServiceProvider.GetRequiredService<FullNodeFeatureExecutor>();
So if we really want to avoid adding FullNode to disposables we need to remove reference to full node from every single service's constructor.

that using in FNE, why it is there? you can see there is Node.Stop which does all the disposing, or not?
Yes, I see. I've no idea why it's there.
But from the logical perspective I think disposing code should be moved from Stop() to Dispose(). Now stop() actually disposes the node but it doesn't set the flag IsDisposed. So potentially we can have node disposed while IsDisposed == false, which is probably not very good.

i see, therefore i've misinterpret your original message
so where do we dispose these guys that are loading into ServiceProvider?
can we skip THAT?

so where do we dispose these guys that are loading into ServiceProvider?
can we skip THAT?

FullNode:225
(this.Services.ServiceProvider as IDisposable)?.Dispose();
They get disposed with the ServiceProvider itself.
Not sure if we want to skip that.

yes, this line is what i'm asking about
because with this line, we don't really control what is disposed when, right?

because with this line, we don't really control what is disposed when, right?

Correct.
Basically everything that is IDisposable that gets in or out of the ServiceProvider will be disposed when provider gets disposed.

and we should be able to dispose everything manually in a well controlled cascade

Entirely agree.
But in order to achieve that we should change how ServiceProvider works.
Or, maybe, use some ugly huck like creating our own IDisposable just to bypass this ServiceProvider's line:
var disposable = service as IDisposable;

I think the easiest way would be implementing our own ServiceProvider.
Just coping  it from Microsoft.Extensions.DependencyInjection and removing 'CaptureDisposable(object service)' would work.

what would be the difference over not calling that dipose line?

i mean what is the problem of not calling that line?

what would be the difference over not calling that dipose line?

The only difference would be that if we dont call that line we wont clear ServiceProvider.ResolvedServices dictionary. Not sure about the consequences of that, need to check.

I guess if the probability of scenario when we need a disposed service  after node is stopped is 0 then there is no problem in removing
(this.Services.ServiceProvider as IDisposable)?.Dispose();
and doing all the disposing by our own.
Or even better- recreate service provider or set it to null on node disposal so even if this scenario happen target service won't be marked as resolved.

i think we should be ok just by removing that line, would like someone else to confirm though

@fassadlr @dangershony @bokobza anyone of you want to comment on this?

i think if we could check what disposing SP really means we could possibly remove the line if the only thing it does is calling our dispose methods

Ah right so that is the line that causes dispose on all services, as I said IDisposable should be immutable right? but we want to control our components being disposed.
I would suggest we either remove that line altogether or call it at the very end once we are sure all our controlled components are disposed.
Ah and I see we do call it at the end.

OK I suggest we remove that lien all together as @Aprogiena suggested

Yep, it just disposes services in reverse order and clears ResolvedServices list.
Here is the code:

public void Dispose()
        {
            lock (ResolvedServices)
            {
                if (_disposeCalled)
                {
                    return;
                }
                _disposeCalled = true;
                if (_disposables != null)
                {
                    for (int i = _disposables.Count - 1; i >= 0; i--)
                    {
                        var disposable = _disposables[i];
                        disposable.Dispose();
                    }
                    _disposables.Clear();
                }
                ResolvedServices.Clear();
            }
        }

so yeah, i guess we don't need to clear resolved services on shutdown
so i think we are good to go

Ok.
So after removing this line disposing of services is under features control.
Right now they all dispose their stuff in 'Stop()' method.
I don't think this is logical.
I'd suggest doing it using one of following ways:

Just rename feature's and node's Stop() to StopAndDispose()
Make them implement IDisposable and specifically call Dispose() when we dispose the node.

Also node has dispose but it calls stop.
So the usual scenario is that we shutdown the node by calling Stop() and then we would dispose it but it was disposed using Stop even though 'this.IsDisposed' flag is still false.
I'd really like to move disposing code to Dispose() or get rid of IDisposable implementation at all.

what you say is basically what .NET core is now doing everywhere. before you often had these Close() methods in .NET 4 and then they removed them in favor of one single Dispose method. so what you say is a modern trend i'd say :-)
Therefore I very much agree with you and then the only question is whether it is in or out of scope of this PR. As we discussed previously, we want rather smaller PRs. This sounds like that the PR would gain in its size. And possibly, these things are separated things, or not?
Any comments @dangershony ?

As we discussed previously, we want rather smaller PRs.

Well, this PR is a one liner so I can submit it and create a new one for changing how we approach disposing.

these things are separated things, or not?

Yes. They are pretty much independent.

in this PR i think we want to make sure that

everything is disposed no more than once
everything is disposed at least once

in all FN code, not in NBitcoin
so possibly we will find more undisposed things (i found some today in recently ported NBitcoin code)
and esp. we want to make sure FullNode is disposed 1x not 3x
and ConnectionManager is diposed 1x not 3x

That one wrong dispose call for CM was because feature that didn't add CM to services disposed it.
What do you think about a general rule that if service was added by feature's builder extension it can be disposed only from this feature's stop\dispose code and not from any other random feature?


fixed compilation error in lib/seq.fst.

i have the option to "close pull request." does this withdraw the request?

Let's try :)


Move plotting of trees into a separate tree plotter structure

At the moment there is code inside the nodes / arena that displays node trees. This is not the place for this.
Instead, we should have a separate tree plotter that gets a document tree as input, and can output the tree itself. This separates the output from the functionality.

@jaytaph I want to work on this.

Go for it! :)

I think this is not needed anymore


[Android] Map.animateCamera Glitches At The End

Map.animateCamera Example
You can see at the very end the camera glitches inwards.
let bounds = new plugin.google.maps.LatLngBounds( markers )
$map_map.animateCamera( {
	'target': bounds,
	'duration': 1000,
} )

Please check the code around here by yourself.
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/master/src/android/plugin/google/maps/PluginMap.java#L235-L311

OK... It was just a bug report; How am I supposed to know you intended it to be this way.
If I were to take a guess as to why this is happening, I'd say this.density here:
cameraUpdate = CameraUpdateFactory.newLatLngBounds(cameraBounds, (int)(20 * this.density));

https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/master/src/android/plugin/google/maps/PluginMap.java#L263

Changing (20 * this.density) to (1 * this.density) removes the glitch at the end of the animation.
Can you please elaborate on why we do (20 * this.density)? Just for knowledge.

The value 20 means the margin value.
But I got that why the camera bounds after the camera animation is finished.
The finalCameraBounds is the same as cameraBounds.
But in the code, I updated the camera target (cameraUpdate) after calculating the cameraBounds.

Ah, that makes much more sense now. Thank you for the input!


Ensure scratch orgs created in Travis are always deleted

In our Travis build script, we create a temporary scratch org to make sure the code compiles and passes all tests. This org is deleted after a successful build, but the deletion command gets passed over if the build fails.
This has resulted in a lot of built up scratch orgs, and there's a limit of 40 we can have at a time. We should tweak the script to always delete the temporary org, no matter the build result.

travis build is now deleting org in all scenarios.


Issue #244 - Added link to check for next course of action based on Symptoms

As described in Issue #244  I have added a link to navigate to "https://apple.com/covid19". This will help the user to decide on the next course of actions based on the symptoms

@JunaidBabu @sudevschiz Can you please review?

Thanks for the PR but we won't be adding this feature at the moment. Feel free to open PRs on accepted issues :)


[dlib] Remove patch now fixed correctly by vcpkg_fix_cmake_targets

This PR fixes a regression in dlib caused by #5459. It removes the manual cmake file patching now performed correctly by vcpkg_fixup_cmake_targets

Thanks for the fix!

Cheers


Optimization Dataset

Description
Adds a optimization dataset to our suite of collections.
Todos

[x] Reworked all file permission to be canonical, for some reason several files were executable.
[x] Refractors out common procedure dataset structures into a ProcedureBase
[x] Basic Optimization structure

Status

[ ] Changelog updated
[x] Ready to go

Thinking on this a bit, lets go ahead and review + merge.


Mismatches between frontend and backend

[ ] suspicious_email added to frontend but not backend. open-contracting/credere-frontend@0564f9a9 ApplicationDeclineFeedbackPayload needs to be updated.
[ ] IAward has source_last_updated_at and previous, but AwardUpdate does not.

IAward has source_last_updated_at and previous, but AwardUpdate does not.

Ah, but none of them are actually used in the front end so I will remove them from there.


Add a wide angle camera with lens flare plugin

🎉 New feature
Summary
Updated the camera sensor to be a wide angle camera with lens flare plugin. Mounted it on a post at the back of the house so it's not just floating in mid air.
Needs wide angle camera and lens flare fixes in:

https://github.com/gazebosim/gz-rendering/pull/900
https://github.com/gazebosim/gz-rendering/pull/901
https://github.com/gazebosim/gz-sim/pull/2172

Checklist

[x] Signed all commits for DCO
[ ] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

merging this as the demo was already presented


fix Attribute Error

Issue #228 is cause by Attribute Error because there no isAlive() attribute. That i have changed to is_alive

thanks for the patch, we merge it to develop now and i will merge it to master later 👍

thanks for the patch, we merge it to develop now and i will merge it to master later 👍


Fix select(sum('a))

Also cleaned up tests a bit.
fixes #72

Current coverage is 90.14% (diff: 100%)

Merging #75 into master will increase coverage by 0.21%

@@             master        #75   diff @@
==========================================
  Files            25         25
  Lines           467        467
  Methods         460        461     +1
  Messages          0          0
  Branches          7          6     -1
==========================================
+ Hits            420        421     +1
+ Misses           47         46     -1
  Partials          0          0

Powered by Codecov. Last update 3d37ed6...3eb21a1

The added comments + refactoring look really great! Can you explain this implicit widen: B => Out?

LGTM 👍


[FR] --echo: prints all the conversation history that is sent to the API

This should include the system prompt, and all previous chat messages, including the current prompt.

I'm going to implement this here:

#404


Vof example

Description of the problem

Fixes two bugs in the VOF solver
Adds a limit force parameter to enable limiting the source term in VOF solver

Your comments have been applied.
An example (rayleigh taylor instability) is added.

Could also be good to add a comment in the example regarding the periodic bcs.

@shahabgol CI breaking is not your fault. Deal.II change. I'll need to fix that tonight

I think this example also shows some of the limitation of the output control time. when the time step becomes super small, the linear solver becomes very innefficient. I'll have to double check that. :)

One last thing, I tested with the adaptive mass conservation. It works super well. So this could be just a slight appendix at the end to demonstrate this other possibility. There no issues and the sharpening threshold alternates between 0.498 and 0502....

Thank you all for your constructive comments.

I have added two separate prm files for constant and adaptive interface sharpening.
I have noticed this problem with the output control time. But I could not find the reason.
The density ratio and phase cutoff calculations cannot be removed yet, since they are used to determine whether continuity equation should be solved or not (solve_continuity parameter). If you believe these parameters should also be removed, I think it's better to remove them in another PR, since the current PR already changes the results of many tests.
A section is added to the documentation file to address the comment on periodic BC.

Thank you again for taking the time to review my PR. :)

Awesome. this is ready for merge for me. I will fix the issues with the repo myself.


Do I need to know Python in order to get started with TagUI for Python?

from user query

I am doing RPA but not in python. I like to pursue this in python as well. Can you please guide me how can I take this and move ahead with respect of RPA.

For TagUI for Python project (https://github.com/tebelorg/TagUI-Python), it has a pre-requisite that users know how to use Python, in order to use the tool effectively. There are new and good learning materials on Python programming which you can google and find out what's best for your learning.
After learning Python, it should be easy to use the tool directly. Because the API is simple and effective, with ability to do automation in different ways, including using computer vision, OCR, keyboard and mouse automation.
Also, there is another open-source Python RPA project which I'm following closely. It is created by a startup in Belgium. I recommend that you take a look at that project too. The main difference is Automagica (https://github.com/OakwoodAI/Automagica) tries to create modules for different applications to automate with RPA. But TagUI for Python only focus on the basic UI interaction commands, which users will have to create their own functions and code to automate for their desired applications.


https://github.com/tharkhay4/userscripts/pull/1

https://github.com/tharkhay4/userscripts/pull/1
Originally posted by @tharkhay4 in https://github.com/tharkhay4/userscripts/pull/1#issuecomment-2518176219

If you have a specific issue or request for dev containers, please let us know. Thanks so much!


How to directly jump to home screen page in flutter after login and after signup

Use case

Proposal

Hi @manu223
It seems you are asking for assistance on personal code. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Invalid authentication - Tested on multiple accounts

I enter Access ID, Access Secret Mobile App and have tried Country Code both with the + and without.
Account and Password are correct, I even changed password and am able to log into the Tuya app without any issues.
I setup a new account and add that to my Home. That too gave me invalid authentication

Same problem.

check you country setting in https://iot.tuya.com/user/account/info

Yep, same for me. Can't login anymore.  Had it working for a while but no it says 'Authentication deny' and I can no longer get it to work.

Same here.
I have double-checked my credenteials and are all ok.
I have tried too my country (Spain) code with 'es' and '34'
Note: I have Local Tuya working in my Home Asistant.

Also having this issue. Tried changing password, using new account, etc. I can log into the Tuya app and website but not through home assistant

In my case I already use Tuya IoT Platform some time ago and it was problem with outdated trial. Go to https://iot.tuya.com/cloud/ and next to "My Cloud Projects" you can point to "Trial edition". Actual date should be between "From" and "Expiration Time". If it's not, than you should choose "Update" button and extend trial edition for free. After this probably you should also create new cloud project according to the instalation manual.

My account shows a valid trial edition subscription, but authentication issues affect me as well.
TRIAL EDITION
From : 2021-02-25 20:38
Expiration Time : 2022-02-26 17:59

Finally decided to set up this integration today but am also encountering authentication errors (with a valid subscription). Only this integration is affected, all other Tuya logins (Phone app/IoT Platform/LocalTuya home assistant addon/custom tuya api app) are working as expected

Yes I tried everything can´t login either !

Same...

same problem here. smart life app is linked, trial is valid, everything, but still authitencation error

Same... Smart Life App...

PSA: Country had to be the full name - for me Australia instead of the country code 61 worked with the very latest github code..


Set VP9 as default

Make VP9 the default streaming option.

working on it

Closed in #115

Related PR: #125


List / Get / Put on many simple K8s resources

For now, we have the complex pod create.
There is many simple resource that can be useful like, namespace, secrets, pv, etc... where crud could help in some usecase

Hi,
Having tasks for all of them is not easy, and as the Kubernetes API evolves quickly it may be a lot of work.
Maybe the best would be to provide a kubectl CLI task so people may be able to easily use it for list/get and using inputFiles to easily apply any Kubernetes manifest.

Usually, you orchestrate creating/deploying resources rather than reading resources. Given that we now have the Apply task, I'd tend to close for now https://kestra.io/plugins/plugin-kubernetes/tasks/kubectl/io.kestra.plugin.kubernetes.kubectl.apply
We can open dedicated feature requests for new K8s tasks if requested by users


TheHive: rename deprecated configuration key

As stated in the migration docs from 4.x to TheHive 5.y link, the configuration key to enable modules has been changed. This commit silences a warning about usage of the deprecated key.

Note that the CI will partially fail for this one as we currently have an open bug in it that prohibits it from running correctly for PRs from forks, so I'll manually override it in this particular case.


Add first element undo operation is not refresh the view

Since the canvas doesn't have the element, we don't invalidate the view.

We need to set layer type, as we have set it in another check in. Mark as fixed.


[pulsar-broker]Add alerts for expired/expiring soon tokens

Motivation
Currently, pulsar-broker does not provide additional alerts about expired and expiring soon tokens.
Modifications

Add additional alerts metrics for expired tokens expiredTokenMetrics.
Add histogram metrics for expiring tokens expiringTokenMinutesMetrics, and record the remaining time in minutes.
expiringTokenMinutesMetrics has the following buckets with different remaining time periods: 5 mins, 10 mins, 1 hour, 2 hours.


else not always picked up by autocomplete

Given:
declare function foo($foo as element(bar)) {
    if ($foo) then
        ()
    <caret>
};

()

where <caret> is the current cursor position, typing el does not resolve else as a possible keyword in the autocomplete box.
NOTE: The input:
if ($foo) then
    ()
<caret>

on its own does pick up else as a possible keyword in autocomplete.

Hey
I must be doing something wrong as I cannot reproduce your issue...
Please note that I've checked it on both XQuery Standard 3.0 and Marklogic 8 flavours.
Please see screenshots attached.
First one is when I started typing el in the place.

Second one is when I pressed ctrl-space in the place of cursor and started navigating the list.

Can you please add more details on when the issue happens and how it looks like?

This is what I am seeing:

In your Ctrl+Space screenshot, I am not seeing else or every in the list from my setup.
This is using the release version of the xquery plugin 3.0.0.

Can you please let me know of there's any exception notification related to this?
Also can you please share your idea.log?
It's in the Idea log directory (idea.log.path property in idea.properties).

The idea.log file does not have any exceptions relevant to this.
I have done some investigation into this issue...
In src/main/java/org/intellij/xquery/completion/keyword/KeywordCollector.java:

suggestKeywordsBasedOnParserExpectedKeywords is being called with getPrecedingText containing:
 declare function foo($foo) {
     if (empty($foo)) then
         ()
     [EOS]

where [EOS] is used to preserve whitespace in the last line.

The convertItem method on the getCompletionStateForKeywords handler is being called with the else keyword as an IElementType (so is correctly returning the else string).

completionStateInTemporaryFile.items contains [document, ordered, unordered, declare, function, replace, processing-instruction, following-sibling, following, schema-element, switch, intersect, comment, preceding-sibling, castable, parent, except, preceding, ancestor, namespace, descendant-or-self, descendant, schema-attribute, validate, instance, typeswitch, attribute, document-node, rename, ancestor-or-self, namespace-node, element].

Looking at https://android.googlesource.com/platform/tools/idea/+/snapshot-master/platform/lang-impl/src/com/intellij/lang/parser/GeneratedParserUtilBase.java, the function private static void addCompletionVariant(@NotNull PsiBuilder builder_, @NotNull CompletionState completionState, Object o) method looks like the place where items are being added. I am not currently sure what is preventing that item from being added.

Hi
Can you please try on the latest code from trunk if the issue is getting resolved (else is always picked up)?

I assume it fixed the issue. If not, please re-open.


CMS menu broken when resizing

Summary
CMS menu breaks during browser window resizing or switching from portrait to landscape mode on tablet.
Expected behaviour
Menu should look like this:

Actual behaviour
When browser window is resized under 600px width and than resied back over 600px menu starts to look like this:

After refresh it looks normal again. It happens every time.
Console in browser shows also this error when entering editing mode:

Environment

Python version: 2.7.6
Django version: 1.9.12
django CMS version: 3.4.1

Other:
cmsplugin-filer==1.1.3
dj-database-url==0.4.2
Django==1.9.12
django-appconf==1.0.2
django-ckeditor-filebrowser-filer==0.2.1
django-classy-tags==0.8.0
django-cms==3.4.1
django-filer==1.2.6
django-formtools==2.0
django-mptt==0.8.7
django-polymorphic==1.0.2
django-sekizai==0.10.0
Django-Select2==4.3.2
django-treebeard==4.1.0
djangocms-admin-style==<IP_ADDRESS>
djangocms-attributes-field==0.1.2
djangocms-column==1.7.0
djangocms-googlemap==1.0.2
djangocms-installer==0.9.3
djangocms-link==2.0.3
djangocms-snippet==1.9.2
djangocms-style==2.0.1
djangocms-text-ckeditor==3.3.1
djangocms-video==2.0.3
easy-thumbnails==2.3
html5lib==0.9999999
olefile==0.44
Pillow==4.0.0
pytz==2016.10
six==1.10.0
tzlocal==1.3
Unidecode==0.4.20

Cannot reproduce with a clean install, do you have a minimal case to reproduce it?
The js error doesn't look familiar, it would be great if you could find where is it actually is (i can provide the same js bundle but with sourcemaps)

I am also unable to reproduce.

I am very very sorry for this. I had two times {% render_block "js" %}. One at the top and one at the bottom of the template file. I don't know how I couldn't find it for so long. Sorry again that I wasted your time to check this issue.


Blog post on DPoP

Description
Would be great to generate more content on https://www.keycloak.org/blog, and with Keycloak 23 out the door that provides a good opportunity to do a blog post around DPoP.
Would someone from the OAuth SIG we open to contributing around this? We do welcome blog posts from anyone and it's just a matter of sending a PR to https://github.com/keycloak/keycloak-web/tree/main/blog/
Discussion
No response
Motivation
Advertise Keycloak and its new features to the community and beyond
Details
No response

I'd also welcome post on other subjects from the SIG

@stianst I will work on it.

I have added a solution that uses the prepared code of @tnorimat to support DPoP for all available grant_types even custom-added grant_types. Would be great if someone could review this:
https://github.com/keycloak/keycloak/pull/29967

@Captain-P-Goldfish Hello, Thank you. I will check it later on.


Explain how to include HTML instead of another VM

Added a comment to explain how to add pure HTML instead of using a separate ViewModel for you modal-body content.

Thanks for this but I was hoping instead of a comment to instead have a content selector actually added there so that the two could work in sync.  Basically just add the content selector after the compose.  Thoughts?


Fixes #354 SeqGRU CudaByteTensor bug

This fixes #354.

Thanks, @JoostvDoorn. Your fix has been merged.


Logging configuration - changing type from text to json is not reflected in module

Description
After changing Log format from Text to JSON, module is not triggering any drift.

[x] ✋ I have searched the open/closed issues and my issue is not listed.

⚠ Note
Before you submit an issue, please perform the following first:

Remove the local .terraform directory (! ONLY if state is stored remotely, which hopefully you are following that best practice!): rm -rf .terraform/
Re-initialize the project root to pull down modules: terraform init
Re-attempt your terraform plan or apply and check if the issue still persists

Versions

Module version [Required]: 4.18

Terraform version:
Terraform v1.5.1
on darwin_arm64

Provider version(s):

provider registry.terraform.io/hashicorp/archive v2.6.0
provider registry.terraform.io/hashicorp/aws v5.70.0
provider registry.terraform.io/hashicorp/external v2.3.4
provider registry.terraform.io/hashicorp/local v2.5.2
provider registry.terraform.io/hashicorp/null v3.2.3

Reproduction Code [Required]
module "lambda_function" {
  source  = "terraform-aws-modules/lambda/aws"
  version = "~> 4.0"

Python code lambda:
# Set up logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

Steps to reproduce the behavior:
Deploy lambda.
Edit in AWS web console Logging configuration Log format Text -> JSON.
Expected behavior
Some drift for logging configuration.
Actual behavior
No changes.
Terminal Output Screenshot(s)

Additional context

Please make sure that you use version 7.0 of this module or newer.
Also, make sure that you provide these arguments in your configuration:
https://github.com/terraform-aws-modules/terraform-aws-lambda/blob/master/examples/complete/main.tf#L436-L439


Suggestions

Hi, great mod, looking to implement it in the upcoming Awakening 2 modpack.
Couple of things that would be great if you could do.

Have an option to disable the fluid inventory (I would prefer to keep this separate from player inventory).

Have a larger player model icon. Possibly at one side of the player storage area (maybe an option to have this or the original).

you can hover over the player model icon to enlarge it

Yep, but it is always looking 'down' and the pop out can be a tad jarring, esp when hovering over by mistake (probably just a personal taste/preference thing). Really well executed mod btw.

ok, I add a config to disbale the fluid storage.
but I don't know what to do with the player icon. the GUI is already pretty big

2\. Have a larger player model icon. Possibly at one side of the player storage area (maybe an option to have this or the original). <

Good idea.


add companion data for GJ 758 B

This PR adds available photometry and host star properties for the companion GJ 758 B.

Thanks a lot @mperrin!


axis labels don't display properly

Hello! Thank you for the crate, it came around at a great time and is wonderful to work with
Unfortunately though I did find an issue with axis labels in that the y-axis label is not rotated and the x isn't there (?)
I'll try to have a look myself but I'll put this here if I don't know

okay I looked at the draw_text implementation and it currently doesn't use rotation and anchor - just fixed anchor over here https://github.com/bananaturtlesandwich/egui-plotter but rotation still needs some time since instead have to use TextShape

Ok looks like rotation plays weirdly with anchor so I'll look at that tomoz

Will look at it later today, sorry been busy with other life things. Thanks for contributing!

I have a pr open that fixes it btw if you want to look at that

I have a pr open that fixes it btw if you want to look at that

looking at it now, thanks again!


The results about DiDeMo dataset.

Hello, when I use your source code to train and evaluate on the DiDeMo dataset, the number of test/val/train samples are shown as
2024-02-21 08:16:14,149:INFO: ***** Running test *****
2024-02-21 08:16:14,149:INFO:   Num examples = 824
2024-02-21 08:16:14,149:INFO:   Batch size = 24
2024-02-21 08:16:14,149:INFO:   Num steps = 35
2024-02-21 08:16:14,149:INFO: ***** Running val *****
2024-02-21 08:16:14,149:INFO:   Num examples = 842
2024-02-21 08:16:37,722:INFO: ***** Running training *****
2024-02-21 08:16:37,723:INFO:   Num examples = 7103
2024-02-21 08:16:37,723:INFO:   Batch size = 48
2024-02-21 08:16:37,723:INFO:   Num steps = 2960
`

However, from paper "Progressive Spatio-Temporal Prototype Matching for Text-Video Retrieval (ICCV 2023)", the  number of test/val/train samples should be 1004/1065/8392. I have also confirmed with the author of ProST. He used the test/val/train setting.
Besides, I can not find the same results of CLIP4Clip-meanP and CLIP4Clip-seqTransf in your paper on the DiDeMo dataset. These results look better than those reported in other papers?
Since I want to use the same baseline model with your paper, I must make sure the correct number of training and testing samples. Could you provide the log of corresponding dataset ?
If it is convenient, please also provide the training log of the MSVD dataset.
Looking forward to your timely reply.

Hi, thanks for your interests. The results of CLIP4Clip-meanP and CLIP4Clip-seqTransf used in our paper were reported in Table 4 of CLIP2TV.
As for the split of DiDeMo, we straightly utlized the preprocess of paper X-CLIP. They seem to do some extra processing compared to CLIP4clip.
The previous training log for MSVD was not reserved, and maybe I should take some time to re-train it. Thank you for your patience.

So can you provide me the detailed number of test/val/train samples on DiDeMo dataset ? Just like I shown above. This does not need training.
Besides,  the 'run_msvd.sh' file in your code has a para "-- init model", what should this para be ?

Hi, I test it again,  and the following is the detailed number:
02/27/2024 20:24:05 - INFO -   ***** Running test *****
02/27/2024 20:24:05 - INFO -     Num examples = 824
02/27/2024 20:24:05 - INFO -     Batch size = 24
02/27/2024 20:24:05 - INFO -     Num steps = 35
02/27/2024 20:24:05 - INFO -   ***** Running val *****
02/27/2024 20:24:05 - INFO -     Num examples = 842
02/27/2024 20:24:09 - INFO -   ***** Running training *****
02/27/2024 20:24:09 - INFO -     Num examples = 7101
02/27/2024 20:24:09 - INFO -     Batch size = 24
02/27/2024 20:24:09 - INFO -     Num steps = 5900

Besides, the parameter "-- init model" is for model resuming, when you want to continue to train the previous model. If you want to train from scratch, you can remove this line in the script file.

OK , I got it, Thank you so much !


Add temp versions for release docs

Summary
Details and comments
Fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 67.538%

Totals

Change from base Build<PHONE_NUMBER>:
0.07%

Covered Lines:
2636

Relevant Lines:
3903

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 67.538%

Totals

Change from base Build<PHONE_NUMBER>:
0.07%

Covered Lines:
2636

Relevant Lines:
3903

💛  - Coveralls


fix(avatar): fix Chrome behavior when downscaling avatar

When using object-fit:cover + ratio 1/1, Chrome switches to pixelated downsizing algo which makes the avatar pixelated, add css rules to make Chrome reuse the bilinear algo so it's smoother for Avatar component
SUP-4461
General summary

Screenshots

StoryBook: https://f132033c--5fbfb1d508c0520021560f10.chromatic.com/ (Chromatic build)

Test is OK :heavy_check_mark:
https://f132033c--5fbfb1d508c0520021560f10.chromatic.com/?path=/story/lumx-components-thumbnail-thumbnail--square
In this story, we can see that without the change, the image is pixelated, while it is not with this change
Before:

After:

No change is visible on other thumbnail setups.


Draggable?

A person on stackoverflow asked about draggability and I was also looking for this but couldnt find a solution.
Afte rmy user opens the item in the gallery or non-gallery view, i was hoping the image would be draggable, is this possible?
This is my gallery with image i was trying to drag:

This is the topic asked by a stackoverflow user: http://stackoverflow.com/questions/27299741/does-magnific-popup-have-a-draggable-option

$.magnificPopup.open({
    items: {
      src: $('
Dynamically created element
'), // Dynamically created element
      type: 'inline'
    },
    closeBtnInside: true,
    callbacks: {
      open: function() {
        let modalDialog = $($.magnificPopup.instance.contentContainer).find(".modal-dialog").draggable({
          handle: ".modal-header"
        });
      }
    }
})