Creating a large number of resources causes plugin to fail due to SSH connection limits

Summary
We want to use JTAF to provision 100% of device configurations which results in hundreds if not thousands of resources which causes the plugin to fail randomly.
│ Error: Request cancelled
│
│   with module.vlans_for_each.junos-qfx_VlansVlanVlan__Id.vlan_vid["VLAN_390"],
│   on vlans_for_each/main.tf line 22, in resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid":
│   22: resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid" {
│
│ The plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled.
╵
╷
│ Error: Request cancelled
│
│   with module.vlans_for_each.junos-qfx_VlansVlanVlan__Id.vlan_vid["VLAN_270"],
│   on vlans_for_each/main.tf line 22, in resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid":
│   22: resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid" {
│
│ The plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled.
╵
╷
│ Error: Request cancelled
│
│   with module.vlans_for_each.junos-qfx_VlansVlanVlan__Id.vlan_vid["VLAN_384"],
│   on vlans_for_each/main.tf line 22, in resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid":
│   22: resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid" {
│
│ The plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled.
╵
╷
│ Error: Request cancelled
│
│   with module.vlans_for_each.junos-qfx_VlansVlanVlan__Id.vlan_vid["VLAN_146"],
│   on vlans_for_each/main.tf line 22, in resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid":
│   22: resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid" {
│
│ The plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled.
╵
╷
│ Error: Request cancelled
│
│   with module.vlans_for_each.junos-qfx_VlansVlanVlan__Id.vlan_vid["VLAN_218"],
│   on vlans_for_each/main.tf line 22, in resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid":
│   22: resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid" {
│
│ The plugin.(*GRPCProvider).ValidateResourceConfig request was cancelled.

After investigation we have determined that the JTAF plugin is establishing and terminating a TCP sockets towards the device for each resource which causes Junos to enforce connection limits and refuse new connections.  This issue can occur very randomly depending on the performance of your terraform client device.  e.g. Fast CPU with no competition for resources you can expect this to occur more frequently.
e.g. vqfx messages output during a few seconds of an apply
vagrant@vqfx-re#
*** messages ***
Mar  2 16:53:58  vqfx-re sshd[64282]: Accepted password for automation from <IP_ADDRESS> port 36788 ssh2
Mar  2 16:53:58  vqfx-re sshd[64289]: Accepted password for automation from <IP_ADDRESS> port 36790 ssh2
Mar  2 16:53:59  vqfx-re sshd[64297]: Accepted password for automation from <IP_ADDRESS> port 36792 ssh2
Mar  2 16:53:59  vqfx-re sshd[64304]: Accepted password for automation from <IP_ADDRESS> port 36794 ssh2
Mar  2 16:53:59  vqfx-re /usr/bin/ssh[64296]: ssh: connect to host <IP_ADDRESS> port 3000: Operation timed out
Mar  2 16:54:00  vqfx-re sshd[64313]: Accepted password for automation from <IP_ADDRESS> port 36796 ssh2
Mar  2 16:54:00  vqfx-re sshd[64320]: Accepted password for automation from <IP_ADDRESS> port 36798 ssh2
Mar  2 16:54:01  vqfx-re sshd[64327]: Accepted password for automation from <IP_ADDRESS> port 36800 ssh2
Mar  2 16:54:01  vqfx-re sshd[64334]: Accepted password for automation from <IP_ADDRESS> port 36802 ssh2
Mar  2 16:54:01  vqfx-re sshd[64341]: Accepted password for automation from <IP_ADDRESS> port 36804 ssh2
Mar  2 16:54:02  vqfx-re sshd[64348]: Accepted password for automation from <IP_ADDRESS> port 36806 ssh2
Mar  2 16:54:02  vqfx-re sshd[64355]: Accepted password for automation from <IP_ADDRESS> port 36808 ssh2
Mar  2 16:54:03  vqfx-re sshd[64362]: Accepted password for automation from <IP_ADDRESS> port 36810 ssh2
Mar  2 16:54:03  vqfx-re sshd[64369]: Accepted password for automation from <IP_ADDRESS> port 36812 ssh2
Mar  2 16:54:03  vqfx-re sshd[64376]: Accepted password for automation from <IP_ADDRESS> port 36814 ssh2
Mar  2 16:54:04  vqfx-re sshd[64383]: Accepted password for automation from <IP_ADDRESS> port 36816 ssh2
Mar  2 16:54:04  vqfx-re sshd[64390]: Accepted password for automation from <IP_ADDRESS> port 36818 ssh2
Mar  2 16:54:05  vqfx-re sshd[64397]: Accepted password for automation from <IP_ADDRESS> port 36820 ssh2
Mar  2 16:54:05  vqfx-re sshd[64404]: Accepted password for automation from <IP_ADDRESS> port 36822 ssh2
Mar  2 16:54:06  vqfx-re sshd[64411]: Accepted password for automation from <IP_ADDRESS> port 36824 ssh2
Mar  2 16:54:06  vqfx-re sshd[64418]: Accepted password for automation from <IP_ADDRESS> port 36826 ssh2
Mar  2 16:54:07  vqfx-re sshd[64425]: Accepted password for automation from <IP_ADDRESS> port 36828 ssh2
Mar  2 16:54:08  vqfx-re sshd[64432]: Accepted password for automation from <IP_ADDRESS> port 36832 ssh2
Mar  2 16:54:08  vqfx-re sshd[64439]: Accepted password for automation from <IP_ADDRESS> port 36834 ssh2
Mar  2 16:54:09  vqfx-re sshd[64446]: Accepted password for automation from <IP_ADDRESS> port 36836 ssh2
Mar  2 16:54:09  vqfx-re sshd[64453]: Accepted password for automation from <IP_ADDRESS> port 36838 ssh2
Mar  2 16:54:10  vqfx-re sshd[64461]: Accepted password for automation from <IP_ADDRESS> port 36840 ssh2
Mar  2 16:54:10  vqfx-re /usr/bin/ssh[64455]: ssh: connect to host <IP_ADDRESS> port 3000: Operation timed out
Mar  2 16:54:11  vqfx-re sshd[64470]: Accepted password for automation from <IP_ADDRESS> port 36842 ssh2
Mar  2 16:54:11  vqfx-re sshd[64477]: Accepted password for automation from <IP_ADDRESS> port 36844 ssh2
Mar  2 16:54:11  vqfx-re sshd[64484]: Accepted password for automation from <IP_ADDRESS> port 36846 ssh2
Mar  2 16:54:12  vqfx-re sshd[64491]: Accepted password for automation from <IP_ADDRESS> port 36848 ssh2
Mar  2 16:54:12  vqfx-re sshd[64498]: Accepted password for automation from <IP_ADDRESS> port 36850 ssh2
Mar  2 16:54:13  vqfx-re sshd[64505]: Accepted password for automation from <IP_ADDRESS> port 36852 ssh2
Mar  2 16:54:13  vqfx-re sshd[64512]: Accepted password for automation from <IP_ADDRESS> port 36854 ssh2
Mar  2 16:54:14  vqfx-re sshd[64519]: Accepted password for automation from <IP_ADDRESS> port 36856 ssh2
Mar  2 16:54:14  vqfx-re sshd[64526]: Accepted password for automation from <IP_ADDRESS> port 36858 ssh2
Mar  2 16:54:14  vqfx-re sshd[64533]: Accepted password for automation from <IP_ADDRESS> port 36860 ssh2
Mar  2 16:54:15  vqfx-re sshd[64540]: Accepted password for automation from <IP_ADDRESS> port 36862 ssh2
Mar  2 16:54:15  vqfx-re sshd[64547]: Accepted password for automation from <IP_ADDRESS> port 36864 ssh2
Mar  2 16:54:16  vqfx-re sshd[64554]: Accepted password for automation from <IP_ADDRESS> port 36868 ssh2
Mar  2 16:54:16  vqfx-re sshd[64561]: Accepted password for automation from <IP_ADDRESS> port 36870 ssh2
Mar  2 16:54:17  vqfx-re sshd[64568]: Accepted password for automation from <IP_ADDRESS> port 36872 ssh2
Mar  2 16:54:17  vqfx-re sshd[64575]: Accepted password for automation from <IP_ADDRESS> port 36874 ssh2
Mar  2 16:54:18  vqfx-re sshd[64582]: Accepted password for automation from <IP_ADDRESS> port 36876 ssh2
Mar  2 16:54:18  vqfx-re sshd[64589]: Accepted password for automation from <IP_ADDRESS> port 36878 ssh2
Mar  2 16:54:19  vqfx-re sshd[64596]: Accepted password for automation from <IP_ADDRESS> port 36880 ssh2
Mar  2 16:54:19  vqfx-re sshd[64603]: Accepted password for automation from <IP_ADDRESS> port 36882 ssh2
Mar  2 16:54:20  vqfx-re sshd[64610]: Accepted password for automation from <IP_ADDRESS> port 36884 ssh2
Mar  2 16:54:20  vqfx-re sshd[64617]: Accepted password for automation from <IP_ADDRESS> port 36886 ssh2
Mar  2 16:54:21  vqfx-re sshd[64625]: Accepted password for automation from <IP_ADDRESS> port 36888 ssh2
Mar  2 16:54:21  vqfx-re sshd[64632]: Accepted password for automation from <IP_ADDRESS> port 36890 ssh2

We have found the following work around for now which allows us to get through the apply, however 700+ resources can take over 10 minutes to apply against a vqfx on the same device as the terraform client.
set system services ssh connection-limit 250
set system services ssh rate-limit 250
set system services netconf ssh connection-limit 250
set system services netconf ssh rate-limit 250

You can re-produce this with this sample HCL
locals {
  vlans = flatten([
    for i in range(2, 500) : [
      {
        name    = "VLAN_${i}"
        vlan_id = i
      }
    ]
  ])
}

resource "junos-qfx_VlansVlanVlan__Id" "vlan_vid" {
  for_each = {
    for vlan in local.vlans : "${vlan.name}" => vlan
  }

  resource_name = "${each.value.name}_vlan_id_grp"
  name          = each.value.name
  vlan__id      = each.value.vlan_id
}

I don't know if the new socket per resource is by design or if it can be changed.  While the limit values can be adjusted, this creates a larger DoS surface  which would be nice to avoid.

I think a worker pool would be fine, I can test locally on a dev branch when something is ready and report back.

@davedotdev
I have created a PR on the go-netconf library that addresses the transport part of this issue.  Using it in conjunction with this provider the time it takes to deploy has been greatly reduced.
Previously we were seeing upwards of 10+ minutes for a deployment on the same scale, this is also performing a commit check before we fully commit it.
Apply complete! Resources: 721 added, 0 changed, 0 destroyed.
terraform apply -auto-approve  298.09s user 5.12s system 329% cpu 1:32.02 total

Like I mentioned in the PR on the other library, I actually went with a worker pool initially and that just ends up killing the netconf subsystem regardless of any settings I tried.


