Avoid emitting YAML back-references in kpt fn output

Avoid using YAML refs because many YAML parsers in the k8s ecosystem don't support them.
Without this change, a typical output from a kpt fn run might look like this:
apiVersion: v1
kind: ResourceList
metadata:
  name: output
items:
- apiVersion: v1
  kind: Foo
  metadata:
    name: bar
  spec:
    array: &ref_0
    - &ref_1
      baz: 1
results:
- message: something is wrong
  severity: error
  resourceRef:
    apiVersion: v1
    kind: Foo
    namespace: ''
    name: bar
  file: {}
  field:
    path: spec.array
    currentValue: *ref_0
    suggestedValue:
    - *ref_1
    - baz: 3

The usage of &ref_0 and *ref_0 breaks many YAML parsers that don't implement that YAML feature.

@dflemstr I didn't know about refs before so thanks for bringing attention to them. I think back references fit very well with Don't Repeat Yourself principle. This seems like something that should will default in yaml parsers in 2-3 yrs, esp since js-yaml already defaults noRefs to false. WDYT? Is this accurate?
If so, we should track an issue to revisit this before v1.0.0 release.

@prachirp I agree that in principle anchors/back-references have some benefits in that they do aid in DRY. In practice, this seems to be one of the obscure features in the YAML spec that even many popular YAML parsers have a hard time supporting correctly.
For example, one of our tools is using the Jackson library and is hitting this bug: https://github.com/FasterXML/jackson-dataformats-text/issues/98. Despite many attempts to fix it, it seems that even the most popular Java YAML parsing libraries, Jackson and SnakeYAML, both still have trouble supporting this feature.
I'm not sure if I'd expect this situation to change any time soon.  And, especially since kpt function ResourceLists are supposed to be machine readable, I would vote for applying the Robustness Principle in this case!

@frankfarzan would you have a chance to take a look at this? :)

@frankfarzan done!


Bot keeps trying to update nicknames

Bug Report
While looking at the logs for something else, I noticed that the bot kept trying to update the nickname of a given player.
This implies that the nickname wasn't being updated correctly.
Steps to Reproduce
Unknown at this time.
Expected behavior
The bot should only update the user's nickname if it's different.

This issue is resolved in version 2.5.2


Resurrect IDE support (VSCode + HLS)

With these two files in place, the skeleton works seemlessly on VSCode
with the Haskell plugin that uses haskell-language-server (the extension
downloads it as a static binary).
Just start vscode as nix-shell --run "code .", or use the Nix Env Selector VScode extension (we can automate this by adding a .vscode folder).

I have:

[x] Based work on latest develop branch
[x] Looked for lint in my changes with hlint . (lint found code you did not write can be left alone)
[x] Run the test suite: $(nix-build -A selftest --no-out-link)
[ ] (Optional) Run CI tests locally: nix-build release.nix -A build.x86_64-linux --no-out-link (or x86_64-darwin on macOS)

The old attempt at this used ob shell to extract the ghci flags, which requires far fewer nix shell rebuilds than this way.

At this point there is no official support for IDEs but if it works, great. Like @kmicklas said there are better ways to obtain a proper shell. And that also happens to be why I deleted shell.nix because there isn't a single correct answer to what it should contain. ob shell should be sufficient for the average case and you often want nix-shell -A ghc.package to work but that doesn't work if there is a shell.nix present.

The problem with ob shell is that it wouldn't work with VScode remote (ssh), unless we fork the Nix Env Selector extension and have it run ob shell manually.

#762 would solve the issue of ob shell since it would become pure nix. Running ob shell -- code . should work no?

@srid In general: we're happy to take PRs that add clean, general-purpose features, and if they help with IDE support, that's great. However, we don't have the resources right now to keep integration with a specific IDE working.  For instance, how would this PR get CIed?

@ryantrinkle For CI, you would run nix-shell --run haskell-language-server and expect it to succeed, after having put the static binary from here in path (or you can get HLS from latest nixpkgs). It will process all Haskell source files, and fail if any of them fail to process.
I'll close the PR though; as it looks like the goal here is to use ob shell rather than shells.ghc. If #762 gets resolved, I'll consider opening a PR with CI testing.


Infinite hang running spack

Describe the bug
The spack program gets stuck in an infinite loop whilst doing the topological sort in the chunking phase.
Input code
MVP: https://github.com/tmpfs/metamask-extension/tree/swc
I use yarn link to run against my local versions of @swc/core and @swc/cli.
First run yarn setup then try to compile everything in ui with npx spack.
You will need to be building using all the PRs I submitted over the past couple of days to get past earlier errors and reproduce this, if you want this branch has them all: https://github.com/tmpfs/swc/tree/develop.
Config
{
  "jsc": {
    "parser": {
      "syntax": "ecmascript",
      "jsx": true,
      "dynamicImport": false,
      "privateMethod": false,
      "functionBind": false,
      "exportDefaultFrom": false,
      "exportNamespaceFrom": false,
      "decorators": false,
      "decoratorsBeforeExport": false,
      "topLevelAwait": false,
      "importMeta": false
    },
    "transform": null,
    "target": "es2016",
    "loose": false,
    "externalHelpers": false,
    "keepClassNames": false
  }
}

const path = require('path');
const { config } = require('@swc/core/spack')

