Fixing potential infinite loop when logging errors

There is a case where we may error out during one of the log messages below which will cause us to re-error. Moving the ERRORED state change above and adding an if statement should resolve this.

Results for crc_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_backpack
Pass
0
00:00:02

test_byowl
Pass
0
00:01:35

test_fiod
Pass
0
00:08:17

test_fs_drift
Pass
0
00:05:11

test_hammerdb
Pass
0
00:04:30

test_iperf3
Pass
0
00:03:48

test_pgbench
Pass
0
00:02:27

test_smallfile
Pass
0
00:05:16

test_sysbench
Pass
0
00:01:35

test_uperf
Pass
0
00:17:20

test_ycsb
Pass
0
00:01:35

Results for minikube_jjb

Test
Result
Retries
Duration (HH:MM:SS)

test_backpack
Pass
0
00:01:59

test_byowl
Pass
0
00:01:59

test_fiod
Pass
0
00:09:50

test_fs_drift
Pass
0
00:05:30

test_hammerdb
Pass
0
00:04:07

test_iperf3
Pass
0
00:04:08

test_pgbench
Pass
0
00:02:22

test_smallfile
Pass
0
00:06:30

test_sysbench
Pass
0
00:01:44

test_uperf
Pass
0
00:20:14

test_ycsb
Pass
0
00:01:53

/rerun crc


Fixes case where optional user inputs broke computation

The execute function gets all upstream nodes of the required node to compute.
This will mean that there will likely be "user input" nodes to cycle through. When
we were computing the DFS value for them, we would assume they were required.
To illustrate, if you had a function that had optional input, baz e.g.

def foo(bar: int, baz: float = 1.0) -> float:

And then requested foo from the driver, there would be three nodes to compute: foo, bar, baz.
This meant that if you did not pass in a value for baz, and baz
was a user input, Hamilton would complain that a required node
was not provided. Even though it was not required for computation.
So to fix that, in execute any user node is now marked with optional.
I believe this is fine to do, because if this is not the case, there will be a
node in the graph that will have baz as a REQUIRED dependency, and
thus things will break appropriately.
To help with that, I also fixed and added some unit tests.
One unit test is to ensure that we don't remove passing in None values
as part of the kwargs to the function. Since that's what we do now, and this
was another way to fix this bug, which I think would be the wrong solution.
To reproduce the bug:
# repro.py
import pandas as pd
def foo(bar: int = None) -> pd.Series:
    return pd.Series([bar])

from hamilton import driver
import repro

dr = driver.Driver({}, repro)
df = dr.execute(['foo'])
print(df)

Causes:
NotImplementedError: bar was expected to be passed in but was not.
Changes

any user node, when we come to compute, from a top level is optional.

Testing

Adds unit tests.
Repro case now results in:

0  None

Notes
Checklist

[x] PR has an informative and human-readable title (this will be pulled into the release notes)
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[x] Passes all existing automated tests
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged / future TODOs are captured in comments
[x] Project documentation has been updated if adding/changing functionality.
[x] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist
Python - local testing

[x] python 3.6
[x] python 3.7

Ray issue is due to https://github.com/ray-project/ray/issues/25282

Ok, I think I see what you're getting at here. i think its OK, but not 100% sure. I guess my question is why would anyone be asking for the user-provided input as an output? Feels a little wonky, but I don't see a great reason why not...

I think this looks good -- if I fully understand. Don't 100% get the original use-case this was breaking though...

added example breaking case to description.

I think this looks good -- if I fully understand. Don't 100% get the original use-case this was breaking though...

Ok I think I understand. Surprised we didn't catch this the first time, and it feels a little hacky, but I think its a fine solution.

I think this looks good -- if I fully understand. Don't 100% get the original use-case this was breaking though...

added example breaking case to description.

Alright, yep, makes sense. Thanks!


Update CLI extensions available doc

Update CLI extensions available doc.
Triggered by Azure/azure-cli-extensions - TRAVIS_BUILD_ID=518439673
https://github.com/Azure/azure-cli-extensions/commit/4c14ac3599c7eddb8a9d9647cd5b6979847f4493

Docs Build status updates of commit 6f2ac5d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


await createComment() call in CI

The catch block is never reached, because the function  is asynchronous

Could you go ahead and merge this change to your other branch where the check is failing? The check only attempts to write a comment if there is a change in memory allocations, which your other PR does have, so should be able to show the fix working in that context.


redirect callback errors

when it fails (ie the token verification) it redirects to the home page with the same querystring making a new request for the code exchange and making it fail with a different error

Fixed in #409 and merged into dev


Lark.open_from_package() does not support namespace packages

Describe the bug
Lark.open_from_package() cannot load grammars located in namespace packages.
To Reproduce
Place a grammar in a namespace package and then try to load it using open_from_package(). Lark issues the following exception when it can't find the grammar file:
lark.exceptions.GrammarError: Using an undefined rule: NonTerminal('start')
P.S. I love Lark!

The fact that it mange to raise this errors means it did find the grammar file, or it found a different grammar file. What does the grammar file contain?

Thanks for the insight @MegaIng. Happy to report that I set up the namespace wrong. Lark.open_from_package() is working great now.
Closing the issue accordingly.


Create bank-searcher

This plugin allows players to see and search the items in their bank while they are away from a bank.

I think the bank memory plugin does this?

@raiyni Yeah, you're right. My plugin is very similar to this one. I'll go ahead and close the PR.


Call 1 followup

[x] save video to pathways folder
[x] website - link to video, slides
[x] website - add resource links
[ ] website - update any speakers info
[x] export registration list - save to planning folder
[x] export Call 1 participants list - save to planning folder
[ ] Slack - add new joiners to private pathways channel; team member to post a welcome there

@IleanaF What affiliation info should I use for Bárbara Pinheiro? To parallel yours and Aliyah's

https://openscapes.github.io/pathways-to-open-science/2024.html#call-1-january-25-what-is-open-science-anyway-what-can-it-mean-for-you

@stefaniebutland Reached out to Barbara to confirm. Will update here! Thank you so much. This looks great!

@stefaniebutland here is Bárbara's affiliation
Here is my affiliation
Dr. Barbara Pinheiro - Post Doc research fellow, PELD CCAL- Universidade Federal de Alagoas, Maceió- Brazil   * the link is for our page in Portuguese
Thank you!

added thank you!


add request handlers for SignMekatekBuild and SignMekatekChallenge

For meketek signing on horcrux, we need to add support for the additional handlers.
https://github.com/meka-dev/tmkms/compare/v0.12.2...v0.12.2-mekatek.2

dupe #109


flutterfire configure command generates wrong options file

What is the purpose of "androidClientId" option for the IOS FirebaseOptions group?
"flutterfire configure"  command generates IOS settings with "androidClientId"
static const FirebaseOptions ios = FirebaseOptions(
    apiKey: 'XXX,
    appId: '1:XXX',
    messagingSenderId: '746XXX,
    projectId: 'app-xx-xxx',
    storageBucket: 'app-xxxx.appspot.com',

    androidClientId: 'xx.apps.googleusercontent.com',

    iosClientId: 'xx.apps.googleusercontent.com',
    iosBundleId: 'app.xx.xxx',
  );

This is correct, ios needs the androidClientId for dynamic links functionality.


[vcpkg] Add vcpkg_check_feature, vcpkg_check_features

When working on https://github.com/microsoft/vcpkg/pull/4979, I realized this pattern has been repeated too much:
if(<feature> IN_LIST FEATURES)
    set(<var> ON)
else()
   set(<var> OFF)
endif()

vcpkg_config_cmake(
    ...
    OPTIONS
        -D<var>=${var}
)

So it is time to create a little shiny macro/function for this.
czmq has a lot of optional libraries:
if("draft" IN_LIST FEATURES)
    set(ENABLE_DRAFTS ON)
else()
    set(ENABLE_DRAFTS OFF)
endif()

if("httpd" IN_LIST FEATURES)
    set(CZMQ_WITH_LIBMICROHTTPD ON)
else()
    set(CZMQ_WITH_LIBMICROHTTPD OFF)
endif()

if("tool" IN_LIST FEATURES)
    set(BUILD_TOOLS ON)
else()
    set(BUILD_TOOLS OFF)
endif()

if("curl" IN_LIST FEATURES)
    set(CZMQ_WITH_LIBCURL ON)
else()
    set(CZMQ_WITH_LIBCURL OFF)
endif()

if("lz4" IN_LIST FEATURES)
    set(CZMQ_WITH_LZ4 ON)
else()
    set(CZMQ_WITH_LZ4 OFF)
endif()