rotation issue of saved image

steps:

take photo in horizotal mode and save image
the image display horizontal

how to display vertical image like system camera?

I need to display like this below:

Usually, the EXIF orientation flag will be written as part of the Jpeg header. The viewer can read the flag and apply the necessary rotation.

So how can I save EXIF into the captured image?

You can use ExifInterface.

As @alexcohn indicates, it seems that the issue is on the way the image is displayed. If you use Glide / Koil, images are rotated appropriately according to the EXIF metadata.


build: Unified Docker Image

PR Checklist

[x] A description of the changes is added to the description of this PR.
[x] If there is a related issue, make sure it is linked to this PR.
[x] If you've fixed a bug or added code that should be tested, add tests!
[x] If you've added or modified a feature, documentation in docs is updated

Description of changes
This PR simplifies the use of Docker by merging the cli and server into a unified, multi-arch compatible, Dockerfile with clean syntax, and brings the project closer to releasing an official image on DockerHub. See #319, #482, and #480.
Additional info

Example of the proposed GitHub Actions workflow successfully building and pushing images on my fork
Shaved off 1GB from the ./Dockerfile image to get it down to about 1.35GB

Excerpt from the proposed docker QuickStart

To start Unity Catalog in Docker Compose in one command, install the latest version of Docker Desktop and run the following:
docker compose up -d

This starts the Unity Catalog UI and backend. You can access the UI at http://localhost:3000 and the backend at http://localhost:8080.
To use the Unity Catalog CLI, attach to a shell in the backend container:
docker exec -it unitycatalog-backend-1 /bin/bash

Use the Unity Catalog CLI from the attached shell to interact with the server:
bin/uc table list --catalog unity --schema default

To remove the containers and persistent volumes, exit the attached shell and run the following from the host machine:
docker compose down --volumes --remove-orphans

This PR does the following:

Simplifies the main Dockerfile and enables arm64 native builds
Add compose.yaml to allow running UC with one command docker compose up -d
Ensures the PSQL and MySQL JDBC jars are inside the container, to allow connection to a persistent db in deployment
Enables parameterizing the server's connection to a db via env vars passed to hibernate
Adds standard build and push GitHub Actions workflow. Actually pushing the official image to DockerHub can be enabled in a subsequent PR.

@dennyglee I have cycles this week to try and push towards releasing an official image. Would love your feedback here to collaborate on this.

Thanks @tnightengale !  I do like the streamlined flow but let me also include @jaceklaskowski as he's been deeply involved with the docker creation.

docker/README.md needs some love too, doesn't it? Can you review it and make it up-to-date?

I couldn't build the images atm as it breaks on pulling delta-spark 3.2.1 😢  I'll do it again once all the comments are resolved.
#12 170.5 [error] coursier.ResolutionException: Encountered 1 error(s) in dependency resolution:
#12 170.5 [error]     io.delta:delta-spark_2.12:3.2.1:
#12 170.5 [error]         not found:

docker/README.md needs some love too, doesn't it? Can you review it and make it up-to-date?

Basically I think we could deprecate and remove ./docker with this PR. Thoughts?

I couldn't build the images atm as it breaks on pulling delta-spark 3.2.1 😢 I'll do it again once all the comments are resolved.
#12 170.5 [error] coursier.ResolutionException: Encountered 1 error(s) in dependency resolution:
#12 170.5 [error]     io.delta:delta-spark_2.12:3.2.1:
#12 170.5 [error]         not found:

Yeah, that should be soon :)

docker/README.md needs some love too, doesn't it? Can you review it and make it up-to-date?

Is there any reason to keep ./docker/ given the simplifications in this PR and the updated ./README.md?

Possibly though I'm not personally hard set on this.  One of the reasons it may make sense is in the past it was difficult to get the docker to run in DockerHub unless it had its own folder and/or root repository.  This may have changed and/or perhaps I configured it wrong so I would glad to be corrected here, eh?!

I'd keep README.md's separate as the main one gets fairly large and should really be part of the official docs (under docs ofc). I'd simply leave a note about Unity Catalog in Docker in the main README.md with a link to the docker/README.md.
I'm re-wording the main README.md as we speak (so perhaps it's going to be as tiny that the other docker/README.md becomes useless). We'll see.

Pulled the PR and reviewed the changes, and I'm very very sure that we should keep all docker-related files in their own docker directory. Having a dockerized environment is very useful, but that's not the main goal of Unity Catalog and is simply a convenience.
That's why I'm requesting the following files to be in docker directory:

compose.psql.yaml
compose.yaml
Dockerfile

(perhaps even ui/Dockerfile to keep everything docker-related in one directory).

@dennyglee @tnightengale Got a question about how to contribute to the PR. I must admit that I've never done it before (to contribute to a PR with a PR) and...could you guide me how to do it properly?
I asked the same question on slack --> https://unitycatalog.slack.com/archives/C076YREKX8W/p1727615205499499?thread_ts=1727102843.375399&cid=C076YREKX8W

@dennyglee @tnightengale Got a question about how to contribute to the PR. I must admit that I've never done it before (to contribute to a PR with a PR) and...could you guide me how to do it properly?
I asked the same question on slack --> https://unitycatalog.slack.com/archives/C076YREKX8W/p1727615205499499?thread_ts=1727102843.375399&cid=C076YREKX8W

Oh generally, I create a fork of the OPR (original PR) and then submit the PR to that one.  e.g.,

main is unitycatalog/unitycatalog branch main
Original PR is foo/unitycatalog branch bar
New PR is blah/unitycatalog branch bar where this PR is submitted to foo/unitycatalog

docker/README.md needs some love too, doesn't it? Can you review it and make it up-to-date?

Is there any reason to keep ./docker/ given the simplifications in this PR and the updated ./README.md?

Possibly though I'm not personally hard set on this. One of the reasons it may make sense is in the past it was difficult to get the docker to run in DockerHub unless it had its own folder and/or root repository. This may have changed and/or perhaps I configured it wrong so I would glad to be corrected here, eh?!

