Filter on relations: "every" has a result, but "some" is null, on MongoDB

Bug description
Hi,
I have problems using relation queries, some and every.
I am currently using Postgresql, everything was fine until I switched to using MongoDB.
Same code, but it seems that on MongoDB it is being wrong logically. Please check if there is any problem.
Or where am I wrong, Please guide.
Query for "some"
const foundCustomer = await prisma.customer.findFirst({
        where: {
            invoices: {
                some: {
                    email<EMAIL_ADDRESS>                },
            },
        },
        select: {
            id: true,
            invoices: {
                select: {
                    id: true,
                },
            },
            _count: {
                select: {
                    invoices: true,
                },
            },
        },
    });
    console.log(`foundCustomer`, foundCustomer);

Response for "some":
`foundCustomer null`

Query for "every"
const foundCustomer = await prisma.customer.findFirst({
        where: {
            invoices: {
                every: {
                    email<EMAIL_ADDRESS>                },
            },
        },
        select: {
            id: true,
            invoices: {
                select: {
                    id: true,
                },
            },
            _count: {
                select: {
                    invoices: true,
                },
            },
        },
    });
    console.log(`foundCustomer`, foundCustomer);

Response for every:
foundCustomer {
  id: '623d4ad9f7a43c28e8349a0b',
  invoices: [ { id: '623d4adbf7a43c28e8349a0c' } ],
  _count: { invoices: 0 }
}

How to reproduce

Expected behavior
No response
Prisma information
Schema
generator client {
    provider        = "prisma-client-js"
    previewFeatures = ["mongoDb"]
}

datasource db {
    provider = "mongodb"
    url      = env("PAYMENT_DATABASE_URL")
}

model Invoice {
    id         String   @id @default(auto()) @map("_id") @db.ObjectId
    email      String?
    customerId String
    customer   Customer @relation(fields: [customerId], references: [id])
}

model Customer {
    id       String    @id @default(auto()) @map("_id") @db.ObjectId
    invoices Invoice[]
}

Environment & setup

OS: MacOS ARM64
Database: MongoDB
Node.js version: 16.x

Prisma Version
prisma                  : 3.11.1
@prisma/client          : 3.11.1
Current platform        : darwin-arm64
Query Engine (Node-API) : libquery-engine 1a2506facaf1a4727b7c26850735e88ec779dee9 (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 1a2506facaf1a4727b7c26850735e88ec779dee9 (at node_modules/@prisma/engines/migration-engine-darwin-arm64)
Introspection Engine    : introspection-core 1a2506facaf1a4727b7c26850735e88ec779dee9 (at node_modules/@prisma/engines/introspection-engine-darwin-arm64)
Format Binary           : prisma-fmt 1a2506facaf1a4727b7c26850735e88ec779dee9 (at node_modules/@prisma/engines/prisma-fmt-darwin-arm64)
Default Engines Hash    : 1a2506facaf1a4727b7c26850735e88ec779dee9
Studio                  : 0.458.0
Preview Features        : mongoDb

Hey @henullcom , can you share a small sample data? That would help us understand if this is intentional or unexpected.

Hey @henullcom , can you share a small sample or fake data? That would help us understand if this is intentional or unexpected.

Hi @matthewmueller ,
Here is test repo with sample data: https://github.com/henullcom/test-mongo-error
I tested on Linux amd64 and had the same problem.

When i run with below code:
const allCustomers = await prisma.customer.findMany({
            include: {
                invoices: true,
                _count: {
                    select: {
                        invoices: true,
                    },
                },
            },
        });

The result is:
allCustomers [
  {
    id: '623d4ad9f7a43c28e8349a0b',
    invoices: [ [Object] ],
    _count: { invoices: 0 }
  }
]

As the remote db was not available, I created 2 customer with an invoice with
    await prisma.customer.create({
      data: {
        invoices: {
          create: {
            email<EMAIL_ADDRESS>          },
        },
      },
    });
    await prisma.customer.create({
      data: {
        invoices: {
          create: {
            email<EMAIL_ADDRESS>          },
        },
      },
    });

allCustomers [
  {
    id: '63176a7089a697fd67b3d3df',
    invoices: [ [Object] ],
    _count: { invoices: 0 }
  },
  {
    id: '63176a7089a697fd67b3d3e1',
    invoices: [ [Object] ],
    _count: { invoices: 0 }
  }
]
allInvoices [
  {
    id: '63176a7089a697fd67b3d3e0',
    email<EMAIL_ADDRESS>    customerId: '63176a7089a697fd67b3d3df',
    customer: { id: '63176a7089a697fd67b3d3df' }
  },
  {
    id: '63176a7089a697fd67b3d3e2',
    email<EMAIL_ADDRESS>    customerId: '63176a7089a697fd67b3d3e1',
    customer: { id: '63176a7089a697fd67b3d3e1' }
  }
]
foundCustomer {
  id: '63176a7089a697fd67b3d3df',
  invoices: [ { id: '63176a7089a697fd67b3d3e0' } ],
  _count: { invoices: 0 }
}

_count: { invoices: 0 }
As pointed out in this bug report.

Can reproduce in 3.11.1 and 4.3.1/dev

Hi Jolg42,
Free MongoDB was destroyed without connection for a long time,
I just booted up and tried it again with version 4.3.1
Problem when:foundCustomer: nullwith some no longer exists,
But like you tested,
The select _count still cannot count the number of customer invoices,
This is still a pretty big logic bug.

I believe I'm running into this same issue now trying to query a many-to-many relationship using MongoDB. I looked at the attached PR which seems to indicate that some people are having this problem when the underlying types differ for their relational fields, but that is not the case for me - all the relevant fields are using the @db.ObjectId.
A simplified example:
Prisma Schemas
model User {
  id               String          @id @default(auto()) @map("_id") @db.ObjectId
  accountIds       String[]        @map("account_ids") @db.ObjectId
  accounts         Account[]       @relation(fields: [accountIds], references: [id])
  email            String          @unique

  @@map("users")
}

model Account {
  id         String      @id @default(auto()) @map("_id") @db.ObjectId
  name       String
  ownerIds   String[]    @map("owner_ids") @db.ObjectId
  owners     User[]      @relation(fields: [ownerIds], references: [id])

  @@map("accounts")
}

Query
const accountId = 'valid-account-object-id-string' // new ObjectId().toHexString()
const userId = 'valid-user-object-id-string' // new ObjectId().toHexString()

const userAccounts = await this.prisma.account.findMany({
  where: {
    id: accountId,
    owners: {
      some: {
        id: userId,
      },
    },
  }
})

I also tried the following queries:
const userAccounts = await this.prisma.account.findMany({
  where: {
    id: accountId,
    ownerIds: {
      hasSome: [userId],
    },
  }
})

const userAccounts = await this.prisma.account.findMany({
  where: {
    id: accountId,
    ownerIds: {
      has: userId,
    },
  }
})

None of these work. I can include the owners which correctly populates the array of owner objects.
If I change the some to an every in the first query, the matching works, but I suppose that is only since there is only this one specific user in the owners relationship, so not a feasible solution.
Is there anything else I can provide to help get this resolved?

Internal document: https://www.notion.so/Mongo-_some-Bug-bd5168db2e16486da8e10932594abf6b


Missing officebots-ros

Hey, I was going through the following ros4-hri tutorial http://wiki.ros.org/hri/Tutorials/ROS4HRI-walk-through where officebots gets used.
An in point 1.1 step 6, the command officebots-ros WallE is used. But I don't understand where it gets installed and/or retrieved from. The module officebots installed via pip provides a sort of abstract class for the robot where the method run() needs to be implemented. I imagine that somewhere this is implemented for ARI to be spawned and used in this simulation. If you can point me at the missing module, it would help me, thanks!

Sorry, I somehow rebooted and it was working


Double chests from Quark mods, Abnormals mods, are not checked.

Double chests from Quark mods, Abnormals mods, are not checked.

1.19.2 Forge.

also have this problem


RRV - Integrate the new "Roman RiscV" into the MAFIA project

No need to integrate nto the fabric
We want to utilize the MAFIA TFM (APP, Build, reference model) to run the RRV project.

@roman012285  - This we will do together next week in our 1:1

NOT RELEVANT! WE DELETE THAT CORE

Please close this type of issues as "no-planned" and not as complited.
Also - PLease do not update the milestone to MAFIA 1.0 -> The mile stone should stay at it original date unless we want to push it to a later dat

see example here:


Circle ci with main instead of master

Replace all mentions of master as main in .circleci/config.yml

Codecov Report

Merging #256 (661e0f6) into main (a026f35) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #256   +/-   ##
=======================================
  Coverage   62.89%   62.89%
=======================================
  Files          41       41
  Lines        2083     2083
  Branches      367      367
=======================================
  Hits         1310     1310
  Misses        677      677
  Partials       96       96

thx a lot for the fix @tanglef !


Can't Get Through Gulp Step to use web starter kit.

What you need to know:
I have Node, NPM, Ruby, SASS all installed and at lastest stable realeases. (ruby isn't at it's lastest stable but the lastest stable does not have the sass gem):

I updated npm by using the command line and following the guide here: https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows I USED OPTION 3
I then went back to : https://developers.google.com/web/fundamentals/getting-started/web-starter-kit/setting-up#install-these-one-time-dependencies
I scrolled down and followed the steps to "Set Up Your Web Starter Kit Project" keep in mind that i renamed the folder from "web-starter-kit" to "google web" in this case for convenience
So i navigated to the starter kit folder using cmd (with admin rights) and typed npm install here are the results:

 I still decided to go ahead and still tried to install gulp using npm install gulp -g within the starter kit folder heres the results:

Who ever helps me rectify this will receive my praise forever...I really want to be using this starter kit to start my projects. Moderators please do not close this thread without issues being fixed. There is clearly something amiss here.

Just for the sake of trying, run npm install again without removing the node_modules folder

@Uriahs9 It was closed (#601) because it's not an issue with WSK, but with your system and/or possibly gulp. You can still continue the discussion with the issue being closed, but keep in mind that support questions are better asked and answered on StackOverflow ;)


Build wheels for Linux ARM64

What
Build linux-aarch64 wheels with manylinux_2_35 compatibility (vs. manylinux_2_31 for all other target—see below). Amongst other things, this PR:

fixes pixi.toml for linux-aarch64 compatibility
bumps pixi to 0.16.1 everywhere in the ci
adds a manual trigger for building wheels
(mostly) unifies the target naming scheme

Related

Follow-up to:

#5489
#5503

Closes #4136
Fixes #5507

Further work

support lower glibc version: https://github.com/rerun-io/rerun/issues/5512
test more wheels: https://github.com/rerun-io/rerun/issues/5525

Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct
[x] I've included a screenshot or gif (if applicable)
[x] I have tested the web demo (if applicable):

Using newly built examples: app.rerun.io
Using examples from latest main build: app.rerun.io
Using full set of examples from nightly build: app.rerun.io

[x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG
[x] If applicable, add a new check to the release checklist!

PR Build Summary
Docs preview
Examples preview
Recent benchmark results
Wasm size tracking

Testing builds for all wheels with ca13fdc
https://github.com/rerun-io/rerun/actions/runs/8294337164
https://github.com/rerun-io/rerun/actions/runs/8294338708
https://github.com/rerun-io/rerun/actions/runs/8294341078
https://github.com/rerun-io/rerun/actions/runs/8294343144
https://github.com/rerun-io/rerun/actions/runs/8294345322

Ok, as of https://github.com/rerun-io/rerun/pull/5543 rerunio/ci_docker:0.12.0 should be able to run on arm.

Back to draft... Using our shiny new docker image for the c build appears to work: https://github.com/rerun-io/rerun/actions/runs/8306070007/job/22733709381
The same isn't quite true yet for the CLI: https://github.com/rerun-io/rerun/actions/runs/8306071147/job/22733711751

Hopefully final set of test builds:

rerun_c

https://github.com/rerun-io/rerun/actions/runs/8324054089/job/22774866413
https://github.com/rerun-io/rerun/actions/runs/8324056057/job/22774877880
https://github.com/rerun-io/rerun/actions/runs/8324057635/job/22774930544
https://github.com/rerun-io/rerun/actions/runs/8324059731/job/22774936811
https://github.com/rerun-io/rerun/actions/runs/8324061919/job/22774947517

rerun_cli

https://github.com/rerun-io/rerun/actions/runs/8324076392/job/22774931707
https://github.com/rerun-io/rerun/actions/runs/8324074787/job/22774926512
https://github.com/rerun-io/rerun/actions/runs/8324072281/job/22774919270
https://github.com/rerun-io/rerun/actions/runs/8324070344/job/22774914364
https://github.com/rerun-io/rerun/actions/runs/8324066931/job/22774902191

rerun wheels

https://github.com/rerun-io/rerun/actions/runs/8324030428/job/22774795170
https://github.com/rerun-io/rerun/actions/runs/8324032055/job/22774800083
https://github.com/rerun-io/rerun/actions/runs/8324034402/job/22774807875
https://github.com/rerun-io/rerun/actions/runs/8324036958/job/22774813123
https://github.com/rerun-io/rerun/actions/runs/8324039600/job/22774821545


raspberrypi-eeprom: 2021.04.29-138a1 -> 2022.01.25-138a1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/raspberrypi/rpi-eeprom/releases.
meta.description for raspberrypi-eeprom is: "Installation scripts and binaries for the closed sourced Raspberry Pi 4 EEPROMs"
meta.homepage for raspberrypi-eeprom is: "https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md"
meta.changelog for raspberrypi-eeprom is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1/bin/.rpi-eeprom-config-wrapped had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1/bin/rpi-eeprom-update had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1/bin/rpi-eeprom-config had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1/bin/.rpi-eeprom-update-wrapped had a zero exit code or showed the expected version
0 of 4 passed binary check by having a zero exit code.
0 of 4 passed binary check by having the new version present in output.
found 2022.01.25-138a1 with grep in /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1
found 2022.01.25-138a1 in filename of file in /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1

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

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
raspberrypi-eeprom

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1
ls -la /nix/store/68kbdj5akkx6irll4csrywav95ixb6zv-raspberrypi-eeprom-2022.01.25-138a1/bin

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

1 package built:

raspberrypi-eeprom

Maintainer pings
cc @dasJ for testing.

Upstream has a new version available


Fix broken link in Transaction docs

Connection::begin link is incorrect (it is a trait, not a struct).

With Rust 1.48 out I'd like us to migrate entirely to intra-crate links: https://doc.rust-lang.org/rustdoc/linking-to-items-by-name.html
Do you mind doing that for this change instead? Just for this link and maybe the others in the same doc-comment if you feel like it.

Thanks!


multi points itinerary

hi
is it possible to build something like this.... with google api?
1 / i enter a list of 25 or more addresses
2 / api calculate the best / fastest itinerary from ALL those points
3 / have a list as a result or export this as xls ?
thanks

Hi @smolleyes,
you can have a look at this method: https://developers.google.com/maps/documentation/distancematrix/
There are limitation from Google on the way you will display the results.

Hello
Thanks for the reply :)
Free api is limited To 100 elements by query does it mean 100 adresses on my case ? (Nice if it s right)
Think i ll try To put all my points on a map then create an entry and end point possible then send geocoded values of each points To this api ...
Seems right for you ?
Thanks a lot

I believe you have the following limitations:
Users of the free API:
100 elements per query.
100 elements per 10 seconds.
2500 elements per 24 hour period.

The 100 elements - I guess - are a combination or origins and destinations - but I am not sure. You would need to test by yourself what is the free limit. Google will give you an error when you exceed the limits.
I am sorry but I am not really understanding what you want to achieve.
You would need to re-formulate your problem in a way we can


2961 - Updated readme.md to install Yarn project dependencies

Resolves #2961
Description
This change addresses the error returned indicating that webpack-dev-server is not found when trying to start the application with the command bin/start.
This change is only to update the README.md file with a step to run the yarn command after installing Yarn. Running yarn will install all the project dependencies specified in the yarn.lock file.
Type of change

Documentation update

How Has This Been Tested?
To test this change, the yarn command was run and verified the app started up successfully with bin/start.

I need to close this pull request. I accidentally cloned the rubyforgood repo and not my forked one. I will open a new pull request with changes to my forked repo. My apologies.


fix load glitch for favorite cocktail modal

don't display the modal until after the content is grabbed

done


feat: switch to pydantic

@Akuli I managed to fix the FIXME type comment in this PR, but I'm not actually sure how to test this all using porcupine. Could you do so for me or delineate how to do so please?

@Akuli I managed to fix the FIXME type comment in this PR, but I'm not actually sure how to test this all using porcupine. Could you do so for me or delineate how to do so please?

I tested this with porcupine like this, in porcupine with its venv activate:
$ pip uninstall sansio_lsp_client
$ pip install https://github.com/PurpleMyst/sansio-lsp-client/archive/pydantic-rewrite.zip
$ python3 -m porcupine release.py

By default, Porcupine is configured to work with python-language-server, and to test that, I opened release.py which is a Python script that Porcupine comes with. It doesn't work:
log file: /home/akuli/.cache/porcupine/logs/2021-01-13T10-27-18.txt
porcupine.plugins.langserver.4154 ERROR: error while receiving lsp events
Traceback (most recent call last):
  File "/home/akuli/porcu/porcupine/plugins/langserver.py", line 376, in _run_stuff_once
    lsp_events = self._lsp_client.recv(received_bytes)
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/client.py", line 118, in recv
    messages = list(_parse_messages(self._recv_buf))
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 187, in _parse_messages
    parsed = _parse_one_message(response_buf)
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 180, in _parse_one_message
    return [do_it(content)]
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 160, in do_it
    request = Request.parse_obj(data)
  File "pydantic/main.py", line 520, in pydantic.main.BaseModel.parse_obj
  File "pydantic/main.py", line 362, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Request
method
  field required (type=value_error.missing)

I tested this with porcupine like this, in porcupine with its venv activate:
$ pip uninstall sansio_lsp_client
$ pip install https://github.com/PurpleMyst/sansio-lsp-client/archive/pydantic-rewrite.zip
$ python3 -m porcupine release.py

By default, Porcupine is configured to work with python-language-server, and to test that, I opened release.py which is a Python script that Porcupine comes with. It doesn't work:
log file: /home/akuli/.cache/porcupine/logs/2021-01-13T10-27-18.txt
porcupine.plugins.langserver.4154 ERROR: error while receiving lsp events
Traceback (most recent call last):
  File "/home/akuli/porcu/porcupine/plugins/langserver.py", line 376, in _run_stuff_once
    lsp_events = self._lsp_client.recv(received_bytes)
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/client.py", line 118, in recv
    messages = list(_parse_messages(self._recv_buf))
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 187, in _parse_messages
    parsed = _parse_one_message(response_buf)
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 180, in _parse_one_message
    return [do_it(content)]
  File "/home/akuli/porcu/env/lib/python3.7/site-packages/sansio_lsp_client/io_handler.py", line 160, in do_it
    request = Request.parse_obj(data)
  File "pydantic/main.py", line 520, in pydantic.main.BaseModel.parse_obj
  File "pydantic/main.py", line 362, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Request
method
  field required (type=value_error.missing)

@Akuli I've fixed the "this does not start up at all" bug, the issue was depending on TypeError while ValidationError was actually a subclass of ValueError. Anyways, could you please test again? It seems to start up for me.

@Akuli I've fixed the "this does not start up at all" bug, the issue was depending on TypeError while ValidationError was actually a subclass of ValueError. Anyways, could you please test again? It seems to start up for me.

Ideally, there would be a way to merge #16 and #17 so that you could use pytest for doing the same things that Porcupine does when I test with it. I tried that, and it resulted in a merge conflict in poetry.lock. I tried deleting poetry.lock to resolve it, which makes the merge work but then poetry install fails:
$ poetry install
Updating dependencies
Resolving dependencies... (10.6s)

Writing lock file

Package operations: 1 install, 4 updates, 0 removals

  • Updating typed-ast (1.4.1 -> 1.4.2)
  • Updating typing-extensions (<IP_ADDRESS> -> <IP_ADDRESS>)
  • Updating toml (0.10.1 -> 0.10.2)
  • Updating attrs (18.2.0 -> 20.3.0)
  • Installing pydantic (1.7.3): Failed

  EnvCommandError

  Command ['/home/akuli/sansio-lsp-client/env/bin/pip', 'install', '--no-deps', '/home/akuli/.cache/pypoetry/artifacts/a2/97/d0/ea9e192cb9618b7c2e414860077a8353f5153e377eab0aba2e3844f50e/pydantic-1.7.3-cp37-cp37m-manylinux2014_x86_64.whl'] errored with the following return code 1, and output:
  pydantic-1.7.3-cp37-cp37m-manylinux2014_x86_64.whl is not a supported wheel on this platform.

  at env/lib/python3.7/site-packages/poetry/utils/env.py:1074 in _run
      1070│                 output = subprocess.check_output(
      1071│                     cmd, stderr=subprocess.STDOUT, **kwargs
      1072│                 )
      1073│         except CalledProcessError as e:
    → 1074│             raise EnvCommandError(e, input=input_)
      1075│
      1076│         return decode(output)
      1077│
      1078│     def execute(self, bin, *args, **kwargs):

I fucking hate poetry...
Anyway, I then installed the dependencies with pip, just looking them up from pyproject.toml:
$ pip install dataclasses pydantic pytest mypy black python-language-server

Then the tests passed. I'll try with Porcupine next, but I would expect it to work with Porcupine too.

Ideally, there would be a way to merge #16 and #17 so that you could use pytest for doing the same things that Porcupine does when I test with it. I tried that, and it resulted in a merge conflict in poetry.lock. I tried deleting poetry.lock to resolve it, which makes the merge work but then poetry install fails:
$ poetry install
Updating dependencies
Resolving dependencies... (10.6s)

Writing lock file

Package operations: 1 install, 4 updates, 0 removals

  • Updating typed-ast (1.4.1 -> 1.4.2)
  • Updating typing-extensions (<IP_ADDRESS> -> <IP_ADDRESS>)
  • Updating toml (0.10.1 -> 0.10.2)
  • Updating attrs (18.2.0 -> 20.3.0)
  • Installing pydantic (1.7.3): Failed

  EnvCommandError

  Command ['/home/akuli/sansio-lsp-client/env/bin/pip', 'install', '--no-deps', '/home/akuli/.cache/pypoetry/artifacts/a2/97/d0/ea9e192cb9618b7c2e414860077a8353f5153e377eab0aba2e3844f50e/pydantic-1.7.3-cp37-cp37m-manylinux2014_x86_64.whl'] errored with the following return code 1, and output:
  pydantic-1.7.3-cp37-cp37m-manylinux2014_x86_64.whl is not a supported wheel on this platform.

  at env/lib/python3.7/site-packages/poetry/utils/env.py:1074 in _run
      1070│                 output = subprocess.check_output(
      1071│                     cmd, stderr=subprocess.STDOUT, **kwargs
      1072│                 )
      1073│         except CalledProcessError as e:
    → 1074│             raise EnvCommandError(e, input=input_)
      1075│
      1076│         return decode(output)
      1077│
      1078│     def execute(self, bin, *args, **kwargs):

I fucking hate poetry...
Anyway, I then installed the dependencies with pip, just looking them up from pyproject.toml:
$ pip install dataclasses pydantic pytest mypy black python-language-server

Then the tests passed. I'll try with Porcupine next, but I would expect it to work with Porcupine too.

It works

It works

Consider updating mypy to get rid of problems like 30e7c18585

Consider updating mypy to get rid of problems like 30e7c18585

I've merged #17 and I've rebased this branch on those changes. I think your poetry version's outdated like my mypy was :D

I've merged #17 and I've rebased this branch on those changes. I think your poetry version's outdated like my mypy was :D

@Akuli the tests seem not to pass?

@Akuli the tests seem not to pass?

Woops, I'd forgotten to include the fix commit when rebasing and hard-resetting. Thankfully git reflog saved me. Does this all look good to you? Can I merge?

Woops, I'd forgotten to include the fix commit when rebasing and hard-resetting. Thankfully git reflog saved me. Does this all look good to you? Can I merge?

Can be merged when mypy and black pass

Can be merged when mypy and black pass

mypy-update branch contains newer version of mypy added to poetry. It doesn't prevent the weird object error from happening though...

mypy-update branch contains newer version of mypy added to poetry. It doesn't prevent the weird object error from happening though...

Yeah, I'm not sure why this error happens. For all intents and purposes, t.Union[...] should be a t.Type. I'm just going to commit the # type: ignore[arg-type] comment again

Yeah, I'm not sure why this error happens. For all intents and purposes, t.Union[...] should be a t.Type.  Can I squash&merge?

There you go. Can I squash&merge?


Add date to "otp", if received otp date is less than current date, skip the script

dbs_scrape should be able to validate the received otp before attempting to login (of course dbs will reject the incorrect otp, but this saves a click doesn't it?).
To do this, otphelper needs to be modified to include the current date and time when saving the otp to Firebase.
dbs_scrape will have to be modified to check for the otp date. If the otp date is before current date, then it will not proceed to login with the received otp, saving a click.

Done in commit 9c7041896075113ab317c23dc078179c2648b2cd


not  opening

when i open it it doesnt open

Make sure you're on the latest version of the swapper. Could you send your log files here? https://docs.proswapper.xyz/pro-swapper/getting-pro-swapper-logs


Add ability to reference component methods without needing $ref

What problem does this feature solve?
Right now, in order to call a method from a custom component, you have to assign a $ref. Once assigned, you can reference the method by calling this.$refs.component.method().
The proposed change would allow for easiest access to internal methods.
What does the proposed API look like?
Before:
<custom-component ref="component" @event="customMethod" />

Where custom method may be:
customMethod () {
  this.$refs.component.method()
}

After:
<custom-component @event="$this->method" />

When is this actually useful? Usually, when listening to events on a component, you may want to trigger a method on another component but not in the same one

Why would you emit an event just so it triggers a method in the same component? Why not just call that method?

I had a use-case for this, but I cannot find it atm. I'll re-open once I do, thank you.


Create Guacamole User Resource for TRE to Support Linux VM

In order to offer our custom VM images to users of the TRE we need to either modify the existing Guacamole user resources, or create our own copies of these resources.
This task specifically covers the Linux VM user resource.
A separate task covers the custom Windows VM user resource: #123
https://github.com/microsoft/AzureTRE/blob/main/templates/workspace_services/guacamole/user_resources/README.md

Additional Packages Needed for Linux VM (to be added in Custom Image definition:

[ ] Azure Data Studio
[ ] VS Code Extensions

[ ] devcontainers
[ ] docker
[ ] postgresql
[ ] Azure Databases
[ ] Databricks
[ ] Azure Data Studio


Handle KeyError when using 'old' hdf5 files.

I ran into a KeyError when I tried to load some 'old' hdf5 files (when attribute 'general_calculations' wasn't yet implemented in MolecularData).

I signed it!

Hi Ryan,
Thanks a lot for your comment! I just changed the try statement to an if instead. Regarding the testing, I purposefully made this PR without adding to the test because I wanted to ask you and the other developers about what to do when there's an edit similar to this in MolecularData. Would it be okay to add an old or "faulty" data file to the data subdirectory or would this be setting a bad precedent?

but for now, I'll try to look for a different line in the code that still needs a test and test that.

I think you may have fixed the coverage problem just by switching to the "if" statement. The coverage check passed so I went ahead with it. Thanks!


give modules a default value in hello command

without it, dragonflydb breaks as it doesn't send a modules field. this change shouldn't break any behavior with redis.

just noticed some other lines changed, blame rustfmt and not me :P (sorry! first pull request on github)

Thank you for your contribution!


artalk/artalk-go 镜像在 2.8.1 以后 在启动后无法获取 /api/conf 接口

2.7版本都是好的

你好，v2.8.0 重构了 HTTP API.

GET /api/conf 修改为 GET /api/v2/conf

同样还有常用的 POST /api/stat 修改为 GET /api/v2/stats/{type}

我们提供 Swagger.json 和 API 文档供参考：https://artalk.js.org/http-api
可以看下 CHANGELOG.md:

For Developers: The HTTP API has now been updated to version v2, with a lot of adjustments made, such as changing to Restful API style, request type, request body, response body, etc. data structure, adding error response codes. You can refer to #735 or https://artalk.js.org/http-api Please update all your existing clients to adapt to the new v2 server. The new base path is /api/v2/. The UI package's HTTP client has been implemented to auto-generate based on Swagger.json, and there have been a lot of adjustments to the artalk.ctx.getApi() related code. In addition, the HTTP API no longer enforces checks on the header's Origin and Referer (to implement strict isolation of different sites) but still maintains the original CORS origin check.

您好，非常感谢您的快速回复，问题已经得到解决了，确实忘记更新了我前端的npm仓库
have a nice day


Add boilerplate for Browser Testing and Tools Working Group

WD matches https://www.w3.org/TR/webdriver/
ED matches wording and order of many other status-ED.include

This is to enable https://github.com/w3c/webdriver/issues/1462.
However, I have my doubts that LD is a status we should use here. It results in https://www.w3.org/StyleSheets/TR/2016/W3C-LD being used as stylesheet, and that's 404.
@AutomatedTester @sideshowbarker what should be the statuses of tip-of-tree https://w3c.github.io/webdriver/ and https://w3c.github.io/webdriver-bidi/? I'd like to include the template text for those statuses at least.

My best guess is Editor's Draft and Unofficial Draft, respectively.

@AutomatedTester @sideshowbarker what should be the statuses of tip-of-tree https://w3c.github.io/webdriver/

That could be considered WD since the same revision of the document is also auto-published to https://www.w3.org/TR/webdriver/

and https://w3c.github.io/webdriver-bidi/?

Personally, I would label it Editor’s Draft. I don’t know what the difference between Editor’s Draft and Unofficial Draft is supposed to be, but as far as I can see, there is no policy at the W3C for labeling anything as an Unofficial Draft — and we have many precedents of the label Editor’s Draft being used for documents which haven’t yet been formally adopted as deliverables by any working groups, nor published yet as Working Drafts.

For context, webdriver is that we want a living doc and it relies on the evergreen work that @plehegar and @fantasai are/were working on.

Yeah, UD is (unofficially, appropriate enough) often used as an "even less official" editor's draft, for things that shouldn't be read as having any blessing from the WG.

However, I have my doubts that LD is a status we should use here. It results in w3.org/StyleSheets/TR/2016/W3C-LD being used as stylesheet, and that's 404.

Whatever the stylesheet is that should be used for LDs, we can fix that in bikeshed. What URL shoudl it use?

I've updated to have WD and ED templates instead now. Note that this depends on https://github.com/w3c/webdriver/pull/1511 for the "WD matches https://www.w3.org/TR/webdriver/" claim in the description to be 100% true, as the placement of [STATUSTEXT] is different, in order to match most other templates and ED.

@AutomatedTester, @sideshowbarker and I discussed a bit on IRC and concluded that the ED+WD boilerplate is OK, no need for LD. I'll squash the PR to clean up the history.

No need to squash the PR, btw; I squash at the merge anyway.


Unicode URLs break completely with DAV storage and Python 2

Hi,
I tried to run a vdirsyncer sync and I get the following error
/usr/lib64/python2.7/urllib.py:1294: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

return ''.join(map(quoter, s))
Unhandled exception occured for inria_calendar/Calendar.
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/vdirsyncer/cli/tasks.py", line 77, in sync_collection
force_delete=force_delete
File "build/bdist.linux-x86_64/egg/vdirsyncer/sync.py", line 163, in sync
b_info.prepare_idents(storage_a.read_only)
File "build/bdist.linux-x86_64/egg/vdirsyncer/sync.py", line 111, in prepare_idents
if prefetch else ()):
File "build/bdist.linux-x86_64/egg/vdirsyncer/storage/dav.py", line 385, in get_multi
href_xml.append('<D:href>{}</D:href>'.format(_encode_href(href)))
File "build/bdist.linux-x86_64/egg/vdirsyncer/storage/dav.py", line 33, in _encode_href
return utils.compat.urlquote(x, '/@')
File "/usr/lib64/python2.7/urllib.py", line 1294, in quote
return ''.join(map(quoter, s))
KeyError: u'\xc3'
I installed vdisyncer from souces and may be it is due to my urllib...
I you have any ideas, i would be interested
Bests regards,
marc

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/21049192-problem-with-urrlib-and-unicode?utm_campaign=plugin&utm_content=tracker%2F574345&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F574345&utm_medium=issues&utm_source=github).

Hello @aitzkora, what is the config you're using? Could you send me the output of vdirsyncer -vdebug sync in private (per email)?

Thanks for the output. I just noticed that the error message you're recieving is never supposed to happen in that way: URLs should never be unicode. Could you try running the testsuite from latest master? (I just pushed a commit).
virtualenv -p /path/to/vdirsyncers/python env
. env/bin/activate
make install-test
make test

Nevermind, I've found the bug -- brainfart on my side.

Alright, the unicode_urls branch should contain an appropriate fix for Python 2. Note that the stable version of vdirsyncer probably works flawlessly under Python 3.
pip install -U git+https://github.com/untitaker/vdirsyncer.git@unicode_urls

Hi,
i run the command
pip install -U git+https://github.com/untitaker/vdirsyncer.git@unicode_urls
and now i get an different error. Thanks a lot for the job your have done.
Bests regards,
marc
Traceback (most recent call last):
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/cli/tasks.py", line 77, in sync_collection
force_delete=force_delete
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/sync.py", line 175, in sync
action(a_info, b_info, conflict_resolution)
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/sync.py", line 188, in inner
.format(ident, dest.storage))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 30: ordinal not in range(128)

Thanks, please try again.

i tried
~/vdirsyncer/bin/pip2.7  install -U git+https://github.com/untitaker/vdirsyncer.git@unicode_urls
and when I run  ~/vdirsyncer/bin/vdirsyncer sync I got
Syncing inria_calendar/Calendar
error: Directory /home/fux/.calendars/Calendar does not exist.
error: No collection Calendar found for storage inria_calendar_local.
Should vdirsyncer attempt to create it? [y/N]: y
Unhandled exception occured for inria_calendar/Calendar.
Traceback (most recent call last):
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/cli/tasks.py", line 77, in sync_collection
force_delete=force_delete
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/sync.py", line 163, in sync
b_info.prepare_idents(storage_a.read_only)
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/sync.py", line 111, in prepare_idents
if prefetch else ()):
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/storage/dav.py", line 381, in get_multi
if href != self._normalize_href(href):
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/storage/dav.py", line 363, in _normalize_href
return _normalize_href(self.session.url, *args, **kwargs)
File "/home/fux/vdirsyncer/lib/python2.7/site-packages/vdirsyncer/storage/dav.py", line 27, in _normalize_href
x = utils.compat.urlparse.urljoin(base, href)
File "/usr/lib64/python2.7/urlparse.py", line 271, in urljoin
params, query, fragment))
File "/usr/lib64/python2.7/urlparse.py", line 231, in urlunparse
return urlunsplit((scheme, netloc, url, query, fragment))
File "/usr/lib64/python2.7/urlparse.py", line 242, in urlunsplit
url = '//' + (netloc or '') + url
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 66: ordinal not in range(128)
but before at least, it was possible to download a list of .ics

