Google and other Mail Services do not receive my mail

Google and other Services (like www.fhooe.at) do not deliver my forwarded mails, but services like www.temp-mail.org do.
I replaced my real domain with my-domain and my real gmail address with<EMAIL_ADDRESS>My docker compose:
version: "3.5"

services:
  smf:
    container_name: mail-forwarder
    image: zixia/simple-mail-forwarder
    restart: always
    ports:
      - "25:25"
    environment:
      - SMF_CONFIG=<EMAIL_ADDRESS>    volumes:
      - /opt/projects/mail_forwarder/volumes/logs:/var/log/postfix
      - /var/db/dkim:/var/db/dkim

docker compose up output:
root@netcup:~/mail-test# docker compose up
[+] Running 1/0
 ✔ Container mail-forwarder  Created                                                                                0.0s
Attaching to mail-forwarder
mail-forwarder  | >> Chdir to /app...
mail-forwarder  |  ____  _                 _         __  __       _ _
mail-forwarder  | / ___|(_)_ __ ___  _ __ | | ___   |  \/  | __ _(_) |
mail-forwarder  | \___ \| | '_ ` _ \| '_ \| |/ _ \  | |\/| |/ _` | | |
mail-forwarder  |  ___) | | | | | | | |_) | |  __/  | |  | | (_| | | |
mail-forwarder  | |____/|_|_| |_| |_| .__/|_|\___|  |_|  |_|\__,_|_|_|
mail-forwarder  |                   |_|
mail-forwarder  |   _____                                _
mail-forwarder  |  |  ___|__  _ ____      ____ _ _ __ __| | ___ _ __
mail-forwarder  |  | |_ / _ \| '__\ \ /\ / / _` | '__/ _` |/ _ \ '__|
mail-forwarder  |  |  _| (_) | |   \ V  V / (_| | | | (_| |  __/ |
mail-forwarder  |  |_|  \___/|_|    \_/\_/ \__,_|_|  \__,_|\___|_|
mail-forwarder  |
mail-forwarder  |
mail-forwarder  | v1.4.7
mail-forwarder  | Source#3cd9076 Sat Oct 21 22:43:18 2023 +0000 * master
mail-forwarder  | Built on Sat Oct 21 22:43:27 UTC 2023 by buildkitsandbox
mail-forwarder  |
mail-forwarder  | >> ENV SMF_DOMAIN not set.
mail-forwarder  | >> ENV SMF_CONFIG found. value:[<EMAIL_ADDRESS>mail-forwarder  | >> ARGV arguments found. value:[start]
mail-forwarder  | >> SMF_CONFIG found in ENV. use this settings for forward maps.
mail-forwarder  | >> Setting password[zw6jt5zf] for user @my-domain.at ...
mail-forwarder  | postmap: warning: /etc/postfix/virtual.db: duplicate entry<EMAIL_ADDRESS>mail-forwarder  | >> Set hostname to my-domain.at
mail-forwarder  | Postfix logging configuration
mail-forwarder  | Postfix will use the default logging configuration: /dev/stdout
mail-forwarder  | Inserting my-domain.at data to /etc/opendkim/{KeyTable, SigningTable, TrustedHosts}
mail-forwarder  | OpenDKIM: this TXT record for my-domain.at should be present:
mail-forwarder  | default._domainkey
mail-forwarder  |
mail-forwarder  | TXT
mail-forwarder  |
mail-forwarder  | v=DKIM1;t=s;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv76qvZfEcfjrvd1eADkPidUtkILwC2tJFcITtdB6M3abxGNI15rCA8mYEcO07jIe3lZkjNgM1osQjygX0UeTh9R8ufwC2DY75NweP0TDf13u+mcdgr0Gy2PwinDfX4aJ3xwT/PrJpLyws7bWFs21miNnsC2/2JiWDBs4Y8lXzxl0IBKmanqTrQ7MudOjMtC9uNy1NqTsTFecEE1ffseG7P+FJgrSx3iJ/z61bA6aGnCmfxo5gvP5HQGHRs6a7JOJB9IpSupN2qcR44DMgWA4VHYCAeHFjQFfLUwXO3eubyM1Km/IzsRJ9hI3s5ObdS8w1Oc8i26v3etDV0xRqCmz2QIDAQABConfiguring DKIM key settings in /etc/opendkim/opendkim.conf
mail-forwarder  | Postfix main.cf custom entries from SMF_POSTFIXMAIN_
mail-forwarder  | Postfix master.cf custom entries from SMF_POSTFIXMASTER_
mail-forwarder  | >> Start self-testing...
mail-forwarder  | 1..24
mail-forwarder  | ok 1 SMF_CONFIG exist
mail-forwarder  | ok 2 SMF_DOMAIN exist
mail-forwarder  | ok 3 virtual maping source is set
mail-forwarder  | ok 4 virtual maping data is set
mail-forwarder  | ok 5 virtual maping db is set
mail-forwarder  | ok 6 system hostname FQDN resolvable
mail-forwarder  | ok 7 postfix myhostname FQDN & resolvable
mail-forwarder  | ok 8 check other hostname setting
mail-forwarder  | ok 9 confirm postfix is running
mail-forwarder  | ok 10 confirm port 25 is open
mail-forwarder  | ok 11 crond is running # skip skip this for 0.3.0 -> 0.4.0
mail-forwarder  | ok 12 ESMTP STATTLS supported
mail-forwarder  | ok 13 ESMTP AUTH supported
mail-forwarder  | ok 14 ESMTP STARTTLS connect ok
mail-forwarder  | ok 15 create user<EMAIL_ADDRESS>by password test
mail-forwarder  | ok 16 ESMTP AUTH by<EMAIL_ADDRESS>mail-forwarder  | ok 17 ESMTP TLS AUTH by<EMAIL_ADDRESS>mail-forwarder  | ok 18 deleting test user<EMAIL_ADDRESS>mail-forwarder  | ok 19 test DKIM keys
mail-forwarder  | ok 20 test custom main.cf entries
mail-forwarder  | ok 21 test custom master.cf entries
mail-forwarder  | ok 22 test default postfix logging configuration
mail-forwarder  | ok 23 test custom postfix logging configuration with an error
mail-forwarder  | ok 24 test custom postfix logging configuration
mail-forwarder  | >> Test PASSED
mail-forwarder  |
mail-forwarder  |
mail-forwarder  | >> CONGRATULATIONS! System is UP and You are SET!
mail-forwarder  | >> Powered by SMF - a Simple Mail Forwarder
mail-forwarder  | >> View in DockerHub: https://hub.docker.com/r/zixia/simple-mail-forwarder
mail-forwarder  |
mail-forwarder  |
mail-forwarder  | >> Init System for Servicing...
mail-forwarder  | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
mail-forwarder  | [s6-init] ensuring user provided files have correct perms...exited 0.
mail-forwarder  | [fix-attrs.d] applying ownership & permissions fixes...
mail-forwarder  | [fix-attrs.d] done.
mail-forwarder  | [cont-init.d] executing container initialization scripts...
mail-forwarder  | [cont-init.d] done.
mail-forwarder  | [services.d] starting services
mail-forwarder  | [2023-12-27T11:05:51.413716] WARNING: Configuration file format is too old, syslog-ng is running in compatibility mode. Please update it to use the syslog-ng 3.27 format at your time of convenience. To upgrade the configuration, please review the warnings about incompatible changes printed by syslog-ng, and once completed change the @version header at the top of the configuration file; config-version='3.9'
mail-forwarder  | [services.d] done.
mail-forwarder  | Dec 27 11:05:51 b0d4029bbafd syslog-ng[898]: syslog-ng starting up; version='3.27.1'
mail-forwarder  | Dec 27 11:05:51 b0d4029bbafd syslog-ng[898]: WARNING: log-fifo-size() works differently starting with syslog-ng 3.22 to avoid dropping flow-controlled messages when log-fifo-size() is misconfigured. From now on, log-fifo-size() only affects messages that are not flow-controlled. (Flow-controlled log paths have the flags(flow-control) option set.) To enable the new behaviour, update the @version string in your configuration and consider lowering the value of log-fifo-size().;

postfix log after container start:
Dec 27 11:09:14 my-domain postfix/postfix-script[695]: starting the Postfix mail system
Dec 27 11:09:14 my-domain postfix/master[697]: daemon started -- version 3.5.16, configuration /etc/postfix
Dec 27 11:09:14 my-domain postfix/postfix-script[928]: stopping the Postfix mail system
Dec 27 11:09:14 my-domain postfix/master[996]: daemon started -- version 3.5.16, configuration /etc/postfix

postfix log when a mail is forwarded:
Dec 27 11:13:22 my-domain postfix/postfix-script[699]: starting the Postfix mail system
Dec 27 11:13:22 my-domain postfix/master[701]: daemon started -- version 3.5.16, configuration /etc/postfix
Dec 27 11:13:22 my-domain postfix/postfix-script[929]: stopping the Postfix mail system
Dec 27 11:13:22 my-domain postfix/master[997]: daemon started -- version 3.5.16, configuration /etc/postfix
Dec 27 11:14:27 my-domain postfix/smtpd[1001]: connect from mail-pg1-f174.google.com[<IP_ADDRESS>]
Dec 27 11:14:28 my-domain postfix/smtpd[1001]: 06BBA4013C3: client=mail-pg1-f174.google.com[<IP_ADDRESS>]
Dec 27 11:14:28 my-domain postfix/cleanup[1007]: 06BBA4013C3<EMAIL_ADDRESS>Dec 27 11:14:28 my-domain postfix/qmgr[999]: 06BBA4013C3<EMAIL_ADDRESS>size=2831, nrcpt=1 (queue active)
Dec 27 11:14:28 my-domain postfix/smtpd[1001]: disconnect from mail-pg1-f174.google.com[<IP_ADDRESS>] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7
Dec 27 11:14:28 my-domain postfix/smtp[1009]: 06BBA4013C3<EMAIL_ADDRESS><EMAIL_ADDRESS>relay=gmail-smtp-in.l.google.com[<IP_ADDRESS>]:25, delay=0.78, delays=0.1/0.02/0.3/0.37, dsn=2.0.0, status=sent (250 2.0.0 OK<PHONE_NUMBER> q17-20020a056402519100b00553fbff96a9si6011954edd.548 - gsmtp)
Dec 27 11:14:28 my-domain postfix/qmgr[999]: 06BBA4013C3: removed

Furthermore, after the container runs for a while I get the following warnings:
Dec 27 12:09:53 my-domain postfix/smtpd[299]: connect from localhost[<IP_ADDRESS>]
Dec 27 12:09:53 my-domain postfix/smtpd[299]: warning: connect to Milter service unix:/run/opendkim/opendkim.sock: No such file or directory
Dec 27 12:09:53 my-domain postfix/smtpd[299]: warning: SASL authentication failure: Password verification failed
Dec 27 12:09:53 my-domain postfix/smtpd[299]: warning: localhost[<IP_ADDRESS>]: SASL PLAIN authentication failed: authentication failure
Dec 27 12:09:53 my-domain postfix/smtpd[299]: lost connection after AUTH from localhost[<IP_ADDRESS>]
Dec 27 12:09:53 my-domain postfix/smtpd[299]: disconnect from localhost[<IP_ADDRESS>] auth=0/1 commands=0/1

On my domain I have an SPF, MX and DKIM Record setup as well as rDNS.
Any help would be greatly appreciated.

After almost abandoning SMF and looking for paid solutions I found out, that Google just silently drops your email if it is forwarded to the same address as it originiated. 😠 Thanks Google 🖕
Everything works now.
Here is my docker-compose file:
version: "3.5"

services:
  smf:
    container_name: mail-forwarder
    image: zixia/simple-mail-forwarder
    restart: always
    ports:
      - "25:25"
    environment:
      - SMF_DOMAIN=${SMF_DOMAIN}
      - SMF_CONFIG=${SMF_CONFIG}
      - SMF_SRS=true
      - SMF_POSTFIXMAIN_sender_canonical_maps=tcp:localhost:10001
      - SMF_POSTFIXMAIN_sender_canonical_classes=envelope_sender
      - SMF_POSTFIXMAIN_recipient_canonical_maps=tcp:localhost:10002
      - SMF_POSTFIXMAIN_recipient_canonical_classes=envelope_recipient,header_recipient
    volumes:
      - /opt/projects/logs/mail_forwarder:/var/log/postfix
      - ${MAIL_FORWARDER_DKIM}:/var/db/dkim

Here is the documentation I wrote for future me:
How To Setup SMF (for Google and Microsoft 365)
Docker Image Documentation
https://github.com/huan/docker-simple-mail-forwarder
Important

Do NOT use the same Gmail address to test forwarding, because Gmail silently drops any email which is forwarded back to you. F.e. you won't receive any forwarded email if you send an email from<EMAIL_ADDRESS>to your domain<EMAIL_ADDRESS>and have SMF configured that the email will be forwarded back to<EMAIL_ADDRESS>Google will send an OK Response to your postfix service but will silently drop the email and it will not be delivered.

Google might mark your emails as spam and put them in your spam folder. I have not found a reliable way to combat this but you can set up a filter in your Gmail settings to circumvent this.

Microsoft 365 marks any emails as spam, which do not pass their filters and puts them into quarantine while also (like Google) sending your postfix servcie an OK response. Their filters sadly also mark emails as spam which have a subject/body like foo, test, 123 etc. Although you should get an info-email that one of your recent emails was put into quarantine but this can take several hours while you might be debugging a problem that does not exist.

Domain Settings
Records
MX
Setup a MX Record like so:

Host
Type
MX
Destination

@
MX
0
your-domain.at

Setup a SPF Record like so:

Host
Type
MX
Destination

your-domain.at
TXT
-
v=spf1 ip4:<IP_ADDRESS> -all

Setup a DKIM Record like so:

Host
Type
MX
Destination

default._domainkey
TXT
-
v=DKIM1;t=s;p=<your public dkim key>

You can generate a key pair at easydmarc.com.
Setup a DMARC Record like so:

Host
Type
MX
Destination

_dmarc
TXT
-
v=DMARC1; p=reject<EMAIL_ADDRESS>

Docker compose
DKIM Volume
Store the generated DKIM key pair somewhere on the host machine and export the directory to the environment variable MAIL_FORWARDER_DKIM, so the mounted volume ${MAIL_FORWARDER_DKIM}:/var/db/dkim will be set up correctly.
Make sure that your private key is named default.private.
rDNS
Setup rDNS to point to mail.your-domain.at (rDNS should be configured as 3rd level domain as per RFC) in your Server Settings. For servers hosted by netcup this can be done in the Server Control Panel. For servers hosted by lansol the Customer Support has to be contacted. So this is dependent on your server provider.

Hi @m-schoder ,
Thank you very much for posting your solution with the detailed problem!
I'd love to invite you to add your documentation to the SMF README so that later users will quickly solve problems like yours and read your clear setup guide.
Please feel free to create a PR for it if you would like to.
Have a great new year ahead!


Reverse proxy using caddy [vite] failed to connect to websocket (SecurityError: The operation is insecure.).

Hi,
I need some help how can I make nuxt to use reverse proxy using Caddy in my local development?
Note:
If I add https:true to the devServer if I access the site it will just show blank screen.
here is my nuxtconfig

   devServer: {
        host: 'https://nuxtnew.larabells.local',
    },
    vite: {
        server: {
            hmr: {
                protocol: 'wss',
                clientPort: 443,
            },
        },
    },

caddyfile
nuxtnew.larabells.local {
	reverse_proxy nuxtnew_container:3000
}

docker-compose
    caddy:
        image: caddy:latest
        container_name: caddy-breeze
        restart: unless-stopped
        ports:
            - "80:80"
            - "443:443"
            - "443:443/udp" # HTTP/3
        volumes:
            - caddy_data:/data
            - caddy_config:/config
            - ./Caddyfile:/etc/caddy/Caddyfile
        networks:
            - mynetwork

    node:
        container_name: nuxtnew_container
        build:
            context: ../nuxt/mynuxt
            dockerfile: ../mynuxt/docker/node.dockerfile
            target: development
        image: nodenuxtnew
        ports:
            - "3000:3000"
            - "24678:24678"
        volumes:
            - caddy_data:/data
            - caddy_config:/config
            - ../nuxt/mynuxt:/app
            - node_modules:/app/node_modules
        command: dev
        working_dir: /app
        networks:
            - mynetwork

The error in firefox console is this and the the HMR will not work
[vite] failed to connect to websocket (SecurityError: The operation is insecure.).

Thank you in advance

I think https://github.com/nuxt/nuxt/issues/27558 might be related (even though it's about Apache, Caddy is named in the discussion).
And also this: https://github.com/nuxt/nuxt/issues/12003


Test for integer coercion

What issue does this pull request resolve?
Reproduces problem described in #693
What changes did you make?
Add failing skipped test.
Is there anything that requires more attention while reviewing?
No.

I am confused. All these cases work for me (https://runkit.com/esp/5a7761e3d1a7fd0012e44ede). What exactly is not working as you expect?

... and the skipped test passes.

@epoberezkin Do you see any value in new test? I can un-skip and rebase this PR, or just close it.

And it probably was failing at first due to incorrect check that was removed in https://github.com/epoberezkin/ajv/pull/694/commits/a8a4ddc2fc8bb252839f9f1ea1a659f8edef5e1d and in a hurry I didn't check if test was still failing after I removed it. Sorry.

Yes, if integer wasn’t separately tested before it makes sense to have them - let’s uskip & merge.
Thank you

@epoberezkin Done.


Filter hook for processing log messages

This is filtering interface support for UberLogger-FilterChannels. I think it makes sense for the general UberLogger project as well.
UberLogger-FilterChannels enables us to have a lot of UberLogger.LogChannel(...) calls in our codebase, with most channels being muted. This strategy helps keep log files fairly clean and readable for the bulk of people on the team. Individual developers that want more diagnostic information from a specific subsystem can then unmute that specific channel by changing a single line in a config file and re-run the game.
My main concern with this muting approach is that all the log calls and computation of arguments will be present in release builds, with no mechanism for making those calls disappear from the executable (not even in a "final final" build configuration). A compile-time muting mechanism will probably involve the build system and will be difficult to package in a plug-and-play format.

I'll pull this in. Regarding the runtime cost, I could have sworn I'd wrapped up all the Logxxx calls with Conditional("DEBUG")], so all logging would be disabled in release builds, but apparently not. I might fix this.


⚠ Samsung has degraded performance

In 8e1a88e, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2794 ms

Resolved: Samsung performance has improved in 58b5201.


Clamp gunzoomfovs to accommodate modified player FOV

https://github.com/user-attachments/assets/6d56c65f-6b9d-46fc-adb1-48a13f1070af
When a gun with variable zoom FOV is set to its minimum or maximum, it can easily exceed its limits if the player changes their vertical FOV from the menu. The additional clamping logic keeps it within its boundaries after an FOV change (only has an effect if FovAffectsZoom is 1).

If you're going to actually fixup gunzoomfovs, as opposed to, say, returning a clamped copy, it's better to do this in the functions that change the variable, not in the getter. There are already clamps in currentPlayerZoomIn and currentPlayerZoomOut, so it might be best to put it in either bmoveProcessInput right after those functions are called, or in the menu callback for changing the FOV or something.

I don't think I want to be returning a copy here. Putting the clamp in currentPlayerGetGunZoomFov was the most convenient place to put it. I could, alternatively, write a new function called currentPlayerSetGunZoomFov that essentially does the same exact thing as currentPlayerGetGunZoomFov, but modifies the gunzoomfovs instead, and call it in bmoveProcessInput. Calling it in the menu callback would actually be better, as long as currentPlayerSetGunZoomFov would be in scope there. Unfortunately, I don't think that's the case. Other than resetting/initializing, the only places that modified all the gunzoomfovs were the currentPlayerZoomIn and currentPlayerZoomOut routines, and those are only called if I'm actually performing those actions.

Logically we should clamp it in the menu, since that is where the FOV is changed. Something like this might work, player order issues notwithstanding.
fix.patch

Just tested. This seems to work fine and, since it's updated in the menu, it's not being called every iteration of bmoveProcessInput, which is also an improvement.
About potential "player order issues": I don't have the means to test situations with multiple players. I guess it has to do with how g_ExtMenuPlayer is modified, which seems to be done in menuhandlerSelectPlayer. Following the chain upwards, menuhandlerSelectPlayer => g_ExtendedSelectPlayerMenuItems => g_ExtendedSelectPlayerMenuDialog => menuhandlerOpen${menuname}Menu => etcetera, seems to be fine on the surface. Or, are you saying that:
g_ExtMenuPlayer = 0 == player1,
g_ExtMenuPlayer = 1 == player2,
g_ExtMenuPlayer = 2 == player3,
g_ExtMenuPlayer = 3 == player4

Is not guaranteed to be true?

I just don't actually remember if that is how it is. The game has a player ordering system that it uses to ensure that players tick in a random order in combat sim, but IIRC the players in the players array should be ordered according to gamepad number, so maybe I'm just forgetting.

I see, that's interesting. If that randomization only occurs during Combat Sim matches, then maybe it doesn't matter since it isn't possible to access the regular or extended game menus from that mode, anyway. But if it's also used for co-op or counter-op, then it might be an issue.


egg roll recipe bug with refabricated

"tag": "c:foods/cooked_meats/cooked_eggs" is used is farmers delight refabricated
"tag": "c:cooked_eggs" is used in cultural delights recipes.
I think this might cause a bug with the crafting of the recipes as I am unable to craft the egg roll when using the refabricated cultural delights version.

it seems like a similar (or the same) bug affects the mutton sandwich recipe, there are probably several others affected as well

fixed


Mapped Object Type with Conditional Types - Takes Neither

TypeScript Version: 3.0.3

Search Terms: - Mapped Conditional Types, Mapped Types Bug
Code
class Foo {
    name = "foo";
}
class Bar {
    name = "bar";
}
type Test = {
    foo: Foo;
    bar: Bar;
}
// doesn't matter what type "any" here is, it takes neither.
type TrueOrFalse<T> = T extends any ? true : false;
const getFromTest = <K extends keyof Test>(key: K) => {
    const TestType1: TrueOrFalse<Test[K]> = true; // fails
    const TestType2: TrueOrFalse<Test[K]> = false;  // fails
    const TestType3: TrueOrFalse<Test[K]> = "" as any as true & false // fails
    const TestType4: TrueOrFalse<Test[K]> = "" as any as true | false // fails
}

Expected behavior:
TrueOrFalse<Test[K]> should be either true or false but comes out as neither. regardless of the type of "any" in the type alias.
Actual behavior:
It chooses neither of the conditional types.
Playground Link:
https://agentcooper.github.io/typescript-play/#code/MYGwhgzhAEBiD29oG8CwAoaXoDswFsBTaAXmgCIAzRcgbgwF8NRIYAhMAJxQ21wOJlyAIy51GGAC4BPAA7EAKoQiTSPTNmrwAXHET0NWUZ10dOBpugD0V6ABN4ynAHJV+MJMmFuAdwAWHtAy8hRgONLk0H7exACWEAA00LGqkmAA1sq4hCnRnAB0UnKKnACuhADynLBgIBCEADwKAHxqCtCEAB5eOHYwYdLQAPxBZcS6lLX1BsDwOCrQAOaEkrCc8PhKC2QNANId3YS9MJnS8JTQW5LNABSnursAlKStaIbQs-OqVwrFAIy6BRjKo1OqNK4AbV2AF1WmRJGNaNAbNBJrE6rxsJ8Fj9igAmQHA6pTcHKSRQ2FqSZgpHI2xojHvbHfMm-eQAZkJ5RBJKaZIpcIokUg0AGopgCPK0AAZKiSXS5eiIJisMzLqzigAWLmVYlgvkqAVqcjC-rhcWjKUAHzlYIVDOV6EsQA

Hello @mattmccutchen,
Not too familiar with non-distributive condition types however how can i fix this for my use case which is.....
I have the following type in a self-controlled private repository.
at<K extends keyof C>(path: C extends Array<any> ? number : K): DoesntMatterType

Basically if C is array take a number to index it, else take a key of C to index it.
This type has worked perfectly for my whole project up untill this single point where i have some type T indexed by a single type K
such that i have... T[K]
when i try to "at" something on my T[K] i can pass neither a keyof T[K] nor a number.
How can i fix the typings to continue to work for everything else but also to solve this case.

@ShanonJackson Why isn't your at method just declared as the following?
at<K extends keyof C>(path: K): DoesntMatterType

After all, when C is an array type, keyof C does indeed include number (plus the names of the properties of the array, but you might actually want to access "length" so that seems ok).
There is currently no way your at method will work on a higher order type such as a T[K]. It is simply beyond the type system's capability to abstractly reason about the type C extends any[] ? number : K. Even if we did have a rule that allowed assigning to an unresolved conditional type, the source type in your case would need to be (keyof T[K]) & number in order to be assignable to both branches.

Bingo, back when i wrote that i think keyof T was just resolving to string (i think).
Thank you. Resolved.

@ShanonJackson You can read about distributive conditional types in the original PR #21316.

I'm reading but i'm still not seeing answers to any of the things that are blocking me now.
Would you be able to explain these to me.....
interface Foo {
    name: "foo";
    siblings: number[]
}
interface Bar {
    name: "bar";
    siblings: string[]
}

type Test = {
    foo: Foo;
    bar: Bar;
}

const getFromTest = <K extends keyof Test>(key: K) => {
    const t = ("" as any as Test)[key]
    const yolo = {...t}  // not spreadable? why.
    const test = t.siblings.filter((x) => "" === x.name) // cannot invoke .....
    // why shouldn't X become number & string? or number | string
}

Ontop of these 2 i have 2-3 more issues that's making the typing of certain functions impossible in my project, also related to the T[K] problem, but it's going to invole bigger repro steps

@ShanonJackson Please take this to Stack Overflow.


[OTEL-2065] Initialize peer tags only once in stats OTel API

What does this PR do?
Modify the OTLPTracesToConcentratorInputs API to accept peer tag keys, so that peer tag keys can just be initialized once in DD connector.
Benchmark results:
goos: darwin
goarch: arm64
pkg: github.com/DataDog/datadog-agent/pkg/trace/stats
cpu: Apple M1 Max
BenchmarkOTelPeerTags-10                              	    1000	     11333 ns/op	    6910 B/op	      74 allocs/op
BenchmarkOTelPeerTags_IncludeConfiguredPeerTags-10    	    1000	     15244 ns/op	   11697 B/op	      85 allocs/op

Motivation
Currently the new OTel stats API in DD connector initializes the peer tag keys upon every payload. ConfiguredPeerTags is expensive, peer tag keys are static in DD connector, so we should instead only initialize peerTagKeys once in DD connector and pass them as an argument to the API.
Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes
N/A this is only expected to be used in DD connector

/merge


How fast is this database?

Will it be updated instantly when a goal is scored or match is over, etc.?

No.


Getting information about a folder overwritten by a file gives 500 error instead of 404

Description:
There are scenarios where a file(say testfile.txt) is copied over the top of an existing folder(say FOLDER), which overwrites the folder. The folder changes into the file and the name is of the folder(FOLDER). When we try to find if the actual folder(FOLDER) exists for the user, then 500 Internal server error is returned instead of 404 Not Found. However, if we check for the completely non-existence folder, which was never created, then it returns 404 correctly.
Steps To Reproduce:

Create User Alice
Alice creates a file testfile.txt with content some data

curl -u Alice:1234 -X PUT "http://localhost:9140/remote.php/webdav/testfile.txt" -d "some data" -v

< HTTP/1.1 201 Created

Alice creates folder FOLDER

curl -u Alice:1234 -X MKCOL "http://localhost:9140/remote.php/webdav/FOLDER" -v

< HTTP/1.1 201 Created

Alice creates folder FOLDER/sample-folder

curl -u Alice:1234 -X MKCOL "http://localhost:9140/remote.php/webdav/FOLDER/sample-folder" -v

< HTTP/1.1 201 Created

Alice copies file testfile.txt to FOLDER using webdav API

curl -u Alice:1234 -X COPY "http://localhost:9140/remote.php/webdav/testfile.txt" -H "Destination: http://localhost:9140/remote.php/webdav/FOLDER" -v

< HTTP/1.1 204 No Content

Alice checks the content of file FOLDER

curl -u Alice:1234 -X GET "http://localhost:9140/remote.php/webdav/FOLDER" -v

< HTTP/1.1 200 OK

some data%

Alice checks if folder FOLDER/sample-folder exists

curl -u Alice:1234 -X GET "http://localhost:9140/remote.php/webdav/FOLDER/sample-folder" -v

< HTTP/1.1 500 Internal Server Error

But when Alice checks for a folder Non-existent-folder which was never created

 curl -u Alice:1234 -X GET "http://localhost:9140/remote.php/webdav/Not-Existent-Folder" -v

< HTTP/1.1 404 Not Found

Perhaps something has changed. Getting information about a folder using the GET method always gives HTTP/1.1 501 Not Implemented question: should it work correctly in this case?
server log:
21-08-31T16:41:28+02:00 WRN resource is a folder and cannot be downloaded handler=get path=/home/1/2 pkg=rhttp service=storage svc=ocdav traceid=4cfe3d3412acac1417f7e4be6986155d 2021-08-31T16:41:28+02:00 ERR http end="31/Aug/2021:16:41:28 +0200" host=::1 method=GET pkg=rhttp proto=HTTP/1.1 service=storage size=0 start="31/Aug/2021:16:41:28 +0200" status=501 time_ns=52276458 traceid=4cfe3d3412acac1417f7e4be6986155d uri=/remote.php/webdav/1/2 url=/remote.php/webdav/1/2
question: should it work correctly in this case?
method curl -X PROPFIND "http://localhost:9140/remote.php/webdav/1/1" works to get information about the folder

The above bug seems to have been fixed and the expected to failure for ocis that has been tag with this issue is irrelevant to this but acts differently than oc10 when we copy the file on the top of an existing folder.

@SagarGi if the issue is not relevant further, please close it with the proper current behavior in a comment. The expected failure files also need an update regarding the scenarios linked with these issues.

RE-TESTED As @SagarGi mentioned this issue has been resolved but the issue exists in expected-failure file and need to remove

@SwikritiT

[ ] backport to stable


Style/RaiseArgs auto correction to invalid syntax

I'm running corrections over some older code that hasn't been looked after by Rubocop before, and I've just had the Style/RaiseArgs cop auto-correct a raise that used a dynamically assigned exception class into invalid code.
Specifically the line affected was equivalent to raise klass.new('oh no')
Expected behavior
Correct to raise klass, 'on no'
Actual behavior
The line is corrected to raise , 'oh no'
Steps to reproduce the problem
Given this contrived eg.rb file:
def do_a_thing
  klass = RuntimeError
  raise klass.new('oh no')
end

Run Rubocop corrections:
$ bundle exec rubocop --safe-auto-correct eg.rb
Inspecting 1 file
E

Offenses:

eg.rb:3:3: C: [Corrected] Style/RaiseArgs: Provide an exception class and message as arguments to raise.
  raise klass.new('oh no')
  ^^^^^^^^^^^^^^^^^^^^^^^^
eg.rb:3:18: E: Lint/Syntax: unexpected token tNL
(Using Ruby 2.3 parser; configure using TargetRubyVersion parameter, under AllCops)
  raise , 'oh no' ...

1 file inspected, 2 offenses detected, 1 offense corrected

The eg.rb file is left in this state:
def do_a_thing
  klass = RuntimeError
  raise , 'oh no'
end

RuboCop version
$ bundle exec rubocop -V
0.60.0 (using Parser <IP_ADDRESS>, running on ruby 2.3.7 x86_64-darwin18)

Thanks for the feedback. I opened a PR #6515.


Replace the unavailable linked test-case for issue 2128 with a reduced test-case

Re: issue #2128 and PR #2628.

/botio test

There appears to be something wrong with the test on Linux. The characters are all replaced with squares. @Snuffleupagus Do you have an idea why that is happening only on Linux?

Do you have an idea why that is happening only on Linux?

Not really, since it works as expected on Windows. My only idea is that this might be a pre-existing issue on Linux, so I've just submitted a temporary patch to test that idea.
/botio test

My only idea is that this might be a pre-existing issue on Linux, so I've just submitted a temporary patch to test that idea.

The last round of testing seem to confirm this theory.
@timvandermeij Since this is an existing issue, would you agree that the PR is good to go (once the temporary test commit is removed)?

I have opened the issue above to track the Linux problem. Otherwise this patch seems fine to me and Yury confirmed on IRC that we can go ahead and merge this.
/botio makeref

Thank you for this patch!


Keep-alive doesn't work with nested routes

Version
2.6.10
Reproduction link
https://codesandbox.io/embed/ypk7jx47rv
Steps to reproduce

Use vue-router and use keep-alive around your main router-view
Cache a route that has childen routes (for example /user/:id)
Add a 2nd router-view and also use keep-alive around it
Cache only a sub part of the child routes (for example cache /user/:id but not /user/:id/articles)
From the homepage, access directly a non-cached sub page (for example /user/:id/articles)

What is expected?
The sub routes that aren't listed by the keep-alive around the nested routes shouldn't be cached.
What is actually happening?
The sub routes are cached. (Can be seen by the activated hook being triggered)

I'm not sure if this really fits into bug, maybe this behavior is intended? The sub route won't be cached if accessed in this order :
Home > Foo's profile > Foo's articles but will if doing Home > Foo's articles.

activated also triggers when a parent that is kept alive is activated, so they are triggering because of the parent route

activated also triggers when a parent that is kept alive is activated, so they are triggering because of the parent route

so, If i have these code:
firstLayer.vue
 <router-view #="{ Component }">
    <keep-alive>
      <component :is="Component" />
    </keep-alive>
  </router-view>

secondLayer.vue
<router-view >
  </router-view>
  ```

  `child.vue`
  ```
  code....
  ```

cache  is not working for the `child.vue` component?


Create separate commands for embedding, clustering, and distance matrix creation

The current embed command is doing a lot of work in one interface including creating distance matrices, embedding, and clustering with HDBSCAN. In practice, we often want to build a distance matrix first and then reuse this matrix as input for each different embedding type. We also don't always want to apply clustering to the embeddings. When we do apply clustering, we want to have the ability to run clustering many times on the same input embedding to try different cluster parameters.
I propose that we split the existing embed command into three separate top-level commands:

pathogen-distance to calculate a distance matrix from a given alignment input
pathogen-embed to embed a given alignment and (optional) distance matrix (still creating the matrix on the fly, if it has not been provided)
pathogen-cluster to apply HDSCAN clustering to a given input embedding

Command interfaces might look like the following with optional inputs in square brackets:
pathogen-distance \
    --alignment alignment.fasta \
    [--indel-distance \]
    --output distance_matrix.csv

pathogen-embed \
    [pca, mds, t-sne, umap] \
    --alignment alignment.fasta \
    [--distance-matrix distance_matrix.csv \]
    [--indel-distance \]
    [--random-seed 1234 \]
    --output-data-frame embedding.csv \
    --output-figure embedding.pdf
    [--components 2 --explained-variance \]
    [--perplexity 100 --learning-rate 100 \]
    [--nearest-neighbors 100 --min-dist 0.5]

# Note that original `embed` arguments referring to "cluster"
# drop that prefix here. For example, "--cluster-min-size" is just "--min-size".
pathogen-cluster \
    --embedding embedding.csv \
    [--random-seed 1234 \]
    [--min-size 5 \]
    [--min-samples 5 \]
    [--distance-threshold 1 \]
    --output-data-frame embedding_with_cluster_labels.csv \
    --output-figure embedding_with_cluster_labels.pdf

[ ] check pathogen_distance works
[ ] check pathogen_cluster works
[ ] check pathogen_embed works
[ ] submit PR so John can check before I push

The PR: https://github.com/blab/pathogen-embed/pull/2


ENH: signal: improve stability for filters for a broad frequency range

Is your feature request related to a problem? Please describe.
When calculating the exposure values using weighted peak method in the time domain, this can be done using transfer functions (https://pubmed.ncbi.nlm.nih.gov/28542011/).
I implemented this like this:
# Function to apply weighing in time domain (TD)
def WPM_TD(input_signal, Wf, fs):
    """
    Parameters:
        array input_signal: Signal to be filtered.

        list Wf: list of sublist for filter coefficients b and a form transfer function representation of weighing function.
                    Wf = [b, a] with b and a being lists themselves containig the filerer coefficients.

        float fs: sampling frequency in Hz.

    Returns:
        array filt_sig: weighted signal.
    """
    # coefficients of weighing function in filter representation
    b = Wf[0]
    a = Wf[1]

    # Taking absolute values
    a = [np.abs(a_i) for a_i in a]
    b = [np.abs(b_i) for b_i in b]

    # Constructing discrete digital filter by bilinear transformation
    b, a = scipy.signal.bilinear(b, a, fs) # sampling frequency in Hz

    # filtering of signal
    filt_sig = scipy.signal.lfilter(b, a, input_signal)

    # returning the filtered signal
    return filt_sig

When i plot the frequency response of b and a using scipy.signal.freqz(b, a, f) i see that the filter response is unstable. This results in wrong result for the signal weighting.
Describe the solution you'd like.
A more stable filter response for a broad frequency range, especially for higher frequencies.
Filters as stable as in MATLAB or LabView
Describe alternatives you've considered.
Using another program like MATLAB or LabView where the filtering is stbale.
Additional context (e.g. screenshots, GIFs)

Here is a plot of the filter function using scipy.signal.freqz for plotting. It can be seen very clearly that for different sample rates, the filter is unstable in different regions.

As far as I know, there is no generic catch-all method for designing numerical stable filters (with arbitrary responses and sampling rates). As a rule of thumb, the steeper the flanks of your frequency response are (in relation to the sampling frequency), the more likely it is to have numerical problems.
The go-to approach to make your implementation numerically more robust, would be to use second order sections (SOS). I.e., use tf2sos to convert your transfer function and filter with sosfilt (don't forget to initialize with sosfilt_zi). If needed, inspect the stability of each SOS-block by itself and replace it by two or more SOS-blocks which have a similar transfer function.
Alternatively, if off-line processing is sufficient for you and the signal is not too long (rule of thumb: < 10 million samples), you can just calculate the FFT of your signal, multiply with your frequency response and transfer it back.
Concerning your implementation and plot:

It's not clear to me, why you are taking the absolute value of your transfer function coefficients. Generally, it completely changes the filter behavior—especially, it can become unstable!  Does your plotted response correspond to the response your are trying to implement?
Since you did not list the utilized filter coefficients for the plot, we don't know, if they would produce a finite frequency response. Did you check?
In your plot, the frequencies of your response surpass the Nyquist frequency (and also the sampling frequency).

I hope this helps a bit, @MarioSteinerEMF.
For improving SciPy, it would be helpful to have a self-contained example illustrating what specifically needs to change.
Could you provide code for such an example, @MarioSteinerEMF?
IMO, having an filter design assistant, along the lines of pyFDA, for designing numerically robust filters, is out of scope of SciPy (for now).
PS: Try out pyFDA when designing a filter—it has a nice GUI.

Here is a little explanation of what i want to do:
In the paper https://pubmed.ncbi.nlm.nih.gov/28542011/ the assessment of welding currents is descibed. Different spectral components have to be weighted differently because the limits for exposure to magnetic and electric fields depends on frequency (Directive 2013/35/EU). In the directive limits dor the external megnetic fluc density, the so called action levels, are provided. More specifically, there is a low action level defined. The limits are piecewise linear but can be approximated by highpass and low pass filters, the combination of the filters forms a transfer function as it is described in Kellers paper.
I want to implement this transfer function in python and weight signals using it. The reason for wanting to do this in the time domain is because this is suggested as best method for welding current assessment, as the usage of highpass/lowpass filters resembles nerve cells best (see Keller paper).
Therefore i am constructing transfer functions in python with certain coefficients and want to filter signals with it.
Here is a code that shows that for certain sample rate, the filtered signal becomes unrealistic (diverges). A picture of the generated plots os also added.
import scipy
import numpy as np
import matplotlib.pyplot as plt
def generate_sine_signal(frequency=1, sampling_rate=100, amplitude=1):
"""
Generates a sine wave with one period and allows variation of the sampling rate.
Parameters:
    frequency (float): Frequency of the sine wave in Hz. Default is 1 Hz.
    sampling_rate (int): Number of samples per second. Determines resolution.
    amplitude (float): Amplitude of the sine wave. Default is 1.

Returns:
    time (numpy array): Array of time points.
    signal (numpy array): Array of sine wave values.
"""
# Calculate the period (T) of the sine wave
period = 1 / frequency

# Time array: generates time points for one period based on the sampling rate
time = np.linspace(0, period, int(sampling_rate / frequency), endpoint=False)

# Generate the sine wave signal
signal = amplitude * np.sin(2 * np.pi * frequency * time)

return time, signal

def generate_trapezoidal_signal(frequency=1, sampling_rate=100, amplitude=1, ramp_ratio=0.25):
"""
Generates a trapezoidal signal with one period and allows variation of the sampling rate.
Parameters:
    frequency (float): Frequency of the trapezoidal signal in Hz. Default is 1 Hz.
    sampling_rate (int): Number of samples per second. Determines resolution.
    amplitude (float): Amplitude of the trapezoidal signal. Default is 1.
    ramp_ratio (float): Fraction of the period allocated to the rising and falling ramps. Default is 0.25 (25%).

Returns:
    time (numpy array): Array of time points.
    signal (numpy array): Array of trapezoidal signal values.
"""
# Period of the trapezoidal signal
period = 1 / frequency

# Time array: generate time points for one period
num_samples = int(sampling_rate / frequency)
time = np.linspace(0, period, num_samples, endpoint=False)

# Define key time regions based on ramp_ratio
ramp_time = ramp_ratio * period  # Duration of rising and falling ramps
plateau_time = period - 2 * ramp_time  # Duration of plateau

# Initialize signal array
signal = np.zeros_like(time)

# Rising ramp
rising_indices = time < ramp_time
signal[rising_indices] = (amplitude / ramp_time) * time[rising_indices]

# Plateau
plateau_indices = (time >= ramp_time) & (time < ramp_time + plateau_time)
signal[plateau_indices] = amplitude

# Falling ramp
falling_indices = (time >= ramp_time + plateau_time) & (time < period)
signal[falling_indices] = amplitude - (amplitude / ramp_time) * (time[falling_indices] - (ramp_time + plateau_time))

return time, signal

if name == 'main':
# Factors for transfer function of 2013/35/EU for low action level limtis for B-field
# In SI UNITS!!
V_0 =   100 / 12 * 1e-6 # T
# corner frequencies of 2013/35/EU
# For B Als
w_1 = 3e3 * 2 * np.pi
w_2 = 300 * 2 * np.pi
w_3 = 25 * 2 * np.pi
w_4 = 8 * 2 * np.pi

# Dicitonary normally holds various different weighting fucntion coefficients
Weighing_functions = {
    '2013/35/EU':{
        'limits_B': {
            # Tab B2 1st column
            'LAL': {'num': [-1j / (w_1 * w_2 * w_4), -1 / (w_1 * w_4), 0, 0],
                    'den': [V_0 * -1j / (w_1 * w_3 * w_4), \
                               V_0 * -1 * (1 / (w_1*w_3) + 1 / (w_1*w_4) + 1 / (w_3*w_4)),  \
                              V_0 * 1j * (1 / w_1 + 1 / w_3 + 1/ w_4),
                              V_0]
                }}}}

for sf in [1e5, 1e6, 1e7, 1e8]:
    # sampling frequency
    sampling_f = sf
    time, signal = generate_trapezoidal_signal(frequency = 50, sampling_rate = sampling_f)

    # coefficients of weighing function in filter representation
    b = Weighing_functions['2013/35/EU']['limits_B']['LAL']['num']
    a = Weighing_functions['2013/35/EU']['limits_B']['LAL']['den']

    # Taking absolute values
    a = [np.abs(a_i) for a_i in a]
    b = [np.abs(b_i) for b_i in b]

    # Constructing discrete digital filter by bilinear transformation
    b, a = scipy.signal.bilinear(b, a, sampling_f) # sampling frequency in Hz

    # filtering of signal
    filt_sig = scipy.signal.lfilter(b, a, signal)

    # plot of signal and filtered signal
    plt.figure()
    plt.title('Sampling frequency %.0f'%sampling_f)
    plt.plot(time, signal, label = 'input signal')
    plt.plot(time, filt_sig, label = 'filtered tf')

    plt.xlabel('time')
    plt.ylabel('Amplitude')

    # try results with second order sections
    sos = scipy.signal.tf2sos(b, a)

    filt_sig_sos = scipy.signal.sosfilt(sos, signal)#, zi = scipy.signal.sosfilt_zi(sos))

    plt.plot(time, filt_sig_sos, label = 'filtered sos')

    plt.legend()

The desire would be that the output of the filtered signal stays stable, also for high frequencies

Describe the solution you'd like.
A more stable filter response for a broad frequency range, especially for higher frequencies.
Filters as stable as in MATLAB or LabViewI

It seems like your filter coefficients produce an unstable filter, i.e., very high amplifications for high frequencies.  You can use dbode and bode to verify that. Thus I am closing this issue, since that is not in the realm of SciPy. @MarioSteinerEMF, feel free to reopen this issue, if you disagree.

As written here, not planed.


BankTagPlugin: Fix searching for uppercase

Fixes #2303

I think you might have referenced the wrong PR.

Didn't consider people already having bank tags with uppercase letters, now sets lowercase when comparing.

I could just have done it right the first time. Now sets lowercase when setting tagConfig, lowercases search for extra security and lowercases new tags for consistency.


fix getting TF_VISIBLE_DEVICE from the environment

tf.config.list_physical_devices returns a list which can only be indexed by an integer.

rerun tests


PhantomJs Version 2.0 has issue which was not in Version 1.9

PhantomJs  version 2.0 has issue which version 1.9 don't have.There must be something I am missing or may changes happen in version 2.0 .Please check Following Observation,
Please find file here - https://www.dropbox.com/sh/lh0ljqw8rxo3gm7/AABQqPJoLRnb5w-nn6tTt3o9a?dl=0
Command - "phantomjs.exe rasterize.js test.html output.pdf"
HTML file to test - test.html
PhantomJs version 1.9.7 result - v_1.9.pdf
PhantomJs version 2.0.0 result -  v_2.0.pdf
So, I observe extra width in version 2.0 while converting html to pdf .Please let me now which changes should I do to resolve this issue in PhantomJS 2.0.Thanks.

Try with copying rasterize.js file from version 1.9 into version 2.0 ...still running in same problem...

I have similar issue too: in version 2.0.0, rendered font sizes and picture sizes are reduced compared to version 1.9.7.
Does the default unit changed between both version?

This is a duplicate of #12685

Closing as duplicate.


irccat: Add irccat resource

Hey @kallisti5,
As we are still testing the new workflow, I am sorry that I am asking for a lot of changes.

container_image should be just haiku/irccat-resource since it is already uploaded to docker-hub.
the name: in the yaml should just be irccat the same way it will be used in a pipeline.
the file name should be [OWNER_NAME]-[RESOURCE_NAME].yml in this case it should be: haiku-irccat-resource.

we have documented all the steps in this repo's readme, please take a look at it and give us any feedback that would make the process easier.
Thanks and sorry for all the changes.


Feature/particle system/#86by2420x We have Trails now!!

We have Trails now!!
Use the trail component to add a trail to a gameObject.
Direction width and color can be setted.

Task linked: CU-86by2420x Particle System


throttle and attr don't seem to work together

Hi Manuel,
I might be doing something wrong or this is an edge case bug.
If you have an input that has an attr with a throttle set, and the user types something quickly and tabs away the viewmodel value does not update.  It works fine without the attr...
example
<template name="binding">
  <input {{b "value: message, throttle: 400, attr: {placeholder: placeholder}"}} type="text">
  <div {{b "text: message"}} ></div>
</template>

I can't reproduce it. Make a repro.

Sorry was focus rather than attr that looks to be causing the problem please see https://github.com/jpdewing/vmThrottle for example.
If you type quickly and tab between fields it should illustrate the issue.  It is using an older release but also has the same result in latest release 4.1.5
Thanks,
James

Your repro works as advertised. I type, tab, 1 sec later label updates. Please try in different browsers.

Hmmm, odd.  I get the same experience with chrome, FF and edge.
If I refresh the page, type into the first field then immediately tab to the next field and type again, only the last field updates after the throttle period.
However if I keep focus on the first field and let the throttle run then subsequent events fire ok on the first field.  A bit difficult to explain I have recorded a quick demo of the behaviour http://recordit.co/mzjDT2ydaX
This does seem a bit obscure so don't worry about it, I can change the way I do the focus.

Closing this one, I may revisit it at a later point.


Error on compiling

My Problem is i want to add your lib into an existing project but when i do this i become this error all the times: [ERROR] Unable to find 'org/pepstock/charba/Charba.gwt.xml'.
What i have done:

Installed with maven: Build Successfully
inherated successfully
found by spring to access them in the ...View classes.

On every page reload when the page compiles new it shows me this error that i gave you.
I dont know how to resolve the error or what i need to do.

It looks like the charba-1.x.jar file is not in the WEB-INF/lib directory of your application.
Please ensure it is in the right place and, as the wiki says, put the following line in your GWT module file (yourapp.gwt.xml):
<inherits name="org.pepstock.charba.Charba"/>

After i have put the jar into the webinf folder it works correctly. Thank you man 🍡


feat(runtime-core): warning emit event if did not registered

need warning when emit event did not registered in parent component

It is quite common for events to be emitted without a listener in the parent. Component libraries do this all the time. There doesn't need to be a warning for this.
The addition of a warning causes many of the unit tests to fail. I suggest running pnpm test-unit before opening a PR to confirm that your changes don't break anything else. A PR can't be merged if it breaks the existing unit tests.

Closing as is expected that some components will emit events without a listener most of the time.


python312Packages.psygnal: 0.9.5 -> 0.10.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.psygnal is: Implementation of Qt Signals
meta.homepage for python312Packages.psygnal is: https://github.com/pyapp-kit/psygnal
meta.changelog for python312Packages.psygnal is: https://github.com/pyapp-kit/psygnal/blob/v0.10.0/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.10.0 with grep in /nix/store/ra3v3pc004va6jpgy10hzr6s22r1l54g-python3.12-psygnal-0.10.0
found 0.10.0 in filename of file in /nix/store/ra3v3pc004va6jpgy10hzr6s22r1l54g-python3.12-psygnal-0.10.0

Rebuild report (if merged into master) (click to expand)

22 total rebuild path(s)

22 package rebuild(s)

First fifty rebuilds by attrpath
napari
python311Packages.altair
python311Packages.anywidget
python311Packages.app-model
python311Packages.gradio
python311Packages.gradio-client
python311Packages.gradio-pdf
python311Packages.magicgui
python311Packages.napari
python311Packages.napari-npe2
python311Packages.psygnal
python311Packages.streamlit
python311Packages.vega
python312Packages.altair
python312Packages.anywidget
python312Packages.app-model
python312Packages.gradio-client
python312Packages.gradio-pdf
python312Packages.magicgui
python312Packages.napari-npe2
python312Packages.psygnal
streamlit

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ra3v3pc004va6jpgy10hzr6s22r1l54g-python3.12-psygnal-0.10.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.psygnal https://github.com/r-ryantm/nixpkgs/archive/708d2ea2fe8e08d26b8b8b4c5dab2931509e5ef7.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/708d2ea2fe8e08d26b8b8b4c5dab2931509e5ef7#python312Packages.psygnal

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ra3v3pc004va6jpgy10hzr6s22r1l54g-python3.12-psygnal-0.10.0
ls -la /nix/store/ra3v3pc004va6jpgy10hzr6s22r1l54g-python3.12-psygnal-0.10.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

8 packages marked as broken and skipped:

python312Packages.altair
python312Packages.altair.dist
python312Packages.anywidget
python312Packages.anywidget.dist
python312Packages.gradio-client
python312Packages.gradio-client.dist
python312Packages.gradio-pdf
python312Packages.gradio-pdf.dist

6 packages failed to build:

napari (python311Packages.napari)
napari.dist (python311Packages.napari.dist)
python312Packages.magicgui
python312Packages.magicgui.dist
python312Packages.napari-npe2
python312Packages.napari-npe2.dist

26 packages built:

python311Packages.altair
python311Packages.altair.dist
python311Packages.anywidget
python311Packages.anywidget.dist
python311Packages.app-model
python311Packages.app-model.dist
python311Packages.gradio
python311Packages.gradio-client
python311Packages.gradio-client.dist
python311Packages.gradio-pdf
python311Packages.gradio-pdf.dist
python311Packages.gradio.dist
python311Packages.magicgui
python311Packages.magicgui.dist
python311Packages.napari-npe2
python311Packages.napari-npe2.dist
python311Packages.psygnal
python311Packages.psygnal.dist
streamlit (python311Packages.streamlit)
streamlit.dist (python311Packages.streamlit.dist)
python311Packages.vega
python311Packages.vega.dist
python312Packages.app-model
python312Packages.app-model.dist
python312Packages.psygnal
python312Packages.psygnal.dist

Maintainer pings
cc @SomeoneSerge for testing.

Already on staging-next.


Add RPMsg-Lite 2.2.0 into Zephyr

Adds RPMsg-Lite 2.2.0 library support and a sample application into Zephyr on NXP LPC54114 SoC/board. It can work also on i.MX 6SoloX and i.MX7 SoCs' M4 cores, but it will require a separate sample application as the other core is running usually Linux there. Perhaps we can base the sample on @diegosueiro's Remote Echo sample application here.
Based on #5960 which was rejected in past due to RPMsg-Lite having the Clear-BSD license. As per @MarekNovakNXP's discussion with @nashif and @carlescufi at Embedded World conference, it has been agreed to put this into Zephyr now that the license is back to BSD-3-Clause.
To be merged only after 1.14 is released.

Based on #5960 which was rejected in past due to RPMsg-Lite having the Clear-BSD license. As per @MarekNovakNXP's discussion with @nashif and @carlescufi at Embedded World conference, it has been agreed to put this into Zephyr now that the license is back to BSD-3-Clause.

This needs to be raised at the TSC again for discussion.

Codecov Report

Merging #14742 into master will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #14742      +/-   ##
==========================================
+ Coverage   51.97%      52%   +0.03%
==========================================
  Files         309      309
  Lines       45582    45582
  Branches    10555    10555
==========================================
+ Hits        23691    23707      +16
+ Misses      17082    17070      -12
+ Partials     4809     4805       -4

Impacted Files
Coverage Δ

subsys/testsuite/ztest/src/ztest.c
72.72% <0%> (+7.43%)
:arrow_up:

subsys/testsuite/ztest/include/ztest_assert.h
77.77% <0%> (+38.88%)
:arrow_up:

Continue to review full report at Codecov.

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

Anything happening here or has it been decided that this should not go into Zephyr due to licensing issues?

We are still supporting adding RPMsg-Lite to Zephyr. License wise we are BSD, so I hope there should be no license issues.
Adding @Maureen<EMAIL_ADDRESS>and @Michal<EMAIL_ADDRESS>Petr
From: Sigvart Hovland<EMAIL_ADDRESS>Sent: Thursday, January 9, 2020 11:48
To: zephyrproject-rtos/zephyr<EMAIL_ADDRESS>Cc: Petr Lukas<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: [EXT] Re: [zephyrproject-rtos/zephyr] Add RPMsg-Lite 2.2.0 into Zephyr (#14742)
Caution: EXT Email
Anything happening here or has it been decided that this should not go into Zephyr due to licensing issues?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fpull%2F14742%3Femail_source%3Dnotifications%26email_token%3DAEAYCGG76VY23L5WTHNN7HDQ436GRA5CNFSM4G743FCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIP335A%23issuecomment-572505588&data=02|01|petr.lukas%40nxp.com|978e0025b4fa47d3fdc108d794f16b33|686ea1d3bc2b4c6fa92cd99c5c301635|0|0|637141636916115978&sdata=Xl7v%2FaPOXC9LQCEBB1CVzODo8Dg0c3GI8Uz6qEj2ST0%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEAYCGEWKCIL4JVFQYU2PMDQ436GRANCNFSM4G743FCA&data=02|01|petr.lukas%40nxp.com|978e0025b4fa47d3fdc108d794f16b33|686ea1d3bc2b4c6fa92cd99c5c301635|0|0|637141636916125979&sdata=FN%2FpB6au%2BWbhzzLCxULa%2Bec6SHwPqhkQgBwlpGexvkA%3D&reserved=0.

@carlescufi What was the resolution of the meeting in the TSC?

@galak this PR was recently raised to me by devs working on a project. Does it make sense to continue to pursue this and have both OpenAMP and RPMsg-Lite as part of Zephyr? Should this be discussed in the TSC or dev-review context?

All NXP Heterogenous Multicore platforms are based on RPMSG-Lite. It would be good to have it as a part of Zephyr.
From: Carles Cufí<EMAIL_ADDRESS>Sent: Monday, January 13, 2020 11:51
To: zephyrproject-rtos/zephyr<EMAIL_ADDRESS>Cc: Petr Lukas<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: [EXT] Re: [zephyrproject-rtos/zephyr] Add RPMsg-Lite 2.2.0 into Zephyr (#14742)
Caution: EXT Email
@galakhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgalak&data=02|01|petr.lukas%40nxp.com|945a13dffbf545b1e98408d798167cf2|686ea1d3bc2b4c6fa92cd99c5c301635|0|0|637145094658483290&sdata=D8qfPUH80iYueMlvvFWM9wiYgGv6%2BNtcrcj7Tqfj8DQ%3D&reserved=0 this PR was recently raised to me by devs working on a project. Does it make sense to continue to pursue this and have both OpenAMP and RPMsg-Lite as part of Zephyr? Should this be discussed in the TSC or dev-review context?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fpull%2F14742%3Femail_source%3Dnotifications%26email_token%3DAEAYCGC6OUL6MMHTEAGXPWLQ5RBRPA5CNFSM4G743FCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIYILZI%23issuecomment-573605349&data=02|01|petr.lukas%40nxp.com|945a13dffbf545b1e98408d798167cf2|686ea1d3bc2b4c6fa92cd99c5c301635|0|0|637145094658493295&sdata=0bxm4%2FtwZIqW6nhdaF4FIEAiGjAGcIdOS2mf%2FAhsTCs%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAEAYCGGW4CNC6APHUEKO7JTQ5RBRPANCNFSM4G743FCA&data=02|01|petr.lukas%40nxp.com|945a13dffbf545b1e98408d798167cf2|686ea1d3bc2b4c6fa92cd99c5c301635|0|0|637145094658503282&sdata=wg2%2FKrGDL%2FF1gAJSpkzGKP7bFGxWFxT%2FW1ZNyhlpTGI%3D&reserved=0.

@carlescufi  I do not see why this can't be pushed as a west module given that we have users. AFAIK this does not touch any core Zephyr functionality anyways.

@carlescufi I do not see why this can't be pushed as a west module given that we have users. AFAIK this does not touch any core Zephyr functionality anyways.

I agree, I personally have no objections to having this as a module, but @galak needs to weigh in. I will add a dev-review tag. cc @MaureenHelm

I agree that if added to zephyr this should be a module.


When a response with status code 204 is received the package still tries to parser its bytes and get an exception

our rails server send status_code 204 for some logout requests (a delete with some cookies), and hence the message has no body
however in a code I catch the following exception:
/usr/local/lib/python2.7/dist-packages/requests/api.pyc in request(method, url, **kwargs)
54     # cases, and look like a memory leak in others.
55     with sessions.Session() as session:
---> 56         return session.request(method=method, url=url, **kwargs)
57
58
/usr/local/lib/python2.7/dist-packages/requests/sessions.pyc in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
486         }
487         send_kwargs.update(settings)
--> 488         resp = self.send(prep, **send_kwargs)
489
490         return resp
/usr/local/lib/python2.7/dist-packages/requests/sessions.pyc in send(self, request, **kwargs)
639
640         if not stream:
--> 641             r.content
642
643         return r
/usr/local/lib/python2.7/dist-packages/requests/models.pyc in content(self)
779                 self._content = None
780             else:
--> 781                 self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
782
783         self._content_consumed = True
/usr/local/lib/python2.7/dist-packages/requests/models.pyc in generate()
704                         yield chunk
705                 except ProtocolError as e:
--> 706                     raise ChunkedEncodingError(e)
707                 except DecodeError as e:
708                     raise ContentDecodingError(e)
The problem is here: https://github.com/kennethreitz/requests/blob/master/requests/models.py#L778
for some reason the status code checks itself agains 0, and raw requests checks agains None
while raw request does contain all the headers it has no body and thus an iterator fails to iterate on an empty chunk.

Hey @elasti-georgeg, thanks for opening this issue. I am able to reproduce the issue you've listed but only with a 204 response containing a "Transfer-Encoding: chunked" header.
RFC 7230 § 3.3.1 states:

A server MUST NOT send a Transfer-Encoding header field in any
response with a status code of 1xx (Informational) or 204 (No
Content).

This appears to be what is causing the ChunkedEncodingError which should be what we want in this scenario. Can you confirm you're receiving a Transfer-Encoding header? If that's the case, this is an issue that needs to be fixed with your Rails server.
The code below should allow you to perform the request without triggering the error. Just make sure you aren't calling .content on the response.
s = requests.Session()
r = s.get(url, stream=True)
r.headers

@nateprewitt yes, they should fix that there, but we should also be able to tolerate this.

Is httplib going to be able to tolerate this?

@Lukasa no, it won't because that's where the error is being raised from. httplib raises a IncompleteRead error of 0 bytes because the connection is terminated without sending anything.

Right, so it's very hard for us to tolerate this sensibly in the current codebase.

We can probably close this out with the same reasoning in #3807, since we can't reasonably address this, and the exception is correct here.

Good catch @nateprewitt


feat: add svelte starter

Closes #
Introduced changes

Checklist

[ ] Linked relevant issue
[ ] Updated relevant documentation
[ ] Added relevant tests
[ ] Add a dedicated CI job for new examples
[ ] Performed self-review of the code

Summary by CodeRabbit
Release Notes

New Features

Introduced a new Svelte application template using Dojo RECS for easier project initialization.
Added comprehensive README documentation for setting up a development environment with Svelte, TypeScript, and Vite.
Implemented a new CSS framework for styling the application, supporting light and dark modes.
Created a new configuration file for managing component values in the Dojo Engine context.
Added several new functions for managing burner accounts and enhancing gameplay interactions.

Bug Fixes

Improved handling of Hot Module Replacement (HMR) issues to ensure better state preservation in components.

Documentation

Updated README to guide users through the setup process and highlight differences from SvelteKit.

Chores

Updated .gitignore to ignore node_modules and maintain a cleaner repository.

can you re pnpm


multiple forcing variables in a single ncf file

I'm trying to run something based on examples/02_prms_legacy_models.ipynb.  I already have the variables prcp, tmax, and tmin in a single netcdf file that was written by Parker with his Bandit extraction code. I don't need to convert ascii CBH files into NCF files.  I've been looking in the pywatershed code trying to figure out how to specify multiple variables that reside in one .nc but I can't figure it out.  Is it possible to do this, or do I need to split them into three files with one variable in each?

@markstro-usgs It's not something that's currently supported. But it can be if Parker's netcdf file is stable. It's not much work.
The quickest path forward is to split them. I can help you do that if you like, should take me a bout 5 minutes to give you a script, so no big deal.

Good. Thanks James.  Splitting up Parker's single netcdf files is the same idea I eventually came to.  Before I spent much time on this, I wanted to make sure that I wasn't missing something.
I've got a notebook that I'm working up now.  I just need to make sure the variables get named correctly and I've got the format of dates wrong -- minor stuff.  When I get this working maybe it's a tool/utility that I could check in for others that are trying to run bandit extractions in pywatershed.


[DO-000] update to trusted actions

Description
This PR fixed failing CI due to used untrusted actions.

Nice. Only question I have is if we are ok with not pegging a dependency to a particular version, commit? I see that we do use either main or master branch.

yes. we forked repos and now we control when its updated and what version we trust


Testing: Be Able to Unit Test a Workflow with a Populated ContinuedExecutionRunID

Is your feature request related to a problem? Please describe.
I would like to test my workflow when it has a populated workflow.GetInfo(ctx).ContinuedExecutionRunID.  Currently, one cannot do that so not all workflow paths may be unit tested.
Describe the solution you'd like
Ideally, I would like a way to set a workflow's context during its unit test execution.
Describe alternatives you've considered
One could do something elaborate for testing purposes.  Maybe have a variable or a dependency injection so the unit test can pretend to see a value for ContinuedExecutionRunID.
Additional context
https://community.temporal.io/t/testing-continueasnew/6211/6

Hrmm, there are several other things on workflow info one might want to set as well. Technically the workflow info is mutable in the test suite so we could expose the mutable pointer via TestWorkflowEnvironment.WorkflowInfo() or similar. I think this will work best.


Prefetch in Components in NUXTJS

Prefetch in apollo queries works in pages i.e. routes in NuxtJS but doesnot work in Components!!
Is there solution for this???
I am using Nuxt version1.0.0
@dohomi

This question is available on Nuxt community (#c191)

@razorabhu1995 you have to upgrade to the most recent version of Nuxt and Vue

@dohomi do you how to upgrade Nuxt Safely from Nuxt1.0.0 to latest
coz when i upgrade there is version mismatch with  Vue!!
Can you suggest the safest way??

@dohomi do you how to upgrade Nuxt Safely from Nuxt1.0.0 to latest
coz when i upgrade there is version mismatch with  Vue!!
Can you suggest the safest way??

You have to read the changelog of Nuxt and see what has changed compared to your project files

Thanks i upgraded it and it worked!!
But new problem is that prefetch only works when user is logged in!!
prefetch doesnot work in logged out data!!
Any idea what happened there?? @dohomi


ALways show edge label

Right now, when I set renderEdgeLabel to be true, I see my edge labels only when i hover over a node. How do I modify this logic such that the edge labels are always visible?

That's the desired behavior as specified in edgeLabelsToDisplayFromNodes here. However, if you want to enforce the edge labels to always be visible, you can use the forceLabel key. Something like the following should work:
graph.forEachEdge((edgeKey: string): void => {
    graph.setEdgeAttribute(edgeKey, "forceLabel", true);
});```

(Alternatively, you can also directly set the attribute `forceLabel` inside your data source, if that's an option).


config - changed network bip32 values, testnet pubkey

Updated testnet address constant to only create addresses beginning with 'y' for less potential for confusion with mainnet addresses beginning with 'X'.  Previous value would create values of 'x' and 'y'.
Updated bip32 constants to remove 'drk' reference and still differentiate from bitcoin bip32 seeds. Public/private seeds will be prefixed with dpub/dprv for mainnet and DPUB/DPRV for testnet.  Values chosen per developer discussions here: https://www.dash.org/forum/threads/dash-bip32-serialization-values-dev-discussion-wont-apply-to-most.8092 .

Nice! Would love to see regtest fixed too though 😉

Thanks! And +1 on the regtests :+1:

D'oh. was so focused on the constants. Willdo.


Lock acquisition order may cause deadlock

When closing a tablet two different locks are acquired in the following order

Tablet.completeClose acquires the tablet lock
During complete close a minor compaction is started which acquires the lock lock here.
Then the tablet lock is acquired here again.

Tablet close acquire the tablet lock and then the log lock.  Other operations like a write to the tablet acquire the locks in reverse order (log lock 1st and tablet lock 2nd)which has the potential to lead to dead lock.  However it may be that state set during closing the tablet prevents these operation from running, so deadlock can not happen.  This needs further investigation.
This issue was uncovered by changes #3747 which caused test to break as reported in #3757.

See this comment in slack for a stack trace where changes in #3747 are causing test to fail.

Re-opening due to possible issue found in #4751 . See https://github.com/apache/accumulo/pull/4751#issuecomment-2250181639.

Re-opening due to possible issue found in https://github.com/apache/accumulo/pull/4751 . See https://github.com/apache/accumulo/pull/4751#issuecomment-2250181639.

I plan to revert the commit related to #4751 and move this issue to 4.0.0 milestone for now because I can not see how to fix this w/o a major refactoring of the tablet close code (the comments on #4751 provide some insight into one refactoring that is needed, but that may be the tip of an ice berg).  A major refactoring of the code could introduce new bugs and this bug probably has a low chance of happening, so it does not seem worth the risk to me in 2.1.X at the moment
The reason I am thinking moving this to 4.0.0 is because a lot of code was removed from the tablet server in 4.0.0 which makes a major refactoring of the Tablet code easier to do.  The issue   #3670 is already open for 4.0.0 and this bug could possibly be fixed as part of that cleanup or it could be done after that cleanup and would be much easier to do after a cleanup like #3670.
If we figure out a way to fix this in 2.1.X w/o rewriting large parts of the Tablet synchronization code, then this issue could be moved back to a 2.1.X milestone.
This bug involves two different kinds of locks, one is a Java lock object and the other is Java object monitor lock.  I was curious if jstack could detect deadlocks between these different kinds of locks.  Did a bit of searching and did not find anything definitive.  So wrote the following test program and for this jstack did detect the deadlock.  So its good to know if it does happen that jstack can detect it (at least w/ jdk 17).
public class TestLocks {
    public static void main(String[] args) throws Exception {
        ExecutorService executorService = Executors.newFixedThreadPool(2);

        var logLock = new ReentrantLock();
        var tablet = new HashMap<String,String>();

        var future1 = executorService.submit(()-> {
            // This simulates how Tablet close may acquire locks.
            synchronized (tablet) {
                Thread.sleep(5000);
                logLock.lock();
                System.out.println("1");
            }
            return null;
        });

        var future2 = executorService.submit(()-> {
            //This simulates how other code in Tablet outside of close will acquire locks
            logLock.lock();
            Thread.sleep(5000);
            synchronized (tablet){
                System.out.println("2");
            }
            return null;
        });

        future1.get();
        future2.get();
    }
}

The following is the output of running jstack against the above program using OpenJDK17, so at least that version will detect deadlock between different lock types.
Found one Java-level deadlock:
=============================
"pool-1-thread-1":
  waiting for ownable synchronizer 0x000000062ae3eed0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
  which is held by "pool-1-thread-2"

"pool-1-thread-2":
  waiting to lock monitor 0x00007562c4000fe0 (object 0x000000062ae3efd8, a java.util.HashMap),
  which is held by "pool-1-thread-1"

Java stack information for the threads listed above:
===================================================
"pool-1-thread-1":
	at<EMAIL_ADDRESS>Method)
	- parking to wait for  <0x000000062ae3eed0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.11/LockSupport.java:211)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.11/AbstractQueuedSynchronizer.java:715)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.11/AbstractQueuedSynchronizer.java:938)
	at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@17.0.11/ReentrantLock.java:153)
	at java.util.concurrent.locks.ReentrantLock.lock(java.base@17.0.11/ReentrantLock.java:322)
	at org.apache.accumulo.server.TestLocks.lambda$main$0(TestLocks.java:19)
	- locked <0x000000062ae3efd8> (a java.util.HashMap)
	at org.apache.accumulo.server.TestLocks$$Lambda$14/0x0000756324001208.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(java.base@17.0.11/FutureTask.java:264)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.11/ThreadPoolExecutor.java:1136)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.11/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.11/Thread.java:840)