@dennyglee To clarify, what do you mean by 'run in Dockerhub'? As I understand it, DockerHub is just an image registry, like any other, and we would just be pushing a built image artifact to it.
On the topic of keeping everything in ./docker/*, I would suggest we keep the files in the unitycatalog/ project: this is the standard for most official images because it keeps things simple. The image is an artifact of the whole project; not a subcomponent.

@dennyglee @xx-db I decoupled any MySQL/Postgres dependencies from the image.
This PR now responsible has a few tightly coupled responsibilities:

Unifying the multiple Dockerfiles into one image
Deprecating the previous Docker docs
Creating a simple interface to run UC in Docker, using docker compose up
Adding a standard Github Actions workflow to build the image

@dennyglee Hey, rewriting commit history (see above) using the suggested DCO commands, git rebase HEAD~43 --signoff and git push --force-with-lease origin teghan/build_one_dockerfile didn't seem to work and has left the history of this branch a hot mess of garbage.
How do you feel about me opening a new branch with one new signed and squashed commit containing the changes here?


removing interfaces qml demos

indicating "interface" in the qnode is no longer necessary. The qml demos have been updated

Hey @trbromley , It is correct that the demos talk about the interface, right? Because they are using torch, tensorflow or jax. Or does the word "interface" only make sense in connection with qnode?

Looks good, but we should monitor if this causes confusion in the use of these demos (e.g. if we get more questions about this in the discussion forum).

There is also the survey being shared in the discussion forum :+1:


adding delete_vhd option to delete_deployment

See issue #268

Sorry, I haven't gotten this to work. The blob for the .vhd still exists after deleting the deployment.
Here's the test I'm adding for this:
    def test_delete_deployment_with_vhd(self):
        # Arrange
        service_name = self.hosted_service_name
        deployment_name = self.hosted_service_name
        role_name = self.hosted_service_name

        self._create_vm_linux(service_name, deployment_name, role_name)
        self.assertTrue(
            self._blob_exists(self.container_name, role_name + '.vhd'))

        # Act
        result = self.sms.delete_deployment(
            self.hosted_service_name, deployment_name, delete_vhd=True)
        self._wait_for_async(result.request_id)

        # Assert
        self.assertFalse(
            self._blob_exists(self.container_name, role_name + '.vhd'))
        self.assertFalse(
            self._deployment_exists(self.hosted_service_name, deployment_name))

I'm curious if you it's been working for you?


SME Review - Workshop outline

Please place all feedback to the workshop outline in this issue by continuing the conversation below.

Hi there,
When talking about IoT Security, I recommend highlighting the following:

Azure Security Center for IoT
Azure IoT Hub (Which Lab Does..)
DPS - This you can cover x.509 certs and TPM, OTA and
IoT Edge
Azure Sphere
Azure Sentinel

Plus, there are a lot of resources we can be pointing to talking about IoT Security. When is this suppose to go live? Thanks!

Content & Resources:

https://www.microsoft.com/en-us/research/wp-content/uploads/2017/03/SevenPropertiesofHighlySecureDevices.pdf
https://azure.microsoft.com/en-us/overview/iot/security/
https://docs.microsoft.com/en-us/azure/iot-fundamentals/iot-security-best-practices

Added all the appropriate resource links to the WDS files and integrated some with the customer objections.


track by $index, error

When use track by $index, and then drag one item, before drop, wait for about 3 seconds and drop, loss item!

Same problem with @linjianhong .

Same happening to me too.
Just discovered this for myself, maybe will be helpful to someone, but its possible to use $index without 'track by'


new: logout: avoid an open redirect

Only accept a return URL passed to /logout if it is either:

an HTTPS URL pointing to the same host
a local path relative URL

Validate the URL through Ruby URI.parse as part of the process.
Log rejected URLs for audit purposes.
Note: keeping the return URL parameter for logout is useful for supporting a logout hook for Shibboleth SP - and the local URL restriction will work with it well.
https://wiki.shibboleth.net/confluence/display/SP3/Notify

Looks ok to me.
Do we support localhost cases (on TEST at least)? If so, it may be worth also allowing localhost + http cases to support people developing apps locally.

Thanks for the quick review @James-REANNZ !
I did consider that as well, but in the end decided for simple rules.  And redirecting to "HTTPS only" (no caveats) is a clear rule for security.
And I did not want to introduce special exceptions for development of RapidConnect.
If you mean it for development of applications connecting to RapidConnect ... well, as this PR stands, it does not support redirecting back to the remote app at all, only to RapidConnect itself.
There is only one redirect back to an app in use, for NeSI Zendesk.  This is something I configured years ago (while still working for NeSI) - and that is also when+why I added the return URL feature to RapidConnect's logout.
But continuing to support this would be tricky.  I could compare the return URL to the registered URL of an app - but at the moment, the logout URL does not get any reference to the app requesting the logout.  (Hm, except for possibly the Referrer header).
To continue supporting redirect to app, I'd have to extend the logout handler "API" to also receive an app ID - and if passed, it would also accept URLs with the same scheme and base hostname as the app.
However, that would open the door for someone to register a malicious base URL (auto-accepted in TEST) and then validly redirect to that URL.  And our TEST could be used as an open redirect - same reputational damage as in PROD.
That leads me to not supporting logout redirects outside RapidConnect.
In the end, the only thing this takes away is being able to redirect somewhere else on logout - which is unlikely to be a major pain-point.  (I'll still have to let NeSI know this will change behaviour when someone logs out of their Zendesk).
In summary, the only safe way to allow redirecting to app would be to:

change API to also get app ID
disable auto-approval in TEST
work with deployments (NeSI) to change to new API

Given that RapidConnect will likely soon be replaced by the RapidConnect module on FederationManager, I lean towards not investing too much here.
Your thoughts?
Cheers,
Vlad

Given the low impact, it's probably fine as-is.

Thanks!


[question] Time based scheduling

Guys, you knows the ins and outs of that thing.
Can it be used for time based scheduling  ?
dequeue --> not yet --> ??? --> wait
↖  ------------------------    ↙

I don't think so.
For time based scheduling I would do some where the dequeuers have a time they should check back for the next item. They would also receive a notification if a newer item is added.
So I would not use this package I would make a related one if it was up to me.
Alternatively look at the odd-jobs package.

Cool ! I will check it out. Thanks a lot man !


Migrating from WalletConnect -> ReOwn, Error: Symmetric key for topic was not found

Describe the bug
I'm migrating from WalletConnect to Reown. I'm also removing all old references to Pairings, and old calls to Pair.instance and Sign.instance in favour of WalletKit.instance (Note there is a typo in the migration guide: https://docs.reown.com/walletkit/upgrade/from-web3wallet-ios, it says to import WalletKit in your code, the import however is named ReownWalletKit)
It looks like any pairing/session that was created with WalletConnect can not be disconnected with ReOwn. Only ReOwn sessions can be disconnected, using try await WalletKit.instance.disconnect(topic: forSession.topic). Previous sessions return:
Error: Symmetric key for topic 'ed50b3c1ecf9489555fbaf409b51f39cde9f80366318673578ef11bc3f5d3082' was not found.
  - symmetricKeyForTopicNotFound : "ed50b3c1ecf9489555fbaf409b51f39cde9f80366318673578ef11bc3f5d3082"

This is a blocker for us upgrading as it means our users will be left with unremoveable sessions
SDK Version

Client: Swift
Version: 1.0.4

To Reproduce
Create a Pairing/Session with WalletConnect SDK
Switch to ReOwn, and try to disconnect it

Pairings will expire by themselves, sessions should not be affected at all. Maybe the session you are trying to remove has already expired.

@llbartekll I tested again on a clean install and no it doesn't seem to be part of the migration. Pairing on wc2 and then disconnecting with reown does work
I do however have stuck a session though. Thats also not being removed on app delete either. It still has another day left on its expiry:
expiryDate : 2024-10-25 09:43:17 +0000
    - timeIntervalSinceReferenceDate : 751542197.0

The dApp it was connected to doesn't show this connection, so I can't remove it from that side either. Theres some other issue with being able to delete local references

Hmm, I don’t think it’s related to migration.
so you are saying that the WalletKit client returns you a session that you are not able to delete because of the „sym key for topic not found” error, correct?

@llbartekll correct:
let sortedSessions = WalletKit.instance.getSessions().sorted { lhs, rhs in
	return lhs.expiryDate < rhs.expiryDate
}

I will take a look at it

@simonmcl could you test your issue on this branch?

@llbartekll trying to look at this now, but blocked due to this issue: https://github.com/reown-com/reown-swift/issues/45 can you have a look? Seeing weird behaviour on the Swift SDK

hey @simonmcl, good to hear, Im realising 1.0.5 shortly!


BAEL-7491 - Generating Unique Positive Long using SecureRandom in Java

You can use something like:https://joel-costigliola.github.io/assertj/core/api/org/assertj/core/api/NumberAssert.html#isNotNegative() ---- On Tue,23 Jan 2024 06:28:56 +0000  @.***  wrote ----
@hangga commented on this pull request.
In core-java-modules/core-java-numbers-7/src/test/java/com/baeldung/securerandompositivelong/SecureRandomPositiveLongUnitTest.java:

+package com.baeldung.securerandompositivelong;

+import org.junit.jupiter.api.Test;
+
+import java.security.SecureRandom;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SecureRandomPositiveLongUnitTest {
+

@Test
void whenGenerateRecureRandom_thenGetExpectedValue() {

   SecureRandom secureRandom = new SecureRandom();

   long randomPositiveLong = Math.abs(secureRandom.nextLong());

   assertThat(randomPositiveLong).isPositive();

Hi @theangrydev
isPositiveOrZero() is in which version of JUnit? we are still on 5.9.2 and I can't find it.
Or may we use isGreaterThanOrEqualTo(0L) ?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Hi @theangrydev this PR is still open.

Thanks @hangga


🐛 Bug Report: Realtime Issue with `WebSocketException: .... was not upgraded to websocket' in FLUTTER

👟 Reproduction steps
I release my app in 'release mode' for QA test. These are the reproduce step with our QA tester:

She goes to the thread page (This page has Appwrite Realtime integrate)
She tries to send a thread. (When the thread has been sent then the realtime in appwrite must be triggered then her device must be receive the new event)

But she wonder why she did not receive any realtime event. So I try to go our Sentry log. Then I shocked that the Websocket issue is also occur in 'release mode'. I thought that this error was only occur on debug mode because it might be the hot reload or hot restart in flutter is the root cause.

👍 Expected behavior
It should not receive the WEBSOCKET issue
👎 Actual Behavior
It actually occurred to me that.
🎲 Appwrite version
Appwrite Cloud
💻 Operating system
Something else
🧱 Your Environment
No response
👀 Have you spent some time to check if this issue has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

@moshOntong-IT

It should not receive the WEBSOCKET issue

Can you clarify what the expected behavior is if the websocket isn't successfully connected?

Sorry for mention you here @stnguyen90 . Why not putting the try in above of line 36?

How does this change things?


Create Singleton abstract class

Create Singleton abstract class that:

Imparts the singleton pattern onto the subclass
Provides a flag in the editor to make to also provide Don't Destroy On Load logic

README is now updated.


⭐ Feat: Support multiple Ollama servers

Description
Support adding multiple Ollama servers, with a hotkey to switch between them.

actually, no


⚠ Bofrost.be has degraded performance

In 1f53a76, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1254 ms

Resolved: Bofrost.be performance has improved in f788c7c after 8 minutes.


Depth buffer access

Following this conversation. Would it be worth proposing a function that would allow more direct access to the depth buffer?

Reading from the depth buffer is not a problem from wgpu-py. The problem is with how pygfx works: there are multiple render passes, and the depth buffer is re-used in these passes, so its content is probably not what you're interested in. One solution is to use multiple depth buffers, but this costs a lot of memory.

See here: https://github.com/pygfx/wgpu-py/tree/main/examples


Playing and stopping hangs Editor if service not running

If I play when the service is not running, my Unity stops responding.


Add ConfigurationVersions

Description
Added ConfigurationVersions methods.
Changed the client to handle Kabab case without adding JsonPropertyName attribute to every property
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[] Extended the documentation

Would like to avoid to implement the JsonPropertyName on ConfigurationVersions if possible. Why would you like to split it? Maybe I can come up with a solution to your concerns.

Forget about splitting the PW I'm approving it as is.


database disk image is malformed

rtalk    | ERROR INSERT INTO users (created_at,updated_at,deleted_at,name,email,link,password,badge_name,badge_color,last_ip,last_ua,is_admin,site_names,receive_email,is_in_conf) VALUES ("2023-06-09 10:34:56.869","2023-06-09 10:34:56.869",NULL,"222","i@tt.tt","","","","","","",false,"",true,false) RETURNING id [386.038µs] error=database disk image is malformed
artalk    | ERROR Create User error: database disk image is malformed
artalk    | ERROR Cannot get user or page
artalk    | ERROR 响应: POST /api/add ==> "评论失败" host=<IP_ADDRESS>:23366 id=158ff1a30cbb137474872332dcfe4c9c ip=<IP_ADDRESS> referer=http://localhost:8080/ status=200 user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 Edg/114.0.1823.37

https://www.cnblogs.com/netlyf/p/4586515.html

不太行

不太行  新的导不进去

已 tg 联系您


Getting black map after following Tangram Android Walkthrough

Hello, I am getting a black screen after following the walkthrough here. I've also tried running the commands here, and am still getting the same result.
Device: Kindle Fire
Android: 5.1.1
Here is also my scene.yaml file for reference:
sources:
mapzen:
type: MVT
url:  https://vector.mapzen.com/osm/all/{z}/{x}/{y}.mvt
url_params:
api_key: my_vector_tiles_api_key

Just fixed by adding sourceSets.main.assets.srcDirs = ['../styles'] to app-level build.gradle.

Just fixed by adding sourceSets.main.assets.srcDirs = ['../styles'] to app-level build.gradle.


shift_rows/sub_bytes commutivity

Please leave suggestion for how to name 'CommuteProperties.v'. I'm not sure on this, but was imagining we'd have the mix columns/sub bytes commutativity property there as well.
closes #310

Thank you! I'll defer to @jadephilipoom for the review (of course review comments from everyone else also welcome as usual).


roles revamp

making roles more flexible

I think the proposal is basically, provide the ability to import a role without executing it. Then later on in the play, use the include directive to execute yaml files found in the tasks folder of the role. When executed, the task file receives the benefits or the context of the role (i.e. handlers, defaults, vars, templates, etc.)
Is that correct?
This is probably a really good idea. It may be confusing to those new to roles, but clearly provides a lot more control and flexibility to the advanced user.
My 2 cents - this needs to ship with really clear documentation that includes solid (meaning real-world) use cases. Roles are confusing to new users as is, which means there is a strong possibility that this makes explaining/teaching/troubleshooting roles even more difficult.

@chouseknecht yes, exactly what this is, implementation should not be too hard with the exception of the looping logic (might not support loops on the first iteration). Docs will need to be very clear and example ladden.

Thanks for doing this @bcoca. The limitations of the roles mechanism comes up often with many of the people I work with. I've posted a few inline comments already.
How would this proposed revamp work with modules and plugins? Would it?
I realize this statement will be a bit controversial but I think it's worth putting out there for discussion in this context. The term “roles" is confusing especially to Tower customers where the term means something entirely different. Roles as they exist in core today only vaguely resemble the role-oriented programming constructs they were presumably inspired by. I'd suggest that we consider (slowly) deprecating the uses of the term roles and use something more precise  like "resource" or "package."

I have been thinking about renaming roles to 'resource' or at least make it an alias.

I'd second that alias idea @bcoca -- I'd even suggest taking that one further and start using resource in our docs and examples. I think it would clear up a lot of confusion I see Ansible Tower users experiencing.

Honestly, maybe it is time to rename roles as "packages".

I agree too on the renaming, but this should maybe go in a different proposal ?
(mostly to decide what get renamed, ie, the directory roles, the data structure, etc, etc)
Also, packages might start to give the idea of "ansible galaxy is a package manager", and i remeber @jimi-c saying that he tried to avoid that.

Unsuccessfully. :)
We're probably going to have to face the reality that Galaxy is a package manager.

I find the proposed semantics very strange, and I'm not sure I like the whole idea of an include being "not really an include, but a kinda sorta import". Maybe different terminology would make things clearer.

I was trying to reuse existing items instead of recreating from scratch, roles are already a mixed bag, both resource import and execution declaration.
I would like to reuse or keep backwards compatibility to current roles, naming is something we can bikeshed about as much as we want, but I would like to nail down the functionality described here.

I do think role deserves its own command, role: in tasks. Dont think this can be argued.

Also, see: Feature: role scoped variables #15243, which is of some relevance to this.

This is the #15243 @bjne is referring to: https://github.com/ansible/ansible/issues/15243
I think role as a task module can be argued and is part of this exercise.

@bcoca: OK so naming and semantics aside, the only question/issue I have with your proposed approach is how bundled modules and other plugins are handled in this revamp. Could you elaborate?

@tima, bundled resources work 'as is', so if a role provideds plugins, vars, handlers, etc they will still be available to the play as they are now.

I do not like the include: role=foo x.yml model, and as stated earlier, I think "role:"
should get its own task module. If you then want to do only run certain parts of
that role, it should be controlled by variables passed to the role, and not name of
a yml file, imho. It is probably the functionality "create user" you are looking for,
and not the "my_create_user.yml" file.
Might be that adding "role:" as a task is a bit more work, but imho, its the correct
path down the road, and thats the most important.
Combined with:

Role scoped variables
Variable role names { role: "{{ my_role_override }}", __scoped_variable: "{{ foo }}" }
Role dependencies that can execute after dependent role (after: true)
Real role "where" statement, where the role is not loaded at all (including vars/defaults)

This can be a blast!

@bjne, I'm not sure we want role: as it will be confusing with the existing entry in roles:, but we can consider things other than include, I was using that as it seemed the obvious choice. As for the reest, those are out of scope of this proposal, also a lot harder to implement.

Dependencies and playbooks use role: so I would call it consistent.

hosts: localhost
roles:

role: foo
param: bar

dependencies:

role: foo
param: bar

name: add foo
role: foo
param: bar

@bcoca said confusing not consistent. I must agree with him that using the term role would make things more confusing. As I mentioned earlier, I think we need to consider phasing out the term role from the core all together to avoid existing confusion.
That's irrelevant right now though -- it was suggested that we review the proposed functionality and not get too wrapped up in the naming like we are at this point.

@tima if its consistent, it cant be confusing as long as not everything is... anyway:
I dont see the problem you are facing with role(s). its in roles/ and its too late to change
that into packages/ imho. If roles should be, as I hope, called from a task, I really hope
it will function exactly the same as when a role is called from a playbook or from a dependency,
and that you dont introduce anything special here as that will be confusing.

or even:
- name: add foo
  roles:
    - role: foo
      param: bar

So discussed at today's public meeting and the functionality is something that was agreed upon, only contention is the directive/flag names which are really an implementation detail. So going to accept/merge this for now leaving the final name/syntax for later discussion.
https://meetbot.fedoraproject.org/ansible-meeting/2016-04-19/ansible_public_meeting.2016-04-19-19.07.txt

I feel that the include/role.yml usecase could rather be solved by a role lookup plugin.
- name: include foo.yml from bar role
  include: "{{ lookup('role', 'bar') }}/tasks/foo.yml"

it would still not execute the tasks in 'role context'

@bcoca: Why not using the existing module syntax? Like
my_role_name: var1=value1 var2=value2 ...
I don't really see the point making the hard cut between roles and modules. Sometimes it's the easiest way to write a little util "module" using the existing Ansible+Jinja2 syntax (which then would be a role in the Ansible world, even if it's use cases are more module-like).
This would also enable much better and cleaner possibilities to redistribute own modules by making a "role wrapper" around the python code and using the existing redistribution mechanisms like Ansible Galaxy, requirements.yml etc.
For me, roles and modules are just two different development approaches producing reusable functionality (role=Ansible/YAML/Jinja2, module=Python) . Why not make it more easier and cleaner merging the different syntax for execution?

If this might be of some help, from the point of view of an end user -and because of that I'll intentionally restrict myself to high-level concepts, roles are a means to encapsulate functionallity, i.e. "create some webservers" or "here's the way you construct a PostgreSQL database".  You, then, modulate the details by providing values to their accepted params.
The internal details of how the role achieves its function should be exactly that: internal, as a role is "encapsulated functionallity", therefore no point on including/declaring/calling any of its tasks files by name.
What I miss is the ability to properly call this kind of "encapsulated funcionallity" from within other "encapsulated functionallity" to create higher level functional aggregates.  For this to happen, the ability is required to call roles from within roles at any given time (or, at least, in the way of playbooks, in a pre-now/now/post-now fashion), when the calling role is ready to do so (i.e.: after "building" some pre-requisites, checking some other resources are in place, etc.).  But, please, leave a role's intimacies be its own internal business: separation of concerns and encapsulation are still quite valid concepts.

@jmnavarrol  that ability to call roles already exists: include_role

@jmnavarrol that ability to call roles already exists: include_role

Nice to know.  I see it's still on preview state and that there's still some bugs (i.e. with_items related) but it's a nice addition.  I'll give it a try.
Thanks!

@jmnavarrol also note that include_role is not actually a first-class task.  it cannot be called as an action for example using ansible ad-hoc wrapper.  to think so is apparently a "misunderstanding," i.e. #22983


null value accepted in filter option at customer end

Bug report
Title
null value accepted in filter option at customer end
Issue Description
null value accepted in filter option at customer end
Preconditions
1. framework Version- master

Steps to reproduce
1. step1- go to customer orderlist
2. step2- filter with null value of order id and status

Expected result
a warning should be shown
Actual result

fixed


Fixing Issue 4182 - Changed the API to V2

Type

[x] Bug Fix
[ ] New Feature
[ ] Sample

Related Issues?
Fixes #4182
What is in this Pull Request ?
Fix for Issue 4182, updating the API to V2.
When using the command Get-PnPFlow -AsAdmin throws 403 Forbidden error. The error description says to use API V2 instead. In this PR, the API version is changed to V2, and hence resolving the issue.

Thanks,
Nishkalank Bezawada

Thanks @NishkalankBezawada , much appreciated !!


Implemented Property Filter

Moved property search on filelist
It need an extensive test cause I didn't had more time

I will test it!

Consider that concurrent property filter and text filter are not working at the moment.
I will need to intersect the results of the two filters in case it's a needed condition.
Otherwise the activation of one will deactivate the other.
What do you think?

I actually do use those together at times.
Note, 'File search' is supposed to be a wildcard search.  Take a look at:
Form1.FileHelperFunctions.FileWildcardSearch
You'll see it uses the VB 'Like' function to compare the filename to the wildcard sting.  The wildcard string is in new_ComboBoxFileSearch.Text
I think in Form1.TextFilter() this
If item.Text.Contains(new_ComboBoxFileSearch.Text)
should be (assuming item.Text is the filename, not the full path)
If item.Text Like new_ComboBoxFileSearch.Text

Oh, and at least in my case, the wildcard search removes many files from the list.  In my code I did the wildcard after the property filter.  That's backwards.

Yes item.text is the filename, you can change the code and test it, If it work you can commit it.
In my opinion wildcard filter should come first cause it shorten the list for the property search that is more time consuming.
One more thing, why use DM for property search and not the FileProperty class ? Is it faster? I never conducted a benchmark but you don't have to start DM in that way

OK I'll give a try.
Right, that's what I meant about doing the wildcard search first.  I had it backwards before.
I didn't know about the FileProperty class.  I'll look into it.  Later, that is...

That seems to work.  I went ahead and pushed it to GitHub.
I'm going to study the flow starting with the Update button to see if I can get the wildcard search ahead of the property filter.

As it is made now they both start from a full list (backup list)
My idea is to create an intermediary filtered list to use for property search

OK.  Can I let you have that one?  I need to get up to speed on ListView.  I'm going to do that this afternoon.
Not sure I mentioned this before, but I completely agree that the only way to update the list should be with the Update button.  I wonder if any time a "Source" is added or deleted, the file list should be cleared.  What do you think?

Well I have an idea that it has to be implemented, it just will make things a bit more complicated.
The idea is to create a collection of results for each source so if you delete a source it delete its own items and if you add a source you can update just that one.
Ideally create a class source with its properties and methods to call.

At the moment just managed some concurrent filtering, will see in the future if I have time to create a proper class to manage sources


[backport/1.21] repo: Dev 1.21.6 (+ci fixes)

open branch to dev
backports
Previously /var/run/docker.sock is readable/writable inside docker run because group ID of envoygroup coincidentally matches host docker group, while it is no longer true during rolling out new image. Fixing that by forcing envoygroup has host docker group ID.
Risk Level: Low
Testing: CI
Docs Changes:
Release Notes:
Platform Specific Features:
Signed-off-by: Lizan Zhou<EMAIL_ADDRESS>Signed-off-by: Ryan Northey<EMAIL_ADDRESS>
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/docs

gh action is failing due to clang versioning - seems like there are some workarounds here https://github.com/circleci/circleci-images/issues/430

possibly we can backport a fix - ill check further


API Request Validation

Why this feature is required (specific use-cases will be appreciated)?
Same like what Laravel have done. I think it will be good for us to have a request validation for Adonis
Have you tried any other work arounds?
I have tried to make a work around but it became messy on my end
Are you willing to work on it with little guidance?
Yes I am

What is API Request Validation?

Same like what we have here https://laravel.com/docs/5.7/requests

I cannot see any validation related docs on that page. Also, if you are expecting me to read the entire documentation and then decide, then it's not called help :)
If you want to contribute, bare minimum you have to do following:

Research on topic regardless of a specific framework or implementation.
Explain us properly why the feature is required with proper description and some code samples.
Explain what else you have tried, again proper description and some code samples.

Oh Sorry. I'll try to make it clearer. This is the correct link https://laravel.com/docs/5.7/validation
In Laravel we can extend an object Request where it has a custom validation rules. So before we pass the values to Controller it is validated already in the Request object.  Something like this
public function rules() {     return [         'title' => 'required|unique:posts|max:255',         'body' => 'required',     ]; }

@kevin1193
You can already do this:
    async store({ request, response }) {

        const validation = await validate(request.all(), Address.rules)

        if (validation.fails()) {
            return response.status(422).json(validation.messages())
        }

        try {

            const address = await AddressRepository.create(request.only(Address.requests))

            return AddressTransformer.transform(address.toJSON())

        } catch (e) {
            return response.status(400).json({
                message: 'The address is unable to create.',
                status_code: 400
            })
        }
    }

My Rules:
    static get rules() {
        return {
            user_id: 'required',
            receiver_first_name: 'required',
            receiver_last_name: 'required',
            province: 'required',
            city: 'required',
            barangay: 'required',
            street: 'required'
        }
    }

@jsdecena  wow cool. Thanks a lot.


Support non-normalised publication identifiers

From @yablokov:
In the API URL pattern, what identifiers do we support?
Right now, the bibxml patterns go like "rfcNNNN.xml".
Should we support:

"RFCNNNN.xml"
"IETF-RFC-NNNN.xml"
or?

would be nice to get more examples of a non-normalised identifiers.

Spaces
Hyphens '-'
Underscores
?

Or may be better to clean these identifiers from non-standard characters and then try to normalize it?

Originally posted by @yablokov in https://github.com/ietf-ribose/bibxml-service/issues/3#issuecomment-909075658

I think this is closed? Currently, identifiers used in APIs are obtained from filenames in bibxml-data- repositories.

Agree. Closing.


Can't load help doc of "BlockMenu"

Describe the bug
Can't load help doc of "BlockMenu"
Steps to reproduce the behavior
1.Navigate to https://arcade.makecode.com/beta#
2.Game Jam----->The Jolly Dodger----->Open in Editor
3.BlockMenu----->Right Click any block
Actual behavior
Can't load help doc of "BlockMenu". It shows "Sorry, the page is missing"

Additional context
1.OS: Windows(rs6)
2.arcade version: 1.4.3
3.Microsoft MakeCode version: 6.8.30

This is not an officially supported extension, so it doesn't have documentation.


It stops scanning after a while

Well, I don't know if it's normal or not, but after a while, usually 20-30 minutes, the program stops scanning the pokemons nearer to the marker and only scans those that are at the edge of the radius. Then it completely stop scanning. Can I solve it somehow?

Are you signing in with a Google account?

Yes I am

Google logins time out after 30 minutes. If you want it to stay logged in and refresh indefinitely, create a PTC account and log in using that. There will be no difference between the two as far as seeing Pokemon on the map goes.


feat: add cgroup telemetry

What type of PR is this?
This PR adds telemetry for memory and resource pressure.
What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #24220863
Requirements:

[ ] uses conventional commit messages
[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall First build on antoniovi/cgroup_telemetry at 61.59%

Totals

Change from base Build<PHONE_NUMBER>:
61.6%

Covered Lines:
2572

Relevant Lines:
4176

💛  - Coveralls

need a rebase and amake with committed diff I think?


⚠ Bofrost.be has degraded performance

In af58e07, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 867 ms

Resolved: Bofrost.be performance has improved in 8e38c22.


Run template validate spec present

Changes proposed by this PR

Should RunTemplates accept objects that do not have a spec? If an object does not have a spec field, there will be a cache miss when Carto examines the object. This will cause a new object to be stamped out.
Consider #587

Release Note

PR Checklist
Note: Please do not remove items. Mark items as done [x] or use ~strikethrough~ if you believe they are not relevant

[x] Linked to a relevant issue. Eg: Fixes #123 or Updates #123
[x] Removed non-atomic or wip commits
~[ ] Filled in the Release Note section above~
~[ ] Modified the docs to match changes~

If an object does not have a spec field, there will be a cache miss when Carto examines the object. This will cause a new object to be stamped out.

I wonder if that means we should try to address this at the cacher rather than individually at the Runnable level (where we can perform inspections like this because there's no ytt support) 🤔
I'm not very familiar with the internals of the caching layer - in the case of a supplychain that stamps out a ConfigMap, what's the current impact of those cache misses?

in the case of a supplychain that stamps out a ConfigMap, what's the current impact of those cache misses?

For a supply chain template, if it deploys a resource that doesn't have a spec, the template will always update the object. Observable behavior would be generation increasing with every reconcile loop.
To fix this at the caching layer (which I think it desirable), we need to have some fields that we expect to be set by cartographer and other fields that we expect to be set by the object's reconciler. (for example: spec is Carto's concern and status is the other controller's concern). Right now our line in the sand is: Carto is concerned with spec and all other fields are the concern of the other controller. Looking at configmaps, data would be a reasonable addition to Carto's concern. There's an exploration that would need to be done to validate the fields that can be assumed to be Carto's concern.


Can't manage topics created in Azure Service Bus

Mass Transit create a topic in the form of namespace/class so for example...
myawesomeapplication.business/command
The issue is that Topics with "/" in the name can't be managed. The manage blade for the topic doesn't appear whereas if I create a Topic without the "/" it works just fine.
I also cannot delete topics with "/" in the name. I need to delete the entire Service Bus resource (all topics and queues)

This is actually a bug in portal.azure,com, it works fine in ServiceBusExplorer and the legacy Azure management portal.
At some point, you'll be able to configure all the separators and such used by MT, but for now, you're stuck with either using the old portal or using the awesome ServiceBusExplorer (which is what I use 99% of the time).

I'm going to work in the dynamic topology code for the release after next, and that will include observers for all transports so that any topic/queue/subscription creation can be intercepted, and modified, before being sent to the transport.
This should allow for the modification of the transport entities before being used. Such as:
PreCreateTopic(TopicDescription topicDescription)
{
    topicDescription.PartitionCount = 659;
}

And things like that.

Does it mean 3.6 or 3.7?

Yes? :)

You wrote "the release after next". I'm just trying to calculate a timeline in my head. :-) I checked the releases page and it seems you need 2-3 months to release a new minor version recently. I would like to see this feature sooner instead of later. In my proof of concept that can be a winner card against dev ops and IT, because then we're flexible to feed their needs. ;-)
Anyway Mass Transit is a very great product!

FWIW the issue in the Azure Portal related to deleting topics with / in the name seems to have been resolved, however if you want to use Topics in Azure Functions there is still a problem with topics that have / in the name.

So the entity names can be changed now with the latest develop branch, closing this due to portal being fixed and entity names being overridable.


Code coverage tooling

I'd like to be able to get code coverage data out of the JerryScript VM, for the .js that is being run.
We're using lcov+gcov to generate reports for the C code coverage of the unit tests of our JerryScript bindings.
Ideally, the JerryScript tooling would emit coverage data files that lcov can pick up and add those into one report together with the C code coverage data. I've no idea how feasible this is... :) I suspect that the debugger hooks are in part what we'd need to accomplish this.

Are you talking about JS coverage? In IoT.js we simply use the Istanbul tool for getting it.

Yes, JS coverage. How are you using Istanbul when the JS code relies on native bindings that are implemented using the JerryScript C API?

On C part gcov is good enough.

Ah, I see you are using babel-plugin-istanbul (https://github.com/Samsung/iotjs/blob/24f2fcb46598b6275a05a1fdf46168c0147b2929/tools/measure_coverage.sh)
Are you running the transpiled code (with the line counter code added) directly in JerryScript?

Yes.

OK, thanks, I'll try that.


added extern for resolveLocalFileSystemURL()

resolveLocalFileSystemURL() is missing from built-in extern nonstandard_fileapi.js.  (resolveLocalFileSystemURI is there, but it's not what cordova-plugin-file uses)

@googlebot I signed it!


Version Packages

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.
Releases
<EMAIL_ADDRESS>Minor Changes

72d682c: autoProgress will now progress when the input mask is complete instead of when the input value becomes valid.

<EMAIL_ADDRESS>Patch Changes

Updated dependencies [72d682c]

<EMAIL_ADDRESS>

@SocketSecurity ignore-all


Make VAL_MAX_RESTART_COUNT configurable.

unbound tries very hard (up to 6 authoritative servers) to find a
validating answer. This is not always desirable, for example on high
latency links.

LGTM, thanks!
I'll generate the lexer and parser.


Use ConcurrentHashMap.computeIfAbsent() replace putIfAbsent() ?

Is ConcurrentHashMap.computeIfAbsent() is better than putIfAbsent() ?
In my opinion , there  are several advantages

1.if key exists,it is expensive to compute value, this is the most important thing
2. computeIfAbsent() is functional interface,user it will more flexible

if we need it , please assign it to me, i will try my best

Please list the application scenarios in the code.

like this:
cn.hippo4j.springboot.starter.core.ClientWorker

It can be replaced with the following code

After submitting the change, please give the performance comparison before and after.

@zhanghailang123 Welcome


Frame rate drop

Hi @yuokamoto,
I am testing a sensor component and figuring out that there is a frame drop issue. As you can see in the following video, the frame rate of each sensor drops by about 40% from the set value.

ROS2CameraComponent : 15 Hz -> 8~9Hz
ROS23DLidarComponent : 10 Hz -> 6Hz

Do you know if there is anything I need to set up to address this?

How about the /clock topic rate or real time factor of the simulation?

@yuokamoto
Thanks for your quick response. The '/clock' topic was showing 60 Hz, and the fps in Unreal Editor was also showing 60. I am currently testing under UE 5.2.1 and figured out there is a framerate issue. I set the 'Fixed Frame Rate' parameter to 100 as below:

However, I've noticed that no matter what settings(VSM, Lumen, Nanite, and so on) I change, it always caps at 60 FPS(even in empty black scenes).

I will need to check this further, but I believe this is an issue with Unreal Engine itself.

Thanks for your investigation.
I'm not sure the root cause of the issue.
FYI
Since UE's frequency is not normally high, e.g. 30hz, I created this custom timer and used inside from publisher.
https://github.com/rapyuta-robotics/rclUE/blob/7613773cd4c1226957603d705d68a2d2b4a69166/Source/rclUE/Public/rclcUtilities.h#L174

@yuokamoto
Thansk for the response. This issue was mistake on my side and resolved by use UBT on compile time.
I apologies for the inconvenience.

@james-yoo Hi, could you please give more details on this? Do you mean compiling the world and running it in isolation rather than in the editor?


VESvault integration

Back up and retrieve your wallet password with VESvault end-to-end encryption. If you ever lose your passphrase, your viral network of friends will be able to securely assist you.

https://wallet.ves.world
https://medium.com/@info_53935/veswallet-have-your-friends-help-you-recover-your-lost-digital-wallet-7d2caf8883c9

VESwallet Chrome extension:
https://chrome.google.com/webstore/detail/veswallet-ethereum-wallet/aehoaajegaoakamklmcbgefibhnilbip

VESwallet vs a hard wallet:
https://medium.com/@jb_70520/veswallet-1-2-safer-and-more-secure-than-a-hard-wallet-24950a2138d8


Improve storage optimization doc

This addition stems from a recent optimization session at SoundCloud.
@fabxc

:+1:


[GUI] Improve tracker page

[ ] If mounting reset was used the mounting should show as "Custom"

[ ] Choosing other mounting should change it to be hand-set again

[ ] Tracker 3D view should switch between raw and calibrated the same way the rotation on the home screen does
[ ] 3D model of the tracker should be updated to something more resembling slime model so people knew better where everything is, right now it's even long instead of tall so it's doubly confusing
[ ] Tracker 3D view should be enabled by default and switching it on or off should presist between opening tracker pages

If the mounting reset was used the mounting should show as "Custom", Choosing other mounting should change it to be hand-set again

Do you mean the mounting position should show Custom after triggering the mounding reset? also what It means by hand-set

tracker 3D view should switch between raw and calibrated the same way the rotation on the home screen does

We can add a toggle on top of the 3D view for raw and calibrated, I wonder if we need to persist the toggle setting here.

3D model of the tracker should be updated to something more resembling slime model so people knew better where everything is, right now it's even long instead of tall so it's doubly confusing

Three.js suggested to use a GLB / .GLTF 3D model, also support FBX、OBJ, COLLADA

Tracker 3D view should be enabled by default and switching it on or off should presist between opening tracker pages

we can have the 3D view toggle setting placed in the general setting? actually, why does the user need to turn it off? they can just close the page.

[ ] Tracker should have a warning sign if it was reconnected and wasn't fully reset. The warning should also be on the home page.

[ ] Treacher should have a warning sign if there is more than one tracker assigned to the same body part. The warning should also be on the home page.


Uncaught Error: ENOENT: no such file or directory, open '/run/user/1000/gvfs/privacypolicy.html'

[Enter steps to reproduce below:]

...
...

Atom Version: 1.12.7
Electron Version: 1.3.13
System: Ubuntu 16.04.1
Thrown From: Atom Core
Stack Trace
Uncaught Error: ENOENT: no such file or directory, open '/run/user/1000/gvfs/privacypolicy.html'
At /opt/atom/resources/app.asar/src/pane.js:1030

Error: ENOENT: no such file or directory, open '/run/user/1000/gvfs/privacypolicy.html'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.module.(anonymous function) [as openSync] (ELECTRON_ASAR.js:168:20)
    at Object.fs.writeFileSync (fs.js:1343:33)
    at Object.writeFileSync (/opt/atom/resources/app.asar/node_modules/fs-plus/lib/fs-plus.js:281:17)
    at File.module.exports.File.writeFileSync (/opt/atom/resources/app.asar/node_modules/text-buffer/node_modules/pathwatcher/lib/file.js:285:19)
    at File.module.exports.File.writeFileWithPrivilegeEscalationSync (/opt/atom/resources/app.asar/node_modules/text-buffer/node_modules/pathwatcher/lib/file.js:463:21)
    at File.module.exports.File.writeSync (/opt/atom/resources/app.asar/node_modules/text-buffer/node_modules/pathwatcher/lib/file.js:380:12)
    at TextBuffer.module.exports.TextBuffer.saveAs (/opt/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1140:19)
    at TextBuffer.module.exports.TextBuffer.save (/opt/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1124:19)
    at TextEditor.module.exports.TextEditor.save (/opt/atom/resources/app.asar/src/text-editor.js:871:26)
    at Pane.module.exports.Pane.saveItem (/opt/atom/resources/app.asar/src/pane.js:738:18)
    at Pane.saveItem (/opt/atom/resources/app.asar/src/pane.js:3:59)
    at Pane.module.exports.Pane.saveActiveItem (/opt/atom/resources/app.asar/src/pane.js:721:19)
    at Workspace.module.exports.Workspace.saveActivePaneItem (/opt/atom/resources/app.asar/src/workspace.js:693:35)
    at atom-workspace.core:save (/opt/atom/resources/app.asar/src/register-default-commands.js:222:32)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/atom/resources/app.asar/src/command-registry.js:259:29)
    at /opt/atom/resources/app.asar/src/command-registry.js:3:59
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/opt/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:587:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/opt/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:382:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/opt/atom/resources/app.asar/src/window-event-handler.js:106:36)
    at HTMLDocument.<anonymous> (/opt/atom/resources/app.asar/src/window-event-handler.js:3:59)

Commands
     -0:55.7.0 core:select-all (atom-text-editor.editor.is-focused)
     -0:54.1.0 core:paste (atom-text-editor.editor.is-focused)
     -0:51 core:select-all (atom-text-editor.editor.is-focused)
     -0:49.9.0 core:cut (atom-text-editor.editor.is-focused)
     -0:46.6.0 application:new-file (atom-text-editor.editor.is-focused)
     -0:44.5.0 core:paste (atom-text-editor.editor.is-focused)
  2x -0:41.2.0 core:save (atom-text-editor.editor.is-focused)

Config
{
  "core": {
    "telemetryConsent": "no"
  },
  "editor": {
    "fontSize": 13
  }
}

Installed Packages
# User
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.45.0 (inactive)
base16-tomorrow-dark-theme, v1.3.0 (inactive)
base16-tomorrow-light-theme, v1.3.0 (inactive)
one-dark-ui, v1.6.2 (active)
one-light-ui, v1.6.2 (inactive)
one-dark-syntax, v1.5.0 (active)
one-light-syntax, v1.5.0 (inactive)
solarized-dark-syntax, v1.0.5 (inactive)
solarized-light-syntax, v1.0.5 (inactive)
about, v1.7.0 (active)
archive-view, v0.62.0 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.13.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.4 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.2 (active)
command-palette, v0.39.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
find-and-replace, v0.202.2 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.60.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.2 (inactive)
markdown-preview, v0.158.8 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.1 (inactive)
settings-view, v0.243.1 (active)
snippets, v1.0.4 (active)
spell-check, v0.68.4 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.2 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.210.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.35.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.54.0 (active)
language-clojure, v0.22.1 (active)
language-coffee-script, v0.48.0 (active)
language-csharp, v0.13.0 (active)
language-css, v0.40.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.43.0 (active)
language-html, v0.47.1 (active)
language-hyperlink, v0.16.1 (active)
language-java, v0.24.0 (active)
language-javascript, v0.122.0 (active)
language-json, v0.18.3 (active)
language-less, v0.29.6 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.37.0 (active)
language-php, v0.37.3 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.1 (active)
language-ruby, v0.70.2 (active)
language-ruby-on-rails, v0.25.1 (active)
language-sass, v0.57.0 (active)
language-shellscript, v0.23.0 (active)
language-source, v0.9.0 (active)
language-sql, v0.25.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.29.1 (active)
language-toml, v0.18.1 (active)
language-xml, v0.34.12 (active)
language-yaml, v0.27.1 (active)

# Dev
No dev packages

Hi @patelanil2007, what were you doing when this occurred?

There are 0 references to anything called "privacypolicy.html" in the atom org.

Thanks for reaching out!
We haven't gotten a response to our questions in our comment https://github.com/atom/atom/issues/13529#issuecomment-270019344. With only the information that is currently in the issue, we don't have enough information to take action. I'm going to close this but don't hesitate to reach out if you have or find the answers we need, we'll be happy to reopen the issue.


64-bit path and removed version specific number

Added the path for C:\Program Files (x86).... as that is used for 64-bit installs. Also changed the numeric version specific folder of 130 to ### to be more version agnostic

@Matticusau,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

Thank you @Matticusau for the content contribution!


Import default schema

This merges the schemas in the folder but creates undesirable values such as:

We'll need to change the properties = list(validator.schema['properties']) to handle the multiple schemas.  I think this should be sufficient:
    if 'oneOf' in validator.schema:
        properties = set()
        for subschema in validator.schema['oneOf']:
            properties |= set(subschema['properties'])
    else:
        properties = set(validator.schema['properties'])

You could write this more compactly like so:
    properties = set()
    for subschema in validator.schema.get('oneOf', [validator.schema['properties']]):
        properties |= set(subschema['properties'])

But that is probably less obvious, so maybe the first one is better.

I think we have to add , db to the fixtures listed in https://github.com/DigitalSlideArchive/DSA-WSI-DeID/blob/master/tests/test_schema.py#L67 to get CI to pass.  This is because we now check if the schema is stored in the system (and hence check the db).


Abhinav 6 patch 1

Fixes Issue

Changes proposed

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots

Note to reviewers

What's wrong with this. I have done everything according to the guide. Am I missing something.

What's wrong with this. I have done everything according to the guide. Am I missing something.

Your file name should match to your github username.
like this :- data/Abhinav6.json to data/Abhinav-6.json

I've edited the filename and remooved the avatar field. Now i think it is ready to merge.


[Bug]: Module not found

Bug Description
Getting this error trying the Google Calendar agent example:
ModuleNotFoundError: No module named 'llama_index'
Version
0.7.8
Steps to Reproduce
Deployment via streamlit; here’s the requirements.txt:
pip install llama-index==0.7.8 llama-hub
Relevant Logs/Tracbacks
No response

Your recommendations fixed the llama_index error...
But now I'm getting this error:
"ModuleNotFoundError: No module named 'llama_hub'"
FYI: the app is deployed on Streamlit; here's my requirements.text:
llama-hub
llama-index
langchain
streamlit
bs4
html2text
openai
tiktoken
faiss-cpu
hyperlink

The llama_hub not found error resolved with a Streamlit app reboot...
Now getting this error:
ModuleNotFoundError: No module named 'googleapiclient'
FYI that this is the Llama Index sample I'm attempting to build:
https://github.com/emptycrown/llama-hub/blob/main/llama_hub/tools/notebooks/google_calendar.ipynb

you'll need to add googleapiclient to your reqs as well

did u resolve it? i have same issue as well

@aizzataffero I think solutions for both issues in this thread work. Have you tried them?

I am getting this error message but when i run pip install llama_index the requirement is already satisfied
import llama_index
ModuleNotFoundError: No module named 'llama_index'

Use a fresh venv, and make sure you have no files or folders named llama_index
python -m venv venv
source venv/bin/activate
pip install llama_index

If you use VScode and Anaconda, you can try:

Open the cmd outside VScode
Activate the virtual environment you created in the cmd
Pip install the package
Use "pip show llama_index" to valid
You will see:

Then fresh your VScode and use the correct Python Interrept
Over!


Display readme file if available

Display a readme file if it exists under the root of the current reference.
Visual

Solves: #3410


NTR: Normal F-actin level in actomyosin contractile ring in early mitosis

Normal F-actin level in actomyosin contractile ring in early mitosis
author request
figure 4A  PMID:29343550

seems like there ought to be a has_part link ... I'll look into it next time I'm editing

Another question, about the first requested term: can "early mitosis" be narrowed specifically to prophase and/or metaphase? If not, I can still add the term but it wouldn't get a logical def.

I don't think so  ...I think people often use this for everything up to chromosome segregation
(can you define as  prophase or metaphase?)

(can you define as prophase or metaphase?)

In text, yes, but if it's even possible to do in a logical def I don't know how. It's not a big deal to have one more term without a logical def in the meantime.

OK, I'm mailing Alaina Willet in a minute so I'll ask if it can be more specific.

can't be more specific

normal F-actin level in actomyosin contractile ring during early mitosis FYPO:0006352
For FYPO:0002177, I've added a has_part link to FYPO:0001315 (normal veg morph). Shout if you see any weird term suggestions - I suspect odd inferences were the reason I haven't included a logical def for FYPO:0002177, so we should keep an eye out for anomalies.
edit file: 0cc5c1528aab2fe6026e396f5dbc316b8551b6da
release: 2a31420dccd2a91049fc411397242105f865590b


Move away from WPF text view connection listener.

Had to add a new NuGet feed to access latest VS bits.
Updated tests to react to new ITextViewConnectionListener.

#1735

Hold off on reviewing this. Started plugging it into VS for Mac and ran into some issues that will change the way this PR goes in.

Hold off on reviewing this.

Too late bruh

Tell me all of your problems

This is good for review now 😄


BUG: "--interval value" or "-i 30" doesn't works in docker compose

When I add 3 commands in my docker-compose file one of the 3 doesn't works : --interval value or -i value
The docker-compose looks like :
watchtower:
    container_name: watchtower-home
    image: v2tec/watchtower:armhf-latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    env_file:
      - ./.watchtower.env
    command: ["--cleanup", "--label-enable", "--interval 30"]
    restart: always

The error message is :
... level=fatal msg="flag provided but not defined: -interval 30"
or
... level=fatal msg="flag provided but not defined: -i 30"

Have you tried to format your command line as follows:
command: ["--cleanup", "--label-enable", "--interval", "30"]?
(Note the new arg for the 30 in the list)


feat: nw.from_dict?

In formulaic they do something like this:

they have some dataframe self.data
they then create a pandas dataframe from a dict

I think we need a way to do the same here. For example:
import numpy as np
import pandas as pd
import narwhals as nw
df = pd.DataFrame({'b': [1, 2]})
nw_df = nw.from_native(df, eager_only=True)

other = nw.from_dict({'a': [1,2,3]}, module=nw.get_native_namespace(nw_df))

So like this, you pass nw_df.__native_namespace__() as an argument in the from_dict call, and Narwhals knows to create a nw.DataFrame backed by the right object (here, a pandas dataframe)
I dunno. We don't have the ability to just create dicts from nothing, so we need to slightly depart from the Polars signature, although the top-level Narwhals functions already depart from Polars anyway
anyone got a better API in mind?

one alternative which comes to mind:
other = nw.__compliant_namespace__().from_dict({'a': [1,2,3]})

which doesn't exactly thrill me

I like this the first one more:

other = nw.from_dict({'a': [1,2,3]}, module=nw.get_native_namespace(nw_df))

as we can implement nw.DataFrame.from_dict ourselves, while

other = nw.__compliant_namespace__().from_dict({'a': [1,2,3]})

would require that the native namespace has from_dict function which is not necessarily true (arrow has pa.Table.from_pydict).


Clean-up Release 99.99.99-draft

Tasks

[x] Delete Helm artifact hedera-block-node-99.99.99-draft.tgz from gh-page branch https://github.com/hashgraph/hedera-block-node/tree/gh-pages/charts.
[x] Delete Draft Release for 99.99.99-draft from Releases Section of the Repo.

The next 2 tasks required Admin Access Role to the Block-Node Repo

[x] Deleted Release branch release/99.99 https://github.com/hashgraph/hedera-block-node/branches/all?query=release/99.99
[x] Delete Container image 99.99.99-draft from repo https://github.com/hashgraph/hedera-block-node/pkgs/container/hedera-block-node

Everything is clean now. Thanks @Nana-EC for your help too!!

Tag has been removed!


is it possible to export(record) video from MTIImageView?

Of course, see the demo project "Camera" demo.


🐞 - InputDateRange doesn't switch between two items with same range

Playground Link
https://stackblitz.com/edit/angular-edlp9k-vx84yw?file=src%2Fapp%2Fapp.component.html
Description
Problem: InputDateRange does not switch correct between items with same ranges
https://github.com/taiga-family/taiga-ui/assets/87331898/7d99be02-a7b5-4015-a480-c8d0c7fd7707
Angular version
16.2.12
Taiga UI version
3.83.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Which operating systems have you used?

[X] macOS
[ ] Windows
[ ] Linux
[ ] iOS
[ ] Android

Since InputDateRange use the same mechanics to find activePeriod, as CalendarRange it's need to be reworked to correctly display current active period
Because of InputDateRange use CalendarRange, which destroyed on close, it's necessary to save active period in InputDateRange before CaledarRange closing and pass it before opening


Fixed ActiveRecordObject->save() returning wrong results, Fixed concrete inheritence save-loop-bug

I have added code to ObjectBuilder.php which fixes returning wrong results when performing updates,
and now throwing an exception when trying to update non-existant objects.
Also, 2 bugs in concrete inheritence were fixed:
1.getSyncParent() - now the inherited object stores its parent, and returns the same one when the parent object has been created \ retrieved.
2.Loop-saving when saving parent - a quite massive bug causing 2 parent objects to be saved, due to loop-saving in inherited objects, and extra non-required SQL statements to be performed.

Almost 6 years stale, closing then.

Almost 6 years stale, closing then.


Unable to access folders under my user account folder (like Desktop for example)

SQL Operations Studio Version: sqlops 0.26.7 (723c7cb3bfd80d87fc8a1141632089cd4808495c, 2018-02-16T21:34:47.034Z)
OS Version: Windows_NT x64 10.0.16299
Extensions: none

Steps to Reproduce:

In SQL Operations Studio, click the Restore button to start a Restore task.
In the window that opens, under 'Restore' from choose 'Backup'.
In the Backup file path field, click the '...' button.
In the file dialog that opens try to navigate to C:\Users\<username>

Expected Results:
Folders under C:\Users\<username> should be visible and selectable.
Actual Results:
Folders under C:\Users\<username> (for example: Desktop) are not visible .
Please see screenshot for reference, here: http://www.imgpaste.net/image/WKhuw

@urig Because BACKUP works by specifying a path on the server to save to, that file browser is a remote file browser, showing files on the server and not on your local machine.
Does that explain the missing folders or would you still expect certain ones to be there that aren't?

Thanks @MattIrv. Seeing as the remote server was my local computer, I still would expect to see these folders. Now that I understand it's a remote file browser, I still wonder why it wouldn't show those folders to me - after all I have privileges to see them. Under whose credentials is the remote server accessed?

@urig It should match whatever account SQL Server is running on. Does that account have access to your C:\Users\<username> directory?

I suspect not. Then maybe something in the UI could indicate this?

That makes sense. Looking through our issues I think there are a few other open issues where users don't expect the backup/restore file paths to be remote paths.
I've opened #941 to track that request, so I'll close this issue now. Thanks

Thank you.


How to best clear failed notifications from getNotificationHistory

The onlyFailures option of getNotificationHistory seems very useful to try to recover from missed notifications, but it's still a bit unclear to me how to clear a failed notification from the history if my server managed to successfully process it from the received list.
It's also a bit unclear how to ensure that I don't process a notification failure from the past in such a way that I use the data to overwrite the data from a notification that came after it, such as updating my database with auto-renewing subscription data using the failed notification where a more recent notification was successfully processed by my server with different auto-renewing subscription data.
This is all still very new to me, so my apologies if I'm somehow missing the mark here.

Hello @darvelo if a notification is successfully received by your server during a retry, the value will be removed from the response when onlyFailures is set to true. If your server never receives the notification successfully during the retry period, then the notification will remain in the failure history for the approximately six months that notifications are retained.
For your question about ordering of notifications, generally that would require looking at the signed transaction info and determining based on fields like purchaseDate the order of the underlying purchases. Looking at the signedDate will give you a sense of when the notification was generated (retries for V2 notifications do not change this time) and allow you to order, for a given transactionId, which is the most recent. Note that a notification will always contain, as of the signedDate, the most recent version of a transaction.

Hi @alexanderjordanbaker! So would this mean that, given I have a database table that holds the last seen signedDate for a transaction from App Store Server Notifications, that if I receive a failed notification from onlyFailures with an earlier signedDate than the one I have in my database, that I can ignore and skip processing that notification data?

I decided to do just this, checking the signedDate and only overwriting my database record if the date is newer or if a server notification on that date hasn't been processed yet for that transactionId. This leaves room for the app client to be able to send the transaction first and the notification to update the record afterward, or vice-versa.


latest version (12.0) can't be started because the volume is configured for 11.x

When I get the latest docker image and try to start it in a docker-compose context then I get this error
db_1         | 2019-11-04 12:40:50.304 UTC [1] FATAL:  database files are incompatible with server
db_1         | 2019-11-04 12:40:50.304 UTC [1] DETAIL:  The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 12.0 (Debian 12.0-2.pgdg100+1).`

if I change my docker-compose.yml from
  version: '3'
  services:
    db:
      image: postgres
      volumes:
         - ./tmp/db:/var/lib/postgresql/data

to
version: '3'
services:
  db:
      image: postgres:11.5
      volumes:
        - ./tmp/db:/var/lib/postgresql/data`

Then it gets the previous version (11.5) of postgres and it all works fine.
There seems to be an incompatibility in the DockerHub image between the version and the volume.
When I first got the error I removed all containers, images and volumes and started again from scratch, but I still got the error until I changed to get version 11.5

I can't reproduce the issue
$ docker-compose up -d
Creating network "postgres_default" with the default driver
Pulling db (postgres:)...
latest: Pulling from library/postgres
8d691f585fa8: Already exists
c991029393ff: Pull complete
d104c69c9175: Pull complete
0a7fb105514d: Pull complete
c3d11c21cb77: Pull complete
4536342c5414: Pull complete
435bcefd4e05: Pull complete
36b0869ae6f9: Pull complete
5ac554d17b78: Pull complete
61f0a5a69de4: Pull complete
f3613132ea9e: Pull complete
8d022c339281: Pull complete
29616bd9cc5c: Pull complete
6283090fa09d: Pull complete
Digest: sha256:a4a944788084a92bcaff6180833428f17cceb610e43c828b3a42345b33a608a7
Status: Downloaded newer image for postgres:latest
Creating postgres_db_1 ... done

$ docker-compose logs
Attaching to postgres_db_1
db_1  | The files belonging to this database system will be owned by user "postgres".
db_1  | This user must also own the server process.
db_1  |
db_1  | The database cluster will be initialized with locale "en_US.utf8".
db_1  | The default database encoding has accordingly been set to "UTF8".
db_1  | The default text search configuration will be set to "english".
db_1  |
db_1  | Data page checksums are disabled.
db_1  |
db_1  | fixing permissions on existing directory /var/lib/postgresql/data ... ok
db_1  | creating subdirectories ... ok
db_1  | selecting dynamic shared memory implementation ... posix
db_1  | selecting default max_connections ... 100
db_1  | selecting default shared_buffers ... 128MB
db_1  | selecting default time zone ... Etc/UTC
db_1  | creating configuration files ... ok
db_1  | running bootstrap script ... ok
db_1  | performing post-bootstrap initialization ... ok
db_1  | syncing data to disk ... ok
db_1  |
db_1  |
db_1  | Success. You can now start the database server using:
db_1  |
db_1  |     pg_ctl -D /var/lib/postgresql/data -l logfile start
db_1  |
db_1  | initdb: warning: enabling "trust" authentication for local connections
db_1  | You can change this by editing pg_hba.conf or using the option -A, or
db_1  | --auth-local and --auth-host, the next time you run initdb.
db_1  | ****************************************************
db_1  | WARNING: No password has been set for the database.
db_1  |          This will allow anyone with access to the
db_1  |          Postgres port to access your database. In
db_1  |          Docker's default configuration, this is
db_1  |          effectively any other container on the same
db_1  |          system.
db_1  |
db_1  |          Use "-e POSTGRES_PASSWORD=password" to set
db_1  |          it in "docker run".
db_1  | ****************************************************
db_1  | waiting for server to start....2019-11-04 17:06:07.180 UTC [44] LOG:  starting PostgreSQL 12.0 (Debian 12.0-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1  | 2019-11-04 17:06:07.307 UTC [44] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1  | 2019-11-04 17:06:07.943 UTC [45] LOG:  database system was shut down at 2019-11-04 17:06:03 UTC
db_1  | 2019-11-04 17:06:08.019 UTC [44] LOG:  database system is ready to accept connections
db_1  |  done
db_1  | server started
db_1  |
db_1  | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
db_1  |
db_1  | waiting for server to shut down....2019-11-04 17:06:08.079 UTC [44] LOG:  received fast shutdown request
db_1  | 2019-11-04 17:06:08.139 UTC [44] LOG:  aborting any active transactions
db_1  | 2019-11-04 17:06:08.144 UTC [44] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
db_1  | 2019-11-04 17:06:08.144 UTC [46] LOG:  shutting down
db_1  | 2019-11-04 17:06:08.918 UTC [44] LOG:  database system is shut down
db_1  |  done
db_1  | server stopped
db_1  |
db_1  | PostgreSQL init process complete; ready for start up.
db_1  |
db_1  | 2019-11-04 17:06:09.064 UTC [1] LOG:  starting PostgreSQL 12.0 (Debian 12.0-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
db_1  | 2019-11-04 17:06:09.065 UTC [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
db_1  | 2019-11-04 17:06:09.065 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1  | 2019-11-04 17:06:09.181 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1  | 2019-11-04 17:06:09.689 UTC [53] LOG:  database system was shut down at 2019-11-04 17:06:08 UTC
db_1  | 2019-11-04 17:06:10.135 UTC [1] LOG:  database system is ready to accept connections

I'd have to think it's a lingering volume for that error

latest version (12.0) can't be started because the volume is configured for 11.x

That is how postgres works, you must do an upgrade to move between major versions.  https://github.com/tianon/docker-postgres-upgrade is a good example of how to move from one to the next.


New feature: graphql-deduplicator

Feature requested in #174
this PR adds support for graphql-deduplicator: "A GraphQL response deduplicator. Removes duplicate entities from the GraphQL response."
Currently graphql-deduplicator has no types (I'll try to add a PR in the future).
A new option called deduplicator (for the interface Options) is a boolean that indicates whether or not is the deduplicator available in the Apollo server, by default is true, then the client only needs to send the header X-GraphQL-Deduplicate to get the deduplicated response data, that header will do nothing if deduplicator is set as false in the server

Awesome @lfades! It'd be great if you could add a TS typing too, just so that others did not create issue reports and the maintainers did not have to return to this. Also mentioning deduplicator in README will be helpful.

README updated, a question came to me, should we export the deflate method from graphql-deduplicator in graphql-yoga so users don't need to add another dependency to import the method in the client ?

Types are ready now, I'm still missing the implementation for lambda that I hope is not different cause I've never used lambda before.

Thanks a lot for that great PR @lfades. Please rebase the README.md file and let me know as soon as this feature is also supported for the Lambda variant.

Done 👍

:tada: This PR is included in version 1.13.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Research + prototype rendering quality lighting improvements

A variety of WebGL rendering improvements could be added beyond the regular lighting implemented by iTwin.js.  This could result in a more appealing rendering.
Consider:

Path tracing (Approximation of various advanced lighting techniques):

https://en.wikipedia.org/wiki/Path_tracing
https://madebyevan.com/webgl-path-tracing/
Downside: Could be grainy while navigating view until image settles.  Could experiment with various settings to avoid this.  (Regular lighting until view is done moving?)
Consider performance.

Screen space reflections (Approximates surfaces bouncing light in a single pass):

https://threejs.org/examples/webgl_postprocessing_ssr.html
(This sample uses water largely, but various surfaces could have a reflectivity property, and all could have a baseline value) https://lettier.github.io/3d-game-shaders-for-beginners/screen-space-reflection.html

Search for other candidate techniques to improve rendering.

PBR materials is the standard.

PBR materials is the standard.

@pmconne - @eringram was going to take a look at researching any decently performant WebGL techniques that could improve rendering quality by more realistically lighting a scene.  A few of the ones I found are listed above.  PBR materials could definitely be the avenue for defining a reflectivity property some techniques would use; also a possibility to default some small basic reflectivity property to make lighting more realistic in general. Please provide any feedback you have as well.

@markschlosseratbentley I don't think we should build further enhancements atop our current hacked-together lighting system. PBR has become the standard for realistic lighting - if we want more realistic lighting, we should implement PBR first. That also would immediately improve our compatibility with other data sources (glTF, 3d tiles, DGN materials, Revit, etc).

Agree with @pmconne , but that doesn't need to block this project for @eringram . I'd suggest researching and prototyping in Three.js or any WebGL framework that has PBR implemented already. You can use https://developer.bentley.com/apis/mesh-export/ to create glTF files from iModels to get representative test data (though keep in mind this is a static rather than HLOD format, so you need to pick smaller iModels or export a subset).

@pmconne @mgooding Thank you both for your feedback.
@eringram Matt's suggestion above sounds good to me - this would become more of a project to evaluate what aspects of PBR are most readily able to be implemented to iTwin.js.

TODO:

[ ] Export a sampling of real iModels to glTF.
[ ] Render using effects in Three.js / standalone WebGL examples (SSR effect, etc.)
[ ] Decide if the effects result in a good rendering of the variety of datasets.
[ ] Consider implementing the best effects in iTwin.js as an implementation of the relevant PBR property.


DDL emitted for integer primary keys isn't valid with Redshift

Hi there,
If you run something like this code:
from sqlalchemy import create_engine, Table, Column, Integer, MetaData

def create_table(engine):

    tablename = 'temp_foo'
    id_col = Column('id', Integer, primary_key=True)
    value_col = Column('value', Integer)

    metadata = MetaData(bind=engine)

    table = Table(tablename,
                  metadata,
                  id_col,
                  value_col,
                  prefixes=['TEMPORARY'])
    table.create(engine)

    return

You'll get an exception like this:
sqlalchemy.exc.NotSupportedError: (NotSupportedError) Column "temp_foo.id" has unsupported type "serial".
'\nCREATE TEMPORARY TABLE temp_foo (\n\tid SERIAL NOT NULL, \n\tvalue INTEGER, \n\tPRIMARY KEY (id)\n)\n\n' {}
I'm seeing this with sqlalchemy 0.8.3.  I think your redshift dialect is inheriting the default Postgres/psycopg behavior, which doesn't work since SERIAL isn't a supported Redshift datatype.
It works fine if you use a Char or something for your primary key.  (Or just create the table externally and simply refer to it.)
Thanks,
Mike

can confirm that this is fixed in https://pypi.python.org/pypi/sqlalchemy-redshift/0.1.0

I'm seeing a similar problem with SQLAlchemy (1.0.6) and sqlalchemy-redshift (0.1.1), but with mapping rather than table creation. I have created the table in Redshift directly like so:
create table if not exists companies (
    id bigint identity primary key,
    name varchar(1024) not null
);

and mapped it like so:
Base = declarative_base()
class Company(Base):
    __tablename__ = 'companies'
    id = Column(BigInteger, primary_key=True)
    name = Column(String)

then when I make and create a company:
company = Company(name = ACME)
session.add(company)
session.commit()

I get this error:
sqlalchemy.exc.StatementError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (sqlalchemy.exc.ProgrammingError) (psycopg2.ProgrammingError) relation "companies_id_seq" does not exist
[SQL: 'select nextval('"companies_id_seq"')'] [SQL: u'INSERT INTO companies (id, name) VALUES (%(id)s, %(name)s)'] [parameters: [{'name': 'Acme'}]]
Clearly the code is expecting an auto-incrementing sequence, but that doesn't work with Redshift. Any suggestions would be much appreciated.

@wgillett I ran into this same problem, and found a workaround that might work for you--
If you specify that your insert is inline, then SQLAlchemy won't try to hit the DB beforehand to get the sequence value, and will just omit the id unless it is specifically passed as a parameter. This is a side-effect of inline, so not ideal, but seems to work...
my_declarative_model.__table__.insert(inline=True).values(**kwargs)

Redshift is not compatible with session.add() where you don't know the primary_key in advance. I use a client generated UUID for my primary keys where I need to be able to relate them

Thanks @karmel and @graingert. Client-generated UUID should work for my use case.


fixing a wrong check of RollingCharBuffer

Description

The method code is as follows:
'  public int get(int pos) throws IOException {
...
final int readCount = reader.read(buffer, nextWrite, toRead);
if (readCount == -1) {
end = true;
return -1;
}
'
When readCount fails, it can return 0. This value should aslo be checked.

Do you have a test that replicates the bug to verify its fixed?


Documentation: added running pro tips

gents, can I get a quick OK here pls :beer:

@ledm you happy with them changes? Let's plug it in :beer:

I'm happy with text - just wish there were more pro tips! Should we try to get the pros to add more? @mattiarighi @bouweandela @jvegasbsc, and handy tips and quality of life improvements for using ESMValTool?
Also, any idea why is it failing circleci?

yeah r-lintr =2.0 is super strict, see #1355
Let's get this one now and wait for the so-called pro's to get off their cloud :rofl:

good call @bouweandela

ok @bouweandela le done :beer:

@bouweandela gentle reminder :fist_oncoming:

Please address the suggestions above.

@valeriupredoi Could you have a look at this? It would be good to get this one merged.

Will do in the am today, mate :beer:

all yours @bouweandela :beer:

should probably close https://github.com/ESMValGroup/ESMValCore/pull/326 via this too

and https://github.com/ESMValGroup/ESMValCore/issues/232 as well

K, shall we get this bad boi in and close those issues? :beer: