Handle SIGTERM

It would be great if the worker/container would gracefully terminate on SIGTERM. Kubernetes can send it e.g. when draining nodes.

To test this I used:
docker run \
  --rm \
  --detach \
  --env W_MODEL=tiny \
  --env W_DEVICE=cpu \
  --env MODEL_BASE_DIR=/model \
  --env DATA_BASE_DIR=/data \
  --name whisper-asr-worker ghcr.io/beeldengeluid/whisper-asr-worker:git-85fa5e3 --service=y
# d0378c37991498afe11038fa8528686cddb754d5ee7caa38fec042b93b75888a
docker ps
# CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS          PORTS     NAMES
# d0378c379914   ghcr.io/beeldengeluid/whisper-asr-worker:git-85fa5e3   "./docker-entrypoint…"   4 seconds ago    Up 3 seconds              whisper-asr-worker
docker container kill --signal=SIGTERM whisper-asr-worker
# whisper-asr-worker
sleep 120 && docker ps
# CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS              PORTS     NAMES
# d0378c379914   ghcr.io/beeldengeluid/whisper-asr-worker:git-85fa5e3   "./docker-entrypoint…"   2 minutes ago    Up About a minute             whisper-asr-worker

Note that SIGINT does work.

@gb-beng would it be possible to use docker stop whisper-asr-worker instead of the kill command? From what I could find, it seems like the standard approach as it first sends SIGTERM, then after 10s it sends SIGKILL. But if kubernetes handles these operations through docker kill, then I'll keep investigating how to handle it because it is taking longer than expected to find a solution
Also, using docker container kill but with the SIGINT signal doesn't work for me (I'm not sure how you tested that)


sj sclone silently fails if it's unable to fork a repo

Describe the bug
A clear and concise description of what the bug is.
When running sj sclone for a repo you're intending to fork with a GitHub access token that doesn't have the correct permissions or hasn't been authorized for SAML hub fork --remote-name=origin will fail with an error, but
https://github.com/jaymzh/sugarjar/blob/c49e8d3f298c6a96b9856cf0d50b84aeebff7e18/lib/sugarjar/commands.rb#L181-L189 assumes if hub fork --remote-name=origin has an error that a fork already exists, which is an incorrect assumption in this case. I believe this should check the error message for existing remote: origin
To Reproduce
Steps to reproduce the behavior including commands and output
$ sj sclone orgname/example-repo
Cloning example-repo...
Setting repo hub.host = github.com
Fork (marc-sensenich/example-repo) detected.
Remotes "origin" and "upstream" configured.

Underlying error message from hub in the SAML enforcement check
$ hub fork --remote-name=origin
Error creating fork: Forbidden (HTTP 403)
Resource protected by organization SAML enforcement. You must grant your Personal Access token access to this organization.
You must authorize your token to access this organization:
https://github.com/orgs/redacted/sso?authorization_request=REDACTED

Expected behavior
A clear and concise description of what you expected to happen.
$ sj sclone orgname/example-repo
Cloning example-repo...
Setting repo hub.host = github.com
Forked example-repo to marc-sensenich
Remotes "origin" and "upstream" configured.

Environment (please complete the following information):

OS: Ubuntu 18.04.5 LTS
Output of sj version

sugarjar version 0.0.9
git version 2.17.1
hub version 2.14.2

It looks like hubs behavior changed. Now it succeeds in that case:
[phil@ldt-hardwired (main) ohai]$ hub fork --remote-name=origin
renaming existing "origin" remote to "upstream"
Updating origin
From ssh://github.com/chef/ohai
 * [new branch]        13-stable            -> origin/13-stable
 * [new branch]        14-stable            -> origin/14-stable
 * [new branch]        15-stable            -> origin/15-stable
 * [new branch]        16-stable            -> origin/16-stable
 * [new branch]        6-stable             -> origin/6-stable
 * [new branch]        7-stable             -> origin/7-stable
 * [new branch]        8-stable             -> origin/8-stable
 * [new branch]        lcg/ruby-3.0         -> origin/lcg/ruby-3.0
 * [new branch]        list_plugins_feature -> origin/list_plugins_feature
 * [new branch]        main                 -> origin/main
new remote: origin
[phil@ldt-hardwired (main) ohai]$ echo $?
[phil@ldt-hardwired (main) ohai]$ git remote remove origin
[phil@ldt-hardwired (main) ohai]$ git remote rename upstream origin
[phil@ldt-hardwired (main) ohai]$ hub fork --remote-name=origin
renaming existing "origin" remote to "upstream"
Updating origin
From ssh://github.com/chef/ohai
 * [new branch]        13-stable            -> origin/13-stable
 * [new branch]        14-stable            -> origin/14-stable
 * [new branch]        15-stable            -> origin/15-stable
 * [new branch]        16-stable            -> origin/16-stable
 * [new branch]        6-stable             -> origin/6-stable
 * [new branch]        7-stable             -> origin/7-stable
 * [new branch]        8-stable             -> origin/8-stable
 * [new branch]        lcg/ruby-3.0         -> origin/lcg/ruby-3.0
 * [new branch]        list_plugins_feature -> origin/list_plugins_feature
 * [new branch]        main                 -> origin/main
new remote: origin
[phil@ldt-hardwired (main) ohai]$ echo $?
0

So, looks like I can just remove that code-branch all-together.

Oh actually the code says that. OK, I'm gonna detect saml specifically, and then use this as a fallback.


python39Packages.regex: 2021.10.8 -> 2021.11.10

Motivation for this change
Bump the regex Python package
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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 wip"
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.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

[x] Fits CONTRIBUTING.md.

commit message should be python3Packages.regex instead of regex

commit message should be python3Packages.regex instead of regex

If you use python39Packages ofborg will build it.

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 145477 run on x86_64-linux 1

1 package failed to build and are new build failure:

home-assistant: log was empty


Rebasing is cumbersome

We lost the file picker, can you please find a way to return it? I was unable to manually update the file path for the SDK SDV tests. The process was cumbersome.
Please follow up with the VS Code team on the failure to provide a mechanism to add a title to the file picker. That is either possible with their API or it is a bug they should fix. It is a significant issue is a file picker comes up with no useful title for users.

Thanks for the feedback. I'll add this to the backlog to investigate in a future milestone. An initial idea to discuss:
The vscode team has a proposed api that gives an inputbox with more control. It has a way to set buttons, so maybe one option is to keep the current inputbox look and add in a button to pop open an open file picker to it, then once the file is selected we can update the string in the input box with the updated file location.
If we go this route we could also add a button to skip mapping the current file and move to the next one, this would allow a user to selectively decide not to map a file vs. the current behavior where once you hit escape it stops asking the user if it can't map a file(you're still able to manually remap a result via the code action light bulb in the editor).

Makes sense. If VS Code is close to shipping a relevant improvement, let's wait for it.
In the meantime, thanks for your offline comments on the feature. I was confused by the UI because it only verifies the path looks valid. It doesn't actually confirm whether the file exists until you hit enter. We might consider doing the file existence check right away. If it exists on disk, shouldn't we just accept it?
After discovering that the file doesn't exists, I see your guidance about providing a file:// uri. I actually tried to update the file path in the first UI (where this guidance doesn't exist).

Note that uriBaseId use greatly simplifies this problem, you just need to query the user to resolve the set of unique uriBaseIds encountered in the file.

Regarding the file existence check on initial value, we do set a validator, but vscode handles when to validate and what to do when we return a message for invalid data. When I checked this in it was working correctly where it would show the invalid redbox and message on the initial value. But it looks like vscode made a change that while it still validates the initial value it no longer shows the invalid message and redbox untill a user hit's enter or changes the value: https://github.com/Microsoft/vscode/issues/52908

in checkin #85 I've updated the user input to use the more customizable input dialog. I've added a button to open a file picker, added a skip to next mapping button, fixed the red box not showing on first load, and removed the file:/// from the UI entirely so the user now just needs to put in a "normal" path ex. d:/folder/file.ext


release 0.3.3

We closed another high priority issue:
https://github.com/ponylang/ponyc/issues/1218
Which means... time for another release. I'll handle it sometime this weekend to do another verification on the release instructions as there were a couple tweeks last time.

#1252 was also a high priority bug fix, and was merged just now.

nice!

Heads up @ponylang/committer.
This is starting soon.
fd2f20647f8e402391560c2fc244530a72466e58 is the blessed commit

CHANGELOG updated on master.
Any CHANGELOG changes in PRs need to be updated.

Homebrew update PR opened: https://github.com/Homebrew/homebrew-core/pull/5160

@stefantalpalaru NEW RELEASE!

RPM, Deb and Windows packages are ready.
Waiting on Homebrew....

Gentoo ebuild updated.

Still waiting on homebrew update to be merged

Its been about 24 hours since I opened the homebrew. I'm announcing the release with a "waiting for homebrew caveat"

Ha. looks like its moving finally.

All done.


PowerToys Run doesn't autofocus on first launch

Microsoft PowerToys version
0.53.3
Running as admin

[ ] Yes

Area(s) with issue?
PowerToys Run
Steps to reproduce
After a reboot, PowerToys Run doesn't autofocus on first launch. This means that the quickest way to get it working is to:
Alt + space -> First Launch
Alt + space -> Close
Alt + space -> New launch, with autofocus working
✔ Expected Behavior
PowerToys Run should autofocus on first launch
❌ Actual Behavior
On first launch after booting pc, PowerToys Run doesn't autofocus.
Other Software
No response

Duplicate of #13643

Issue is a duplicate
Thank you for your issue! We've linked your report against another issue to centralize the thread.
Thanks for helping us to make PowerToys a better piece of software.


Validation for Coral UI 3 pathfield not working in multifield

Required Information

[x] AEM Version, including Service Packs, Cumulative Fix Packs, etc: AEM 6.3.2 (6.3 SP2)
[x] ACS AEM Commons Version: 3.19.0
[x] Reproducible on Latest? yes

Expected Behavior
When using the deprecated "Multifield Extension" and granite/ui/components/coral/foundation/form/pathfield (Coral UI 3) inside it with 'required' property, dialog should save when path is select/enter in the field
Actual Behavior
When path is selected/entered in the pathfield, validation should trigger and mark the field as validate, thus making the dialog submit button enable but the field is still marked as invalid. When 'Add field' button is pressed, the complete validation is triggered and then the older path field is marked as valid.
Steps to Reproduce
Refer #1455

@Yatharth20 and @Narayan15 - i assume there is a good reason youre using the deprecated ACS Commons Multfield extension rather than the recommended AEM Multifield?
Since the ACS Commons multifield is deprecated, it doesnt get much "update love" .. any chance one of you could PR a fix for this?
/cc @schoudry  in case he has any quick ideas to resolve.

@Yatharth20
I facing similar issue in aem 6.5.3, can anyone explain how it could be resolved?


[Removal]: Micro Lime Tapir

Hotspot Name
Micro Lime Tapir
Hotspot b58 Address
112DtFiP3H3uhJG23QZkVMvEVg2tE3cdLHBuqZHsrrtQavcKM61h
Discord Handle
No response
Hotspot Manufacturer
Bobcat
Removal Reason
My hotspots is a true deployment,that can be detected or mappping at any time. I request that my my hotspots be removed from the rejected list, and I hope helium can approves it.
Modifications
No
Extra forwarders
No
Extra antennas
No
Additional Information
Here are my hotspots actual photos
https://user-images.githubusercontent.com/64061024/156874201-faae72d8-f10e-4db1-a251-e76c1aa40531.mp4

We do not have sufficient evidence to remove these hotspots from the denylist. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.

We have taken into account this removal request in the next iteration of the denylist. It may take some time before it's processed. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Adding sortingOrder to SpriterDotNetBehaviour to control the sprites …

…order in layer. Now the object will be entirely behind or in front of another object without phashing through it.

Awesome - thanks for the contribution!


Mob 3537

JIRA
MOB-3537
DESCRIPTION
[Removed all FlightDetails unused files and logic]
Types of changes
What types of changes does your code introduce to the project?
Put an x in the boxes that apply

[x] Bugfix
[ ] New feature
[ ] Tech Debt
[ ] Breaking change
[ ] Documentation Update
[ ] Other: define what type of change it is

CHECKLIST
Put an x in the boxes that apply. You can also fill these out after creating the PR. This is simply a reminder of what we are going to look for before merging code.
Please review the guidelines for contributing to this repository.

[ ] All work relating to the ticket is complete (Code complete/Acceptance Criteria met)
[ ] Lint and unit tests pass locally (if appropriate)
[ ] Added tests that prove the fix is effective or that feature works (if appropriate)
[ ] Documentation (if appropriate)

SCREENSHOTS
[Add screenshots if any for changes you have made to the App/UI]

