feat(WEG-53): state in URL (WIP)

This PR makes the URL query params the source of truth for the filtered tags.

[x] add mapper function
[x] update lat/lng/zoom on map interaction
[x] display dots on map conditionally (if all the URL tags are present in the facilities' Schlagworte -> tricky because we have to create sort of an every expression with MapLibre's query language)
[x] style dots Berlin red

@vogelino, this is ready for review now!
Can you double-check if the correct tag filters are applied to the map without further interaction? I've had one or two occasions now where they actually didn't update, but I couldn't reproduce it every time.

Can you double-check if the correct tag filters are applied to the map without further interaction? I've had one or two occasions now where they actually didn't update, but I couldn't reproduce it every time.

Thx! Will do!

It seems you added the swr package. I just don't see where the swr dependency is use. Ignore if we do, please remove if we don't!

Actually I didn't add it, the diff visualization is bit misleading there (I added the use-debounce one line below). But it's true that we are not using it anymore so I have removed it!

We should try with the real filters once it's implemented though.

👍

Actually I didn't add it, the diff visualization is bit misleading there

True! Thx anyway! :)

:tada: This PR is included in version 1.0.0-rc.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Drop support for Python 3.2 base image.

This version is no longer supported in docker official library, virtualenv package also drops support for python version 3.0-3.2. So we remove this version from our library

SGTM


🐛[BUG] 编译报错

🐛 bug 描述

ERROR in ./node_modules/core-util-is/lib/util.js 86:0-52
Module not found: Error: Can't resolve 'buffer' in '/projects/node_modules/core-util-is/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
        - install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "buffer": false }

ERROR in ./node_modules/duplexer2/node_modules/safe-buffer/index.js 2:13-30
Module not found: Error: Can't resolve 'buffer' in '/projects/node_modules/duplexer2/node_modules/safe-buffer'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
        - install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "buffer": false }

ERROR in ./node_modules/multipipe/index.js 6:18-47
Module not found: Error: Can't resolve 'stream' in '/projects/node_modules/multipipe'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }

ERROR in ./node_modules/readable-stream/lib/_stream_readable.js 29:13-37
Module not found: Error: Can't resolve 'buffer' in '/projects/node_modules/readable-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
        - install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "buffer": false }

ERROR in ./node_modules/readable-stream/lib/_stream_readable.js 41:13-30
Module not found: Error: Can't resolve 'stream' in '/projects/node_modules/readable-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }

ERROR in ./node_modules/readable-stream/lib/_stream_writable.js 29:13-37
Module not found: Error: Can't resolve 'buffer' in '/projects/node_modules/readable-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
        - install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "buffer": false }

ERROR in ./node_modules/readable-stream/lib/_stream_writable.js 39:13-30
Module not found: Error: Can't resolve 'stream' in '/projects/node_modules/readable-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }

ERROR in ./node_modules/readable-stream/readable.js 1:13-30
Module not found: Error: Can't resolve 'stream' in '/projects/node_modules/readable-stream'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }

ERROR in ./node_modules/readable-stream/readable.js 10:2-36
Module not found: Error: Can't resolve 'stream' in '/projects/node_modules/readable-stream'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }

ERROR in ./node_modules/string_decoder/index.js 22:13-37
Module not found: Error: Can't resolve 'buffer' in '/projects/node_modules/string_decoder'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
        - install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "buffer": false }

ERROR in ./node_modules/through/index.js 1:13-30
Module not found: Error: Can't resolve 'stream' in '/projects/node_modules/through'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }

© 版本信息

antd-style 版本: [e.g. 3.4.4]
浏览器环境
开发环境 [e.g. mac OS]

🚑 其他信息
添加antd-style就会报错，移除就恢复正常

跟你构建环境有关吧？用了 webpack5 吗？

参考下 https://github.com/ant-design/antd-style/issues/36

参考下 #36

我用的 craco，请问这个有解决方案么？🙏

craco 7.1.0

craco 7.1.0

应该是一样的，你仔细看下。核心逻辑就是排除node侧依赖

yarn add buffer stream-browserify -D
修改craco.config.js

module.exports = {
    webpack: {
        configure: (webpackConfig, { env, paths }) => {
            return {
                ...webpackConfig,
                resolve: {
                    ...webpackConfig.resolve,
                    fallback: {
                        ...webpackConfig.resolve.fallback,
                        buffer: require.resolve('buffer'),
                        stream: require.resolve('stream-browserify'),
                    },
                },
            };
        },
    },
};


Show package hierarchy

Codecov Report
Attention: 33 lines in your changes are missing coverage. Please review.

Comparison is base (4be7bc9) 71.89% compared to head (af5b2b1) 71.98%.

Files
Patch %
Lines

.../PackageResolution/ResolvePackageRequestVisitor.cs
74.19%
2 Missing and 6 partials :warning:

...Get.Commands/Mirroring/PackageMirroringExecutor.cs
70.58%
2 Missing and 3 partials :warning:

...mmands/PackageResolution/PackageRequestResolver.cs
82.35%
1 Missing and 2 partials :warning:

...te.NuGet.Commands/Promote/PromotePackageCommand.cs
62.50%
2 Missing and 1 partial :warning:

...te.NuGet.Commands/Requests/LatestPackageRequest.cs
57.14%
2 Missing and 1 partial :warning:

...ote.NuGet.Commands/Requests/ExactPackageRequest.cs
80.00%
0 Missing and 2 partials :warning:

...et.Commands/Requests/VersionRangePackageRequest.cs
83.33%
0 Missing and 2 partials :warning:

...mote.NuGet/Promote/List/PackageDescriptorParser.cs
50.00%
2 Missing :warning:

src/Promote.NuGet/Promote/PromotePackageLogger.cs
75.00%
2 Missing :warning:

...omConfiguration/PromoteFromConfigurationCommand.cs
50.00%
1 Missing :warning:

... and 2 more

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #13      +/-   ##
==========================================
+ Coverage   71.89%   71.98%   +0.08%
==========================================
  Files          34       36       +2
  Lines         733      746      +13
  Branches      125      126       +1
==========================================
+ Hits          527      537      +10
- Misses        115      118       +3
  Partials       91       91

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


⚠ ClamAV has degraded performance

In 4dce942, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 84 ms

Resolved: ClamAV performance has improved in 08d3cb8 after 17 minutes.


 This is because the AOM may have been turned off intentionally, e.g. if someone is doing work on that laser. or in that optical path.
When the AOM is off and the differential mode is selected, there should be some explicit notification that differential mode is not active. Print statements don't work in kernel mode. I chatted with Haoran and he floated the idea of writing some function in the server code that achieves this.
          If the repump AOM is off, the user mode should not be able to change to differential mode.

Originally posted by @royaready in https://github.com/Jayich-Lab/jax/pull/80#discussion_r1162221948

rpc with async to print can be used here.


libmusicbrainz5: use sha256 instead of md5

Motivation for this change
This fixes the recently added deprecation warning.
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Would you be able to update the library as well?

I guess it is intended that it defaults to 3.x.x? Or are referring to something else?

I mean, this is libmusicbrainz 5.0.1, 5.1.0 is the latest version.

oh, I can I guess.

Awesome, thank you :)

Done!


Undo doesn't work correctly after a while in map editor

Reported by @den1604
Since 0.5.3

Might be related to me using a QWERTZ keyboard?
Unsure, noone else seems to have had this problem to my recollection.


Dev

fixed gh equation, gh now based on wind speed (m/s) added rain and pressure values to weather dataset, only looking at 2021 mesonet data

updates to gh equation, wind speed, kiowa mesonet data (asos), and pressure equation


[typography] Images

[X] I have searched the Issues to see if this bug has already been reported
[X] I have tested the latest version

Summary
Create the Heading components as https://flowbite.com/docs/typography/images/
Aside from the components, the PR must have:

[ ] Documentation
[ ] Storybook
[ ] Unit tests

Context
Make sure that it should also support NextJS Image

I will take this on

@rluders  have you encountered this error, No story files found for the specified pattern: src***.mdx, my storybook is failing to run

@OKELLOMARVIN well... check this


Rearrange email settings and add helpers

moves the settings for email around a bit and adds helpers. Will comment further on the lines that changed

ok this is based on the other branch so for simplicity's sake I'll go ahead and merge it into that branch since it's all approved and updated


docs: add Google Cloud Samples browser link to readme template

Adding a generic Google Code Sample link to the readme template.
This is for the benefit of the users, in navigating available Google Cloud code samples.

Thank you @amanda-tarafa


sort(Comparator) overload on lists with specialized comparator

I was expecting to find methods like
interface IntList {
  default void sort(IntComparator c) {
    sort((Comparator<Integer>) c);
  }
}

on each specialized list. With the built-in subtypes offering actual implementations.
Right now it's very easy to call sort(Collections.naturalOrder()) and get destroyed by boxing.

But that would imply implementing a sort for each kind of list (!). If you need to sort an array-based list, just sort l.elements() from 0 to l.size()...

Would it? You should be able to re-use the Arrays int-based sort for everything except longs. It would only need a new version for longs.
For IntList you can implement it entirely in the default method as something like:
default void sort(IntComparator c) {
  Arrays.sort(0, size(), IntSwapper.instance(), c);
}

For everything else except longs, you can still use the int sort with a swapper and comparator wrapper that widens (although it shouldn't actually widen because they're all ints in the JVM once on the stack).
For longs you'd do that same as ints, but with a new long-based sort with a long swapper and long comparator.

Oh, you're right. I'm going this now.

Can you re-open the bug so that I can track when it's closed?
And thanks for working on this!

It has actually been done by @techsy730 . Should be out now on Maven (or clone the repository). Let me know if it works for you...

Oh that's even better. Thanks again!


Falsche Werte bei Preisgrenze Netzladen

Describe the bug
Seit gestern habe ich die nachfolgenden Werte zur Auswahl:

Steps to reproduce
Preisgrenze Netzladen für Batterie als auch Auto
Configuration details
network:
  # schema is the HTTP schema
  # setting to `https` does not enable https, it only changes the way URLs are generated
  schema: http
  # host is the hostname or IP address
  # if the host name contains a `.local` suffix, the name will be announced on MDNS
  # docker: MDNS announcements don't work. host must be set to the docker host's name.
  host: evcc.local
  # port is the listening port for UI and api
  # evcc will listen on all available interfaces
  port: 7070

interval: 30s # control cycle interval. Interval <30s can lead to unexpected behavior, see https://docs.evcc.io/docs/reference/configuration/interval

# database configuration for persisting charge sessions and settings
# database:
#   type: sqlite
#   dsn: <path-to-db-file>

# sponsor token enables optional features (request at https://sponsor.evcc.io)
sponsortoken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJldmNjLmlvIiwic3ViIjoiQWFyb25HOTAiLCJleHAiOjE4MDI2MTAwMDAsImlhdCI6MTcwODAwMjAwMCwic3JjIjoiZ2gifQ._mvBVnztvdjbiQzRXbPdtvHIFr6gmgwTIxigSgVJ7UM