module.exports = config({
  entry: {
    'main': __dirname + '/ui/index.js',
  },
  output: {
    path: path.join(__dirname, "builds", "ui"),
  },
  module: {},
});

Expected behavior
I expect the program to complete and generate a bundle.
Version
HEAD (with recent bug fixes)
Additional context
I stepped through and am certain the problem lies in toposort_real_module_ids() but I don't have a clear enough mental model of the code to be able to fix this. In particular, these are the lines that create the infinite loop: https://github.com/swc-project/swc/blob/master/bundler/src/modules/sort/chunk.rs#L217-L226.
If you comment out those lines then the program proceeds to the finalize() phase and completes.

Note that the earlier code here: https://github.com/swc-project/swc/blob/master/bundler/src/modules/sort/chunk.rs#L194-L203 is also potentially problematic although it is not the culprit in this case.
I think it would be preferable to refactor this function to avoid VecDequeue and the current pop / push logic but don't understand the code well enough to know what a solution might look like.

We have been looking into this a bit more and determines that this file as an entry point will cause the issue: https://github.com/tmpfs/metamask-extension/blob/develop/ui/pages/swaps/exchange-rate-display/exchange-rate-display.stories.js
Hopefully this may help you narrow down the problem.

Seems like infinite hang is fixed by https://github.com/swc-project/swc/pull/1739 and the patch is already published.
But I got a different error.
(node:97887) UnhandledPromiseRejectionWarning: Error: load_transformed failed

Caused by:
    0: Bundler.load() failed
    1: Bundler.loader.load(/Users/kdy1/projects/metamask-extension/node_modules/unicode-confusables/data/confusables.json) failed
    2: failed to load json file at /Users/kdy1/projects/metamask-extension/node_modules/unicode-confusables/data/confusables.json
    3: failed parse json as javascript object: Error {
           error: (
               Span {
                   lo: BytePos(
                       6921159,
                   ),
                   hi: BytePos(
                       6921160,
                   ),
                   ctxt: #0,
               },
               UnterminatedStrLit,
           ),
       }

I opened the corresponding file with vscode, and it shows a warning.
Closing as line ending issue is already reported at https://github.com/swc-project/swc/issues/1754

@tmpfs Reducing the test case would really help

Hi @kdy1, I have reduced it as far as possible here:
https://github.com/tmpfs/spack-infinite-loop-mvp
There is a little bit more information in the README. The interesting thing is that commenting out any of the imports will make the build succeed so this looks like an edge case quite specific to this sort of module graph. Hopefully something about the module graph will point you to the bug!
Anything else I can do to help move this along please let me know :pray:

Thanks!
Cycle detection is always an issue.
I'll fix this soon.

@kdy1, this is awesome, thanks so much. You are amazing :raised_hands:


Supporting Importing of Image Datasets from Snowflake Stages

Adding support for importing image datasets stored from Snowflake stages and DBFS following simple layout and metadata layout.

Also fix CI errors https://github.com/cleanlab/cleanlab-studio/actions/runs/7665091436/job/20890396198?pr=158


setting root Backbone.History.Start not working with cordova?

I recently upgraded from Backbone 1.1.2 to 1.3.3. I noticed that my cordova app stopped working. It couldn't start the router. I tracked it down to Backbone.history.start({root: "/app/"}). When I remove the {root: "/app/"} it starts the router just fine. Before the upgrade adding the root just magically worked even though my cordova app was just at index.html#. What changed? Is there a work around?