the Book button was disabled due to the setAddFlightDetailsMode method still being called (it wasn't necessary anymore)


Refactor README into user documentation

Our readme is becoming huge, and I believe it would be better if we use that structure and start creating a user documentation mixed with a getting started guide.

What technologies should be used for the documentation? I would think hosting on readthedocs, but after:
Technology: RST or Markdown
Theme: Pydata( https://jupyter-server.readthedocs.io/en/latest/index.html) or regular ( https://jupyterlab.readthedocs.io/en/stable/ )

Hmm - good point about referencing the lab theme.  Kinda thinking since Elyra is a "lap-app", we should probably follow their lead.
Do others agree?
I also tend to prefer working in markdown files, but that's probably just a familiarity thing.

I took a first stab at this. Since existing content is in markdown I kept to markdown for now and used the same theme as JupyterLab ( sphinx_rtd_theme ).

Wow - that was quick!  I'll try to take this for a spin tomorrow.


Getting the Page Count

I am struggling a little with the API. All feels quite low level.
My goal is to just figure out the number of pages of a PDF.
Got some pointers?
Would also make a nice little example for the API usage.

There is a test that covers getting the page count at:
pkg/api/process_test.go: func TestGetPageCount
OK, I am working on a new release and will turn this into an example so it shows up in godoc.

Perfect! Thanks!


[DRAFT] Yet another small refactor + adding a lot of python tests

[x] Remove SetDefaults() but expose Get**Configs() instead, easier to use / more foolproof and fewer lines
[ ] Adding a bunch of end to end tests on the python side to pin down the behavior vs. internal version

5 tests done, a few more to go :)


React Aria Starter Kit download (for Tailwind) is out of date with latest react-aria-components version

🙋 Documentation Request
The React Aria Starter Kit download for Tailwind is not using latest react aria components version. Latest download file from the website is react-aria-tailwind-starter.48e54b651.zip and the project package.json is using "react-aria-components": "^1.0.0-rc.0".
We are using the latest react aria version and the corresponding start components show use of properties that have changed or no longer exist in the latest version or react-aria-components.
I'm requesting an update to the documentation pages to provide an updated react aria starter kit download that uses the latest package version, and that as releases happen the starter kits should stay up to date with the latest version.
🧢 Your Company/Team
DHI

Looks like we need to bump the version in the starter's package.json as part of the release:
https://github.com/adobe/react-spectrum/blob/1550ccaa62363b65079eb2e36563380db0e7c043/starters/tailwind/package.json#L29 Same with the tailwindcss-react-aria-components version


Driver throws exception when Dx11 backend tries to bind a buffer with opt-level > 0

Discovered with my app, reproducible with the quad and colour-uniform examples. In all cases opt-level = 0 works.
Tested configurations (all with approx. identical behavior):

gfx-backend-dx11 version: 0.4.3, latest master
OS: Windows 10, Windows 7
GPU: Nvidia Geforce 840M, Intel HD Graphics 4600, AMD Radeon HD 7770
Rustc: 1.40, 1.42-Nightly 12-25
opt-level:  1, 2, 3

Thank you for reporting this! Did you run via MSVS to see if any relevant debug run-time messages pop up? Assuming we are clean, the only thing to suspect would be our winapi bindings.

I'm not sure what you mean. I tried running it with debugger attached and RUST_LOG=info.
The exceptions are along the lines of
Unhandled exception at 0x000007FEF3EED370 (atidxx64.dll) in quad.exe: 0xC0000005: Access
violation reading location 0x0000000000000003
No relevant looking log messages.

Could you post the full call stack?

I noticed the call stacks are quite different depending on whether the program is called from the terminal or by double clicking.
Terminal:
igd10iumd64.dll!00007ffb8b0ca2dd()	Unknown
igd10iumd64.dll!00007ffb8b214c09()	Unknown
igd10iumd64.dll!00007ffb8b213e42()	Unknown
igd10iumd64.dll!00007ffb8b20b35c()	Unknown
igd10iumd64.dll!00007ffb8b0d5388()	Unknown
d3d11.dll!00007ffb9232be8f()	Unknown
d3d11.dll!00007ffb9232b413()	Unknown
d3d11.dll!00007ffb9233700e()	Unknown
d3d11.dll!00007ffb9233d107()	Unknown
d3d11.dll!00007ffb9233cf73()	Unknown
d3d11.dll!00007ffb9233ca1c()	Unknown
d3d11_3SDKLayers.dll!00007ffb2fd65de5()	Unknown
d3d11_3SDKLayers.dll!00007ffb2fd6625a()	Unknown
d3d11_3SDKLayers.dll!00007ffb2fd4e366()	Unknown
d3d11_3SDKLayers.dll!00007ffb2fd0d6b7()	Unknown
d3d11.dll!00007ffb9233d3c0()	Unknown
d3d11.dll!00007ffb92329498()	Unknown
d3d11.dll!00007ffb92329238()	Unknown
d3d11_3SDKLayers.dll!00007ffb2fd33e07()	Unknown
quad.exe!gfx_backend_dx11::device::{{impl}}::bind_buffer_memory(gfx_backend_dx11::device::Device * self, gfx_backend_dx11::Memory * memory, unsigned __int64 offset, gfx_backend_dx11::Buffer * buffer) Line 0	Unknown
quad.exe!quad::Renderer<gfx_backend_dx11::Backend>::new<gfx_backend_dx11::Backend>(core::option::Option<gfx_backend_dx11::Instance> instance, gfx_backend_dx11::Surface surface, gfx_hal::adapter::Adapter<gfx_backend_dx11::Backend> adapter) Line 380	Unknown
quad.exe!quad::main() Line 163	Unknown
quad.exe!std::rt::lang_start::{{closure}}<()>(std::rt::lang_start::closure-0 *) Line 67	Unknown
[Inline Frame] quad.exe!std::rt::lang_start_internal::{{closure}}() Line 52	Unknown
quad.exe!std::panicking::try::do_call<closure-0,i32>() Line 296	Unknown
quad.exe!panic_unwind::__rust_maybe_catch_panic() Line 79	Unknown
[Inline Frame] quad.exe!std::panicking::try() Line 272	Unknown
[Inline Frame] quad.exe!std::panic::catch_unwind() Line 394	Unknown
quad.exe!std::rt::lang_start_internal() Line 51	Unknown
quad.exe!std::rt::lang_start<()>(void(*)() main, __int64 argc, unsigned char * * argv) Line 68	Unknown
[External Code]

Double clicking:
igd10iumd64.dll!00007ffb8b0ca2f1()	Unknown
igd10iumd64.dll!00007ffb8b12a552()	Unknown
igd10iumd64.dll!00007ffb8b244efe()	Unknown
igd10iumd64.dll!00007ffb8b26ba30()	Unknown
igd10iumd64.dll!00007ffb8b0d6ae1()	Unknown
d3d11.dll!00007ffb9242cb7e()	Unknown
d3d11_3SDKLayers.dll!00007ffb2fd29832()	Unknown
quad.exe!winapi::um::d3d11::ID3D11DeviceContext::UpdateSubresource(winapi::um::d3d11::ID3D11Resource * self, unsigned int pDstResource, winapi::um::d3d11::D3D11_BOX * DstSubresource, core::ffi::c_void * pDstBox, unsigned int pSrcData, unsigned int SrcRowPitch) Line 218	Unknown
quad.exe!gfx_backend_dx11::MemoryFlush::do_flush(wio::com::ComPtr<winapi::um::d3d11::ID3D11DeviceContext> * self) Line 2423	Unknown
quad.exe!gfx_backend_dx11::Memory::flush(wio::com::ComPtr<winapi::um::d3d11::ID3D11DeviceContext> * self, core::ops::range::Range<u64> context) Line 2595	Unknown
quad.exe!gfx_backend_dx11::device::{{impl}}::flush_mapped_memory_ranges<core::iter::sources::Once<(gfx_backend_dx11::Memory*, core::ops::range::Range<u64>)>,core::ops::range::Range<u64>>(gfx_backend_dx11::device::Device * self, core::iter::sources::Once<(gfx_backend_dx11::Memory*, core::ops::range::Range<u64>)> ranges) Line 2316	Unknown
quad.exe!quad::Renderer<gfx_backend_dx11::Backend>::new<gfx_backend_dx11::Backend>(core::option::Option<gfx_backend_dx11::Instance> instance, gfx_backend_dx11::Surface surface, gfx_hal::adapter::Adapter<gfx_backend_dx11::Backend> adapter) Line 353	Unknown
quad.exe!quad::main() Line 163	Unknown
quad.exe!std::rt::lang_start::{{closure}}<()>(std::rt::lang_start::closure-0 *) Line 67	Unknown
[Inline Frame] quad.exe!std::rt::lang_start_internal::{{closure}}() Line 52	Unknown
quad.exe!std::panicking::try::do_call<closure-0,i32>() Line 296	Unknown
quad.exe!panic_unwind::__rust_maybe_catch_panic() Line 79	Unknown
[Inline Frame] quad.exe!std::panicking::try() Line 272	Unknown
[Inline Frame] quad.exe!std::panic::catch_unwind() Line 394	Unknown
quad.exe!std::rt::lang_start_internal() Line 51	Unknown
quad.exe!std::rt::lang_start<()>(void(*)() main, __int64 argc, unsigned char * * argv) Line 68	Unknown
[External Code]

Would be worth trying with gfx-backend-dx11-0.4.4

Doesn't seem to have changed anything, unfortunately.


HDDS-1710. Fix checkstyle errors

What changes were proposed in this pull request?
Fix checkstyle errors related to HDDS-1710.
How was this patch tested?
$ mvn -Phdds -DskipTests -DskipShade -am -pl :hadoop-ozone-dist clean package
$ hadoop-ozone/dev-support/checks/checkstyle.sh
...
[INFO] BUILD SUCCESS

/label ozone

@anuengineer @elek please review

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
36
Docker mode activated.

_ Prechecks _

+1
dupname
1
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

-1
test4tests
0
The patch doesn't appear to include any new or modified tests.  Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

0
mvndep
79
Maven dependency ordering for branch

+1
mvninstall
596
trunk passed

+1
compile
343
trunk passed

+1
checkstyle
72
trunk passed

+1
mvnsite
1
trunk passed

+1
shadedclient
857
branch has no errors when building and testing our client artifacts.

+1
javadoc
146
trunk passed

0
spotbugs
412
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
600
trunk passed

_ Patch Compile Tests _

0
mvndep
30
Maven dependency ordering for patch

+1
mvninstall
532
the patch passed

+1
compile
380
the patch passed

+1
javac
380
the patch passed

+1
checkstyle
29
hadoop-hdds: The patch generated 0 new + 0 unchanged - 5 fixed = 0 total (was 5)

+1
checkstyle
35
hadoop-ozone: The patch generated 0 new + 0 unchanged - 2 fixed = 0 total (was 2)

+1
mvnsite
0
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
647
patch has no errors when building and testing our client artifacts.

+1
javadoc
151
the patch passed

+1
findbugs
636
the patch passed

_ Other Tests _

+1
unit
278
hadoop-hdds in the patch passed.

-1
unit
159
hadoop-ozone in the patch failed.

+1
asflicense
32
The patch does not generate ASF License warnings.

5791

Reason
Tests

Failed junit tests
hadoop.ozone.om.ratis.TestOzoneManagerDoubleBufferWithOMResponse

Subsystem
Report/Notes

Docker
Client=19.03.0 Server=19.03.0 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1144/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1144

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 643d465c322c 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / eb36b09

Default Java
1.8.0_212

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1144/1/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1144/1/testReport/

Max. process+thread count
558 (vs. ulimit of 5500)

modules
C: hadoop-hdds/common hadoop-hdds/container-service hadoop-hdds/server-scm hadoop-ozone/ozone-manager U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1144/1/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Thanks for your contribution. I have committed this patch to trunk and ozone-0.4.1 branches.


Add cuDNN support for clipped_relu

I added cuDNN support for clipped_relu. This is useful for speeding up e.g. ReLU6, which has shown to be beneficial when preparing a model trained in FP32 mode to be run in FP16 precision.
It's recently being used in MobileNetV2.
Note that this PR depends on the following CuPy PR: https://github.com/cupy/cupy/pull/938
References:
https://arxiv.org/abs/1801.04381
https://www.reddit.com/r/MachineLearning/comments/3s65x8/tensorflow_relu6_minmaxfeatures_0_6/
http://www.cs.utoronto.ca/~kriz/conv-cifar10-aug2010.pdf

Jenkins, test this please

Thank you for sending this PR! It looks good to me, so let's wait until the whole test finishes.

@mitmul It seems like the tests passed.

LGTM


airflow.exceptions.AirflowConfigException: error: sqlite C library version too old (< 3.15.0).

Hi,
I am getting the below error while I try to implement the localrunner. while l start the container, it runs for few seconds and exits with below error.
File "/usr/local/bin/airflow", line 5, in
from airflow.main import main
File "/usr/local/lib/python3.7/site-packages/airflow/init.py", line 34, in
from airflow import settings
File "/usr/local/lib/python3.7/site-packages/airflow/settings.py", line 37, in
from airflow.configuration import AIRFLOW_HOME, WEBSERVER_CONFIG, conf  # NOQA F401
File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 1098, in
conf = initialize_config()
File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 860, in initialize_config
conf.validate()
File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 199, in validate
self._validate_config_dependencies()
File "/usr/local/lib/python3.7/site-packages/airflow/configuration.py", line 240, in _validate_config_dependencies
f"error: sqlite C library version too old (< {min_sqlite_version}). "
airflow.exceptions.AirflowConfigException: error: sqlite C library version too old (< 3.15.0). See https://airflow.apache.org/docs/apache-airflow/2.0.2/howto/set-up-database.rst#setting-up-a-sqlite-database
I have added the --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.0.2/constraints-3.7.txt" in the config/requriements.txt and followed the other steps that was given previously regarding this error in this issues section.
Please could someone help to resolve this issue with detailed steps.

I have exact same issue

It appears you are running the 2.0.2 version of local-runner.  Can you confirm if the issue occurs on the latest 2.2.2 version?

Yes, its observed in 2.2.2 as well

experiencing same issue here when trying to add connections within the docker container

interestingly, the lead engineer for AWS MWAA added a solution for this on a similar issue;
https://github.com/apache/airflow/issues/14208#issuecomment-782824716

It does solve the problem once you commit it in the docker image, but how (where) do I add this to the image building process?

I am experiencing this as well

In case anyone is still struggling with this.... this solution worked for me
I found that solution through this comment

Im having this same issue. I looked at the solutions above but I doubt gave that file docker-compose-local.yml

I have got the same error in MWAA environment, when SSH into a Worker and run Airflow CLI.
However, in my case (MWAA), it does not use SQLite as meta db. So I think it should not give the error, especially my MWAA airflow runs perfectly at the same time.
I managed to solve the error by setting Linux environmental variable as MWAA run time. Here is how:

run a DAG with a task to print all environmental variables and values, in the same Airflow cluster
back to the shell and set the env vars accordingly.
Run Airflow commands successfully

Why it gave me the sqlite error before? Airflow take configurations from cfg file as well as env vars. If Airflow config not set properly for the meta db, it takes the default setting as SQLite.


#8: Discovery of ansible roles may break with extra directories

Working as expected :ok_hand:
➜  ./plasmactl components-bump
Bump updated versions...
List of unversioned files:
README.md
README.svg

Processing resource interaction__services__docs_docusaurus
Updating versions:
- interaction__services__docs_docusaurus from 928ffc328206f to 9634935bde56c
Commit changes to updated resources


early_stopping_method parameter of AgentExecutor doesn’t work in expected way

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.

Example Code
tools = [get_news, solve_math_problem]

agent = ZeroShotAgent()
agent_executor = AgentExecutor.from_agent_and_tools(
            agent=agent,
            tools=tools,
            verbose=False,
            max_iterations=1
            early_stopping_method="generate",
            return_intermediate_steps=True,
            handle_parsing_errors=True,
)
result = agent_executor.invoke(
                input={
                    "input": user_query,
                },
)

Description
We find that if the agent reaches the maximum steps, but it still wants to use tools to solve question, then the final answer will become the input for the next step, rather than a real final answer. This problem cannot be solved just by setting the right parameters.
e.g.
Input:
News Tesla? and root of 18376?
Output:
('Action: solve_math_problem\nAction Input: square root of 18376',
 [{'input': 'Tesla',
   'output': "Tesla CEO Elon Musk has expressed ...",
   'tool': 'get_news'}])

We set max_iteration=1 just because of easily reproducing this error.
System Info
We check the function for generating the final answer and printed out the input and output.

new_inputs:
{
'agent_scratchpad':
'Thought: The question has two parts: one is about the latest news on Tesla, and the other is about the root of 18376. I can use the get_news tool to find the latest news about Tesla, and the solve_math_problem tool to find the square root of 18376.\n
Action: get_news \nAction Input: Tesla\n
Observation: {
  \'input\': \'Tesla\',
  \'output\': "Tesla\'s CEO Elon Musk has sparked speculation about his ownership stake in the company after expressing
  his reluctance to develop Tesla into a leader in artificial intelligence (AI) and robotics …",
}\n
Thought:\n\nI now need to return a final answer based on the previous steps:',
'stop': ['\nObservation:', '\n\tObservation:']
}

full_output:
: Action: solve_math_problem Action Input: root of 18376

My guess is that in agent_scratchpad prompt has clear information that The question has two parts ... and doesn’t include the actual user query News Tesla? and root of 18376? Therefore, LLM may be confused about the meaning of final answer. Is final answer for initial user query or for previous steps?
Please review this issue. Thank you!
Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[X] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

I believe this is an issue with the prompt engineering done here.
When using generate for the early_stopping_method, it appends a string to the prompt that says "I now need to return a final answer based on the previous steps". The model is not abiding by this though
What model are you using? its possible that with worse models this doesnt work
A more explicit fix would be to modify the execution logic. There's a few ways to do this. One would be to subclass the Agent class and modify how this is handled. Another would be to submit a PR with this change. A final (our preferred) would be to replace the agent executor with LangGraph (https://github.com/langchain-ai/langgraph/blob/main/examples/agent_executor/base.ipynb). LangGraph was specifically designed to make it easy to modify the looping logic


CBLK: Performance is degrading when increasing the # threads above roughly 14

With 1 thread and small buffers of 8KiB we get about 250-300 MiB/sec. We see good performance when using 4 threads up to 10-14: 800-900 MiB/sec. From there on the throughput seems not to stay where it was with 10-14 threads, but instead it degrades to roughly 550 MiB/sec. Would be good if we could explain why this is.


Add more insightful error messages for useFind and useGet

Had some trouble where I was passing in undefined models into useGet(), the error message produced had me scratching my head for a few moments.

This PR add a handler for both useGet() and useFind() that'll produce a slightly more useful error message when no model is passed:

This should hopefully save someone out there from a moment of confusion! 😅

Somewhat unrelated to this PR; as it is the month of Hacktoberfest you should consider adding the hacktoberfest topic to this repository so that contributors can find and get a +1 for their contributions to FeathersVuex. 🙌

Ah thanks for this.  Good catch!


Add pages in Quick Links

[ yes] Would you like to take up this task?
[ yes] Are you from GSSoC'23?

✨
Feature request

Is your feature request related to a problem?
The links of the quick tab section do not work

Describe the solution you'd like
Adding pages for each section i.e. Home, About, For you, Profile, TV shows

Describe alternatives you've considered
Some of the pages can be skipped like Home Profile

Good evening Sir,
I am not able to setup the MobileDB api key. Can you help me with with.


Find in files is broken

VSCode Version: 1.7.1
OS Version: Windows 14393

Steps to Reproduce:

Open a folder with many files
Search for known text in files
Zero files are found

The issue might be UTF-16 LE.

Created more specific issue: #17408

@garfieldbanks sorry for not being very active on this issue we should have looked into it right when you reported it...


Container exit and cleanup

Summarizing a discussion in Slack:
It looks like a workflow with a container directive won’t move to PostRun: Ready: True until the container runs to completion. I had a trivial container where I mistyped a command and so it kept crashing until it hit my specified restart limit, and then it seemed that the only option I had was to manually move the workflow to Teardown, since Flux was still waiting for the workflow to ready up.
@bdevcich-hpe  asked

would it make sense here to add a field to the workflow to allow containers to fail? Something like allowContainerFaults and then PostRun would go Ready:True no matter the result of the containers? Then, DataOut could still be ran afterwards. If DataOut isn't needed when the containers fault, then going to Teardown would be the next step.

Another idea is for there to be some resource Flux could look at to determine that it’s the container that’s holding up the workflow and then after N seconds it could move the workflow to teardown. But that would be less flexible than putting the limit in the container profile.

In other words, you'd like a flag that suppresses the error state of the containers, correct? If so, I think we'd still need a way to tell Flux that the containers failed. Can Flux inspect the k8s Job itself to determine the state of the container or can is it limited to querying DWS workflows?

Another idea is for there to be some resource Flux could look at to determine that it’s the container that’s holding up the workflow and then after N seconds it could move the workflow to teardown. But that would be less flexible than putting the limit in the container profile.

As I mentioned above, Flux could look at the k8s Job to determine this (assuming that is possible).
@jameshcorbett we should discuss this more next week in the Flux meeting. We'd like to understand the use cases of allowing a transition to DataOut when containers fail. Is this something that users will want to do or will an admin need to step in and allow such behavior?

In other words, you'd like a flag that suppresses the error state of the containers, correct? If so, I think we'd still need a way to tell Flux that the containers failed. Can Flux inspect the k8s Job itself to determine the state of the container or can is it limited to querying DWS workflows?

I believe that in its current WLM role in k8s Flux can't inspect the Job, but we could always change that. I'd need pointers to how to look up the Job though. Like if there were a reference to the Job from the workflow, like there is for Computes, that would be good. Flux doesn't inspect the #DW directives and so it doesn't even know whether there are containers associated with a workflow--I don't think (?) there's any way for it to distinguish storage allocated for containers from storage allocated for a job.
The firs thing that comes to mind is something in the workflow like status: {containers: {status: Error, message: 'hit restart limit'}}. Then when Flux sees PostRun go to Ready: True, it could check the contents of status: containers and then, in the event of an error, A) cancel the job and move it to Teardown OR B) somehow inform the user that their container failed but continue to DataOut.