may be it is due to my version of urllib, is it possible to use  a downloaded version by virtualenv

Please try again.
You can't upgrade urllib separately, it's part of Python. I think if you use Python 3 you have none of these problems.

@aitzkora could you try again?

Victory! It works :-)
When using ikhal i still have some errors in the console and strange name with some characters

warning: This event will not be available in khal.
Unknown exception happened.
Traceback (most recent call last):
File "/home/fux/vdirsyncer2/lib/python2.7/site-packages/khal/khalendar/khalendar.py", line 202, in _update_vevent
self._dbtool.update(event.raw, href=href, etag=etag)
File "/home/fux/vdirsyncer2/lib/python2.7/site-packages/khal/khalendar/backend.py", line 252, in update
for vevent in sorted(vevents, key=sort_key):
File "/home/fux/vdirsyncer2/lib/python2.7/site-packages/khal/khalendar/backend.py", line 236, in sort_key
uid = str(vevent['UID'])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 30: ordinal not in range(128)

So I can close that issue ?
Viele Dank! Thanks a million!
marc

Could you open an issue about this at khal? And please include the UID that causes theses problems.

Excellent!


The bot shows me error message when I update the bot.

Please tick all applicable boxes.

[x] I am using Python 3.5.3 or higher (run python --version on the command line)