I'm not familiar with Cordova specifically, but this is the diff between 1.1.2 and 1.3.3.
It looks like we changed behavior around trailing slashes on root (feel free to look up the pull request if you're interested). Maybe try it without the trailing slash? So /app instead of /app/.

@akre54 Thanks for the reply! I see the changes around trailing slashes in previous commits. I am not sure if that is affecting my issue. It might.
I tried:
Backbone.history.start({root: "/app"})

and
Backbone.history.start({root: "app"})

Both failed at finding the initial route of "". Backbone.history.start returns false. So it's still not working for me.
Truthfully, I don't know much about how cordova web views are different from normal browsers. Here is a good guide to webviews in Cordova:
http://developer.telerik.com/featured/what-is-a-webview/
So when I track the window.location.href in my app I see (iOS):
file:///var/containers/Bundle/Application/DE104444-D1A4-4B41-A144-06ECEBFB4444/AppName.app/www/index.html

When I navigate to a different page:
file:///var/containers/Bundle/Application/DE104444-D1A4-4B41-A144-06ECEBFB4444/AppName.app/www/index.html#more

This is a cross platform app so the web version is also located on my server at myapp.com/app. And for the web I use:
Backbone.history.start({pushState: true, root: "/app/"})

to start the app. This setup is nice because the deeplinks are shared. For example, the cordova app a link to mycustomurl://app/more takes me to index.html#more.  /app is ignored. This is the current behavior in Backbone 1.1.2... which is convenient.
Does that help you understand? I would love to figure this out. Until then I can't upgrade backbone. :(

Sorry -- I'm not super familiar with Cordova. You might have better luck on StackOverflow or a Cordova-specific mailing list / IRC channel.
I could be wrong but I think your root is actually file:///var/containers/Bundle/Application/DE104444-D1A4-4B41-A144-06ECEBFB4444/AppName.app/www/, rather than /app. Our history object uses window.location in several places to determine the canonical location, so you'd probably want to make sure that and your app are in sync.
If there's something we can change in Backbone to make it easier to work with Cordovoa, please let us know. Otherwise I'm going to close this for now.

Thanks for looking into it, Adam. I will post on Stack Overflow.


micro ros with AKX00032 (Arduino Portenta Machine Control - AKX00032)

Hello,
Can I use micro-ros with the board on the link below?
https://store-usa.arduino.cc/collections/new-products/products/arduino-portenta-machine-control?selectedStore=us

For sure, the micro-ROS port for Arduino Portenta should work since they use the same MCU.


Add exportDOM and importDOM for Collapsible Container Plugin

Add the required methods for correct serialization/deserialization of the Container, Title and Content sections of the Collapsible Container Plugin.

@ivailop7 I think there's a failing test in the playground. Run npm run ci-check to replicate the issue:
Error: packages/lexical-playground/src/plugins/CollapsiblePlugin/index.ts(207,31): error TS2554: Expected 1 arguments, but got 0.
ERROR: "tsc" exited with 2.
Error: Process completed with exit code 1.

@ivailop7 I think there's a failing test in the playground. Run npm run ci-check to replicate the issue:
Error: packages/lexical-playground/src/plugins/CollapsiblePlugin/index.ts(207,31): error TS2554: Expected 1 arguments, but got 0.
ERROR: "tsc" exited with 2.
Error: Process completed with exit code 1.

Thank you @thegreatercurve, amended.


Make JS Library for easily using our Bot API

Working on this at https://github.com/RONTheCookie/dboats-api
checklist:

[x] postGuilds method
[x] getUser method
[x] getBot method
[x] publish npm package

https://www.npmjs.com/package/dboats-api


cudnn_cudatoolkit_10: 7.3.1 -> 7.4.2

Motivation for this change
Update cudnn.
[nix-shell:/etc/nixos/nixpkgs]$ nix-review rev e29e315c5f92aa4d1544f231fc3750da52eb63f8
$ git fetch --force https://github.com/NixOS/nixpkgs master:refs/nix-review/0
$ git worktree add /home/lulu/.cache/nix-review/rev-e29e315c5f92aa4d1544f231fc3750da52eb63f8/nixpkgs 6670b4c37d4acfd4c2149fd60356d2d88c3ae4ef
Preparing worktree (detached HEAD 6670b4c37d4)
HEAD is now at 6670b4c37d4 Merge pull request #58419 from flokli/ldap-nslcd-startup
$ nix-env -f /home/lulu/.cache/nix-review/rev-e29e315c5f92aa4d1544f231fc3750da52eb63f8/nixpkgs -qaP --xml --out-path --show-trace
$ git merge --no-commit e29e315c5f92aa4d1544f231fc3750da52eb63f8
Updating 6670b4c37d4..e29e315c5f9
Fast-forward
 pkgs/development/libraries/science/math/cudnn/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
$ nix-env -f /home/lulu/.cache/nix-review/rev-e29e315c5f92aa4d1544f231fc3750da52eb63f8/nixpkgs -qaP --xml --out-path --show-trace --meta
$ nix build --no-link --keep-going --max-jobs 32 --option build-use-sandbox true -f /home/lulu/.cache/nix-review/rev-e29e315c5f92aa4d1544f231fc3750da52eb63f8/build.nix
[6 built, 30 copied (251.6 MiB), 91.7 MiB DL]
3 package were build:
cudnn_cudatoolkit_10 python27Packages.tensorflowWithCuda python37Packages.tensorflowWithCuda

Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

ping @mdaiter

I approve! Good work, and thanks for updating this @sveitser .
Just to ensure (because I don't have access to a Nix machine atm), you tested this, right? As long as it builds, it looks good to go.

Yes tested with tensorflow.

@sveitser merge it on in then!


Support legacy (v4) listing index and other refactorings

This PR comes AFTER #1675 is merged (as it builds on top of it).
Contains following changes:

support legacy (v4) listing index when consumed from other peers
separate Testnet and Mainnet currencies in CurrencyDictionary
bug fix which restores lost significant figures when doing math w custom divisibility
make CurrencyDictionary more mutation-safe

Coverage increased (+1.02%) to 39.123% when pulling 12a8a50f49e66e9d4792fb153c5e5a6f3b2b44f9 on numprec_improvements into 4ba53f7d61daf6b7bdf55f44e7ec30de246a6fa7 on ethereum-master.


got nothing string output

Platform
Linux
Steps to Reproduce
1  install
2 add to code
3 run
4 get nothing
Expected Result
get some text output
Actual Result

when using tesseract

@thedtvn,
Really sorry for delay.
Could you try execute this code in DEBUG mode, for example:
import logging

import aiopytesseract

logging.basicConfig(level=logging.DEBUG)
# DEBUG:aiopytesseract:aiopytesseract command: 'tesseract stdin stdout --dpi 300 --psm 3 --oem 3 -l eng txt'
aiopytesseract.image_to_string('tests/samples/file-sample_150kB.png')
'Lorem ipsum\n\nLorem ipsum dolor sit amet, consectetur adipiscing\nelit. Nunc ac faucibus odio.\n'

Copy the command and execute in another terminal
cat tests/samples/sample_150kB.png | tesseract stdin stdout --dpi 300 --psm 3 --oem 3 -l eng txt
Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Nunc ac faucibus odio.

What's your output? It was as expected?

some random char and nuber to bypass capcha

I think that you need include some step to pre-process image before submit to Tesseract. Try something like:

pypillowfight: https://gitlab.gnome.org/World/OpenPaperwork/libpillowfight
scikit-image: https://scikit-image.org

I think that you need include some step to pre-process image before submit to Tesseract. Try something like:

pypillowfight: https://gitlab.gnome.org/World/OpenPaperwork/libpillowfight

scikit-image: https://scikit-image.org

ye i think so


Fix all code style issues detected by new version of Flake8

This PR fixes this errors.
They started to appear after Flake8 3.6.0 was released.

Thanks. For anyone else viewing this, we typically don't merge style changes, but since it looks like this is addressing issues with the stylecheck that's run during CI already, I'll merge it.


nil pointer dereference in isServiceReferencedByAnyIngress

Bug report from @evmimagina (copied from https://github.com/Azure/application-gateway-kubernetes-ingress/issues/629):

Hi,
I'm think I'm affected by the same bug;
I1026 17:20:54.020027       1 process.go:171] END AppGateway deployment
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x11e3897]
goroutine 135 [running]:
github.com/Azure/application-gateway-kubernetes-ingress/pkg/k8scontext.(*Context).isServiceReferencedByAnyIngress(0xc00012b880, 0xc0005881f8, 0xc000312660)
/home/vsts/work/1/s/gopath/src/github.com/Azure/application-gateway-kubernetes-ingress/pkg/k8scontext/context.go:458 +0x107
github.com/Azure/application-gateway-kubernetes-ingress/pkg/k8scontext.(*Context).IsPodReferencedByAnyIngress(0xc00012b880, 0xc00057c000, 0xc000531c40)
/home/vsts/work/1/s/gopath/src/github.com/Azure/application-gateway-kubernetes-ingress/pkg/k8scontext/context.go:232 +0x85
github.com/Azure/application-gateway-kubernetes-ingress/pkg/controller.AppGwIngressController.ShouldProcess(0x16f5ac0, 0xc00026be70, 0x16f7240, 0xc0002a84e0, 0x0, 0x0, 0xdf8475800, 0xd18c2e2800, 0x3, 0x6fc23ac00, ...)
/home/vsts/work/1/s/gopath/src/github.com/Azure/application-gateway-kubernetes-ingress/pkg/controller/should_process.go:26 +0x15e
github.com/Azure/application-gateway-kubernetes-ingress/pkg/worker.(*Worker).Run(0xc0004657a0, 0xc000084fc0, 0xc00008e7e0)
/home/vsts/work/1/s/gopath/src/github.com/Azure/application-gateway-kubernetes-ingress/pkg/worker/worker.go:37 +0x17d
created by github.com/Azure/application-gateway-kubernetes-ingress/pkg/controller.(*AppGwIngressController).Start
/home/vsts/work/1/s/gopath/src/github.com/Azure/application-gateway-kubernetes-ingress/pkg/controller/controller.go:65 +0x1bb
The thing is, the first time I deploy my app on the K8s cluster, everything works fine... once I deploy a new release of the app this error starts to happen. Seems that I can only fix it recreating the Gateway.
How can I install it once it's available?
thanks,

@evmimagina You have ran into an interesting edge case it seems - could you please open a new issue (so we can keep track of what you observed separately).
Would you be able to share with the following:

what version of the AGIC you are using (helm list would tell us this)
would you be able to provide a sanitized versions of your Ingress and Service kubernetes resources?

It looks like we are running into a situation where we are making unsafe assumptions about a pod or a service struct existing, but it is hard to tell without the context above. Thanks!

Hi Draychev,
The thing is, it's not happening anymore. I've recreated everything and it seems to be working now. I guess it was something I did wrong? anyway, we can close the issue.
thanks for looking into that.
Best regards,

@evmimagina closing this issue. Please feel free to reopen it if you encounter it again.


Update orbit.chat

Forward orbit.chat domain to whatever is the latest release form this repo.
This fixes #28, #9 and #8

Done!


Does not parse missing semicolon

Script reports not converting due to parse error on missing semicolon.

as3 code for example:
package {
    Sprite
    public class Issue53 {
    }
}


Update MQTTKeywords.py suites to repair a messages abandoning deficiency

This code (self._messages[topic] = []) in "subscribe" and "listen" will abandon some messages that would not return to scripts when multiple messages received and multiple “subscribe” or “listen” called in very short time.
This modification suites to repair the deficiency above.

Hi @obnjed thanks for the PR. Can you provide a test that reproduces the issue?


Releated issues list have a white hover

What's the issue:
The issues list on the issue creation page have a white hover.
Steps to reproduce:
Install the latest version using the automatic installer with Stylish/Stylus
Screenshots:

What version is affected by this problem:
v2.6.0

Please install the latest version using the userstyle.


What's the best way to edit the document server-side?

The problem I am facing
I'm needing to handle document-side changes when it's live on the hocuspocus server.
However, when changed by the server, it does not trigger the save document events.
The solution I would like
I don't know the best way, but there could be some way to make clearer edits to the ydoc on the server side so that it triggers the main events.
Alternatives I have considered
I'm getting the document directly from the "documents" property of the server

hey @linspw, we have a DirectConnection in Hocuspocus (I'm working on the documentation for this), but it can already be used: https://github.com/ueberdosis/hocuspocus/pull/610
Let me know if that helps 🙏

Thank you very much for this here too @janthurau , it will help a lot!


Use listDocuments to also get refs to empty documents

Fixes #73 . Inspired by https://github.com/willhlaw/node-firestore-backup-restore/pull/55.
See also: https://stackoverflow.com/questions/54287565/firestore-query-for-subcollections-on-a-deleted-document

Thanks @m417z - I used your repo with the branch with this fix, and it solved the problem for me. I hope this request gets added.


Use a common super class for all socket wrappers

This is my approach on the proposed solution for #129
The new superclass is called Celluloid::IO::Socket and essentialy
deduplicates all #to_io methods and many delegates. This allows all
socket wrappers to be created from a raw ruby socket using their default
initializer or the new C::IO::Socket.try_convert method.
I've added some methods for backward compatibility so that code like this doesn't break:
class MyClass
  include Celluloid::IO
  def my_method
    Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
  end
end

Cheers'
Hannes

This looks really good. I'll help where I can with merging and testing. This PR introduces a few new things into the Celluloid namespace. Is there any chance this will break existing code?
Can we also review the errors on Travis?

Hmm, interesting. In general I think it looks good but I might try to leave you some line notes at some point.

@hannesg Can you please address my feedback and then let's get this merged. It's a good idea, the implementation looks fine, I'd like to test it.

The way the try_convert method handles individual socket types in a static switch/case statement is going to bottleneck/undermine the intention of this change.
I'd reference the interface to Celluloid::SystemEvent which allows dynamic handling of different types of object, via the handler block definition at a superclass level, then invocation of that on a subclass level... in this case that'd be converter or the like:
https://github.com/celluloid/celluloid/blob/master/lib/celluloid/system_events.rb#L20

@digitalextremist That handler method looks, on the surface, incredibly inefficient, doing all that string manipulation.

I'm going to merge this and then fix up any remaining issues.

Okay this is now merged and normalised. Thanks so much for your contributions.


Restructuring the repository

The repository is finally being cleaned up, we're working on developing a more professional, streamlined process for commits. Note that this also includes the small changes over the break..

As repository maintainer, I'll be overwriting approval for the next few commits until the repository is in a better condition. I'm leaving this here as a note for future maintainers.


Appstudio update mvp-test-component

Pipelines as Code configuration proposal

Pipelines as Code CI/mvp-test-component-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
18 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
15 seconds
sanity-inspect-image

✅ Succeeded
13 seconds
deprecated-base-image-check

✅ Succeeded
58 seconds
clamav-scan

✅ Succeeded
18 seconds
clair-scan

✅ Succeeded
9 seconds
sbom-json-check

✅ Succeeded
16 seconds
sanity-optional-label-check

✅ Succeeded
15 seconds
sanity-label-check

✅ Succeeded
5 seconds
show-summary


Cannot read properties of undefined (reading 'getRoomMember')

When we using PadLocal puppet, call stop() then call start() again, we will get this error:

12:54:00 ERR Config process.on(unhandledRejection) promise.catch(13 INTERNAL: Cannot read properties of undefined (reading 'getRoomMember'))

It's because we set  this._cacheMgr to undefined in stop():
https://github.com/wechaty/puppet-padlocal/blob/a4b04b723fc4f75d08596a2952e08f4b5037983c/src/puppet-padlocal.ts#L297-L298
but there's no initialization code in start():
https://github.com/wechaty/puppet-padlocal/blob/a4b04b723fc4f75d08596a2952e08f4b5037983c/src/puppet-padlocal.ts#L140-L142
So when we call start() again, the _cacheMgr will be undefined and we will run into this issue:
https://github.com/wechaty/puppet-padlocal/blob/a4b04b723fc4f75d08596a2952e08f4b5037983c/src/puppet-padlocal.ts#L1361-L1362
Related issue

https://github.com/wechaty/friday/issues/106

Current implementation may be right logically. The _cacheMgr will be re-inited at https://github.com/wechaty/puppet-padlocal/blob/a4b04b723fc4f75d08596a2952e08f4b5037983c/src/puppet-padlocal.ts#L259-L272
So the process:
start -> begin login -> login done(setup _cacheMgr) -> ... -> stop(teardown _cacheMgr) -> ... -> start
The real problem is: getRoomMember  has been called after stop, but before login done. And any api has to be called while user is signed on, the behavior is undefined without an valide user session.
Even if we fix this issue by moving  this._cacheMgr = new CacheManager(userId); into '_startClient', the logic is also broken.
@huan I think it's better to manage api call against bot state at Wechaty engine level.

I have read your message and have been wondering whether we can use a quick workaround for this problem?
For example, can we just return a empty array when the cache manager is not initialized:
-    let ret = await this._cacheMgr!.getRoomMember(roomId);
+    let ret = await this._cacheMgr?.getRoomMember(roomId) || [];

I think an empty return is acceptable before the bot logged in.

Nice suggestion! And workaround has been applied.


Show Asset Details from transfer screen

Description

Each so called "spending asset" can be clicked and display its details with the already existing Asset Dialog.
The clickable area for NFTs is the whole box, but for fungibles it is only the icon and the text since the rest is the area that needs to focus the text field.
In order to invoke the dialog we need to also pass the fromAccount.address which is the account these assets belong to and are being prepared to transfer somewhere else.

How to test

Do a transfer with multiple assets, fungibles, NFTs, LSUs, Pool Units and claims.
Click on them
The amount displayed in the dialog for fungibles, is the owned amount the from account owns.

Video

PR submission checklist

[X] I have tested account to account transfer flow and have confirmed that it works

Works like a charm. Good job! I didn't expect this to be so quick & easy :))

The dialog's params makes it so easy tbh. The input is decoupled from how each screen and its models are defined.

t work, not sure if those should be part of this PR or
Thanks @jakub-rdx will take care of them now.

@jakub-rdx Will merge this and will follow up with a different PR that will handle all different cases across screens according to latest conversations.


Does this support async validation & file inputs?

Hi! First, this library looks amazing. I was wondering about 2 things:

Is async validation supported? For example: Sometimes zod validation isn't enough, and we need server-only validation that does a DB call. https://www.remix-validated-form.io/async-validation
Is it possible to make this work with file inputs?

Hey, @vedantroy! Thanks for creating this issue :smile:
The short answer is yes to both questions. Here's the long answer:
Async validation

I created an example of the quick and dirty way of doing it with async refine on the schema. The downside is that it runs your async validation for every field. I don't recommend this unless it's a very simple form or a prototype you want to validate quickly.

You can also do that by creating a 100% custom input and taking control of its onChange and onBlur events. The downside is that you'll have to render the custom errors yourself, similarly to the example you sent. You can access the regular validation errors through the errors prop in Field's children render function. You can also access the Errors component from there.

The most robust way to achieve that, I think, would be to create a custom resolver for your form and pass it to Remix Forms. But I don't know if many people would want that, so I haven't implemented a way of passing a custom resolver yet. Would this be something you'd use?

File inputs
We don't have any special API for dealing with file uploads, but I believe we don't need any. Since file inputs don't offer much in terms of validation, you can omit them from your schema, render them directly on the form, and follow Remix's way of dealing with uploads, like this:
const schema = z.object({
  firstName: z.string().nonempty(),
  email: z.string().nonempty().email(),
})

const mutation = makeDomainFunction(schema)(async (values) => values)

export const action: ActionFunction = async ({ request }) => {
  // Create your custom upload handler
  const uploadHandler = unstable_createFileUploadHandler({
    maxFileSize: 5_000_000,
    file: ({ filename }) => filename,
  })

  // Don't forget to clone the request: formAction will need to use the original later on
  const clonedRequest = request.clone()

  // Get the multipart form data with the upload
  const formData = await unstable_parseMultipartFormData(
    clonedRequest,
    uploadHandler,
  )

  const file = formData.get('attachment')

  // Do something with the file
  console.log({ file })

  return formAction({
    request,
    schema,
    mutation,
    successPath: '/success',
  })
}

export default function Component() {
  return (
    <Form schema={schema} encType="multipart/form-data">
      {({ Field, Errors, Button }) => (
        <>
          <Field name="firstName" />
          <Field name="email" />
          <input type="file" name="attachment" />
          <Errors />
          <Button />
        </>
      )}
    </Form>
  )
}```

PS: we don't like dealing with multipart form data, so we usually do our uploads asynchronously and only send the metadata on the forms. When we do that, we can add the metadadata to the schema and use it inside our domain function :)

Hey, @vedantroy! We just added an example of async validation with custom inputs. Check it out: https://remix-forms.seasoned.cc/examples/forms/async-validation
In the end, it was much easier than I expected :D you could add a pending state to yours, of course, but since the validation will also happen on the server, I didn't think it was necessary.
Also, there is no need for throttling or debouncing, since Remix will cancel the extra requests for us :tada:
I'm closing this issue, but feel free to reopen it if you need anything else.
Thank you so much for creating this issue!


[docker] [regression] update routine load p0 cases

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall

close this pr


need help with openai api

error: Invalid value
The API returned an invalid response: You exceeded your current quota, please check your plan and billing details.
I have to pay for a subscription or just create a new account? The bot worked fine with my account before. Thanks in advance.

Yes, you must pay for the continued OpenAI API costs to keep using the bot long term. Once your demo quota runs out you'll have to add a payment method to your OpenAI account.

You do not have to pay for a subscription, you need to add a payment method added though because using chatgpt's api costs money


make image gallery as custom directive

currently, it is hard coded in the post-detail controller

no longer relevant since the new gui was implemented (is already a costum directive in the ned gui)


Release download not working

The Download for the release builds is not working -> http://openlayers.org/download/
br,
1me

I cannot confirm this. Maybe just a temporary issue...

Cannot reproduce either.


Expose a "Charged" status like the PodPoint app does

Is your feature request related to a problem? Please describe.
I'd like to set the colour of a lamp inside my house to show when my Pod Point is actually delivering power.
Describe the solution you'd like
Mirror the current Pod Point app and show a status change from Charging to Charged.
Describe alternatives you've considered
Using the status from my car, but it is not sent reliably - I'd rather be polling the mains powered PodPoint.
Additional context
I've seen that you have considered this feature before, but seeing it in the Pod Point app, perhaps the API reports this state now?
Charged
Your battery is charged or there is a charge schedule set on your vehicle.
PodPoint app Screenshot:

Hi, so the API hasn't changed in this regard, it appears that they are using the same logic as proposed here where we take a guess based on if the delivered charge number increases over time.
I will take a look at this again, but as the integration polls at a 5 minute interval, and doesn't directly store historical data (that is handled transparently by Home Assistant) its non-trivial to do reliably.
I previously had something implemented to do this but found that it introduced a number of bugs. I'll leave the issue open until its either implemented, or there is someone else that wants to take a crack at it :)

Interestingly, I have found a new status in a new api endpoint /connectivity-status
    "connectors": [{
      "id": 1,
      "door": "A",
      "chargingState": "SUSPENDED_EV"
    }],

SUSPENDED_EV could indicate the 'charged' status, I will be investigating further

It's consistent with the text in the Pod Point app:

Charged
Your battery is charged or there is a charge schedule set on your vehicle.

In my case I actually got into that state because the car reached the battery charge percentage limit.


Fix onDidChangeTextEditorSelection firing when the editor is resized

Bug
onDidChangeTextEditorSelection is being fired when the editor window is resized. This does not seem correct since the selection has not actually changed
Fix
Make sure we do not refire this event if the selection as not changed
Fixes #32092

I've update the PR to handle this at a lower level. I believe we only want to fire CursorStateChangedEvent when the model state has changed, not the view state


Many function in netcdf.h do not appear to be in the documentation..

I was looking at the generated documentation and noticed that a number of functions in the netcdf.h
API do not appear -- or are misplaced -- in the documentation. Example nc-_set_chunk_cache.

OK, turns out that nc4cache.c was not in the list of input files in Doxyfile.in. I will submit a PR shortly.
@DennisHeimbigner any other functions other than the cache functions?


SharePointPnP.Modernization.Framework\Transform\PageTransformator.cs missing page data handler for PublishingPage type pages

We have multiple SharePoint online pages and the SharePoint Online publishing pages feature was enabled. When we use either .NET version(https://github.com/SharePoint/PnP/tree/master/Samples/Modernization.PageTransformation ) or PowerShell version(https://github.com/SharePoint/PnP-Tools/blob/master/Solutions/SharePoint.Modernization/Scripts/PageTransformation/TransformPageSample.ps1) page transformation, we all below error

object reference not set to an instance of object

After did a basic investigation of the source code in SharePointPnP.Modernization.Framework project, I found the framework detects our pages as PublishingPage, but when analysis  source page data, it only support WikiPage and WebPartPage type

After that it didn't check whether the pageData object was null and directly call that object. Which result in the 'Object reference not set to an instance of object' exception throw.

Could you please make proper code changes in SharePointPnP.Modernization.Framework\Transform\PageTransformator.cs to add handler to analysis PublishingPage type page data?

Hey Qinyuan,
The page transformation framework currently does not support publishing pages. This is something we have on our roadmap for early next year. In the meantime I'll add a more descriptive error message. Thanks for raising this.

Support for a clean error message was added, closing this one for now


no need to close unopened fauxstream

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@abdb69b). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #83   +/-   ##
=========================================
  Coverage          ?   71.89%
=========================================
  Files             ?      105
  Lines             ?     4416
  Branches          ?        0
=========================================
  Hits              ?     3175
  Misses            ?     1241
  Partials          ?        0

Impacted Files
Coverage Δ

...rces/HTTP/FoundationClient/Client+Foundation.swift
52.17% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update abdb69b...3133b17. Read the comment docs.


QR Code improvements

[ ] SAM
[x] ECI
[ ] FNC1 in 2nd

ECI support added in 0d8c9a1650470d687c9bbb50fc287caff2f6f309.


array_concat_agg and array_agg support for array inputs

Description
This PR adds ARRAY_CONCAT_AGG which can aggregate array inputs together into a single array and improves ARRAY_AGG to support array inputs (if druid.expressions.allowNestedArrays is true).

Function
Notes
Default

ARRAY_CONCAT_AGG(expr, [size])
Concatenates all array expr into a single ARRAY, with size in bytes limit on aggregation size (default of 1024 bytes).   Input expr must be an array. Null expr will be ignored, but any null values within an expr will be included in the resulting array. If the aggregated array grows larger than the maximum size in bytes, the query will fail. Use of ORDER BY within the ARRAY_CONCAT_AGG expression is not currently supported, and the ordering of results within the output array may vary depending on processing order.
null

ARRAY_CONCAT_AGG(DISTINCT expr, [size])
Concatenates all distinct values of all array expr into a single ARRAY, with size in bytes limit on aggregation size (default of 1024 bytes) per aggregate. Input expr must be an array. Null expr will be ignored, but any null values within an expr will be included in the resulting array. If the aggregated array grows larger than the maximum size in bytes, the query will fail. Use of ORDER BY within the ARRAY_CONCAT_AGG expression is not currently supported, and the ordering of results will be based on the default for the element type.
null

Also, two new options to ExpressionLambdaAggregatorFactory have been added, shouldAggregateNullInputs and shouldCombineAggregateNullInputs to both fix a correctness issue with STRING_AGG and ARRAY_AGG when merging results that include nulls, and as an optimization to aggregators that do not need to aggregate anything if any inputs are null.
This PR has:

[x] been self-reviewed.
[x] added documentation for new or modified features or behaviors.
[x] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[x] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[x] been tested in a test Druid cluster.

thanks for review @jihoonson


Use function pointers, and try to load libopenal.so.1 on Linux

When I tried to compile SALAD with Clang and -Wall -pedantic, I got many errors about cast from void * to function pointers.
So, I made the loader functions return a proper function pointer.
I have also added casts from this generic function to the proper function type to each call to loadFunction.
Then, in the second commit, I have changed OPENAL_LIBNAME to an array of strings, like GLAD does.
The reason is that normally runtime packages distribute a library with some version information (i.e., for libopenal1 it is libopenal.so.1).
libopenal.so is a link to the correct version, but it is only in the development packages (e.g., libopenal-dev on Debian/Ubuntu or libopenal-devel on Fedora). But normally users do not have a reason to install these packages.
I have tried these changes only on Linux, not on Windows nor on macOS.

MacOS might have its own kinks on where to put shared libraries so I assume SALAD wasn't working for MacOS in the first place (I might find some folks to test it later though).
Straight up reading the code "head-on" I didn't notice anything that won't work on Windows.

Considering above, all seems good!

Cool, thanks!


Fix getFormatedDateTime() to use current month instead of previous

Fixes: https://github.com/oVirt/ovirt-web-ui/issues/1644
Since the JavaScript Date.getMonth() method returns the month value starting from 0 (0 to 11 range), need to add one when using.
Check for details: https://www.w3schools.com/jsref/jsref_getmonth.asp
Bug-Url: https://github.com/oVirt/ovirt-web-ui/issues/1644
Signed-off-by: Sharon Gratch<EMAIL_ADDRESS>

/ost


Fixes for subscription generics in urql plugin

Related:

https://github.com/dotansimha/graphql-code-generator/pull/4176
https://github.com/dotansimha/graphql-code-generator/pull/4174

@Pytal

Thanks @Pytal !


chore: revert go-database-reconciler to 1.16.1 and go-kong to 0.60.0

What this PR does / why we need it:

Passing enterprise-postgres against <IP_ADDRESS>-rc.5 with go-kong 0.60.0: https://github.com/Kong/kubernetes-ingress-controller/actions/runs/12293996547/job/34308934489
Which issue this PR fixes:
Related: #6823
Special notes for your reviewer:

PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[ ] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

Started validation pipeline against <IP_ADDRESS>-rc.5 once again in https://github.com/Kong/kubernetes-ingress-controller/actions/runs/12295001082


add clear doc to inform customer risk to set api-version other than the latest one

Add an api-version section in SDK readme as following:

For python, write a section to describe how to send directly request via send_request when the api has break change, and the SDK rest call fail.


Saved coordinates do not match original coordinates.

I followed the demo to tile the sample slide. I then tried to use the coordinates used as tile names within OpenSlide.read_region. The tiles I read did not match the tiles saved while pre-processing. I tried switching x and y to address the numpy vs openslide mismatch, but it did not help.
might be related to issues https://github.com/prov-gigapath/prov-gigapath/issues/57 and/or https://github.com/prov-gigapath/prov-gigapath/issues/65

from the demo notebook
image_paths = [
    os.path.join(specific_slide_tiles_dir, img)
    for img in os.listdir(specific_slide_tiles_dir)
    if img.endswith(".png")
]

print(f"Found {len(image_paths)} image tiles")

what I've tried
tile_paths = sorted(image_paths)
tile_file_names = [
    os.path.basename(sample_tile_path) for sample_tile_path in tile_paths
]
coordinates = [
    tuple(
        int(coord.replace("x", "").replace("y", ""))
        for coord in os.path.basename(sample_tile_path).split(".png")[0].split("_")
    )
    for sample_tile_path in tile_paths
]
# choose the coordinates pair with the largest x, given larges x, choose the largest y
# do it in 2 steps to avoid sorting the coordinates
max_x = max(coordinates, key=lambda x: x[0])[0]
max_x_coordinates = [coord for coord in coordinates if coord[0] == max_x]
max_y = max(max_x_coordinates, key=lambda x: x[1])[1]

max_tile_file_name = f"{max_x}x_{max_y}y.png"
assert (
    max_tile_file_name in tile_file_names
), f"Missing tile at coordinates ({max_x}, {max_y})"

print(max_tile_file_name)
plt.imshow(plt.imread(os.path.join(specific_slide_tiles_dir, max_tile_file_name)))

import openslide

# maybe we need to offset the coordinates by the min_x, min_y
min_x = min(coordinates, key=lambda x: x[0])[0]
min_y = min(coordinates, key=lambda x: x[1])[1]
print(f"Min coordinates: ({min_x}, {min_y})")

# does no match the max_x, max_y tile extracted above

sample_slide = openslide.OpenSlide(slide_path)
print(help(sample_slide.read_region))
sample_slide.read_region((min_x, min_y), 5, (256, 256))