not signed with DKIM on gersecurity kernel

Classification
Please delete options that are not relevant.

[X] Question
[ ] Deliverability issue
[ ] Crash/Hang/Data loss
[ ] Serious bug
[ ] Minor bug
[ ] Vulnerability
[ ] Feature/Enhancement
[ ] Documentation

Reproducibility
Please delete options that are not relevant.

[X] Always
[ ] Sometimes
[ ] Rarely
[ ] Unable
[ ] I didn’t try
[ ] Not applicable

Docker information

docker info

Containers: 8
 Running: 8
 Paused: 0
 Stopped: 0
Images: 9
Server Version: 17.12.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9584b2309e5be604504d4a8ff7ef5def5b42e9a0 (expected: 9b55aab90508bd389d7654c4baf173a981477d55)
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f (expected: 9f9c96235cc97674e935002fc3d78361b696a69e)
init version: 949e6facb77383876aeff8a6944dde66b3089574
Kernel Version: 4.9.65-1-hardened
Operating System: Alpine Linux v3.7
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 5.795GiB
Name: harpsichord
ID: 6T6O:DWC2:CSKS:FVRJ:DIB4:KE2M:YPBG:HRAM:WP23:M2P6:ZB7G:PC5Z
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

docker images hardware/mailserver --digests --filter "dangling=false"

REPOSITORY            TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
hardware/mailserver   1.1-stable          sha256:fe43bf55de789de15bf8a1459ac45c9d4c71a87c54f03a404ff77e5e290a8d7d   bce3d0fb8019        25 hours ago        369MB

Description
https://www.mail-tester.com and port25.com claim that messages are not signed with DKIM
Steps to reproduce

Send a mail from a fresh install

Expected results
Mail should be signed with DKIM
Actual results
Mail are not signed with DKIM
Debugging information

docker logs mailserver

2018-06-25T10:47:16.976672+00:00 mail postfix/smtpd[2672]: connect from verifier.port25.com[<IP_ADDRESS>]
2018-06-25T10:47:16.977085+00:00 mail postfix/smtpd[2672]: warning: connect to Milter service inet:localhost:11332: Cannot assign requested address
2018-06-25T10:47:17.647932+00:00 mail postfix/smtpd[2672]: Anonymous TLS connection established from verifier.port25.com[<IP_ADDRESS>]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
2018-06-25T10:47:18.182860+00:00 mail postfix/smtpd[2672]: 2CA0F180F: client=verifier.port25.com[<IP_ADDRESS>]
2018-06-25T10:47:18.515539+00:00 mail postfix/cleanup[2673]: 2CA0F180F<EMAIL_ADDRESS>2018-06-25T10:47:18.546780+00:00 mail postfix/qmgr[641]: 2CA0F180F<EMAIL_ADDRESS>size=9816, nrcpt=1 (queue active)
2018-06-25T10:47:18.556408+00:00 mail dovecot: lmtp(2675): Connect from local
2018-06-25T10:47:18.687225+00:00 mail dovecot: lmtp(user@domain.tld): r+woITbIMFtzCgAAXyb3ng: sieve<EMAIL_ADDRESS>stored mail into mailbox 'INBOX'
2018-06-25T10:47:18.687508+00:00 mail postfix/lmtp[2674]: 2CA0F180F<EMAIL_ADDRESS>relay=mail.domain.tld[private/dovecot-lmtp], delay=0.71, delays=0.57/0/0/0.13, dsn=2.0.0, status=sent (250 2.0.0<EMAIL_ADDRESS>r+woITbIMFtzCgAAXyb3ng Saved)
2018-06-25T10:47:18.687761+00:00 mail dovecot: lmtp(2675): Disconnect from local: Successful quit
2018-06-25T10:47:18.688021+00:00 mail postfix/qmgr[641]: 2CA0F180F: removed

port25.com result

This message is an automatic response from Port25's authentication verifier
service at verifier.port25.com.  The service allows email senders to perform
a simple check of various sender authentication mechanisms.  It is provided
free of charge, in the hope that it is useful to the email community.  While
it is not officially supported, we welcome any feedback you may have at
<EMAIL_ADDRESS>
Thank you for using the verifier,

The Port25 Solutions, Inc. team

==========================================================
Summary of Results
==========================================================
SPF check:          pass
"iprev" check:      pass
DKIM check:         none
SpamAssassin check: ham

==========================================================
Details:
==========================================================

HELO hostname:  mail.domain.tld
Source IP:      <IP_ADDRESS>
mail-from<EMAIL_ADDRESS>
----------------------------------------------------------
SPF check details:
----------------------------------------------------------
Result:         pass
ID(s) verified<EMAIL_ADDRESS>
DNS record(s):
    domain.tld. 60 IN TXT "v=spf1 a mx ip4:<IP_ADDRESS> ~all"
    domain.tld. 60 IN A <IP_ADDRESS>
    domain.tld. 60 IN MX 10 mail.domain.tld.
    mail.domain.tld. 60 IN A <IP_ADDRESS>

----------------------------------------------------------
"iprev" check details:
----------------------------------------------------------
Result:         pass (matches build.mauras.ch)
ID(s) verified: policy.iprev=<IP_ADDRESS>

DNS record(s):
    <IP_ADDRESS>.in-addr.arpa. 60 IN PTR build.mauras.ch.
    build.mauras.ch. 60 IN A <IP_ADDRESS>

----------------------------------------------------------
DKIM check details:
----------------------------------------------------------
Result:         none (message not signed)
ID(s) verified:⋅

NOTE: DKIM checking has been performed based on the latest DKIM specs
(RFC 4871 or draft-ietf-dkim-base-10) and verification may fail for
older versions.  If you are using Port25's PowerMTA, you need to use
version 3.2r11 or later to get a compatible version of DKIM.

----------------------------------------------------------
SpamAssassin check details:
----------------------------------------------------------
SpamAssassin v3.4.0 (2014-02-07)

Result:         ham (-1.9 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
-0.0 SPF_PASS               SPF: sender matches SPF record
-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                            [score: 0.0000]

==============================================================
Explanation of the possible results (based on RFCs 7601, 7208)
==============================================================

DKIM Results
============

none:  The message was not signed.

pass:  The message was signed, the signature or signatures were
    acceptable to the ADMD, and the signature(s) passed verification
    tests.

fail:  The message was signed and the signature or signatures were
    acceptable to the ADMD, but they failed the verification test(s).

policy:  The message was signed, but some aspect of the signature or
    signatures was not acceptable to the ADMD.

neutral:  The message was signed, but the signature or signatures
    contained syntax errors or were not otherwise able to be
    processed.  This result is also used for other failures not
    covered elsewhere in this list.

temperror:  The message could not be verified due to some error that
    is likely transient in nature, such as a temporary inability to
    retrieve a public key.  A later attempt may produce a final
    result.

permerror:  The message could not be verified due to some error that
    is unrecoverable, such as a required header field being absent.  A
    later attempt is unlikely to produce a final result.

SPF Results
===========

none:  Either (a) no syntactically valid DNS domain name was extracted from
    the SMTP session that could be used as the one to be authorized, or
    (b) no SPF records were retrieved from the DNS.

neutral:  The ADMD has explicitly stated that it is not asserting whether
    the IP address is authorized.

pass:  An explicit statement that the client is authorized to inject mail
    with the given identity.

fail:  An explicit statement that the client is not authorized to use the
    domain in the given identity.

softfail:  A weak statement by the publishing ADMD that the host is probably
    not authorized.  It has not published a stronger, more definitive policy
    that results in a "fail".

temperror:  The SPF verifier encountered a transient (generally DNS) error
    while performing the check.  A later retry may succeed without further
    DNS operator action.

permerror: The domain's published records could not be correctly interpreted.
    This signals an error condition that definitely requires DNS operator
    intervention to be resolved.

"iprev" Results
===============

pass:  The DNS evaluation succeeded, i.e., the "reverse" and
    "forward" lookup results were returned and were in agreement.

fail:  The DNS evaluation failed.  In particular, the "reverse" and
    "forward" lookups each produced results, but they were not in
    agreement, or the "forward" query completed but produced no
    result, e.g., a DNS RCODE of 3, commonly known as NXDOMAIN, or an
    RCODE of 0 (NOERROR) in a reply containing no answers, was
    returned.

temperror:  The DNS evaluation could not be completed due to some
    error that is likely transient in nature, such as a temporary DNS
    error, e.g., a DNS RCODE of 2, commonly known as SERVFAIL, or
    other error condition resulted.  A later attempt may produce a
    final result.

permerror:  The DNS evaluation could not be completed because no PTR
    data are published for the connecting IP address, e.g., a DNS
    RCODE of 3, commonly known as NXDOMAIN, or an RCODE of 0 (NOERROR)
    in a reply containing no answers, was returned.  This prevented
    completion of the evaluation.  A later attempt is unlikely to
    produce a final result.

==========================================================
Original Email
==========================================================

Return-Path<EMAIL_ADDRESS>Received: from mail.domain.tld (<IP_ADDRESS>) by verifier.port25.com id h634342e8s4b for<EMAIL_ADDRESS>Mon, 25 Jun 2018 10:47:14 +0000 (envelope-from<EMAIL_ADDRESS>Authentication-Results: verifier.port25.com; spf=pass<EMAIL_ADDRESS> iprev=pass (matches build.other.tld)  policy.iprev=<IP_ADDRESS>;
 dkim=none reason="message not signed"
Received: from authenticated-user (mail.domain.tld [<IP_ADDRESS>])
        (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
        (No client certificate requested)
        (Authenticated sender<EMAIL_ADDRESS>        by mail.domain.tld (Postfix) with ESMTPSA id 5ED04180F
        for<EMAIL_ADDRESS>Mon, 25 Jun 2018 10:47:11 +0000 (UTC)
Date: Mon, 25 Jun 2018 12:47:09 +0200
From: user name<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Subject: just one more test
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
        protocol="application/pgp-signature"; boundary="A9z/3b/E4MkkD+7G"
Content-Disposition: inline

--A9z/3b/E4MkkD+7G
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

yep

--A9z/3b/E4MkkD+7G
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAABCAAdFiEE6AYxhRoEKzorQos7MhQ6Lo9QDVcFAlswyC0ACgkQMhQ6Lo9Q
DVdHLAgAiNi/FSGFwDwPgUqUwhSFWP97Voqie1R4DKvKHsVUaLiKvZQ7JVQlVXL8
+vEG/fR3EkBnHeUqO/07CMerrIr9G7wKrwMpkNKDucDy5r2ISo3q2RD4bL8+bQja
MLHPaJMQI9m7NZvcpXFgQEAcqRlZK4DWHxB8W2YMIZEcOzVZtPeqc7KXhagdjCkv
lSR12ZIPj4DMFA5BZD4Oq0q9IS31deSQTw7h5IF5AWt4GJlMFIbrx3MNiJwOHysc
9qjtbtf5rBt6cOZHXz9Aw4nKSsAPymA8FYyLwxjirs44ejzMhjdOx30qsIVr0j7r
wPNIQnkIzYcFNZ0CHTKZDom9jC3Kcw==
=5Eew
-----END PGP SIGNATURE-----

--A9z/3b/E4MkkD+7G--

Configuration (docker-compose.yml, traefik.toml...etc)

docker-compose.yml

version: "3"

# IPv4 only
# docker network create http_network

# IPv4/IPv6 network
# docker network create http_network --ipv6 --subnet "fd00:0000:0000:0000::/64"
# Refer to https://github.com/hardware/mailserver/#ipv6-support for more information.

networks:
  http_network:
    external: true
  mail_network:
    external: false

services:
  traefik:
    image: traefik:1.6-alpine
    container_name: traefik
    restart: ${RESTART_MODE}
    ports:
      - "80:80"
      - "443:443"
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:mail.${MAILSERVER_DOMAIN}
      - traefik.port=8080
      - traefik.docker.network=http_network
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${VOLUMES_ROOT_PATH}/traefik/traefik.toml:/traefik.toml:ro
      - ${VOLUMES_ROOT_PATH}/traefik/acme:/etc/traefik/acme
    networks:
      - http_network

  mailserver:
    image: hardware/mailserver:${MAILSERVER_DOCKER_TAG}
    container_name: mailserver
    restart: ${RESTART_MODE}
    domainname: ${MAILSERVER_DOMAIN}                    # Mail server A/MX/FQDN & reverse PTR = mail.domain.tld.
    hostname: ${MAILSERVER_HOSTNAME}
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:spam.${MAILSERVER_DOMAIN}
      - traefik.port=11334
      - traefik.docker.network=http_network
    # extra_hosts:                          - Required for external database (on other server or for local databases on host without docker)
    #  - "mariadb:xx.xx.xx.xx"              - Replace with IP address of MariaDB server
    #  - "redis:xx.xx.xx.xx"                - Replace with IP address of Redis server
    ports:
      - "25:25"       # SMTP                - Required
    # - "110:110"     # POP3       STARTTLS - Optional - For webmails/desktop clients
      - "143:143"     # IMAP       STARTTLS - Optional - For webmails/desktop clients
      - "465:465"     # SMTPS      SSL/TLS  - Optional - Enabled for compatibility reason, otherwise disabled
      - "587:587"     # Submission STARTTLS - Optional - For webmails/desktop clients
      - "993:993"     # IMAPS      SSL/TLS  - Optional - For webmails/desktop clients
    # - "995:995"     # POP3S      SSL/TLS  - Optional - For webmails/desktop clients
      - "4190:4190"   # SIEVE      STARTTLS - Optional - Recommended for mail filtering
    environment:
      - DBPASS=${DATABASE_USER_PASSWORD}       # MariaDB database password (required)
      - RSPAMD_PASSWORD=${RSPAMD_PASSWORD}     # Rspamd WebUI password (required)
    # - ADD_DOMAINS=aa.tld, www.bb.tld...      # Add additional domains separated by commas (needed for dkim keys etc.)
    # - ENABLE_POP3=true                       # Enable POP3 protocol
    # - ENABLE_FETCHMAIL=true                  # Enable fetchmail forwarding
    # - DISABLE_CLAMAV=true                    # Disable virus scanning
    # - DISABLE_SIGNING=true                   # Disable DKIM/ARC signing
    # - DISABLE_GREYLISTING=true               # Disable greylisting policy
    # - DISABLE_RATELIMITING=true              # Disable ratelimiting policy
    #
    # Full list : https://github.com/hardware/mailserver#environment-variables
    #
    volumes:
      - ${VOLUMES_ROOT_PATH}/mail:/var/mail
    depends_on:
      - mariadb
      - redis
    networks:
      - mail_network
      - http_network

  # Administration interface
  # https://github.com/hardware/postfixadmin
  # http://postfixadmin.sourceforge.net/
  # Configuration : https://github.com/hardware/mailserver/wiki/Postfixadmin-initial-configuration
  postfixadmin:
    image: hardware/postfixadmin
    container_name: postfixadmin
    restart: ${RESTART_MODE}
    domainname: ${MAILSERVER_DOMAIN}
    hostname: ${MAILSERVER_HOSTNAME}
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:postfixadmin.${MAILSERVER_DOMAIN}
      - traefik.port=8888
      - traefik.docker.network=http_network
    environment:
      - DBPASS=${DATABASE_USER_PASSWORD}
    depends_on:
      - mailserver
      - mariadb
    networks:
      - mail_network
      - http_network

  # Webmail (Optional)
  # https://github.com/hardware/rainloop
  # https://www.rainloop.net/
  # Configuration : https://github.com/hardware/mailserver/wiki/Rainloop-initial-configuration
  rainloop:
    image: hardware/rainloop
    container_name: rainloop
    restart: ${RESTART_MODE}
    labels:
      - traefik.enable=true
      - traefik.port=8888
      - traefik.frontend.rule=Host:webmail.${MAILSERVER_DOMAIN}
      - traefik.docker.network=http_network
    volumes:
      - ${VOLUMES_ROOT_PATH}/rainloop:/rainloop/data
    depends_on:
      - mailserver
      - mariadb
    networks:
      - mail_network
      - http_network

  # Authoritative DNS server (Optional)
  # https://github.com/hardware/nsd-dnssec
  # https://www.nlnetlabs.nl/projects/nsd/
  # Configuration : https://github.com/hardware/mailserver/wiki/NSD-initial-configuration
  # nsd:
  #   image: hardware/nsd-dnssec
  #   container_name: nsd
  #   restart: ${RESTART_MODE}
  #   ports:
  #     - "53:53"
  #     - "53:53/udp"
  #   volumes:
  #     - ${VOLUMES_ROOT_PATH}/nsd/conf:/etc/nsd
  #     - ${VOLUMES_ROOT_PATH}/nsd/zones:/zones
  #     - ${VOLUMES_ROOT_PATH}/nsd/db:/var/db/nsd

  # Database
  # https://github.com/docker-library/mariadb
  # https://mariadb.org/
  mariadb:
    image: mariadb:10.2
    container_name: mariadb
    restart: ${RESTART_MODE}
    # Info : These variables are ignored when the volume already exists (if databases was created before).
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_DATABASE=postfix
      - MYSQL_USER=postfix
      - MYSQL_PASSWORD=${DATABASE_USER_PASSWORD}
    volumes:
      - ${VOLUMES_ROOT_PATH}/mysql/db:/var/lib/mysql
    networks:
      - mail_network

  # Database
  # https://github.com/docker-library/redis
  # https://redis.io/
  redis:
    image: redis:4.0-alpine
    container_name: redis
    restart: ${RESTART_MODE}
    command: redis-server --appendonly yes
    volumes:
      - ${VOLUMES_ROOT_PATH}/redis/db:/data
    networks:
      - mail_network

traefik.toml

defaultEntryPoints = ["https","http"]

[api]
entryPoint = "traefik"
dashboard = true

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
  [entryPoints.traefik]
  address = ":8080"
  [entryPoints.traefik.auth.basic]
  users = ["admin:{SHA}secret/1M="]

[acme]
email =<EMAIL_ADDRESS>storage = "/etc/traefik/acme/acme.json"
entryPoint = "https"
onHostRule = true
onDemand = false
  [acme.httpChallenge]
  entryPoint = "http"

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "domain.tld"
watch = true
exposedbydefault = false

2018-06-25T10:47:16.977085+00:00 mail postfix/smtpd[2672]: warning: connect to Milter service inet:localhost:11332: Cannot assign requested address

Proxy worker seems unavailable. Can you check rspamd status inside the container ?

rspamd status return nothing inside the container, I've run the following:
root@mail:/# rspamd -f -u _rspamd -g _rspamd status  # no output returned

By the way process looks running:
root@mail:/# ps -fe|grep rspamd
root       2878      0  0 12:42 ?        00:00:00 rspamd: main process
root       2879   2878  0 12:42 ?        00:00:00 rspamd: rspamd_proxy process (*:11332)
root       2880   2878  0 12:42 ?        00:00:00 rspamd: controller process (*:11334)

Is there a better way to check rspamd status?

I'm using alpine so I've paxctl -cm /path/to/rspamd/bin in order to let grsec leave it running, since that I've got no error reported in dmesg

Is there a better way to check rspamd status?

rspamc uptime
rspamc stat
rspamadm control stat

I'm using alpine so I've paxctl -cm /path/to/rspamd/bin in order to let grsec leave it running

Maybe related to https://github.com/hardware/mailserver/issues/250#issuecomment-395212056
Can I get the first 500 lines of your container logs ?

rspamc uptime

Results for command: uptime (0.000 seconds)
Rspamd version: 1.7.5
Uptime: 1 day 5 hours 10 minutes

rspamc stat

Results for command: stat (0.016 seconds)
Messages scanned: 48
Messages with action reject: 0, 0.00%
Messages with action soft reject: 0, 0.00%
Messages with action rewrite subject: 2, 4.17%
Messages with action add header: 0, 0.00%
Messages with action greylist: 4, 8.33%
Messages with action no action: 42, 87.50%
Messages treated as spam: 2, 4.17%
Messages treated as ham: 46, 95.83%
Messages learned: 17
Connections count: 0
Control connections count: 4
Pools allocated: 401
Pools freed: 349
Bytes allocated: 17.90M
Memory chunks allocated: 446
Shared chunks allocated: 16
Chunks freed: 0
Oversized chunks: 50
Fuzzy hashes in storage "rspamd.com": 123665537
Fuzzy hashes stored: 123665537
Statfile: BAYES_SPAM type: redis; length: 0; free blocks: 0; total blocks: 0; free: 0.00%; learned: 1; users: 1; languages: 0
Statfile: BAYES_HAM type: redis; length: 0; free blocks: 0; total blocks: 0; free: 0.00%; learned: 16; users: 1; languages: 0
Total learns: 17

rspamadm control stat

connect unix:/var/mail/rspamd/rspamd.sock failed: 111, 'Connection refused'
cannot connect to: /var/mail/rspamd/rspamd.sock

so I guess this could be interesting too:
root@mail:/# ls -l /var/mail/rspamd/rspamd.sock
srw------- 1 root root 0 Jun 25 12:44 /var/mail/rspamd/rspamd.sock

and finally here are the first 500 lines of mailserver container
Let me know if you need more debug info.

http://ix.io/1f0R
root: s6-supervise : spawning rspamd process
root: s6-supervise : spawning rspamd process
root: s6-supervise : spawning rspamd process
root: s6-supervise : spawning rspamd process
root: s6-supervise : spawning rspamd process
root: s6-supervise : spawning rspamd process
root: s6-supervise : rspamd has restarted too many times (permanent failure)

s6 can't start rspamd. Try with level = "debug"; in /etc/rspamd/local.d/logging.inc to log more info about rspamd. Restart your container.
https://rspamd.com/doc/configuration/logging.html
I am not familiar with PaX flags and security-enhancing kernel patches like GrSecurity, are you sure about your paxctl fix ? Try to disable completly it (if possible) or test with a common linux distribution (Debian/Ubuntu) without any security patches.
If GrSecurity is the source of the problem, I invite you to open an issue on rspamd repository.

@WnP This project has never been tested for GrSecurity/SeLinux, the more it uses the base stack on debian non-hardered. Many things can influence, even the build of the GCC compiler.

At the moment I've set kernel.pax.softmode=1 which is just a workaround but fix this issue which is defenitly grsec related -I update the title.
The problem, imho, is that I was setting pax flags after container was lauched, and during this time s6-suppervise block rspamd:
root: s6-supervise : rspamd has restarted too many times (permanent failure)

For now I don't know how can I set pax flags after container creation but before lauching, I'll keep digging.
Maybe this issue should be closed as it's not mailserver related, let me know.
Thanks for your interest.

Alpine Linux 3.8 https://alpinelinux.org/posts/Alpine-3.8.0-released.html
__ End of support for hardened kernel (unofficial Grsecurity) __

End of support for hardened kernel (unofficial Grsecurity)

😄

Maybe this issue should be closed as it's not mailserver related, let me know.

I will add a note in the readme about that.

Just leaving a personal note:
I've had terrible experiences using alpine as the docker host.
I got tired of surprises, so I started using docker on the supported platforms.
https://docs.docker.com/install/
I'm happier now 😛

I'm surprised that coreos is not mentioned


Adding Direct Mail channel support to Consent schema

Please link to the issue #…
Adding Direct Mail channel support to Consent schema #1751
XDM-1751  Adding Direct Mail channel support to Consent schema

@mjasrotia @bisin-adobe : Can you please look into this.

@Prathamesh0000 @nikshar , please work with Russell Stringham to make any changes to the consent field group. Once you have his approval through a JIRA, I can review this PR


Resolve Mismatched Types Error in Macro Expansion

The error originated from the attribute macro endpoint and was primarily due to the naming conflict between user-defined variables and those generated by the macro.
like this:

#[endpoint(tags("todos"), status_codes(201, 409))]
pub async fn create_todo(req: JsonBody<Todo>) -> Result<StatusCode, StatusError> {
    tracing::debug!(todo = ?req, "create todo");

    let mut vec = STORE.lock().await;

    for todo in vec.iter() {
        if todo.id == req.id {
            tracing::debug!(id = ?req.id, "todo already exists");
            return Err(StatusError::bad_request().brief("todo already exists"));
        }
    }

    vec.push(req.into_inner());
    Ok(StatusCode::CREATED)
}
//The code he generates is
fn handle<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
//here
req: &'life1 mut salvo::Request,
depot: &'life2 mut salvo::Depot,
res: &'life3 mut salvo::Response,
ctrl: &'life4 mut salvo::FlowCtrl,
) -> ::core::pin::Pin<Box<dyn ::core::future::Future<Output = ()> + ::core::marker::Send + 'async_trait,>,>
where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
{
Box::pin(async move {
let __self = self;
let () = {
//here
let req: JsonBody<Todo> = match <JsonBody<Todo,> as salvo::Extractible>::extract_with_arg(req, "req").await
...
}

the macro generated variables with common names such as req and request. If a user happened to use these same names in their code, it would lead to a name collision and subsequently a type mismatch error, as the macro-generated variable was of a different type than the user-defined one.
To solve this issue, I updated the macro to generate variables with unique names, specifically by adding a _macro_generated prefix to the generated variable names.

Looks like some of the tests didn't pass, I'll check them out


Unable to access Web UI via nginx reverse proxy

Describe the bug
When accessing the web UI via nginx reverse proxy, I get HTTP Status 400 - Bad Request
To Reproduce
Steps to reproduce the behavior:

Set up docker container with latest image
Set up nginx reverse proxy
Access via reverse proxy
Get error HTTP Status 400 - Bad Request

Expected behavior
Access web UI as usual
Desktop (please complete the following information):

OS: Docker: Ubuntu, Browser: Windows
Browser: Chrome
Gaps Version: 0.4.8

Additional context
Accessing the web UI via http on ip:8484 work fine, but when routed through nginx gets error. I looked for similar issues on github, but the only result returned is not the same as this I guess. I'm not getting SSL error.

If the UI works via localhost, this sounds like an nginx/Windows issue. Are you exposing the correct ports?

I have nginx on my machine I can test with. Which version of gaps are you using SSL or non?

If the UI works via localhost, this sounds like an nginx/Windows issue. Are you exposing the correct ports?

Do I have to expose any ports if I'm using docker compose and the nginx and gaps containers are all connected to the same docker network, so it should suffice that in my nginx proxy configuration that I use gaps:8484 as upstream server even without exposing any ports on the gaps container. At least that has been the case for a dozen of other containers that I have set up with the same fashion.

I have nginx on my machine I can test with. Which version of gaps are you using SSL or non?

I'm using the SSL version (latest instead of latest-no-ssl), but as upstream server in nginx configuration I'm using port 8484, through which I did not receive any browser warning about self signed certs when I connect via ip:port, so I assume it's a non SSL port?

I think I might have found the problem. I should've checked the log first. It's written there the character [_] is never valid in a hostname. And I changed the upstream name from gaps_backend to gapsbackend (removed the underscore), and it works now. I don't understand why this should be a problem though, as I have used underscores in other containers' upstream name and have never had any problems.


[SPARK-32300][PYTHON][2.4] toPandas should work from a Spark DataFrame with no partitions

What changes were proposed in this pull request?
This PR proposes to just simply by-pass the case when the number of array size is negative, when it collects data from Spark DataFrame with no partitions for toPandas.
spark.sparkContext.emptyRDD().toDF("col1 int").toPandas()

In the master and branch-3.0, this was fixed together at https://github.com/apache/spark/commit/ecaa495b1fe532c36e952ccac42f4715809476af but it's legitimately not ported back.
Why are the changes needed?
To make empty Spark DataFrame able to be a pandas DataFrame.
Does this PR introduce any user-facing change?
Yes,
spark.sparkContext.emptyRDD().toDF("col1 int").toPandas()

Before:
...
Caused by: java.lang.NegativeArraySizeException
	at org.apache.spark.sql.Dataset$$anonfun$collectAsArrowToPython$1$$anonfun$apply$17.apply(Dataset.scala:3293)
	at org.apache.spark.sql.Dataset$$anonfun$collectAsArrowToPython$1$$anonfun$apply$17.apply(Dataset.scala:3287)
	at org.apache.spark.sql.Dataset$$anonfun$52.apply(Dataset.scala:3370)
	at org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:80)
...

After:
Empty DataFrame
Columns: [col1]
Index: []

How was this patch tested?
Manually tested and unittest were added.

Test build #125815 has started for PR 29098 at commit c3a7f7e.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/30426/
Test PASSed.

Test build #125816 has started for PR 29098 at commit 8074075.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/30427/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/30429/
Test PASSed.

Test build #125818 has started for PR 29098 at commit 070ea46.

Test build #125815 has finished for PR 29098 at commit c3a7f7e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/125815/
Test PASSed.

Test build #125818 has finished for PR 29098 at commit 070ea46.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/125818/
Test PASSed.

Test build #125816 has finished for PR 29098 at commit 8074075.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/125816/
Test PASSed.

merged to branch-2.4, thanks @HyukjinKwon !

+1, late LGTM. Thanks all!


Cross platform can't be access

Description
I want to call the files.exe binary directly from my WSL Ubuntu vm,it can call but will be crash.
Instead of using files.exe in WSL Ubuntu vm,using explorer.exe just wokring fine as expect.
Just like below:
https://github.com/files-community/Files/assets/75596885/fe2bd0aa-3931-4568-b466-a71ecc2e0d4e
Steps To Reproduce
1.Install a WSL Distro on your machine
2.Call files.exe directly in WSL Distro
Requirements
Files will be start with a called wsl path.
Files Version
<IP_ADDRESS>
Windows Version
10.0.22631.3810
Log File
N/A

Thanks for the report, can you please upload (Do not copy and paste content) the debug.log file directly to GitHub (email attachments don't work) . You can get it in Files settings > About > Open log folder.

Thanks for the report, can you please upload (Do not copy and paste content) the debug.log file directly to GitHub (email attachments don't work) . You can get it in Files settings > About > Open log folder.

debug.log
Here it it mate,the original log.Hope you guys can fix that :)

Log has nothing to indicate a crash occurred.

Could you try to find Files app from Windows logs > Application > sort by Source > .NET Runtime in Event Viewer?
Check if you can call Files via files.exe from command prompt

Log has nothing to indicate a crash occurred.

Could you try to find Files app from Windows logs > Application > sort by Source > .NET Runtime in Event Viewer?
Check if you can call Files via files.exe from command prompt

Sorry i don't understand.Where can i find Windows logs for you?

It's in event viewer you can open that from the start menu search

It's in event viewer you can open that from the start menu search

Only one error i can found here.

It's in event viewer you can open that from the start menu search

Also there a lot of warnning like this:

The time this exception occurred is the same when you launched the app via the alias ‘files.exe’?
And image isn’t uploaded fully please wait a bit til the url gets generated.

It's in event viewer you can open that from the start menu search

Also there is a lot of warnning here:

Is it matter with this issue?

The time this exception occurred is the same when you launched the app via the alias ‘files.exe’?

Sure.

The time this exception occurred is the same when you launched the app via the alias ‘files.exe’?

Please also try preview version https://files.community/download

The issue can be triggered as follows in Powershell:
PS C:\Users> cd \\wsl.localhost\Arch\
PS Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\Arch> files.exe .

Arch is the name of any WSL distribution.
So the issue is related to the working directory being a WSL directory.

The issue can be triggered as follows in Powershell:
PS C:\Users> cd \\wsl.localhost\Arch\
PS Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\Arch> files.exe .

Arch is the name of any WSL distribution.
So the issue is related to the working directory being a WSL directory.
那这个事情就很邪门了，它能加载WSL的虚拟机文件树，但是不能在WSL中调用？😂

@Qin-shihuang can you navigate to the location in question if you open Files first?

@yaira2 Yes, in that case Files works well

Thank you for checking

The issue can be triggered as follows in Powershell:
PS C:\Users> cd \\wsl.localhost\Arch\
PS Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\Arch> files.exe .

Arch is the name of any WSL distribution.
So the issue is related to the startup directory being a WSL directory.
Files stuck at Files.App\Helpers\Application\AppLifecycleHelper.cs:140, in ConfigureHost.

@Qin-shihuang do you know if there is a specific service causing the issue?

do you know if there is a specific service causing the issue?

I'm not sure.

A fix will be included in the next release


Staked Amount still coming back negative

The ways that it could be dealt with are (and possibly a combo):
Kicking when users are slashed (but this would require adding a joining PSUB probably otherwise there might not be any left eventually)
Adding a "top up" PSUB where the user adds back into their slash by using some of their balance (for example the one in the example issue has enough balance to cover the negative)
Adding guard to this transfer logic I have highlighted
Having it be a pass through where if balance is enough to cover it, it gets used

With 2000 timesteps and the latest fix it still seems to occur, but I would check on your own run to make sure it wasn't something to do with non-integrated code

Commit a8620ec28 does increases the test coverage, on which one of the test does runs for 20k. I've noticed that the staked amount test will fail at random runs. Will investigate it.

This seems related to #174

Solved by f128a96d


How to get Row, Column & Sheet Name of current value changed

How to get Row, Column & Sheet Name of current value changed.
How to  detecting the change happed on specific Column when value got changed.

I cannot fully understand you

How we can capture row number, column number and data when certain data changed for a cell..? Please can you guide me on this.


WIP: Use UV if it is available - Add locking dependencies to bundles

If UV can be installed on a platform, install it and use it instead of venv/pip.
It's just so much faster. pip is still needed for cross-platform bootstrapping and as a fallback. Tests will eventually need to make sure they run against both.
This also means it's possible to introduce locking to the install and bundling process.
Current plan for how this will work is:

ducktools.env bundle ... will generate a new lockfile by default and include it
There will be a --no-lock option to disable this
ducktools.env run will have an option --generate-lock that will make a lockfile and use that to build the env
ducktools.env bundle will gain an option --use-lockfile that will bundle the included lockfile
The internal run_script command will gain a lockfile option that will use the lockfile instead of inline dependencies.

Locked dependencies will mean losing the find_sufficient_env method and replacing it with something that checks matching locked environments or at least matching frozen specifications. Will need something that works like this even if UV is unavailable.


Updating .gitignore for new Atom folders

So, I encountered this recently when updating my Dotfiles from disk.
[..]
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	atom.symlink/blob-store/
	atom.symlink/recovery/

Stephens-Work-Mac-mini:.dotfiles (master) stephen$ ls -l atom.symlink/recovery/
total 8
-rw-r--r--  1 stephen  staff  121 Sep 12 14:55 credentials-7c3859.csv

That's an AWS credential file from when Atom crashed. 😳
The blob-store directory doesn't have anything else of terrible interest, but seems like something you wouldn't want around on the repository.
tl;dr
I think these paths should be added to the default .gitignore
atom.symlink/blob-store
atom.symlink/recovery

Sounds good to me! Cheers!


Joint-ISI dithering: fixed a bug regarding first ISI bin

The first ISI bin was giving a zero probability due to an error in the combination of the cumulated sum and the padding.

Coverage increased (+0.003%) to 90.275% when pulling 1e03fdae5f4aaf54908ca5de27c09bd84665d4fe on INM-6:feature/joint-isi-tail into 0be27f98e9ee3d58d9ff5357af1c9725af96925f on NeuralEnsemble:master.

Coverage increased (+0.003%) to 90.275% when pulling 1e03fdae5f4aaf54908ca5de27c09bd84665d4fe on INM-6:feature/joint-isi-tail into 0be27f98e9ee3d58d9ff5357af1c9725af96925f on NeuralEnsemble:master.

Gosh! I spot np.r_[] in your code!

Gosh! I spot np.r_[] in your code!


can't download dataset

Thank for your sharing paper, code and dataset.
But I can't download Nukki.zip.

@comihuang1030,
I think you can download the dataset here https://github.com/HYOJINPARK/ExtPortraitSeg


Incorrect versions shown in Swagger Breaking Change report

The Swagger Breaking Change PR check in PR #19791 shows "2022-04-01" as the new and base version should show "2022-04-01-preview".

The fix was released to production pipeline.


ESR document updates for RS5

Fixes ESR documents for RS5 due to backend change (replacing "Azure" storage with "Microsoft cloud"
Updated screenshot with latest Azure portal
Removed Windows 8, which is no longer supported
Misc. minor fixes

@takashi-moriyama : Thanks for your contribution! The author, @MarkusVi, has been notified to review your proposed change.

Hi @takashi-moriyama,
Microsoft authors of articles should make updates through the private repository so the updates can be staged and validated by the current validation rules. You can read about article authors working in the public repo for more information. Thanks.

#sign-off


Fix some downstream Symbolics 3 compatibility issues

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+2.4%) to 63.636%

Totals

Change from base Build<PHONE_NUMBER>:
2.4%

Covered Lines:
98

Relevant Lines:
154

💛  - Coveralls


Fix issue with nbf claim

This addresses the issue that I had pointed out in #175  . In this PR, I added validation of the nbf claim. Naturally, I also added tests to validate that sessions with future an nbf in the future result in an empy session dict and that a session with an nbf in the past results in a populated session dict. There appeared to be some pre-commit hook version issues with some versions of python that I also fixed.

super! Thank you!


New version: GiulioSorrentino.wxBriscola version 0.6.3

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Manual Validation ended with:

This might be a false positive, and we can rescan on Monday.

@wingetbot waivers Add Validation-Executable-Error


Import/update real estate data?

Hi,
Thinking about making a POC for integrating RealT data into Finary.
Do you think it is feasible via your work and your knowledge of Finary API?

I'm not a RealT customer so I'm not really sure what sort of data from RealT you would want to add to Finary.
You want to add Tokens in the crypto part ? Or you have enough information to enter a real estate object and then you have a fraction of it ? (not sure if Finary support <1% ownership)
Tell me more and I might be able to help.

I'd like to actually register RealT Token as a real estate object as a fraction of it.
I did a quick try via the web app: while creating some mandatory value can't be set to <1%, ownership included yes, but it can be done afterward on modification.
FYI, here is a complete token object extract via RealT API: we have basically more than enough and may need to adjust some value like currency, area sqft, etc.
{'fullName': '10410 Cadieux Rd, Detroit, MI 48224', 'shortName': '10410 Cadieux', 'symbol': 'REALTOKEN-S-10410-CADIEUX-RD-DETROIT-MI', 'productType': 'real_estate_rental', 'tokenPrice': 50.91, 'canal': 'release', 'currency': 'USD', 'totalTokens': 32500, 'totalTokensRegSummed': 32500, 'uuid': '0x4637aa1a13aa4050c6e4bcd6dde9c39e80e9dd54', 'ethereumContract': '0x4637aa1a13aa4050c6e4bcd6dde9c39e80e9dd54', 'xDaiContract': '0x4637aa1a13aa4050c6e4bcd6dde9c39e80e9dd54', 'gnosisContract': '0x4637aa1a13aa4050c6e4bcd6dde9c39e80e9dd54', 'goerliContract': None, 'totalInvestment': 1654575, 'grossRentYear': 315600, 'grossRentMonth': 26300, 'propertyManagement': 2104, 'propertyManagementPercent': 0.08, 'realtPlatform': 526, 'realtPlatformPercent': 0.02, 'insurance': 690, 'propertyTaxes': 2230, 'utilities': 5240, 'initialMaintenanceReserve': 52600, 'netRentDay':<PHONE_NUMBER>6164, 'netRentMonth': 13510, 'netRentYear': 162120, 'netRentDayPerToken': 0.013666596417281, 'netRentMonthPerToken': 0.41569230769231, 'netRentYearPerToken': 4.9883076923077, 'annualPercentageYield': 9.7982865690585, 'coordinate': {'lat': '42.420852', 'lng': '-82.938980'}, 'marketplaceLink': 'https://realt.co/product/10410-cadieux-rd-detroit-mi-48224/', 'imageLink': ['https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-hero-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-map-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-aerial-6.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-aerial-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-aerial-5.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-aerial-4.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-aerial-2.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-aerial-3.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-front-4.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-front-1a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-front-2b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-front-2a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-front-1b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-side-1a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-side-1b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-exterior-2a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-exterior-1a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-exterior-1b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-exterior-stairs-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-1a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-1b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-kitchen-1a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-kitchen-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-kitchen-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-bath-1a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-bath-1b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-bed-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-2a.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-2b.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-living-3.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-bath-3.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-bath-2.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-basement-1.jpg', 'https://realt.co/wp-content/uploads/2023/05/10410-Cadieux-basement-2.jpg'], 'propertyType': 2, 'squareFeet': 20416, 'lotSize': 37260, 'bedroomBath': '35x1 Bed / 35x1 Bath', 'hasTenants': True, 'rentedUnits': 35, 'totalUnits': 35, 'termOfLease': None, 'renewalDate': None, 'section8paid': 0, 'subsidyStatus': 'no', 'subsidyStatusValue': None, 'subsidyBy': None, 'sellPropertyTo': 'intl_investors_only', 'secondaryMarketplace': {'UniswapV1': 0, 'UniswapV2': 0}, 'secondaryMarketplaces': [{'chainId': 100, 'chainName': 'xDaiChain', 'dexName': 'LevinSwap', 'contractPool': '0x4852f9eebdde495d0f02d158d1025c4b5d78742e', 'pair': {'contract': '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83', 'symbol': 'USDC', 'name': 'USD//C on xDai'}}], 'blockchainAddresses': {'ethereum': {'chainName': 'Ethereum', 'chainId': 1, 'contract': '0x4637aa1a13aa4050c6e4bcd6dde9c39e80e9dd54', 'distributor': '0x6e71DE54b6e289703AF8FBa4749231334e00A9Af', 'maintenance': '0x2944c261Fe6bFbED7e432fcf66a860af7aF7033a'}, 'xDai': {'chainName': 'xDaiChain', 'chainId': 100, 'contract': '0x4637aa1a13aa4050c6e4bcd6dde9c39e80e9dd54', 'distributor': '0x6e71DE54b6e289703AF8FBa4749231334e00A9Af', 'rmmPoolAddress': 0, 'chainlinkPriceContract': '0x6d7AB5914ECBd10D51d0c8a8Ae863843C55a25b7'}, 'goerli': {'chainName': 'Goerli testnet', 'chainId': 5, 'contract': 0, 'distributor': 0, 'rmmPoolAddress': 0, 'chainlinkPriceContract': 0}}, 'underlyingAssetPrice': 1360000, 'renovationReserve': 75000, 'propertyMaintenanceMonthly': 2000, 'rentStartDate': {'date': '2023-07-01 00:00:00.000000', 'timezone_type': 3, 'timezone': 'UTC'}, 'lastUpdate': {'date': '2023-10-08 19:24:32.000000', 'timezone_type': 3, 'timezone': 'UTC'}, 'originSecondaryMarketplaces': [{'chainId': 100, 'chainName': 'xDaiChain', 'dexName': 'LevinSwap', 'contractPool': '0x4852f9eebdde495d0f02d158d1025c4b5d78742e'}], 'initialLaunchDate': {'date': '2023-05-18 00:00:00.000000', 'timezone_type': 3, 'timezone': 'UTC'}, 'seriesNumber': 320, 'constructionYear': 1955, 'constructionType': 'Brick', 'roofType': 'Asphalt', 'assetParking': None, 'foundation': 'Slab', 'heating': 'Forced Air', 'cooling': 'None', 'tokenIdRules': 100349, 'rentCalculationType': 'constant', 'realtListingFeePercent': 0.1, 'realtListingFee': 165455.56, 'miscellaneousCosts': None, 'propertyStories': 2, 'rentalType': 'long_term'}

Then yes, it should be possible. I didn't write the POST call here : https://github.com/lasconic/finary_uapi/blob/main/finary_uapi/user_real_estates.py but I believe a real estate object is created with a single large POST.

Also in my experience, the <1% check is done by the UI, but not enforced by the server, so a single call should do it.
You can see the POST to /users/me/real_estates if you create a test object in the UI and check your browser dev tools network tab.

I wasn't able to find anything POST to /users/me/real_estates. However I have something POST to /organizations/<UIID>/users/<my-email>/real_estates
Maybe because I'm using the family member feature?
{
"is_automated_valuation":false,
"is_furnished":false,
"is_new":false,
"has_lift":false,
"has_sauna":false,
"has_pool":false,
"flooring_quality":null,
"flooring_condition":null,
"windows_quality":null,
"windows_condition":null,
"bathrooms_quality":null,"
bathrooms_condition":null,
"kitchen_quality":null,
"kitchen_condition":null,
"general_quality":null,
"general_condition":null,
"parking_spaces":null,
"garage_spaces":null,
"number_of_rooms":null,
"number_of_bathrooms":null,
"number_of_floors":null,
"floor_number":null,
"balcony_area":null,
"garden_area":null,
"category":"rent",
"monthly_charges":12000,
"monthly_rent":26000,
"yearly_taxes":22000,
"rental_period":"annual",
"rental_type":"nue",
"is_estimable":false,
"user_estimated_value":1600001,
"description":"RealT - 10410 Cadieux Rd, Detroit, MI 48224",
"surface":3000,
"agency_fees":null,
"notary_fees":null,
"furnishing_fees":null,
"renovation_fees":null,
"buying_price":1600000,
"building_type":"building",
"ownership_percentage":1,
"place_id":"ChIJ7bJzDHDWJIgRCht-FnDVfn8"
}

The call should work the same for users/me/real_estates and you don't need the org and the mail.

I confirm the call works users/me/real_estates
I'm now block on place_id Finary attribute which seems generated from an internal database based from the full address entered at the very beginning in the UI :/
Since this is a mandatory step/attribute I'm not sure how to deal with it: even more not all addresses are found on the Finary side (for exemple my own place can't be find :))

It doesn't have to be the exact place I believe, the street name or a street close by should work, and you can get a placeId. I missed it when I checked the call... I was hoping that we could do it with a single call.

Ok will try to catch this id and then see if all attributes are needed to simplify rhe POST as much as possible for now

We can get places ID from the Finary DB with a GET to https://api.finary.com/real_estates/autocomplete?query=<address>

Nice find!

Feel free to make a PR if you want to the POST and the autocomplete in this package

yep working on it.
However I will need you to review my code as I'm not a dev so some pieces might need correction :)

finary_uapi-0.1.8 should hit Pypi soon and contains your code.


SLING-5721 Provide @ValueMapObject to inject custom types for a ValueMap value

See https://issues.apache.org/jira/browse/SLING-5721

With the upcoming migration to git this repository will be deleted. If the pull request contains data that should be re-submitted I suggest that you save the changes locally and resubmit them after the migration, which will likely happen on Monday the 9th of October.


fix(@schematics/angular): generate workspace tslint and .editorconfig…

… in minimal workspaces and applications
When in minimal, tslint does get installed thus the tslint config should also be created, as this will break
The minimal flags definition stats that the project will be created without any testing frameworks.
Fixes #13054

Actually, we might want to go in the other direction and not install tslint.  I'll mark this for discussion as a more formal definition of minimal is needed.


fix: remove globalThis usage

Description
Fixes #Issue Number
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test tags=""
:mag: Cypress test results

[!CAUTION]
If you modify the content in this section, you are likely to disrupt the CI result for your PR.

/ok-to-test<EMAIL_ADDRESS>

/ok-to-test


Go 1.17 is released

Coverage remained the same at 69.953% when pulling dfc5532e324fb7a2ea0bcdd8f64a2cb6d28840eb on go1.17-is-released into 2e0b76cf15ab5284af80a6630df071a52d33c55b on main.


[OpenAPI] Safeint emits int64 format

While there may not be an accurate format specifier for safeint, I believe the current emit of format: int64 feels incorrect. The entire point of safeint is an int that fits safely into a double, so the ideal JS emit for this would indeed be a double. But the emitted OpenAPI doesn't indicate this, so a conservative emitter would pick BigInteger (at severe ergonomic cost).
I believe we have a few options, any of which would be better IMO:

argue for adding int53 to the format registry and use that if accepted
just use int53
use double
omit format entirely

I had never seen “safe int” before in type definitions, but I liked the idea at first look. However, I found this issue when looking to request a “Big Integer” format (a string format).
If bigInteger existed, I do not think I would use safeint to model. Instead, I would use int32, decimal/float64, or bigInteger.
Therefore,

Should TypeSpec add a bigInteger string format?
I vote for option (3) or (4) - using double (float64?) or removing safeint

@connorjs I think it would be a mistake to use a hypothetical bigInteger for integers in the safeint range above 2^32-1. I've seen that in practice there are many integers that don't fit in 32 bits but which fit comfortably in 53 bits, and using a bigInteger type for those adds significant overhead to languages whose natural number type is a double (e.g. JS/JSON). For example, when emitting a bigInteger in JSON Schema, it would be serialized as a string to avoid precision loss (though this is configurable).
We effectively do have bigInteger and bigDecimal types - these are named integer and decimal respectively. Since these types do not have any limits on range or precision, emitting these types to a bigInt/bigDec type is likely the only reasonable choice to avoid data loss. We should definitely call this out in the docs, though, I'll file an issue for that.

Thanks for the information @bterlson! Good points. That also clarifies the intent of integer and decimal to me: the API needs to qualify their range/it's not explicit. It confirms my existing use of int32 instead of integer where appropriate.

Proposal
Current behavior is we emit type: integer, format: int64 for safeint Playground
Option 1: int53
Use a new format called int53 which would accurately represent the range of values that can be represented by a safeint in Typespec.
It wasn't really added as a common format in the openapi format registry but seemed to have looked like a good candidate. https://github.com/OAI/OpenAPI-Specification/issues/1517
This is a nice option as it give a clear indication of the type of integer that is being represented.
Option 2: int64 with maxValue
Keep it as an int64 but set the maximum property to the max value of a safeint.
Other alternatives

Use double: Javascript does have support for float64/double so it would be an equivalent representation but also a bit misleading.
Omit the format and just use type: integer. This feels even more wrong as it would suggest that any integer value going to infinity is valid.

The "double-int" format has been approved and merged into the OAI Format Registry.
https://spec.openapis.org/registry/format/double-int.html
I think the autorest and openapi3 emitters should render the safeint type as type: integer, format: double-int.

Agree on changing openapi3,
@johanste what do you think about autorest emitter respecting this format, it will for sure not work with autorest and the linter?

Oh good point! Maybe just the openapi3 emitter, and leave autorest as is.

wait on this change
keep current behavior by default and add an option to use double-int

when to change the default
what data should we / can we gather to determine this

list of influential customers

add doubleInt scalar
add warning on emitting safeInt without specific encoding
[separately]: Add OpenAPI decorator corresponding to format

new config option: safeint-strategy:  "int64" | "double-int"


[ESLint Plugin] Enforce exclusion of dist-esm and src in files field in package.json

This change updates the ts-package-json-files-required rule to check for the absence of src and dist-esm in the files list in package.json since sourcemaps now have the sources embedded. It is based on discussion with @xirzec here https://github.com/Azure/azure-sdk-for-js/pull/11273#discussion_r492975784. Related issue: https://github.com/Azure/azure-sdk-for-js/pull/7615.
TODO in this PR: update every package's package.json to conform to the final rule before merging.

+1 on fixing all the package.json files in the same PR

We should not remove dist-esm. It is not just for source files. It is preferred by bundlers.

Let's change this to remove src but leave dist-esm\src

Thanks @willmtemple, @bterlson, and @xirzec for the feedback! Please take another look.
Hi @XiaoningLiu, would you please confirm if source files needs to be shipped in storage-datalake package? I am removing them here: https://github.com/Azure/azure-sdk-for-js/pull/11411/commits/7af9e2e5a3039c8533f16079c26fdf8576059729.


Fix max length breaking mutually exclusive bug

What is the context of this PR?
Describe what you have changed and why, link to other PRs or Issues as appropriate.
How to review
Describe the steps required to test the changes (include screenshots if appropriate).
Checklist

[ ] New static content marked up for translation
[ ] Newly defined schema content included in eq-translations repo

 Bug - max length on text field breaking mutually exclusive option


fatal error: failed to route - pass 200, 1 shared.

I've been working with the RISCV example project on TinyFPGA BX and have documented my experiences here.
One the the things that really tripped me up was the fatal error: failed to route message with arachne-pnr. (full details shown below).
I just wanted to document here that the resolution to this problem for me was to use the -r option to "randomize the seed". Specifically like this:
arachne-pnr -r -d 8k -P cm81 -o hardware.asc -p hardware.pcf hardware.blif
Hopefully having this explicit GitHub issue will help others avoid the problems I had with this.
Here's the output from arachne-pnr without the -r, showing the error.
$ /usr/local/bin/arachne-pnr -d 8k -P cm81 -o hardware.asc -p hardware.pcf hardware.blif
seed: 1
device: 8k
read_chipdb +/share/arachne-pnr/chipdb-8k.bin...
  supported packages: bg121, bg121:4k, cb132, cb132:4k, cm121, cm121:4k, cm225, cm225:4k, cm81, cm81:4k, ct256, tq144:4k
read_blif hardware.blif...
prune...
read_pcf hardware.pcf...
hardware.pcf:43: warning: no port `pin_3' in top-level module `hardware', constraint ignored.
hardware.pcf:44: warning: no port `pin_4' in top-level module `hardware', constraint ignored.
hardware.pcf:45: warning: no port `pin_5' in top-level module `hardware', constraint ignored.
hardware.pcf:46: warning: no port `pin_6' in top-level module `hardware', constraint ignored.
hardware.pcf:47: warning: no port `pin_7' in top-level module `hardware', constraint ignored.
hardware.pcf:48: warning: no port `pin_8' in top-level module `hardware', constraint ignored.
hardware.pcf:49: warning: no port `pin_9' in top-level module `hardware', constraint ignored.
hardware.pcf:50: warning: no port `pin_10' in top-level module `hardware', constraint ignored.
hardware.pcf:51: warning: no port `pin_11' in top-level module `hardware', constraint ignored.
hardware.pcf:52: warning: no port `pin_12' in top-level module `hardware', constraint ignored.
hardware.pcf:53: warning: no port `pin_13' in top-level module `hardware', constraint ignored.
hardware.pcf:56: warning: no port `pin_14' in top-level module `hardware', constraint ignored.
hardware.pcf:57: warning: no port `pin_15' in top-level module `hardware', constraint ignored.
hardware.pcf:58: warning: no port `pin_16' in top-level module `hardware', constraint ignored.
hardware.pcf:59: warning: no port `pin_17' in top-level module `hardware', constraint ignored.
hardware.pcf:60: warning: no port `pin_18' in top-level module `hardware', constraint ignored.
hardware.pcf:61: warning: no port `pin_19' in top-level module `hardware', constraint ignored.
hardware.pcf:62: warning: no port `pin_20' in top-level module `hardware', constraint ignored.
hardware.pcf:63: warning: no port `pin_21' in top-level module `hardware', constraint ignored.
hardware.pcf:64: warning: no port `pin_22' in top-level module `hardware', constraint ignored.
hardware.pcf:65: warning: no port `pin_23' in top-level module `hardware', constraint ignored.
hardware.pcf:66: warning: no port `pin_24' in top-level module `hardware', constraint ignored.
hardware.pcf:77: warning: no port `pin_25' in top-level module `hardware', constraint ignored.
hardware.pcf:78: warning: no port `pin_26' in top-level module `hardware', constraint ignored.
hardware.pcf:79: warning: no port `pin_27' in top-level module `hardware', constraint ignored.
hardware.pcf:80: warning: no port `pin_28' in top-level module `hardware', constraint ignored.
hardware.pcf:81: warning: no port `pin_29' in top-level module `hardware', constraint ignored.
hardware.pcf:82: warning: no port `pin_30' in top-level module `hardware', constraint ignored.
hardware.pcf:83: warning: no port `pin_31' in top-level module `hardware', constraint ignored.
instantiate_io...
pack...

After packing:
IOs          13 / 63
GBs          0 / 8
  GB_IOs     0 / 8
LCs          5769 / 7680
  DFF        1491
  CARRY      821
  CARRY, DFF 157
  DFF PASS   522
  CARRY PASS 63
BRAMs        20 / 32
WARMBOOTs    0 / 1
PLLs         0 / 1

place_constraints...
promote_globals...
  promoted clk_16mhz$2, 1688 / 1688
  promoted $abc$60698$n19, 555 / 555
  promoted resetn, 326 / 326
  promoted $abc$60698$n4557, 96 / 96
  promoted soc.cpu.pcpi_div.start, 163 / 163
  promoted soc.cpu.pcpi_mul.mul_waiting, 216 / 216
  promoted $abc$60698$n4366, 73 / 74
  promoted $abc$60698$n4562, 64 / 64
  promoted 8 nets
    3 sr/we
    4 cen/wclke
    1 clk
  8 globals
    3 sr/we
    4 cen/wclke
    1 clk
realize_constants...
  realized 1
place...
  initial wire length = 116235
  at iteration #50: temp = 12.8802, wire length = 104649
  at iteration #100: temp = 7.32627, wire length = 77712
  at iteration #150: temp = 3.76088, wire length = 52415
  at iteration #200: temp = 1.65526, wire length = 36991
  at iteration #250: temp = 0.0517603, wire length = 27723
  at iteration #300: temp = 9.23435e-07, wire length = 27303
  final wire length = 27268

After placement:
PIOs       18 / 63
PLBs       874 / 960
BRAMs      20 / 32

  place time 44.80s
route...
  pass 1, 407 shared.
  pass 2, 222 shared.
  pass 3, 150 shared.
  pass 4, 94 shared.
  pass 5, 65 shared.
  pass 6, 66 shared.
  pass 7, 58 shared.
  pass 8, 39 shared.
  pass 9, 47 shared.
  pass 10, 38 shared.
  pass 11, 30 shared.
  pass 12, 21 shared.
  pass 13, 12 shared.
  pass 14, 6 shared.
  pass 15, 4 shared.
  pass 16, 2 shared.
  pass 17, 2 shared.
  pass 18, 1 shared.
  pass 19, 1 shared.
  pass 20, 1 shared.
[...snip...]
  pass 198, 1 shared.
  pass 199, 1 shared.
  pass 200, 1 shared.
fatal error: failed to route
make: *** [hardware.asc] Error 1

Golly! Its so fixed, except I get it after 1) following this install and then 2) building from this directory, see the error dump of the following.
I have to also note that my third part directory (nextpnr/3rdparty/abseil-cpp) directory was empty and was causing a build fail.  So I  changed directory to my nextpnr/3rdparty and then cloned abeil-cpp using:
git clone https://github.com/abseil/abseil-cpp.git
Note, I have just installed fresh today and so cannot vouch for a fix in nextpnr, if that was supposed to remove the problem.
I am on Debian 10, running Python 3.7.3.
On the assumption the original store and having to fix that alone the way prompts the problem, I will need rip the lot out and try a fresh install of symbiflow  instead.
@gojimmypi the compile problem is probably because the nextpnr distro is missing 3rd party dependencies.


current_user() -> User

Hello. In this form, it would be convenient to use:
current_user() -> User
If it was meant to be, what's the point?
current_user() -> object

Yeah, you are correct, was just lazy docstring by me. Updated in dev -- 7ac677e22d16df53440ac5c7ed022bf1cf1caab4


Update and rename script.py to studentsmarks.py

Yess I'm sorry, was trying something.
On Fri, 15 Jul 2022, 16:51 Michael Kryukov, @.***>
wrote:

Hey. Did you accidentally created this PR?
—
Reply to this email directly, view it on GitHub
https://github.com/michaelkryukov/heroku-python-script/pull/7#issuecomment-1185622788,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AT3JS75HJBFYQASHJ37BEJLVUF3H7ANCNFSM53VDOD3Q
.
You are receiving this because you authored the thread.Message ID:
@.***>

okay


Tracebacks

Traceback (most recent call last):
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\response.py", line 438, in _error_catcher
    yield
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\response.py", line 767, in read_chunked
    chunk = self._handle_chunk(amt)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\response.py", line 711, in _handle_chunk
    value = self._fp._safe_read(amt)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 612, in _safe_read
    data = self.fp.read(amt)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\socket.py", line 704, in readinto
    return self._sock.recv_into(b)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 753, in generate
    for chunk in self.raw.stream(chunk_size, decode_content=True):
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\response.py", line 572, in stream
    for line in self.read_chunked(amt, decode_content=decode_content):
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\response.py", line 793, in read_chunked
    self._original_response.close()
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\contextlib.py", line 135, in __exit__
    self.gen.throw(type, value, traceback)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\response.py", line 455, in _error_catcher
    raise ProtocolError("Connection broken: %r" % e, e)
urllib3.exceptions.ProtocolError: ("Connection broken: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)", ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 643, in <module>
    chat_messages = chat_downloader.get_chat_replay(
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 567, in get_chat_replay
    return self.get_youtube_messages(match.group(1), start_time, end_time, message_type, chat_type, callback)
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 410, in get_youtube_messages
    info = self.__get_live_info(continuation)
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 305, in __get_live_info
    return(self.__get_continuation_info(url))
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 309, in __get_continuation_info
    info = self.__session_get_json(url)
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 145, in __session_get_json
    return self.__session_get(url).json()
  File "C:\Users\x\Downloads\Compressed\chat_replay_downloader_test\tester.py", line 141, in __session_get
    return self.session.get(url)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 697, in send
    r.content
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 831, in content
    self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
  File "C:\Users\x\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 756, in generate
    raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)", ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

I'm sure 50% of it's because of my slow internet and 50% because of the script. Can you upload a separate version, especially the last one, before "print(html.text)" had to be added? Please.. I'm so done with reporting issues back to back.. I'm trying to save live chat logs everyday and the last version was perfect since there wasn't any tracebacks at all, no matter how bad my internet was.
I really hope that you could do that since this script is always updated via internet, if my assumption isn't wrong. I just don't want anymore issues in the future..

Can you upload a separate version, especially the last one, before "print(html.text)" had to be added?

You can always download an earlier version from the releases page (https://github.com/xenova/chat-replay-downloader/releases).

I'm sure 50% of it's because of my slow internet and 50% because of the script.
the last version was perfect since there wasn't any tracebacks at all, no matter how bad my internet was.

If you look at the changes I have made to the code recently, you will notice that I haven't changed anything regarding the extraction. In other words, I have not changed anything which would cause timeouts. The traceback you show above (ConnectionResetError) indicates that your internet is to blame.

I really hope that you could do that since this script is always updated via internet, if my assumption isn't wrong. I just don't want anymore issues in the future..

The script only updates if you actively synchronise the repo (with git), or if you re-download it. Changes I make do not automatically get pushed to everyone who has downloaded it.

Can you upload a separate version, especially the last one, before "print(html.text)" had to be added?

You can always download an earlier version from the releases page (https://github.com/xenova/chat-replay-downloader/releases).

I'm sure 50% of it's because of my slow internet and 50% because of the script.
the last version was perfect since there wasn't any tracebacks at all, no matter how bad my internet was.

If you look at the changes I have made to the code recently, you will notice that I haven't changed anything regarding the extraction. In other words, I have not changed anything which would cause timeouts. The traceback you show above (ConnectionResetError) indicates that your internet is to blame.

I really hope that you could do that since this script is always updated via internet, if my assumption isn't wrong. I just don't want anymore issues in the future..

The script only updates if you actively synchronise the repo (with git), or if you re-download it. Changes I make do not automatically get pushed to everyone who has downloaded it.

Alright, but then that's weird. Since I've never done re-downloads.
From prior experiences, the script works fine, but suddenly something like "unable to parse" or some random tracebacks happen without changing my internet configuration (either changing wifis, DNS, or VPNs).
That's why I thought it has to sync every now and then which frustrates me. Then I report the issue and download the new version. This keeps on happening. I'll try to do that, hopefully this helps and will be the last time I bicker about this. Sorry for this..

Alright, but then that's weird. Since I've never done re-downloads.
From prior experiences, the script works fine, but suddenly something like "unable to parse" or some random tracebacks happen without changing my internet configuration (either changing wifis, DNS, or VPNs).
That's why I thought it has to sync every now and then which frustrates me. Then I report the issue and download the new version. This keeps on happening. I'll try to do that, hopefully this helps and will be the last time I bicker about this. Sorry for this..

Alright, but then that's weird. Since I've never done re-downloads.
From prior experiences, the script works fine, but suddenly something like "unable to parse" or some random tracebacks happen without changing my internet configuration (either changing wifis, DNS, or VPNs).
That's why I thought it has to sync every now and then which frustrates me. Then I report the issue and download the new version. This keeps on happening. I'll try to do that, hopefully this helps and will be the last time I bicker about this. Sorry for this..

Alright, but then that's weird. Since I've never done re-downloads.
From prior experiences, the script works fine, but suddenly something like "unable to parse" or some random tracebacks happen without changing my internet configuration (either changing wifis, DNS, or VPNs).
That's why I thought it has to sync every now and then which frustrates me. Then I report the issue and download the new version. This keeps on happening. I'll try to do that, hopefully this helps and will be the last time I bicker about this. Sorry for this..

Alright, but then that's weird. Since I've never done re-downloads.
From prior experiences, the script works fine, but suddenly something like "unable to parse" or some random tracebacks happen without changing my internet configuration (either changing wifis, DNS, or VPNs).
That's why I thought it has to sync every now and then which frustrates me. Then I report the issue and download the new version. This keeps on happening. I'll try to do that, hopefully this helps and will be the last time I bicker about this. Sorry for this..

No worries! I heavily appreciate anyone who spends some time of their day reporting a potential bug/error - so, thank you! Like I said above, I am working on a system which automatically restarts after an error like this occurs - and I am trying my best to get it out as soon as possible.

Alright, but then that's weird. Since I've never done re-downloads.
From prior experiences, the script works fine, but suddenly something like "unable to parse" or some random tracebacks happen without changing my internet configuration (either changing wifis, DNS, or VPNs).
That's why I thought it has to sync every now and then which frustrates me. Then I report the issue and download the new version. This keeps on happening. I'll try to do that, hopefully this helps and will be the last time I bicker about this. Sorry for this..

No worries! I heavily appreciate anyone who spends some time of their day reporting a potential bug/error - so, thank you! Like I said above, I am working on a system which automatically restarts after an error like this occurs - and I am trying my best to get it out as soon as possible.


Helm Chart should allow specifying a custom volume mount to support Custom Azure Environments

Describe the solution you'd like
The documentation page here: https://azure.github.io/secrets-store-csi-driver-provider-azure/configurations/custom-environments/ describes the process to get the AKV Provider working in Custom Azure Environments.  One of these steps is to mount a file from the Kubernetes host node into the AKV Provider Pods. However the Helm Charts currently don't have any options to specify these Volume mounts, and the file we need isn't currently mounted onto the Pod.
The solution I propose is to add a new section to the Helm Chart to allow a custom path be mounted on the AKV Provider Pods.  Doing that will enable the Helm Chart be used in these Custom Azure Environments.  I'd be happy to submit a PR with this change.

That makes sense! @chrisamert Please feel free to open a PR. We can review and get it merged.


Tests - Unit test catch all blocks

Pull Request (PR) description

Improve code coverage by unit testing the catch blocks in

AdcsCertificationAuthority
AdcsOnlineResponder
AdcsWebEnrollment

This Pull Request (PR) fixes the following issues

Task list

[x] Added an entry under the Unreleased section of the change log in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[ ] Resource documentation added/updated in README.md in resource folder.
[ ] Resource parameter descriptions added/updated in schema.mof
and comment-based help.
[ ] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[x] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[x] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

@johlju, another one 😄

That's good to know for any future PR's.


[BUG] Wrong screenshot position

If I set viewportHeight param more the height of cypress window size, .compareSnapshot command captures screenshots in wrong place.
It captures screenshot lower than expected.
Steps to reproduce:

Set viewportHeight more than window of cypress browser height (for example, 1080);
Make screenshot of component (not full screen) (I tried do it on Modal component, that placed in the middle of screen)

Actual result:
Screenshot contains only part of component.
Expected result:
There is only component in screenshot.

+1

@Lultik , @hongdeyuan , can you provide us with a working example?
Thanks

Hi @area73 ,
This is my e2e tests.
import fixtures from '../fixtures/screenshots/fixtures'

const SITE_NAME = Cypress.env('SITE_NAME') || 'omneseducation'
const SITE_ENV = Cypress.env('SITE_ENV') || 'production'

describe("Screenshot non regression", () => {
  context('iPhone XR', () => {
    beforeEach(() => {
      // run these tests as if in a desktop
      cy.viewport('iphone-xr')
    })

    compareSnapshotsTest('iPhone XR')
  })

  context('macbook-16', () => {
    beforeEach(() => {
      // run these tests as if in a desktop
      cy.viewport('macbook-16')
    })

    compareSnapshotsTest('720p resolution')
  })
})

function compareSnapshotsTest(viewport) {
  const site = fixtures[SITE_NAME]
    const lazyElements = ['.list-article-item']

    site.pages.forEach(page => {
      it(`Snapshot [${SITE_NAME}]: ${SITE_ENV} — ${page.name}`, () => {
        cy.visit(site[SITE_ENV].url + page.url, {failOnStatusCode: false})

        cy.get('body').then($body => {
          for (const lazyElement of lazyElements) {
            if (!$body.find(lazyElement, {
              timeout: 100
            }).length) {
              return
            }

            cy.get(lazyElement).each($el => {
              cy.wrap($el).scrollIntoView({duration: 100})
            })
          }
        })

        cy.compareSnapshot(`${page.name}-${viewport}`, {
          capture: 'fullPage',
          errorThreshold: 0.5,
          timeout: 1200000,
        }).then(comparisonResults => {
          console.log(comparisonResults.mismatchedPixels) // will print the number of mismatched pixels
          console.log(comparisonResults.percentage) // will print the percentage of mismatched pixels
          console.log(comparisonResults.error) // will print the visual regression error message (if any)
        })
      })
    })
}

When i set the macbook-16 viewport according to Cypress documentation, my screenshot is cropped.

Hey @firestar300, are you using a Mac book pro to generate the screenshots?
If so, can you try to launch Cypress snapshots on another laptop (not Mac Book Pro) or if you don't have another laptop but you do have an external monitor, try to launch the Cypress snapshots from the external monitor (having the main window in that external monitor and closing the laptop.
Most of these issues are related to Macbook retina display.
Also, have a look at this issue
https://github.com/cypress-visual-regression/cypress-visual-regression/issues/165.


Add analysis button size reduced

Fix #11580
Before:

After

Code looks good! ✨

Working like a charm! 👍

In production 🚀


Revert "feat: Expose Ubuntu fix status for downstream consumption"

Reverts aquasecurity/trivy-db#407

It's a hotfix. Merging without review.

I confirmed Trivy successfully scans Ubuntu images in my local environment.


HTTP redirect error with --enable-http-cache on Github Pages

Using Ladybird 89a4fa4d24 and --enable-http-cache. I can not trigger the error without the cache flag.
It seems that the 301 redirect page is cached and served by the HTTP-cache instead of redirecting.
I believe this to be a regression but I have not done a git bisect.
Steps to reproduce:

./Build/ladybird/bin/Ladybird --enable-http-cache https://maggie-borger.com/
Click on the "Works" link, in the menu to the left (this will navigate to https://maggie-borger.com/works)
If you do not get a 301, then click on "Works" again.

55528.200 WebContent(177899): Web::EventHandler: Clicking on a link to https://maggie-borger.com/works
55528.200 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/works
55528.252 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/works/
55528.368 WebContent(177899): HTTP CACHE HIT! https://maggie-borger.com/_astro/biography.B86vKf1S.css
55528.368 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/works.DiBcDSQd.css
55528.400 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/borger-survival.C49-7onS_Z29t3Vd.webp
55528.428 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/broken.DeVRfEAw_2qtNyb.webp
55528.428 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/seal.aGj0trKj_Z1PRLvg.webp
55528.428 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/liferecline.TQSiwyzU_1REruG.webp
55528.432 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/tashstrawberyrose.DMHY5h42_Z2cqdY4.webp
55528.448 WebContent(177899): ResourceLoader: Failed load of: "https://maggie-borger.com/works/favicon.svg", Error: Load failed: 404, Duration: 84ms
55528.480 WebContent(177899): HTTP CACHE MISS! https://maggie-borger.com/_astro/macaron640.Bv5LZCbq_uQPr0.webp
55528.496 WebContent(177899): HTTP CACHE HIT! https://maggie-borger.com/favicon.ico
55530.480 WebContent(177899): Web::EventHandler: Clicking on a link to https://maggie-borger.com/works
55530.480 WebContent(177899): HTTP CACHE HIT! https://maggie-borger.com/works
55530.516 WebContent(177899): HTTP CACHE HIT! https://maggie-borger.com/favicon.ico

Expected behavior
Ladybird should follow the HTTP redirect Location header.
Response headers:
Request URL:
https://maggie-borger.com/works
Request Method:
GET
Status Code:
301 Moved Permanently
Remote Address:
<IP_ADDRESS>:443
Referrer Policy:
strict-origin-when-cross-origin
Accept-Ranges:
bytes
Access-Control-Allow-Origin:
*
Age:
20
Cache-Control:
max-age=600
Content-Length:
162
Content-Type:
text/html
Date:
Sat, 27 Jul 2024 15:08:39 GMT
Expires:
Sat, 27 Jul 2024 15:18:18 GMT
Location:
https://maggie-borger.com/works/
Server:
GitHub.com
Vary:
Accept-Encoding
Via:
1.1 varnish
X-Cache:
HIT
X-Cache-Hits:
1
X-Fastly-Request-Id:
5c155f00a09ff243e8cb538d43f9ddcea8de4e42
X-Github-Request-Id:
1012:8F220:393C871:3AC527F:66A50D62
X-Proxy-Cache:
MISS
X-Served-By:
cache-cph2320057-CPH
X-Timer:
S1722092919.115310,VS0,VE1

I believe this to be a regression but I have not done a git bisect.

I tested the repro steps with https://github.com/LadybirdBrowser/ladybird/commit/47169db452 the parent of the change which added --enable-http-cache, https://github.com/LadybirdBrowser/ladybird/commit/a3c8e60710, and with that I don’t get 301 page shown, but instead Ladybird follows the redirect as expected. But building with https://github.com/LadybirdBrowser/ladybird/commit/a3c8e60710 commit, I do get the 301 page shown, and Ladybird does not follow the redirect as expected.
So I guess the https://github.com/LadybirdBrowser/ladybird/commit/a3c8e60710 --enable-http-cache change is what regressed the redirect behavior?


Integration with Django Advanced Filters

This might be a good optional dependency
https://github.com/modlinltd/django-advanced-filters

@aqeelat is it related to https://github.com/jazzband/django-auditlog/issues/456?
can we close this one in favor of https://github.com/jazzband/django-auditlog/issues/456?

@hramezani totally not related

Could you please elaborate on the topic? What's needed for this integration?

Actually, I am not very interested in adding a new dependency to this project. I am not familiar with Django Advanced Filters but I think people can use it in their own setup and customize auditlog admin.
BTW, you can create a draft PR if you want. I might miss something.

We could have it as an optional dependency. If people wants it, they can install it with pip install django-auditlog[filters] or something like that.

I think this will have to be on the back burner for now. I have other ideas for this project that I think are more important/helpful to the users.


an error code line in Tutorial/Intermediate/tf2/Traveling in time (C++)

rclcpp::Time when = this->get_clock()->now() - rclcpp::Duration(5, 0);
transformStamped = tf_buffer_->lookupTransform(
    toFrameRel,
    fromFrameRel,
    when,
    50ms);

compare with the forward turtle_tf2_listener.cpp file
the second code line transformStamped should be t.
Besides,there are two places with the same error which is not friendly for beginner.

See https://github.com/ros2/ros2_documentation/pull/3115


Fix: wrong argument in load_images_and_process

This PR fixes the following supposed bug.
When load_images_and_process called for the validation set, train_d['ped_ids'] was used instead of val_d['ped_ids'] as an argument.

Thank you for your contribution.


VarDumper::exportClosure() not support arrow functions

VarDumper::exportClosure() not support arrow functions:
$f = fn($x) => $x + 10;
VarDumper::export($f);

Additional info

Q
A

Yii version
2.0.43

PHP version
7.4

Operating system
any

I haven't said that the library should be used. I've said there are interesting ideas there.

SuperClosure is not maintained anymore.
We've initially used Opis for Yii 3 but then found that it doesn't work for a few edge cases we had and that the 4.x version will require FFI.
It is another dependency. We'd like to avoid it (especially considering that it's already implemented for Yii 3 and could be partially back-ported).


Clearer error msg

Minor changes to try to give more indication about what went wrong.
That assumes that input array all have a ndim propery

Looks good, thanks @ablot!


Drives widget and sidebar not consistent when drives are added/removed

Describe the bug
Drives widget and sidebar don't update properly when drives are added/removed. Most commonly seen on the home page.
To Reproduce
Steps to reproduce the behavior:

Go to Home page.
Add or remove a drive.
Note the drives don't update.

Expected behavior
Drives should update.
Screenshots

Worked, but then crashed:

Didn't update, but didn't crash:

From a different directory, updated (plugging in), but then didn't update (unplugging). No crash:

Desktop

OS Version: Windows 10 2004 20246.1
App version: v<IP_ADDRESS>

Additional context

Clicking into the drive when removed obviously caused a crash.
Also had straight crashes when plugging in or unplugging drives sometimes.

Log file
debug.txt
debug_fulltrust.txt

@gave92 This still occurs in <IP_ADDRESS>. It doesn't seem to crash anymore, but unplugging a drive doesn't remove it from Files without a restart.
I tested again with 3 different USB drives, and it looks like the last one unplugged replaces the previous one.

Also of note, when I plugged all three in at the same time, only the first ones size/progress bar updated.

I can make a separate ticket for that, though it may be related to #2242.

The specific issues in this ticket have been addressed in <IP_ADDRESS>, though I know there are still issues detailed in #2406.


This repo doesn't have the hacktoberfest topic set

This is more of a meta issue: The repo doesn't have the hacktoberfest topic set, thus, it doesn't count towards hacktoberfest PRs. This would be ok, except that issues here are marked with the tag, so it doesn't make sense having the hacktoberfest Issue tag while not having the hacktoberfect topic set for the repository.

Hey @TheGLander, thanks for the heads up. I'm a far of hacktoberfest - even if it's caused quite a lot of spam this year - so I added the label.

Thanks, closing this


Always desugar the base type of an extension when serializing.

Cherry-pick of #6336 to the 3.1 branch to help with Apple-internal process.

@swift-ci Please test

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4045f740d2cb80f57ad52e27d850020f98906fcb
Test requested by - @jrose-apple

@swift-ci Please test Linux

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4045f740d2cb80f57ad52e27d850020f98906fcb
Test requested by - @jrose-apple

@swift-ci Please smoke test

@swift-ci Please test

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4045f740d2cb80f57ad52e27d850020f98906fcb
Test requested by - @jrose-apple

@swift-ci Please test macOS


Wrong order of Point Cloud fields.

In lines 96, 97 and 98 in https://github.com/smartmicro/smartmicro_ros2_radars/blob/a08720ba2294bb3271b9f24489e8adc4d14528ef/umrr_ros2_driver/src/smartmicro_radar_node.cpp#L90-L98
You have the following value order:

power
rcs
noise

But when actually building the PCL message here:
https://github.com/smartmicro/smartmicro_ros2_radars/blob/a08720ba2294bb3271b9f24489e8adc4d14528ef/umrr_ros2_driver/src/smartmicro_radar_node.cpp#L447-L451
You have the order:

rcs
noise
power

This applies also to all the other void SmartmicroRadarNode::targetlist_callback_*

Thanks for pointing this out. I am going to update this.


Icon Tokens

Description
Initial icon tokens added.
Token Diff
Tokens added (6):

icon-color-blue-primary-default
icon-color-green-primary-default
icon-color-inverse
icon-color-primary-default
icon-color-red-primary-default
icon-color-yellow-primary-default

Related Issue

DNA-1317 Update icon tokens

Motivation and Context
To prepare icon tokens for variables, we need to update SVG-native tokens:
Updated token values that will be imported for Token Studio:
icon-color-yellow-primary-default
Updated token values that won't be needed in Token Studio but have value updates:
icon-color-yellow-primary-hover
icon-color-yellow-primary-down
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.


Request for isolate message parameter in NativeDatabase.createInBackground()

I need to access the secret key for encrypting the database from a .env file in the setup callback function of NativeDatabase.createInBackground(). My problem is that you cannot access files from a non-root isolate, so i'd have to pass my secret through Isolate.spawn().
As of right now, there is no way to pass a custom message for the newly spawned isolate by NativeDatabase.createInBackground(). I would like to have access to that parameter. So far, I haven't found any other solution to ensure privacy for my pragma key.

My problem is that you cannot access files from a non-root isolate, so i'd have to pass my secret through Isolate.spawn().

Closures in recent Dart versions can be sent across isolates, so you can do
LazyDatabase _openConnection() {
  return LazyDatabase(() async {
    final dbFolder = await getApplicationDocumentsDirectory();
    final file = File(p.join(dbFolder.path, 'db.sqlite'));
    final secret = await loadMyDatabaseSecret();
    return NativeDatabase.createInBackground(
      file,
      setup: (rawDb) => rawDb.execute('pragma key = ?', [secret])
    );
  });
}

The secret will be transferred to the other isolate implicitly.
That said, you can also manage drift isolates yourself, which gives you full control over how the isolate is spawned.

I will try this tomorrow. Thanks for the quick reply!


[Bug] echarts-5.2.1.min.js:45 Uncaught TypeError: Cannot read properties of undefined (reading 'off')

Version
5.2.1
demo
demo URl:https://codesandbox.io/s/nifty-shtern-ppshj?file=/src/index.js
Link to Minimal Reproduction
No response
Steps to Reproduce
script 方式引入，绘制关系图。
Current Behavior

Expected Behavior
功能正常渲染
Environment
- OS:
- Browser:谷歌
- Framework:

Any additional comments?
No response

The coordinates of the error node is:

demo URl:https://codesandbox.io/s/nifty-shtern-ppshj?file=/src/index.js

when symbol is 'none' ，and then the mistakes occurred.

@Ovilia @plainheart May I ask how the issue is going now?

@pissang @Ovilia @plainheart Thanks for the fix, how soon will a new version be released, can I only use an earlier version at the moment?

@Cherry860 It will be released in next week if nothing unexpected happens


Save node location into csv to speed convergence to stable solution

Done, but doesn't appear to improve convergence speed.

The algorithm doesn't complete until the alpha cooling value is less than 0.005.
It does not check that nodes have not moved sufficiently that it can just stop.
But with redraw disabled it is reasonably fast to recalculate the layout.


Build python wheels for 3.11 and 3.12

Treats #606.
Configures the CI to also build wheels for Python 3.11 and 3.12.
After merging, I'd say we re-run the CI for 0.2.9 and use the 0.2.9.post1 post-release tag for the Python package. That way we don't have to create a whole new SDK release just for uploading the new wheels while also unblocking #606.

Note that the change in the readme won't be included in that 0.2.9.post1 release then. Because the CI will checkout the 0.2.9 tag, which didn't have the readme change yet.

Good point. Not an ideal situation but I think it's ok since the readme won't show up on PyPi. It's only visible when you browse the repo.

Thanks for the fast review @JssDWt. 🙌


ModuleNotFoundError: No module named 'binance.websocket.spot.websocket_api'

ModuleNotFoundError: No module named 'binance.websocket.spot.websocket_api'
pip install binance-connector.
Successfully installed autobahn-23.1.2 binance-connector-2.0.0 service-identity-21.1.0
When I tried the example of WebSocket, the ModuleNotFoundError was reported.
binance.websocket.spot.websocket_api and  binance.websocket.spot.websocket_stream were not found. SpotWebsocketClient of connector v1 and v2 is ok.
The codes are here:
from binance.websocket.spot.websocket_api import SpotWebsocketAPIClient # connector V3
from binance.websocket.spot.websocket_stream import SpotWebsocketStreamClient # connector V3
from binance.websocket.spot.websocket_client import SpotWebsocketClient # connector v1 and v2
import logging
import time
def message_handler(_, message):
logging.info(message)
my_client = SpotWebsocketAPIClient(on_message=message_handler)
my_client.ticker(symbol="BNBBUSD", type="FULL")
time.sleep(5)
logging.info("closing ws connection")
my_client.stop()
Actual behaviour
ModuleNotFoundError: No module named 'binance.websocket.spot.websocket_api'
Environment
Provide any relevant information about your setup, such as:

Version of binance-connector-python --2.0.0
Python version-- 3.7.13
Operating system-- window10

Please install the latest version; Websocket API is supported >= v3.x.x

@Vincent-299 @itayl2
binance-connector is the official package in PyPI: https://pypi.org/project/binance-connector/3.0.0rc2/#history
(Don't use binance-connector-python)
At this moment, version 3 is at the pre-release stage, but can still be download by doing:
pip uninstall binance-connector
pip install binance-connector --pre
Once we're certain version 3 can be released as a stable version, you'll be able to get it normally with pip install binance-connector.