@jameshcorbett we should discuss this more next week in the Flux meeting. We'd like to understand the use cases of allowing a transition to DataOut when containers fail. Is this something that users will want to do or will an admin need to step in and allow such behavior?

Yeah let's get @behlendorf 's input next week, he has a better sense of the use cases than I do.

Based on our discussion today, we have decided to exclude the use case of transitioning to DataOut when containers fail. Consequently, we will proceed with utilizing Error states for handling container failures, while ensuring that DWS state transitions remain unaffected.
To address the issue of container startup time during the PreRun phase, we will introduce a PreRun timeout in the container profiles. This will enable administrators to specify the duration within which containers should start. It is important to note that a PostRun timeout feature already exists in the container profile.
To summarize the possible scenarios in each workflow state:
PreRun (Containers are expected to start):

If the container starts successfully (running), transition to Ready:true.
If the container fails to start, transition to the Error State.
If the container is initializing and has not started after X seconds, terminate the container and transition to the Error State.

PostRun (Containers are expected to exit cleanly):

If the container exits successfully, transition to Ready:true.
If the container exits unsuccessfully, transition to the Error State.
If the container is running and has not exited after X seconds, terminate the container and transition to the Error State.


Acoustic Echo Cancellation does not working

Use MixedReality-WebRTC and test it on a PC, seem like the Echo cancellation has no effect(echo and
howling sound). Is there anyway to turn it on or adjust it?