"pool-1-thread-2":
	at org.apache.accumulo.server.TestLocks.lambda$main$1(TestLocks.java:31)
	- waiting to lock <0x000000062ae3efd8> (a java.util.HashMap)
	at org.apache.accumulo.server.TestLocks$$Lambda$16/0x0000756324001430.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(java.base@17.0.11/FutureTask.java:264)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.11/ThreadPoolExecutor.java:1136)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.11/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.11/Thread.java:840)

Found 1 deadlock.

Reverted the changes from #4751 in 7efee59b45ccfd5010a45e30b148f6031b368417 and merged those changes up.


[SC-893] sDAI wrapper

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@0950952). Click here to learn what that means.
Patch coverage: 88.88% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff            @@
##             master      #82   +/-   ##
=========================================
  Coverage          ?   77.97%
=========================================
  Files             ?       27
  Lines             ?      740
  Branches          ?      158
=========================================
  Hits              ?      577
  Misses            ?      163
  Partials          ?        0

Files Changed
Coverage Δ

contracts/wrappers/SDaiWrapper.sol
88.88% <88.88%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Include man_made=snow_fence?

Quite well used already (4600 times), see https://wiki.openstreetmap.org/wiki/Tag:man_made%3Dsnow_fence
Usage doubled in the last two years.