[x] I have followed the official guides to install the bot for my system

[x] I have updated my dependencies to the latest version using the appropriate update script

Which version are you using?

[x] The latest master version (release-260419)
[ ] The latest review version

What type of issue are you creating?

[x] Bug
[ ] Feature request
[ ] Question

Description of issue
It shows me ERROR message when I update and start the bot
Steps to reproduce

Log file
Please attach your MusicBot log file (located at logs/musicbot.lo [musicbot.log](https://github.com/Just-Some-Bots/MusicBot/files/4641259/musicbot.log) g) to this issue. You can do so by dragging and dropping the file here. If you do not include your log file, you WILL be asked to provide one.

I dont see any error messages. Could you specify the error message?

Upload your log please

I noticed the update.sh is not executable. Run "chmod +x update.sh" to correct the issue.

I noticed the update.sh is not executable. Run "chmod +x update.sh" to correct the issue.

go it, the update.sh run smoothly after chmod +x update.sh, thanks


add Large, Small, and Dynamic viewport units (lvh, lvw, svh, svw, dvh, dvw, etc...)

I'm not super good at reading CSS drafts but it looks to me like this is something that is CSS level 4 and it would be cool if it was on caniuse
https://drafts.csswg.org/css-values-4/#viewport-variants

Now available at https://caniuse.com/viewport-unit-variants

Thanks


Load Frontend Configuration from Well Known Location on Server

Summary
As developer
I want the frontend to be configurable for different environments (e.g. test/prod)
So that things aren't hardcoded.
Context
The configuration should be loaded from a well-known location relative to the index.html file, e.g. "config.yaml".
Out of Scope
No response
Further links
No response
Acceptance Criteria
No response
Implementation Ideas
No response

Examples:

Logo
Theme
Company name for white labelling
Keycloak URL


Update documentation and bump python/workflow versions

Before submitting the PR, please go through the sections below and fill in what you can. If there are any items that are irrelevant for the current PR, remove the row. If a relevant option is missing, please add it as an item and add a PR comment informing that the new option should be included into this template.

All relevant items should be ticked before the PR is merged

Description

[x] Summary of the changes and the related issue: Update of documentation with examples, and updating Python version and workflow versions.

Type of change

[x] Documentation
[x] Security Alert fix
[x] Workflow

Checklist:
General

[x] Changelog: New row added. Not needed when PR includes only tests.

Repository / Releases

[x] Rebase / update of branch done

Checks

[x] CodeQL passes
[x] Formatting: Black & Prettier checks pass
Tests

[x] The tests pass

@valyo Added a couple more examples, but now I will wait for review.


chore: decrease timeout waiting for Rook version rolled out

What this PR does / why we need it:
We can check in the logs of the tests (example, here) that the timeout is faced but rook/ceph will have a health status afterwords.
However, face a timeout does not bail the install and the huge time waiting is causing we the upgrade tests in the testgrid fails. It probably occurs because of rook issues where the MDS cannot start prior all the patches changes are made.
Therefore, this PR decrease the timeout from 1.6.11 and only in the check that we are seem it been faced, see:
2023-02-01 11:55:50+00:00 Error: failed to wait for Rook "1.6.11": timed out waiting for Rook 1.6.11 to roll out
        2023-02-01 11:55:50+00:00 Timeout waiting for Rook version rolled out
        2023-02-01 11:55:50+00:00 ⚙  Checking Rook versions and replicas
    2023-02-01 11:55:50+00:00 rook-ceph-crashcollector-ihbjqxcfbpjmdulh-initialprimary      req/upd/avl: 1/1/1      rook-version=v1.6.11
    2023-02-01 11:55:50+00:00 rook-ceph-mds-rook-shared-fs-a      req/upd/avl: 1/1/1      rook-version=v1.6.11
    2023-02-01 11:55:50+00:00 rook-ceph-mds-rook-shared-fs-b      req/upd/avl: 1/1/      rook-version=v1.6.11
    2023-02-01 11:55:50+00:00 rook-ceph-mgr-a      req/upd/avl: 1/1/1      rook-version=v1.6.11
    2023-02-01 11:55:50+00:00 rook-ceph-mon-a      req/upd/avl: 1/1/1      rook-version=v1.6.11
    2023-02-01 11:55:50+00:00 rook-ceph-osd-0      req/upd/avl: 1/1/1      rook-version=v1.6.11
    2023-02-01 11:55:50+00:00 rook-ceph-rgw-rook-ceph-store-a      req/upd/avl: 1/1/1      rook-version=v1.6.11
        2023-02-01 11:55:50+00:00 Awaiting Ceph healthy
        2023-02-01 11:55:50+00:00 Waiting for Rook-Ceph to be healthy
        2023-02-01 11:55:50+00:00 Rook is healthy
        2023-02-01 11:55:51+00:00 cephfilesystem.ceph.rook.io/rook-shared-fs patched
        2023-02-01 11:55:51+00:00 Awaiting Rook MDS deployments to roll out
        2023-02-01 11:56:07+00:00  [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]  Awaiting Rook MDS deployments up-to-date
        2023-02-01 12:02:50+00:00  [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]   [-]   [\]   [|]   [/]  Awaiting Rook MDS daemons ok-to-stop
        2023-02-01 12:02:51+00:00 Awaiting Ceph healthy
        2023-02-01 12:02:51+00:00 Waiting for Rook-Ceph to be healthy
        2023-02-01 12:02:52+00:00 Rook is healthy
        2023-02-01 12:02:52+00:00 ⚙  Upgrading rook-ceph cluster
        2023-02-01 12:02:52+00:00 cephcluster.ceph.rook.io/rook-ceph patched
        2023-02-01 12:02:52+00:00 Waiting for all Rook-Ceph deployments to be using Ceph 15.2.13-0
        2023-02-01 12:02:52+00:00 deployments rook-ceph-crashcollector-ihbjqxcfbpjmdulh-initialprimary, rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-mgr-a, rook-ceph-mon-a, rook-ceph-osd-0, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0
        2023-02-01 12:03:23+00:00 deployments rook-ceph-crashcollector-ihbjqxcfbpjmdulh-initialprimary, rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-mgr-a, rook-ceph-osd-0, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0
        2023-02-01 12:03:33+00:00 deployments rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-mgr-a, rook-ceph-osd-0, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0
        2023-02-01 12:03:53+00:00 deployments rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-osd-0, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0
        2023-02-01 12:04:13+00:00 deployments rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0
        2023-02-01 12:04:23+00:00 deployments rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0 and deployments rook-ceph-osd-0 not ready
        2023-02-01 12:04:33+00:00 deployments rook-ceph-mds-rook-shared-fs-a, rook-ceph-mds-rook-shared-fs-b, rook-ceph-rgw-rook-ceph-store-a still running 15.2.11-0
        2023-02-01 12:04:43+00:00 deployments rook-ceph-mds-rook-shared-fs-b still running 15.2.11-0
        2023-02-01 12:06:03+00:00 Ceph "15.2.13-0" has been rolled out
        2023-02-01 12:06:03+00:00 Patching allowance of insecure rook clients
        2023-02-01 12:06:04+00:00 Awaiting Ceph healthy
        2023-02-01 12:06:04+00:00 Waiting for Rook-Ceph to be healthy
        2023-02-01 12:06:05+00:00 Rook is healthy
        2023-02-01 12:06:05+00:00 ✔ Rook-ceph cluster upgraded
        2023-02-01 12:06:05+00:00 Awaiting rook-ceph dashboard password
        2023-02-01 12:06:05+00:00 checking for attached secondary block device (awaiting rook-ceph RGW pod)
        2023-02-01 12:06:05+00:00     cephobjectstoreuser.ceph.rook.io/kurl unchanged
        2023-02-01 12:06:06+00:00 Awaiting rook-ceph object store health
        2023-02-01 12:06:06+00:00 configmap/kurl-current-config patched
        2023-02-01 12:06:06+00:00 ⚙  Addon ekco 0.26.3
        2023-02-01 12:06:06+00:00 label "rook-priority.kurl.sh" not found.
        2023-02-01 12:06:06+00:00 namespace/rook-ceph labeled
        2023-02-01 12:06:07+00:00 configmap/kurl-current-config patched
        2023-02-01 12:06:07+00:00 ⚙  Addon kotsadm 1.38.0
        2023-02-01 12:06:07+00:00 configmap/kurl-current-config patched
        2023-02-01 12:06:07+00:00 ⚙  Addon sonobuoy 0.56.15
        2023-02-01 12:06:08+00:00 configmap/kurl-current-config patched
        2023-02-01 12:06:08+00:00 configmap "kurl-config" deleted
        2023-02-01 12:06:08+00:00 configmap/kurl-config created
        2023-02-01 12:06:08+00:00
        2023-02-01 12:06:08+00:00 No resources found
        2023-02-01 12:06:08+00:00
        2023-02-01 12:06:08+00:00         Installation
        2023-02-01 12:06:08+00:00           Complete ✔
        2023-02-01 12:06:08+00:00
        2023-02-01 12:06:08+00:00

 Wrap

Also, see that the MDS pods will be running at the end.
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-crashcollector-ihbjqxcfbpjmdulh-initialprimary-fbsqbd   1/1     Running     0          2m40s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-mds-rook-shared-fs-a-58bdf68555-7pflr                   1/1     Running     0          40s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-mds-rook-shared-fs-b-65f56675f7-79fwb                   1/1     Running     0          15s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-mgr-a-54c6466ffc-mbr8t                                  1/1     Running     0          2m10s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-mon-a-5d668466b9-vsm4x                                  1/1     Running     0          2m40s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-operator-8667f9d69c-5fbct                               1/1     Running     0          30m
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-osd-0-8475c9bb4c-6hstx                                  1/1     Running     0          110s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-osd-prepare-ihbjqxcfbpjmdulh-initialprimary-j7c28       0/1     Completed   0          2m4s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-rgw-rook-ceph-store-a-fcc56466c-qs8k6                   1/1     Running     0          90s
        2023-02-01 12:06:09+00:00 rook-ceph     rook-ceph-tools-65c94d77bb-28x8b                                  1/1     Running     0          30m
        2023-02-01 12:06:09+00:00 rook-ceph     rook-discover-r5ndm                                               1/1     Running     0          30m
        2023-02-01 12:06:09+00:00

Which issue(s) this PR fixes:
Related # [sc-67862]
Special notes for your reviewer:
Steps to reproduce
Check the test made against main : https://testgrid.kurl.sh/run/rook_upgrade_feb_1_2023

HI @emosbaugh,
Thank you for your reply. Following the comments inline.

I'm not a huge fan of timeouts in general because they are arbitrary. I don't see enough value in decreasing these timeouts. What problem are you trying to solve?

It is described in the description of this PR. See that we are waiting 10 minutes to fail and finish with success afterwords. Therefore, make no sense wait 10 minutes for that. The real problem that we have in the logic of the method. See: https://github.com/replicatedhq/kURL/pull/4020
However, the problems fixed with this PR are:

It will mitigate the issue and become to able to cover the upgrade programatically via the testgrid which will reduce the chances of we introduce bugs
Users should not need to wait for 10 minutes unless that is required to accomplish the task which is not the case here as proved in the description of this PR. Therefore, this PR address performance issues as well.


fix issue #183

plrust will no longer raise an ERROR if a function is being ALTERed in a database that doesn't also have the plrust extension created.

Nice! I have almost no idea how this works but it looks good to me.

It doesn't


Difference between sharing URL and APP LINKS

Hello
I am using this extension for sharing into my app but I am using app links together and now I have problem. How can I recognize this situations?

user opens the app via url link
user want share url via share extension

For imagine, my app contains chat service and for example product detail page. Now if sombody sends the product page url via Whatsapp or another service, I want to open product in my app through APP LINKS. Its working fine.
But in application user can share this product instantly via share button and he can choose this app for send it trough chat service. So is there some chance to recongize this different situations?
Thank you

I've got a similar issue. It would be very useful to be able to differentiate sharing intents and app links / uni links


[Helm Chart/Cluster-Agent] MetricsAPI hardcoded to bind port 443, which under any reasonable PSP regeime is a non-starter

Output of the info page (if this is a bug)
https://github.com/helm/charts/blob/master/stable/datadog/templates/cluster-agent-deployment.yaml#L75-L79
Describe what happened:
Under a Pod Security Policy regime binding to port 443 will be probably be disabled as generally speaking CAP_NET_BIND_SERVICE is frowned upon.
It seems like the cluster agent may not support changing this port binding to another port, which means I need to create a psp exception for this feature to be enabled. If it does allow for this, perhaps default it to something like 8443 and allow it to be changed via env variable and support this change in the helm chart.
Describe what you expected:
This component to function without a psp exception for linux capabilities. I'm not sure there is a reason that you must expose this on a privileged port.
Steps to reproduce the issue:
Create a restricted psp with the following and try to run your component with it as the cluster agent's only option:
            "requiredDropCapabilities": [
               "ALL"
            ],

Additional environment details (Operating System, Cloud provider, etc):
LInux (coreos containeros), aws, not important.

Secondary issue. If I create an exception PSP with:
  allowedCapabilities: [
    "NET_BIND_SERVICE",
  ]

There is no way to inject the following snippit into the containerSpec in the helm chart:
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        add:
        - NET_BIND_SERVICE
        drop:
        - ALL

Hey @SleepyBrett  - Thank you for raising this one.
You are correct for the first issue, while the option external_metrics_provider.port is available, it is not documented and not exposed in our helm chart.
We backlogged this so it can be fixed asap.
As for the overall restriction of privileges strategy, we are also looking into it.
Thanks again.
Best,
.C

Any news on a pod security policy for the helm chart / agent?


You need JDK 1.8 to compile it with maven

Hellll, took me an hour to decipher it
In Windows JAVA_HOME must be set to JDK 1.8
Plz, add a warning to the README

Well, didn't the compile error message tell you that?

No, I had JAVA 1.7 configured and the error is very misleading


Help

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

/needsMoreInfo


[KOGITO-2272] Hot reload test stuck if deployment is not available

https://issues.redhat.com/browse/KOGITO-2272

@evacchi @mariofusco
Ok I think we have at least a problem in the configuration of the project and maybe a bug in Quarkus too (logs):

I just created a simple test failure in kogito-codegen on purpose
This makes the build of that module to fail (of course :) )
All maven dependent module are skipped (in this case kogito-quarkus-deployment) [1]
Hot reload test module doesn't have an explicit dependency declaration on deployment so it starts
kogito-quarkus-deployment is not available and it makes the test fails [2]
The runner stuck until the timeout (this is probably the bug in Quarkus I mentioned) [3]
Run is aborted and you need to find the real failure in the full log (the last error is completely misleading) [4]

[1]
[INFO] ------------------------------------------------------------------------
[INFO] Skipping Kogito - Quarkus - Deployment
[INFO] This project has been banned from the build due to previous failures.
[INFO] ------------------------------------------------------------------------

[2]
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact org.kie.kogito:kogito-quarkus-deployment:jar:8.0.0-SNAPSHOT
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:414)
	... 58 more