if("uuid" IN_LIST FEATURES AND
   VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
    set(CZMQ_WITH_UUID ON)
else()
    set(CZMQ_WITH_UUID OFF)
endif()

vcpkg_configure_cmake(
    SOURCE_PATH ${SOURCE_PATH}
    PREFER_NINJA
    OPTIONS
        -DENABLE_DRAFTS=${ENABLE_DRAFTS}
        -DCZMQ_WITH_LIBMICROHTTPD=${CZMQ_WITH_LIBMICROHTTPD}
        -DCZMQ_WITH_UUID=${CZMQ_WITH_UUID}
        -DCZMQ_WITH_LIBCURL=${CZMQ_WITH_LIBCURL}
        -DCZMQ_WITH_LZ4=${CZMQ_WITH_LZ4}
)

This patch provides a macro(vcpkg_check_feature) and a function(vcpkg_check_features). With the help of this new module, it can be simplified as:
vcpkg_check_feature(draft ENABLE_DRAFTS)
vcpkg_check_feature(httpd CZMQ_WITH_LIBMICROHTTPD)
vcpkg_check_feature(tool BUILD_TOOLS)
vcpkg_check_feature(lz4 CZMQ_WITH_LZ4)
vcpkg_check_feature(curl CZMQ_WITH_LIBCURL)

if("uuid" IN_LIST FEATURES AND
   VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
    set(CZMQ_WITH_UUID ON)
else()
    set(CZMQ_WITH_UUID OFF)
endif()

vcpkg_configure_cmake(
    SOURCE_PATH ${SOURCE_PATH}
    PREFER_NINJA
    OPTIONS
        -DENABLE_DRAFTS=${ENABLE_DRAFTS}
        -DCZMQ_WITH_LIBCURL=${CZMQ_WITH_LIBCURL}
        -DCZMQ_WITH_LIBMICROHTTPD=${CZMQ_WITH_LIBMICROHTTPD}
        -DCZMQ_WITH_LZ4=${CZMQ_WITH_LZ4}
        -DCZMQ_WITH_UUID=${CZMQ_WITH_UUID}
)

or
vcpkg_check_features(
    draft ENABLE_DRAFTS
    httpd CZMQ_WITH_LIBMICROHTTPD
    tool BUILD_TOOLS
    lz4 CZMQ_WITH_LZ4
    curl CZMQ_WITH_LIBCURL
)

if("uuid" IN_LIST FEATURES AND
   VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
    set(CZMQ_WITH_UUID ON)
else()
    set(CZMQ_WITH_UUID OFF)
endif()

vcpkg_configure_cmake(
    SOURCE_PATH ${SOURCE_PATH}
    PREFER_NINJA
    OPTIONS
        -DCZMQ_WITH_UUID=${CZMQ_WITH_UUID}
        ${FEATURE_OPTIONS}
)

I still have the following concerns:

Is defining two new functions in one .cmake a good pattern?
Is it easy to distinguish between vcpkg_check_feature and vcpkg_check_features?
Is vcpkg_check_feature(s) a good name?
Does the syntax of vcpkg_check_features look weired?

I'm not sure having two separate macros is needed.  I lean toward just vcpkg_check_features (unless others decide it looks weird) because it can still be called with one set of arguments.

@Rastaban Thanks! That sounds resonable to me.

TODO: Take this form into consideration:
if(<option>MATCHES "ON")
endif()

https://github.com/microsoft/mimalloc/blob/91222691cb21a6fb7a9760a264ff1183a1237fd4/CMakeLists.txt#L45

Agreed with @Rastaban, drop the singular version.

@cbezault Thanks for your reply!

Could you modify one port to use this new feature and add it to this PR?

Could you modify one port to use this new feature and add it to this PR?

Thanks! Done.

Oops! It seems that I made a mistake here:
if("non-posix" IN_LIST FEATURES)
vcpkg_check_features(non-posix ENABLE_POSIX_API)
    set(ENABLE_POSIX_API OFF) # Not `ON` here
else()
    set(ENABLE_POSIX_API ON)
endif()

can not be replaced with:
vcpkg_check_features(non-posix ENABLE_POSIX_API)

I will fix it.

https://github.com/microsoft/vcpkg/pull/7091


Webpage did not start on Home Assistant, but Raspberrymatic still working

Describe the issue you are experiencing
Clicking on "RaspberryMatic" in Home Assistant  did not start the Webpage.
I get shown "The add-on does not seem to be ready yet, maybe it is still starting. Do you want to try again?".
But the Add-On ist startet and green.
Of course I restartet the add-on and the whole system many times.
Toda I updatet to the latest version: <IP_ADDRESS>40420 - but I cannot say if this is the purpose of this issue.
Describe the behavior you expected
CCU Startpage should be shown.
Steps to reproduce the issue
Click on the PaspberryMatic Button direct in the left panel.
What is the version this bug report is based on?
<IP_ADDRESS>40420
Which base platform are you running?
ha-addon (HomeAssistant Add-on)
Which HomeMatic/homematicIP radio module are you using?
HmIP-RFUSB
Anything in the logs that might be useful for us?
In Home Assistant  Journal itself:

 21 13:41:10 homeassistant homeassistant[516]: 2024-04-21 15:41:10.173 WARNING (MainThread) [aioesphomeapi.connection] athom-presence-sensor-f9a5bf @ <IP_ADDRESS>: Connection error occurred: [Errno 104] Connection reset by peer

In the Webbrowser Window I see an
`Error 502: Bad Gateway`

The Log in Home Assistant  for RaspberryMatic:

RaspberryMatic CCU
Mounting /data as /usr/local (Home Assistant Add-On): OK
Identifying host system: Intel Corporation NUC6CAYB (oci), OK
Initializing RTC Clock: onboard, OK
Running sysctl: OK
Checking for Factory Reset: not required
Checking for Backup Restore: not required
Running seedrng: OK
Initializing System: OK
Setup ca-certificates: OK
Starting logging: OK
Init onboard LEDs: init, OK
Starting iptables: OK
Starting network: eth0: link up, fixed, firewall, inet up, <IP_ADDRESS>, OK
Identifying Homematic RF-Hardware: ....HmRF: HMIP-RFUSB/eQ-3 HmIP-RFUSB@usb-0000:00:15.0-2, HmIP: HMIP-RFUSB/eQ-3 HmIP-RFUSB@usb-0000:00:15.0-2, OK
Updating Homematic RF-Hardware: HMIP-RFUSB: 4.4.18, not necessary, OK
Starting hs485dLoader: disabled
Starting xinetd: OK
Starting eq3configd: OK
Starting lighttpd: OK
Starting ser2net: disabled
Starting ssdpd: OK
Starting sshd: OK
Starting ha-proxy: OK
Starting NUT services: disabled
Initializing Third-Party Addons: OK
Starting LGWFirmwareUpdate: ...OK
Setting LAN Gateway keys: /etc/config/CCU2GW0001.keychange OK
Starting SNMP daemon: OK
Starting hs485d: disabled
Starting multimacd: .......OK
Starting rfd: .OK
Starting HMIPServer: ..........OK
Starting ReGaHss: .OK
Starting CloudMatic: OK
Starting Third-Party Addons: OK
Starting crond: OK
Setup onboard LEDs: booted, OK
Finished Boot: <IP_ADDRESS>40420 (raspmatic_oci_amd64)

In Supervisor Log
`2024-04-21 15:13:46.027 ERROR (MainThread) [supervisor.api.ingress] Ingress error: Cannot connect to host <IP_ADDRESS>:8099 ssl:default [Connect call failed ('<IP_ADDRESS>', 8099)]`

Additional information
I did not know, how I can go back to the latest Version before.
Is it for tests possible?
I am also tried The HACS HMIP Integration to set to version 1.58.0 and tried also the Version 1.60b .
So what can I do?

Duplicate of #2720


Remove blank lines at the end of the file

Blank lines at the end of the file looks pretty ugly and neglected

Leaves the cursor where it was before FileStyleFix invocation

'''http://stackoverflow.com/a/72409/1132871''''
I see... wasn't aware of that

Closing pull request as proposed functionality is not common. It should be implemented dependently on file type.


"src" does not accept option path variables as a parameter

Issue description
When attempting to set the src of a package to a non-literal path (say, a types.path option in a module config), Nix won't attempt to import the path the variable in src is pointing to into the Nix store. Mock example:
let cfg = config.programs.my-module;
in {
    pkgs.stdenv.mkDerivation rec {
        name = "my-package";
        src = cfg.customProfiles;
        buildCommand = ''cp -r $src/* $out/'';
    }

    options.programs.my-module = {
        my-option = mkOption {
            type = types.path;
            default = /etc/nixos/my-path; # Default or set, it is enough to fail
        }
    }
}

The cp -r command will fail due to not being able to find /etc/nixos/my-path, because it has not been able to import it into the Nix store, and thus, it is not one of the inputs.
I guess this may be somewhat intended behaviour, but having an alternative for this would be very nice for some custom configs for certain programs (like firejail wrappers, which are useless for some programs since the last update, due to some default profiles being unsuitable). Maybe a builtin like fetchurl, but for paths (fetchpath?)?

Nix behaves differently depending on whether src is a string (it will convert to path and copy to store) or a path (it will set $src to that external path, no importing). See this slightly dated but much more detailed and correct answer: https://stackoverflow.com/questions/43850371/when-does-a-nix-path-type-make-it-into-the-nix-store-and-when-not.
Maybe this here is related to what you are trying to achieve: https://github.com/NixOS/nix/issues/1528 ?
If you can provide a hash to your source, requireFile may be of help.

@timor It's not quite the same situation. I will explain my usecase more in depth:

firejail is a sandboxing program that requires profiles or parameters to apply its sandboxing capabilities accordingly to the program at hand
While this can all be done via parameters, the best way to do it is by writing profile files, that are pretty much equivalent to the parameters, but without the need of writing several hundred characters long commands
These profiles are then loaded via firejail --profile="/path/to/my/profile.profile" some-command
When loaded without the --profile option, firejail will attempt to find a suitable profile. This is usually /etc/firejail (it obeys the configure prefix, though, so in this case, it would be /nix/store/hash-firejail-version/etc/firejail/), where all the default profile files are saved. There, it tries to match any existing profile file with the passed command name (that would be: if we are executing firejail firefox, it would attempt to search for $prefix/etc/firejail/firefox.profile).
However, not all default profiles are suitable. Your specific configuration may need extra or fewer parameters (in my case, I have some files in /media/data, which requires disabling the parameter private-dev), or you may need to configure private-homes(mounts a given directory as your $HOME directory, ideal for complete isolation), or it may be the case that the default profile doesn't work at all or breaks stuff (like is the case with Steam), thus, a way to modify profiles is required.
Due to the way NixOS' firejail module (https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/programs/firejail.nix) generates the wrappers for the listed binaries (that is, without a way to configure a --profile option), it always attempts to load the default profiles, which means, for example, that wrapped Steam will never ever work.
Thus, a functional, pure way of defining firejail profiles is needed (specially with how often Firejail profiles tend to break).

Now for the actual issue:

I'm attempting to rewrite the module to allow user-defined profiles to be loaded.
The way I want to do it is: the user lists the directory where they have custom profile files in options.programs.firejail.customProfiles. This is (hopefully) a directory full of firejail config files, named as ${command}.profile. This is something probably every firejail user needs.
I set up options.programs.firejail.customProfiles as firejail-wrapped-binaries' src, to import this user-defined, user-specific path into the store, to be able to build the package correctly.
I then modified the buildCommand to copy the given $src into $out/etc, then generate the wrapper scripts accordingly by checking whether ${command}.profile exists inside $out/etc. If it does, generate the wrapper script as firejail --profile=$out/${command}.profile ${binary}, rather than just firejail ${binary}.
Upon building, I get that the route specified in options.programs.firejail.customProfiles (in my case, /etc/nixos/firejail-profiles/) was not found. This is because the route wasn't copied into the store, probably because the path is an option.
The same script works if I replace src = cfg.customProfiles with anything else, even src = let path = "/etc/nixos/firejail-profiles"; in path, so the issue is being caused by the Option, I think. It's what I am using right now, which does the trick, except I have to maintain the whole derivation myself right now.

Declaratively loading user-defined config files into the Nix store without having to make them write their own derivation (or setting up their own webserver) is, I believe, a realistic usecase, which is why I tried to open this issue as generically as possible. I guess The Nix Way of solving this issue would be by writing a DSL for Nix which can generate program-specific config files, but alas, I am far from being Nix virtuoso yet to fork the module that way (although I admit it would be pretty cool).

Thanks for the detailed explanation.

Now for the actual issue:
* I'm attempting to rewrite the module to allow user-defined profiles to be loaded.

* The way I want to do it is: the user lists the directory where they have custom profile files in `options.programs.firejail.customProfiles`. This is (hopefully) a directory full of firejail config files, named as `${command}.profile`. This is something probably every firejail user needs.
* I set up `options.programs.firejail.customProfiles` as `firejail-wrapped-binaries`' `src`, to import this user-defined, user-specific path into the store, to be able to build the package correctly.

This is exactly the point.  Every source file which makes it into the store in in nixpkgs needs to have an associated hash which can be checked at evaluation time.  This has to hold for everything that is imported into the store, otherwise it would not be possible to get a reproducible build.  Someone correct me if I'm wrong, but that should also apply to nixos (the derivation).

* Upon building, I get that the route specified in `options.programs.firejail.customProfiles` (in my case, /etc/nixos/firejail-profiles/) was not found. This is because the route wasn't copied into the store, probably because the path is an option.

I think that has to do with how sandboxing is done during building.

* The same script works if I replace `src = cfg.customProfiles` with anything else, even `src = let path = "/etc/nixos/firejail-profiles"; in path`, so the issue is being caused by the Option, I think. It's what I am using right now, which does the trick, except I have to maintain the whole derivation myself right now.

I still do think that this is related to the datatype (path vs. string).

Declaratively loading user-defined config files into the Nix store without having to make them write their own derivation (or setting up their own webserver) is, I believe, a realistic usecase, which is why I tried to open this issue as generically as possible. I guess The Nix Way of solving this issue would be by writing a DSL for Nix which can generate program-specific config files, but alas, I am far from being Nix virtuoso yet to fork the module that way (although I admit it would be pretty cool).

Well, that DSL can be as simple as having the user specify an attribute set like
{
  program1 = ''
config here
 '';
  program2 = ''
config also here
 '';
}

iterating over that with mapAttrs and writing out the files with writeTextFile or something.
Note, however, that this is a common problem when you want to influence per-user config from the nixpkgs derivation.  Usually, people use something like home-manager to generate declarative per-user configurations.  So I guess it also depends on whether these profiles are something which is considered part of the system, or part of a user's profile.


feat: change transcript proof to be vector of field elements

Change the transcript proof to be a vector of field elements instead of a vector of bytes. We want this more crucially for the stdlib transcript, but the native transcript ideally would be implemented similarly.
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to relevant issues (if any exist).

Benchmark results
Metrics with a significant change:

note_history_trial_decrypting_time_in_ms (10): 231 (-37%)
note_trial_decrypting_time_in_ms (8): 34.4 (+48%)
note_trial_decrypting_time_in_ms (32): 87.0 (+43%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit c7f18787 and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
222,876
868,100
3,449,288

l1_rollup_execution_gas
841,963
3,595,208
22,204,657

l2_block_processing_time_in_ms
2,359 (+7%)
8,407 (-1%)
34,941 (-1%)

note_successful_decrypting_time_in_ms
324 (+4%)
945 (+1%)
3,347 (-1%)

note_trial_decrypting_time_in_ms
:warning: 34.4 (+48%)
:warning: 87.0 (+43%)
201

l2_block_building_time_in_ms
20,077 (-1%)
79,589 (-1%)
319,638 (-1%)

l2_block_rollup_simulation_time_in_ms
16,579 (-1%)
65,768 (-1%)
264,006 (-1%)

l2_block_public_tx_process_time_in_ms
3,467 (-1%)
13,752 (-1%)
55,390

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
24,694 (-1%)
47,475 (-1%)

note_history_successful_decrypting_time_in_ms
2,152 (-4%)
4,168 (-2%)

note_history_trial_decrypting_time_in_ms
163
:warning: 231 (-37%)

node_database_size_in_bytes
3,618,091
3,913,150

pxe_database_size_in_bytes
29,748
59,307

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
199 (-1%)
43,109
20,441

private-kernel-ordering
114 (-1%)
25,833
9,689

base-rollup
2,953
667,692
873

root-rollup
84.4 (-7%)
4,072
881

private-kernel-inner
259 (-1%)
64,516
20,441

public-kernel-private-input
171 (-1%)
25,203
20,441

public-kernel-non-first-iteration
168 (-1%)
25,245
20,441

merge-rollup
10.8 (-3%)
2,592
873

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
10,323
25,938


Maring correction for dust settling

The implementation of the Maring correction to the dust settling velocity is changed in GOCART2G from Legacy code. Previously the settling correction was applied as:
if(present(correctionMaring)) then
if ((correctionMaring) .and. (radiusInp(n) .le. (0.5*diameterMaring))) then
vsettle = max(1.0e-9, vsettle - v_upwardMaring)
endif
endif
where the correction is only applied to size bins less than a certain size (i.e., the diameterMaring = 7.3 um). In GOCART2G that second conditional is modified so the code reads as:
if(present(correctionMaring)) then
if (correctionMaring) then
vsettle = max(1.0e-9, vsettle - v_upwardMaring)
endif
endif
and the correction is applied to all dust bins regardless of size.
All GOCART2G runs appear to have DUSD001, DUSD002, DUSD003 resolving to negative values (which is unphysical and undesirable). The values are small and are almost certainly running up against the minimum allowed value (1e-9 m/s) fall velocity which results in essentially zero settling loss. This is not found in legacy GOCART runs.
It is not clear the change is causative, or logically why it would be. There is possibly some other numerical change that has happened.

Is the change in the application of the correction desired or just accidental (@adarmenov @amdasilva )?
What is the solution desired to avoid the incorrect negative fluxes (@dkim6git @pcolarco @amdasilva )?

I cannot comment on what is in G2G as I am not directly involved in this effort. That said the new G2G settling code was probably copied from my GOCART dev branch. I stand behind the implementation of the Maring correction in my branch.
Below are excerpts from Marring's paper that I can summarize in a single sentence -- they did not find evidence that the (unknown) mechanism counteracting the settling is size dependent:
[Section 3, paragraph 19] ...the shift from virtually no preferential loss to essentially total removal versus particle size appears more like a step function than the gradual transition predicted by Stokes settling. ...we hypothesized an upward velocity inside the air parcel partially counteracting Stokes settling. This upward velocity reduces the dust removal rate and maintains a relatively uniform dust aerosol size distribution in the vertical. We estimated the magnitude of the upward velocity to be equal to the Stokes settling velocity of the particles located at the point where preferential losses become observable (i.e., 7.3 mm diameter with Stokes settling velocity of 0.33 cm s-1). In Model 2 we hypothesized a vertical velocity for dust particles equal to the Stokes gravitational settling velocity minus 0.33 cm s-1. Calculated vertical velocities less than zero were assumed to be zero.
...
[Section 4, paragraph 21] ...A simple model with a vertical velocity for dust particles defined by the Stokes gravitational settling velocity minus 0.33 cm s-1 accurately reproduces observed losses of dust particles as a function of aerosol size.
In other words, codewise, the settling velocity correction should be applied to all dust bins. To some degree, this also makes sense physically if the hypothesized mechanism indeed acts similarly to an updraft - dust particles of all sizes should be affected by it.
It would be interesting to investigate the effect of relaxing the requirement for positive settling velocity, as this would allow for actual upward transport. I would not expect excessive accumulation of dust in the stratosphere (lower air density -> higher settling velocity).
I am not sure what could link the Maring correction to the negative DUSD001|2|3 observed in G2G. The small positive value in the vsettle = max(1.0e-9, vsettle - v_upwardMaring) expression should guarantee positive loss flux. Moreover, the 'older' and 'newer' codes should be working in the same manner for the small size bins. Why would only 1,2,3 be affected by this change? I would expect to see differences in the larger bins not the small bins.
Hope this clarifies the rationale for my changes to the Maring correction in GOCART.

I did not realize this discussion was here and stumbled upon the negative values for the first 3 bins from my own evaluation. I toggled the Maring flag on and off and can corroborate Pete's findings. I ended up putting in a conditional for my replay test run that the bin number must be greater than 3 but in hindsight that was not the best option for flexibility of the code. So, I am tempted to reinstate the radius conditional that Pete copied from the legacy code earlier in this thread. I am open to other suggestions if that doesn't seem like the best approach.

Allie, thank you for revisiting this, it evidently slipped off the radar. The dust code uses Chem_Settling function in the process library (as opposed to others). Could you test what an upward settling velocity does to the DUSDxxx diagnostics? I suggest right before the call to "SettlingSolver" just make vsettle a small (negative) number, e.g.,
vsettle = -0.001
which should equate to an upward velocity of ~0.1 km day, nothing dramatic, but meaningful. The diagnostics should be "zero" in value.

Yeah, I can do that test. Though I am going to continue my investigation of the settling solver first since I don't understand how column mass can increase from settling with a downward velocity.

By all means read the solver. Maybe there's an outright bug. Otherwise I suspect that numerical precision is the issue. You could increase that fall speed to be 1e-8 or 1e-7 and so on.


Burning STX before checking if the price is met

Summary
While fuzzing BNS-V2, @moodmosaic and I noticed that during the namespace-preorder operation, STX is burned without checking if the amount matches the namespace price. We’re not entirely sure if this is an issue or not.
Example
We know that registering a new namespace is a multiple-step operation:

namespace-preorder - The only check for the burned STX amount in this function ensures the amount is positive, but it doesn't verify that it covers the namespace's price. This results in burning user's STX:

;; Confirm that the STX amount to be burned is positive
(asserts! (> stx-to-burn u0) ERR-STX-BURNT-INSUFFICIENT)
;; Execute the token burn operation.
(try! (stx-burn? stx-to-burn tx-sender))

namespace-reveal - If the burned uSTX amount is not enough to cover the price, an error is returned and the namespace is locked for 144 blocks:

;; Verify the burned amount during preorder meets or exceeds the namespace's registration price.
(asserts! (>= (get stx-burned preorder) namespace-price) ERR-STX-BURNT-INSUFFICIENT)

Conclusion
While we understand that this method aims to prevent frontrunning by keeping the namespace confidential, we wonder if users could accidentally burn STX, which might be a security concern.
If this behavior is intentional or if we’re misunderstanding something, please feel free to close this issue.
@wileyj @LNow

What we want to avoid with the burn happening in the preorder, is people just preordering a lot of namespaces.
I will look into a solution and see if something can be implemented

Hello! What we want to avoid here is:
We don't want anyone preordering a lot of namespaces.
The namespace prices are already hardcoded on the smart contract so everyone and anyone knows exactly how much STX needs to be burnt

@Patotking12 thank you for your response!


Crawler currency_price_tw is terminated during crawling.

The crawling process may be terminated by the data web while crawling too much data one time
We need to find some way to fix.

@ioumu8 Any proposal on fixing this?

This problem came from misparsing of the html code.


Why this sample is not using Camera2 API?

Will it be possible with camera 2 API?

cc @gkaldev

@the-dagger  the android documentation says the following:

For the android.hardware.camera2 API, the YUV_420_888 format is recommended for YUV output instead.

While only NV21 and YV21 are supported by the firebase ml sdk ?
are we supposed convert on the fly wasting cpu cycles/battery or just configure camera2 to out NV21 ?
but then going against the recommendation ?
also i am not clear what drawbacks the recommendation tries to avoid.
The camera2 summary also repeats this recommendation.

I think @samtstern or @gkaldev might be the best people to answer this.

why this example is not migrated to camera2?

If you don't need any of the fancy stuff that comes with Camera2, I highly recommend to use CameraView.
I made my custom Camera2 to process frames, based from this sample, however this sample uses Texture View, when seems like Surface Texture might be more appropriate.
I did ship with my custom Camera2 and CameraView(for legacy devices) and CameraView is waaaaay more efficient than my own Camera2.
Best part of CameraView is that I only wrote less than 10 lines of java code to have a very efficient camera for OCR Reader along with a QR Reader.

I am going to track all the camera improvements to this sample in #842


Support test-e2e-k8s rule

This patch adds the support for the test-e2e-k8 make rule by
making the operator namespace in the e2e tests configurable then
setting the namespace value in the Makefile.

@adrianchiris can you have a look? thanks

@AbdYsn a small comment, otherwise i think we are good to merge this one !


Subsetting: set y-axis range for histogram filter for log scale

This is also related to Phase 1 issue for histogram visualization, https://github.com/VEuPathDB/web-eda/issues/559
We want to set range min of 0 (count) so that y-axis tick labels are better shown in log scale. range max need to be computed from data as there is no variable metadata nor backend response: as of now backend only returns x-axis stats

tested with LLINEUP, everything looks good to me!

Thank you for your tests @danicahelb 👍


added scripting lang

Sorry, Bash was actually one of the first languages to get added. You can still get the shirt, though :P


Login instead of Username?

Hello there, I was wondering why the User request refers to the username as login instead of, well, username.
Is there a specific conflict with the keyword username?
Thanks,
Tiago

Mainly consistency across the projects but I am open for Pull Requests to change that.

Awesome, it would be quite a major change though, maybe release it together with the repo -> projects change, in a major release?

Yes, I can hold back this release if you want to make this change.

Yeah I'm almost done, should have everything in pull requests in 2 weeks, max.


Refactor: Make auction start and purchase methods internal

A few things cleaned up here but the biggest switch is moving startAuction and purchaseNFT to be internal functions in the main contract. I wanted to use these internally ONLY and I imagine others will, as well.

lgtm, but seems you need to run forge fmt? some formatting things seem weird


[Devnet] Alignment bug on derivatives

Happens when resizing the window

Happens in my 24' screen as well, without resizing. It's from a quite recent change wasn't there 1-2 days ago.


NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged during az aks update --enable-managed-identity

Related command
az aks update --resource-group <> --name <> --enable-managed-identity --assign-identity <>  --assign-kubelet-identity <>
OR the simplified:
az aks update --resource-group <> --name <> --enable-managed-identity
(both give same error, which I believe is a validation error before proceeding)
Describe the bug
We recently updated our Azure Managed AKS clusters and their control-plane from:
kubernetesVersion: 1.21.2 -> 1.22.6
orchestratorVersion: 1.21.2 -> 1.22.6
As a followup to these upgrades we also want to enable managed-identities for the same cluster.
However the API call during the above az aks update --enabled-managed-identity command, is returning some unexpected output, which I believe may be a bug between the HTTP API payload versions:
urllib3.connectionpool: https://management.azure.com:443 "GET /subscriptions/.../resourceGroups/.../providers/Microsoft.ContainerService/managedClusters/...?api-version=2022-04-01 HTTP/1.1" 200 None
...
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {
  "id": "/subscriptions/.../resourcegroups/.../providers/Microsoft.ContainerService/managedClusters/...",
   ...
   "kubernetesVersion": "1.22.6",
   "currentKubernetesVersion": "1.22.6",
   ...
   "orchestratorVersion": "1.21.2",
    "currentOrchestratorVersion": "1.22.6",
    ...

I believe the orchestratorVersion returned from the above API calls is then passed on the AKS update call:
cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/.../resourceGroups/.../providers/Microsoft.ContainerService/managedClusters/...?api-version=2022-04-01'
...
cli.azure.cli.core.sdk.policies: Request body:
cli.azure.cli.core.sdk.policies: {
...
"mode": "System", "orchestratorVersion": "1.21.2", "upgradeSettings": ...
}
urllib3.connectionpool: https://management.azure.com:443 "PUT /subscriptions/cbe888f6-e994-4f24-aabc-1834bf620d36/resourceGroups/staginguk/providers/Microsoft.ContainerService/managedClusters/staginguk-primary-aks?api-version=2022-04-01 HTTP/1.1" 400 394
cli.azure.cli.core.sdk.policies: Response status: 400

Which means we hit this exception response:
cli.azure.cli.core.sdk.policies: {
  "code": "NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged",
  "message": "Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane. For agent pool specific change, please use per agent pool operations: https://aka.ms/agent-pool-rest-api",
  "subcode": ""
 }

To Reproduce

Upgrade a Azure AKS cluster & orchestratorVersion.
Attempt to enable managed identities with:
az aks update --resource-group <> --name <> --enable-managed-identity

Expected behaviour
The cluster should utilise the new managed identities & be present the json represenation of the AKS cluster. via:
identityProfile & kubeletIdentityProfile blocks.
Environment summary
az --version
azure-cli                         2.37.0

core                              2.37.0
telemetry                          1.0.6

Extensions:
datafactory                        0.5.0

Dependencies:
msal                            1.18.0b1
azure-mgmt-resource             21.1.0b1

Python location '/home/mitchell/test-venv/bin/python3'
Extensions directory '/home/mitchell/.azure/cliextensions'

Python (Linux) 3.8.10 (default, Mar 15 2022, 12:22:08)
[GCC 9.4.0]

Additional context
n/a

route to CXP team

@mdhomer Apologies for the late reply. Thanks for reaching out to us and sharing this feedback. We are looking into this issue and we will provide an update.

@mdhomer I had reached out to the Product Owners in the background and they have confirmed that this is a bug and working on fixing it. I will keep you posted on the progress of the fix.

@mdhomer Thanks for getting back. You need not repro the issue again. I will keep you posted on the fix and I will get back with an answer to your above questions.

@mdhomer I have heard back from the Product Owners. The fix is done at the Resource Provider level and it will be rolled out next Monday. Hope this answers.

@mdhomer I wanted to share a quick update on this. The fix rollout just started yesterday and will take a couple days to reach all regions. Until the fix is deployed to all regions, Maybe you can avoid using version 2022-04-01 for now as a workaround. Hope this helps.

Thanks for the update @navba-MSFT I think this --enable-managed-identity feature is only available in cli v2.37.0 based on the docs I was following. So I guess I'll just have to wait a little longer?
The AKS cluster I'm targetting is in UK South, is this fix being rolled out on the underlying http API layer or within the CLI itself? Wondering if the docs should be updated if its the latter

@mdhomer As mentioned in the above comment, the fix is not in CLI version / HTTP API level. The fix is at the AKS Resource Provider level.

@mdhomer I am yet to get confirmation about the fix being deployed to all regions. In the meantime, Could you please try running the same above command again and check if you are facing the issue ?

@mdhomer The action is currently pending on you to test the same command again. If you still face the same issue, please feel free to reopen this thread. We would be happy to help.

@navba-MSFT unfortunately this still seems to be a problem. Sorry I didn't get to re-try it sooner.
I attempted with "azure-cli": "2.37.0",
error Log:
(NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged) Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane. For agent pool specific change, please use per agent pool operations: https://aka.ms/agent-pool-rest-api
Code: NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged
Message: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane. For agent pool specific change, please use per agent pool operations: https://aka.ms/agent-pool-rest-api

&& the newer release:
"azure-cli": "2.38.0",
(NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged) Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane. For agent pool specific change, please use per agent pool operations: https://aka.ms/agent-pool-rest-api
Code: NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged
Message: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane. For agent pool specific change, please use per agent pool operations: https://aka.ms/agent-pool-rest-api

@mdhomer Please share the below details over email. My email navba [ @ ] microsoft . com

Kubernetes version.
Orchestrator version
AKS cluster namespace
complete debug output ( with --debug switch) while reproducing the issue.

Awaiting your reply.

@navba-MSFT I've sent over the requested information, please let me know if this hasn't got to you

@mdhomer Thanks for emailing me the requested details. I had reached out to the Product Owners and they have informed that the fix is yet to be rolled out in all regions. We will keep you posted once it is done. We appreciate your patience on this.

@navba-MSFT Is this fix still not rolled out to all regions? We just got the same error when trying to update an aks cluster with 2 node pools from v1.23.5 to v1.23.8 in westeurope region. Our clusters with only the default node pool could be updated succesfully, but at least one cluster with an additional node pool fails to update with the following error:
│ Error: updating Kubernetes Version for Cluster: (Managed Cluster Name "mcm-aks-iac-preprod-aks" / Resource Group "mcm-aks-iac-preprod-rg"): containerservice.ManagedClustersClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged" Message="Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane. For agent pool specific change, please use per agent pool operations: https://aka.ms/agent-pool-rest-api"
│
│   with module.aks.azurerm_kubernetes_cluster.aks,
│   on vendor/modules/crt-aks-module/aks.tf line 7, in resource "azurerm_kubernetes_cluster" "aks":
│    7: resource "azurerm_kubernetes_cluster" "aks" {
│

Same issue as @schafei. We wanted to upgrade a cluster which is located in West Europe and it also failed with NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged. The upgrade was from 1.22.x to 1.23.x.

@navba-MSFT Could you please provide an update we still experience the same issue in westeurope.

@verysonglaa Based on my discussion with the Product Owners, the above fix has been deployed to all regions. Note that the agentpools have been fixed. Customers should have consistent orchestratorVersion and currentOrchestratorVersion now. If you are still facing the same issue, please open a support ticket. Our Support Professional will get in touch with you and troubleshoot this further.

FWIW, if one is stuck in this state, it seems that it's possible to get yourself out from it by going into the AKS Node Pools blade in the Portal and manually changing scale parameters of the node pool. This seem to reset the record of the OS in the nodepool.

In case you use ARM templates please make sure to specify per node pool
"orchestratorVersion": "[parameters('kubernetesVersion')]",
"currentOrchestratorVersion": "[parameters('kubernetesVersion')]"

i have same issue using ARM template

I'm still getting this error today. Using the az aks update --resource-group <> --name <> --enable-managed-identity --assign-identity <> on my AKS cluster causes the same error.


[3.0] Namespace (League, Omnipay, common etc)

What do we want to do with namespaces for v3:

Move Omnipay\Omnipay to League\Omnipay\Omnipay?
Move the omnipay-common into omnipay, because that's an empty repo now?
Change the namespace of all gateways? (Which affects the detection of gateways based on just a name..)

I would vote for no, no and no in that order.
Omnipay is a well established namespace now, no real need to mess with it, just bump the version. A lot of users won't notice the difference apart from the dependencies and the code changes related to the PSR-7 message classes.
I think that having omnipay and omnipay-common as separate repos is good -- omnipay contains the README file that contributors of non-official gateways can submit PRs on, without having to risk messing with code or merge conflicts associated with the omnipay-common repo.  It's also a useful central place to discuss issues such as this.
Detection of gateways based on just a name is a critical function for many users. I think we've had this discussion before, let's not mess with that.

This is a requirement by the League quality standards; https://thephpleague.com/#quality

Use League as the PSR-4 autoloader namespace. Shove code in a src folder.

So I'm guessing this was always the plan, otherwise they wouldn't have moved to the League, right?

That is a benefit indeed. But right now there are 2 places, the gh-docs branch + the readme. Imho we move them just to the docs, and point the readme there. Now they're out of sync a lot. And now discussion happens on both repos.

Detection of gateways can still be done with the new namespace. All gateways have to updated anyway.

Noted, but my vote is still no.  I'm happy to be outvoted on this but I still think that a global namespace change is not a great idea.

Correct -- if things are getting out of sync and discussion is happening on both repos then we need to put notices up to tell people to go to the central place to do this. Unfortunately not only is discussion happening on both repos but there is also a google group and stack overflow as well.

Noted.  I'm still voting no and still happy to be outvoted as per #1.  I appreciate your argument I'm just in favour of as little change as possible.

We're changing the namespace to League/Omnipay. That's been decided.

Omnipay/common repo will be deprecated and classes will be moved to omnipay/omnipay.

The practice of requiring every omnipay gateway inside of omnipay/omnipay will go away, or we can provide a "discovery" utility to show all of them. I would rather use composer's "suggest" functionality for this.

[x] Moved namespace over to League\Omnipay
[x] Moved class resolver to use that namespace
[x] Deleted the 'find'/'supportedGateways' from the Gatewayfactory
[x] Moved all the files to league/omnipay.

@kayladnls I've also renamed the composer packages to league/omnipay. Figured, that as long as we're forcing the gateways/people to upgrade anyways, might as well do it completely, right?


Remove and flag doublets

@acorbat pointed out today that they have observed undesirable clustering results arising from doublets. In the clone graph, these should manifest themselves as vertices that are part of two clusters at the same time.
We can possibly find these by looking for cut vertices in the graph. A cut vertex is a vertex whose removal would lead to an increase in the number of connected components. There exist fast algorithms to find cut vertices.
(Note the similarity to bridges: A bridge is an edge whose removal would lead to an increase in the no. of connected components.)

Here is an example doublet that I manually marked in the test data you sent:

(Created by editing the graph_corrected.pdf file that trex run10x --plot creates.)

We should save a list of the flagged or removed doublets as they should also be removed from the original dataset.

@marcelm Can we close this one?

Yes!


Support only synchronizing some clients in fuzz harness

Not quite ready for review as I haven't hooked up the fuzz tester to actually generate the clients. None of the fuzz tests will utilize the new functionality yet as currently implemented.
Description
This PR changes the MockContainerRuntimeFactory to keep track of which clients are ahead and behind to enable specifying which clients to synchronize. This enables the DDS fuzz harness to specify which clients to synchronize when a synchronize op is generated and test interesting code paths in DDSs that are reliant on the refSequenceNumber.
Reviewer Guidance
The review process is outlined on this wiki page.
There might be cleaner way to structure the changes to MockContainerRuntimeFactory as I'm having to keep track of the index of the furthest caught up client and the message indices of any clients that are behind. If you can think of a better scheme I'm all ears!

so i did something similar in merge tree once, and i found it was easier to just maintain an array per client, so on inbounding an op, i would sequence immediately, as we know the sequence it will get, and then push it to each array, then processAll just becomes run pop off each array for each client until they are all empty. overal it was way easier to debug, and maintain


utilities/time: defend against downtimes

Sometimes wttr.in might run out of queries, thus breaking this custom
command. This patch modifies it as such that it looks for the first line
announcing the downtime, and, if found, returns with an error stating
what happened.
Previously, the custom command simply failed, which isn't very nice UX.
Closes #263
Signed-off-by: Luca Zeuch<EMAIL_ADDRESS>Status

[x] Code changes have been tested on an instance of YAGPDB, or there are no code changes
[x] I have read and followed the contribution guide
[x] I have written documentation for my changes, or there is no need to

Hmm, now that I think of it, would it be more appropriate to use a placeholder message if the weather API is down, as opposed to sending an error message?

Heh, that were my initial thoughts, too.
SGTM but I'm currently away from home so that'll have to wait.

Friendly bump -- are you still planning on working on this @l-zeuch?

Excellent question.
Will take a look at the weekend, with life going on at the moment that's the only moments where I have enough time available.


3.0.4 After upgrade Time Restriction must be integer prevent save if Pre-Order is enabled.

Expected behavior:
Expected to be able to modify location data without any issue
Actual behavior:
Any save of a location record generates this error: "The {variable} Time Restriction must be an integer." Whether Delivery or Pick-Up, if the Pre-Order options are disabled then you can save the record. If you enable either Pre-Order option, that option's Time Restriction message is displayed.
Version:
3.0.4

Can you share your location setting screen so we can try and replicate?

On 24 Jun 2021, at 02:12, RDLJr @.***> wrote:

Expected behavior:
Expected to be able to modify location data without any issue
Actual behavior:
Any save of a location record generates this error: "The {variable} Time Restriction must be an integer." Whether Delivery or Pick-Up, if the Pre-Order options are disabled then you can save the record. If you enable either Pre-Order option, that option's Time Restriction message is displayed.
Version:
3.0.4
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

This save works AND the Time Restriction toggles respond while the Pre-Delivery option is disabled:

This save does not work AND the Time Restriction toggles do not respond while the Pre-Delivery option is enabled:

Thanks, I was able to replicate and opened a fix for it here https://github.com/tastyigniter/TastyIgniter/pull/808/commits/eb8f46112eb3e72a118f88bf9c0831618f76c4d5


HBase 0.92.1

As I was not able to make YCSB working with the binaries from the download section, I tried to build YCSB against HBase 0.92.1 myself. For this I had to adjust the following things to make the maven build work:
In the root pom.xml: Set the hbase.version property to 0.92.1
In the hbase-binding pom.xml I had to add the following dependency:

org.apache.hadoop
hadoop-core
1.0.2

Using the downloadable binaries from here, the exception I got was something like:
"Not a host:port pair"
Maybe this can be usefull for somebody.

closing as stale, since 0.92 is a defunct HBase version. please reopen if you still need HBase 0.92  support.


StepContent creates Collapse with transitionDuration not with timeout

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior
There will be no warnings in console.
There will be a line with timeout, not with transitionDuration here
https://github.com/mui-org/material-ui/blob/v1-beta/src/Stepper/StepContent.d.ts#L18
Current Behavior
This warning in console
Warning: Unknown prop `transitionDuration` on <div> tag. Remove this prop from the element.
in div (created by Transition)
    in Transition (created by Collapse)
    in Collapse (created by withStyles(Collapse))
    in withStyles(Collapse) (created by StepContent)
...

Steps to Reproduce (for bugs)
There is no such warning in codesandbox example. But I can see it in my project. Also there is a transitionDuration  mention -- see link above.
If it's not enough - I'll try to create an example with the warning later.
My Environment

Tech
Version

Material-UI
1.0.0-beta.24

React
15.6.2

browser
Chrome  63.0.3239.84

This is strange. It should have been fixed in https://github.com/mui-org/material-ui/pull/9519/files#diff-638ab879f3ee853bad2cadcb5ef3a808R56. Do you have a reproduction example?

I'm closing for now.

I am also getting this warning in beta 24:
Warning: React does not recognize the `transitionDuration` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `transitionduration` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
    in div (created by Transition)
    in Transition (created by Collapse)
    in Collapse (created by withStyles(Collapse))
    in withStyles(Collapse) (created by _class2)
    ...

@willemx Do you have a reproduction example?

I don't have a reproduction (it's in a very large codebase that is hard to dissect), but I do have some more info:
the warning appears when I use the Collapse like this:
<Collapse in={this.state.expanded} transitionDuration="auto" unmountOnExit>
but not when I use it without the transitionDuration prop:
<Collapse in={this.state.expanded} unmountOnExit>

@willemx This API isn't supported, use timeout.

Yes, I also just noticed myself. Thanks!

I had the same problem! Thx for help!


Replace fire function by dispatch

fire function is removed now and we can use dispatch for more details please check this MR
fix #24

Always submit any PRs to the develop branch please tips 🙂
Base branch changed to develop, and PR merged, thank you


Text appears as square blocks in image

Possible bug
Is this a possible bug in a feature of sharp, unrelated to installation?

[x] Running npm install sharp completes without error.
[x] Running node -e "require('sharp')" completes without error.

If you cannot confirm both of these, please open an installation issue instead.
Are you using the latest version of sharp?

[x] I am using the latest version of sharp as reported by npm view sharp dist-tags.latest.

If you cannot confirm this, please upgrade to the latest version and try again before opening an issue.
If you are using another package which depends on a version of sharp that is not the latest, please open an issue against that package instead.
What is the output of running npx envinfo --binaries --system --npmPackages=sharp --npmGlobalPackages=sharp?
System:
    OS: macOS 12.4
    CPU: (8) x64 Intel(R) Core(TM) i5-8279U CPU @ 2.40GHz
    Memory: 325.30 MB / 8.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 11.15.0 - ~/.nvm/versions/node/v11.15.0/bin/node
    npm: 6.7.0 - ~/.nvm/versions/node/v11.15.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman

What are the steps to reproduce?
This absolutely works fine in local environment, but as soon as I deploy it to server it start printing texts as square blocks.
From what I can understand this seems to be a version mismatch issue.
Went through a couple of issues #3485 #3479 and checked the fonts in my server. There exists a number of fonts but still facing this issue. This is an ubuntu machine

@lovell please suggest what to do next here.
What is the expected behaviour?
Text should've printed instead of boxes
Please provide a minimal, standalone code sample, without other dependencies, that demonstrates this problem
const addCaption = async (image, text, width = 165, height = 165) => {
    let svgText = `
    <svg width="${width}" height="${height}">
        <style>
        .title { fill: #001; font-size: 16px; font-weight: bold;}
        </style>
        <text x="50%" y="8%" text-anchor="middle" class="title">${text}</text>
    `
    const caption = Buffer.from(svgText);

    const sharpImage = await sharp(image)
    await sharpImage.composite([{ input: caption, gravity: 'center' }])
    return sharpImage
}

Please provide sample image(s) that help explain this problem

This looks like a font discovery problem - please see https://sharp.pixelplumbing.com/install#fonts

I already went through this link @lovell, not able to figure out what exactly needs to be done

Did you try setting the FC_DEBUG environment variable to the various values as documented at https://www.freedesktop.org/software/fontconfig/fontconfig-user.html (and linked to by https://sharp.pixelplumbing.com/install#fonts ), which will help debug font discovery problems?

My fonts.conf file was missing
I solved this issue by doing the following:

sudo apt install fontconfig
export FONTCONFIG_PATH=/etc/fonts
export FONTCONFIG_FILE=/etc/fonts/fonts.conf
Restart server

I think this solution is not the most optimised one as my deployment servers keep changing as per requirements, so probably will look for some other dependency or add the above commands in docker file.

I have added fontconfig via the Dockerfile the following way
Install fontconfig
RUN apk add --no-cache fontconfig
Set FONTCONFIG_PATH and FONTCONFIG_FILE environment variables
ENV FONTCONFIG_PATH=/etc/fonts
ENV FONTCONFIG_FILE=/etc/fonts/fonts.conf
But it seems I can't get rid of the square blocks. Any clues on what am I doing wrong?  I can see the fonts.conf file in /etc/fonts


meta (gong splitter) component does not display

sequence:

start ongly -diagrams
go the 'meta' view

Problem:

<app-gong-splitter> does not show

Notes:

on macos, recompiling everything in the front but same problem present

Hypothsesis:
the back end is not working
nope since it is working for gongdoc
the  ng code is not aligned between front and back
	github.com/fullstack-lang/gong           v0.0.0-2022 02 17 095815-ef2bf8ebcee4
	github.com/fullstack-lang/gongdoc     v0.0.0-2022 02 14 105409-ca274e5c9098
	github.com/fullstack-lang/gongleaflet v0.0.0-2022 02 10 073428-f83ccd33a1be
	github.com/fullstack-lang/gongsim     v0.0.0-2022 02 17<PHONE_NUMBER>a7b83119

Let's try to algiin everyone on the 17

Now everyone is aligned
	github.com/fullstack-lang/gong           v0.0.0-2022 02 17103641-2de44f273f2f
	github.com/fullstack-lang/gongdoc     v0.0.0-2022 02 18011839-ad828d9f0878
	github.com/fullstack-lang/gongleaflet v0.0.0-2022 02 18003736-831124f35801
	github.com/fullstack-lang/gongsim      v0.0.0-2022 02 17091636-4604a7b83119

The app-gong-splitter is not called
app-gong-splitter

why is it working with the gong application and why is it not working with gongfly ?

simply, it was not in the impoted modules
Why on earth no compilation issues !!!!!!!!!!


IMPORTANT

The bug I want to report is that immense lag when I play the game (it might just be that I'm on a Chromebook) and I would like you to remove the mouse acceleration when playing the game because it is really hard to play with that.

In order to turn off mouse acceleration, Turn ON "Use tablet raw position"

This uses the raw mouse speed set by your computer, instead of the customisable sensitivity options
Lag is a huge problem with the canvas API and is generally unfixable,  A move to webgl will fix it but requires an entire rewrite for the renderer


comand :args does not correctly show what file user is on after using comand Ctrl-^

Steps to reproduce
Open 3 files
vim file1 file2 file3

Execute commands inside vim
:next
3<Ctrl-^>
:args

Where 3<Ctrl-^> means - press key 3, than holding Control and Shift press key 6.
Expected behaviour
Expected: command :args shows that user is on the file3,
file1    file2   [file3]

But instead of that command :args shows that user is on the file2.
file1   [file2]   file3

what i consider to be a bug.
Version of Vim
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Mar 14 2024 13:39:48) Included patches: 1-1672, 1729, 1747, 2107, 1840, 1846-1848, 1857-1858, 1873, 1969, 1992, 2010, 2068, 2106, 2108-2112, 2121 Modified by<EMAIL_ADDRESS>Compiled by<EMAIL_ADDRESS>Environment
TERM: xterm-256color
SHELL: GNU bash, version 5.2.15(1)-release (x86_64-pc-linux-gnu)
OS: Linux 6.5.0-26-generic #26-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar  5 21:19:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Logs and stack traces
No response

3<Ctrl-^> does not change the argument list, instead it moves around in the buffer-list. Both lists are independent of each other, so I think this is not a bug. See also :h arglist (and check the second paragraph).

Thanks for the explanation.
Did you meant this by the second paragraph?
Do not confuse this with the buffer list, which you can see with the :buffers command.
The argument list was already present in Vi, the buffer list is new in Vim.
Every file name in the argument list will also be present in the buffer list
(unless it was deleted with :bdel or :bwipe).
But it's common that names in the buffer list are not in the argument list.

Now i see that vi behaves the same way, btw no buffer switching mentiond, only presence of buffers in list.
It still confusing that one switching command does move marks [] to the other buffer in :args while the other switching command does not...
Pardon for disturbance!

It still confusing that one switching command does move marks [] to the other buffer in :args while the other switching command does not...

tho you emit next it would still stay that ctrl-^ one, however [] moved, if that would make you understand..
// 'ctrl-^' did not change args
--
shane.xb.qian


Handle unknown detector_name

Right now it responds with 500: Internal Server Error,
something like 401: Unknown detector would be better.

Returns 400 with valid error now.


CB-8748 2.29 EnvironmentUser should be able to navigate the UI without err…

…or messages
See detailed description in the commit message.

http://ci-cloudbreak.eng.hortonworks.com/job/cloudbreak-real-ums-test/1010/


Put fees for token

Hello,
I don’t think it’s possible on Sui to add a fees feature for token transfer and token swap. I’ve been in crypto for 2 years in full time and it’s really important for some protocol in DeFi. Like you can put 1-2% for treasury and it will built up so with it you can compound it in other protocols and then reinvest the stacking rewards into your protocol and people like that.
Could you add the possibilities for the function/struct transfer in sui::coin?

This is possible to do. See for example:

https://github.com/MystenLabs/sui/blob/main/sui_programmability/examples/defi/sources/pool.move#L64 (collects a fee each time a user swaps tokens)
https://github.com/MystenLabs/sui/blob/main/sui_programmability/examples/defi/sources/flash_lender.move#L100 (charges a fee each time a user takes out a loan)


--debug mode not documented in --help output

Issue Type

Bug report

Molecule and Ansible details
ansible <IP_ADDRESS>
molecule 2.3.1

Molecule installation method: pip
Ansible installation method: pip

Desired Behaviour
--debug should be documented when running molecule [command] --help
Actual Behaviour (Bug report only)
molecule test --help
Usage: molecule test [OPTIONS]

  Test (destroy, create, converge, lint, verify, destroy).

Options:
  -s, --scenario-name TEXT        Name of the scenario to target. (default)
  -d, --driver-name [delegated|docker|ec2|gce|lxc|lxd|openstack|vagrant]
                                  Name of driver to use. (docker)
  --all / --no-all                Test all scenarios. Default is False.
  --destroy [always|never]        The destroy strategy used at the conclusion
                                  of a Molecule run (never).
  --help                          Show this message and exit.

The --debug flag is documented under molecule --help only displays the flags which are available to the subcommand.  Debug is not a subcommand flag.

Thanks, makes sense. It would still be nice if it could be changed, feel free to close as wontfix in case you don't want to.

@MarkusTeufelberger I would need to see how click handles this.  I am not entirely sure if this is by design or a flaw.

Thanks for the report @MarkusTeufelberger.  Closing out since this is the way click behaves.


Error in IS analytics editor node when creating a Siddhi app

I tried to create a siddhi application using WSO2 IS analytics instead of WSO2 SP by following the steps in [1].
The siddhi application gets deployed successfully when deploying it using the worker runtime in WSO2 IS analytics but it gives the following error when trying to create the application using the editor runtime:
Error: [2018-10-23_16-15-20_687] ERROR {org.wso2.extension.siddhi.io.http.util.HttpIoUtil} - Bootstrap configuration is not in expected format please insert them as 'key1:val1','key2:val2' format in http source. (Encoded)
Siddhi app:
`@App:name("IS_ANALYTICS_RiskBasedLogin")
@App:description("Description of the plan")
@Source(type = 'http', receiver.url="http://localhost:8281/RiskBasedLogin/TransactionInputStream", basic.auth.enabled='false', @map(type='json', @attributes(username='$.event.username', transaction='$.event.transaction')))
define stream TransactionInputStream (transaction double, username string);
@Source(type = 'http-request', source.id='testsource', basic.auth.enabled='true', parameters="'ciphers:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256', 'sslEnabledProtocols:TLSv1.1,TLSv1.2'", receiver.url="https://localhost:8280/RiskBasedLogin/InputStream", @map(type='json', @attributes(messageId='trp:messageId',username='$.event.username')))
define stream InputStream (messageId string, username string);
@sink(type='http-response', source.id='testsource', message.id='{{messageId}}', @map(type='json'))
define stream OutputStream (messageId string, username string, riskScore int);
define stream TempStream (messageId string, username string, sumTransactions double);
from TransactionInputStream#window.time(5 min)
right outer join InputStream#window.length(1) unidirectional
on TransactionInputStream.username == InputStream.username
select InputStream.messageId, InputStream.username, sum(transaction) as sumTransactions
group by messageId, InputStream.username
insert into TempStream;
from TempStream
select messageId, username, ifThenElse(sumTransactions > 10000, 1, 0) as riskScore
insert into OutputStream;`
[1] https://docs.wso2.com/display/IS570/Using+WSO2+Stream+Processor+for+Adaptive+Authentication
@dilin993 @madurangasiriwardena

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Error in selected Date

When selected july in your app, show month:6 -> June

Month starts with index 0

starts with index 0....unless you use JodaTime...in which case it will start at index 1...


UTF-8 encoding does not work

Hi,
I'm currently evaluating JXM as a messaging backend for our Online-Campus. Unfortunately it seems that the UTF-8 encoding for the messages does not work correct. When I send german umlauts (e.g. ä, ö, ü), I receive hieroglyphs.
You can re-produce this with your server-side-subscription example. Changing the "Hello from browser" message in index.html to "Hello from browser ä ö ü Ä Ö Ü", then reload the webpage and click the "start"-Button and you will see that the characters are not getting displayed correct.
By the way two more questions:

How stable is JXM at the moment? I know JXCore is tagged as beta, but would you already use JXM in a production system (knowing that the API can change in the future)?

What are you're plans for the Java-Client? Will it receive ongoing support and development?

Thanks in advance for your answers,
Kai

How stable is JXM at the moment?
I would say battle tested stable. It is possible that there are minor issues around but from the point of uptime and persistent, it should serve smoothly.

What are you're plans for the Java-Client? Will it receive ongoing support and development?
Yes

As for the bug. I'm not sure. I couldn't reproduce it on my first shot. I will try to reproduce it on a simple project.

I'm using jxm version 0.3.7 from the npm registry.

And node version 0.10.33.

I've additionally tried the following on my (Linux based) development machine, with the same result:

Set the server "encoding" configuration explicitly to "UTF-8"
Updated node to 0.10.38
Tried jx <IP_ADDRESS> instead of node

I could also reproduce this on a Mac OS X MacBook, using node 0.10.33. The only common what those two machines have, is that their locale is set to "de_DE.UTF-8".
For the meantime, I Base64-Encode and -Decode each message. This works for now, but can only be a temporary workaround.
Do you have any ideas, or suggestions?

@KSchreyer Are you having this on JavaScript or Java client?

Ok, I've got this in browser. Interesting, that e.g. Chinese and Russian gets displayed correctly :)

Hello from browser German: � � � � � �
Hello from browser Chinese: 齈龘墻 儮嬼懫 瀷
Hello from browser Russian: Эа эжт

Yes, I have this problem in the browser with the JavaScript client. Chinese and Russian are working for me too. Strange that it does work for Chinese and Russian, but not for German.

Here is what I've noticed so far:

Only V8 has problem with your chars. If you try SM build, it should work, as it worked for me.
It looks like the cause is that V8's querystring.unescape() is not compatible in this case with browser's escape().
Since escape() and unescape() seems to be depreciated, I've made a quick test and replacing them into encodeURIComponent() and decodeURIComponent() respectively made V8 work properly with your characters. But this needs more testing (with other languages too), so I'm not including this yet.

That is, for now your workaround (apart from base64) would be to either use SM or replace the method I've mentioned at least in jxm/backend/jx_browser_client.txt.

Hi,
I replaced the methods in jxm/backend/jx_browser_client.txt. After that, it works for most of the characters. But when you try to send a percent sign (%), you will get an "URIError: URI malformed" in the following line:
jxcore.Notify(ee, decodeURIComponent(ev.data));

Thanks for the update. We'll keep it in mind when applying the fix. If you'll have any other observations - please let us know!

I've found the reason. It seems like for websockets the message is sent from server to client already unescaped, and when the client's browser tries to unescape it again - there you get your error.
This will be fixed next days.

Hi @KSchreyer. I've posted an update f4dacabc9e9ac98029ff53f7f2c1dd55203f4bb4 to master branch. Could you please check if that solves your encoding problems? Also percent sign or other special chars should not disturb any more.
As a reminder - we're talking here about JXcore's V8 build.

Hi,
I will try to check this on Monday. Can you please also update the jxm package at npmjs.org to version 0.3.8?
Thanks,
Kai

We'll do that after few more tests and also your feedback :)

I applied the changes of update f4dacab and it works for me now. Also the test string °!"§$%&/()=?è+*~#'äöüÜÖÄ-_.:;,µ²³ was successfully transmitted.

Thank you! Which browser are you using? Did you try other browsers too?

Tested with the following browsers:

Google Chrome 43
Firefox 38
Safari 8.0.6
Opera 30
IE 8
IE 11

lets release then ?

I think it's fine. I've also checked on android stock browser. Tested both SM and V8.

Or let's wait a while more. The Java client should be checked, too.

OK. Java client updated with b37fc3d8c3b2db9cb01354f5f1616d0d1b4ad0fd and tested. Also Java <--> Browser. I think we are ready for release 3.0.8. Thanks @KSchreyer for help!

Can you please also update the package at npmjs.org?
Thanks,
Kai

published.


use cached netconf to avoid delete loop

Fixes #159 as this (OF Port not up error) causes infinite loop on the CmdDel invocation because of DelNetwork: Error deallocating IP: Did not find reserved IP for container error from CmdDel with whereabouts IPAM.
The fix is similar to approach used for sriov-cni.
Signed-off-by: Periyasamy Palanisamy<EMAIL_ADDRESS>

/release-note-none


Update Settings for FP 18

Looks like we stopped including the corresponding playerglobal.swcs in Tools/flexlibs since FP14. Should we fix that?

We do patch the appman installed SDKs. The FD bundled SWCs are if we patch any used SDK. They add the size of FD. What should we do?

I will merge this and lets fix the Haxe versions before release.

My opinion is that we should use the most commonly supported Flash version in the Haxe (and possibly Flash) templates. Someone who really needs a specific more recent Flash version will (probably) know what he is doing.

Then that would be 12.


Simple ZodObject inference from existing Interface?

When needing to attempt to bind an existing Interface to ZodObject, there are a few issues with using the more simplistic ZodSchema to achieve this - namely losing all the object-specific options such as schema.shape.
As far as I know, there isn't really a way to neatly infer a ZodObject without needing to recapitulate the entire schema again within the definition, which is often not possible when the source type is external and the point of the binding is to notice if the shape of the schema differs from the source.
This is what I (very roughly) have worked out so far, so was wondering if
a) there is any existing internals that might be better suited to this, and;
b) if there is any chance some more developed version of this inference type might be possible to include in the main package?
/**
 * Simple example mapping to string version of each type, would need to be completed with all types
 */
export type GetRequiredType<T> = T extends string
  ? "string"
  : T extends number
  ? "number"
  : T extends boolean
  ? "boolean"
  : never

/**
 * Append `Optional` to the key name for optional properties.
 */
export type GetType<T> = undefined extends T
  ? `${GetRequiredType<T>}Optional`
  : GetRequiredType<T>

/**
 * Simple example mapping / lookup of "rough" Zod types for each concrete type.
 */
export interface ZodTypes {
  string: ZodString | ZodEffects<ZodString, string, any>
  stringOptional: ZodOptional<ZodString | ZodEffects<ZodString, string, any>>
  number: ZodNumber | ZodEffects<ZodNumber, number, any>
  numberOptional: ZodOptional<ZodNumber | ZodEffects<ZodNumber, number, any>>
  boolean: ZodBoolean | ZodEffects<ZodBoolean, boolean, any>
  booleanOptional: ZodOptional<
    ZodBoolean | ZodEffects<ZodBoolean, boolean, any>
  >
}

/**
 * Cast the existing output interface as a ZodRawShape using the lookups defined above.
 */
export type ToZodRawObject<Output extends object> = {
  [Key in keyof Output]: ZodTypes[GetType<Output[Key]>]
}

/**
 * Case the existing output interface as a valid ZodObject.
 */
export type ToZodObject<Output extends object> = ZodObject<
  ToZodRawObject<Output>,
  "strip",
  ZodTypeAny,
  Output
>

Passing Example
export interface User {
  name?: string
  email: string
}

export const UserSchema: ToZodObject<User> = z.object({
  name: z.string().optional(), // Passes
  email: z.string().email() // Passes
})

Failing Example
export interface Product {
  name: string
  serial?: number
}

export const ProductSchema: ToZodObject<Product> = z.object({
  name: z.string().transform((value) => value.toUpperCase()), // Passes
  serial: z.number().refine((value) => value > 1000) // Fails! (must be optional)
})

One thing I haven't worked out is how to handle ZodEnum types in the above GetRequiredType<T> discriminator, would love to hear any ideas

You might take a look at toZod, which is a simple utility that allows you to input a type or interface as a generic argument, and then type checks yous Zod schema as you develop against the input type and throws a ts error if you don't align. This makes your external type drive the Zod schema instead of the other way around, and you dont have to remember to keep them in sync. I'm using it with types generated from graphql-code-generator for mutation inputs and so far haven't had any issues.

toZod doesn't handle union types, which is a problem for me.  I'd like to use it, but need support for unions.

toZod doesn't handle union types, which is a problem for me.  I'd like to use it but need support for unions.

Yes, I ran into this issue as well - this was where I got to presently, but it's far from perfect:
https://gist.github.com/prescience-data/411c94774b6e884ff24a3072de767135

IMHO this should be reopened, as

The use-case is very basic and common
The trouble is not resolved as of today
and toZod package is outdated

I can expand on the actual use-case, in a simple form :

Traditional zod usage
It often start with the schema defined. Later, the underlying, actual, data type of the object can be derived with z.infer
import { z } from 'zod'

export const BearZ = z.object({
  id: z.string(),
  nickName: z.string(),
})

type Bear = z.infer<typeof BearZ>

Problematic usage
There are circumstances where the actual type is already defined and derived from somewhere else. A good example is a database model.
The actual trouble is, defining a random z.object in that case does not have the benefit to typecheck the schema versus the "wanted" type :
import { z } from 'zod'
import { Bear } from './db/models/bear'

export const BearZ = z.object({
  id: z.string(),
  nickName: z.string(),
  // ⚠ No autocompletion here. No hint on how to type the schema
})

// BearZ output right here can lead be completely different type than Bear

A common workaround is to force the type, with z.ZodType :
import { z } from 'zod'
import { Bear } from './db/models/bear'

export const BearZ: z.ZodType<Bear> = z.object({
  id: z.string(),
  nickName: z.string(),
})

This works for autocompletion, but leads to several other issues. A good example is a real-world situation where you will re-use the schema in other schemas; such as creation or update payloads.
Consider the following
import { z } from 'zod'
import { Bear } from './db/models/bear'

export const BearZ: z.ZodType<Bear> = z.object({
  id: z.string(),
  nickName: z.string(),
})
export const BearCreationZ = BearZ.omit({ id: true })

Pretty cool uh ? Here you can convince yourself it will throw on build, because BearZ here is actually not a ZodObject ! (and .pick relies on ZodObject).

So let's try using ZodObject directly maybe ?
With something like :
export const BearZ: z.ZodObject<Bear> = z.object({
  id: z.string(),
  nickName: z.string(),
})

This doesn't work written like this, because the index signature of z.object is not that simple :
declare const objectType: <T extends ZodRawShape>(shape: T, params?: RawCreateParams) => ZodObject<T, "strip", ZodTypeAny, { [k_1 in keyof objectUtil.addQuestionMarks<{ [k in keyof T]: T[k]["_output"]; }>]: objectUtil.addQuestionMarks<{ [k in keyof T]: T[k]["_output"]; }>[k_1]; }, { [k_3 in keyof objectUtil.addQuestionMarks<{ [k_2 in keyof T]: T[k_2]["_input"]; }>]: objectUtil.addQuestionMarks<{ [k_2 in keyof T]: T[k_2]["_input"]; }>[k_3]; }>;

In that particular situation; I come to the conclusion that :

Having typechecked schema against exiting type
Plus keeping the ZodObject type

is impossible.

Reference : #53, #372

ok, I finally got the solution. @domosedov saved me here https://github.com/colinhacks/zod/issues/1495#issuecomment-1339832685


Allow onSend hook to mutate swagger object for each request (multi-tenant hosting)

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal
This is a follow-up to fastify-swagger#683.
I have the same need as in https://github.com/fastify/fastify-swagger/pull/92 of setting the authorizationUrl but based not only on the hosting environment but also on the request. The app I have is multi-tenant and each tenant has a different authorizationUrl. Which tenant is calling is determined by the domain.
Motivation
I don't think this can be achieved with the current postProcessor() introduced in https://github.com/fastify/fastify-swagger/pull/92 since it only runs once at setup.
Example
For example calling tenant1.myapp.com/theservice/docs means that the authorizationUrl should be something like https://login.myapp.com/auth/realms/tenant1/protocol/openid-connect/auth.
Calling tenant2.myapp.com/theservice/docs means that the authorizationUrl should be something like https://login.myapp.com/auth/realms/tenant2/protocol/openid-connect/auth.

Merged transformSpecification. Will be part of next release

Released in 38a0de291058bf2f2a316ec2570eec950704360a


Compile not Working!

when it's almost done compiling it says this:
Error: VlcBitmap.cpp
D:/fnf-psychengine-042_f4393/FNF-PsychEngine-0.4.2/source/vlc/cpp/src/LibVLC.cpp(5): fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
I don't know what to do help me.

https://gamebanana.com/tuts/13653
You've missed something


[BUG] Does not display when there is no playhead

Ensure the handler can handle an undefined value

Fairly sure this was already sorted with the node-js version, so should be easy enough to re-implement in the OSC module


Return Config struct in init_file() func

Can you return Config struct after read log config from file? If so, I can cache this struct and don't have to read file every times. More over, I can change log config on the fly.

Yep, you can do this but it involves a bit more manual work than init_file (untested):
use std::fs::File;
use std::io::Read;
use log4rs::file::{Config, Format};

let mut config = String::new();
let mut file = File::open("log4rs.yaml").unwrap();
file.read_to_strint(&mut config).unwrap();
let deserializers = Default::default();
let raw = Config::parse(&config, Format::Yaml, &deserializers).unwrap();
let config = raw.into_config();
let handle = log4rs::init_config(config).unwrap();

// use handle to update config dynamically

Thank you so much!


Create Maltego Transaction for OWASP-Nettacker (Local & Server)

Hi everyone,
I want to create Maltego transaction for the framework, first, I will create a local transaction and then develop and complete that, we may start a server-based transaction in the second phase.
Let me know if you have suggestion about this.
Regards.

Hello @ArianPH ,
would you please send us updates regarding this feature? I am planning for GSoC, let me know if you are working on this.
Best Regards.

Hey @Ali-Razmjoo,
Can you please give me more information about this maltego transaction? Googling it yields no relevant results and I can only find some references of maltego transform. Is it related to https://www.paterva.com/web7/. Is this issue about visualizing the data effectively into an interactive graph module?
Regards.

Hey,

Is this issue about visualizing the data effectively into an interactive graph module?
yes, it is.  references: https://docs.paterva.com/en/developer-portal/tds-transforms/trx-transform-library-guide/

Regards.

Hey @Ali-Razmjoo,
I was going through the docs and sample examples of local maltego transform. We can use two python libraries for it. One is the official Basic Python Library, other is Canari, which is also mentioned on their official website. I am currently making some examples for learning and I would like to know if you had a preference regarding which one to use.
Best Regards.

Hello @shaddygarg ,
Do let me know about the details of this one, I got confused with creating and transforming charts.
Best Regards

Hi,
thanks to Shaddy's last PR, now I mark this issue as close until we get ideas for updating this section.

docs: https://github.com/zdresearch/OWASP-Nettacker/wiki/Usage#maltego-transforms
Regards.


Rich Text editor demo not working

https://syncedstore.org/docs/advanced/richtext

Error
/App.tsx: Could not find dependency: '@tiptap/pm' relative to<EMAIL_ADDRESS>(4:0)

  1 | import React, { useState, useCallback, useEffect } from "react";
  2 | import { store, webrtcProvider } from "./store";
  3 |
> 4 | import { useEditor, EditorContent } from "@tiptap/react";
      ^
  5 | import StarterKit from "@tiptap/starter-kit";
  6 | import Placeholder from "@tiptap/extension-placeholder";
  7 | import Collaboration from "@tiptap/extension-collaboration";

PS: I would like to take this opportunity to say that lib is amazing 💖

Thanks, this has now been fixed!


fix: Add ChromaDB container

@tazarov I have to close this one because you did not allow maintainer modifications to the PR - im going to merge and give you credit via https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors
in the future please make sure to check this box
thanks!


[Core] Added ColorFromNormalized which is the reverse of ColorNormalize.

I based the name from ColorFromHSV. Not sure if it is the best name for it.
Example usage
Color color = ColorFromNormalized((Vector4){0.5f, 0.1f, 0.1f, 1.0f});

I am not sure if a cast should be added for converting the float to unsigned char.

@ChrisDill thanks for the contribution... I'll think about the name and also the consistency with the other functions... it's ok for now...


update documentation with examples of what the command is

everytime I try to download a single post I go to the documentation and can't understand what the instructions mean. It would make it 10x simpler if you just gave an example for downloading a single post by writing out the command for a sample post.
it currently says The single post with the given shortcode. Must be preceeded by -- in the argument list to not be mistaken as an option flag. which must be deciphered

Please stop spamming – duplicate of at least #398 and #565, all created by the same account. As I already said multiple times: Feel free to create a PR to discuss concrete ideas.


Issue #148: Port to FastAPI

This is a draft to explore the possibility of using FastAPI in our backend.
Related to #148

Mind that current requirements.txt is auto instrumenting with flask. Changing to fastAPI means we should change

opentelemetry-instrumentation-flask

to

opentelemetry-instrumentation-fastapi

In requirements.txt (from current state in main).
reference : https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/fastapi/fastapi.html


rouge.propertities can not be set for rouge-L

I dont'know why it failed.

You may be using an older version of the library. Please use: https://github.com/kavgan/ROUGE-2.0/tree/master/versions/v1.2.1
Settings instructions are here: https://github.com/kavgan/ROUGE-2.0/blob/master/docs/usage-documentation.md

Related to #8

Hey @kavgan . I also had the same issue but this was resolved by downloading and using the zip in the link above (thanks for this). The latest commit in the master branch (https://github.com/kavgan/ROUGE-2.0) doesn't seem to be linked to this or up-to-date, so it might be a good idea to merge everything to prevent future issues, as this is slightly misleading.
Thanks!

Thanks I will update the README!

@ailsamm I've updated the README, thanks for your input and please let me know of other inconsistencies if you do see them 😄

@kavgan Thank you so much for updating. It's appreciated!


Reset AbortSignal's reason to unknown

AbortController is JavaScript's built-in cancelation interface for asynchronous requests (like fetch).
When aborting, you can provide a "reason" - Typescript types reason as any:
const controller = new AbortController();
const signal = controller.signal;

const fetchData = async () => {
  try {
    const response = await fetch("some-url", { signal });
    // ...
  } catch (e) {
    if (e instanceof Error && e.name === "AbortError") {
      console.log(signal.reason.toUpperCase()); // `signal.reason` is `any`, so no complains here
    }
  }
};

fetchData();
controller.abort(3); // This will throw a TypeError because I'm calling toUpperCase

It seems like "resetting" AbortSignal's reason to unknown is a useful change that is in the spirit of this library.
I'd be glad to open a PR.

Yep, makes sense!


GET requests not getting params.

项目地址：https://github.com/bigbeer1/go-zero-get

Please describe the details.


sysout shoundn't be used

"System.out.println" is not a good practice. It is even caught in analysis by PMD tool.
check the file "/core/src/main/java/com/capitalone/dashboard/util/Encryption.java"

@ravikalla Closed. Its intentional in this case and its in the main for quickly generating keys without the need for a logger.


Fix Clippy lints and add to CI

This PR consists mostly of fixes for clippy lints to make the code a bit more rusty.
Two other larger changes are in the GribInt trait and postfix on CliError to comply with the clippy lints.
This PR also fixes a bug with potentially unused IO which could cause issues in the future.

The build failure on windows was fixed upstreams, which makes CI green for all platforms

Thank you very much for many cleanups!!
I will review it.


How to change ListPreference Dialog background color

Hi,
How can I set manually a color for ListPreference Dialog background, text and buttons?

There's a README page for a reason 😝


URL parameter ?pass=secret

Request Tracker only support authentication like:
https://rt.mydomain.com/REST/1.0/?user=joe&pass=123

Unfortunately pass is a reserved keyword in Python, so I can't call:
api.ticket(42).get(user='joe', pass='123')

...without python throwing an error.
I don't see any way around this in the docs.

Disregard.  I found a solution here: http://stackoverflow.com/questions/870455/soappy-reserved-word-in-named-parameter-list
auth = {'user': 'joe', 'pass', '123'}
api.ticket(42).get(**auth)

Might be useful for the documentation. :)

The docs could certainly do with some love.  Glad you got it working.


Update acorn-to-esprima and bump beta version

force acorn-to-esprima patch by bumping published beta version

Not sure I understand what this is supposed to be doing. If the user npm installs again they will get the new version. Simply changing the patch version won't do anything? It doesn't work for getters yet.

@hzoo totally understand if you want to wait for getters! since the acorn-to-esprima patch fixes several errors in downstream libraries (such as this one), i thought bumping the published beta version would help propagate to installations that were affected. you can merge or close, no worries either way :smile:

pushing out a new version so closing this


BUG Visiting old urls should force default locale

If you visit a page like /parent/subpage, it attempts to guess the locale from the persisted value in session. In this case it should probably use the default locale instead.
The fix is to update the default route as below
Director:
 rules:
   '$URLSegment//$Action/$ID/$OtherID':
     Controller: 'ModelAsController'
     Locale: en_NZ

Note that this will throw a type conflict, since the original mapping of $URLSegment//$Action/$ID/$OtherID is to a string, and this changes it to an array.
Simplest, hackiest fix seems to be to change it to something equally useful but slightly different.
Director:
 rules:
   '$URLSegment//$Action/$ID/$OtherID/$Hack':
     Controller: 'ModelAsController'
     Locale: en_NZ

Yeah there's also a risk that this interferes with other custom routes. We need to make sure that routes such as admin are still evaluated before these ones.

Closing due to inactivity, feel free to reopen if this is still a problem


Handle estimated fee error on NFT sending + staking

Describe the bug
Problem happened due to estimated fee being larger than number upper bound.
This prevents the user from submitting transaction
Expected behavior
Catch error, set estimated fee to 0 if error happens.

Version test:
Validation passed.