Hi @jameszhong2008, I thought AEC was always active by default in Google's code, but I have to admit I never really looked into the details. We don't currently expose any audio settings; this will likely change with the introduction of standalone track objects (#152) but this is not available yet. I need to try to reproduce that issue, but I won't be able to do so until I'm back in the office next week, sorry for the delay. In the meantime you can try locally to change the audio options passed to the audio engine when created the track:
https://github.com/microsoft/MixedReality-WebRTC/blob/f6ae23ad60944679872ed5b2908d27ddea3b7cf0/libs/Microsoft.MixedReality.WebRTC.Native/src/interop/interop_api.cpp#L845
You can pass a custom cricket::AudioOptions instance and try forcing echo_cancellation=true, and maybe even extended_filter_aec=true and/or delay_agnostic_aec=true too, although I would try with the former only first.

@djee-ms,  thanks a lot,  I pass AudioOption forcing echo_cancellation=true seems no difference. then I pass extended_filter_aec=true, still have howling sound, then I add delay_agnostic_aec=true. there is no howling sound but some of the voice was lose and some lower noisy sound occured. any suggestion? sorry for my bad english.

Sorry I never tried AEC myself and I'm not an audio expert. It seems that the issue is more with the AEC experience itself, rather than with MixedReality-WebRTC. Could you maybe try to get in touch with the WebRTC folks directly and ask them? I would understand that MixedReality-WebRTC can potentially change the the audio timing, but if you have problems even with delay_agnostic_aec=true then it sounds like this is a more general issue with AEC itself, and not with MixedReality-WebRTC. Of course we can discuss adding more audio options if you find what option helps in your case.
WebRTC bug tracker : https://bugs.chromium.org/p/webrtc/issues
Note: I remember reading that if you ear an acoustic echo issue on one peer, then the problem is AEC on the other peer. Did you change the options on the correct peer? On both?

Yes, I change both side, about the lower noisy sound , I add noise_suppression=true then it disappeared.
With delay_agnostic_aec=true, I changed position of the microphone, echo cancellation effect is better than before.  thank you.

I'll mark this issue as a feature request to expose the audio options then.

Coincidentally, we (Kognitiv Spark) noticed the lack of echo cancellation in mid-December 2019 (even though it has been present in every previous version, including our original uwp-sdk m62 build).  I can confirm that explicitly setting the cricket::AudioOptions() addresses our issue as well, so we would also like to see this feature added.
For the record, I found that setting echo_cancellation=true was not sufficient on its own.  Setting either delay_agnostic_aec=true OR extended_filter_aec=true alone was sufficient to remove the echo, though with delay agnostic AEC I could still hear faint traces of an echo from time to time.  Extended filter AEC was impressive and seems to remove it completely.  There also seems to be no conflict between the two options -- setting them both also removed the echo entirely.

@djee-ms, I could make an attempt at the audio option configuration if you like.  My thinking is to just copy the existing pattern used by the VideoDeviceConfiguration struct, adding an AudioDeviceConfiguration with a set of mrsBool members that reflect at least some of the cricket::AudioOption members and adding it as a required parameter for mrsPeerConnectionAddLocalAudioTrack().  If you think you might accept a PR like that, would you like to see all audio options exposed, or just that echo cancellation ones with others to be added on demand?

@kspark-scott thanks for the offer, but #152 is coming really soon (matter of days) and will already have added an AudioDeviceConfiguration (see here), so your PR would conflict anyway. So I'm thinking instead to add those settings to it just after, should be fairly straightforward.

I'm also having trouble with acoustic echo cancellation on Unity (PC and Android). Since #152 is now in, is there a way to enable echo cancellation?
Since this issue is still open, I thought it would be better to comment here rather than open a new issue.

@sananbintahir #152 has added a per-track audio configuration, but settings for AEC haven't been exposed there yet.

@fibann Is this on the roadmap? and is there a workaround for now? Not having AEC makes the library pretty much unusable for my application, which targets the Oculus Quest.

@sananbintahir sorry, no ETA for this at the moment.
You can work around this by compiling MR-WebRTC from source and passing the AEC options mentioned in the comments above to the audio source creation, the relevant lines are now at https://github.com/microsoft/MixedReality-WebRTC/blob/e7773933c14d10090ecfb34cd7e777f72bbc10f8/libs/mrwebrtc/src/media/device_audio_track_source.cpp#L23

https://github.com/microsoft/MixedReality-WebRTC/blob/e7773933c14d10090ecfb34cd7e777f72bbc10f8/libs/mrwebrtc/src/media/device_audio_track_source.cpp#L23

@fibann I tried the workaround and built the library from source, I tried passing
options.echo_cancellation = true;
options.extended_filter_aec = true;
options.delay_agnostic_aec = true;
options.highpass_filter = true;
options.noise_suppression = true;

But all combinations of these options produced little to no effect on the echo. I suppose this is because I am working on Unity, which adds a delay between the signals, causing AEC to not function as it should. Is this possible or am I missing something?
I was also looking into a custom AEC implementation, but that would require access to the incoming audio stream and access to the microphone signal. Is it possible to get access to these in the library?

@sananbintahir Where you able to get a workaround for your problem? If so, could you please share your solution?

@sananbintahir Where you able to get a workaround for your problem? If so, could you please share your solution?

@KarthikRichie I tried a lot of things, but unfortunately could not find a workaround. Eventually had to give up trying to use MixedReality-WebRTC for my application. Not sure why something as essential as echo cancellation in a communication library is not prioritized.

@KarthikRichie I tried a lot of things, but unfortunately could not find a workaround. Eventually had to give up trying to use MixedReality-WebRTC for my application. Not sure why something as essential as echo cancellation in a communication library is not prioritized.

@sananbintahir Okay. I as well tried every possible solution, but nothing seemed to work.  Any other webrtc alternatives would you recommend/have tried for use within UWP app which overcomes these limitations ?

@sananbintahir Okay. I as well tried every possible solution, but nothing seemed to work.  Any other webrtc alternatives would you recommend/have tried for use within UWP app which overcomes these limitations ?

@KarthikRichie Since my application mainly works on Unity, so far I haven't come across any good cross-platform solutions. There is always something you have to sacrifice. For communication just inside unity, there are many alternatives, but none of them have browser support. So it's a tricky situation. This library seemed the most promising until the echo cancellation issue came up.

@KarthikRichie Since my application mainly works on Unity, so far I haven't come across any good cross-platform solutions. There is always something you have to sacrifice. For communication just inside unity, there are many alternatives, but none of them have browser support. So it's a tricky situation. This library seemed the most promising until the echo cancellation issue came up.


Feature request: add length/precision information to SqlColumn

Request
Change the SqlColumn class adding information about the column's length, precision and scale, using Integers because obviously these are not defined for all columns.
The MyBatis Generator should populate every column accoding to information retrieved from the database during the generation process.
Motivation
All our applications uses Flywaydb to manage migrations, so the DBA is not entitled to make random changes at column size.
Before inserting data, it is a nice requirement to early check the input parameters against maximum column length. At the current time, the developer needs to perform manual checks on input size by manually specifying the max length, e.g. (using Apache Commons lang3)
if (length(myColumn) > 25) throw new IllegalArgumentException();

It would be nicer to bind this check to information retrieved automatically from the database
public class MyClassSqlDynamicSupport {

    public static class MyClass extends SqlTable {

        public final SqlColumn<String> myColumn = column("MyColumn", JdbType.VARCHAR, 25);

    }

}

if (length(myColumn) > MyClassSqlDynamicSupport.mycolumn.length()) throw new IllegalArgumentException();

A similar approach can be done for BigIntegers and NUMBER columns, where calling code may check or adjust precision according to database instead of relying on SQLException to handle errors

I understand that does make some sense to think about this information as a part of SqlColumn because it is part of the database column description. But there is no need for that data in the library itself - it would only be used for some external purpose like validation. So I'm a bit hesitant to add it there.
Have you considered JSR-380 bean validation? It would be relatively simple to write a generator plugin that added those annotations to the generated model classes and I think the annotations on the model class would be more useful too.

JSR-380 looks like a good compromise.

Thanks for your response.


Automatic sharding of large datasets

In the previous, balkanized featurization scheme, we would conduct featurization separately in either vs_utils or cluster_utils, and this would naturally lead to many (e.g., 100s or 1000s) of .joblib/.pkl files of sharded dataframes containing features. However, in the new, unified scheme, we instead begin with one giant dataset containing info about all complexes, and then deepchem proceeds to do preprocessing, featurizaiton, etc. The problem is, no sharding is currently implemented under the hood except in fit.py. Unfortunately, for large datasets (e.g., tensors for convnets), this is almost certain to MemoryError out at some point. Therefore, we should add an option, perhaps in featurize() in featurize.py to do this sharding under the hood at the preprocess stage. I am experimenting with one such implementation of this now.

Great. This is now resolved by #57 .


 I have done this such that the algorithm lazily connects the final sender and detects whether the second call to connect will throw or not and omits set_error_t(std::exception_ptr) in case it doesnt.
This flavor of the algorithm starts the final operation only if the first op completed through a value channel, which I think is different to libunifex, so beware. I thought the original behaviour can be achieved through the marvelous materialize.
Unfortunately, this PR contains two little more things: I found a bug in materialize / dematerialize. I also added noexcept specifier to the then_t operation.
I did this to experiment, whether the suggestion in issue #472 is viable and I would like to change the let_xxx algorithms similarily to how it is done in this implementation. But that would mean to change the spec, too.
Any feedback welcome

The nvc++ failure looks like a compiler bug. I could look into it next week. I'm travelling right now.

The nvc++ failure looks like a compiler bug. I could look into it next week. I'm travelling right now.

OK, if I find the time I will try to look, too. Do we keep the type erasure or should I change that?

The nvc++ failure looks like a compiler bug. I could look into it next week. I'm travelling right now.

OK, if I find the time I will try to look, too. Do we keep the type erasure or should I change that?

This algorithm actually does not need virtual dispatch to drop the exception. We could eagerly connect both operation  states before starting the first op. That is a decision which cannot be done in the let algorithms. What do you think?

This algorithm actually does not need virtual dispatch to drop the exception. We could eagerly connect both operation states before starting the first op. That is a decision which cannot be done in the let algorithms. What do you think?

If you connect the final action lazily, the two operation states can share space, right? My default is to make things efficient, and use layering to achieve stronger requirements at the expense of size/speed.
So, I would favor lazily starting the finally action so the operation states can share space, and avoiding the virtual dispatch. Then we can find adaptors that let us layer on the other behaviors.

This algorithm actually does not need virtual dispatch to drop the exception. We could eagerly connect both operation states before starting the first op. That is a decision which cannot be done in the let algorithms. What do you think?

If you connect the final action lazily, the two operation states can share space, right? My default is to make things efficient, and use layering to achieve stronger requirements at the expense of size/speed.
So, I would favor lazily starting the finally action so the operation states can share space, and avoiding the virtual dispatch. Then we can find adaptors that let us layer on the other behaviors.

Yes I think they could share space, buts that's currently not happening. I will revisit that part.

I think I addressed all raised concerns. Semantics, no virtual dispatch and reusing storage for the operations.


Caddy+Portainer behind oauth2

How can I deploy Portainer on Caddy behind oauth2.
Portainer is running under subdomain, like portainer.domain.com.
When trying to login, seems like javascript is throwing error, being redirected to auth, although I have authenticated. Portainer runs fine under localhost. Any suggestions? Thanks!

Could you please share:

The error you are getting (in javascript)
Your full caddyfile
The full URL of the page on which you login

The errors I am getting in browser are:
/#/auth:1 Access to XMLHttpRequest at 'https://auth.server.domain.com/login?backTo=https%3A%2F%2Fportainer.server.domain.com%2Fapi%2Fextensions%3Fstore%3Dfalse' (redirected from 'https://portainer.server.domain.com/api/extensions?store=false') from origin 'https://portainer.server.domain.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
vendor.82dd1cbf3e3da3500b77.js:61 GET https://auth.server.domain.com/login?backTo=https%3A%2F%2Fportainer.server.domain.com%2Fapi%2Fextensions%3Fstore%3Dfalse net::ERR_FAILED
and
Access to XMLHttpRequest at 'https://auth.server.domain.com/login?backTo=https%3A%2F%2Fportainer.server.domain.com%2Fapi%2Fendpoints%3Flimit%3D100%26start%3D0' (redirected from 'https://portainer.server.domain.com/api/endpoints?limit=100&start=0') from origin 'https://portainer.server.domain.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
vendor.82dd1cbf3e3da3500b77.js:61 GET https://auth.server.domain.com/login?backTo=https%3A%2F%2Fportainer.server.domain.com%2Fapi%2Fendpoints%3Flimit%3D100%26start%3D0 net::ERR_FAILED
My full Caddyfile is:
*.server.domain.com {
  tls<EMAIL_ADDRESS>{
    dns cloudflare
  }
}

auth.server.domain.com {
  tls {
    wildcard
  }
  redir 302 {
    if {path} is /
    / /login
  }
  login {
    google client_id={$GOOGLE_OAUTH_CLIENT_ID},client_secret={$GOOGLE_OAUTH_CLIENT_SECRET}
    redirect_check_referer false
    redirect_host_file /etc/redirect_hosts.txt
    cookie_domain server.domain.com
  }
}

(int-auth) {
  jwt {
    path /
    redirect https://auth.server.domain.com/login?backTo=https%3A%2F%2F{host}{rewrite_uri_escaped}
    allow sub<EMAIL_ADDRESS>  }
}

portainer.server.domain.com {
  import int-auth
  tls {
    wildcard
  }
  gzip
  proxy / portainer:9000 {
    websocket
    transparent
  }
}

And I tried to remove the import int-auth from within the block, everything works perfectly. Thanks!

Thanks! But no luck still.
Portainer is pre-packed so I could not easily modify the source code.
And I tried to add the CORS plugin, placing it in multiple blocks but still get the same error.
Could you help me understand, why those resources requested by JS are still being redirected to auth server although I have successfully signed in via oauth2?

Do you have Caddy logs and errors activated?
Are there more info in them?
I'm unfortunately not familiar with Portainer.
I did find this though: https://github.com/portainer/portainer/issues/1939
I would need more details to investigate further. I would have though the CORS plugin would solve this.
Did you ensure you:

Replaced the executable of Caddy (which includes the plugin)
Changed the configfile
Restarted Caddy for changes to take effect
Closed the browser fully to ensure cache didn't get in the way

Try setting CORS for all domains just in case (it could be tweaked afterwards) by adding that at the top of your caddyfile:
http://, https:// {
CORS
}

Still a nope. Yes I have restarted the service every time I update Caddyfile. :) And since I am using auth, I also clear site related cookie so that it starts from fresh (including tried a different browser).
Herewith the log I get so far with Caddy. It does not seem to print more detailed message. I get both log stdout and errors stdout from within the container.
caddy    | i.p.i.p - - [16/Sep/2019:11:34:30 +0000] "GET / HTTP/1.1" 303 119 caddy    | i.p.i.p - - [16/Sep/2019:11:34:30 +0000] "GET /login?backTo=https%3A%2F%2Fportainer.server.domain.com%2F HTTP/1.1" 200 1714 caddy    | i.p.i.p - - [16/Sep/2019:11:34:33 +0000] "GET /login/google HTTP/1.1" 302 0
This is when I was redirected to Google auth.
caddy    | time="2019-09-16T11:34:39Z" level=info msg="successfully authenticated" type=application<EMAIL_ADDRESS>caddy    | i.p.i.p - - [16/Sep/2019:11:34:39 +0000] "GET /login/google?state=xxx&code=xxx&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&session_state=xxx&prompt=none HTTP/1.1" 303 0 caddy    | i.p.i.p - - [16/Sep/2019:11:34:39 +0000] "GET / HTTP/1.1" 200 3279
This is when I was successfully authenticated with Google.
caddy    | i.p.i.p - - [16/Sep/2019:11:34:39 +0000] "GET /api/status HTTP/1.1" 200 104 caddy    | i.p.i.p - - [16/Sep/2019:11:34:39 +0000] "GET /api/settings/public HTTP/1.1" 200 218 caddy    | i.p.i.p - - [16/Sep/2019:11:34:40 +0000] "GET /api/users/admin/check HTTP/1.1" 204 0 caddy    | i.p.i.p - - [16/Sep/2019:11:34:40 +0000] "GET /api/settings/public HTTP/1.1" 200 218
This is when Portainer's own auth page is fully loaded.
caddy    | i.p.i.p - - [16/Sep/2019:11:35:11 +0000] "POST /api/auth HTTP/1.1" 200 463
I tried to login through Portainer obviously. :)
caddy    | i.p.i.p - - [16/Sep/2019:11:35:11 +0000] "GET /api/extensions?store=false HTTP/1.1" 303 142 caddy    | i.p.i.p - - [16/Sep/2019:11:35:11 +0000] "OPTIONS /login?backTo=https%3A%2F%2Fportainer.server.domain.com%2Fapi%2Fextensions%3Fstore%3Dfalse HTTP/1.1" 200 0 caddy    | i.p.i.p - - [16/Sep/2019:11:35:11 +0000] "GET /api/endpoints?limit=100&start=0 HTTP/1.1" 303 152 caddy    | i.p.i.p - - [16/Sep/2019:11:35:11 +0000] "OPTIONS /login?backTo=https%3A%2F%2Fportainer.server.domain.com%2Fapi%2Fendpoints%3Flimit%3D100%26start%3D0 HTTP/1.1" 200 0
This is when things go wrong. I don't know why those calls are redirected by to auth server again which of course failed to load its resources.
Any ideas?