Hmm looking more into this, there appear to be several other ways people are tagging these. (Some might be used in combination with each other or tags like barrier=fence.)

Uses
Tag

6270
barrier=avalanche_protection

4693
man_made=avalanche_protection

3616
avalanche_protection=snow_bridge

1867
fence:function=avalanche

1530
fence=avalanche

181
barrier=avalanche_barrier

135
avalanche_barrier=snow_bridge

131
barrier=snow_fence

71
avalanche_protection=snowbridge

Seems like the kind of thing that iD could help standardize by having a preset.

Oof.
I found this article on the wiki:
https://wiki.openstreetmap.org/wiki/Avalanche_protection
I live on the flat land, so I am not a specialist in what might be synonymous and what not. Though one thing the article claims is

Existing tagging: barrier=snow_fence. AVOID confusing snow fences with avalanche barriers.

🤷

@westnordost: thanks for this reminder I've expanded the article a little bit.
Usefully there are many references to snow fences in the mid-West which is notoriously "flat as a pancake", but it is also used for the Schneezahn avalanche protection. So the phrase refers to two concepts. The difficulty of finding the precise term & a variety of difficult to name avalanche barriers was one reason to prefer the more generic term.

There should be two presets: one for snow fences (to manage snow drift) and one for snow bridges (protecting against avalanches). The question remains if we should use the man_made primary key for both snow_fence and avalanche_protection, even tough barrier=avalanche_protection is slightly more often used[^1]. :thinking:
[^1]: PS: relatively many (3557 out of 5265 and 6848 respectively) ways are currently mapped with both the man_made and barrier tag having the value avalanche_protection.