[3]
I do believe this is a bug in Quarkus runner but in all the usages of QuarkusDevModeTest I found, it is used as integration test inside deployment module so they probably do not expect this code to fail. I plan to open an issue on they GitHub later tomorrow.
Is there any reason why we put hot reload test in a different module instead of inside deployment? @evacchi @mariofusco
[4]
Timeout has been exceeded
Finished: ABORTED

Now I will try to add kogito-quarkus-deployment as dependency to Hot reload module with scope provided just to inform Maven of this "implicit" dependency and I expect the build to fail properly.

Ok as expected now the build fails in the proper way :)
My plan now is:

Revert the broken test
Make the PR ready for review
Wait a green build/reviews
Merge this fix and in parallel show this behavior to Quarkus team

@MarianMacik @radtriste
Can you please review?
The executive summary: the CI build stuck on hotreload test until timeout if there is an error in an upper dependency
Solution: added a dependency to deployment module so Maven is aware of this "implicit dependency" and skip the build of the module if needed


FLEX-3787 Remove metered functionality from the platform

All is well.

All is well.

All is well.


Refactoring advice before contribution

Hello @lsegal and other maintainers
I've spent the last ~12 straight hours or so writing a Handler for mattr/cattr_accessor in Rails as I was unsatisfied with the code for the ones I could find.
This lead me down a giant rabbit hole, and this is what I've come with:
# frozen_string_literal: true

require 'yard/handlers/ruby/attribute_handler'

module YARD
  module Handlers
    module Rails
      class ClassAttributeHandler < YARD::Handlers::Ruby::AttributeHandler
        handles method_call(:cattr_reader)
        handles method_call(:cattr_writer)
        handles method_call(:cattr_accessor)
        handles method_call(:mattr_reader)
        handles method_call(:mattr_writer)
        handles method_call(:mattr_accessor)
        namespace_only

        SCOPES = [:module, :class, :instance].freeze

        def process
          return if statement.type == :var_ref || statement.type == :vcall

          read = true
          write = false

          method_name = statement.method_name(true)
          case method_name.to_s.split('_').last
          when 'accessor'
            write = true
          when 'reader'
            # change nothing
          when 'writer'
            read = false
            write = true
          end

          # Get standardized parameters
          params = statement.parameters(false).dup

          # Fetch options and defaults
          options = if [:list, :hash].include?(params.last.type)
                      get_options(params.pop)
                    else
                      {}
                    end
          instance_accessor = options.fetch('instance_accessor', true)
          instance_writer = options.fetch('instance_writer', true)
          instance_reader = options.fetch('instance_reader', true)
          default_value = options.fetch('default', 'nil')

          # Define a method for each of the symbols in both scopes
          validated_attribute_names(params).each do |attr_name|
            namespace.cvars << YARD::CodeObjects::ClassVariableObject.new(
              namespace,
              "@@#{attr_name}",
            ) do |cv|
              cv.value = default_value.to_s
            end

            SCOPES.each do |scop|
              namespace.attributes[scop] ||= SymbolHash[
                SCOPES.each_with_object({}) { |k, ob| ob[k] = nil }
              ]
              namespace.attributes[scop][attr_name.to_sym] ||= SymbolHash[
                read: nil,
                write: nil
              ]

              { read: attr_name, write: "#{attr_name}=" }.each do |type, meth|
                if type == :read ? read : write
                  src_meth_name = "self.#{meth}"
                  src_attr_name = "@@#{attr_name}"

                  if scop == :instance
                    next if type == :read && !(instance_reader && instance_accessor)
                    next if type == :write && !(instance_writer && instance_accessor)

                    src_meth_name = meth
                    src_attr_name = "@#{attr_name}"
                  end

                  o = YARD::CodeObjects::MethodObject.new(namespace, attr_name, scop)

                  case type
                  when :write
                    src = "def #{src_meth_name}(value)"
                    full_src = <<~RUBY
                      #{src}
                        #{src_attr_name} = value
                      end
                    RUBY
                  when :read
                    src = "def #{src_meth_name}"
                    full_src = <<~RUBY
                      #{src}
                        #{src_attr_name}
                      end
                    RUBY
                  end

                  o.source ||= full_src
                  o.signature ||= src

                  if o.docstring.blank?(false)
                    o.docstring ||= ''
                    o.docstring += "(Defaults to +#{default_value}+)" unless
                                    default_value.nil?
                  end

                  # Regsiter the object explicitly
                  register(o)
                  namespace.attributes[scop][attr_name][type] = o
                else
                  obj = namespace.children.find do |other|
                    other.name == meth.to_sym && other.scope == scop
                  end

                  # register an existing method as attribute
                  namespace.attributes[scop][attr_name][type] = obj if obj
                end
              end
            end
          end
        end

        def get_options(raw_options)
          safe_types = [
            :array,
            :hash,
            :dyna_symbol,
            :string_literal,
            :symbol_literal,
            :regexp_literal,
            :int,
            :float,
            :kw,
          ].freeze

          eval_if_can = lambda do |node_to_try|
            type = node_to_try.type
            next node_to_try.source unless safe_types.include?(type)

            case type
            when :dyna_symbol, :string_literal, :array, :hash
              next node_to_try.source
            end

            instance_eval(node_to_try.source)
          end

          raw_options.map do |o|
            key = o.first.jump(*safe_types)
            value = o.last.jump(*safe_types)

            [
              (key.type == :label ? key.first : eval_if_can.call(key)).to_s,
              eval_if_can.call(value),
            ]
          end.to_h
        end
      end
    end
  end
end

I want to know if there are any more efficient ways to refactor this, since this was my first foray into the library.
I also want to know:

Is there an easier/built in way to get kwargs/options from a method call other than what I did?
Are all the potential SCOPES outlined/defined elsewhere? Rubocop was yelling at me to define them in a constant/variable
Is there a way to be able to eval individual AstNodes if they're safe? Things like primitives and others... also being able to evaluate instance, class variables, constants etc. in the scope of the current namespace

Thanks in advance!

Sorry for the late reply.

I want to know if there are any more efficient ways to refactor this

I don't really have the bandwidth to do a full review here, so my initial suggestion would simply be: if it works, it's likely factored well. Golfing code is likely only going to help if driven by tests and specific needs. If you're using a linter that you're happy with, and the linter is happy with it, you should be fine. Generally speaking this is how you would approach the problem.

Is there an easier/built in way to get kwargs/options from a method call other than what I did?

Reading from the parameters of the AST is the correct way.

Are all the potential SCOPES outlined/defined elsewhere? Rubocop was yelling at me to define them in a constant/variable

I'm not really sure what Rubocop would be asking for here but generally scopes are not defined in any specific place. Note that :module is not a scope in YARD, just %i(instance class) are typically used.

Is there a way to be able to eval individual AstNodes if they're safe? Things like primitives and others... also being able to evaluate instance, class variables, constants etc. in the scope of the current namespace

You have .source and on nodes which you can always resolve to code if you truly need to eval. My general recommendation would be to avoid doing this if possible, but it's ultimately a decision you need to make and depends on your risk tolerance level of the library, expected contexts, etc. Generally speaking, rubydoc doesn't whitelist any YARD plugins on the output generation side that make use of eval since they can introduce new attack vectors, but that's just one consideration.
Hope some of this helps.


Unsupported type internal:PodMiniComponent for Tahoma device Box

Home Assistant release with the issue:
0.74
Last working Home Assistant release (if known):
n/a
Operating environment (Hass.io/Docker/Windows/etc.):
docker
Component/platform:
https://www.home-assistant.io/components/tahoma/
Description of problem:
Missing devices
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
tahoma:
  username: <username>
  password: <password>

Traceback (if applicable):
2018-07-21 15:50:55 WARNING (SyncWorker_2) [homeassistant.components.tahoma] Unsupported type internal:PodMiniComponent for Tahoma device Box
2018-07-21 15:50:55 WARNING (SyncWorker_2) [homeassistant.components.tahoma] Unsupported type io:HorizontalAwningIOComponent for Tahoma device awning_back
2018-07-21 15:50:55 WARNING (SyncWorker_2) [homeassistant.components.tahoma] Unsupported type io:VerticalExteriorAwningIOComponent for Tahoma screen_front

Additional information:
https://github.com/home-assistant/home-assistant/issues/13965 should fix both awnings
I'm using the Connexoon instead of the Tahamo box. Side note: documentation should be updated that both boxes work since they share the same RESTAPI ;)
After using the fix in that issue I don't get any log lines anymore.
I've compared this with the OpenHAB addon and there I'm seeing:

What it is and what it does I don't know. Good to add?