# telemetry enables aggregated statistics
#
# Telemetry allows collecting usage data (grid and green energy, charge power).
# Data is aggregated, no individual charging sessions are tracked. The collected,
# anonymous data can be retrieved using https://api.evcc.io.
#
# See https://github.com/evcc-io/evcc/pull/4343 or details.
#
# For time being, this is only available to sponsors, hence data is associated with
# the sponsor token's identity.
#
# telemetry: true

# log settings
log: info
levels:
  site: debug
  lp-1: debug
  lp-2: debug
  cache: error
  db: error

# modbus proxy for allowing external programs to reuse the evcc modbus connection
# each entry will start a proxy instance at the given port speaking Modbus TCP and
# relaying to the given modbus downstream device (either TCP or RTU, RS485 or TCP)
modbusproxy:
  #  - port: 5200
  #    uri: solar-edge:502
  #    # rtu: true
  #    # readonly: true # use `deny` to raise modbus errors

# meter definitions
# name can be freely chosen and is used as reference when assigning meters to site and loadpoints
# for documentation see https://docs.evcc.io/docs/devices/meters
meters:
- type: template
  template: huawei-dongle-powersensor
  id: 1
  host: <IP_ADDRESS>
  port: 502
  usage: grid
  modbus: tcpip
  name: grid1
- type: template
  template: huawei-dongle-powersensor
  id: 1
  host: <IP_ADDRESS>
  port: 502
  usage: pv
  modbus: tcpip
  name: pv2
- type: template
  template: huawei-dongle-powersensor
  id: 1
  host: <IP_ADDRESS>
  port: 502
  usage: battery
  modbus: tcpip
  name: battery3

# charger definitions
# name can be freely chosen and is used as reference when assigning charger to vehicle
# for documentation see https://docs.evcc.io/docs/devices/chargers
chargers:
- type: template
  template: abl
  id: 1
  host: <IP_ADDRESS>
  port: 502
  modbus: rs485tcpip
  name: wallbox5

# vehicle definitions
# name can be freely chosen and is used as reference when assigning vehicle to loadpoint
# for documentation see https://docs.evcc.io/docs/devices/vehicles
vehicles:
- type: template
  template: tesla-command
  title: Model Y
  accessToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InE0dHg3Q1UyYzI2V1BiemwxZjZjanM3QnhzayJ9.eyJpc3MiOiJodHRwczovL2F1dGgudGVzbGEuY29tL29hdXRoMi92My9udHMiLCJhenAiOiIwOGZmODI3ZmEzMWItNGVhNi1iZWQxLTgxN2JlMGFiNDBjOCIsInN1YiI6IjM1MDEwN2M1LTdmMzMtNDliZi04MjQ2LWViNDU5ZDVkMTk5OCIsImF1ZCI6WyJodHRwczovL2ZsZWV0LWFwaS5wcmQubmEudm4uY2xvdWQudGVzbGEuY29tIiwiaHR0cHM6Ly9mbGVldC1hcGkucHJkLmV1LnZuLmNsb3VkLnRlc2xhLmNvbSIsImh0dHBzOi8vYXV0aC50ZXNsYS5jb20vb2F1dGgyL3YzL3VzZXJpbmZvIl0sInNjcCI6WyJvcGVuaWQiLCJvZmZsaW5lX2FjY2VzcyIsInVzZXJfZGF0YSIsInZlaGljbGVfZGV2aWNlX2RhdGEiLCJ2ZWhpY2xlX2NtZHMiLCJ2ZWhpY2xlX2NoYXJnaW5nX2NtZHMiXSwiYW1yIjpbInB3ZCIsIm1mYSIsIm90cCJdLCJleHAiOjE3MDgwMzkxOTMsImlhdCI6MTcwODAxMDM5Mywib3VfY29kZSI6IkVVIiwibG9jYWxlIjoiZGUtREUiLCJhdXRoX3RpbWUiOjE3MDgwMTAzOTJ9.FJqspQctfb9JEm4TI4vjQhpJ7N1RBzEPyISKHuXinGaBFfO1bDbIolQ_g19JBLMnRHMwd_vNPKt03e26vRQedqL5Nq4I1aKqFAhK74sic4oAr0Wrjp63JHCix3FWwupZeH6nJn74KoqkczNmgv7Y0Xz2HRWLFC-Z6RRevhabus1qxqqCqi54sOXx3ik6gkQPhrMTiFhgr6-5GsAkGoYqt4Dj4l5UbE5-Ir5GQ2dVNjZ7EISaE3xtdTOQRrNVxN2h-kYZSoA593GL6BCA4tcX7UOUbwphYuP5ZprQChFfZ19zEl7ivJb0-njd0ouNjaWjqHsk74rxN-pvkjTmU5fBug
  refreshToken: EU_6d412563b68bbb6ad9f752bab587b516f2333097f07cb57cb8de81f30c208879
  capacity: 82
  name: ev4
  mode: pv # enable PV-charging when vehicle is identified

# site describes the EVU connection, PV and home battery
site:
  title: Zuhause
  meters:
    grid: grid1
    pv:
    - pv2
    battery:
    - battery3

# loadpoint describes the charger, charge meter and connected vehicle
loadpoints:
- title: Garage
  charger: wallbox5
  vehicle: ev4
  mode: pv
  phases: 3
  mincurrent: 6
  maxcurrent: 16

# tariffs are the fixed or variable tariffs
tariffs:
  currency: EUR # three letter ISO-4217 currency code (default EUR)
  grid:
    # either static grid price (or price zones)
    # type: fixed
    # price: 0.2893 # EUR/kWh
    # zones:
    #  - days: Mon-Fri
    #    hours: 2-5
    #    price: 0.2 # EUR/kWh
    #  - days: Sat,Sun
    #    price: 0.15 # EUR/kWh

    # or variable tariffs
    type: tibber
    token: "AmgysyZ-4ju52qoNRbTcH_cHEdN6R27qRXXFggv3Zlg" # access token
    # homeid: "cc83e83e-8cbf-4595-9bf7-c3cf192f7d9c" # optional if multiple homes associated to account

    # type: awattar
    # region: de # optional, choose at for Austria
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: octopusenergy
    # tariff: AGILE-FLEX-22-11-25 # Tariff code
    # region: A # optional

    # type: elering # Nordpool
    # region: ee # or lt, lv, fi
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: energinet # Energinet using the price in DKK
    # region: dk1 # or dk2
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: entsoe # Entso-E european market data
    # domain: BZN|DE-LU # https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_areas
    # securitytoken: # api token
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: custom # price from a plugin source; see https://docs.evcc.io/docs/reference/plugins
    # price:
    #   source: http
    #   uri: https://example.org/price.json
    #   jq: .price.current

  feedin:
    # rate for feeding excess (pv) energy to the grid
    type: fixed
    price: 0.08 # EUR/kWh

    # type: octopusenergy
    # tariff: AGILE-FLEX-22-11-25 # Tariff code
    # region: A # optional
  co2:
    # co2 tariff provides co2 intensity forecast and is for co2-optimized target charging if no variable grid tariff is specified
    # type: grünstromindex # GrünStromIndex (Germany only)
    # zip: <zip>

    # type: electricitymaps # https://app.electricitymaps.com/map
    # uri: <uri>
    # token: <token> # needs to be a token with forecast (not in the free tier)
    # zone: DE

    # type: ngeso # National Grid Electricity System Operator data (United Kingdom only) https://carbonintensity.org.uk/
    # provides national data if both region and postcode are omitted - do not supply both at the same time!
    # region: 1 # optional, coarser than using a postcode - see https://api.carbonintensity.org.uk/ for full list
    # postcode: SW1A1AA # optional

# mqtt message broker
mqtt:
  # broker: localhost:1883
  # topic: evcc # root topic for publishing, set empty to disable
  # user:
  # password:

# influx database
influx:
  # url: http://localhost:8086
  # database: evcc
  # user:
  # password:

# eebus credentials
eebus:
  # uri: # :4712
  # interfaces: # limit eebus to specific network interfaces
  # - en0
  # certificate: # local signed certificate, required, can be generated via `evcc eebus-cert`
  #   public: # public key
  #   private: # private key

# push messages
messaging:
  events:
    start: # charge start event
      title: Charge started
      msg: Started charging in "${mode}" mode
    stop: # charge stop event
      title: Charge finished
      msg: Finished charging ${chargedEnergy:%.1fk}kWh in ${chargeDuration}.
    connect: # vehicle connect event
      title: Car connected
      msg: "Car connected at ${pvPower:%.1fk}kW PV"
    disconnect: # vehicle connected event
      title: Car disconnected
      msg: Car disconnected after ${connectedDuration}
    soc: # vehicle soc update event
      title: Soc updated
      msg: Battery charged to ${vehicleSoc:%.0f}%
    guest: # vehicle could not be identified
      title: Unknown vehicle
      msg: Unknown vehicle, guest connected?
  services:
  # - type: pushover
  #   app: # app id
  #   recipients:
  #   - # list of recipient ids
  # - type: telegram
  #   token: # bot id
  #   chats:
  #   - # list of chat ids
  # - type: email
  #   uri: smtp://<user>:<password>@<host>:<port>/?fromAddress=<from>&toAddresses=<to>
  # - type: ntfy
  #   uri: https://<host>/<topics>
  #   priority: <priority>
  #   tags: <tags>

Log details
n/a

What type of operating system are you running?
Docker container
Nightly build

[X] I have verified that the issue is reproducible with the latest nightly build

Version
No response

Das liegt daran das die Hochs und Tiefs so weit auseinander liegen. (Skalierungseffekt)
Hier ist schon ein Thread eröffnet und eine Lösung wird wohl bald erscheinen.
https://github.com/evcc-io/evcc/issues/17093

Perfekt, danke dir!


Fixes unsolved comments in azure-spring-cloud-4.0

Update dependencies, and sync in external_dependencies.txt:

Use spring-context instead of spring-core in azure-spring-cloud-autoconfigure
Remove spring-boot-starter-validation in azure-spring-cloud-starter
Remove cloud sql dependencies(unsed)
The first commit is in cloud starter commit, but the remove commit didn't remove the cloud SQL dependencies together.

/azp run java - spring - tests

/azp run java - spring - tests


local must come after -c in ansible-playbook command line

I hit an error when trying to execute this command as documented:
ansible-playbook -i "local," -c -K local rackhd_local.yml
I believe the "local" is supposed to come after the "-c".  Otherwise, I get the error "ERROR: the playbook: local could not be found"

Thanks @johren !
+1

:+1:


[Feature]: Log flush output before crash

Describe the solution you'd like