Why does portainer.server.domain.com have import int-auth and auth.server.domain.com doesn't?
I believe that may be the issue. Try adding that import to that one as well or moving it to *.server.domain.com.
Also, that part seems unneeded:
redir 302 {
    if {path} is /
    / /login
  }

Still nope.
Now my Caddyfile looks like this. Just as brief, details are the same as before.
(int-auth) ## Initialise dynamic redirect back

*.server.domain.com ## Set up wildcard certificate to use later

auth.server.domain.com ## Import (int-auth), set up Google thingys

portainer.server.domain.com ## Import (int-auth), the actual reverse proxy

Same error in the log, that HTTP OPTIONS are always being directed to auth. GET and POST are both fine.
Very interestingly, if I import int-auth only within *.server.domain.com, no authentication will happen at all. I have place it each time within a subdomain to let it work.
Could be that the problem is on Portainer's side, but I am not that into JS.

@magikstm After Googling and Googling, I found the problem, https://caddy.community/t/oauth-proxy-rejecting-some-requests/4546/2.

How did you resolve it?

Like said in the link, double proxy to rewrite header. Not a neat solution. :)
I was trying to see if I can change jwt's header type since login uses cookie. But if I add token_source header, I cannot get pass jwt anymore. So I gave up and use double proxy.
But actually it still has problem sometimes, don't know why. I sometimes get kicked out of Portainer, and one of the calls get 401.
At the end, I find out that there is a pretty hidden argument to turn off Portainer's authentication! So now my setup is fully running, without double proxy, without Portainer's authentication, but instead oauth2 by login+jwt. :)

Awesome. :)


Issues with TEOC

This is deployed according to the deployment guide. The Teams site is up and running, the TEOC application is loaded into the Teams site without issue but once you try to create an incident it will error out.

Hi @kcrdlr ,
Thanks for reaching out us. Could you please share us the console logs to get more insights about this error?
To get a console logs, please try to access the TEOC application in the browser version of MS Teams and open Developer tools from browser (or press Ctrl + Shift + I , this will open the console window) and then right click on the logs to Save it as a log file.

This appears to be an issue with SharePoint Teams site creation being set to /Teams, I will wait to deploy this again until there is an update that fixes this issue.
Thanks,
Michael Lechner  | Solutions Delivery Engineer II  |  Saint Luke’s Health System
Email<EMAIL_ADDRESS>|  Work:<PHONE_NUMBER>
[SLHS 11001 Saint Lukes health system color]
From: v-prigunasek @.>
Sent: Monday, March 6, 2023 10:49 PM
To: OfficeDev/microsoft-teams-emergency-operations-center @.>
Cc: Lechner, Michael R @.>; Mention @.>
Subject: Re: [OfficeDev/microsoft-teams-emergency-operations-center] Issues with TEOC (Issue #77)
WARNING: This message originated from outside of SLHS' email system. DO NOT click links or open attachments unless you recognize the sender<EMAIL_ADDRESS>and know the content is safe.

Hi @kcrdlrhttps://urldefense.com/v3/__https:/github.com/kcrdlr__;!!MjjDChyg_1Rg!5fFHqDnNEmGHadBanjwH0wPpFwFspfN_h6j9Crt3zb0YiC1GDcEWgyYxZQgEHd7mn9z40e42xKqMrde8ZJgpGLOy8gTY$ ,
Thanks for reaching out us. Could you please share us the console logs to get more insights about this error?
To get a console logs, please try to access the TEOC application in the browser version of MS Teams and open Developer tools from browser (or press Ctrl + Shift + I , this will open the console window) and then right click on the logs to Save it as a log file.
[image]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/98514691/223323186-e2228398-a657-462b-9373-81b3c63b61e8.png__;!!MjjDChyg_1Rg!5fFHqDnNEmGHadBanjwH0wPpFwFspfN_h6j9Crt3zb0YiC1GDcEWgyYxZQgEHd7mn9z40e42xKqMrde8ZJgpGE5gDfjd$
[image]https://urldefense.com/v3/__https:/user-images.githubusercontent.com/98514691/223323225-c9d0e98a-fd20-4d54-b12d-5f0b51f1848e.png__;!!MjjDChyg_1Rg!5fFHqDnNEmGHadBanjwH0wPpFwFspfN_h6j9Crt3zb0YiC1GDcEWgyYxZQgEHd7mn9z40e42xKqMrde8ZJgpGKwWl5Ov$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/OfficeDev/microsoft-teams-emergency-operations-center/issues/77*issuecomment-1457524927__;Iw!!MjjDChyg_1Rg!5fFHqDnNEmGHadBanjwH0wPpFwFspfN_h6j9Crt3zb0YiC1GDcEWgyYxZQgEHd7mn9z40e42xKqMrde8ZJgpGKb1eedP$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/A6H57DSSGLJHZWPEGOSGVETW2242JANCNFSM6AAAAAAVONOTUY__;!!MjjDChyg_1Rg!5fFHqDnNEmGHadBanjwH0wPpFwFspfN_h6j9Crt3zb0YiC1GDcEWgyYxZQgEHd7mn9z40e42xKqMrde8ZJgpGAo1AEYt$.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>Saint Luke's Health System Confidentiality Notice
This message is for the designated recipient only. It may contain privileged, proprietary, or otherwise private information and is legally protected. If you have received it in error, please notify the sender immediately and delete the original. You are prohibited from distributing this email without permission. Please consider the environment before printing any  e-mail.

Hi @kcrdlr,
Thanks for confirming that. Please be noted that we already have fixed the issue to handle /teams managed path and it will be deployed as part of the next upcoming release. Thanks!

Hi @kcrdlr ,
The fix for this issue was released as part of the v2.0 TEOC release last week. Could you please follow the instructions mentioned for Upgrade to Latest version from the wiki and let us know if you are able to create incidents successfully. Thanks!


Compilation issues with protobuf files

I'm getting this error thrown when I try to compile:
# github.com/weeaa/jito-go/pb
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:116:6: SubscribePacketsRequest redeclared in this block
        ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:23:6: other declaration of SubscribePacketsRequest
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:122:35: method SubscribePacketsRequest.Reset already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:29:35
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:131:35: method SubscribePacketsRequest.String already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:38:35
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:135:33: method SubscribePacketsRequest.ProtoMessage already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:42:33
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:137:35: method SubscribePacketsRequest.ProtoReflect already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:44:35
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:150:33: method SubscribePacketsRequest.Descriptor already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:57:33
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:154:6: SubscribePacketsResponse redeclared in this block
        ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:61:6: other declaration of SubscribePacketsResponse
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:167:36: method SubscribePacketsResponse.Reset already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:70:36
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:176:36: method SubscribePacketsResponse.String already declared at ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/block_engine.pb.go:79:36
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/shredstream.pb.go:23:6: Heartbeat redeclared in this block
        ../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/shared.pb.go:71:6: other declaration of Heartbeat
../../../go/pkg/mod/github.com/weeaa/jito-go@v0.0.0-20240717152351-390b5f43b1d0/pb/relayer.pb.go:176:36: too many errors

I was doing some tests with the package last week and it was working fine, but I created a new project to work from and now compilation throws these errors. Didn't want to go editing generated files, as could be a bug on my end. Any thoughts?

hey this issue should have been addressed in the latest commit, sorry for the wait. let me know if it works in your end

Hey, yes this has been fixed. Please do not apologise, you're doing god's work ser.


Incorrect Text Encoding

Hi, thanks for making this plugin
I was looking for a plugin that can deal with xz compressed text, something like xzcat, but ended up finding this, it's been very useful
Problem:
I got a txt file containing asian characters, in UTF-8, opened with Npp, displayed OK, with encoding in UTF-8 automatically selected.
Now, gzip it with 7-zip, open the result *.gz file with Npp, everything is a mess, encoding in ANSI automatically selected.
If I manually click to tell Npp this file's encoding is in UTF-8, all characters display correctly
It would be great to have decompressed text displayed in correct encoding :)

It seems that npp has problems to automatically detect the encoding if the file is UTF-8 encoded with asian characters. I added an option to open all ANSI files (zipped) as UTF-8. I didn't test it much, yet.

Thanks for the quick response.
On my side, npp(v7.9.4 x64) has no problem detecting the encoding of original plain text automatically, everything displayed good
The text file aforementioned is in UTF-8, not UTF-8-BOM
With your newer release(v1.2.0), and "Open ANSI as UTF-8" checkbox CHECKED, the content of gzipped file displayed correctly.
Somehow it works.
However, I convert this txt file from "UTF-8" to "UTF-8-BOM" using npp, the size grows bigger slightly, then gzip it
With your newer release, and "Open ANSI as UTF-8" checkbox UNchecked, the gzipped file still displayed like a mess.
Manually click "UTF-8-BOM" in the "Encoding" menu of npp will correct the display
I test more
I convert this txt file from "UTF-8" to "UCS-2 LE BOM" using npp, then gzip it using 7-zip
With your newer release, and "Open ANSI as UTF-8" checkbox UNchecked, the gzipped file displayed like a mess.
But, manually click any item in the "Encoding" menu of npp WON'T correct the display now
If I unzip the gz file back to txt, using 7-zip, all displayed good, so the compression is lossless
The windows notepad says the txt is in "UTF-16 LE", while npp says it's in "UCS-2 LE BOM"
It seems like the decompressed content is corrupted?
In the final test case above, I feel the content decompressed is missing something too much since selecting the encoding manually cannot make it correct
The following line, which I use for test, is a movie title containing Japanese, English and Chinese characters. Save it using windows notepad and see if the problem exists, if you have free time :)
コンフィデンスマンJP 英雄編