This seems to be still an issue in 0.82.1 and additionally the full list of missing components I see is:
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type internal:TSKAlarmComponent for Tahoma device Alarm
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type internal:PodV2Component for Tahoma device Sensitive Taste
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type io:HorizontalAwningIOComponent for Tahoma device Markise EG
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type io:OnOffIOComponent for Tahoma device KRD 100
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type io:BeaconIOComponent for Tahoma device IO Repeater
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type io:IORemoteController for Tahoma device Player 1
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type ramses:EvoHomeZoneSetPoint for Tahoma device Wohnzimmer
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type ramses:EvoHomeZoneSensor for Tahoma device Wohnzimmer
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type ramses:EvoHomeZoneSetPoint for Tahoma device Bad
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type ramses:EvoHomeZoneSensor for Tahoma device Bad
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type ramses:EvoHomeController for Tahoma device EvoHome Controller
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type ramses:EvoHomeControllerSensor for Tahoma device Outside T°
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type rts:LightRTSComponent for Tahoma device Licht 1
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayBarComponent for Tahoma device Wohnzimmer
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Sonos PLAY:1
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Kinderzimmer
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Büro
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Sonos PLAY:1
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Schlafzimmer
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosSubComponent for Tahoma device Sonos SUB
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:GenericSonosPlayerComponent for Tahoma device Esszimmer + Esszimmer
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:GenericSonosPlayerComponent for Tahoma device generic Sonos
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Bad
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type upnpcontrol:SonosPlayOneComponent for Tahoma device Küche
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type zwave:ZWaveOccupancySensor for Tahoma device ZWAVE (2#1)
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type zwave:ZWaveTemperatureSensor for Tahoma device ZWAVE (2#2)
2018-11-18 21:05:08 WARNING (SyncWorker_4) [custom_components.tahoma] Unsupported type zwave:ZWaveLightSensor for Tahoma device ZWAVE (2#3)

While zwave, upnpcontrol and ramses might be candidates for excludes in configuration.yaml I would rate the following as interesting for implementation:
internal:PodV2Component for Tahoma device Sensitive Taste
io:HorizontalAwningIOComponent for Tahoma device Markise EG
io:OnOffIOComponent for Tahoma device KRD 100
io:IORemoteController for Tahoma device Player 1
rts:LightRTSComponent for Tahoma device Licht 1

This one is not having any functionality as I understand (as it just repeats signals):
io:BeaconIOComponent for Tahoma device IO Repeater

Was looking to get rts:OnOffRTSComponent to work with hassio...
saw someone made it work with Smartthings:
TahomaBySomfy.SmartApp.groovy
No clue if someone can make this work for Homeassistant..?

Is this still an issue you are experiencing? Can you please try upgrading to the latest version of Home Assistant (0.90) and report back if this is still a problem? Thanks!

With the latest version it still is: 2019-03-22 10:01:22 WARNING (SyncWorker_6) [homeassistant.components.tahoma] Unsupported type internal:PodMiniComponent for Tahoma device Box
Or a skiplist need to be created or this 'device' should be added. I'm not sure what the device does but I guess not much interesting.

Just updated,
rts:OnOffRTSComponent
Still not working

There is an "exclude" function now so the original problem is solved.


Using Key from f1 to f10 or f12

I'm trying to get this key working from bluetooth keyboard but i cannot get it in anyway.
Keyboard is The logitech ps3 keyboard, tablet is either ACER iconia or ASUS transformer.
Irssi is the latest version on the market, everything is working except Function Keys
(F1 - F2 - F3 etc etc )

I was checking more deep.
is possible to simulate Fn keys from hardware keyboard using Ctrl+Shift+ number ( ctrl+shift+6 for F6 ).
Anyway PagUp and PagDown are not working.


Integration fail when running in parallel

There is an issue with the integration tests:

work fine when running one after another
failed when running in parallel

e.g., try pytest -n auto --no-cov tests/integration_tests/test_ray_tracing.py
Error messages:
FAILED tests/integration_tests/test_ray_tracing.py::test_plot_image - simtools.runners.simtel_runner.SimtelExecutionError:

This is always a SimtelExecutionError, don't understand what changed.

Seems to be running fine for me in parallel:
(env) pytest -n auto --no-cov tests/integration_tests/test_ray_tracing.py
======================================== test session starts ========================================
platform linux -- Python 3.11.7, pytest-8.2.2, pluggy-1.5.0 -- /workdir/env/bin/python3.11
cachedir: .pytest_cache
Test order randomisation NOT enabled. Enable with --random-order or --random-order-bucket=<bucket_type>
rootdir: /workdir/external/simtools
configfile: pyproject.toml
plugins: cov-5.0.0, mock-3.14.0, profiling-1.7.0, random-order-1.1.1, repeat-0.9.3, xdist-3.6.1
4 workers [6 items]
scheduling tests via LoadScheduling

tests/integration_tests/test_ray_tracing.py::test_ssts[SSTS-design]
tests/integration_tests/test_ray_tracing.py::test_single_mirror
tests/integration_tests/test_ray_tracing.py::test_plot_image
tests/integration_tests/test_ray_tracing.py::test_rx
[gw2] [ 16%] PASSED tests/integration_tests/test_ray_tracing.py::test_ssts[SSTS-design]
tests/integration_tests/test_ray_tracing.py::test_integral_curve
[gw3] [ 33%] PASSED tests/integration_tests/test_ray_tracing.py::test_single_mirror
[gw1] [ 50%] PASSED tests/integration_tests/test_ray_tracing.py::test_rx
tests/integration_tests/test_ray_tracing.py::test_process_rx
[gw1] [ 66%] PASSED tests/integration_tests/test_ray_tracing.py::test_process_rx
[gw0] [ 83%] PASSED tests/integration_tests/test_ray_tracing.py::test_plot_image
[gw2] [100%] PASSED tests/integration_tests/test_ray_tracing.py::test_integral_curve

========================================= 6 passed in 4.62s =========================================

Solved - it is a local configuration issue (although I don't remember that I have changed anything):

noticed at the same as above issues that unit tests are much much slower
need to start the container with option --platform linux/arm64.

Don't really understand why podman/docker suddenly decided to use linux/amd64 images (they mostly work - but not always (see above) and are way slower).


i18n support

To translate the component, please pass messages property to component.
Where messages it's an object with following format:
{
    clear: 'Clear'
}

Otherwise, looks good. Please make the noted improvements, and we can publish it all as a v5.0.0

@ikr fixed. Please reopen PR.

@asdf404 just published v5.0.0


[main] Upgrade to latest dependencies

Cron -knative-prow-robot
/cc knative/serving-writers
/assign knative/serving-writers
Produced by: knative-extensions/knobots/actions/update-deps

/lgtm
/approve

/override "style / Golang / Lint"


Deprication Warning while calling fromCursorHash

First of all, thank you so much for your awesome books and other resources!
I am on Road To GraphQL now! Pagination part
I am getting below mentioned depreciation warning, while fromCursorHash is called. Everything works fine, but I want to know what is causing this warning, can't figure. Anyone else?
Also, I am eagerly waiting for the 2020 update of this book. Thank you again :)
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: Fri Feb 14 2020 00:52:17 GMT+0530 (India Standard Time), _f: undefined, _strict: undefined, _locale: [object Object]
Error:
    at Function.createFromInputFallback (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:320:98)
    at configFromString (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:2385:15)
    at configFromInput (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:2611:13)
    at prepareConfig (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:2594:13)
    at createFromConfig (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:2561:44)
    at createLocalOrUTC (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:2648:16)
    at createLocal (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:2652:16)
    at hooks (/home/abhi-dasgupta/dev/server/node_modules/moment/moment.js:12:29)
    at DATE._applyTimezone (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/data-types.js:460:21)
    at DATE._stringify (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/data-types.js:465:17)
    at DATE._stringify (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/postgres/data-types.js:175:20)
    at DATE.stringify (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/data-types.js:23:19)
    at PostgresQueryGenerator.escape (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:976:30)
    at PostgresQueryGenerator._whereParseSingleValueObject (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2556:41)
    at PostgresQueryGenerator.whereItemQuery (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2272:21)
    at /home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2173:25
    at Array.forEach (<anonymous>)
    at PostgresQueryGenerator.whereItemsQuery (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2171:35)
    at PostgresQueryGenerator.getWhereConditions (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2583:19)
    at PostgresQueryGenerator.selectQuery (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1315:28)
    at QueryInterface.select (/home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/query-interface.js:1122:27)
    at /home/abhi-dasgupta/dev/server/node_modules/sequelize/lib/model.js:1757:34
Executing (default): SELECT "id", "title", "text", "createdAt", "updatedAt", "userId" FROM "messages" AS "message" WHERE "message"."createdAt" < '2020-02-13 19:22:17.000 +00:00' ORDER BY "message"."createdAt" DESC LIMIT 2;

Thanks for reporting! Will definitely check this for the new book edition 👍

so I removed the graphql-iso-date package and used String scalar, with momentjs to format it
import moment from "moment";
import Sequelize from "sequelize";
const toCursorString = string => Buffer.from(string).toString("base64");
const fromCursorString = string =>
Buffer.from(string, "base64").toString("ascii");
export default {
  Query: {
    messages: async (parent, { limit = 100, cursor }, { models }) => {
      const cursorOptions = cursor
        ? {
            where: {
              createdAt: {
                [Sequelize.Op.lt]: fromCursorString(cursor)
              }
            }
          }
        : null;
      const messages = await models.Message.findAll({
        order: [["createdAt", "DESC"]],
        limit: limit + 1,
        ...cursorOptions
      });
      const hasNextPage = messages.length > limit;
      const edges = hasNextPage ? messages.slice(0, -1) : messages;
      return {
        edges,
        pageInfo: {
          hasNextPage,
          endCursor: toCursorString(
            moment(edges[edges.length - 1].createdAt)
              .local()
              .format()
          )
        }
      };
    }
  },
  Message: {
    createdAt: message => {
      return moment
        .utc(message.createdAt)
        .local()
        .format();
    }
  }
};

Oh thanks! Maybe I will consider this for the book if it doesn't work out with the Scalar. I found the custom Scalar interesting for readers for the sake of learning about it :)

ok, thank you for your consideration. I have another small suggestion for this topic, In the function to seed the database for development, instead of setting +1 sec to the date, it will make more sense if we did -1 sec. If we do +1 sec then the createdAt is always greater than updatedAt.
Not an issue at all as it will not hold true in production, but I was writing a client-side app simultaneously and faced issue with some logic because of it

Oh yeah, makes totally sense! Thanks for all the feedback :)


error filling labels: ERROR: column "series_id" specified more than once (SQLSTATE 42701)

Hi,
i just installed promescale and timescale via docker-compose but unfortunately the prometheus data dont get ingested into timescale via promescale - i'm only getting the following error:
promescale:
level=warn ts=2022-10-05T11:07:35.698Z caller=write.go:244 msg="Error sending samples to remote storage" err="copier: writing series: error setting series ids: error filling labels: ERROR: column \"series_id\" specified more than once (SQLSTATE 42701)" num_samples=30000
timescale:
2022-10-05 11:16:52.915 UTC [1544] STATEMENT:  SELECT * FROM _prom_catalog.get_or_create_label_ids($1, $2, $3, $4) 2022-10-05 11:16:55.208 UTC [1545] ERROR:  column "series_id" specified more than once 2022-10-05 11:16:55.208 UTC [1545] CONTEXT:  SQL statement "                 CREATE OR REPLACE VIEW prom_metric."cieIfLastOutHangTime" AS                 SELECT                     data.time as time,                     data.value as value,                     data.series_id AS series_id,                     series.labels                     ,series.labels[2] AS "ifAlias_id", series.labels[3] AS "ifDescr_id", series.labels[4] AS "ifIndex_id", series.labels[5] AS "ifName_id", series.labels[6] AS instance_id, series.labels[7] AS job_id, series.labels[8] AS linecards_id, series.labels[9] AS location_id, series.labels[10] AS model_id, series.labels[11] AS name_id, series.labels[12] AS platform_id, series.labels[13] AS prometheus_id, series.labels[14] AS series_id, series.labels[15] AS service_id, series.labels[16] AS stackmembers_id                 FROM                     prom_data."cieIfLastOutHangTime" AS data                     LEFT JOIN prom_data_series."cieIfLastOutHangTime" AS series ON (series.id = data.series_id)             "         PL/pgSQL function _prom_catalog.create_metric_view(text) line 28 at EXECUTE         SQL statement "SELECT _prom_catalog.create_metric_view(metric_name)"         PL/pgSQL function _prom_catalog.get_new_pos_for_key(text,text,text[],boolean) line 110 at PERFORM         SQL function "get_or_create_label_ids" statement 1 2022-10-05 11:16:55.208 UTC [1545] STATEMENT:  SELECT * FROM _prom_catalog.get_or_create_label_ids($1, $2, $3, $4)
any ideas?
BR
Takalele

Hi @Takalele I just took a quick look into the body of _prom_catalog.create_metric_view. It adds extra columns for the labels associated with a metric. It looks as though the metric that you're ingesting must contain a label named series_id. Is that possible?

I managed to recreate the issue and filed a bug in the extension https://github.com/timescale/promscale/issues/1685

@Takalele I'm closing this and we can track it on the extension issue


Add extern C

Make the project compatible with C++ code by conditionally adding extern "C" to all header files.

Nice... make sense and thanks for the doc fix!


Version 0.10.1 Update

:x: Build dtocean-qt 0.10.1.build23 failed (commit https://github.com/DTOcean/dtocean-qt/commit/e381c0b19d by @H0R5E)

:x: Build dtocean-qt 0.10.1.build26 failed (commit https://github.com/DTOcean/dtocean-qt/commit/261d545e3f by @H0R5E)

:white_check_mark: Build dtocean-qt 0.10.1.build27 completed (commit https://github.com/DTOcean/dtocean-qt/commit/61d22d20b3 by @H0R5E)

:white_check_mark: Build dtocean-qt 0.10.1.build28 completed (commit https://github.com/DTOcean/dtocean-qt/commit/ae655a1832 by @H0R5E)

:white_check_mark: Build dtocean-qt 0.10.1.build29 completed (commit https://github.com/DTOcean/dtocean-qt/commit/5f8e07a0de by @H0R5E)


Allow node to require/import ofi without throwing an error

When OFI is required/imported in node, it throws some errors.
SomeComponent.js
import fit from "object-fit-images"
var testImg = new Image();
                  ^
ReferenceError: Image is not defined

We are using OFI in a react component which is run on the client and on the server.
We don't call fit on the server. Our current work around is to dynamically require on the client only.
I tested this doesn't throw by running node dist/ofi.common-js.js

What tool are you using to render React server-side?

Webpack

Webpack doesn't do rendering. What's the specific package that handles the HTML rendering?

The error occurs well before rendering. It occurs when node requires the module.
Rendering is something like this.
render.js
import React from "react"
import ReactDOM from "react-dom/server"
import SomeComponent from "./SomeComponent"

const html = ReactDOM.renderToString(<SomeComponent />)

SomeComponent.js
import React from "react"
import fit from "object-fit-images"

class SomeComponent extends React.Component {
  componentDidMount() {
    fit(".image")
  }
  render() {
    return <img className="image" src="/some.img.jpg" />
  }
}

What tools executes render.js?

Yes, this module doesn't belong in node on it's own, but when someone writes a universal module that imports OFI, then it does get loaded and parsed by node.
Probably the simplest way for you to see the error is by just loading the module into node. eg.
This throws
node dist/ofi.common-js.js

The next simplest way would be in common js file:
module.js
const fit = require("object-fit-image") // throws ReferenceError: Image is not defined

/* more universal / isomorphic stuff here */

Run node module.js
Tools we are using such as Babel and React Rendering all complicate the use case.
The PR avoids the errors and make calling the fix function do nothing.

Can you try this instead?
-const testImg = new Image();
+const testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();

Everything else is probably not necessary as it trickles down to existing checks (supportsObjectPosition === true and supportsOFI === false)

Thanks! Out in version 3.1.1


small usability issue with esp_hal::init()

If you want to set the clock you can't do:
let peripherals = esp_hal::init(esp_hal::Config {
    cpu_clock: CpuClock::max(),
);

because it's marked with #[non_exhaustive] one must go this route:
let mut config = esp_hal::Config::default();
config.cpu_clock = CpuClock::max();
let peripherals = esp_hal::init(config);

This is absolutely intended. If we're going to introduce new options, we don't want to break existing code.
The style I prefer is:
let peripherals = esp_hal::init({
    let mut config = esp_hal::Config::default();
    config.cpu_clock = CpuClock::max();
    config
});

Or I think you should be able to do something like:
let peripherals = esp_hal::init({
    esp_hal::Config {
        cpu_clock: CpuClock::max(),
        ..Default::default()
    }
});

or something like this maybe?
let peripherals = esp_hal::init(esp_hal::Config::default()
    .with_cpu_clock(CpuClock::max()));
});

The rust error told you to "look for a new() method" or something like that.

let peripherals = esp_hal::init(esp_hal::Config {
    cpu_clock: CpuClock::max(),
    ..Default::default()
});

Of the two you posed I prefer ^^

Builders are fine I guess, but unless there's extreme interest for them, I'd love to avoid adding more code for a single use struct :(

IMHO the ..Default::default() way is the most idiomatic and also convenient enough for now

As @bugadani mentioned, this is by design so we can add fields and not break code in the future. Imo ..Default::default() is nice enough for now, we can revisit this at a later date if the number of fields/options do get unwieldy.

That does not seem to work:
error[E0639]: cannot create non-exhaustive struct using struct expression
  --> board/src/board.rs:52:41
   |
52 |           let peripherals = esp_hal::init(esp_hal::Config {
   |  _________________________________________^
53 | |             cpu_clock: CpuClock::max(),
54 | |             ..Default::default()
55 | |         });
   | |_________^

For more information about this error, try `rustc --explain E0639`.
error: could not compile `board` (lib) due to 1 previous error

Ah, you're right. I'm hoping it's something that will be allowed in the future. It currently only works on structs defined within the crate, see: https://rust-lang.github.io/rfcs/2008-non-exhaustive.html#functional-record-updates.
In which case, @bugadani's first option works and it's not too much more code. I personally don't see the advantage of a builder pattern, but I'm open to hear other options.

That's sad, but hopefully it's still not the end of the world. Again, we have to balance stability, lines of code (yes, really!) and useability and I think we're in a local maximum of the 3.


Do not subscript relation.app if it is None

Issue
There are more code pathways where relation.app is empty, causing runtime errors.
Solution
Add relation.app guards. Fixes #158.
Context
NTA.
Testing Instructions
Manual test.
We already have test_remove_relation in itests, which didn't pick it up, probably because pylibjuju doesn't wait for the relation to be removed.
Release Notes
Do not subscript relation.app if it is None.

Released manually.
Revision 125 of charm 'traefik-k8s' released to edge (attaching resources: 'traefik-image' r116)


Some of the objstore operation duration metrics are 0

The InstrumentedBucket doesn't emit duration metrics for Iter().
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="0.001"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="0.01"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="0.1"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="0.3"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="0.6"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="1"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="3"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="6"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="9"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="20"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="30"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="60"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="90"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="120"} 0
thanos_objstore_bucket_operation_duration_seconds_bucket{bucket="",component="compactor",operation="iter",le="+Inf"} 0
thanos_objstore_bucket_operation_duration_seconds_sum{bucket="",component="compactor",operation="iter"} 0
thanos_objstore_bucket_operation_duration_seconds_count{bucket="",component="compactor",operation="iter"} 0

https://github.com/thanos-io/objstore/blob/main/objstore.go#L487
Is this by design? I would like to measure the time taken for iterating the bucket.

Hi @harry671003, I would like to pick up this subject. Can you assign it to me?

Sorry @ritaCanavarro, I didn't see this issue - I have filed #79 to fix it.

I believe this issue has been solved. Closing now


Cannot log in

Hello
Everytime I have tried to log in, it alwa
ys shows to complete the captcha vertification.

if you read my post you probaly know why


Bugfixes

@ollietreend @RobertWDLowe can you review? thanks
Changes:

fix for the notice error on widgets API that we get with the new DB
jQuery version is now controlled by F/E instead of using the one supplied by WP
wp_footer is now loaded in the same way as the wp_head (pregenerated and stored on the MVC object)
Google Tag Manager ID is now a constant which can be defined in wp config

Hi Marcin,
Rather then adding the new jquery file directly into the head it would be better to enqueue the new jquery file using the below function. You can put this straight after the deregister.  Set the handle to 'jquery'
wp_enqueue_script

@RobertWDLowe There are absolutely no benefits of doing that for us as we control the theme. I'd gladly replace all remaining bits added by WP if I only had time to do that.

@marcincichon though the theme may not need this. Should any of the plugins we use now or in the future use the default dependency functionality provided by wordpress to check for 'jquery' before they including their own scripts they will not work.

@RobertWDLowe Sure, I'm aware of that. We're not using any plugins on the front end, as like I said, we have the full control of the code. No contamination ;)

@ollietreend Sure, if we ever use any plugin like that I'd be happy to enqueue this script. Until then I'd rather keep the code as clean and as easy to understand as possible for any future non-WP devs to work on the project.