[WAS-525] Upgraded AKS kubernetes version to 1.23

Previously when I try to test WAS setup script for Azure, it exited with this error message.
Building AKS - (can take upto 15 minutes)                               [ERROR] Failed with error: 1
[  ✘  ]

[ERROR] Something went wrong. Exiting.
[ERROR] The last few log entries were:
azurerm_kubernetes_cluster.default: Still creating... [10s elapsed]
╷
│ Error: creating Managed Cluster (Subscription: "XXXX-XXXX-XXXX-XXXX-XXXX"
│ Resource Group Name: "WAS-rg"
│ Resource Name: "WAS-aks"): managedclusters.ManagedClustersClient#CreateOrUpdate: Failure sending request: StatusCode=0 -- Original Error: Code="UnsupportedAliasMinorVersion" Message="1.22 is not a supported Kubernetes version. To see our supported AKS version list please visit https://docs.microsoft.com/azure/aks/supported-kubernetes-versions?tabs=azure-cli for more details."
│
│   with azurerm_kubernetes_cluster.default,
│   on main.tf line 30, in resource "azurerm_kubernetes_cluster" "default":
│   30: resource "azurerm_kubernetes_cluster" "default" {
│
╵
Releasing state lock. This may take a few moments...
Building AKS - (can take upto 15 minutes): [2022-12-16 11:41:41 UTC] [ERROR] Failed with error: 1
[2022-12-16 11:41:41 UTC] [ERROR] Something went wrong. Exiting.
[2022-12-16 11:41:41 UTC] [ERROR] The last few log entries were:

It seems we need to upgrade our kubernetes cluster version to 1.23.
https://learn.microsoft.com/en-gb/azure/aks/supported-kubernetes-versions?tabs=azure-cli
I applied updates for upgrading 1.22 to 1.23.
Reference: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md#changelog-since-v1220

Azure dropped k8s v1.24 support, closing the PR.


image subscription repoURL does not allow . in the image name

The current regular expression to validate repoURL only allows a dot (.) in the host part, but not the image name.
For example, this here should be a valid image name: docker.io/someuser/some.repo/other-image
Since a . can be used in any part of an image name, the regex should be updated:
https://github.com/akuity/kargo/blob/f3cc86511854ab1755f24ae705ea19b08c9750fa/api/v1alpha1/stage_types.go#L154-L159
See: https://docs.docker.com/engine/reference/commandline/tag/#description

The path consists consists of slash-separated components. Each component may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more hyphens.

@moensch thanks for reporting!


refactor: transform test/components/hooks to tsx

transform test/components/hooks to tsx
ref: #1737

Thanks!


python3Packages.haralyzer: init at 2.4.1

Description of changes
Adds haralyzer, a framework for using HAR files to analyze web pages.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@fabaff, please check again. Thanks!


chore(docs): Add links to help first-time contributors

Invitation: https://twitter.com/dignifiedquire/status/696758773067739136

Thanks!

Updated!

Sweet, thanks for doing this!


Since 0.3.0, only string data are passed back to the server action

Since 0.3.0, my app is borken. It seems that only string data are passed back to the server action
Is there a problem with "json" dataType option?

Duplicate of #79


Svelte

svelte website yay

Woah yikes, might want to ask the maintainer of this repo before making a major structural change - I personally don't know Svelte so I can't review this PR.

How would I test this out locally? I don't know svelte. Could you explain the files to me?

How would I test this out locally?

Install Node.js (and if you don't have yarn globally installed run npm install -g yarn)
Install Dependencies (yarn)
Run in development, show website at localhost:3000 (yarn dev)

Could you explain the files to me?

just read kit.svelte.dev

Why is svelte better than what we have now?

everybody is moving their websites to svelte

everybody is moving their websites to svelte
why is svelte better than what we have now?

Why is svelte better than what we have now?

everybody is moving their websites to svelte

Just because "everyone is doing it" doesn't mean it's the best for every project, especially not one as simple as this.

Why is svelte better than what we have now?

everybody is moving their websites to svelte

Just because "everyone is doing it" doesn't mean it's the best for every project, especially not one as simple as this. To clarify, adding dependencies and a build process to a very, very simple static website is more trouble than it's worth.

hmm good point

Why is svelte better than what we have now?

everybody is moving their websites to svelte

Just because "everyone is doing it" doesn't mean it's the best for every project, especially not one as simple as this. To clarify, adding dependencies and a build process to a very, very simple static website is more trouble than it's worth.

I agree.


[content] add content for Canadian region British colonies

Breaking up #13, this focuses on the "Canadian" colonies of Britain

This was completed long ago with #213


fix: Recovery fs storages type nil pointer dereference

Signed-off-by: zhuzhenfan<EMAIL_ADDRESS>
What type of PR is this?

/kind bug
What this PR does / why we need it:
fix: Recovery fs storages type nil pointer dereference
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

None

Additional documentation, usage docs, etc.:

Codecov Report

Merging #19 (76ab0c5) into master (4b2c821) will decrease coverage by 0.00%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
- Coverage   11.65%   11.64%   -0.01%
==========================================
  Files          91       91
  Lines       13854    13855       +1
==========================================
  Hits         1614     1614
- Misses      12029    12031       +2
+ Partials      211      210       -1

Impacted Files
Coverage Δ

pkg/apis/core/v1/utils.go
56.70% <75.00%> (-0.22%)
:arrow_down:

/assign @x893675
/cc @Metrora

/lgtm

/approve


set image

This does a few things:

solves the need for an actual tag on the image in kustomize. Unfortunately, it must be in the file itself, and kustomize has no way of composing files, so it cannot be generated on the fly with a single file outside of git.
restructures the kustomize dir without changing anything material, to make it easier to see what there is: the release/ overlay, the managerless/ overlay, and the resources/ that apply to them
fixes some minor variable dependencies in Makefile
restores templates/metadata-template.yaml to template format
generates a test/metadata.yaml file for usage in tests, applying the correct versions
documents how to do a release in docs/RELEASE.md

I need to rebase this, will take care of it.

Separately, @gianarb , please look at the release doc, and see if you see a better way? Maybe we should not use git tags at all, and just have a single version file (maybe it is metadata.yaml itself but not as a template) and we use that to generate everything else?

OK, rebase done. The open questions are:

review by @gianarb
design of release options?

That's amazing! Thank you for clarifying the process, I have to be honest it was hard to understand. So many things to generate and background to know.
I like the idea to have the bump a tag in a single place. And I think if we use a file like VERSION that contains v0.3.0 or v0.4.0... The release flow can look at it and if it changes the GitHub action can create the release itself... So we will get to a point where only 1 change is required to do cut a release. It sounds appealing to me.

So you want to do it in a file, and skip the git tags for now?
I am wondering how we would tell GH Actions to know that something is a release? For now, the event is "tag was added". I don't know that it will know how to tell, "a file has changed". Well, I guess we can do some git magic?
Or, we can continue to use tags, but use them as an after stage:

change the file and merge
add the git tag

And then maybe later get rid of the tag entirely? Or perhaps we have the tag added automatically by gh actions?

Yeah I have your same unknowns. I am sure can add a step in our ci that gets triggered only when the VERSION file changes on master. But I don't know how to do it yet.
I think we have to agree on "the best workflow" we see for this.

I like the fact that it is atomic, one single way to say: "there is a new release"

I think the unique one for us to get there is via file bump, because of kustomize as you said. If we can figure out how to watch a change on a file via gh action that will be ideal because if t hat happens we can trigger what we already do to create a release in .github/workflows/release.yaml

OK, will change it for that then.

Look at it now. The logic is explained in the docs/RELEASE.md file. We still need to update the GH actions to utilize it, but this is good enough for a review.

I think I do not understand. I thought about something totally different here. I thought we were speaking about the release of our project. But you were speaking about the supported cluster-api release.
If we use this method with the APIVERSION how do we support more cluster-api versions? In theory we should be able to support v1alpha3, v2alpha3, v1alpha7 and so on. All the supported versions has to be listed in the metadata.yaml file. If I am well understanding now.

Merged the release.md files

If we use this method with the APIVERSION how do we support more cluster-api versions? In theory we should be able to support v1alpha3, v2alpha3, v1alpha7, and so on. All the supported versions have to be listed in the metadata.yaml file. If I am well understanding now.

You are right. We need to think about this some more.

The solution doesn't quite work. The releasing part does, but capturing the version does not.

I think you have to help me clarifying what we are solving. I have questions:

is the metadata yaml meant to contains information about what the provider supports from cluster-api? If so, why do we have to generate it?
Are we trying to solve the release problem here? With release I mean how do we tag and release a valid version of our provider, with the right docker images, with the right yaml file loaded as artifact

If we use this method with the APIVERSION how do we support more cluster-api versions? In theory we should be able to support v1alpha3, v2alpha3, v1alpha7, and so on. All the supported versions have to be listed in the metadata.yaml file. If I am well understanding now
is the metadata yaml meant to contain information about what the provider supports from cluster-api? If so, why do we have to generate it?

You are right, this messed it up. metadata.yaml is about more than this release, it is about every release, it is a list of mappings, rather than just one. I will have to change some of this. It also means, as you correctly point out, that it cannot be a template, but a fixed file.
Hang tight here, and nice catch.

I updated it. Take a look.


Nx.LazyContainer not implemented for %Bumblebee.Diffusion.PndmScheduler

Hi!
I'm trying to run Stable Diffusion in Livebook without using the pre-built Nx.Serving setup (aka Bumblebee.Diffusion.StableDiffusion.text_to_image).
I'm getting stuck though because this call keeps failing:
{_state, new_latents} = Bumblebee.Diffusion.PndmScheduler.step(scheduler, scheduler_state, latents, noise_pred)

where scheduler comes from {:ok, scheduler} = Bumblebee.load_scheduler({:hf, repository_id, subdir: "scheduler"})
The error I'm getting is:
** (Protocol.UndefinedError) protocol Nx.LazyContainer not implemented for %Bumblebee.Diffusion.PndmScheduler{num_train_steps: 1000, beta_schedule: :quadratic, beta_start: 8.5e-4, beta_end: 0.012, alpha_clip_strategy: :alpha_zero, timesteps_offset: 1, reduce_warmup: true} of type Bumblebee.Diffusion.PndmScheduler (a struct), data-structures given to defn/Nx must implement either Nx.LazyContainer or Nx.Container. This protocol is implemented for the following type(s): Any, Atom, Complex, Float, Integer, List, Map, Nx.Batch, Nx.Tensor, Tuple

I'm not sure why this doesn't work since it seems to be the same call that the text_to_image function uses internally. Is it because it's within Livebook? The failing notebook is here (last cell)

@hanrelan good catch! Should be addressed by #124. Also note that you can use Bumblebee.scheduler_init and Bumblebee.scheduler_step, so that you don't need to call the exact scheduler module on your own :)

Awesome thanks. I know about the Bumblebee functions but wanted to be more explicit here to see exactly what was happening.
I'm curious though - how was this working in the Bumblebee.Diffusion.StableDiffusion.text_to_image function? As far as I could tell what I was doing was equivalent so it's surprising to me that works but my call didn't.

Gotcha thanks!


Nvm list not recognizing installed Node.js versions

Issue:

No Node.js versions recognized by NVM using nvm list or nvm list available. Output is "No installations recognized" and an empty table, respectively.
nvm install 16.17.1 fails even though node -v outputs a valid Node version: v16.17.1
nvm install latest causing runtime error

How To Reproduce:

Delete existing nodejs folder in C:\program files\ and uninstall Node.js
Install and run nvm-setup.exe
Install Node.js v16.17.1 (64 bit)
Run nvm list or nvm list available
Check Node installation using node -v
Run nvm install 16.17.1
Run nvm install latest

Expected Behavior:

nvm list should list Node.js versions
nvm install 16.17.1 should install the Node.js version so that it can be used by nvm use 16.17.1

Actual Behavior:

Desktop:

OS: Windows

Are you behind a proxy?
If nvm list available returns an empty table, then it is not receiving a response from the release URL. A proxy could block this request. This would also explain the notice about v16.17.1 not being released yet and why nvm install latest would fail, since nvm4w won't know any releases exist without the release data.
If a prior Node.js installation exists, node -v will return a version. This happens when the Node.js bin path precedes NVM4W in the PATH, or if the NVM4W symlink contains no binary (and is the reason the README recommend uninstalling Node before installing NVM4W).

 Thank you!


How to copy rows?

Hi!
I am using pre-created .xlsx file as a report template. Sometimes I need repeat set of rows. Would be nice to have a method what can receive (startRow, endRow) and be able to insert that rows before nRow.
What do you think? Is it possible now?
Thx
Regards, Robert

Hi, xuri. Could you please give your wechat or QQ? It will be easy to communicate with wechat or QQ.
I want to contribute the project. I think Insert, Delete and Copy Row are very nice to have.
thank you very much.

Welcome, please read contributing guidelines and contact me via xuri.me[at]gmail.com.


Replace @RegisterDefaultEntities with @EntityScan

There is org.springframework.boot.autoconfigure.domain.EntityScan and it should be used instead of org.axonframework.springboot.util.RegisterDefaultEntities.
These two annotations serve the same purpose - they specify packages with JPA entities.
@EntityScan also may define other entities, like NOSQL documents and natively integrates with Spring.

Do you mind elaborating why you see this issue as a necessity, @Sam-Kruglov?

There is a significant difference between @EntityScan and the way Axon currently registers default. If Axon were to use @EntityScan, Spring Boot will no longer consider your own entities, unless you also explicitly declare them.
Axon follows the exact same principles: don’t declare anything, and you get defaults. As soon as you declare entities, the defaults no longer apply.
Sent with GitHawk

Thanks, Allard! That makes sense. But I think there must be a way to append axon entities somehow internally, so that when a framework user wouldn't accidentally turn off those when declaring an @EntityScan. Or maybe highlight this in documentation that one should use @RegisterDefaultEntities instead when working with axon.

I view some explanation in the Reference Guide would cover this nicely.
Additionally, javadoc on the @RegisterDefaultEntities would alleviate future occurrences of similar suggestions like this, I'd assume.
For now, I will be closing this issue, taking the Reference Guide solution is the way to go.
Additionally, thanks for filing this @Sam-Kruglov, hope things have become clearer now!

Hi Steven @smcvb or those who know,
Unfortunately, I can't see any guide/example on how to use RegisterDefaultEntities (whether with EntityScan, or without it). JavaDoc of RegisterDefaultEntities doesn't even say what object/bean to use it on. Could you advise, please.

@peter-kehl use github code search whenever in doubt https://github.com/search?type=Code&q="%40RegisterDefaultEntities"


Add warning for invalid table entries

If the user tries to instantiate a bearing element from a table and the
table contains invalid entries, such as empty cells, the program will show a
warning message and replace these cells with a zero value.
Close #97

Codecov Report

Merging #99 into master will decrease coverage by 0.19%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master      #99     +/-   ##
=========================================
- Coverage   56.55%   56.35%   -0.2%
=========================================
  Files           8        8
  Lines        1411     1416      +5
=========================================
  Hits          798      798
- Misses        613      618      +5

Impacted Files
Coverage Δ

ross/bearing_seal_element.py
61.68% <0%> (-2.08%)
:arrow_down:

Continue to review full report at Codecov.

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