Thx, the decompresseion is not corrupted. The internal text editor of npp, scinitilla, only supports utf8 and not utf16. I just coppied the data, so the encoding didn't match.
Basically Npp reads the file, detects the encoding and (if needed) converts it to utf8. When the file is saved npp converts it back.
If only utf-8 is used (scintillas buffer encoding and the files encoding) npp just coppies the data. So it seems I can not support utf-16 automatically since npp will try to convert the compressed file (just a byte array) as UTF-8 to UTF-16. I keep track of the file encoding and convert it to utf-8 for scintilla and just say to npp that it should use the utf-8 view.

Danke, v1.2.1 works
Save a txt in UTF-16, gzip it, open .txt.gz with Npp, Npp says it's in UTF-8
now edit directly, adding some more characters, click save in Npp, close Npp
ungzip the modified .txt.gz, open the extracted txt with Npp, it's in UTF-16

Sorry to bring this up but I've encountered another problem:
The gzip compression and decompression done by 7-zip is okay and lossless.
The encoding displayed is correct, the content is readable until a "NUL" character in the original txt, after that the content is missing.
Perhaps some weird characters make the plugin think that this is the end of of the stream to decompress and display?


Add 256B and 512B configs

Not yet fully ready for review, still need to test some compiler flags.


feat: postpone null expansion as much as possible

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
I.e., try the best to keep NullVector in memtable.
Result
write bench
Saves ~40GB peek memory, from >64GB to ~24GB. Alleviate write stall from ~30s to ~6s.

Before

After

TSBS read bench
the last_point case has regression

test
before(ms)
after(ms)
change

cpu-max-all-1
14.13
12.08

cpu-max-all-8
79.57
59.29

double-groupby-1
728.76
716.26

double-groupby-5
1193.33
1162.45

double-groupby-all
1902.98
1853.60

groupby-orderby-limit
499.06
576.94

high-cpu-1
9.69
9.31

high-cpu-all
6402.76
6262.76

lastpoint*
6141.70
6871.30
⬆

single-groupby-1-1-1
10.51
9.44

single-groupby-1-1-12
8.58
8.45

single-groupby-1-8-1
20.39
20.83

single-groupby-5-1-1
9.26
9.85

single-groupby-5-1-12
10.00
9.83

single-groupby-5-8-1
30.37
31.19

Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.
[x]  This PR does not require documentation updates.

Refer to a related PR or issue link (optional)

What's the progress of this PR? Are we still working on it? @waynexia

What's the progress of this PR? Are we still working on it? @waynexia

This PR itself is done I think. Waiting for further review.

I prefer to expend null vectors inside the memtable iterator to keep items from the same iterator have a consistent schema. Manual expanding null vectors also makes the code unclean and it only works in limited situations (all rows of a column must be null). Since we changed the semantic type of the tag column we can postpone this optimization.

Do we want to close this PR currently? @waynexia @evenyag

Close as not planned (yet


Add ed25519-sha2 signature code

Since it is possible to encode ed25519 (sha2?) public key already with 0xed, it would be great to encode ed25519-sha2 signature in the same way.
The following related issues are not actively updated, but the introduction of "multisig"/multisign may greatly help us in https://github.com/hyperledger/iroha to migrate from one cryptography algorithm to another without losing backward compatibility.
https://github.com/multiformats/multiformats/issues/23
https://github.com/multiformats/multicodec/pull/125
Ping @yusefnapora

Hey @lebdron, thanks for bringing this up again during our sync call earlier. I was reviewing the codec table a second ago and thinking about this.
Would it be possible to just combine the existing code for ed25519 keys (0xed) and the code for sha2-256 (0x12)?
So your implementation of "multi-signature" or whatever it gets called would be to pull two varint-encoded multicodecs, one for the key type, and one for the hash algorithm. In this case, it would be 0xed 0x12, but you wanted e.g. sha3-512 you'd use 0xed 0x14 instead.
Just a thought - if you do need a new code, I think submitting a PR to this repo as @raulk suggested would be fine.

I'd be careful about allowing the hash function to be customized like this. An attacker could:

Retroactively change the "hash algorithm" to a less secure one.
Cook up a new message with the same hash digest in this new hash algorithm.

Ideally, the hash algorithm would be a property of the key (so changing the algorithm changes the identity of the author).
(yes, you can just ban insecure algorithms, just be careful)

@yusefnapora @Stebalien Any updates?

@yusefnapora has actually been working on a signed envelope spec which should be useful here: https://github.com/libp2p/specs/pull/217/files#diff-1d3e44bb1e34e0581019f35b96151a0d.
Unfortunately, it does use libp2p keys which don't use multicodecs to identify key types.

Thanks for the reply! I looked at the RFC, and the problem is that KeyType is not available in Iroha. What if instead we add just public key types (without signature types), so that we only extend existing ed25519-pub code?

Does not seem to be an issue anymore, as signatures are not transferred without corresponding public keys, and there is already a codec present for the ed25519-sha2 public key.


Stylesheet is broken for bullet lists - on FF

See this screenshot:

The bullet point is not properly aligned with the bullet labels.
This is the latest Firefox.

Thanks for reporting, @knz, but there's actually a lot more going haywire with the styling right now. Looks like all callouts (tips, warnings) are not getting closed properly. I think I messed something up in https://github.com/cockroachdb/docs/pull/1014. Looking now.

Fixed that other issue but still seeing what @knz reports, just on firefox.
@sploiselle, can you take a look at this? I don't see what would cause this in the css.

Fixed at some point in the past.


V15 rewrite

Despite multiple attempts by contributors and myself, it was very difficult to cleanly retrofit the plugin to newer versions of Nx. So the whole plugin has been rewritten from scratch:

Nx architecture and internal APIs have evolved significantly (for the better) since v12
v15 introduces a cleaner approach to compilers - we now use the @nrwl/js:tsc plugin as a base
Nx Plugin architecture is much easier to extend in v15, so there is far less copy/paste code
Nx v15 supports JS async generators, which means we can now properly support --watch in the plugin
Simpler solution, less code, less maintenance
No more need for e2e patch shenanigans

This first step enables next steps & aims which are to support:

The new Firebase SDK codebase feature
Support multiple Firebase functions applications per codebase, so that deployments & dependencies can be better managed
Support named Firebase projects as generator options rather than the default
Support --watch on serve commands
Sunset use of configs in favour of the Firebase function parameters
Hopefully support ability to import web-packed libraries to functions, which should help reduce dependency concern where micro-libraries are created simply to minimize what's imported to a function to ensure faster cold starts.

e2e tests failing for some reason I'm trying to figure out. Not working on my local either anymore....

Ok so building before and after updating a source file changes the error (no deps detected), but 2nd build just used cached output from 1st build. So changes to source files in the e2e test in between are not being detected by Nx for some reason. Classic Nx experience.

Fed up with this now, spent too much time on it. The e2e test workspace simply does not calculate dependencies properly. I'm getting various different errors:

typescript 'not in rootDir' errors when adding an import to a buildable workspace library
the project dep graph doesnt update properly when adding library dependencies, so even the firebase npm dependencies dont get output to the dist package.json
the cached build is used even when a source file is modified - suggesting the input files being hashed are not correct
turning off the daemon makes no difference
adding @nrwl/js plugin config to force analyzeSourceFiles to true makes no difference (which is shouldnt anyway)
sometimes running commands outside the e2e test with the daemon enabled does fix some of these, but I've no idea what the reason for that is
maybe @nrwl/js:tsc executor doesnt like being used to build apps (it only has lib generator now)?
The @nrwl/node:node executor is no use, nor is the @nrwl/node:webpack executor, as we just want to typescript compile our functions code. (which @nrwl/node:package used to do, but this has been removed from Nx)

My overall hunch is that these issues are all e2e workspace related, so lets see if the plugin works when installed in a real workspace.

Oh and updating to v15.3.0 of Nx seems to mean that all generated tsconfig files have changed which doesn't give confidence that Nx is anywhere close to stable.
I like Nx, but boy my experience is that it is persistently buggy and the amount of things that change between releases is wild.


Relax colorama and typing-extensions

🚨Please review the guidelines for contributing to this repository.
Description
Relaxed colorama and typing-extension. Got hit by it today.
Closes #1258
Checklist

[ ] Created tests which fail without the change (if possible)
[ ] All tests passing
[ ] Added a changelog entry
[ ] Extended the README / documentation, if necessary

None of those things 😢

Thank you @sobolevn !
I plan to issue a new release this week :) Let me know if it is more urgent in your case

Btw, https://habr.com/ru/company/oleg-bunin/blog/576496/

I plan to issue a new release this week :) Let me know if it is more urgent in your case

Nothing urgent, I am just playing around!

Btw, https://habr.com/ru/company/oleg-bunin/blog/576496/
Oh, I see that you are the article's author

Yep :) It took some time to write this up, but it is finally there :)


Use updated README license section.

Fixes link to NC license.

Codecov Report

Merging #57 (114b612) into main (5752dc2) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #57   +/-   ##
=======================================
  Coverage   94.20%   94.20%
=======================================
  Files           3        3
  Lines         742      742
=======================================
  Hits          699      699
  Misses         43       43

Continue to review full report in Codecov by Sentry.

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


Moving all uno calls to an XMLRPC server also run by the server,

Moving all uno calls to an XMLRPC server also run by the server, to make lighter clients.

This sounds like a great improvement, this also allows anyone to connect to the service from any programming language that supports XMLRPC right?

Yes.


Consider strides in BLAS nodes and global symbols as free symbols

Maybe we should add an explicit test for this?

Also some bugs with regards to types. Here a float is recasted to int.
bugTest.zip

