loadBalancerBackendAddresses : Could not find member 'location' on object of type 'LoadBalancerBackendAddressPoolProperties'

When we try to create a new 'LoadBalancerBackendAddressPool' we can not specify 'location' property while this property exists in specifications : loadBalancer.json
Expected behavior
Load balancer Backend Address Pool well created.
Current behavior
No 'LoadBalancerBackendAddressPool' created
Error message :
{
  "error": {
    "code": "InvalidRequestFormat",
    "message": "Cannot parse the request.",
    "details": [
      {
        "code": "InvalidJson",
        "message": "Could not find member 'location' on object of type 'LoadBalancerBackendAddressPoolProperties'. Path 'properties.location', line 3, position 15."
      }
    ]
  }
}

Steps to reproduce
curl -i -X PUT \
   -H 'Accept: application/json' \
   -H 'Content-Type: application/json;charset=UTF-8' \
   -H 'Authorization: Bearer XXX' \
   --data-binary @data.json \
  'https://management.azure.com/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/loadBalancers/lb-vm-tests/backendAddressPools/lb-backend-vm-tests-362de5f?api-version=2020-11-01'

Status 200 with following data.json content :
{
  "properties": {
    "loadBalancerBackendAddresses": [
      {
        "name": "rg-test_nic-vm-tests-362de5fpublicIp",
        "properties": {
          "networkInterfaceIPConfiguration": {
            "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/networkInterfaces/nic-vm-tests-362de5f/ipConfigurations/publicIp"
          }
        }
      }
    ],
    "backendIPConfigurations": [
      {
        "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/networkInterfaces/nic-vm-tests-362de5f/ipConfigurations/publicIp"
      }
    ],
    "loadBalancingRules": [
      {
        "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/loadBalancers/lb-vm-tests/loadBalancingRules/lb-rule-1"
      },
      {
        "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/loadBalancers/lb-vm-tests/loadBalancingRules/lb-rule-0"
      }
    ]
  }
}

Status 400 with following data-with-location.json content :
{
  "properties": {
    "location": "francecentral",
    "loadBalancerBackendAddresses": [
      {
        "name": "rg-test_nic-vm-tests-362de5fpublicIp",
        "properties": {
          "networkInterfaceIPConfiguration": {
            "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/networkInterfaces/nic-vm-tests-362de5f/ipConfigurations/publicIp"
          }
        }
      }
    ],
    "backendIPConfigurations": [
      {
        "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/networkInterfaces/nic-vm-tests-362de5f/ipConfigurations/publicIp"
      }
    ],
    "loadBalancingRules": [
      {
        "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/loadBalancers/lb-vm-tests/loadBalancingRules/lb-rule-1"
      },
      {
        "id": "/subscriptions/00000-00000/resourceGroups/rg-test/providers/Microsoft.Network/loadBalancers/lb-vm-tests/loadBalancingRules/lb-rule-0"
      }
    ]
  }
}

Error 400
{
  "error": {
    "code": "InvalidRequestFormat",
    "message": "Cannot parse the request.",
    "details": [
      {
        "code": "InvalidJson",
        "message": "Could not find member 'location' on object of type 'LoadBalancerBackendAddressPoolProperties'. Path 'properties.location', line 3, position 15."
      }
    ]
  }
}

Hello,
This bug has been opened for one year, not fixed yet?
A customer actually ran into this bug.
Is there a plan to get it fixed?

I am still seeing this error, using the Azure/azapi provider (both in ver. 1.3.0 and 1.4.0) in terraform.
Any suggestions on a fix/workaround?

Hi @DNIE-ecco, could you please provide the details for repro? This issue tracked removing the "location" property from one of our JSON templates, as it's an inherited property for loadBalancerBackendAddresses and should not be specified.

Hi @DNIE-ecco, could you please provide the details for repro? This issue tracked removing the "location" property from one of our JSON templates, as it's an inherited property for loadBalancerBackendAddresses and should not be specified.

Hi @thisisanniefang I no longer have a copy of the code used, as I found another way to solve my issue, but where ever I put (or removed) the location property in the resource, I was met by the error during apply. Not in planning.


[BUG] Unable to set tags for a warehouse

Preliminary checks

[X] I have checked that this issue has not already been reported.

[X] I have confirmed this bug exists on the latest version of laktory.

Description
Getting an error when trying to preview/deploy changes to add tags to a warehouse:
╷
│ Error: Extraneous JSON object property
│
│   on stack.tf.json line 1465, in resource.databricks_sql_endpoint.warehouse-small_serverless_cl.tags:
│ 1465:                     "custom_tag": [
│
│ No argument or block type is named "custom_tag". Did you mean "custom_tags"?

Example Code
warehouse-small_serverless_cl:
  name: small_serverless_cl
  cluster_size: X-Small
  enable_serverless_compute: true
  channel_name: CHANNEL_NAME_PREVIEW
  auto_stop_mins: 5
  max_num_clusters: 1
  enable_photon: true
  tags:
    custom_tags:
    - key: test_key
      value: test_value

Installed Versions
Laktory version info:
--------------------
laktory-0.4.15
path-C:\\Users\\goda\\.conda\\envs\\main\\Lib\\site-packages\\laktory
python-3.12.7 | packaged by Anaconda, Inc. | (main, Oct  4 2024, 13:17:27) [MSC v.1929 64 bit (AMD64)]
platform-Windows-2019Server-10.0.19045-SP0
--------------------
azure-identity-NOT FOUND
azure-storage-blob-NOT FOUND
black-NOT FOUND
boto3-NOT FOUND
databricks-sdk-0.34.0
deltalake-NOT FOUND
flit-NOT FOUND
inflect-7.4.0
mkdocs-NOT FOUND
mkdocs-material-NOT FOUND
mkdocs-video-NOT FOUND
mkdocstrings-NOT FOUND
networkx-3.4.1
numpy-2.1.2
pandas-2.2.3
planck-0.0.6
plotly-NOT FOUND
polars-1.10.0
prompt_toolkit-3.0.48
pulumi-NOT FOUND
pulumi_databricks-NOT FOUND
pyarrow-17.0.0
pydantic-2.9.2
pyspark-3.4.0
pytest-8.3.3
pytest-cov-NOT FOUND
pytest-examples-NOT FOUND
python-dateutil-2.9.0.post0
pyyaml-6.0.2
settus-0.0.11
sqlparse-0.5.1
typer-0.12.5
typing_extensions-4.12.2
yfinance-0.2.46
``

Fixed in https://github.com/okube-ai/laktory/pull/284


ciao-scheduler still checks the deleted job

Describe the bug
ciao-scheduler still checks status of destroyed job
To Reproduce
Steps to reproduce the behavior:
1. Create job to listen to a fake website https://www.brotandgames.com/ciaos/, ciao sent notification of status change to '404'
I, [2019-08-30T17:48:42.059041 #1]  INFO -- : [aa51d8d0-17e6-489c-afe4-bfd555d37a7b] ciao-scheduler Created job 'cron_1567187322.0564888_47382620780640' D, [2019-08-30T17:48:42.060153 #1] DEBUG -- : [aa51d8d0-17e6-489c-afe4-bfd555d37a7b]   Check Update (0.2ms)  UPDATE "checks" SET "job" = ?, "next_contact_at" = ? WHERE "checks"."id" = ?  [["job", "cron_1567187322.0564888_47382620780640"], ["next_contact_at", "2019-08-30 17:49:00"], ["id", 1]] D, [2019-08-30T17:48:42.074029 #1] DEBUG -- : [aa51d8d0-17e6-489c-afe4-bfd555d37a7b]    (13.7ms)  commit transaction I, [2019-08-30T17:48:42.074750 #1]  INFO -- : [aa51d8d0-17e6-489c-afe4-bfd555d37a7b] Redirected to http://localhost:8090/checks/1 I, [2019-08-30T17:48:42.074931 #1]  INFO -- : [aa51d8d0-17e6-489c-afe4-bfd555d37a7b] Completed 302 Found in 26ms (ActiveRecord: 15.0ms | Allocations: 3810) I, [2019-08-30T17:48:42.078510 #1]  INFO -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4] Started GET "/checks/1" for <IP_ADDRESS> at 2019-08-30 17:48:42 +0000 I, [2019-08-30T17:48:42.079181 #1]  INFO -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4] Processing by ChecksController#show as HTML I, [2019-08-30T17:48:42.079248 #1]  INFO -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4]   Parameters: {"id"=>"1"} D, [2019-08-30T17:48:42.080663 #1] DEBUG -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4]   Check Load (0.2ms)  SELECT "checks".* FROM "checks" WHERE "checks"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]] I, [2019-08-30T17:48:42.081500 #1]  INFO -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4]   Rendering checks/show.html.erb within layouts/application I, [2019-08-30T17:48:42.083150 #1]  INFO -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4]   Rendered checks/show.html.erb within layouts/application (Duration: 1.6ms | Allocations: 737) I, [2019-08-30T17:48:42.083956 #1]  INFO -- : [1ebd7531-2894-4b19-8228-f5e4dd0e4ed4] Completed 200 OK in 5ms (Views: 2.6ms | ActiveRecord: 0.2ms | Allocations: 2035) I, [2019-08-30T17:48:43.790431 #1]  INFO -- : [4621b832-7e9b-40c8-a708-4a7f95f22bdf] Started GET "/checks" for <IP_ADDRESS> at 2019-08-30 17:48:43 +0000 I, [2019-08-30T17:48:43.793506 #1]  INFO -- : [4621b832-7e9b-40c8-a708-4a7f95f22bdf] Processing by ChecksController#index as HTML I, [2019-08-30T17:48:43.800384 #1]  INFO -- : [4621b832-7e9b-40c8-a708-4a7f95f22bdf]   Rendering checks/index.html.erb within layouts/application D, [2019-08-30T17:48:43.811135 #1] DEBUG -- : [4621b832-7e9b-40c8-a708-4a7f95f22bdf]   Check Load (1.1ms)  SELECT "checks".* FROM "checks" I, [2019-08-30T17:48:43.815240 #1]  INFO -- : [4621b832-7e9b-40c8-a708-4a7f95f22bdf]   Rendered checks/index.html.erb within layouts/application (Duration: 14.5ms | Allocations: 1078) I, [2019-08-30T17:48:43.820324 #1]  INFO -- : [4621b832-7e9b-40c8-a708-4a7f95f22bdf] Completed 200 OK in 25ms (Views: 19.1ms | ActiveRecord: 1.1ms | Allocations: 2049) I, [2019-08-30T17:49:06.002335 #1]  INFO -- : ciao-scheduler Checked 'https://www.brotandgames.com/ciaos/' at '2019-08-31 00:49:06 +0700' and got '404' D, [2019-08-30T17:49:06.021063 #1] DEBUG -- :   Check Update (17.1ms)  UPDATE "checks" SET "status" = ?, "last_contact_at" = ?, "next_contact_at" = ? WHERE "checks"."id" = ?  [["status", "404"], ["last_contact_at", "2019-08-30 17:49:06.002080"], ["next_contact_at", "2019-08-30 17:50:00"], ["id", 1]] I, [2019-08-30T17:49:06.021264 #1]  INFO -- : ciao-scheduler Check 'ciao': Status changed from '' to '404'

2. Delete the job
I, [2019-08-30T17:49:26.031284 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Started DELETE "/checks/1" for <IP_ADDRESS> at 2019-08-30 17:49:26 +0000 I, [2019-08-30T17:49:26.034254 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Processing by ChecksController#destroy as HTML I, [2019-08-30T17:49:26.034523 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]   Parameters: {"authenticity_token"=>"sdQSsoIKtOud7EGrr4r8CrikbGyqflEb5pEJQajIcKQydTpTFouvG0JUtzTHK1m8/zwK+WElOAiZjFbmz4jZ8A==", "id"=>"1"} D, [2019-08-30T17:49:26.039458 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]   Check Load (0.6ms)  SELECT "checks".* FROM "checks" WHERE "checks"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]] D, [2019-08-30T17:49:26.042323 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]    (0.2ms)  begin transaction D, [2019-08-30T17:49:26.043908 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]   Check Destroy (0.8ms)  DELETE FROM "checks" WHERE "checks"."id" = ?  [["id", 1]] D, [2019-08-30T17:49:26.063461 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]    (18.2ms)  commit transaction I, [2019-08-30T17:49:26.065355 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Redirected to http://localhost:8090/checks I, [2019-08-30T17:49:26.065914 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Completed 302 Found in 31ms (ActiveRecord: 19.9ms | Allocations: 741) I, [2019-08-30T17:49:26.080387 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2] Started GET "/checks" for <IP_ADDRESS> at 2019-08-30 17:49:26 +0000 I, [2019-08-30T17:49:26.083450 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2] Processing by ChecksController#index as HTML I, [2019-08-30T17:49:26.088332 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2]   Rendering checks/index.html.erb within layouts/application D, [2019-08-30T17:49:26.091333 #1] DEBUG -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2]   Check Load (0.5ms)  SELECT "checks".* FROM "checks" I, [2019-08-30T17:49:26.091917 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2]   Rendered checks/index.html.erb within layouts/application (Duration: 3.2ms | Allocations: 191) I, [2019-08-30T17:49:26.093838 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2] Completed 200 OK in 10ms (Views: 6.3ms | ActiveRecord: 0.5ms | Allocations: 1023)
3. Check logs and see that job was being checked
I, [2019-08-30T17:49:26.031284 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Started DELETE "/checks/1" for <IP_ADDRESS> at 2019-08-30 17:49:26 +0000 I, [2019-08-30T17:49:26.034254 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Processing by ChecksController#destroy as HTML I, [2019-08-30T17:49:26.034523 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]   Parameters: {"authenticity_token"=>"sdQSsoIKtOud7EGrr4r8CrikbGyqflEb5pEJQajIcKQydTpTFouvG0JUtzTHK1m8/zwK+WElOAiZjFbmz4jZ8A==", "id"=>"1"} D, [2019-08-30T17:49:26.039458 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]   Check Load (0.6ms)  SELECT "checks".* FROM "checks" WHERE "checks"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]] D, [2019-08-30T17:49:26.042323 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]    (0.2ms)  begin transaction D, [2019-08-30T17:49:26.043908 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]   Check Destroy (0.8ms)  DELETE FROM "checks" WHERE "checks"."id" = ?  [["id", 1]] D, [2019-08-30T17:49:26.063461 #1] DEBUG -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185]    (18.2ms)  commit transaction I, [2019-08-30T17:49:26.065355 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Redirected to http://localhost:8090/checks I, [2019-08-30T17:49:26.065914 #1]  INFO -- : [af213b8c-6cc6-40c3-8fe6-da53e2d22185] Completed 302 Found in 31ms (ActiveRecord: 19.9ms | Allocations: 741) I, [2019-08-30T17:49:26.080387 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2] Started GET "/checks" for <IP_ADDRESS> at 2019-08-30 17:49:26 +0000 I, [2019-08-30T17:49:26.083450 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2] Processing by ChecksController#index as HTML I, [2019-08-30T17:49:26.088332 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2]   Rendering checks/index.html.erb within layouts/application D, [2019-08-30T17:49:26.091333 #1] DEBUG -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2]   Check Load (0.5ms)  SELECT "checks".* FROM "checks" I, [2019-08-30T17:49:26.091917 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2]   Rendered checks/index.html.erb within layouts/application (Duration: 3.2ms | Allocations: 191) I, [2019-08-30T17:49:26.093838 #1]  INFO -- : [0d69b06d-9aa5-4373-bc56-da166a5df0d2] Completed 200 OK in 10ms (Views: 6.3ms | ActiveRecord: 0.5ms | Allocations: 1023) **I, [2019-08-30T17:50:01.367594 #1]  INFO -- : ciao-scheduler Checked 'https://www.brotandgames.com/ciaos/' at '2019-08-31 00:50:01 +0700' and got '404' D, [2019-08-30T17:50:01.368662 #1] DEBUG -- :   Check Update (0.2ms)  UPDATE "checks" SET "status" = ?, "last_contact_at" = ?, "next_contact_at" = ? WHERE "checks"."id" = ?  [["status", "404"], ["last_contact_at", "2019-08-30 17:50:01.367424"], ["next_contact_at", "2019-08-30 17:51:00"], ["id", 1]] I, [2019-08-30T17:51:07.340141 #1]  INFO -- : ciao-scheduler Checked 'https://www.brotandgames.com/ciaos/' at '2019-08-31 00:51:07 +0700' and got '404' D, [2019-08-30T17:51:07.342188 #1] DEBUG -- :   Check Update (0.4ms)  UPDATE "checks" SET "status" = ?, "last_contact_at" = ?, "next_contact_at" = ? WHERE "checks"."id" = ?  [["status", "404"], ["last_contact_at", "2019-08-30 17:51:07.339910"], ["next_contact_at", "2019-08-30 17:52:00"], ["id", 1]]**
Expected behavior
Job should be deleted completely from cron-job

@finneon Thanks for reporting.
WIll be fixed in the next release.

Fixed in https://github.com/brotandgames/ciao/releases/tag/1.6.2


Log filesystem permissions when running with DEBUG

This was created to help troubleshoot permission issue, not sure we need this, I'll leave it here and probably close it soon.


[W5.11][F14-A2] Marcus Chen

Enhancement allows find command to be insensitive
New function added to convert a list of string into lowercased string version
Keywords and name are converted before comparing hence insensitive
Case of the name stored is not modified

Interesting idea. Probably a suggestion would be to store it in a format of which you wont have a to modify both sides, but only one side.


'wake runSimWith pioDUT Verilator' fails. Two functions in freedom-metal/watchdog.c are undeclared.

The build exits with following error:
src/watchdog.c: In function 'metal_watchdog_get_device':
src/watchdog.c:22:15: error: '__METAL_DT_MAX_WDOGS' undeclared (first use in this function)
   22 |   if (index > __METAL_DT_MAX_WDOGS) {
      |               ^~~~~~~~~~~~~~~~~~~~
src/watchdog.c:22:15: note: each undeclared identifier is reported only once for each function it appears in
src/watchdog.c:26:36: error: '__metal_wdog_table' undeclared (first use in this function); did you mean '__metal_spi_table'?
   26 |   return (struct metal_watchdog *) __metal_wdog_table[index];
      |                                    ^~~~~~~~~~~~~~~~~~
      |                                    __metal_spi_table
PANIC: Error "gcc: could not find output file: build/api-generator-sifive/pioDUT/programs/demo/demo.elf" Nil
Requirement !panic_called failed at src/exception.cpp:64

There are no functions named __METAL_DT_MAX_WDOGS & __metal_wdog-table when you grep it in the workspace. I checked in the master repo of freedom-metal but these functions are missing their too. How do I get past this?

Resolved this by updating package freedom-devicetree-tools which contains the definition of these methods.


Add a client setting to require request objects

to enforce the usage of request object . IOW - authN on the authorize endpoint

Either that means all parameters must be inside - or do we need a separate setting for that?

also re-visit: https://tools.ietf.org/html/draft-ietf-oauth-jwsreq-20


Fix typo and add code styling

Pamater is a cool word though! ;)

Thanks very much for helping! 👍


Black screen between Splash Screen and First Screen (iOS)

I have a problem with my flutter application. On iOS, everytime I launch it, I see a black screen for 1-2 seconds before my first screen can be loaded. The behaviour is like the one showed in video
I have setup a splashscreen editing LaunchScreen.storyboard. This happens even if I try to launch the default flutter app (counter), and both in emulator and real device.
flutter doctor -v output

[✓] Flutter (Channel beta, v0.11.9, on Mac OS X 10.14 18A391, locale it-IT)
    • Flutter version 0.11.9 at /Users/cosimosguanci/Downloads/flutter
    • Framework revision d48e6e433c (2 weeks ago), 2018-11-20 22:05:23 -0500
    • Engine revision 5c8147450d
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[!] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/cosimosguanci/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[!] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    ✗ ideviceinstaller is not installed; this is used to discover connected iOS devices.
      To install with Brew, run:
        brew install --HEAD usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ✗ ios-deploy not installed. To install with Brew:
        brew install ios-deploy
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 31.1.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[!] IntelliJ IDEA Community Edition (version 2018.2.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.io/intellij-setup/#installing-the-plugins

[✓] Connected device (1 available)
    • iPhone XS Max • 0A99CB7D-190D-4E59-B643-36E82E24F06E • ios • iOS 12.0 (simulator)

So it has not yet been solved?

@CosimoSguanci I don't understand the question. You wouldn't have reported it if it were solved.
#20827 is still open. It would be closed if it were considered fixed.

@zoechi Ok, you're right, I'll follow that issue from now. Thank you!

I think this issue is only for debug build. I faced the same problem. But when i did the release build, the issue was gone.

https://github.com/flutter/flutter/issues/47582#issuecomment-596944709


Per tenant scaling group binding

Models for a10-openstack's beehive per tenant binding.
For https://github.com/a10networks/a10-openstack-planning/issues/17

scaling group tenant binding table
a10_scaling_group_tenant_binding_loadbalancers table
allowed_address_pairs default the mac address when unspecified

Includes testing improvements and fixes for errors discovered by testing improvements

Tests for migrations, add license to new migrations
glance client is no longer used in instance manager
Run tests with mysql
Create new database for each test
Fix db column types

I'd really like to see tests pass for this...

I'd like to see tests pass, but LGTM.  I'll merge once tests pass.

check

check

check

check

check

check

check

Closing/reopening to kick the test infrastructure.

check

This needs fixes for the neutron-lib move that are currently in #382

check

check


⚠ Processors has degraded performance

In 01ac61a, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 47 ms

Resolved: Processors performance has improved in 892a0e2.


Where class

Where class is not very convinient now. There are some possible improvements:

Where.create is redundant for most methods if it's empty. Add overloaded methods without this parameter.

We still have to write requests in SQL, it should be possible to do it in with methods like lessThan, equalTo and so on.

Fixed in #6


Ques: Does this install spark

Does the helm chart for Livy deploy Spark? If not, how do we configure Spark helm chart and Livy helm chart so they can "talk" to each other/submit jobs via REST services?

Hi @joehoeller , thx for the question.
Basically there are 2 Livy job submission modes: Batch and Interactive.
For Batch mode the communication flow is the following:

Livy talks to Kubernetes API to request Spark Driver
Spark Driver talks to Kubernetes API to request Spark Executors and resolves them once created to communicate tasks and track the status/progress
Livy resolves Spark Driver and Executrors via Kubernetes API and tracks their statuses
So no direct interaction of Livy and Spark in this mode.
For interactive mode:
Livy talks to Kubernetes API to request Spark Driver with the specific entrypoint JAR (for the interactive mode) and spins up the RPC server asynchronously waiting for the client registration request
Spark Driver talks to Kubernetes to request the executors and calls Livy RPC server to register and share its own RPC server endpoint
Livy communicates with Spark Driver via their RPC servers

Note: both modes works in basically the same way on Yarn, the only replacement here is that we use Kubernetes as the resource manager instead.
Does that answer your question? Please let me know if you would like to know more about any specific part of these flows. Best.

Wow, that’s a really complete answer, thank you for that.
So, that leads me to my next 2 Ques:
How can I expose the necessary nodePorts to expose the UI?
Is it possible to communicate RESTfully and send jobs via notebook?
On Thu, Dec 17, 2020 at 12:39 AM Aliaksandr Sasnouskikh <
<EMAIL_ADDRESS>wrote:

Hi @joehoeller https://github.com/joehoeller , thx for the question.
Basically there are 2 Livy job submission modes: Batch and Interactive.
For Batch mode the communication flow is the following:

Livy talks to Kubernetes API to request Spark Driver
Spark Driver talks to Kubernetes API to request Spark Executors and
resolves them once created to communicate tasks and track the
status/progress
Livy resolves Spark Driver and Executrors via Kubernetes API and
tracks their statuses
So no direct interaction of Livy and Spark in this mode.

For interactive mode:

Livy talks to Kubernetes API to request Spark Driver with the
specific entrypoint JAR (for the interactive mode) and spins up the RPC
server asynchronously waiting for the client registration request
Spark Driver talks to Kubernetes to request the executors and calls
Livy RPC server to register and share its own RPC server endpoint
Livy communicates with Spark Driver via their RPC servers

Note: both modes works in basically the same way on Yarn, the only
replacement here is that we use Kubernetes as the resource manager instead.
Does that answer your question? Please let me know if you would like to
know more about any specific part of these flows. Best.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JahstreetOrg/spark-on-kubernetes-helm/issues/53#issuecomment-747243593,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABHVQHC4MAMYWH7RDRR23ULSVGRRVANCNFSM4U6VQZMQ
.

Awesome, happy to help.
To answer the rest 2 questions I would suggest you to give a try to this step-by-step installation guide on Minikube. This will show you how to spin up the required components and have JupyterHub with Jupyter notebooks per user exposed externally from the Kubernetes cluster as well as direct access to Livy UI with the links to Spark UI.
Also some design details can be found here.
In short: to setup the Jupyter -> Livy -> Spark communication Sparkmagic is used. To expose the component endpoints Nginx Controller backed Ingresses are used.

Hi @salinaaaaaa , is that issue fixed for you?

Hi @jahstreet , so if I understand correctly, in interactive mode (the mode you would probably use w/ sparkmagic & jupyter notebook), Livy would:

ask Kubernetes to create a driver job
The driver job would create a pod
Driver asks kubernetes to create executor pods
Driver kills executor pod when they finish
When driver finishes, the pod automatically dies as it is a Kubernetes job.

Hi @Almenon , you're almost correct.

ask Kubernetes to create a driver POD
...
When driver finishes, the pod automatically completes as its pod entrypoint completes
Pod is kept in the completed state until Livy removes it on Live session garbage collection trigger as per configured TTL

Thanks! Sorry for the basic question, but what does it mean when you say the "interactive session completes"? in this example, would the session complete when the function get finishes?
double pi = client.submit(new PiJob(samples)).get();
For context I'm a DevOps engineer, not a spark developer, so this stuff is new to me 😅


The code skips whatever is written after ''Filereader.onloadend = "

I am using Filesharer in my Ionic 5 app. But It is not working.
I have used breakpoints in the code and found out that, the code is not able to reach after Filereader.onloadend =() => { and after. This is the reason I am not able to use the plugin in my app.
Please help.

I was having the same issue.
For me it solved by uninstalling all of the cordova plugins
In my case it was cordova-plugin-file only,
So I used capacitor's FileSystem Plugin instead of  cordova-plugin-file
Capacitor's Plugins don't require any installation they comes with @capacitor/core
Let me know if it works or not

I released the new version 3.0.0 today
If you can and it is still relevant please test this issue with the new version. (Capacitor 3.0.0 required)
I keep this issue open a few days and close it afterwards if there is no feedback.
BR Michael

this is srill happening on build 3.0.0 for ionic 5, w/ cap ^3 @moberwasserlechner

the issue is conflicting with cordova-plugin-file

the issue this plugin is conflicting with cordova-plugin-file

This is a bug in this plugin, I was also having this same issue.
The solutions is to use Capacitor's Plugin
You can you us Capacitor's FileSystem Plugin for your usecase.
Note: For capacitor 3+ you'll have to install it with npm install @capacitor/filesystem

Closed as outdated.


How to use variables inside instagram_feed()?

Hi!
I'm trying to implement custom template with this plugin. When I put {{ instagram_feed() }} into my twig, I see output of my templates/partials/instagram.html.twig.
But how to pass some page.header variables and other parameters to this function and use it inside instagram.html.twig?

If you don't need those variables in the Instagram loop, you could just wrap your instagram block into your own .twig template and pass all the needed variables to it.
The function instagram_feed() single purpose is to just display the feed.
If you really need, you can customize the plugin and pass your needed variables here: https://github.com/artifex404/grav-plugin-instagram/blob/master/instagram.php#L99

Simple {% include 'partials/instagram.html.twig' %} don't work.
Here I see that function expect parameters: https://github.com/artifex404/grav-plugin-instagram/blob/master/instagram.php#L58
but this variable is not used. Why?

Please refer to PHP and twig documentation. Closing this issue as it is not related to the plugin functionality.

This is what I needed: https://github.com/artifex404/grav-plugin-instagram/pull/11


[mdns] add scanner iterface

This allows the upper layers to locate a device with node and fabric ID.

Problem
We don't have a unified interface to scan devices. This feature is required by the exchange manager to locate
a device with the node and fabric ID.
Summary of Changes

Add scanner interface
Implement scanner interface with the platform API.
Fix unstable static variable initialization order.
Add and example using the scanner interface to locate a device.

@gjc13 ?

@andy31415 @mspang
After getting settled I may resume my work. Please kindly re-review.

@BroderickCarlin @bzbarsky-apple Please kindly review.

Replaced by https://github.com/project-chip/connectedhomeip/pull/5025


无法删除旧的配置

[ ] I have checked the discussions
[ ] I have searched the issues of this repository and believe that this is not a duplicate.
[ ] I have checked the FAQ of this repository and believe that this is not a duplicate.

Describe the bug
A clear and concise description of what the bug is.

如图,界面上展示的是1天，然而这个最后时间过去好几个月了，依然展示，无法删除
To Reproduce
Steps to reproduce the behavior:
1.
2.
3.
4.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional Details & Logs

Version
Error logs
Configuration
Platform and Operating System

说明这几个实例还连着。配置获取时间是指第一次拿到这个配置的时间。

我代码里早已去除了其引用

通过日志发现，client会一直试图加载application 这个namespace

可以 debug 或者使用 arthas 看下是哪里引用了 application namespace


Add static_asserts for template parameters of basic_fixed_string

Example from implementation of basic_string_view by Microsoft: https://github.com/microsoft/STL/blob/main/stl/inc/xstring#L1224-L1230

static_assert() inside a template controls only the instatiation of the type definition of the template. Not the mechanism of template type definition.
template <typename T>
struct not_a_vector {
  static_assert(std::is_trivially_copyable_v<T>,
                "\n\nnot_a_vector<>T -- can handle only trivially "
                "copiable types!\n\n");
} ;

// no warning even if -Wall is used
   using should_not_compile_but_it_does
               = not_a_vector<std::string>  ;

Consider instead controling the type definition. The type made when template get's its concrete arguments.
template <typename T,
std::enable_if_t< std::is_trivially_copyable_v<T>, int > = 0
>
class better_not_a_vector {
} ;

using should_not_compile_and_it_does_not =
               better_not_a_vector<std::string>;

using should_compile_and_it_does =
               better_not_a_vector<bool>;

better_not_a_vector<T> can not be promoted to type definition if the author's requirement is not satisfied.
Gobolt here

I don't consider this as an issue. It will be a compile-time error anyway, when the type alias is used.
I don't see any harm in postponing the compile-time error.

if not_a_vector is in the library not owned by you (it might be owned by MS STL for example) that will go unnoticed, and that might be a problem.
For example:
// this is inside library
// I am selling this library
#include <not_a_vector> // not owned by us
// no warning even if -Wall is used
   using  special_not_a_vector_of_strings // should_not_compile_but_it_does
               = not_a_vector<std::string>  ;

It might happen this will go unnoticed for some months, and then it will be noticed by some important customer.
What is the solution? not_a_vector vendor has this philosophy called "I don't see any harm in postponing the compile-time error", and consequently does not (or can not) change not_a_vector.

Another example from
// https://github.com/unterumarmung/hyper_log_log/blob/master/hll/hyper_log_log.hxx

template<typename T, std::size_t k>
class hyper_log_log
{
public:
    static_assert(k >= 4 && k <= 30, "k must be in a range [4; 30]");
} ;

using timebomb_type = hyper_log_log<bool, 1> ;

// few months (or years) after:
// timebomb_type boom ;

// forward declaration of a type constrained template
template <typename T, std::size_t k,
          std::enable_if_t<k >= 4 && k <= 30, int> = 0>
class better_hyper_log_log ;

// can not happen to be used few months or years down the line
// does not compile
// using impossible_type = better_hyper_log_log<bool, 1> ;

using ok_type = better_hyper_log_log<bool, 13> ;

This peculiarity is what one might describe as "C++ foot gun with a timer" ...

Actually, this is the correct solution
template< typename T, std::size_t k>
#if __cplusplus >= 202002L
    // C++20 (and later) code
requires // requires-clause (ad-hoc constraint)
(k >= 4 && k <= 30)
#endif
class constrained_hyper_log_log ;

using constrained_derived_type = constrained_hyper_log_log<bool, 13> ;

Constrained types are not constrained instantiation.


feat: adds new commands and capabilities (sso, custom idp, etc.)

Updated Login Flow
Due to the added options of SSO and Custom Origin the login flow is now the following:

Choose API Region
Select Login
Enter temporary code

only relevant if single-sign-on is chosen at step 2)

Select Custom Origin

Prompt is only shown if at least one origin is maintained in config store

Select Org
Select Space

Features

new command for triggering a resetting of the target (org, space) via btpcflogin t
new command for adding entries in the passLogins property of the config store via btpcflogin add-login
new command for adding an origin of a custom identity provider to the cli config store via btpcflogin add-origin

Structural Changes

Commands are realized via npm module commander
Regions were moved to JSON file at /src/util/data/regions.json
/src/index.ts was refactored in smaller sub modules

/src/commands - contains entry points for commands of cli
/src/util - contains helper-/sub modules for cli
/src/index.ts - now only entry point where cli is configured with Commander

Miscellanous

All files are formatted with prettier (added also to package.json).
Build now contains only .js files

Requested changes have been applied.
Note:
Due to the changing of exec to spawnSync, ora was chosen a spinner library.

Adjustments are made.
I also made some other refactorings as well:

All cf cli calls are now located in a single class module
singleton exports were removed
error handler could be moved into cf cli module


Dynamic memory allocation (releasing after use)

I have a very big docker project running.
When I stop working on it, I usually just stop the containers in OrbStack to free up memory (16g pain).
So with Version 0.11.3 (1648) stopping the (all) containers does not free up memory in the "Virtual Machine Service". When I stop the process in Activity Monitor and  re-start the container runtime within OrbStack, the VMS is back at 575m.
I'm not sure if it was like this all the time since I have always just stopped the containers without explicitly checking the memory usage, but it feels like this has been freed up in earlier versions because I never ran into memory issues with stopped containers - but I might just not have been noticing it before.
Steps to reproduce the behavior:

Go to Activity Montor and look up "Virtual Machine Service". Should be quite high depending on the running containers
Stop all running containers
Go to Activity Montor and look up "Virtual Machine Service". Should still be ~ equal to first check
Stop the "Virtual Machine Service" process
Open OrbStack and Click the "Start" Button under "Containers"
Go to Activity Montor and look up "Virtual Machine Service". Should still be way less

Expected behavior
Stopping the containers should free up memory in VMS
Logs
vmgr.log
Info report
OrbStack info:
  Version: 0.11.3 (110300)
  Commit: f953c63b1cbfe3c2988c97e0b42680600cf0e060 (v0.11.3)

System info:
  macOS: 13.3.1 (22E261)
  CPU: arm64, 10 cores
  CPU model: Apple M1 Pro

It's always been this way. Memory is used on demand, but once it's been used, it can't be freed without restarting OrbStack.
Dynamic memory allocation has always been a planned feature, but there's a macOS bug that makes it impossible to do in a production-ready way. More details + prototype: https://twitter.com/kdrag0n/status/1645645284721184768
I chatted with Apple last week and they're working on it, but there's still no fix as of now (even on macOS Sonoma Developer Beta 1).
My suggestions for now:

Try lowering the memory limit. We have an advanced memory management setup that allows most workloads to run with less memory than usual.
If the memory usage isn't causing performance issues for you, then don't worry about it. macOS has transparent memory compression that handles pressure quite well.

@kdrag0n Is there an update to Apple ticket FB11996689 regarding this?

No news from Apple.

@kdrag0n Any update to Apple ticket FB11996689 wrt this?


Generation Nans

Pull Request
Passes Nans to model when wind generation data does not exist for the given time period.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Please also list any relevant details for your test configuration

[ ] Yes

If your changes affect data processing, have you plotted any changes? i.e. have you done a quick sanity check?

[ ] Yes

Checklist:

[ ] My code follows OCF's coding style guidelines
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked my code and corrected any misspellings

@peterdudfield The model doesn't seem like being passed Nans (or zeros for that matter). Get the following error:
File "/Users/chris/Library/Caches/pypoetry/virtualenvs/india-forecast-app-_WmL7Pf1-py3.11/lib/python3.11/site-packages/pvnet/models/multimodal/multimodal.py", line 334, in forward
    id = x[BatchKey[f"{self._target_key_name}_id"]][:, 0].int()
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
IndexError: index 0 is out of bounds for dimension 1 with size 0


Invalid gltf file with EXT_mesh_gpu_instancing

Hi !
I'm trying to load gltf file with the extension EXT_mesh_gpu_instancing, I took this one https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/SimpleInstancing but it return an invalid gltf. I looked at the code and it seems that this line
CGLTF_PTRFIXUP_REQ(data->nodes[i].mesh_gpu_instancing.buffer_view, data->buffer_views, data->buffer_views_count);
return an error as the buffer view is null.
Any idea if it's a bug or I'm doing something wrong ?
Thank you.

This bug was fixed by https://github.com/jkuhlmann/cgltf/commit/d36646f11e4a3e8ea398db20ee4ea4cfc0e1e0ec
If you’re using the latest numbered version then you won’t have the fix yet. Might be worth making a new release as the last one was almost a year ago? @jkuhlmann

Ah my bad ! I am using the latest release yes, so I don't have the fix. I looked at the opened and closed issues with instancing as keyword and didn't find anything relevant. I should have looked at the PR maybe.
Anyway, Thank you !


Delay asking for permission on installation

Can I delay the prompt asking for permissions?
I don´t want to ask right after opening the application but after a few steps.

We can have a iOS-specific js method to request permission, of course.

I'll comment here as soon as soon as the feature is published.

Thanks!

Hi @loama, sorry for the delay, but the feature is now release as v6.0.0.

Impressive, thanks @andrehtissot ! Will update right now


Secret vars

Depends on #535.
Adds a step that gets the value to set a variable to from an environment variable. Also, prevents that variable from showing up in the report, replacing the actual value with ${ENV_VAR_NAME}.
Still need to:

[ ] add a test interview in https://github.com/plocket/docassemble-ALAutomatedTestingTests, and a feature test to https://github.com/SuffolkLITLab/ALKiln/blob/main/tests/features/interactive_steps.feature.
[ ] add documentation to the docs page

This is a great improvement. We might actually need to ensure this behavior in several more places.

Tests are failing because https://github.com/plocket/docassemble-ALAutomatedTestingTests/pull/185 needs to be merged.

A couple more things I need to explore, but I'll need to work on it tomorrow.


[C++] Add type ID, Type and Array classes for RLE

Based on top of ARROW-17258
Mostly picking these parts from ARROW-16772 and ARROW-16781 to create an easier order to merge things
Reporter: Tobias Zagorni / @zagto
PRs and other links:

GitHub Pull Request #13754

Note: This issue was originally created as ARROW-17261. Please see the migration documentation for further details.

take


change runChangeset

#124  👈
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @matthappens and the rest of your teammates on  Graphite


Add Angel to "Web framework for Dart"

I don't know if it is a minimalist framework, because the description is "full-stack framework", what do you think about this?

Ah, in that case, then it might not be good to add it.


Fix permissions for id_rsa

I'm not sure if that is correct. If i remember correctly the folder needs correct permissions as well.

:+1:
I've been using the same workaround in .drone.yml...
build:
  commands:
    - chmod 600 $HOME/.ssh/id_rsa

Yeah I wondered if the folder did too hence my branch name, but rethinking pretty sure it doesn't since it doesn't contain any other sensitive files except the private key. This solution certainly works anyway!

My local .sshfolder got 600 as well as all private keys.

600 isn't really a correct permission for a directory. At the very least it should be 700.
In any case, SSH doesn't care about the directory permissions, just the permissions on the private key. It's actually quite useful for people to be able to access your public key.

Have updated for best of both worlds, dir to 700, private key to 600.

Why 700? The machines I've got access to are all set to 600.

http://unix.stackexchange.com/questions/21251/how-do-directory-permissions-in-linux-work that was the reference I used after reading due to @msteinert's comment

At least it's the decision of @bradrydzewski what he prefers ;)

Looks good to me.  Let's stick with 0700 since that is what we also use for the .ssh directory in our git plugin [1]
[1] https://github.com/drone-plugins/drone-git/blob/master/main.go#L231

as a side note, I should mention that Drone also uses netrc files. So if you are doing something like a git clone or npm install or go get or whatever to download private repositories during your build, you can use the https url to avoid having to manage keys (remove drone key from github repository, re-add it to user account, etc)
this is still a great pull request, but figured I'd advertise this new feature as well :)

I'll be honest that's one feature that really made us change to 0.4, and so far after a little bit of teething we are loving it!  Sadly though some dependencies of dependencies insisted on being fetched over ssh!


Option to display only ratings without triggering any events

Sometimes we want to display only ratings without triggering events that will later change rating value and CSS components. This is useful for displaying just a static rating of something.

@kalirocket makes sense. Will add this to the next batch of updates


mitogen_lxd plugin is invoking lxc-attach (classic LXC)

Super easy fix, just need to introduce a new connection type.

Hey @boxrick both this and #338 are on 'dmw' branch now. Would you care to give it a test?

This will make it into the next release. To be updated when a new release is made, subscribe to https://www.freelists.org/list/mitogen-announce
Thanks for reporting this!


fix: report format in multiple terminal envs (close #33)

Fix #33

Wrong dest branch. Will create another new one to next. Thanks.


Problem using gpt-4-vision-preview with ExOpenAI.Completions.create_completion

Hi everyone. I am not quite sure where or who to ask about this one, but I’ll start here. I am trying to use OpenAI’s new “gpt-4-vision-preview” model. I have two bits of code, one using a RAW post via HTTPPoison and the other using ExElixir. The raw call works, but the ExElixir one doesn’t. As far as I can tell, I am sending in exactly the same params, but I’m obviously doing something dumb because one call works and the other does not. Is there anything obvious here that would lead to the error in the second case?
This call (using a raw post via httppoison) works:
IO.puts("----------------------")
IO.puts("Image Description: RAW")
IO.puts("----------------------")

openai_api_key = System.get_env("OPENAI_API_KEY")
openai_organisation_key = System.get_env("OPENAI_ORGANIZATION_KEY")

# Path to your image
image_path = home_dir <> "image.png"

# Getting the base64 string
base64_image = image_path |> File.read!() |> Base.encode64()

headers = [
  {"Content-Type",  "application/json"},
  {"Authorization", "Bearer " <> openai_api_key},
  {"Organisation",  "Bearer " <> openai_organisation_key}
]

payload = %{
  "model" => "gpt-4-vision-preview",
  "messages" => [
    %{
      "role" => "user",
      "content" => [
        %{"type" => "text", "text" => "Describe this image"},
        %{
          "type" => "image_url",
          "image_url" => %{
            "url" => "data:image/jpeg;base64," <> base64_image
          }
        }
      ]
    }
  ],
  "max_tokens" => 300
}
dbg(payload)

# Perform the HTTP POST request
response = HTTPoison.post!("https://api.openai.com/v1/chat/completions", Jason.encode!(payload), headers, [recv_timeout: 10000])

# Print the JSON response
IO.inspect(Jason.decode!(response.body))

This one (using ex_openai) does not:
IO.puts("-------------------------")
IO.puts("Image Description: OpenAI")
IO.puts("-------------------------")

model = "gpt-4-vision-preview"
prompt = "Describe this image"
image = File.read!(home_dir <> "image.png")
image64 = Base.encode64(image)
msgs = [
  %{
    content: [
      %{type: "text", text: prompt },
      %{
        type: "image",
        image_url: %{
          "url" => "data:image/jpeg;base64," <> image64
        }
      }
    ],
    role: "user"
  }
]
{:ok, msgs_json} = msgs |> Jason.encode
dbg(msgs)
dbg(msgs_json)

case ExOpenAI.Completions.create_completion(model, msgs_json, max_tokens: 300) do
  {:ok, result_json} ->
    dbg result_json

  {:error, reason_json} ->
    dbg reason_json
end

The error in the second case is:
%{
  "error" => %{
    "code" => nil,
    "message" => "2 validation errors for Request\nbody -> prompt\n  value is not a valid list (type=type_error.list)\nbody -> prompt\n  value is not a valid list (type=type_error.list)",
    "param" => nil,
    "type" => "invalid_request_error"
  }
}

There is obviously something a bit weird (or different) in how ExOpenAI.Completions.create_completion wraps up the params that I am not understanding or misconfiguring somehow.
Any ideas would be very helpful! Thanks.

Thanks for reporting, let me look into that.
Just checking - have you tried the latest main branch? I've just on the weekend updated the docs to fit the latest OpenAI state

No probs. Happy to help! Thanks for putting the effort into this awesome lib! I have not checked the main branch, but I'll give it a go today and see if that works. Thanks.

Here you go, did a quick test in iex and it works on latest head. Just a bit weirdly formatted :)
Code:
			msgs = [
				%ExOpenAI.Components.ChatCompletionRequestUserMessage{role: :user,
				content: [%ExOpenAI.Components.ChatCompletionRequestMessageContentPartImage{
					type: :image_url,
					image_url: "https://lh3.googleusercontent.com/wAPeTvxh_EwOisF8kMR2L2eOrIOzjfA5AjE28W5asyfGeH85glwrO6zyqL71dCC26R63chADTO7DLOjnqRoXXOAB8t2f4C3QnU6o0BA"
				}
				]},
			]
ExOpenAI.Chat.create_chat_completion(msgs, "gpt-4-vision-preview")

{:ok,
 %ExOpenAI.Components.CreateChatCompletionResponse{
   id: "chatcmpl-8KNhE1XbdgD1TqdXOugxUk494QkZA",
   created:<PHONE_NUMBER>,
   object: "chat.completion",
   model: "gpt-4-1106-vision-preview",
   choices: [
     %{
       index: 0,
       message: %{
         role: "assistant",
         content: "You've shared an image of the Google Cloud Platform (GCP) logo."
       },
       finish_details: %{type: "max_tokens"}
     }
   ],
   usage: %{prompt_tokens: 262, total_tokens: 278, completion_tokens: 16},
   system_fingerprint: nil
 }}

You don't need to encode the messages through Jason, just follow the typespec should be sufficient

What if the image is local (ie just available via File.load!) and not a URL?
On Mon, 13 Nov 2023 at 09:41, David @.***> wrote:

Here you go, did a quick test in iex and it works on latest head. Just a
bit weirdly formatted :)
Code:
  	msgs = [
  		%ExOpenAI.Components.ChatCompletionRequestUserMessage{role: :user,
  		content: [%ExOpenAI.Components.ChatCompletionRequestMessageContentPartImage{
  			type: :image_url,
  			image_url: "https://lh3.googleusercontent.com/wAPeTvxh_EwOisF8kMR2L2eOrIOzjfA5AjE28W5asyfGeH85glwrO6zyqL71dCC26R63chADTO7DLOjnqRoXXOAB8t2f4C3QnU6o0BA"
  		}
  		]},
  	]ExOpenAI.Chat.create_chat_completion(msgs, "gpt-4-vision-preview")

{:ok,
%ExOpenAI.Components.CreateChatCompletionResponse{
id: "chatcmpl-8KNhE1XbdgD1TqdXOugxUk494QkZA",
created:<PHONE_NUMBER>,
object: "chat.completion",
model: "gpt-4-1106-vision-preview",
choices: [
%{
index: 0,
message: %{
role: "assistant",
content: "You've shared an image of the Google Cloud Platform (GCP) logo."
},
finish_details: %{type: "max_tokens"}
}
],
usage: %{prompt_tokens: 262, total_tokens: 278, completion_tokens: 16},
system_fingerprint: nil
}}
You don't need to encode the messages through Jason, just follow the
typespec should be sufficient
—
Reply to this email directly, view it on GitHub
https://github.com/dvcrn/ex_openai/issues/13#issuecomment-1807789049,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACMBR3GY4H4REPSRKOI44DYEHTLFAVCNFSM6AAAAAA7IZI6NWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXG44DSMBUHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

I’m on my phone and can’t try it but you should be able load it like you did, then pass into the image_url param as URI with the code I sent above
https://github.com/dvcrn/ex_openai/blob/main/lib/ex_openai/docs/docs.yaml#L5580

Hmm, it wasn't working, and then I made one small change to the image_url param to add in "data:image/jpeg;base64," in front of the base64 encoded image data:
...
msgs = [
  %ExOpenAI.Components.ChatCompletionRequestUserMessage{
    role: :user,
    content: [
      %ExOpenAI.Components.ChatCompletionRequestMessageContentPartImage{
        type: :image_url,
        image_url: "data:image/jpeg;base64," <> image64
      }
    ]
  }
]
dbg(msgs)

And now it works! Thanks!
PS: I also needed to add in the max-tokens: 1_000 option at the end of the call to create_chat_completion like this:
... ExOpenAI.Chat.create_chat_completion(msgs, "gpt-4-vision-preview", max_tokens: 1_000)

Glad to hear it worked! 👍


Loading the default translations from a file to avoid heavy list operations

I am submitting this PR to address the following error which is commented at MELPA (https://github.com/melpa/melpa/pull/8106):

lean4-input.el:185:1: Error: Lisp nesting exceeds `max-lisp-eval-depth'

My suggestion here is to read the data from an external JSON file, instead of hard-coding it in Emacs Lisp. Using json-parse-buffer which is built-in since Emacs 27, you can deserialize the file into a hash table where values are vectors. I assume the data is static, so it doesn't have to be customizable.
I used the following snippet to serialize the data:
(with-temp-buffer
  (let ((table (make-hash-table :test #'equal)))
    (unwind-protect
        (progn
          (map-do (lambda (key values)
                    (puthash key
                             (apply #'vector values)
                             table))
                  lean4-input-translations)
          (insert (json-serialize table)))
      (clrhash table)))
  (json-pretty-print (point-min) (point-max))
  (append-to-file (point-min) (point-max) "translations.json"))

The limitation of this solution is that you cannot add comments or organize the translation entries into groups. It's a limitation of JSON. Alternatively, you could dump the data into an elisp data file using prin1.
If you merge this PR, you have to update the MELPA recipe as follows. Otherwise, the data file won't become part of artifacts, so the input method won't work:
(lean4-mode :fetcher github :repo "leanprover/lean4-mode"
            :files (:defaults ("data" "data/*.json")))

Hope this PR helps and lean4-mode will become available from MELPA!

Thanks, this is great! We should use this opportunity to sync up with the main "source of truth", which is https://github.com/leanprover/vscode-lean4/blob/master/vscode-lean4/src/abbreviation/abbreviations.json. Could you adapt your code to that format? I think just copying the file into this repo is fine.

Could you adapt your code to that format?

It is possible to adopt the code, but some entries have {$CURSOR}, which apparently are snippets and unsuitable for support with the input method. Is it okay to drop them?

Yes, dropping them sounds good.

Okay, I will work on it from now.

I have made a change to use the data for the vscode extension.

Thanks!


Crane Nix Builds

Summary

Status: draft
RFCs: Link to RFC, Link to RFC, or $\emptyset$.
Categories: any of protocol-units, networks, scripts, util, cicd, or misc.

Changelog

Testing

Outstanding issues

Closing this as we resume elsewhere.


Slice in Wire with two dimension

Hi, I'm trying to do the following structure in Veriloggen:
m  = Module('test')
my_wire0 = m.Wire('my_wire0',8,2)
my_wire1 = m.Output('my_wire1',2)
my_wire1.assign(my_wire0[0][0:2])
print(m.to_verilog())

But an exception is raised!

I test this code, and found that the current Slice operator supports only raw variables (such as Input, Output, Reg, and Wire) as the first argument. I will fixed in the next version.
Please use this workaround:
m  = Module('test')
my_wire0 = m.Wire('my_wire0', 8, 2)
my_wire1 = m.Output('my_wire1', 2)
tmp = m.TmpWireLike(my_wire0[0])
my_wire1.assign(tmp[0:2])


[Event Request] Codeunit 5005271 "Create Delivery Reminder" - procedure CreateDelivRemindLine

Describe the request
[Scope('OnPrem')]
procedure CreateDelivRemindLine(DeliveryReminderHeader: Record "Delivery Reminder Header"; PurchHeader: Record "Purchase Header"; PurchLine: Record "Purchase Line"; DeliveryReminderTerms: Record "Delivery Reminder Term"; DeliveryReminderLevel: Record "Delivery Reminder Level"; DateOfTheCurrentDay: Date)
var
    DeliveryReminderLine: Record "Delivery Reminder Line";
    NextLineNo: Integer;
    IsHandled: Boolean;
begin
    PurchaseSetup.Get();
    PurchaseSetup.TestField("Default Del. Rem. Date Field");

    IsHandled := false;
    OnCreateDelivRemindLineBeforeInit(DeliveryReminderHeader, PurchHeader, IsHandled); //CustPub
    if IsHandled then
        exit;
    DeliveryReminderLine.Reset();
    DeliveryReminderLine.SetRange("Document No.", DeliveryReminderHeader."No.");
    if DeliveryReminderLine.FindLast() then
        NextLineNo := DeliveryReminderLine."Line No." + 10000
    else
        NextLineNo := 10000;

[IntegrationEvent(false, false)]
local procedure OnCreateDelivRemindLineBeforeInit(DeliveryReminderHeader: Record "Delivery Reminder Header"; PurchHeader: Record "Purchase Header"; var IsHandled: Boolean) //CustPub
begin
end;

Additional context
Publisher request marked with //CustPub tag.Internal work item: AB#494013

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 14693.


Add Zvi Cahana reviewers

Signed-off-by: Zvi Cahana<EMAIL_ADDRESS>What this PR does / why we need it:
Add @zcahana as a reviewer.
I've been working with the KubeVirt project for several months now, contributing mostly to the kubevirt and hyperconverged-cluster-operator sub-projects. I'd be happy to continue contributing as a reviewer in the project.
Release note:
NONE

/assign @davidvossel @rmohr @stu-gott

/retest

/retest

/approve

Thanks @davidvossel 😄
Would you also /lgtm this?


Interset: Fixed the issues that were present in the unmerged PR named Initial commit of app submission from Stefan Jou, which was raised by a third party contributor

Interset: Fixed the issues that were present in the unmerged PR named Initial commit of app submission from Stefan Jou, which was raised by a third party contributor

Closing as stale


Size Change?

Looking to make the checkbox larger.
When I pass in width/height to style it ignores me.
Would  PR be welcome?  I see them piling up ... so I guess no?

I was having the same issue but found out you can add any element as the unCheckedImage/checkedImage like so:
<Icon name="check-circle" type="solid" color="#84E17F" size={45} />

You can add any Text element or anything like that I think so should be able to change the size that way.


Fixed bug dropping duplicate HoverTools

HoverTools with the same tooltips should be merged and duplicates dropped, unfortunately I forgot to drop them after they are merged originally. Fixes https://github.com/ioam/holoviews/issues/1404

Looks good. Will merge once the tests are green.

Ready to merge.

Looks good. Merging.


add the hypercard card in the project

we had an improvement in the component where we implemented the use of the hypercard, widely used in brazil.

Is this in production?

Yes its in version 2.5.0 of Card.

This can be closed as it was added in #458


v1.9.3 release

Pre-release

[x] Add build targets for the new release on Docker Hub

All versions:

cilium
operator
docker-plugin

Cilium v1.8 or later:

operator-generic
operator-aws
operator-azure
hubble-relay

Cilium v1.9 or later:

clustermesh-apiserver

[x] Check that there are no release blockers for the targeted release version
[x] Ensure that outstanding backport PRs are merged
[x] Consider building new cilium-runtime images and bumping the base image
versions on this branch
[x] Push a PR including the changes necessary for the new release:

[x] Pull latest branch
[x] Run contrib/release/start-release.sh
[x] (If applicable) Update the cilium_version and cilium_tag in
examples/getting-started/Vagrantfile
[x] Run Documentation/check-crd-compat-table.sh v1.9 and if needed, follow the
instructions.
[x] Commit all changes with title Prepare for release v1.9.3
[x] Submit PR (contrib/release/submit-release.sh)

[x] Execute release --current-version 1.9.Z --next-dev-version 1.9.W to automatically
move any unresolved issues/PRs from old release project into the new
project. (W should be calculation of Z+1)
[x] Merge PR
[x] Create and push both tags to GitHub (v1.9.3, 1.9.Z)

Pull latest branch locally and run contrib/release/tag-release.sh

[ ] Wait for docker builds to complete

cilium
operator
docker-plugin
operator-generic
operator-aws
operator-azure
hubble-relay
clustermesh-apiserver
Check if all docker images are available before announcing the release
make -C install/kubernetes/ check-docker-images

[ ] Create helm charts artifacts in Cilium charts repository using
cilium helm release tool for both the v1.9.3 release and v1.9 branch
& push to repository
[ ] Run sanity check of Helm install using connectivity-check script.
Suggested approach: Follow the full GKE getting started guide.
[ ] Check draft release from releases page and publish the release
[ ] Announce the release in #general on Slack (only [@]channel for v1.9.0)
[ ] Update Grafana dashboards (only for v1.9.0)

Install the dashboards available in ./examples/kubernetes/addons/prometheus
and use them to upload them to Grafana.com.

Post-release

[ ] Prepare post-release changes to master branch using contrib/release/bump-readme.sh
[ ] Update the stable tags for each Cilium image (contrib/release/bump-docker-stable.sh)
[ ] Update external tools and guides to point to the new Cilium version:

[ ] kops
[ ] kubespray

The quickstart in the documentation has operator 1.9.3 version, pointing to quay repo, but the tag is not pushed.

The quickstart in the documentation has operator 1.9.3 version, pointing to quay repo, but the tag is not pushed.

@kubealex should be fixed now, thanks for reporting it.

@kubealex should be fixed now, thanks for reporting it.

I don't see arm64 images being pushed on the regular repositories. Is that expected? If so, what's the timeline on that? The current project is finished and dev images already build arm64, I though that was just waiting a new release.

I don't see arm64 images being pushed on the regular repositories. Is that expected? If so, what's the timeline on that? The current project is finished and dev images already build arm64, I though that was just waiting a new release.

@Diaoul the Cilium images are available in quay.io/cilium/cilium-dev:v1.9.3 and docker.io/cilium/cilium-dev:v1.9.3. There is still some work left to be done before the are made into the official cilium/cilium of both repositories.

@Diaoul the Cilium images are available in quay.io/cilium/cilium-dev:v1.9.3 and docker.io/cilium/cilium-dev:v1.9.3. There is still some work left to be done before the are made into the official cilium/cilium of both repositories.


Feature: Parallel Chat Video

I have ChatGPT opened in one browser window while listening to podcast in another window.
I want the extension to listen conversation, submit current chunk of transcription from my youtube window to ChatGPT, wait for comments from AI, and then submit next chunk, and continue until end.
I can see the technical challenge of passing the message and triggering action in between two different windows without switching from one to another. The solution might involve an external process to implement job queue, with script in youtube window passing chunks to it, and another script in chatgpt window polling on new chunks to be submitted. Does it make sense or perhaps there is more straightforward solution?

Thanks! This sounds good!
Let me dig into this!

Thanks! This sounds good! Let me dig into this!

Do you know what are browser limitations regarding this? Can you just send message from extension running in one window to another?


Postgres unique on null

Description
I'm not certain if this is a driver issue or dbeaver.
When making an unique index, If the column is nullable, then sql needs nulls not distinct.
(Or maybe add an option for it)
Should be:
CREATE UNIQUE INDEX uniqueindex ON table USING btree (name) nulls not distinct;
Currently is:
CREATE UNIQUE INDEX uniqueindex ON table USING btree (name);
DBeaver Version
23.2.2
Operating System
Win 11
Database and driver
Postgres 16.1
Driver version: 42.5.2 I think
Steps to reproduce
After creating unique index, It should throw error when using not distinct values.
Additional context
No response

Hello @vatsake
Thanks for the idea.
We can add a special setting in the index creation dialog for PostgreSQL.
https://www.postgresql.org/docs/current/indexes-unique.html


Remove provider requirement when fetching rule type

Summary
This removes the requirement for passing in the provider when working with rule types.
This allows us flexibility for working with multiple providers.
Change Type

[ ] Bug fix (resolves an issue without affecting existing features)
[x] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 47.547% (-0.01%) from 47.557%
when pulling 9cb9e7a39009ec39e5ad6702e3041bbf92791fa1 on prov-ruletype
into eb025e18d995698051af5f4fe254230b8073ec87 on main.


Add all relevant functions from math package.

@Sandertv Some adjustments are needed to allow max and min to support 2 or more arguments.
After that, it will be incorporated into my https://github.com/rocketlaunchr/dataframe-go package.

It should be all good!

Thank you for the merge request! I'll tag v1.0.0.


Result returns too many docs

Hello, I have been using the API for about a month now and I noticed something different today. Using the below query returns 451438 records and should only be returning 269 records associated to the given examiner.
# Peds basic query to check if PEDS is online
from uspto.peds.client import UsptoPatentExaminationDataSystemClient
import pandas as pd
name = 'WILSON, NICHOLAS R'
client = UsptoPatentExaminationDataSystemClient()
expression = "appExamName:{0}".format(name)
result = client.search(expression)

{'numFound': 451438,
 'start': 0,
 'docs': [{'corrAddrCountryName': 'UNITED STATES',
   'applId': '03429712',
   'totalPtoDays': '0',
   'appFilingDate': '1954-05-13T00:00:00Z',
   'appExamName': 'MATZ, DANIEL R',
   'appExamNameFacet': 'MATZ, DANIEL R',
...

I also emailed PEDS. They recently throttled the number of requests they could handle but we were able to get them to increase it again. I don't think the problem I'm experiencing is associated to their changes tho. Any thoughts?

Doing some basic testing it looks like it is happening when you commented out line 42 in uspto/util/client.py.

Dear Christopher,
thanks for writing in.
Introduction
The change f07ebef you are referring to which removes the mm parameter from the HTTP request came from #7 and has been introduced just recently. I recognize from the behavior you are observing that it seems to have an unfortunate side effect.
Investigation
As the change has been done in a hurry in order to support @rahul-gj, I now recognize that it's on me that I should have checked the meaning of this parameter first. After looking into the appropriate documentation about the Lucene/Solr DisMax query parser now, we should take these details about the mm (Minimum Should Match) Parameter into consideration:

While the documentation on DisMax query parser says that

The default value of mm is 100% (meaning that all clauses must match).

An answer on stackoverflow (solr-mm-parameter-of-dismax-parser) says that

If no mm parameter is specified in the query, or as a default in solrconfig.xml, the effective value of the q.op parameter (either in the query, as a default in solrconfig.xml, or from the 'defaultOperator' option in schema.xml) is used to influence the behavior.
So, the default behavior of the mm is determined by q.op parameter. If q.op is effectively AND, then mm=100%; if q.op is OR, then mm=1.

Conclusion
So, we definitively should send the mm parameter from our end in order to control the query processing behavior of the Lucene/Solr query parser on the remote search backend. The appropriate value should be determined by the character of the query respectively by the intention of the researcher and should be populated in a way to adhere to do what I mean principles.
So, when implementing that, querying for numberlists with a search command like
uspto-peds search 'patentNumber:(6583088 6875727 8697602)'

should probably be handled a bit differently.
Thoughts
Let's see if we can a) determine the mm value heuristically from the query expression or b) whether we should spend another command line parameter for designating that or even c) just amend the documentation to propose an expression like
uspto-peds search 'patentNumber:(6583088 OR 6875727 OR 8697602)'

for querying numberlists - if this actually would be the right thing to do here.
If c) would fit the bill, we might even be able to set mm back to it's former value of 100% in order to solve your issue while still keeping @rahul-gj happy.
Thanks again for reporting this to us.
With kind regards,
Andreas.

After some more investigations we want to share that a query like this will always return the correct number of results, regardless of the mm value.
uspto-peds search 'appExamName:"WILSON, NICHOLAS R"' | jq '.numFound'
269

The user interface at https://ped.uspto.gov/peds/#/search will also behave like that and add quotes to the search string "WILSON, NICHOLAS R" to make it verbatim. By the way, the user interface currently will always set mm=0%.

Based on your observations I found this works in my case where I am taking advantage of the internal classes:
name = "WILSON, NICHOLAS R"
client = UsptoPatentExaminationDataSystemClient()
expression = 'appExamName:"{0}"'.format(name)
result = client.search(expression)
result

Note the double quotes around the variable for the format expression.
A change request to the code may not be necessary for the sake of @rahul-gj  but perhaps a warning or something in the user doc?
I appreciate you looking into this.

The usage of quotes around the search expression has been working. Thanks again!

The usage of quotes around the search expression has been working. Thanks again!

Thanks for letting me know. I've diverted #11 and #12 from here. Thanks likewise!


feat: configurable worker set as dead

@geofmureithi I will first fix tests on my Fork then you can allow workflows to run here.
Btw do you agree with this PR ?
Note that the default hearbeat is set to 30s so is someone set worker_timeout (may be should be renamed) to below 30s the jobs will be set as orphaned


Top markers are not always shown on the iPad2

On IPad2 only for months that have either 4 or 6 weeks not all top markers are properly displayed.
It works fine for months with 5 weeks and also on iPad Retina
If I change 0.5 to 1 here in CVCalendarDayView.swift it works fine. Could it be that 0.5 is to narrow to be displayed?
        func createMarker() {
            let height = CGFloat(0.5)

PS. Great widget - thank you!

Hello @tnsnames,
It seems to be an issue of either layers or graphics drawing on big screens. The height of a top marker will become customisable as well with the new release and then for iPads it'll be 1.0 by default.
Thank you for reporting this issue!
Regards,
Eugene


Location and time zones

Is there any way already available through this plugin to provide the local timezone of a chosen place? If not, do you have any pointers as to where I should start producing a plugin/addition for this? I think it'd be a somewhat useful contribution to your plugin.

You can use Googlemaps API for it, here is my code in Python:
def get_now_for_timezone(latitude, longitude):
    if session.seconds_from_utc:
        seconds_from_utc = float(session.seconds_from_utc)
    else:
        today_UTC_timestamp = time.time()
        url = "https://maps.googleapis.com/maps/api/timezone/json?location=" + str(latitude) + "," + str(longitude) + chr(38) + "timestamp=" + str(today_UTC_timestamp) + "&key=MYKEY";
        json_timezone = urllib2.urlopen(url)
        data_timezone = json.load(json_timezone)
        seconds_dstOffset = float(data_timezone['dstOffset'])
        seconds_rawOffset = float(data_timezone['rawOffset'])
        seconds_from_utc = seconds_dstOffset + seconds_rawOffset
        session.seconds_from_utc = seconds_from_utc
    now_from_timezone = datetime.datetime.today() + datetime.timedelta(seconds=seconds_from_utc)
    return now_from_timezone

Hmm that looks good. But what if the selected time zone was part of the return from this plugin, along with the address, city, etc? Even showing whether that place is under DST offset.


TagHelper Component completion descriptions are too verbose.

For instance components define an EventHandler TagHelper for every onfocus, onclick etc. so you end up with a 100s of line long list of description infos that all map back to the same TagHelper. We should consider how we want Component completions  to appear.

@danroth27 want this for alpha3?

The only docs we should be showing are only component docs. No associated tag-helper docs should be shown.


bump to go 1.21.4

https://issues.redhat.com/browse/EC-249

Let's update the tools/go.mod and acceptance/go.mod as well

good catch, updated.


用colab训练报错 'StreamToLoguru' object has no attribute 'isatty'

Dear Sirs,
I am also facing the very same error! I have been running succesfully your excellent model in a colab notebook.
Since 2 days ago, without making any change to the code, when running train.py, when the trainer.py creates the tensorboard logger it complains about: 'StreamToLoguru' object has no attribute 'isatty'
!python tools/train.py \
    -f nano.py \
    -b 16 \
    --fp16 \
    -o \
    -c yolox_nano.pth
...
2022-07-15 06:29:36 | INFO     | pycocotools.coco:88 - index created!
2022-07-15 06:29:38 | ERROR    | yolox.core.launch:98 - An error has been caught in function 'launch', process 'MainProcess' (370), thread 'MainThread'<PHONE_NUMBER>80256):
Traceback (most recent call last):

  File "/usr/local/lib/python3.7/dist-packages/tensorboard/compat/__init__.py", line 42, in tf
    from tensorboard.compat import notf  # noqa: F401

ImportError: cannot import name 'notf' from 'tensorboard.compat' (/usr/local/lib/python3.7/dist-packages/tensorboard/compat/__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "tools/train.py", line 141, in <module>
    args=(exp, args),
          │    └ Namespace(batch_size=16, cache=False, ckpt='yolox_nano.pth', devices=None, dist_backend='nccl', dist_url=None, exp_file='nano...
          └ ╒═══════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════════...

> File "/content/YOLOX/yolox/core/launch.py", line 98, in launch
    main_func(*args)
    │          └ (╒═══════════════════╤═══════════════════════════════════════════════════════════════════════════════════════════════════════...
    └ <function main at 0x7f6e36b88950>

  File "tools/train.py", line 118, in main
    trainer.train()
    │       └ <function Trainer.train at 0x7f6db00f2c20>
    └ <yolox.core.trainer.Trainer object at 0x7f6d972cfa10>

  File "/content/YOLOX/yolox/core/trainer.py", line 74, in train
    self.before_train()
    │    └ <function Trainer.before_train at 0x7f6d972c9b90>
    └ <yolox.core.trainer.Trainer object at 0x7f6d972cfa10>

  File "/content/YOLOX/yolox/core/trainer.py", line 181, in before_train
    self.tblogger = SummaryWriter(os.path.join(self.file_name, "tensorboard"))
    │               │             │  │    │    │    └ './YOLOX_outputs/nano'
    │               │             │  │    │    └ <yolox.core.trainer.Trainer object at 0x7f6d972cfa10>
    │               │             │  │    └ <function join at 0x7f6e36c367a0>
    │               │             │  └ <module 'posixpath' from '/usr/lib/python3.7/posixpath.py'>
    │               │             └ <module 'os' from '/usr/lib/python3.7/os.py'>
    │               └ <class 'torch.utils.tensorboard.writer.SummaryWriter'>
    └ <yolox.core.trainer.Trainer object at 0x7f6d972cfa10>

  File "/usr/local/lib/python3.7/dist-packages/torch/utils/tensorboard/writer.py", line 246, in __init__
    self._get_file_writer()
    │    └ <function SummaryWriter._get_file_writer at 0x7f6d9b9d8d40>
    └ <torch.utils.tensorboard.writer.SummaryWriter object at 0x7f6d95b07c10>

  File "/usr/local/lib/python3.7/dist-packages/torch/utils/tensorboard/writer.py", line 277, in _get_file_writer
    self.log_dir, self.max_queue, self.flush_secs, self.filename_suffix
    │    │        │    │          │    │           │    └ ''
    │    │        │    │          │    │           └ <torch.utils.tensorboard.writer.SummaryWriter object at 0x7f6d95b07c10>
    │    │        │    │          │    └ 120
    │    │        │    │          └ <torch.utils.tensorboard.writer.SummaryWriter object at 0x7f6d95b07c10>
    │    │        │    └ 10
    │    │        └ <torch.utils.tensorboard.writer.SummaryWriter object at 0x7f6d95b07c10>
    │    └ './YOLOX_outputs/nano/tensorboard'
    └ <torch.utils.tensorboard.writer.SummaryWriter object at 0x7f6d95b07c10>

  File "/usr/local/lib/python3.7/dist-packages/torch/utils/tensorboard/writer.py", line 76, in __init__
    log_dir, max_queue, flush_secs, filename_suffix
    │        │          │           └ ''
    │        │          └ 120
    │        └ 10
    └ './YOLOX_outputs/nano/tensorboard'

  File "/usr/local/lib/python3.7/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 72, in __init__
    tf.io.gfile.makedirs(logdir)
    │                    └ './YOLOX_outputs/nano/tensorboard'
    └ <module 'tensorboard.compat.tf' via LazyModule (not yet loaded)>

  File "/usr/local/lib/python3.7/dist-packages/tensorboard/lazy.py", line 65, in __getattr__
    return getattr(load_once(self), attr_name)
                   │         │      └ 'io'
                   │         └ <module 'tensorboard.compat.tf' via LazyModule (not yet loaded)>
                   └ <function lazy_load.<locals>.wrapper.<locals>.load_once at 0x7f6db00eff80>

  File "/usr/local/lib/python3.7/dist-packages/tensorboard/lazy.py", line 97, in wrapper
    cache[arg] = f(arg)
    │     │      │ └ <module 'tensorboard.compat.tf' via LazyModule (not yet loaded)>
    │     │      └ <function lazy_load.<locals>.wrapper.<locals>.load_once at 0x7f6db00efef0>
    │     └ <module 'tensorboard.compat.tf' via LazyModule (not yet loaded)>
    └ {}

  File "/usr/local/lib/python3.7/dist-packages/tensorboard/lazy.py", line 50, in load_once
    module = load_fn()
             └ <function tf at 0x7f6db00efb90>

  File "/usr/local/lib/python3.7/dist-packages/tensorboard/compat/__init__.py", line 45, in tf
    import tensorflow

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/__init__.py", line 51, in <module>
    from ._api.v2 import compat

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/__init__.py", line 37, in <module>
    from . import v1

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/v1/__init__.py", line 30, in <module>
    from . import compat

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/v1/compat/__init__.py", line 37, in <module>
    from . import v1

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/v1/compat/v1/__init__.py", line 47, in <module>
    from tensorflow._api.v2.compat.v1 import lite

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/v1/lite/__init__.py", line 9, in <module>
    from . import experimental

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/v1/lite/experimental/__init__.py", line 8, in <module>
    from . import authoring

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/_api/v2/compat/v1/lite/experimental/authoring/__init__.py", line 8, in <module>
    from tensorflow.lite.python.authoring.authoring import compatible

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/lite/python/authoring/authoring.py", line 43, in <module>
    from tensorflow.lite.python import convert

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/lite/python/convert.py", line 29, in <module>
    from tensorflow.lite.python import util

  File "/usr/local/lib/python3.7/dist-packages/tensorflow/lite/python/util.py", line 51, in <module>
    from jax import xla_computation as _xla_computation

  File "/usr/local/lib/python3.7/dist-packages/jax/__init__.py", line 59, in <module>
    from .core import eval_context as ensure_compile_time_eval

  File "/usr/local/lib/python3.7/dist-packages/jax/core.py", line 47, in <module>
    import jax._src.pretty_printer as pp

  File "/usr/local/lib/python3.7/dist-packages/jax/_src/pretty_printer.py", line 56, in <module>
    CAN_USE_COLOR = _can_use_color()
                    └ <function _can_use_color at 0x7f69bb320320>

  File "/usr/local/lib/python3.7/dist-packages/jax/_src/pretty_printer.py", line 54, in _can_use_color
    return sys.stdout.isatty()
           │   └ <yolox.utils.logger.StreamToLoguru object at 0x7f6d9778aa90>
           └ <module 'sys' (built-in)>

AttributeError: 'StreamToLoguru' object has no attribute 'isatty'

I have the same problem!

I have been investigating about it.
The issue is a happens in the package jax/_src/pretty_printer.py, in the function can_use_color()
def _can_use_color() -> bool:
  try:
    # Check if we're in IPython or Colab
    ipython = get_ipython()  # type: ignore[name-defined]
    shell = ipython.__class__.__name__
    if shell == "ZMQInteractiveShell":
      # Jupyter Notebook
      return True
    elif "colab" in str(ipython.__class__):
      # Google Colab (external or internal)
      return True
  except NameError:
    pass
  # Otherwise check if we're in a terminal
  return sys.stdout.isatty()

CAN_USE_COLOR = _can_use_color().

 Then an exception is raised that forces to run return sys.stdout.isatty(). Due to the fact that Megv's Yolox utils/logger.py replaces stdout with StreamToLogUru, as this class does not have the function isatty(), the program suddenly stops.
Maybe a change of ipython version in colab that messed it up?

It can be overriden by using -wandb logger, but it is very annoying that default behaviour is not working in colab.
:(

I think the issue is tha StreamToLoguru, defined in this package, is being used to patch sys.stdout, but does not define all the necessary methods of sys.stdout, in particular the isatty method. https://github.com/Megvii-BaseDetection/YOLOX/blob/48fd2a95837a92e0583492210b5ebeb02a4e7d7d/yolox/utils/logger.py#L34

I still get an error, but I stumbled upon the !pip uninstall jax command and it works, I don't know what effect it will have

Might be a good option. But it would be best if Megvii Team just add :
def isatty(): return True
in class StreamLoguru at logger.py. That easy

Thanks for your feed back, I will try to solve this issue in the week. Plz wait or work around this issue.

Thanks to the method proposed by bsense-rius, I tried it, and it works, still looking forward to the solution from Megvii Team.

Hi, we fix this issue in #1443 . We checked codelink posted by @jakevdp and decided to use solution provided by @bsense-rius .
We also note that a repo written by @Kazuhito00 is using the same solution.
Feel free to ask if you have any further quesiotn.


More Explicit Intro

What would you like to be added/modified:
Change "At the edge node, close edgeMesh module, open metaServer module, and restart edgecore" to "At the edge node, close edgeMesh module if it exists, open metaServer module, and restart edgecore" or some what.

Why is this needed:
Since the edgemesh module in edgecore has been removed, there is necessary to make the declaration more clear.

KubeEdge only removed this configuration in version 1.8.0, so I will change it to:
(If your KubeEdge < 1.8.0) At the edge node, close edgeMesh module, open metaServer module...

/close


Make BSplines work with integer support points

I was just tripped up by the fact that you cannot use integer vectors as support points for the BSplines since you are getting InexactErrors.
This fixes it by making the temporaries float vectors. Don't know whether this is sensible 🤷♂

I don't like silently changing people's types because you never know what they want. For example, this would make using rationals not work.

I agree in principle but this is just changing the type of the temporaries and the algorithm seems to expect them to be floats. Also my branch works with rationals, i.e. returns the same float result if both vectors are rationals 😉
In the end, I am not sure whether this is trading off genericity.

returns the same float result if both vectors are rationals

But it doesn't return the rational result, and not all rationals have a float result.

Yes, I know but so does master.
julia> t = [1//8,1//3,1//2]
3-element Array{Rational{Int64},1}:
 1//8
 1//3
 1//2

julia> A = BSplineInterpolation(t,t,2,:ArcLen,:Average)
6-element BSplineInterpolation{Array{Rational{Int64},1},Array{Rational{Int64},1},Array{Rational{Int64},1},Array{Rational{Int64},1},Array{Rational{Int64},1},true,Rational{Int64}}:
 1//8
 1//3
 1//2
 1//8
 1//3
 1//2

julia> A(1//4)
0.25

But nevermind, with my patch the code is still not generic and I can live with manually converting the input to float.

We should probably fix that on master :)

Yeah, sorry. I had only time for this drive-by and no idea how to fix it in a more general way.


ci: use $default-branch placeholder instead of hard-coded main

It seems $default-branch does not work🤣.

It seems $default-branch does not work🤣.

Oops, seems it only works in workflow templates.


Can't make classification filter work

Hello, I am trying to use classification filter on the potree page with the point cloud that I previously classified and converted using PotreeConverter.
Point cloud is displaying fine on the page but I can't make classification filter work correctly. When I try to turn on and off classes it looks like all points are assigned to class "never classified" even though I previously assigned more classes like ground, high vegetation,...
I checked in different software if it can recognize classes for my point cloud and it always recognizes it fine but in potree page it just doesn't work. I tried also to export .las file from different software and then convert it again but it didn't help.
Probably I am missing something obvious here, maybe there is some step in between that should be done to make it work fine in potree but I didn't find what it is?

I'm actually experiencing the similar problem.
I'm creating a .las file using the LASTools txt2las, when I convert the generated las file back to text from las the classification is preserved but it's gone when I run the las file through the PotreeConverter, or at least I'm experiencing the same effect of every point being assigned to the class "never classified"

For classification to work, you'll have to convert to a las/laz octree or specify it as an additional attribute to use in the standard bin format.
i.e., try to convert with one of the following:
.\PotreeConverter.exe <input> -o <targetDir> -a RGB CLASSIFICATION
.\PotreeConverter.exe <input> -o <targetDir> --output-format LAS
.\PotreeConverter.exe <input> -o <targetDir> --output-format LAZ

Thanks! The first example line you provided worked great for me.

Yes it works for me too like that! Thanks alot :)

For classification to work, you'll have to convert to a las/laz octree or specify it as an additional attribute to use in the standard bin format.
i.e., try to convert with one of the following:
.\PotreeConverter.exe <input> -o <targetDir> --output-attributes RGB CLASSIFICATION
.\PotreeConverter.exe <input> -o <targetDir> -a RGB CLASSIFICATION
.\PotreeConverter.exe <input> -o <targetDir> --output-format LAS
.\PotreeConverter.exe <input> -o <targetDir> --output-format LAZ

Thanks, Is there a way to get  the full help message in PotreeConverter v2.0.2?

For classification to work, you'll have to convert to a las/laz octree or specify it as an additional attribute to use in the standard bin format.
i.e., try to convert with one of the following:
.\PotreeConverter.exe <input> -o <targetDir> --output-attributes RGB CLASSIFICATION
.\PotreeConverter.exe <input> -o <targetDir> -a RGB CLASSIFICATION
.\PotreeConverter.exe <input> -o <targetDir> --output-format LAS
.\PotreeConverter.exe <input> -o <targetDir> --output-format LAZ

Thanks, Is there a way to get  the full help message in PotreeConverter v2.0.2?


Crash when transfering money to another account

Everytime i want to transfer money to another account it's just crashed
UnhandledException - unhandled exception: System.ArgumentOutOfRangeException: Exception of type 'System.ArgumentOutOfRangeException' was thrown. (Parameter 'ordinal')
Actual value was 13.
   at Microsoft.Data.Sqlite.SqliteDataRecord.GetSqliteType(Int32 ordinal)
   at Microsoft.Data.Sqlite.SqliteDataRecord.IsDBNull(Int32 ordinal)
   at NickvisionMoney.Shared.Models.AccountMetadata.LoadFromAccountFile(String path, String password) in /run/build/org.nickvision.money/NickvisionMoney.Shared/Models/AccountMetadata.cs:line 196
   at NickvisionMoney.Shared.Controllers.TransferDialogController.UpdateTransfer(String destPath, String destPassword, String amountString, String sourceConversionAmountString, String destConversionAmountString) in /run/build/org.nickvision.money/NickvisionMoney.Shared/Controllers/TransferDialogController.cs:line 156
   at NickvisionMoney.GNOME.Views.TransferDialog.Validate() in /run/build/org.nickvision.money/NickvisionMoney.GNOME/Views/TransferDialog.cs:line 135
   at NickvisionMoney.GNOME.Views.TransferDialog.<.ctor>b__21_1(Object sender, NotifySignalArgs e) in /run/build/org.nickvision.money/NickvisionMoney.GNOME/Views/TransferDialog.cs:line 61
   at GObject.Closure.InternalCallback(IntPtr closure, IntPtr returnValuePtr, UInt32 nParamValues, ValueData[] paramValuesData, IntPtr invocationHint, IntPtr userData)

There is another related issue. If this exception doesn't crash Denaro, another race condition probably will.
Here StartupAsync is called explicitly and also by the event called from the MainWindow:
https://github.com/NickvisionApps/Denaro/blob/4efc3fa134bce1de81ccd746a6d668ed767e3b93/NickvisionMoney.Shared/Controllers/MainWindowController.cs#L384-L386
https://github.com/NickvisionApps/Denaro/blob/4efc3fa134bce1de81ccd746a6d668ed767e3b93/NickvisionMoney.GNOME/Views/MainWindow.cs#L285-L298
I'm gonna try to make a PR addressing both

Also this current bug occurs only when opening an old nmoney file without the "CustomCurrencyAmountStyle" field. This is the problematic line:
https://github.com/NickvisionApps/Denaro/blob/4efc3fa134bce1de81ccd746a6d668ed767e3b93/NickvisionMoney.Shared/Models/AccountMetadata.cs#L198

Edit: Seems like OP's account doesn't have fields from ShowTagsList. I was getting errors on 15th field but the original error message shows 13.

Yes this is the issue

Maybe consider adding a version field to metadata and use that to decide on what logic to use to parse the data? 🤔

We just need to add the code that updates the metadata table from account here as well...

We just need to add the code that updates the metadata table from account here as well...

See we want to ensure that all accounts opened in the latest version of Denaro always have the latest changes

https://github.com/NickvisionApps/Denaro/releases/tag/2023.9.0


Mongodb cluster is not able to connect from WSL2 windows terminal

Windows Build Number
Microsoft Windows [Version 10.0.19042.928]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
5.10.16
Distro Version
Ubuntu 20.04
Other Software
NodeJS v14.17.6
"mongoose": "^5.9.4"
Repro Steps
I am trying to connect to the MongoDB cluster via mongoose. It is not working from wsl2.
Connection:
const uri = 'mongodb+srv://user:password@cluster.mongodb.net/flydb?retryWrites=true&w=majority';

mongoose.connect(uri, {
    useUnifiedTopology: true,
}).then((o) => {
    console.log(o)
}).catch(e => {
    console.log(e)
})

Expected Behavior
It should connect to MongoDB cluster. It was working perfectly in wsl1.
Actual Behavior
I get this message
querySrv ETIMEOUT _mongodb._tcp.cluster0.46q3p.mongodb.net
It works for time being after I restart the computer. But after 10 minutes again same error happens.
Diagnostic Logs
Error: querySrv ETIMEOUT _mongodb._tcp.<clustername>.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:206:19) {
  errno: undefined,
  code: 'ETIMEOUT',
  syscall: 'querySrv',
  hostname: '_mongodb._tcp.<clustername>.mongodb.net'
}

having the same issue

This issue is still open @gaia

I think you tagged the wrong guy :)

Same issue here :(

Facing same issue here when trying to connect to a Mongo Atlas cluster from a Node application running on WSL2 environment.
It seems to be related to Node + WSL2, as I can connect to the cluster via mongosh, but can't when trying to connect to the cluster via a Node app.
Changing WSL version to 1 is a workaround:
wsl --set-version <DistroName> 1

For me, upgrading to Windows 11, solved the issue. Still not sure about the cause of the issue.

I have same the issue.
My environment is wsl2, window11, ubuntu20.04.4.
Thank @joaoschneider for your solution.
On wsl1, it works

Having same issue. MongoDB connects with the uri for node 2.2.12 but I am not able to access data with it.  I don't want to use wsl1. Any fixes would be appreciated.

We found another workaround that may be useful. In our case, we were attempting connection with a connection string that contained the -pri suffix (apparently it was generated via the Private IP for peering option under Connect on Mongo Atlas).
Using the string generated by Connect -> Standard Connection or Node.js 4.0 or later driver, which does not contain the -pri suffix, fixed the WSL2 + Node connection issue.
Hope it helps.

Is downgrading to WSL 1 the only workaround for this issue at this point?

I feel like the solution is in the proper networking. I don't think the documentation elaborates on this part.
The issue is gone for me now I am using localhostforwarding=true in .wslconfig.

Closing this issue since it is solved.


fix: Update parseJson() for v8 11.7.72 and newer

What issue does this pull request resolve?
Fixes #2355
What changes did you make?
Update regex to extract end position from error in parseJson() - the updated regex works both for the previous and the new v8 error messages
Is there anything that requires more attention while reviewing?
https://chromium-review.googlesource.com/c/v8/v8/+/3513684 also added some changes to the messages with some of the new message templates not mentioning a position at all. I'm not sure if this would affect ajv, but since npm test completes successfully with my patch I assume it does not.

I have verified this on https://regex101.com/, looks good. I will look to get this fix in after we get the builds working again.


bug: [Import typo]

Describe the bug
In the file /nlp-architect/solutions/absa_solution/sentiment_solution.py line number 42 which is:
from .utils import Anonymiser, _ui_format should be written as from utils import Anonymiser, _ui_format without the period in front of utils.

Fixed, thanks!
@amygeorge

Hi, I just pulled from master and the issue is still there.


Link for "reset password" not visible

Describe the bug
Messages that shows up upon providing wrong user/password combination covers the 'password reset' link
Expected behaviour
Error message with a hint to the problem: ok.
But it should not cover the link to reset the password.
Steps to reproduce the issue
Login with wrong user-login or password.
Technical details
Possible Fix
Additional context

The password reset link isn't visible in Firefox on Laptop with 1920x1080 px, only after scrolling.

Possible Fix
Don't use style="top: XYZpx;"


esp-wifi: Remove log feature from default features

closes https://github.com/esp-rs/esp-hal/issues/2250

I think this deserves a changelog entry since it's changing default features


Dashed measurement lines

Prototype something like Figma did here https://twitter.com/figmadesign/status/1276202057620316161?s=19

wasnt "better"


Assess Google Cloud Dataprep Billing model changes

Describe the issue
Google is changing their billing model for their cloud Dataprep product and this affects existing workloads
Which Sprint Priority is this issue related to?
The 'Milestone' should clearly list Sprint Priorities - which one is this issue related to?
Additional context
See email 2020-07-14
Definition of done

gain an understanding of the implications of this change
identify owners of affected workloads in GCP
engage with owners in emails and meetings to inform them, arrange next steps
create any follow-up tickets in case project changes are needed

This is a Ministry of Health related service MoH Healthlink Covid-19
Currently it costs them around $10/month
On October 14 2020, the cost structure for the Dataprep service will be grandfathered for existing projects (including this MoH Healthlink Covid-19 project) at the rate of $0.60 vCPU/hour.

Any new projects created October 14 2020 or after will be billed with a monthly fee structure with 2 options:

Dataprep Standard, up to $1500/project/month + Job execution dataflow pricing
Dataprep Premium, $3000/project/month + Job execution dataflow pricing

Sent a note to Health with the above info.