Implement process-level recovery, and flush logs after catch exceptions.

Additional context
Considering performance, the service log is output asynchronously by default. When a crash occurs, the last log may not be flushed to the disk in time, making it difficult to locate the problem.

Hello @true1064, this problem still exists?

https://github.com/cubefs/cubefs/blob/145d67b955833c73e9c7fbbbba75d4eb89de2332/cmd/cmd.go#L219
It seems that this feature has been implemented.

https://github.com/cubefs/cubefs/blob/145d67b955833c73e9c7fbbbba75d4eb89de2332/cmd/cmd.go#L219
It seems that this feature has been implemented.

You are right.

https://github.com/cubefs/cubefs/blob/145d67b955833c73e9c7fbbbba75d4eb89de2332/cmd/cmd.go#L219
It seems that this feature has been implemented.

You are right.
this problem still exists:
if child goroutine occurs panic and cause the process exit abnormally，the defer log.LogFlush()  will not execute because it's not in a recover() block.
@NaturalSelect @setcy

https://github.com/cubefs/cubefs/blob/145d67b955833c73e9c7fbbbba75d4eb89de2332/cmd/cmd.go#L219
It seems that this feature has been implemented.

You are right.
this problem still exists:
if child goroutine occurs panic and cause the process exit abnormally，the defer log.LogFlush()  will not execute because it's not in a recover() block.
@NaturalSelect @setcy

@true1064 I will try to figure out what happended.

It seems that adding defer to each coroutine is the only way to solve the problem.
runtime.addExitHook will never work when panic.

@true1064 Inline hook works on this problem. But it looks a little dangerous.
┌──(nature㉿LAPTOP-9TS0FG11)-[~/cubefs]
└─$ ./build/bin/cfs-server -f -c ~/disk/conf/data1.conf
panic: I'm panic

goroutine 71 [running]:
github.com/cubefs/cubefs/util/errors.hookedPanic({0x16d6a40, 0x1eec3f0})
        util/errors/panichook.go:38 +0x77
main.main.func2()
        cmd/cmd.go:251 +0x3f
created by main.main
        cmd/cmd.go:248 +0xd59

┌──(nature㉿LAPTOP-9TS0FG11)-[~/cubefs]
└─$ cat ~/disk/data1/logs/dataNode/dataNode_error.log
2023/12/10 00:06:26.961475 [ERROR] cmd.go:250: You should see me in log file

cmd.go:
func main() {
	flag.Parse()

	Version := proto.DumpVersion("Server")
	if *configVersion {
		fmt.Printf("%v", Version)
		os.Exit(0)
	}

	/*
	 * LoadConfigFile should be checked before start daemon, since it will
	 * call os.Exit() w/o notifying the parent process.
	 */
	cfg, err := config.LoadConfigFile(*configFile)
	if err != nil {
		daemonize.SignalOutcome(err)
		os.Exit(1)
	}

	if !*configForeground {
		if err := startDaemon(); err != nil {
			fmt.Printf("Server start failed: %v\n", err)
			os.Exit(1)
		}
		os.Exit(0)
	}

	/*
	 * We are in daemon from here.
	 * Must notify the parent process through SignalOutcome anyway.
	 */

	role := cfg.GetString(ConfigKeyRole)
	logDir := cfg.GetString(ConfigKeyLogDir)
	logLevel := cfg.GetString(ConfigKeyLogLevel)
	logRotateSize := cfg.GetInt64(ConfigKeyLogRotateSize)
	logRotateHeadRoom := cfg.GetInt64(ConfigKeyLogRotateHeadRoom)
	profPort := cfg.GetString(ConfigKeyProfPort)
	umpDatadir := cfg.GetString(ConfigKeyWarnLogDir)
	buffersTotalLimit := cfg.GetInt64(ConfigKeyBuffersTotalLimit)
	logLeftSpaceLimitStr := cfg.GetString(ConfigKeyLogLeftSpaceLimit)
	logLeftSpaceLimit, err := strconv.ParseInt(logLeftSpaceLimitStr, 10, 64)
	if err != nil || logLeftSpaceLimit == 0 {
		log.LogErrorf("logLeftSpaceLimit is not a legal int value: %v", err.Error())
		logLeftSpaceLimit = log.DefaultLogLeftSpaceLimit
	}
	// Init server instance with specified role configuration.
	var (
		server common.Server
		module string
	)
	switch role {
	case RoleMeta:
		server = metanode.NewServer()
		module = ModuleMeta
	case RoleMaster:
		server = master.NewServer()
		module = ModuleMaster
	case RoleData:
		server = datanode.NewServer()
		module = ModuleData
	case RoleAuth:
		server = authnode.NewServer()
		module = ModuleAuth
	case RoleObject:
		server = objectnode.NewServer()
		module = ModuleObject
	case RoleConsole:
		server = console.NewServer()
		module = ModuleConsole
	case RoleLifeCycle:
		server = lcnode.NewServer()
		module = ModuleLifeCycle
	default:
		err = errors.NewErrorf("Fatal: role mismatch: %s", role)
		fmt.Println(err)
		daemonize.SignalOutcome(err)
		os.Exit(1)
	}

	// Init logging
	var (
		level log.Level
	)
	switch strings.ToLower(logLevel) {
	case "debug":
		level = log.DebugLevel
	case "info":
		level = log.InfoLevel
	case "warn":
		level = log.WarnLevel
	case "error":
		level = log.ErrorLevel
	case "critical":
		level = log.CriticalLevel
	default:
		level = log.ErrorLevel
	}
	rotate := log.NewLogRotate()
	if logRotateSize > 0 {
		rotate.SetRotateSizeMb(logRotateSize)
	}
	if logRotateHeadRoom > 0 {
		rotate.SetHeadRoomMb(logRotateHeadRoom)
	}
	_, err = log.InitLog(logDir, module, level, rotate, logLeftSpaceLimit)
	if err != nil {
		err = errors.NewErrorf("Fatal: failed to init log - %v", err)
		fmt.Println(err)
		daemonize.SignalOutcome(err)
		os.Exit(1)
	}
	defer log.LogFlush()
	errors.AtPanic(func() {
		log.LogFlush()
	})
	go func() {

		log.LogErrorf("You should see me in log file")
		panic("I'm panic")
	}()
	time.Sleep(time.Second * 1)
        ...
}


Setting NODE_UNC_HOST_ALLOWLIST does not work

Steps:

make sure no security.allowedUNCHosts is configured
configure an environment variable NODE_UNC_HOST_ALLOWLIST to be localhost
restart Windows
run code --user-data-dir \\localhost\c$\Users\<name>\Desktop\some-empty-folder
VS Code should open fine
open a folder such as vscode
make sure extensions work (e.g. typescript) and you can change user settings

Thanks for the workaround, that gets me running vscode (at all).
I note that to run code against the current directory, I  (now) have to type:
code --user-data-dir "\some\empty\directory" .
rather than:
code .

Just can't open my files residing on \<IP_ADDRESS>\SambaPi any more. Worked this morning.
What can I do? I can't work any more!

I see the fix is merged to release and main branches. Hence closing.

It worked until I set update mode to none and tried reloading. The program wasn't able to reload, so I re-ran the command on the now-non-empty user data dir. After that, I noticed that my settings weren't saved successfully, and that I wasn't able to edit any more settings such as the tab size.

@rzhao271 I cannot reproduce, are you sure the environment variable was still set?
Here is what I do:

And from the downloaded x64 archive, run:
bin\code --user-data-dir \\localhost\c$\Users\bpasero\Desktop\foo-ws

I can still reproduce the issue on the candidate Stable (User) build. The environment variable is set, too.

Launch with an empty user data dir with a path formatted like in the comments above.
Change update.mode to none. Reload when prompted.
Wait for the program to reopen. Open settings and search for update.mode.
:bug: The setting didn't update.
Try to update another setting.
:bug: The settings file isn't able to update.

I wasn't able to repro the issue using the Archive build.
I've attached a verbose log for the User build.
verbose.log

This is also working fine for me, so I'll call it verified

Looks like I was using the wrong version to test this issue, because I downgraded while trying to test another issue.
Confirmed and verified.

Hi guys, I get crazy with that!
I added the environment variable,. rebootet Win10 and restartet VSCode.
Next I open my \<IP_ADDRESS>\SambaPi path in a separate Explorer window.
Now I drag one of my javascript files onto the editoe and saw the message displayed below.
Did you guys have any idea how I can make this work again?