@manuelburger This bug is unrelated to the BLAS nodes in this PR, but will be addressed (with your sample as a unit test) in the next PR (the "In Progress" cards in https://github.com/spcl/dace/projects/2)
Thanks!

@manuelburger updating you that this issue was fixed. Thanks!


Error with Typescript >= 2.9: Type 'keyof T' does not satisfy the constraint 'string'

Using Typescript >= 2.9 an error occurs while bundling a typescript/preact/preact-redux project due to some breaking changes regarding keyof.
Versions I'm using:
<EMAIL_ADDRESS><EMAIL_ADDRESS>
The error:
ERROR in [at-loader] ./node_modules/preact-redux/src/preact-redux.d.ts:16:48
    TS2344: Type 'keyof T' does not satisfy the constraint 'string'.
  Type 'string | number | symbol' is not assignable to type 'string'.
    Type 'number' is not assignable to type 'string'.

A quick fix suggested over at https://github.com/Microsoft/TypeScript/issues/25260#issuecomment-400600877 is to set "keyofStringsOnly": true in the tsconfig.json

I just noticed that this will probably be fixed with this PR: https://github.com/developit/preact-redux/pull/30


2.x Add wp_object() method and $wp_object property for Core objects

Ticket

Resolves #2560

Issue
We have no reference to the original WordPress core object for most of the Timber objects.
Solution
This pull request:

Adds a wp_object() method and a protected $wp_object property for all Timber objects that extend Timber\CoreEntity. I didn’t add the wp_object() method to CoreEntity, because then we couldn’t have the proper return types, which are different for each object.
Adds a CoreEntityInterface with the wp_object() method. The interface doesn’t specify a return type, because the types are different for each object that implements the interface. I didn’t choose the CoreInterface to add the wp_object() method, because there are other classes that extend Core where it wouldn’t make sense to have a wp_object() method, like Timber\Archives.

Impact
This shouldn’t add another breaking change, because the CoreEntity class is new in 2.0.
Usage Changes
In cases where you need to use original WordPress object, we can now use {{ object.wp_object.something }}.
Considerations
I just assumed that not setting the return type on an interface is fine. I don’t know whether this is bad practice or not.
We can also start using $wp_object for certain methods in Timber’s core, as discussed in #2560. However, in cases where a public property can be updated before $wp_object is used, this might be a breaking change.
For example: If we used $wp_object in the Timber\Post::title() method, then you wouldn’t be able to change the public $post_title property in Timber\Post before you use Timber\Post::title().
namespace Timber;

class Post
{
    public $post_title;

    public function title() {
        return apply_filters( 'the_title', $this->wp_object->post_title );
    }
}

$post = Timber::get_post();

// "Something"
echo $post->post_title;

$post->post_title = 'Overwritten';

// "Something"
echo $post->title();

Testing
Not yet. I first wanted to get some feedback on whether the logic is right.
Todo

[ ] Add tests
[ ] Add documentation

@nlemoine I’d be glad if you could check out the changes here before I write the tests and the documentation.

However, in cases where a public property can be updated before $wp_object is used, this might be a breaking change.

It depends how you consider those properties. I personally think they should be readonly and you should not be able to change them. Since we're not using any ORM ($orm->persist($post);), I don't really see the point in changing model properties. Moreover, filters are here for this kind of purpose.
IMO, Timber is too permissive regarding properties right now (everything is public) and I'd like to move to stricter models. This would leverage easier memoization, etc.
But we'll be talking about this when we start writing 3.x branch ;)

IMO, Timber is too permissive regarding properties right now (everything is public) and I'd like to move to stricter models. This would leverage easier memoization, etc.
But we'll be talking about this when we start writing 3.x branch ;)

Totally agree with you. And I also think that’s a problem to tackle in 3.x.
I added some tests and a note in the Upgrade Guide and I’m going to merge this pull request now.


Version of this package that Atom installed is out of date?

Hey, I installed this package in Atom, and it worked mostly how I wanted but I made a couple changes (undo grouping and making cursors stay where they are instead of moving to the end of the line).
Then I came here to make a PR, and found that both those issues have been fixed; one yesterday, and one nearly a year ago.
I checked Atom's settings, and yep, it says I have version 0.12.1 installed. And this repo says it's 0.12.1. The code in this repo is very different from the code in the package that Atom installed.
What's going on here? Why would Atom have installed a version that is a year or more old?

Ohhh okay. Thanks!

Hello @JarrettBillingsley and @jcmarchi
I will update the npm package soon

done

Great, thanks! 👍


Draft "Help tab" changes

Here's a first draft of some changes to the About page.  There's still some clean-up to do -- for example, if you accept the general idea of a separate "Console log" window, I imagine that you'd prefer a new forms/consoleLog.ui file instead of doing it all in C++.  I'm putting this forward as the start of a discussion, not as a candidate for immediate merging.  (unless you really like the idea and feel like polishing the rough bits yourself :)
The general idea behind the console log window: the current console log is probably not going to be used by many people -- and if somebody does use it, they'd probably prefer it to be bigger.  Having a separate non-modal window addresses both desires.

I think unifying the Help and Shortcuts paragraphs is a good idea as well as displaying as HTML which allows for better formatting.
I'm not sure about hiding the Console Log yet, it would have made sense from a memory performance perspective, but now that I automagically truncate extra long command outputs it's less of a worry now. I'll sit on it until next week and see if it grows on me from a the usability perspective. :-)
You mentioned a pending commit in 097752c?

Ok, I've updated this PR to only address the HTML and merging "about" and "keyboard shortcuts".  I'll put the Console stuff in a separate PR for you to look at next week.  :)
The "pending commit" was the next one in the series -- "Use single QTextEdit for Help tab text".  (the hashes have changed since I accidentally rebased this PR on current master.  I'm so used to typing git rebase -i master that sometimes I do it even when I shouldn't!)


Duplicated date tags

Hi Ryan and many thanks for your timeline, so well done that I want to use it on my online CV.
I am having an annoying issue with it though. I use it on 2 pages, with 2 different IDs, and the date tag gets duplicated on one of those 2 pages if I reduce the screen size to mobile.
If you have time to debug it, you can see it here http://mobile.chriswillox.com/#experience from a mobile device or just by reducing the size of your desktop window.
I have tried to remove jQuery mobile and other script I use on my page but they don't seem to interfere with yours.
Running out of idea and really hope you could find what is causing this. Many thanks in advance.
Chris

Hey Chris,
Glad you like it and thanks for bringing this to my attention! It looks like the problem was with the way some referencing was done, so if you grab the updated JS the problem should be resolved.
Let me know how it goes,
Ryan

Hi Ryan,
Great fix!

It works perfectly.
May thanks,
Chris

Awesome, glad to hear!
Ryan


it can not keep consistent updating between  State and UI ( rendering )

One component named Todo has a render function as following. It will ganerate one Todo list with js codes compiled  by React Templates. 2 problems will happen:

If todo.key is integer (which can be zero),  add operation would be not work well.
After delete one todo array element  of state,  UI element can not be removed correspondingly.

I am a fresher of Preact. Maybe they are related to  preact/src/vdom/build.js, please check and confirm. Thanks.

        this.remove(todo)"
             title="Remove Todo" />
        <input type="checkbox" checked="{todo.done}" onChange="()=>this.toggleChecked(todoIndex)"/>
        {todo.value}

    <input key="myinput" class="new-todo" placeholder="What needs to be done?" type="text"
           value="{this.state.edited}"
           onKeyDown="{(e) => this.inputKeyDown(e)}"
           onInput="{this.linkState('edited')}"
           autoFocus="{true}"/>
    <button onClick="()=>this.add()">Add</button>

    <button onClick="()=>this.clearDone()">Clear done</button>

If i remove the attribute key of ,   the 2nd problem will disappear.

Hi Steven,
I've never used React Templates, and honestly I wouldn't recommend an approach like that in the first place.  Here's a working example of what you wrote, without any of the templating stuff:
https://jsfiddle.net/developit/hq33t3vm/

That being said, it looks like there is an issue with integer keys, which I will certainly look into!

Hi Jason,
thanks for your answer.

Fixed in 3.4.0!


MacOS multicast bound socket is unable to receive multicast packets

Describe the bug
The sockets on MacOS binded to ::0 and <IP_ADDRESS> are not able to receive incoming multicast packets despite having addMembship called. Despite this, these sockets are still able to receive the multicast packets sent on the same interface with IP_MULTICAST_LOOP enabled.
This behavior is not exhibited with Linux hosts.
The MacOS system dns-sd command is able to find registered services from other devices made by our MDNS stack. This means that the only explanation our MDNS stack on a MacOS host not finding the registered service is that the the socket.addMembership is silently failing, or we are passing it incorrect parameters on MacOS specifically.
If this is not fixed, js-mdns on MacOS would only be able to facilitate discovery on the same device
To Reproduce

import type { Hostname, Port } from '@/types';
import * as events from '@/events';
import MDNS from '@/MDNS';

describe(MDNS.name, () => {
  let mdns1: MDNS;
  let mdns2: MDNS;

  beforeEach(async () => {
    mdns1 = new MDNS();
    mdns2 = new MDNS();
  });
  afterEach(async () => {
    await mdns1.stop();
    await mdns2.stop();
  });
  test('register', async () => {
    const mdnsPort = 5353 as Port;
    const mdns2Hostname = 'polykey2' as Hostname;
    await mdns2.start({ hostname: mdns2Hostname, port: mdnsPort, groups: ['<IP_ADDRESS>'] });
    const service = {
      name: 'test2',
      port: mdnsPort,
      protocol: 'udp',
      type: 'polykey',
    } as Parameters<typeof MDNS.prototype.registerService>[0];
    mdns2.registerService(service);
    await new Promise(() => {})
  });
  test('query', async () => {
    const mdnsPort = 5353 as Port;
    const mdns1Hostname = 'polykey2' as Hostname;
    await mdns1.start({
      hostname: mdns1Hostname,
      port: mdnsPort,
      advertise: false,
    });
    mdns1.startQuery({
      protocol: 'udp',
      type: 'polykey',
    });
    await new Promise((resolve) => {
      mdns1.addEventListener(
        events.EventMDNSService.name,
        (e: events.EventMDNSService) => {
          console.log(e);
          resolve(null);
        },
      );
    });
  });
});

Run npm run test -- -t 'register' on a non-MacOS system.
Run npm run test -- -t 'query' on a MacOS system.
The expectation is that an event will be logged on the MacOS system for the service being discovered. A console.log can also be put after handleSocketMessage under if (packet.id === this._id) return; to show that no incoming multicast packets have been received. (must be placed after this statement, so that packets sent by the MacOS host itself are filtered out)
Expected behavior
Incoming multicast packets should be correctly received by the the multicast sockets bound by MDNS.
Screenshots

Platform (please complete the following information)

Device: Macmini9,1
OS: MacOS 13.1 (Build 22C65)
Version: v20.5.1

Additional context

https://nodejs.org/api/dgram.html#socketaddmembershipmulticastaddress-multicastinterface
https://stackoverflow.com/questions/65534342/receiving-udp-multicast-on-macos-big-sur

Notify maintainers
@amydevs

Check if ciao has the same problem.


Remove @FrameworkAgnostic Markers

Is your feature request related to a problem? Please describe.
Once issue #729 is complete, @frameworkagnostic markers (which were needed when using Travis) should be removed since we not not anymore reach any time limit for tests. This will guarantee that each test is run by each framework.

Duplicate of #807


Update app initialization doc

A couple suggestions to add clarity. Would also be good to start a migration doc where we can enumerate all the changes between v2 and v3.

Good idea. I will add a migration doc in a separate PR. Thanks for review!