I develop on a remote Linux system and accessed all my files like that until yesterday :-(
Help would be appreciated.
Best DrCWO

Keep in mind that the environment variable needs to be a \ separated string. So for example server-a\server-b for server-a and server-b.

Thanks' for the hint but still no success:
Here the environment variable:

Here what I get if I drag the file into vscode:

And this is my window in Explorer where I drag the source to the main window of vscode...

Any ideas what else I can do to make it work again?

Is there a wav in vscode to see which servers are allowed?

Can you wait for the 1.78.2 release later today and try again.

Tested with 1.78.2 right now but the issue persists :-(
Did I miss anything?

Or do anything else but setting the Environment variable???

Can you try to reproduce with our nightly insider builds? You can give our preview releases a try from: https://code.visualstudio.com/insiders/

Ok, downloaded it started it .
Version: 1.79.0-insider (user setup)
Commit: 2575777b9d3cdb865d61f9f1dfaac1fea9e1bde6
Date: 2023-05-12T05:21:06.392Z
Electron: 22.5.2
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045
Sandboxed: Yes
Bahavior changed...

I said that it shall open and the setting should be remembered.
Next I saw that:

So except of the additional dialog no improvement :-(

Just to summarise: can you post the exact contents of your NODE_UNC_HOST_ALLOWLIST environment variable and the exact contents of your security.allowedUNCHosts setting?

Here the setting for the environment variable.

But where is security.allowedUNCHosts. I never had set that anywhere???
All I want that vscode works as before...

You will only have to configure NODE_UNC_HOST_ALLOWLIST in rare cases where a setting cannot be configured otherwise, for example when your VS Code application data directory is on a UNC drive. For most cases:

you can remove the variable
you open settings and find the Security entry
you add the 3 IP addresses as allowed host to the UNC host allow list

Setting the hosts in the security settings did the trick!
This also works in v1.78.2.
Thank you very much for your support 🥇

What host do we need to enter? is it the name of the NFS server in the case of NFS? So far this solution of adding a host to the security setting is not working for me with version 1.78.2.


Why rewrite data_loder

Hi~
I am very curious why do you don't use the oringin data_loder by pytorch ,and rewrite it by yourself?
Maybe it can speed up the speed of loading data?
If it can , can you tell me how much faster it is ?

Hello,
We are using customized dataloader for our MDSR model.
As MDSR model is trained with varying scales of patches (for example, 48x48->96x96 and 48x48->192x192), we just add some lines to ensure that the dataloder can return a proper batch (we cannot put 48x48->96x96 and 48x48->192x192 samples in one batch).
It is not that different from the PyTorch's original code, and you can find the difference at here.
I know some people may have a problem as PyTorch has changed its dataloader implementation several times.
If you are not going to train the MDSR, you can replace the dataloader to PyTorch's default version.
Thank you!

Yes~ Thank you for your share.


added js-flie as database

added Pets.js file to hold all the pets' details and an image.js script to loop and display all cards.
optimize CSS and change layout but maintain the same style.
update readme file.
feel free to ask me if you don't understand any of my codes.

The idea is great because the index.html keeps getting longer and longer. But I have a few suggestions. Some contributors have added multiple personality traits for their pets. Some added 2 traits, while others added 5. Instead of deleting the data given by contributors, we used js code snippet to add a scroll bar if someone adds more than 3 traits. This way, all the cards have the same height. To improve the look, the owner's name would be better in white instead of purple or blue, as they don't stand out well against the background. Also, aligning the personality traits to the left instead of centering them would look nicer because they have different lengths. I also suggest using the same font size for all the card sections, including the personality traits. Lastly, adding some space between the title and the data would be a good idea such as Favourite toy: Willow balls instead of Favourite toy:Willow balls

Well Have I have some of these things you mentioned in mind and would work on them bit by bit this commits i just focus on the building the file as database and the UI is the next.

check the updates and so i can start working the UI


CachedConfigCollection is written to disk on every page load

Another attempt at fixing https://github.com/silverstripe/silverstripe-config/issues/34

@GuySartorelli yes that makes sense, it the current test, some changes are made, and therefore, it's still written twice
to prove that what i did does something, a unit test should be added where no changes are made and no extra write happens.

Sweet. I think that's the only thing holding this PR up now. Do you feel comfortable writing that test?

@GuySartorelli ok, added the test. It's not very intuitive because any ->get calls update the callCache in the unit tests (so even if you don't actively ->set anything, you still get a write on destruct). It's only once the callCache is already warmed up that no more write will occur.

@GuySartorelli any other wishes :-) ?

This PR is in our peer review column, just waiting for someone on the team to free up to take a proper look.

@emteknetnz ok i've split the test and renamed them in a more meaningful way


Refactor HomePage's script

Moved the HomePage's JavaScript functions from the site.js to its own file, then referenced the script in the Razor HTML file. Better SOC this way, as suggested by @rlayman87.

@rlayman87 you merged this code on behalf of @colewinfield while my comment was unresolved and the requested code change was in-complete. The js function needs to be removed as it has been replaced with css. Please be more diligent when merging others work into master and development.
cc @dyohn

@rlayman87 you merged this code on behalf of @colewinfield while my comment was unresolved and the requested code change was in-complete. The js function needs to be removed as it has been replaced with css. Please be more diligent when merging others work into master and development.
cc @dyohn

Hi, @jonnywwright
You had approved this change. If you were waiting on changes, you should have used the "Comment" or "Request changes" option

instead of "Approve", so it would have been clear to everyone that you were waiting on changes. But ultimately, I do agree with @colewinfield, it's not a big deal and he can just make that change with his next commit and merge he is working on.
Please let me know if you have any additional questions or comments.
Thank you!
Rachel

@rlayman87 you merged this code on behalf of @colewinfield while my comment was unresolved and the requested code change was in-complete. The js function needs to be removed as it has been replaced with css. Please be more diligent when merging others work into master and development.
cc @dyohn

Hi, @jonnywwright You had approved this change. If you were waiting on changes, you should have used the "Comment" or "Request changes" option  instead of "Approve", so it would have been clear to everyone that you were waiting on changes. But ultimately, I do agree with @colewinfield, it's not a big deal and he can just make that change with his next commit and merge he is working on. Please let me know if you have any additional questions or comments. Thank you! Rachel

Ah I see, and thanks for showing me that. I will be sure to use Request Changes to help prevent these mistakes in the future.
cc @dyohn

@rlayman87 you merged this code on behalf of @colewinfield while my comment was unresolved and the requested code change was in-complete. The js function needs to be removed as it has been replaced with css. Please be more diligent when merging others work into master and development.
cc @dyohn

Hi, @jonnywwright You had approved this change. If you were waiting on changes, you should have used the "Comment" or "Request changes" option  instead of "Approve", so it would have been clear to everyone that you were waiting on changes. But ultimately, I do agree with @colewinfield, it's not a big deal and he can just make that change with his next commit and merge he is working on. Please let me know if you have any additional questions or comments. Thank you! Rachel

Ah I see, and thanks for showing me that. I will be sure to use Request Changes to help prevent these mistakes in the future.
cc @dyohn

@jonnywwright not a problem.


Increase memory

Goal
Fix ratio memory/core after deployment reconfiguration. We anticipate the ML model that takes most of the space to grow in the next version. Also, I think it's better to be on the safe side and have lower memory utilization than 70%. The model is reloaded periodically and updated by metaflow. It can suddenly become slightly larger. Even though we have some checks for its size in the reloading code we do not want to end up with OOM, it's better to leave some buffer.
Also, update CI orb.

Updated to 12GB instead of 16 since it's not clear whether we need to accommodate a larger HybridCF model in near future


Performance regression in react-hook-form from 4.4 to 4.5

I'm experiencing the same issue. With 4.5.2 it takes 2 minutes to simply load a type hint on hover (Controller from react-hook-form in this particular case). Our project is indeed huge, but the same operation with vs code's built-in 4.4.3 is instant.
I have no idea what's happening under the hood, but these are the two things from the server log that look very slow in 4.52:

"command":"geterr" - almost two minutes until "event":"requestCompleted" against ~10ms for 4.4.3
44::encodedSemanticClassifications-full: elapsed time (in milliseconds)<PHONE_NUMBER> against less than 1s first time and less than 10ms later for 4.4.3

Part of TS 4.5.2 server log
Info 2001 [19:47:33.826] request:
    {"seq":41,"type":"request","command":"geterr","arguments":{"delay":0,"files":["/Users/aleksei.tsikov/git/project/src/Component.tsx"]}}
Perf 2002 [19:47:33.827] 41::geterr: async elapsed time (in milliseconds) 0.3917
Info 2003 [19:47:33.828] event:
    {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","diagnostics":[]}}
Info 2004 [19:49:29.994] event:
    {"seq":0,"type":"event","event":"requestCompleted","body":{"request_seq":41}}
Info 2005 [19:49:29.996] request:
    {"seq":42,"type":"request","command":"getApplicableRefactors","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","startLine":1,"startOffset":1,"endLine":1,"endOffset":1}}
Perf 2006 [19:49:30.009] 42::getApplicableRefactors: elapsed time (in milliseconds) 13.2598
Info 2007 [19:49:30.009] response:
    {"seq":0,"type":"response","command":"getApplicableRefactors","request_seq":42,"success":true,"body":[{"name":"Convert export","description":"Convert default export to named export","actions":[{"name":"Convert default export to named export","description":"Convert default export to named export","kind":"refactor.rewrite.export.named","notApplicableReason":"Could not find export statement"},{"name":"Convert named export to default export","description":"Convert named export to default export","kind":"refactor.rewrite.export.default","notApplicableReason":"Could not find export statement"}]},{"name":"Convert import","description":"Convert namespace import to named imports","actions":[{"name":"Convert namespace import to named imports","description":"Convert namespace import to named imports","kind":"refactor.rewrite.import.named","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Convert import","description":"Convert named imports to namespace import","actions":[{"name":"Convert named imports to namespace import","description":"Convert named imports to namespace import","kind":"refactor.rewrite.import.namespace","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Extract Symbol","description":"Extract function","actions":[{"name":"Extract Function","description":"Extract function","kind":"refactor.extract.function","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract Symbol","description":"Extract constant","actions":[{"name":"Extract Constant","description":"Extract constant","kind":"refactor.extract.constant","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract type","description":"Extract type","actions":[{"name":"Extract to typedef","description":"Extract to typedef","kind":"refactor.extract.typedef","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to type alias","description":"Extract to type alias","kind":"refactor.extract.type","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to interface","description":"Extract to interface","kind":"refactor.extract.interface","notApplicableReason":"Selection is not a valid type node"}]},{"name":"Move to a new file","description":"Move to a new file","actions":[{"name":"Move to a new file","description":"Move to a new file","kind":"refactor.move.newFile","notApplicableReason":"Selection is not a valid statement or statements"}]},{"name":"Add or remove braces in an arrow function","description":"Add or remove braces in an arrow function","actions":[{"name":"Add braces to arrow function","description":"Add braces to arrow function","kind":"refactor.rewrite.arrow.braces.add","notApplicableReason":"Could not find a containing arrow function"},{"name":"Remove braces from arrow function","description":"Remove braces from arrow function","kind":"refactor.rewrite.arrow.braces.remove","notApplicableReason":"Could not find a containing arrow function"}]},{"name":"Convert to template string","description":"Convert to template string","actions":[{"name":"Convert to template string","description":"Convert to template string","kind":"refactor.rewrite.string","notApplicableReason":"Can only convert string concatenation"}]},{"name":"Infer function return type","description":"Infer function return type","actions":[{"name":"Infer function return type","description":"Infer function return type","kind":"refactor.rewrite.function.returnType","notApplicableReason":"Return type must be inferred from a function"}]}]}
Info 2008 [19:49:30.009] request:
    {"seq":43,"type":"request","command":"projectInfo","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","needFileNameList":false}}
Perf 2009 [19:49:30.009] 43::projectInfo: elapsed time (in milliseconds) 0.1021
Info 2010 [19:49:30.009] response:
    {"seq":0,"type":"response","command":"projectInfo","request_seq":43,"success":true,"body":{"configFileName":"/Users/aleksei.tsikov/git/project/tsconfig.json","languageServiceDisabled":false}}
Info 2011 [19:49:30.011] request:
    {"seq":44,"type":"request","command":"encodedSemanticClassifications-full","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","start":1277,"length":3642,"format":"2020"}}
Perf 2012 [19:51:19.295] 44::encodedSemanticClassifications-full: elapsed time (in milliseconds)<PHONE_NUMBER>
Info 2013 [19:51:19.295] response:
    {"seq":0,"type":"response","command":"encodedSemanticClassifications-full","request_seq":44,"success":true,"body":{"spans":[1281,8,2561,1312,6,2561,1342,8,2561,1368,6,2561,1403,29,2825,1436,11,1793,1449,11,1536,1463,17,1544,1496,11,1792,1678,11,1792,1702,5,1537,1712,5,2561,1720,4,1536,1728,15,2561,1769,16,2057,1787,3,1536,1791,5,1536,1803,5,1793,1810,15,1793,1844,5,2857,1851,12,2857,1865,7,2089,1874,8,2857,1887,7,2816,1895,10,1536,1913,13,2561,1936,9,2561,1947,15,1792,1970,8,2561,1980,8,2816,1989,10,2816,2004,4,272,2023,6,2561,2031,10,2816,2046,4,272,2066,4,2561,2100,11,2560,2113,5,2857,2120,4,2089,2126,6,2089,2137,11,2816,2150,6,1793,2158,10,1536,2177,3,2056,2181,4,2560,2186,23,3072,2218,9,2561,2229,6,1792,2236,9,2560,2253,8,2561,2263,6,1792,2270,8,2560,2279,7,3088,2296,6,2561,2304,6,1792,2311,6,2560,2318,7,3088,2350,12,2089,2365,4,2088,2371,4,2560,2393,11,2089,2406,19,2089,2430,13,2816,2444,12,2088,2467,11,2089,2481,7,2816,2501,5,1792,2514,3,3088,2518,8,1793,2533,5,2561,2540,8,1792,2549,3,2560,2554,5,2561,2561,8,1792,2570,5,2560,2586,5,1792,2607,9,2089,2619,5,2856,2646,8,2089,2657,5,2856,2800,15,1792,2868,7,2088,2933,5,1793,3044,11,2088,3288,7,2088,3348,5,1793,3475,5,1792,3481,5,2560,3514,5,1793,3549,8,2089,3560,10,2816,3571,5,1792,3598,5,1792,3604,8,3072,3613,8,2088,3641,8,2856,3660,7,2816,3668,8,2088,3789,7,2088,3847,5,1793,3999,6,2561,4007,8,2088,4035,5,2561,4042,8,2816,4051,8,2088,4107,5,1792,4113,5,2560,4146,5,1793,4175,5,1792,4181,8,3072,4190,10,2816,4201,5,1792,4381,12,2856,4394,10,1793,4408,5,2856,4414,10,1792,4475,9,2088,4618,29,2824,4648,6,2088,4673,11,2088,4705,7,2056,4754,6,2088,4865,19,2088],"endOfLineState":0}}
Info 2014 [19:51:19.297] request:
    {"seq":47,"type":"request","command":"provideInlayHints","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","start":714,"length":4205}}
Perf 2015 [19:51:19.350] 47::provideInlayHints: elapsed time (in milliseconds) 52.9589
Info 2016 [19:51:19.350] response:
    {"seq":0,"type":"response","command":"provideInlayHints","request_seq":47,"success":true,"body":[{"text":": PropsWithChildren<CellProps...","position":{"line":36,"offset":21},"kind":"Type","whitespaceBefore":true},{"text":": Element","position":{"line":36,"offset":22},"kind":"Type","whitespaceBefore":true},{"text":"date:","position":{"line":36,"offset":56},"kind":"Parameter","whitespaceAfter":true},{"text":": PropsWithChildren<CellProps...","position":{"line":49,"offset":21},"kind":"Type","whitespaceBefore":true},{"text":": Element","position":{"line":49,"offset":22},"kind":"Type","whitespaceBefore":true},{"text":"value:","position":{"line":50,"offset":34},"kind":"Parameter","whitespaceAfter":true},{"text":": (queryStatus: QueryStatus) ...","position":{"line":63,"offset":36},"kind":"Type","whitespaceBefore":true},{"text":": Props","position":{"line":79,"offset":72},"kind":"Type","whitespaceBefore":true},{"text":": Element","position":{"line":79,"offset":73},"kind":"Type","whitespaceBefore":true},{"text":"props:","position":{"line":80,"offset":74},"kind":"Parameter","whitespaceAfter":true},{"text":"date:","position":{"line":83,"offset":26},"kind":"Parameter","whitespaceAfter":true},{"text":"amount:","position":{"line":83,"offset":50},"kind":"Parameter","whitespaceAfter":true},{"text":"date:","position":{"line":83,"offset":37},"kind":"Parameter","whitespaceAfter":true},{"text":"date:","position":{"line":84,"offset":26},"kind":"Parameter","whitespaceAfter":true},{"text":"mutationFn:","position":{"line":89,"offset":60},"kind":"Parameter","whitespaceAfter":true},{"text":": AxiosPromise<RevPTransactio...","position":{"line":89,"offset":80},"kind":"Type","whitespaceBefore":true},{"text":": RevPTransaction[]","position":{"line":97,"offset":21},"kind":"Type","whitespaceBefore":true},{"text":"data:","position":{"line":99,"offset":62},"kind":"Parameter","whitespaceAfter":true},{"text":": { label: string; value: str...","position":{"line":101,"offset":20},"kind":"Type","whitespaceBefore":true},{"text":"factory:","position":{"line":102,"offset":5},"kind":"Parameter","whitespaceAfter":true},{"text":"deps:","position":{"line":103,"offset":5},"kind":"Parameter","whitespaceAfter":true},{"text":": { label: string; value: str...","position":{"line":102,"offset":7},"kind":"Type","whitespaceBefore":true},{"text":"callbackfn:","position":{"line":102,"offset":29},"kind":"Parameter","whitespaceAfter":true},{"text":": Card","position":{"line":102,"offset":37},"kind":"Type","whitespaceBefore":true},{"text":": string","position":{"line":106,"offset":18},"kind":"Type","whitespaceBefore":true},{"text":"name:","position":{"line":106,"offset":27},"kind":"Parameter","whitespaceAfter":true},{"text":": Date","position":{"line":107,"offset":17},"kind":"Type","whitespaceBefore":true},{"text":"name:","position":{"line":107,"offset":26},"kind":"Parameter","whitespaceAfter":true},{"text":": { field: ControllerRenderPr...","position":{"line":117,"offset":33},"kind":"Type","whitespaceBefore":true},{"text":": Element","position":{"line":117,"offset":34},"kind":"Type","whitespaceBefore":true},{"text":": { field: ControllerRenderPr...","position":{"line":132,"offset":31},"kind":"Type","whitespaceBefore":true},{"text":": Element","position":{"line":132,"offset":32},"kind":"Type","whitespaceBefore":true},{"text":": Date | null","position":{"line":137,"offset":32},"kind":"Type","whitespaceBefore":true},{"text":": Date","position":{"line":138,"offset":33},"kind":"Type","whitespaceBefore":true},{"text":"date:","position":{"line":138,"offset":47},"kind":"Parameter","whitespaceAfter":true},{"text":"...event:","position":{"line":140,"offset":34},"kind":"Parameter","whitespaceAfter":true},{"text":"name:","position":{"line":141,"offset":28},"kind":"Parameter","whitespaceAfter":true},{"text":"value:","position":{"line":141,"offset":38},"kind":"Parameter","whitespaceAfter":true},{"text":"date:","position":{"line":141,"offset":46},"kind":"Parameter","whitespaceAfter":true},{"text":"amount:","position":{"line":141,"offset":56},"kind":"Parameter","whitespaceAfter":true},{"text":": { field: ControllerRenderPr...","position":{"line":149,"offset":31},"kind":"Type","whitespaceBefore":true},{"text":": Element","position":{"line":149,"offset":32},"kind":"Type","whitespaceBefore":true},{"text":"date:","position":{"line":155,"offset":35},"kind":"Parameter","whitespaceAfter":true},{"text":"amount:","position":{"line":155,"offset":45},"kind":"Parameter","whitespaceAfter":true},{"text":": Date | null","position":{"line":158,"offset":32},"kind":"Type","whitespaceBefore":true},{"text":"...event:","position":{"line":159,"offset":34},"kind":"Parameter","whitespaceAfter":true},{"text":"date:","position":{"line":159,"offset":45},"kind":"Parameter","whitespaceAfter":true},{"text":"onValid:","position":{"line":168,"offset":35},"kind":"Parameter","whitespaceAfter":true},{"text":": { cardToken: string; dateFr...","position":{"line":168,"offset":45},"kind":"Type","whitespaceBefore":true},{"text":"variables:","position":{"line":168,"offset":55},"kind":"Parameter","whitespaceAfter":true},{"text":"queryStatus:","position":{"line":178,"offset":55},"kind":"Parameter","whitespaceAfter":true}]}
Info 2017 [19:51:19.350] request:
    {"seq":48,"type":"request","command":"getApplicableRefactors","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","startLine":126,"startOffset":17,"endLine":126,"endOffset":17}}
Perf 2018 [19:51:19.352] 48::getApplicableRefactors: elapsed time (in milliseconds) 2.1181
Info 2019 [19:51:19.352] response:
    {"seq":0,"type":"response","command":"getApplicableRefactors","request_seq":48,"success":true,"body":[{"name":"Convert export","description":"Convert default export to named export","actions":[{"name":"Convert default export to named export","description":"Convert default export to named export","kind":"refactor.rewrite.export.named","notApplicableReason":"Could not find export statement"},{"name":"Convert named export to default export","description":"Convert named export to default export","kind":"refactor.rewrite.export.default","notApplicableReason":"Could not find export statement"}]},{"name":"Convert import","description":"Convert namespace import to named imports","actions":[{"name":"Convert namespace import to named imports","description":"Convert namespace import to named imports","kind":"refactor.rewrite.import.named","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Convert import","description":"Convert named imports to namespace import","actions":[{"name":"Convert named imports to namespace import","description":"Convert named imports to namespace import","kind":"refactor.rewrite.import.namespace","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Extract Symbol","description":"Extract function","actions":[{"name":"Extract Function","description":"Extract function","kind":"refactor.extract.function","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract Symbol","description":"Extract constant","actions":[{"name":"Extract Constant","description":"Extract constant","kind":"refactor.extract.constant","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract type","description":"Extract type","actions":[{"name":"Extract to typedef","description":"Extract to typedef","kind":"refactor.extract.typedef","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to type alias","description":"Extract to type alias","kind":"refactor.extract.type","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to interface","description":"Extract to interface","kind":"refactor.extract.interface","notApplicableReason":"Selection is not a valid type node"}]},{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","actions":[{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","kind":"refactor.rewrite.property.generateAccessors","notApplicableReason":"Could not find property for which to generate accessor"}]},{"name":"Move to a new file","description":"Move to a new file","actions":[{"name":"Move to a new file","description":"Move to a new file","kind":"refactor.move.newFile","notApplicableReason":"Selection is not a valid statement or statements"}]},{"name":"Convert to template string","description":"Convert to template string","actions":[{"name":"Convert to template string","description":"Convert to template string","kind":"refactor.rewrite.string","notApplicableReason":"Can only convert string concatenation"}]},{"name":"Infer function return type","description":"Infer function return type","actions":[{"name":"Infer function return type","description":"Infer function return type","kind":"refactor.rewrite.function.returnType","notApplicableReason":"Return type must be inferred from a function"}]}]}
Info 2020 [19:51:19.353] request:
    {"seq":50,"type":"request","command":"quickinfo","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","line":129,"offset":16}}
Perf 2021 [19:51:19.364] 50::quickinfo: elapsed time (in milliseconds) 11.1055
Info 2022 [19:51:19.364] response:
    {"seq":0,"type":"response","command":"quickinfo","request_seq":50,"success":true,"body":{"kind":"alias","kindModifiers":"declare","start":{"line":129,"offset":12},"end":{"line":129,"offset":22},"displayString":"(alias) const Controller: <TFieldValues extends FieldValues = FieldValues, TName extends Path<TFieldValues> = Path<TFieldValues>>(props: ControllerProps<TFieldValues, TName>) => import(\"react\").ReactElement<any, string | import(\"react\").JSXElementConstructor<any>>\nimport Controller","documentation":[],"tags":[]}}
Info 2023 [19:51:19.364] request:
    {"seq":51,"type":"request","command":"geterr","arguments":{"delay":0,"files":["/Users/aleksei.tsikov/git/project/src/Component.tsx"]}}
Perf 2024 [19:51:19.364] 51::geterr: async elapsed time (in milliseconds) 0.4231
Info 2025 [19:51:19.366] event:
    {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","diagnostics":[]}}
Info 2026 [19:51:19.825] event:
    {"seq":0,"type":"event","event":"requestCompleted","body":{"request_seq":51}}
Info 2027 [19:51:19.827] request:
    {"seq":52,"type":"request","command":"quickinfo","arguments":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","line":129,"offset":16}}
Perf 2028 [19:51:19.839] 52::quickinfo: elapsed time (in milliseconds) 11.8457
Info 2029 [19:51:19.839] response:
    {"seq":0,"type":"response","command":"quickinfo","request_seq":52,"success":true,"body":{"kind":"alias","kindModifiers":"declare","start":{"line":129,"offset":12},"end":{"line":129,"offset":22},"displayString":"(alias) const Controller: <TFieldValues extends FieldValues = FieldValues, TName extends Path<TFieldValues> = Path<TFieldValues>>(props: ControllerProps<TFieldValues, TName>) => import(\"react\").ReactElement<any, string | import(\"react\").JSXElementConstructor<any>>\nimport Controller","documentation":[],"tags":[]}}
Info 2030 [19:51:19.839] request:
    {"seq":53,"type":"request","command":"geterr","arguments":{"delay":0,"files":["/Users/aleksei.tsikov/git/project/src/Component.tsx"]}}
Perf 2031 [19:51:19.840] 53::geterr: async elapsed time (in milliseconds) 0.1562
Info 2032 [19:51:19.841] event:
    {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"/Users/aleksei.tsikov/git/project/src/Component.tsx","diagnostics":[]}}

...

Here's the minimal repro (basically, only react and react-hook-form) https://github.com/atsikov/ts-4.5.2-perf-issue
I've found out that this issue is reproducible with react-hook-form < 7.17.2. In https://github.com/react-hook-form/react-hook-form/commit/85097ae4bced7f8ffdd68256c583ca2a98c8561c types were improved, so with >= 7.17.2 type hints and autocomplete work as expected.

...

4.5.2 created 30 times more (intermediate?) types and consumed 8 times more memory.

TS 4.4.4 extended diagnostics
Files:                         50
Lines of Library:           26160
Lines of Definitions:       24762
Lines of TypeScript:           14
Lines of JavaScript:            0
Lines of JSON:                  0
Lines of Other:                 0
Nodes of Library:          112958
Nodes of Definitions:       60457
Nodes of TypeScript:           55
Nodes of JavaScript:            0
Nodes of JSON:                  0
Nodes of Other:                 0
Identifiers:                58865
Symbols:                    39464
Types:                      28967
Instantiations:             86282
Memory used:               93470K
Assignability cache size:   17107
Identity cache size:           62
Subtype cache size:             0
Strict subtype cache size:      0
I/O Read time:              0.01s
Parse time:                 0.48s
ResolveModule time:         0.02s
ResolveTypeReference time:  0.00s
Program time:               0.53s
Bind time:                  0.21s
Check time:                 0.64s
printTime time:             0.00s
Emit time:                  0.00s
Total time:                 1.39s

TS 4.5.2 extended diagnostics
Files:                          50
Lines of Library:            25009
Lines of Definitions:        24762
Lines of TypeScript:            14
Lines of JavaScript:             0
Lines of JSON:                   0
Lines of Other:                  0
Nodes of Library:           112478
Nodes of Definitions:        60453
Nodes of TypeScript:            55
Nodes of JavaScript:             0
Nodes of JSON:                   0
Nodes of Other:                  0
Identifiers:                 58582
Symbols:                     39008
Types:                     1048793
Instantiations:             135356
Memory used:               724704K
Assignability cache size:  7007111
Identity cache size:            27
Subtype cache size:              0
Strict subtype cache size:       0
I/O Read time:               0.03s
Parse time:                  0.49s
ResolveModule time:          0.02s
ResolveTypeReference time:   0.00s
Program time:                0.57s
Bind time:                   0.22s
Check time:                 93.30s
printTime time:              0.00s
Emit time:                   0.00s
Total time:                 94.09s

Originally posted by @atsikov in https://github.com/microsoft/TypeScript/issues/46735#issuecomment-981948210

More context from @kmoschcau:

Hi, I hope I can give some additional helpful info. I maintain a repo with some fairly complex generic types and I can see a huge performance difference in both tsc and tsserver between 4.4.4 and 4.5.2.
Also I don't think this is really related to the VSCode plugin, because I use (Neo)Vim and a language client plugin in there to talk to tsserver. The autocompletion with 4.4.4 is there in less than a second while 4.5.2 sometimes takes longer than 5 seconds. (My client just lets it time out then.) Another thing I observed is that the hover comes up fairly quickly, but autocompletion does not. When the repo files are freshly changed both take a really long time to come up.
Here is the repo: https://github.com/League-of-Foundry-Developers/foundry-vtt-types
You should be able to compile it with both typescript versions by just cloning it, running npm ci and then tsc in the root. I ran both versions with --extendedDiagnostics on this repo and here are the stats for both runs. (Especially of note are the tripled amount of types and the more than doubled check time.)

4.4.4
tsc --extendedDiagnostics
Files:                         478
Lines of Library:            27589
Lines of Definitions:       146444
Lines of TypeScript:             0
Lines of JavaScript:             0
Lines of JSON:                   0
Lines of Other:                  0
Nodes of Library:           114619
Nodes of Definitions:       341949
Nodes of TypeScript:             0
Nodes of JavaScript:             0
Nodes of JSON:                   0
Nodes of Other:                  0
Identifiers:                168963
Symbols:                    196745
Types:                       80541
Instantiations:             176586
Memory used:               266118K
Assignability cache size:    38755
Identity cache size:           302
Subtype cache size:              3
Strict subtype cache size:       1
I/O Read time:               0.03s
Parse time:                  1.70s
ResolveModule time:          0.09s
ResolveTypeReference time:   0.01s
Program time:                1.89s
Bind time:                   1.03s
Check time:                  5.49s
printTime time:              0.00s
Emit time:                   0.00s
Total time:                  8.40s

4.5.2
tsc --extendedDiagnostics
Files:                         478
Lines of Library:            26543
Lines of Definitions:       146444
Lines of TypeScript:             0
Lines of JavaScript:             0
Lines of JSON:                   0
Lines of Other:                  0
Nodes of Library:           114494
Nodes of Definitions:       341871
Nodes of TypeScript:             0
Nodes of JavaScript:             0
Nodes of JSON:                   0
Nodes of Other:                  0
Identifiers:                168741
Symbols:                    196841
Types:                      264674
Instantiations:             178696
Memory used:               328640K
Assignability cache size:    76679
Identity cache size:           301
Subtype cache size:              3
Strict subtype cache size:       2
I/O Read time:               0.03s
Parse time:                  1.75s
ResolveModule time:          0.09s
ResolveTypeReference time:   0.01s
Program time:                1.98s
Bind time:                   0.94s
Check time:                 12.92s
printTime time:              0.00s
Emit time:                   0.00s
Total time:                 15.84s

Manually bisecting between 4.4.4 and 4.5.2:

4.5.0-beta (Oct 1): 11s, errors out with src/Form.tsx:7:7 - error TS2589: Type instantiation is excessively deep and possibly infinite.
<EMAIL_ADDRESS>good, same as 4.4
<EMAIL_ADDRESS>good, same as 4.4
<EMAIL_ADDRESS>good, same as 4.4
<EMAIL_ADDRESS>good, same as 4.4
<EMAIL_ADDRESS>good, same as 4.4
<EMAIL_ADDRESS>bad, same as 4.5.0-beta

4.5.1-rc (Nov 2): 86s, no error, same as 4.5.2
<EMAIL_ADDRESS>error, same as beta
<EMAIL_ADDRESS>fast, no error, close to 4.4 behavior ❓
Skipping ahead to latest nightly: also fast
<EMAIL_ADDRESS>fast, same as nightly
There is no nightly from 11/10

Uh, ok, so:

<EMAIL_ADDRESS>was the first “bad” version, but bad in a different way than 4.5.2 is bad
<EMAIL_ADDRESS>fixed that but was not ported into the 4.5 release
I still don’t know where we went from the “excessively deep” error to no error but super long check time—seems like the transition to the error behavior and to the fast no-error behavior happened between 11/09 and 11/11 but only the former got ported into the release??

The good news is this seems to be fixed in the nightly, but if the fix looks safe, we should try to port it to a 4.5 patch, because the perf difference here is bananas.

The fix is https://github.com/microsoft/TypeScript/pull/46599, which never got ported to release-4.5. @DanielRosenwasser recalls this being probably intentional for safety—that could be, but (a) I don’t recall that, and (b) I don’t think we knew that it fixed a regression introduced around 4.5-beta.

@kmoschcau I haven’t tried your repo yet—does typescript@next perform better for you?

@andrewbranch Oh yes it does! Back to the old performance of 4.4.4.
tsc --extendedDiagnostics
Files:                         478
Lines of Library:            26543
Lines of Definitions:       146444
Lines of TypeScript:             0
Lines of JavaScript:             0
Lines of JSON:                   0
Lines of Other:                  0
Nodes of Library:           114499
Nodes of Definitions:       341871
Nodes of TypeScript:             0
Nodes of JavaScript:             0
Nodes of JSON:                   0
Nodes of Other:                  0
Identifiers:                168742
Symbols:                    196841
Types:                       76513
Instantiations:             170952
Memory used:               271909K
Assignability cache size:    37232
Identity cache size:           301
Subtype cache size:              3
Strict subtype cache size:       2
I/O Read time:               0.22s
Parse time:                  1.69s
ResolveModule time:          0.11s
ResolveTypeReference time:   0.01s
Program time:                2.11s
Bind time:                   0.97s
Check time:                  5.30s
printTime time:              0.00s
Emit time:                   0.00s
Total time:                  8.38s

Also next fixes the performance problems with tsserver as well.

We should definitely investigate adding an older version of react-hook-form to the perf suite.

Thanks for releasing the fix in 4.5.3, it's definitely much better now.
However at that react-hook-form example, 4.5.3 is still 3 times slower than 4.4.4.

Extended diagnostics

Version
4.4.4
4.5.3
4.6.0-dev.20211211

Files:
50
50
50

Lines of Library:
26160
25009
25009

Lines of Definitions:
24762
24762
24762

Lines of TypeScript:
14
14
14

Lines of JavaScript:
0
0
0

Lines of JSON:
0
0
0

Lines of Other:
0
0
0

Nodes of Library:
112958
112482
112483

Nodes of Definitions:
60457
60453
60453

Nodes of TypeScript:
55
55
55

Nodes of JavaScript:
0
0
0

Nodes of JSON:
0
0
0

Nodes of Other:
0
0
0

Identifiers:
58865
58583
58584

Symbols:
39464
38003
38003

Types:
28967
20676
20676

Instantiations:
86282
46765
46765

Memory used:
93923K
101820K
102211K

Assignability cache size:
17107
79595
79595

Identity cache size:
62
27
27

Subtype cache size:
0
0
0

Strict subtype cache size:
0
0
0

I/O Read time:
0.03s
0.02s
0.02s

Parse time:
0.49s
0.46s
0.47s

ResolveModule time:
0.03s
0.02s
0.02s

ResolveTypeReference time:
0.00s
0.00s
0.00s

Program time:
0.57s
0.53s
0.53s

Bind time:
0.22s
0.21s
0.21s

Check time:
0.66s
3.73s
3.62s

printTime time:
0.00s
0.00s
0.00s

Emit time:
0.00s
0.00s
0.00s

Total time:
1.45s
4.47s
4.36s

I’m not 100% sure this is what’s going on, but I believe what’s happening is that 4.4 was giving up while resolving deep constraints (mistakenly thinking the constraints were infinitely deep), whereas 4.5+ recognizes that those constraints are not infinite, just deeper than 5 levels, and so it gets farther with actually checking correctness.

I’m able to cut the time down from 4.66s to 1.19s by adding variance annotations to just ControllerFieldState 😄

I’m pretty sure the slowdown is caused by #41821—we are just able to get deeper into structural comparisons for variance computations, which ultimately are fruitless for these recursive types, but in general fixed bugs. We added variance annotations for exactly this case, and it looks like they’re going to work incredibly well here. I doubt there’s anything else actionable for us (except perhaps to help react-hook-form add variance annotations—I haven’t checked whether the problem still exists in their latest/alpha versions), but am going to get a second opinion on that tomorrow with @amcasey.

I’m going to go ahead and close this—the performance of the library is much better in react-hook-form@beta, and also adding the variance annotations to the one type fixes the regression, so I think that’s an outcome we’re ok with.


Problem with moi adding a study

The following shows up in the tornado console when I select a study from the study list:
ERROR:tornado.application:Uncaught exception in /moi-ws/
Traceback (most recent call last):
  File "/Users/yoshikivazquezbaeza/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/websocket.py", line 303, in wrapper
    return callback(*args, **kwargs)
  File "/Users/yoshikivazquezbaeza/.virtualenvs/qiita/lib/python2.7/site-packages/tornado/web.py", line 2297, in wrapper
    return method(self, *args, **kwargs)
  File "/Users/yoshikivazquezbaeza/.virtualenvs/qiita/lib/python2.7/site-packages/moi/websocket.py", line 66, in on_message
    self.group.action(verb, args)
  File "/Users/yoshikivazquezbaeza/.virtualenvs/qiita/lib/python2.7/site-packages/moi/group.py", line 189, in action
    raise TypeError("args is unknown type: %s" % type(args))
TypeError: args is unknown type: <type 'dict'>

PS, this is showing up when I merged the branch from #1122 and #1123 ... can someone else reproduce? This can very well be my system.

The payload being sent from the client includes a key value pair in the json object where the value is of type dict. moi has no mechanisms for dealing with this type of value. The js that issued this send is violating the moi protocol. Investigating

The cart is opening a websocket against the moi websocket handler, and not against the selected samples handler. Relevant lines in the merged PR:
https://github.com/biocore/qiita/pull/1058/files#diff-ec26581cd61e512b79f2ce31592a7552R67
https://github.com/biocore/qiita/pull/1058/files#diff-e1ededb407a16f3fc308d42303650f9dR78
Basically, the websocket handler that is used server side is hard coded. I do not understand right now how the cart could have functioned as it doesn't seem like the cart's handler was used?
cc @squirrelo

Nevermind!
@ElDeveloper, I think your #1123 is incomplete. The argument order was changed, but the code that uses moi.init was not updated. See:
https://github.com/biocore/qiita/pull/1058/files#diff-6a7c39174f9f7c334ef7091f87f54951R38

Thanks for looking into it, just pushed a fix.

And it seems to be working.


Disallow @class= xpath locators

I am working with a wider team, where multiple people use automated tools (e.g. browser plugins) for generation of xpath locators. Those tend to be error prone and seem to favor xpath locators like //div[@class='class1 class2 ... class7 which stop working once a new class is added to the element.
I would love to see an optional rule that allows for automatic flagging of such xpaths.
Example
// Incorrect:
page.locator('//div[@class='class1 class2 class3 class4 class5 clas6 class7')
// Correct:
page.locator('//div[contains(@class, 'class3')]

additionally, it would be great if the tool would be able to enforce a configurable (or not?) amount of classes to be used, e.g. option maxClassesInXpath which would flag as follows:
{maxClassesInXpath = 1)
// Incorrect:
page.locator('//div[contains(@class, 'class1 class2 class3 class4 class5 class6 class7')]
// Correct:
page.locator('//div[contains(@class, 'class1)]

// Incorrect:
page.locator('//div[contains(@class, 'class1 class2')]
// Correct:
//div[contains(@class, 'class1') and contains(@class, 'class2')]

Or maybe even enforce that and contains... is repeated only a certain amount of times.

That's a pity, since even discouraged, xpath and css selectors are still fully supported by Playwright. I imagine a lot of folks struggle with changing to different selectors, I for sure struggle with encouraging my teammates.
As you can imagine that reviewing a PR with 50 new locators and suggesting how to change every single one is challenging. I hoped to find some automation for that.
Thanks for reviewing anyway!


Allow serializing SAML2Profiles using the JsonSerializer with default typing

Allow serializing SAML2Profiles using the JsonSerializer with default typing

Adding the jackson-datatype-jsr310 dependency, using its JavaTimeModule to the JsonSerializer to enable (de-)serializing of java.time classes
Changing the SAML2Profile#notBefore and SAML2Profile#notOnOrAfter properties to java.time.Instant as they don't need time-zone information

See https://github.com/pac4j/play-pac4j/issues/705 for context
Before submitting any pull request, please read the contribution guide: https://www.pac4j.org/docs/contribute.html

Why do you move from ZonedDateTime to Instant?

Excellent! Merging in the master branch which is the new 6.1.0 version...


issue with Android power saving modes

on my Xiaomi Phone, some power saving modes are enabled by default. As a consequence the Hauk-App is terminated after some time if running in background. To solve this, at least a hint to disable power saving mode for the app would be useful...
Additionally restarting the app does not reconnect to the previous session. In other words, the Hauk-App is not aware of another share already running and control over the share is lost.

This seems to vary a lot on between different manufacturers, and I don't think there's a standardized way to turn off or even detect whether such power saving features exist. I'd either have to maintain a whitelist of manufacturers that will show such a warning, or show it for every device regardless of manufacturer. If there is a way to easily maintain a whitelist, then I think that may be the best option.

Additionally restarting the app does not reconnect to the previous session. In other words, the Hauk-App is not aware of another share already running and control over the share is lost.

This is implemented in the upcoming v1.1.1 (see #28).

This seems to vary a lot between different manufacturers, and I don't think there's a standardized way to turn off or even detect whether such power saving features exist.

That's why some other apps I know are using just a hint at the first start welcome screen to make the user aware of this...

This is implemented in the upcoming v1.1.1 (see #28).

Thank's!

In MIUI there is an option not to apply any power saving policies to app. One can change it in app settings.

I'm looking into enabling a warning message on a per-manufacturer/per-ROM basis. In order to do that for Xiaomi/MIUI, as I don't have such a device myself, can you help me out by pasting or screenshooting your device's build number? This should be in "Settings > About phone" (typically at the bottom of the settings menu) on most Android devices.
Furthermore, I believe I can add a button to the warning notification that opens the settings menu for the user directly. That way, they don't have to go look for it in settings. I have implemented this for OnePlus (as I have a OnePlus device and can verify that it works). I don't know if this is feasible for Xiaomi. To figure that out, I need someone who has both a Xiaomi device and a computer running Linux to run a couple of commands for me. Until then, I can still add a warning that just tells the user how to do it manually instead.

Hi there, here is how xaomi abouts look like:

I've put the groundwork in for this feature and it works for OnePlus and Huawei devices now, but I have yet to find someone who has a Xiaomi device that I can get the proper debug data from via adb. If anyone has a Xiaomi device and would like to help me test this, feel free to reach out.

Ouh, did not see that one. Xiaomi Mi 9 here with EU-Rom. Running KDE neon as well. What do you need?

Xiaomi Mi 9 here with EU-Rom

I assume this is stock ROM? Stock ROM (e.g. MIUI) is what I need to fix the issue.
I need to run adb logcat -e "Displayed|START" against the device via adb from a computer (USB debugging). The logcat will produce a lot of unnecessary output when you run it. After the output stream dies down, you'll have to open the system settings menu and find where the per-app battery savings are located. I don't have a Xiaomi device, so I don't know exactly what it's called - but it's where you'd go to exclude an app from the list. As mentioned by @RuralYak:

In MIUI there is an option not to apply any power saving policies to app. One can change it in app settings.

This is the setting that you'll need to find and open, while logcat is running. On my OnePlus device, the output looks like this:
~$ adb logcat -e "Displayed|START"
[... a flood of old/unnecessary output here ...]
10-22 14:49:17.833  1150  4697 I ActivityManager: START u0 {act=android.settings.SETTINGS flg=0x14000000 cmp=com.android.settings/.Settings} from uid 10019 pid 3140
10-22 14:49:18.279  1150  1252 I ActivityManager: Displayed com.android.settings/.Settings: +384ms
10-22 14:49:25.191  1150  6822 I ActivityManager: START u0 {flg=0x8000 cmp=com.android.settings/.Settings$PowerUsageSummaryActivity (has extras)} from uid 1000 pid 23142
10-22 14:49:25.388  1150  1252 I ActivityManager: Displayed com.android.settings/.Settings$PowerUsageSummaryActivity: +162ms

I need the output from logcat to find out how to launch that screen programmatically from the app. If you can send me the output, I'll give you another command you can run via adb to verify if my proposed fix would work.

I have finally found someone with a Xiaomi device to help me out. I was unable to test the solution due to needing a Xiaomi account to install apps via adb, but I see no reason it shouldn't work.
This will be live in v1.3.1.

I've tagged the v1.3.1 release. It should appear in F-Droid within a few days to a week.


Upload: if 1 key in the batch is older than 14 days, whole batch fails validation

Describe the bug
According to the code, before EFGS persists uploaded keys, it executes some validation checks. In case such validation fails, HTTP response contains an "Invalid Signature" message. If an upload batch contains a key with a rolling start interval older that 14 days, the whole batch fails validation.
Expected behavior
EFGS accepts valid keys from the batch. Invalid keys are ignored.
Steps to reproduce the issue
Upload a batch that will contain keys wit rolling start interval number older than 14 days
Technical details
N/A
Possible Fix
EFGS returns a Multistatus HTTP response
Additional context
N/A

Hello @EvgeniiSkrebtcov ,
this is intended behaviour. Uploading just some keys would break the signature of the uploaded batch.


wallet: improve logging around transaction broadcast failures

Related to https://github.com/lightningnetwork/lnd/issues/7505.
~Depends on https://github.com/btcsuite/btcwallet/pull/851.~
The logging around transaction broadcast failures has been improved by always logging the causing error and the raw transaction as hex.

Rebased and updated after depending PR was merged.

@roasbeef: review reminder

Needs a rebase then this can land.

The btcwallet dependency was already bumped in #7529. So this only contains the change log entry.


admin#1533 Hotfix QT xss

What's included?
Fixes cross-site scripting vulnerability raised by pen test team
Who should test?
✅ Developers
How to test?
Create a qualifying test with html in the following fields:

Introduction
Question Hint

Before the fix, when taking the test observe that the html is rendered. This means that malicious html/javascript would also be rendered

After the fix, when taking the test observe that the html is displayed as plain text. Any malicious html/javascript would not be rendered:

Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work

PREVIEW:STAGING
can be OFF, DEVELOP or STAGING

This fix was approved by pen test team


Replace ethers by viem

Ok to me but we should publish with major version change -- the package.json didn't have updated version?


Question about x0-prediction and noise-prediction

Thank you so much for your contirbution to the community! Your excellent work really benifits me in my research.
I have a question about the diffusion model you employed in your paper. You mentioned that your model was built to "predict noise" in Sec. 4.2, page 4 and trained by the L1 loss of Z (Eqn. 13 in your paper). However, the code implementation is actually "x0 predition" (https://github.com/Zj-BinXia/DiffIR/blob/3d8d677a77588666618c139b1693634fe5eb638f/DiffIR-RealSR/ldm/ddpm.py#L43C16-L43C16). Did I misunderstand anything?
Really looking forward to your reply. Thank you again.

Predicting x0 has a slightly better performance than predicting noise.

Predicting x0 has a slightly better performance than predicting noise.

Thank you so much for your reply. You can consider revising your paper and update it on arXiv.


Start automating project entries

Once we get project and repo URLs, we should try to fill in the form and present it back with some automated results.  We can then keep refining it.

Commit 3d81ad60945091af64238108fca0e9e17b381764 and friends start the automation.


relax visibility of arraylist items / ability to addAll efficiently

If one wants to append a IntArrayList to another IntArrayList, there's an extra copy involved due to the call to toArray():
   public boolean addAll(IntIterable source)
    {
        return this.addAll(source.toArray());
    }

Also, please relax the visibility of items to protected, so one can subclass this collection. As I understand, that was the design rationale for FastList vs. JDK ArrayList, but looks like the same mistake is repeated here :)

Thanks for reporting this. We'll pick this up in the next minor release.


Feat: Login signup pge

Describe the feature
I want to design a login signup page for customers to keep track of their activities on the website

Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

hello @arghadipmanna101 sir..
I would request you to please assign label on this issue

hello @arghadipmanna101 sir.. I would request you to please assign label on this issue

After send me your PR i will check the pr and then i will add levels.

okay sir thank you
On Thu, 30 May, 2024, 10:21 pm Arghadip Manna, @.***>
wrote:

hello @arghadipmanna101 https://github.com/arghadipmanna101 sir.. I
would request you to please assign label on this issue
After send me your PR i will check the pr and then i will add levels.
—
Reply to this email directly, view it on GitHub
https://github.com/arghadipmanna101/Flipkart_Clone/issues/765#issuecomment-2140241552,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BBG75GDXTPHPFGLWFCCN36TZE5KJFAVCNFSM6AAAAABIG6CLEKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBQGI2DCNJVGI
.
You are receiving this because you were assigned.Message ID:
@.***>


Bug: Getting "Deployment failed: context canceled" while triggering deployment

📜 Description
getting context canceled while deploying, but the release was created.

Criticality
P2 - Medium
Impact on Enterprise

user is unsure about release
user experience

👟 Steps to replicate the Issue
.
👍 Expected behavior
if release was success or failed it must show the result properly.
👎 Actual Behavior
context deadline
☸ Kubernetes version
any
Cloud provider
any
🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#7860

may be fixed in gitops async @Ash-exp. please verify and close

similar to https://github.com/devtron-labs/devtron/issues/4943


Makefile: add tikv-ctl make rule

What have you changed? (mandatory)
Add a make rule for tikv-ctl, so we can compile faster if we only change the code of tikv-ctl.
What are the type of the changes? (mandatory)

Improvement (non-breaking change which is an improvement to an existing feature)

How has this PR been tested? (mandatory)
manual-test
Does this PR affect documentation (docs/docs-cn) update? (mandatory)
No
Does this PR affect tidb-ansible update? (mandatory)
No
Benchmark result if necessary (optional)
only swap two lines and make
>> make tikv-ctl
Compiling tikv v2.1.0-rc.2 (file:///home/pingcap/zbk/tikv)
Finished release [optimized + debuginfo] target(s) in 3m 01s
>> make release
Compiling tikv v2.1.0-rc.2 (file:///home/pingcap/zbk/tikv)
Finished release [optimized + debuginfo] target(s) in 9m 15s

why release still contains building ctl?

@siddontang We need a rule to build all bins, maybe a lot of scripts depend on that.


fix(AxelarAuthVerifier): use u128 for weights and threshold

AXE-4337

[x] AxelarAuthVerifier: use u128 for weights and threshold

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (main@edfbb84). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #19   +/-   ##
=======================================
  Coverage        ?   98.54%
=======================================
  Files           ?       32
  Lines           ?     1993
  Branches        ?        0
=======================================
  Hits            ?     1964
  Misses          ?       29
  Partials        ?        0

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


[WIP] Take advantage of Rails.application.secrets for Azure specs

This is a followup to #6249. It replaces hard coded credential information with instance variables gleaned from our local config/secrets.yml file for the Azure refresher specs. This is a WIP at the moment for a couple reasons.
First, the subscription we were using for inventory was disabled, and I need the updated credential information in order for the specs to actually run successfully, and to update the refresher.yml file.
Second, there are some yaml files under cloud_manager/discover that have hard coded values in them, and will need to be updated, but I'm not yet sure what the appropriate approach is.

@bronaghs Need some help with the credentials information. Right now your old subscription is disabled (and it looks like you've deallocated the VM's for it anyway). The new one is enabled, but I need a client ID and client key for it.

@djberg96
My old subscription has been re-enabled.

@bronaghs Yep, thanks. The refresher specs are passing now, but I'm running into trouble with the cloud_manager specs now.  I updated the cloud manager specs and cassettes. Everything passes locally, but Travis is failing for some reason and I'm unsure why.

Replaced by https://github.com/ManageIQ/manageiq/pull/6542


Caching datasets in context  [Question]

Hi,
Is there a way to somehow cache a large CSV or Parquet file that was loaded to CTX in order to avoid reading it again each time when a new process tried to access it
What is the proper way to manage this in case you want to write something like a server that needs to answer multiple requests about the same file?
Thanks

I think we could add a caching option in context to automatically cache full table scans between runs

I suspect it is also possible perhaps to use CREATE TABLE AS SELECT for this purpose
Something like
echo  "1" > /tmp/foo.csv
datafusion-cli

create external table foo(c1 int) stored as CSV location '/tmp/foo.csv';

create table bar as select * from foo;

I suspect it is also possible perhaps to use CREATE TABLE AS SELECT for this purpose
Something like
echo  "1" > /tmp/foo.csv
datafusion-cli

create external table foo(c1 int) stored as CSV location '/tmp/foo.csv';

create table bar as select * from foo;

Thanks @alamb
But would it be saved or cached in mem for subsequent access?

I suspect it is also possible perhaps to use CREATE TABLE AS SELECT for this purpose
Something like
echo  "1" > /tmp/foo.csv
datafusion-cli

create external table foo(c1 int) stored as CSV location '/tmp/foo.csv';

create table bar as select * from foo;

Thanks @alamb
But would it be saved or cached in mem for subsequent access?

At this moment it will be cached, as it's using MemTable to load the data.
However, I think it's likely it will store the data in the future to a persistent location / format (parquet) by default. By then we need to add some option in the SQL syntax to store the results in memory.

We could take some inspiration from Spark, where you can .cache() or persist() a DataFrame.

The relevant code is here: https://github.com/apache/arrow-datafusion/blob/414c826bf06fd22e0bb52edbb497791b5fe558e0/datafusion/src/sql/planner.rs#L139-L171
(note how CREATE TABLE AS SELECT ... gets translated into LogicalPlan::CreateMemoryTable

I had a question along these lines. Is there a way to load a CSV or Parquet file directly from memory into a context?
ctx.register_csv("c", "path_to_csv", CsvReadOptions::new()).await?;

This is great if the file already exists on disk, but if I'm pulling the data from say Redis then I have to write the data to disk first then read it back. Thanks!

I had a question along these lines. Is there a way to load a CSV or Parquet file directly from memory into a context?
ctx.register_csv("c", "path_to_csv", CsvReadOptions::new()).await?;

This is great if the file already exists on disk, but if I'm pulling the data from say Redis then I have to write the data to disk first then read it back. Thanks!

@justinrmiller  I don't know how to do this  today -- it may be possible to register a new memory ObjectStore source and then pass the URL into register_csv but one would have to play around with that more to really find out)

@justinrmiller I don't know how to do this today -- it may be possible to register a new memory ObjectStore source and then pass the URL into register_csv but one would have to play around with that more to really find out)

Thanks I'll check the source code and try to figure out a way to do so!


Changed if to else if.

I think that the if statement on line 3121 should be else if because it would cause a memory leak if both branches could be hit in the same call because they both do an allocation stored in image.data.

@SasLuca thanks for the review! 😄