Clarification required in proactive message article

What does "Every activity your bot receives must contain the required information." mean?
How does it help to receive or retrieve the ID as mentioned before it?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4ad9f167-7d29-f933-7b47-60bd744899b1
Version Independent ID: 8097fcbd-adcc-ce49-a378-426c65af9296
Content: Send proactive messages - Teams
Content Source: msteams-platform/bots/how-to/conversations/send-proactive-messages.md
Service: msteams
GitHub Login: @surbhigupta
Microsoft Alias: anclear

Thank you for mentioning this, we will check this and take necessary action.

@surbhigupta12 - Can you please add the below sentence as 3rd point and remove the last point "Every activity your bot receives must contain the required information." in https://docs.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-proactive-messages?tabs=dotnet#get-the-user-id-team-id-or-channel-id

Every event that bot receives, contains the required information which you can get from the bot context (TurnContext object).


 MacOS 10.13.4
What did you do?

A week ago I was using Delve successfully to remote debug my Go app in Docker.  The Delve binary is pulled into the Docker image on each build using go get so it tracks the latest version at all times.  Recently (the last 2 days or so), it has stopped working with the error referenced in the title.
I ran a local test (outside Docker) where I still had the old Delve binary from a week ago.  I first attempted to run my debugging with the old binary (it worked), I then did go get -u to get latest Delve & attempted to run it again immediately - it failed.  Here's the shell output (which includes the Delve build IDs).  Note I've elided my company's package names.
➜  go build github.com/...<elided>.../cmd/server
➜  pwd
/Users/rory/code/go/src/github.com/.....<elided>
➜  dlv debug --headless --listen=:2345 --log github.com/...<elided>...
2018/04/18 18:37:14 server.go:73: Using API v1
2018/04/18 18:37:14 debugger.go:98: launching process with args: [/Users/rory/code/go/src/github.com/...<elided>..../debug]
API server listening at: [::]:2345
^C%                                                                                ➜  dlv version
Delve Debugger
Version: 1.0.0
Build: a708d00e78bc9e6d344d66b4428820c061d35d83
➜  which dlv
/Users/rory/code/go/bin/dlv

Then I updated & tried again:
➜  go get -u github.com/derekparker/delve/cmd/dlv
➜ dlv version
Delve Debugger
Version: 1.0.0
Build: $Id: c98a142125d0b17bb11ec0513bde346229b5f533 $
➜  dlv debug --headless --listen=:2345 --log github.com/...<elided>.../cmd/server
can't load package: package github.com/...<elided>.... no Go files in /Users/rory/code/go/src/github.com/...<elided>....
exit status 1

Hmm I believe the issue is actually that 4e177bb99acc511897f9cdbfc6cbc50d92ae4725 changed the --log CLI flag from a bool to a comma-separated string.
Changing the command line to the following fixes it:
dlv debug --headless --listen=:2345 --log=debugger github.com/...<elided>.../cmd/server

Note the --log=debugger instead of just --log

@derekparker I didn't consider that --log could be used without argument before, should we change --log back and add a different option?

Yeah that’s very true, I definitely think we should reinstate the old behavior and add a new option.


[Refactor] Remove unused TimeRangeSwitcher component

#3839  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @jnsdls and the rest of your teammates on  Graphite


Create an api for "Index streams".

Indexes are a common need for video.
Below is a proposal for how they could be implemented:
Proposal
An index stream is a stream where entries are added which have a specific structure.
This structure consists of a fixed number of monotonically increasing values, and some user defined data.
So for example a user could define three values: "time", "sequence number", "location" and define each of these with a long.
(All of the defined keys have a value for every append)
Then every time an entry is written a check would be made to make sure each of these is increasing.
If these conditions are met the new entry (the values and any associated data) are appended to the stream.
This write is atomic.
APIs

Get the first value. - For any of the user's defined keys return the oldest untruncated value in the stream.
Get latest value - For any of the user's defined keys return the most recent one in the stream.
Add new key - All future entries are expected to provide the given key or fail.
Append data - (described above)
Append data conditional on any of the values being the value provided.
Read data starting at a Revision (optionally up to another Revision)
Find the first entry (and revision) with a value >= x (or <= x)
Start reading from the first entry with a value >= x (or <= x)
Truncate to a revision

Implementation
One way to implement this efficiently is to have a fixed size frame. For example 4kb.
Then we can limit the size of entries to be less than this. For example no more than 100 entries, and no more than 1kb of custom data.
Then all writes are written as conditional appends based on offset. No append is allowed to span a frame boundary. So as many entries as can fit in a frame are packed in, and then the frame is padded out to 4kb.
This way it is always possible to align a read to a 4kb boundary and know that it is aligned to a frame. So binary (or newtonian) search can be performed by aligning reads to a 4kb boundary and reading 4kb.
To allow the keys to change over time, it may be best to simply insert the keys that are used at the start of the frame. Then if the keys change a new frame needs to be started (padding out as needed).

As an API writes should take a Record the format of this can be
Record {
struct Record<const ENTRIES: usize, const DATA_SIZE: usize> {
    entries: [(String, u64); ENTRIES],
    data: [u8; DATA_SIZE],
}

To serialize this we should calculate its size as ENTRIES * 24 + DATA_SIZE + 8 rounded up to the nearest multiple of 32. Then then it can be serialized as: (num_entries, data_size, hash(k), v, hash(k), v, ... hash(k), v, data, padding) with a standard 8 byte event style header. (0 and length).
The advantage of this is it is self-describing so we can support changing sizes in the future.
For hash we should probably use something from the SHA-3 family such as shake 128
Order of entries in the serialized from should correspond to their unhashed sorted order. (Hence even in the very unlikely event of a hash collision it can be detected, and mitigated)

pub write(&mut self, [&'static str, u64; ENTRIES], data: [u8])


freemium column not updating in Shop table

Argument 2 passed to OhMyBrew\ShopifyApp\Libraries\BillingPlan::__construct() must be an instance of OhMyBrew\ShopifyApp\Models\Plan, null given, called in /Users/coryfail/Dropbox/Development/Sites/statusy/vendor/ohmybrew/laravel-shopify/src/ShopifyApp/Traits/BillingControllerTrait.php on line 25
I followed your upgrade documentation and now I'm getting this error.

I fixed the issue by adding a plan. However, what do I do if I want a freemium (free to install) but I want to use the charges? The idea is that it is free to install but I need to charge for x amount of emails being used automatically.

Another issue that I came across is that the freemium record is not being updated in the database. Even if billing_freemium_enabled is set to true, the record is always false.

It was not an existing shop. I completely removed all shops from the
database and readded them after the update.
Cory C. Fail
Software Engineer
coryfail.com /<PHONE_NUMBER>

Ok, you readded them manually via the database of by install? Just trying
to see what's up. Just ran a fresh install through a fresh shop with
freemium on and I'm seeing the flag set, would like to duplicate your
situation.
On Sep. 16, 2018 19:03, "Cory Fail"<EMAIL_ADDRESS>wrote:
It was not an existing shop. I completely removed all shops from the
database and readded them after the update.
--
Cory C. Fail
Software Engineer
coryfail.com /<PHONE_NUMBER>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ohmybrew/laravel-shopify/issues/105#issuecomment-421837206,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACTuOte7DoeH6cehNvs6Xd6h8X2Ypsv8ks5ubsONgaJpZM4WqFjY
.

I did it by install.
https://streamable.com/lnstv
Here is my exact process

Thanks I'll review and see what I can do.
On Sun., Sep. 16, 2018, 20:38 Cory Fail<EMAIL_ADDRESS>wrote:

I did it by install.
https://streamable.com/lnstv
Here is my exact process
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ohmybrew/laravel-shopify/issues/105#issuecomment-421849869,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACTuOmWKCmHTKST_7gkCYOCdp11wwWN_ks5ubtn-gaJpZM4WqFjY
.

Also, I just confirmed that it is not a caching issue.
dd(config('shopify-app.billing_freemium_enabled')) is returning true

Pretty clear the Observer is not firing. Any idea what would cause that? Going to try a few things on my end and see what I can dig up, thanks for the detailed video.

@ohmybrew do I need to have my queue listener fired up for it to work?

@ohmybrew I found the issue. I'm extending the Shop model in App\Shop. In your ShopifyAppProvider by replacing use OhMyBrew\ShopifyApp\Models\Shop; with use App\Shop this fixed my issue. Is there a way you can leverage config('shopify-app.shop_model') here?

Oh wow that makes so much more sense now, yes. I will update this... give me about an hour.

v4.0.1 @fyroc has the fix for this, thanks!

Don't you love it when the issue reporter fixes the issue for you? =P

It's internet gold 😎
On Sep. 17, 2018 23:40, "Cory Fail"<EMAIL_ADDRESS>wrote:
Don't you love it when the issue reporter fixes the issue for you? =P
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/ohmybrew/laravel-shopify/issues/105#issuecomment-422229896,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACTuOj-dN3PGWYcFObTXHYFWeQlL6_1sks5ucFYvgaJpZM4WqFjY
.


Update to operator-sdk 1.21.0

Following steps from https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.21.0/

Makefile: replace "go get" calls with "go install" calls (copy/paste of a code snippet)
manager_auth_proxy_path.yaml: update kube-rbac-proxy version
go.mod/go.sum changes according to the steps + go mod tidy + additional changes to fix build errors

Dockerfile:

update to go 1.18 to fix build issues
as there is no 1.18 image for 4.10, use 4.11 image for the builder, and change the base image accordingly
empty the GOFLAGS variable when calling "make build": the new "go install" commands were failing because of the default "-mod=vendor" flag. The actual build in the makefile is explicitely using "-mod=mod" flag anyway.

Misc:

update the sdk version in bundle-custom.Dockerfile too
update the DEVELOPMENT.md file with new versions

/hold
I have an issue with the webhook when testing this - working on it

/unhold
The failure was due to my environment. With a clean setup, I can install the operator and run kata containers.

I have a question: we will need to upgrade to 1.23 at least. Should I make separate PRs building one on top of the other, or a single PR, with one commit for each upgrade?

I have a question: we will need to upgrade to 1.23 at least. Should I make separate PRs building one on top of the other, or a single PR, with one commit for each upgrade?

I think one PR for every upgrade will be easier to review

/ok-to-test


Use References in Requests Where Possible

Currently, most request structs use owned types for the request. However, they only need to serialize the request, thus they only need immutable references to the data.
Take the GetUsersRequest as an example:
https://github.com/twitch-rs/twitch_api/blob/607b9aed06b4168db548997d445f739fbb297a26/src/helix/endpoints/users/get_users.rs#L48-L55
The id and login should really be &[&types::User{Id,Name}Ref].

This is a duplicate of #114
This is definitely something I want solved, the hard part is how to do it and allow owning the data. (Cow comes to mind, which we've managed to implement fairly well in twitch-irc, but not to a level I feel works well.

Sorry, I didn't see the issue.


SyncLists don't work if B inherits A and A has the synclist

Project: https://noobtuts.com/_projects/Mirror/bugs/bug_synclist_inheritance.zip
Reproduce:

build and run, select server only in build
press play in editor, select client login
see how equipment synclist doesn't sync for client

happens because HLAPI's 'SyncListMessage' is applied to the first synclist with that hash.
this is deeply convoluted in hlapi. probably need to come up with a better solution for synclists first.

From our discussion in discord:
Synclists get synchronized with OnSerialize during spawn.
After that,  any change to the synclist is send to the client in a separate message. See
The update messages have netid and field hash.  They client can tell which gameobject the message is for,  but it can't tell which MonoBehavior,  so all update messages go to the first synclist.
A proposed solution is that SyncLists queue up their changes and send the changes via "OnSerialize".   this would eliminate a lot of weaver complexity, lists would respect the SyncInterval setting and this would save a lot of bandwidth in headers because updates can be batched together.

fix has been merged


close_callback parameter is never being called

Problem
eel.start() keyword parameter close_callback is never called on window close, it is also never called when killing the process.
Code
import eel

eel.init('web')

@eel.expose
def handle_exit(ar1, ar2):
    import sys
    print("exit")
    sys.exit(0)

if __name__ == "__main__":
    eel.start("index.html", size=(1280, 768), port=3000, host="localhost", close_callback=handle_exit)

index.html
<!DOCTYPE HTML>

  <meta charset="utf-8">

  <title>Test</title>

Test

Folder Structure
.
+-- web
|    +-- index.html
+-- app.py

What I've tried
I tried setting all the parameters with options={...} however it was the same result
I tried removing @eel.expose however it was the same result
I tried making eel.start non-blocking then putting a while True: eel.sleep(10) after however it was the same result
I tried default parameters except for close_callback however it was the same result
I tried both python versions 3.7.8 and 3.8.1
I tried using a different browser (edge) however it was the same result
I tried building with PyInstaller but it had the same behaivior.
I tried on a Macbook Air Running OSX ver 10.15.5 and Python 3.7.4 (with py3.7-dev because I needed to install eel) and the same code.
Output upon ctrl+c the blocking code
Traceback (most recent call last):
  File "C:\Python38\lib\site-packages\gevent\_ffi\loop.py", line 269, in python_check_callback
    def python_check_callback(self, watcher_ptr): # pylint:disable=unused-argument
KeyboardInterrupt
2020-07-18T19:19:09Z

Information
OS: Windows 10 v10.0.19041 Build 19041 and macOS Catalina ver 10.15.5 (I tried both with different python installations and setups however it had the same problem)
Browser: Chrome v83.0.4103.116 and Edge v83.0.478.61
Python: Python v3.7.8, Python v3.7.4 (with dev headers) and Python v3.8.1 (I tried both)
Eel: Eel v0.13.2

Oops, sorry I solved it by myself. I didn't include  in my HTML file.


Add GitHub actions and subject prefix

Description
Move CallbackRequestType from policy-sdk to policy-evaluator. Consume SigstoreVerificationInputV1 and SigstoreVerificationInputV2 for verification callbacks.
Relates https://github.com/kubewarden/policy-sdk-rust/issues/40
Relates https://github.com/kubewarden/policy-sdk-rust/issues/41

Test
Tested locally with a local built policy

Additional Information
Tradeoff

Potential improvement

Tagged new 0.4.4 in main.


API: Review to ensure IDisposable is being used correctly and disposable pattern implemented correctly

There have been several issues found recently with the disposable pattern not being implemented correctly. I have also been made aware that there is at least one class (Lucene.Net.Store.Lock, if I recall correctly) that is designed to be re-opened after it is closed.
We need a review to ensure all classes that implement disposable are doing it correctly and have correctly implemented the dispose pattern both for sealed and unsealed types. We also need to have a close look at whether any classes should be reverted back to using Close() instead of Dispose() on account that the class instance was designed to be used again after the Dispose() call.
We should also explicitly check to ensure that Dispose() is set up to be called more than once safely. That is, after the first call, all additional calls should be a no-op.
JIRA link - [LUCENENET-626] created by nightowl888

Issues found: https://sonarcloud.io/project/issues?resolved=false&rules=csharpsquid%3AS3881&id=nikcio_lucenenet
Mentioned in #648 :
Note this is part of https://github.com/apache/lucenenet/issues/265. Most of the issues I have spotted were failure to call base.Dispose(disposing) after exiting the if (disposing) block. Others are because they are on a private class that should be sealed, but it is not (Enumerators).


Using slug to import tags

Solves #206
Using slug to identify the post node from which to extract tags if Id is not available

Indeed.. :) and only kicks in if the search for id doesn't find anything so won't disrupt default behaviour
Sent from my iPhone

On 5 Jan 2017, at 00:47, Shannon Deminick<EMAIL_ADDRESS>wrote:
I think it looks good, I assume you've tested this to get your importing working so looks good to me :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Onboard ACS team workbook

If adding or updating templates:

[ ] post a screenshot of templates and/or gallery changes
[ ] ensure your template has a corresponding gallery entry in the gallery folder
[x] If you are adding a new template, add your team and template/gallery file(s) to the CODEOWNERS file. CODEOWNERS entries should be teams, not individuals
[ ] ensure all steps have meaningful names
[ ] ensure all parameters and grid columns have display names set so they can be localized
[ ] ensure that parameters id values are unique or they will fail PR validation (parameter ids are used for localization)
[ ] ensure that steps names are unique or they will fail PR validation (step names are used for localization)
[ ] grep /subscription/ and ensure that your parameters don't have any hardcoded resourceIds or they will fail PR validation
[ ] remove fallbackResourceIds and fromTemplateId fields from your template workbook or they will fail PR validation

This is seed file, we will update this workbook as we go


Incomplete documentation to run examples - invalid toolchain name: 'esp'

I cloned this repo with the intent to run some of the examples.
I tried to follow the instructions and run this command:
cargo esp32c3 --example ble --release --features "ble"

but it fails with this error:
error: in /Users/jonas/Code/esp-wifi/rust-toolchain.toml: invalid toolchain name: 'esp'

How should I solve that issue?

The book explains this issue: https://esp-rs.github.io/book/


nixos/xen: fix spurious ShellCheck warning

Fixes #343522
It thinks we want to expand the * regex expressions inside the sed commands. We do not.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

cc @hehongbo

The same SC2016 messages pop up. Is it got disabled properly, or is such an info considered fatal?
In /nix/store/9acd5pn68s73d21vkjn8kl5h3ykavzsv-xenBootBuilder/bin/xenBootBuilder line 30:
mapfile -t preGenerations < <(find "$efiMountPoint"/loader/entries -type f -name 'xen-*.conf' | sort -V | sed 's_/loader/entries/nixos_/loader/entries/xen_g;s_^.*/xen_xen_g;s_.conf$__g')
                                                                                ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.

In /nix/store/9acd5pn68s73d21vkjn8kl5h3ykavzsv-xenBootBuilder/bin/xenBootBuilder line 73:
        xenGen=$(echo "$gen" | sed 's_/loader/entries/nixos_/loader/entries/xen_g;s_^.*/xen_xen_g;s_.conf$__g')
                                   ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.

In /nix/store/9acd5pn68s73d21vkjn8kl5h3ykavzsv-xenBootBuilder/bin/xenBootBuilder line 136:
mapfile -t postGenerations < <(find "$efiMountPoint"/loader/entries -type f -name 'xen-*.conf' | sort -V | sed 's_/loader/entries/nixos_/loader/entries/xen_g;s_^.*/xen_xen_g;s_.conf$__g')
                                                                                ^-- SC2016 (info): Expressions don't expand in single quotes, use double quotes for that.

For more information:
  https://www.shellcheck.net/wiki/SC2016 -- Expressions don't expand in singl...
error: builder for '/nix/store/q7p22gdmdkqpnqymm15kgwjdk4id1lqk-xenBootBuilder.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/08va25dxqyq69vkwyk6hnmyhl0ghgcxk-install-systemd-boot.sh.drv' failed to build
error: 1 dependencies of derivation '/nix/store/2zkhvwaf26iqmsijrmpwjbiyi6pax79r-nixos-system-xen-dom0-24.11pre-git.drv' failed to build
error: 1 dependencies of derivation '/nix/store/q7bksgnlw2bqbcjz25w937zqn05s87b9-morph.drv' failed to build
Error while running `/run/current-system/sw/bin/nix-build /nix/store/pjbhydgi8mz4mk190i0r309r3ga1ihiz-morph-1.7.0-lib/eval-machines.nix --arg networkExpr /root/nixos-deployments/nixos-build-xen-test/morph.nix --argstr argsFile /tmp/morph-4126753695/morph-args.json --out-link /tmp/morph-4126753695/result --attr machines ...`: See above.

writeShellApplication has a excludeShellChecks attribute. Using it does make the script pass the checks on my machines.

This fixed the build error on my side as well, great!


Can't run poetry run in a subdirectory of a project

Hi, I have some projects which have scripts that are sensitive to the current working directory. I'd like to be able to run these scripts in a subdirectory of my python project, but poetry run doesn't work in that case because it can't find ./pyproject.toml. This means I have to resort to poetry run bash --noprofile --norc, and then running my script in this subshell.
Would it be possible for poetry to search upwards until it finds a pyproject.toml?

@radix This is already supported in the latest version (0.9.0)

oh, sweet! sorry, I remembered this from a couple weeks ago and have been meaning to file it, and I finally got around to it but forgot to actually verify that it still exists... :scream: thanks @sdispater !


Error in bb_first_spectrum_id (DIA datasets)

The value spectrum.bb_first_spectrum_id seems to be incorrect for mzDB files generated from thermo DIA datasets (with the command line arguments --dia -t 15 -m 5).
When the corresponding bounding box is read it doesn't contain the corresponding spectrum.
However using the id of the specturm to query on bounding_box.first_spectrum_id loads a BB containing the desired spectrum.
Performing the query "SELECT DISTINCT first_spectrum_id FROM bounding_box" returns a consecutive list of IDs as if each spectrum was represented by a BB.

found a little bug in the DIA consumer concerning spectrum.bb_first_spectrum_id(fix in  9d96ccf). But, I do not know if it fixes your problem since I did not set up mzDBAccess to extract some data. I am going to upload a new binary release in a minute.

Can I close this one ?

I still have the same issue.
Trying to load a given spectrum by its id is not working.
The reason is that the bb_first_spectrum_id is still not the good one.
For instance in a file I'm searching for the spectrum 11327.
The bb_first_spectrum_id is 11318.
The bouding boxes having the first_spectrum_id equaling 11318 do not contain the spectrum 11327.
However some bounding boxes have a first_spectrum_id equaling 11327. These ones contain the desired spectrum.
What might help you is that 11318 is a spectrum corresponding to the first DIA window while 11327 is in the 10th DIA window.
It seems that first_bb_spectrum_id are always mapped with the first DIA LC-MS/MS map instead of the correct one.

Works for me now with the latest binaries !


Update nf-wdm-zwloaddriver.md

fix <\b>

Hi fisherwise
Thanks for the PR. Your comment says fixed  but the change that I can see is an extra "" in the registry path. Please can you clarify your change?
Thanks
PageWriter

The extra " fixes the display issue which currently looks this way

Of course! Thanks for catching that. I have updated content.
PageWriter


make pysam work by adding dependencies and add conda path

Many thanks to contributing to nf-core/kmer-similarity!
Please fill in the appropriate checklist below (delete whatever is not relevant). These are the most common things requested on pull requests (PRs).
PR checklist

[ ] This comment contains a description of changes (with reason)
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] If necessary, also make a PR on the nf-core/kmer-similarity branch on the nf-core/test-datasets repo
[ ] Ensure the test suite passes (nextflow run . -profile test,docker).
[ ] Make sure your code lints (nf-core lint .).
[ ] Documentation in docs is updated
[ ] CHANGELOG.md is updated
[ ] README.md is updated

Learn more about contributing: https://github.com/nf-core/kmer-similarity/tree/master/.github/CONTRIBUTING.md

this created the new dev docker image
czbiohub/nf-kmer-similarity   dev                 49087f9fd494        38 minutes ago      3.58GB

changed the base branch to dev after reading the guidelines, but dev branch has some commits that are not in master, and viceversa too. But I wanted to make sure tests pass, and without pointing to dev tests are not passing because of this   - '[ $TRAVIS_PULL_REQUEST = "false" ] || [ $TRAVIS_BRANCH != "master" ] || ([ $TRAVIS_PULL_REQUEST_SLUG = $TRAVIS_REPO_SLUG ] && [ $TRAVIS_PULL_REQUEST_BRANCH = "dev" ])' in .travis.yml
@olgabot let me know if I can remove it and base the PR off to master

changed the base branch to dev after reading the guidelines, but dev branch has some commits that are not in master, and viceversa too. But I wanted to make sure tests pass, and without pointing to dev tests are not passing because of this   - '[ $TRAVIS_PULL_REQUEST = "false" ] || [ $TRAVIS_BRANCH != "master" ] || ([ $TRAVIS_PULL_REQUEST_SLUG = $TRAVIS_REPO_SLUG ] && [ $TRAVIS_PULL_REQUEST_BRANCH = "dev" ])' in .travis.yml
@olgabot let me know if I can remove it and base the PR off to master

Hi @olgabot ! this wasn't started with an older version. You have your changes on dockerfile regarding conda envs etc on dev branch, not on master - https://github.com/nf-core/kmermaid/pull/7/files . this here is the master version I edited - https://github.com/nf-core/kmermaid/blob/master/Dockerfile

I can wait for you to merge your dev branch PR - https://github.com/nf-core/kmermaid/pull/7/files and then I will close and open this PR on nf-core, thanks!

closing this PR in favor of this commit https://github.com/nf-core/kmermaid/pull/10/commits/7bf7d466c46c1de27975a2e67263a046b4f1cd7a in PR 10 in nf-core/kmermaid


[engine] scrolling perfomance regression with merged platform/UI thread.

Steps to reproduce

flutter channel master
flutter run --profile
Scroll vigorously up and down

Reproducible on master TOT at the moment : 3ed40f003a92487dfa96833e6a1e1bd7f8ceb677 ❌
The master commit that caused it : 81e418dd20f784cae63a5eb9bc234b1332f8e925 ❌
Reproducible on beta as well 2e2c358c9b14765c90343af9df11e12c5dfc3e6c ❌
The issue got merged here : https://github.com/flutter/flutter/pull/154020
Last good master commit : a4b0d973fb196ba86da5c6ae4d51db40a78a0926 ✅
Not reproducible on stable 3.24.4 ✅
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SingleChildScrollView(
          physics: const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
          scrollDirection: Axis.vertical,
          child: Stack(
            children: [
              const SizedBox(
                height: 1440,
                width: 1000,
              ),
              for (var i = 0; i < 100; i++)
                Positioned.fill(
                  top: i * 20,
                  child: Align(
                    alignment: Alignment.topCenter,
                    child: Container(
                      color: Colors.red,
                      height: 15,
                      child: Center(
                        child: Text(
                          '$i',
                          style: const TextStyle(
                            color: Colors.white,
                            fontSize: 11,
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
            ],
          ),
        ),
      ),
    );
  }
}

Performance profiling on master channel

[X] The issue still persists on the master channel

Timeline Traces
Timeline Traces JSON
dart_devtools_2024-10-29_21_26_05.195.json

Video demonstration

Video demonstration
https://github.com/user-attachments/assets/9c66fca2-762e-40fe-bd2b-0f66bb7593f2
https://github.com/user-attachments/assets/b6fa38ef-e136-4834-9428-ef763e5b9432
https://github.com/user-attachments/assets/27eca780-5428-4aeb-bd27-0dd22d6a7947

What target platforms are you seeing this bug on?
iOS
OS/Browser name and version | Device information
iOS 18.1 (22B83) | iPhone 12 mini
Does the problem occur on emulator/simulator as well as on physical devices?
Unknown
Is the problem only reproducible with Impeller?
No
Logs
Logs
flutter create scrolling

Flutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.27.0-1.0.pre.292, on macOS 15.1 24B82 darwin-arm64, locale en-US)
    • Flutter version 3.27.0-1.0.pre.292 on channel master at /Users/nabila/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 3ed40f003a (14 minutes ago), 2024-10-29 15:45:22 -0400
    • Engine revision 795b5492f1
    • Dart version 3.7.0 (build 3.7.0-78.0.dev)
    • DevTools version 2.40.1

@NabilaWorks please don't @ contributos in your issues templates, we'll look at it in issue triage normally and that isn't necessary.

I can reproduce this and it seems to be caused by changes to the UI/platform thread - as an aside, we plan to disable this for the next stable release and re-introduce it with an opt out flag for next stable.
I don't see anything that isn't running proportionally slower, nor do i see any big stalls, so i suspect the change to platform/ui thread is causing thread priority/affinity reshuffle and so the raster thread is running on a slower core perhaps. I don't see this regression on any of our benchmarks on CI confusingly enough.

Real devices, iPhone 11. I suspect that if its threading/affinity changes ... then its possible that a more complex app causes the OS to give more priority to raster workloads. This may be an artifact of the app being overly simple

It only seems to be a noticable difference when I scroll more slowly with finger down. Flings seem to behave about the same.

If its related to touch event handling that would also be a reason for automated benchmarks to miss it...

actually, now I feel like I'm going crazy and can't repro it. Will try again tomorrow.

I'm back, well rested, and can repro the problem.
Interestingly enough the issue disappears in release mode, that is if I add showPerformanceOverlay: true, to the MaterialApp and run in release mode I don't see any difference in raster time.
For now I plan to add back the opt out but I'm still leaning towards this not being a real regression.

There are lots of differences between profile/release mode unfortunately. Running the VMSevice debugger/profiler has substantial overhead.

I'm not sure if this is related.
But I notice a very strong visual performance sag when using impeller on android on the master branch for the last 6 months or more, even though everything was fine in March.
I don't see this difference in the displayed flutter graphics (it says max frame time 3ms), but at the same time on a device with 120ghz fps seems very low. (when using Skia everything is fine)
I'll think of a better way to record this problem and come back with this.
But it sounds very similar to what has been described.

That does not sound related at all


No servers in output

Hello there!
Is your programm still working? Not showing any servers in output for a month.
Thanks!
Nick

@2muaddlb Hello!
Works for me now. Probably your IP got banned on their servers for some reason.


Version issue with images when using istiooc_darwin cluster up

When I run "./istiooc_darwin cluster up" I am seeing an issue with the istio-statsd-prom-bridge pod not starting.
I am able to resolve the issue by changing the image to
image: 'docker.io/prom/statsd-exporter:v0.6.0'
I am also seeing an issue with no traffic being reported in Kiali.  I am able to resolve this issue by changing the Kiali image to "latest":
image: 'kiali/kiali:latest'
Version
oc v3.7.14
kubernetes v1.7.6+a08f5eeb62
features: Basic-Auth
Server https://<IP_ADDRESS>:8443
openshift v3.9.0+71543b2-33
kubernetes v1.9.1+a0ce1bc657
Steps To Reproduce
Run the command: ./istiooc_darwin cluster up --istio=true --istio-kiali-username=john --istio-kiali-password=password
Current Result
istio-statsd-prom-bridge pod does not start
Kiali does not show traffic
Expected Result
istio-statsd-prom-bridge pod should start
Kiali should show traffic

@deewhyweb Does this happen with the latest maistra release?
https://github.com/Maistra/origin/releases
I'm going to close this issue and archive the repo since the work is now taking place on the new organisation, if you still have issues then can you please raise the issue in
https://jira.jboss.org/projects/MAISTRA
Thanks


About-page shows only error

[Alt] -> Help -> About
        Ramme 3.0.3
        Electron 1.4.14
        linux x64 4.4.0-53-generic

Error due to a code migration from v2 to v3. Will fix for next release.

I get exactly the same error message (same strings & numbers and so on). Ramme, v. 3.1.0.

It's due that we were pointing to an icon that doesn't exists on a folder that doesn't exists neither; I've pushed a PR to fix it

Fixed on master


When viewing the contract file  from project details in production environment error occurs Failed to load Pdf doucment

Describe the bug
When viewing contract file from View button available in projet details page, error occurs in loading the contract file, and error is available Failed to load Pdf doucment
Issue occured in production environment
Screenshot for reference

Hi @rathorevaibhav I had discussed this issue with @GauravGusain98  he said that this is not code related error, there are some issues related to access rights at server side. Can you please suggest some measures in resolving this issue.
The issue is not occuring in UAT environment.

The issue is resolved and fixed in production environment


Refresh token storage

Hi brockallen,
Please explain help me what's the storage mechanism of refresh token?
Thanks
Tuan Nguyen.

None. Implicit clients don't support refresh tokens. Also. this repo is no loner maintained. Use oidc-client-js instead: https://github.com/IdentityModel/oidc-client-js/


[chore] rename package imports and go module to catalogd

This commit renames the go module and package imports to catalogd instead of rukpak-packgeserver.
To make it easier to work with go workspaces :)

/approve


Verlocity Verlet does not work for 2D potential

Execution of velocity verlet as well as leapfrog integration with 2D potentials leads to error: TypeError: can't multiply sequence by non-int of type 'float'. See example
`import os, sys
my_path = os.getcwd()+"/.."
print(my_path)
sys.path.append(my_path)
import numpy as np
from matplotlib import pyplot as plt
from ensembler.potentials.TwoD import wavePotential
from ensembler.integrator.newtonian import positionVerletIntegrator, velocityVerletIntegrator, leapFrogIntegrator
from ensembler.system import system
##Visualisation
from ensembler.visualisation.plotSimulations import static_sim_plots
sim_steps = 1000
#Simulation Setup
origpot = wavePotential(multiplicity=[2,2])
integrator = velocityVerletIntegrator()
sys=system(potential=origpot, integrator=integrator,  position=np.array([20,70]),  temperature=3)
#simulate
cur_state = sys.simulate(sim_steps, withdrawTraj=True, initSystem=False)
print("Trajectory length: ",len(sys.trajectory))
print()
print("last_state: ", cur_state)
print(len(sys.trajectory))
sys.trajectory.head()`

This problem should be solved by now. Please see examples/BaicSimulations.ipynb


Add coding variant filter before bgzip and index on the final output VCF file

Starting here:
https://github.com/genome/cancer-genomics-workflow/blob/ab3cc1f460146c60d7de417508f0c1ea70506e6a/germline_exome_workflow.cwl#L187
Insert the coding variant filter as seen here:
https://github.com/genome/cancer-genomics-workflow/blob/ab3cc1f460146c60d7de417508f0c1ea70506e6a/detect_variants/tumor_only_detect_variants.cwl#L184

Additionally we will want three output VCF files for the germline exome workflow:

all passing variants (if it doesnt pass filters lets keep it out of the final VCF)
all coding variants using the VEP filter
ACMG variants.


Increase size limit to 60mb, fixing request entity too large

I ran into an issue where the package I wanted to publish was >60mb.
Verdaccio refused it with this error:
http <-- 413, user: user(::ffff:<IP_ADDRESS>), req: 'PUT /@storybook%2fcore', error: request entity too large
http <-- 413, user: user(::ffff:<IP_ADDRESS>), req: 'PUT /@storybook%2fcore', error: request entity too large

...After some digging I found here:
https://expressjs.com/en/5x/api.html#express.json
...that I could increase the size limit using the code I contributed in this PR.
I'm not sure is this number should be fixed (it solved my personal issue).
Likely it should be configurable.
Also reported on discord:
https://discord.com/channels/388674437219745793/388675051710447616/1248656948044365854
Here's the problem occurring on the storybook CI:
https://app.circleci.com/pipelines/github/storybookjs/storybook/77731/workflows/30368aed-2696-41ea-aa2b-d0781abdf0d1/jobs/665740
I've verified this change fixes my problem by manually editing the dist files in node_modules.

I guess you found the max_body_size parameter 🤷

I guess you found the max_body_size parameter 🤷

Yep, that's the case, solved over discord


Simplified orientation handling

Miguel noted that while this works perfectly for iOS 8 and 9, the previous orientation handling is still needed for iOS 7 ... in case there are devs who still need to support iOS 7 out there.

Actually works good anyway without any change so the problem was in the iOS9 beta. There is a different issue though, but this pull request can be closed since it fixes nothing.


Serialize Mail::options for sending via queue

Q
A

Bugfix?
✔

Breaks BC?
❌

New feature?
❌

Issues
#402

@vladgorenkin Thank you so much!
Could you also upload the changes to the 2.8 branch? In this case, this fix can be immediately committed under the new 2.8.3 relese tag. If the fix is not critical, then it is possible in the master, but in this case it will appear in the stable tag 2.9 (i.e. feature release) at the beginning of the next month.

Done. But it seems that 2.8 branch is behind v2.8.2.


Gen virtualhost domain with gateway nodeport

Please provide a description for what this PR is for.
And to help us figure out who should review this PR, please
put an X in all the areas that this PR affects.
fixes: #11828 #12545
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
5fb573322c4b39d8e5e534b31eb3244e591e4c00
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

in what case does this fail today? I use nodeport and never have any issues

Applying the below config,
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway

metadata:
  namespace: bookinfo
  name: bookinfo-gw

spec:

  selector:
    istio: ingressgateway

  servers:

  - port:
      number: 80
      protocol: HTTP
      name: http
    hosts:
    - bookinfo.example.com
---

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService

metadata:
  namespace: bookinfo
  name: bookinfo-virt-svc

spec:

  gateways:
  - bookinfo-gw

  hosts:
  - "*"

  http:

  - route:
    - destination:
        host: productpage.bookinfo.svc.cluster.local
        port:
          number: 9080
---

It will add an additional domain "bookinfo.example.com:31380"
    {
        "name": "http.80",
        "virtualHosts": [
            {
                "name": "bookinfo.example.com:80",
                "domains": [
                    "bookinfo.example.com",
                    "bookinfo.example.com:80",
                    "bookinfo.example.com:31380"
                ],

I've been reading over this change as it links to another issue I have commented on and I think it's important to point out that this doesn't actually fix the linked issue.
To clarify, in case it wasn't obvious here, that what I was highlighting was the fact that any access from outside a k8s cluster (or any other service mesh for that matter), could be arriving into the ingress gateway with an authority of host:port and that a VirtualService would fail to route the incoming request because it fails to match due to the port being present. The issue I was highlighting might look similar to the nodeport issue this change relates to but it is actually quite different.
E.g. taking the following GW/VS config
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  namespace: bookinfo
  name: bookinfo-gw
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      protocol: HTTPS
      name: https
    hosts:
    - bookinfo.example.com
    tls:
      mode: SIMPLE
      privateKey: sds
      serverCertificate: sds
      credentialName: bookinfo-cert
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  namespace: bookinfo
  name: bookinfo-virt-svc
spec:
  gateways:
  - bookinfo-gw
  hosts:
  - bookinfo.example.com
  http:
  - route:
    - destination:
        host: productpage.bookinfo.svc.cluster.local
        port:
          number: 9080

Suppose the above service is accessed through a reverse proxy on port 8443, e.g. https://bookinfo.example.com:8443, the request will arrive in the ingress gateway with the http header field authority: bookinfo.example.com:8443 and the gateway configuration will correctly serve the TLS certificate because it matches the host part of the http authority field. I have specifically used https here as it highlights the fact that the gateway has ignored the port section in order to serve the correct certificate.
The ingress gateway now fails to route the request because the configuration being applied via the VirtualService is looking for a domain of bookinfo.example.com in the authority field and fails because it does not ignore the port in the same way the gateway has.
For this particular fix to work, it would appear that we would require:-

Prior knowledge of what port would be used on the original request
The port number used be in the port number range being used for nodeports

I'd suggest that in a lot of cases even if we could know the port number it's very unlikely be in the valid nodeport number range. I think that a fix for the issue I have outlined above would mean this PR would not be required.

For this complicated case, this cannot resolve. It requires users to set correct authority in request or istio rules.

For this complicated case, this cannot resolve. It requires users to set correct authority in request or istio rules.

@hzxuzhonghu, again, thanks for the feedback. I don't think this is a complicated case, it's not unusual for organisations to use reverse proxies in front of services and in this scenario the authority is correctly set as the host:port the client has issued the request to.
Assuming for the moment that the authority is set as host:port and that the port doesn't match a nodeport value, could you explain what you mean by setting it in istio rules?
Hopefully you can clarify this for me, if I defined a second service that exposed port 8443 as per my previous example, e.g.
apiVersion: v1
kind: Service
metadata:
  name: bookinfo-alt-svc
spec:
  selector:
    app: bookinfo-app
  ports:
    - protocol: TCP
      port: 8443
      targetPort: 80

Will the change in this PR work if I access https://bookinfo.example.com:8443?

Istio is behind of a LB, it has no port info of the LB, so i mean users should tell it. As in other issue said, this can be done by setting authority match.

Istio is behind of a LB, it has no port info of the LB, so i mean users should tell it. As in other issue said, this can be done by setting authority match.

Istio being behind a LB and not knowing the port number is exactly the point I'm trying to make. That is why from the VS perspective it should route based on just the host section of the authority header.
Authority match workaround is all well and good but if the host of the VS has to be set to "*" so does the gateway and this is a really idea IMHO. If the host section would also match on host and then further refine routing based on match then that would solve all problems I would have thought.

An alternative might be to relax the validation rule around the host field of the VirtualService and possibly the GW so that it allowed host:port, we would still need to know the port number but at least things would match and we wouldn't have to use a wildcard.

@howardjohn @rshriram @ramaraochavali What do you think if we allow hostname:* matching? I think it is still better than * matching.

@hzxuzhonghu Based on conversation here, since knowing the port before hand seems to be the real issue, I think allowing hostname:* seems reasonable to me and is definitely better than *

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
1573306a839ef1dbbdf4e826c6314eb0aae4b380
link
/test integ-mixer-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-mixer-k8s-tests_istio


needs "Is Eye Tracked Enabled" on the Pointers Profile!

I spent a long time trying to figure out why the eye tracking in my application did not work, even though I exactly followed the tutorials.
Turns out, if you clone all the profiles like described in the tutorials, the default value for "Is Eye Tracked Enabled" on the pointers profile is false.
The following text should be added to the tutorial:
In the Hierarchy window, select the MixedRealityToolkit object, then in the Inspector window, select the Input tab, expand the Pointers section and clone the DefaultMixedRealityInputPointerProfile to replace it with your own customizable Input Pointer Profile.
In the Gaze Settings section, check the Is Eye Tracked Enabled checkbox.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 86f19cfc-88a8-2c19-7270-1c2f06b5987c
Version Independent ID: 48ede813-0968-4618-a587-370f72db289e
Content: Getting started tutorials - 6. Exploring advanced input options - Mixed Reality
Content Source: mixed-reality-docs/mrlearning-base-ch5.md
Product: mixed-reality
Technology: mr-dev
GitHub Login: @jessemcculloch
Microsoft Alias: jemccull

@kkroesl @hferrone please note that the current tutorials are for MRTK 2.3.0, not MRTK 2.4.0 where this change was introduced.
Ref Import the Mixed Reality Toolkit:
__

__
Tutorials will be updated for MRTK 2.4.0 in the near future.


feat: add new factory

PR-Codex overview
The focus of this PR is to introduce a new entity VaultRewardsClaim and related functionality to the codebase.
Detailed summary

Updated squid.yaml to version 5 and added VaultRewardsClaim entity
Added FACTORY_ADDRESS in addresses.ts
Modified event names and function inputs in processor.ts
Created VaultRewardsClaim model in src/model/generated/vaultRewardsClaim.model.ts
Updated migration scripts to include vault_rewards_claim table
Updated event and function definitions in abi files for HoneyVault

The following files were skipped due to too many changes: src/abi/HoneyVault.ts, src/main.ts

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#4
#3  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @zkSoju and the rest of your teammates on  Graphite

Merge activity

Aug 21, 3:29 PM EDT: @zkSoju started a stack merge that includes this pull request via Graphite.


Working inside tables

Hi,
Great plugin - especially like that it is plan JS without dependencies - great work!
I just have one item to raise - and although the undo button can be used in the following situation I think it is worth considering a change to the code to cater for this. When a user has the cursor placed inside a table cell without any content and the backspace key is pressed the cell is removed from the HTML and although the border styling sometimes remains making it look as though a cell exists the user cannot place the cursor back inside the cell or restore the cell without clicking undo. If the user then starts to add rows or columns in an attempt to fix the issue it only gets worse and eventually the table has to be deleted. This doesnt occur when the cell contains text. Perhaps trap the keystroke and check if the cursor is inside an empty cell to avoid accidental removal of cells?
This is of course in the context of a user who is not familiar with HTML and cannot inspect and correct the issue themselves (a large part of the target end user audience I assume).
By way of an enhancement it would also be good to be able to fix the width of the table or columns so that dont jump around as you start to add text to them. Perhaps via an additional couple of buttons in the table pop-up menu?

Hi @DeZZar ,
Thank you for your feedback!
Fixed in v2.14.0 : )

@JiHong88 - fantastic - works as expected!


xpui.js not found

in powershell, in the patching section:
xpui.js not found
I can find config-xpui.ini but I don't know what to do with the xpui.js
Also some things are duplicated in the UI

What version of Spotify are you on, and if you're on an old version (<1.1.78.x) can you try update to v1.1.79.x while also making sure you update to spicetify v2.9.1 or newer?
What do you mean by xpui.js not found? Could you show us the installation log?

Marking this as stale as there has been no updates for 21 days now.

Closing as this has been stale and awaiting a response for 6 weeks now.

@rlaphoenix not op but I have the same issue
spicetify v2.9.8
Spotify for Windows
<IP_ADDRESS>6.gc5f8b819

Ok I found the solution. It was bc of windows store spotify. Downloading spotify from their website and it should be good


Totally not working...

My ingress network is <IP_ADDRESS>/24, and gw is <IP_ADDRESS>.
Then I run this command:
docker-ingress-routing-daemon --ingress-gateway-ips <IP_ADDRESS> --install --services proxy_proxy
Next, scale service proxy_proxy to 1, and check, found it still report <IP_ADDRESS> to access log...
If I run:
docker-ingress-routing-daemon --ingress-gateway-ips <IP_ADDRESS> --install --services proxy_proxy
It will freeze all docker process...
Anything wrong?  Or is it a issue?
 docker version
Client: Docker Engine - Community
 Version:           23.0.1
 API version:       1.42
 Go version:        go1.19.5
 Git commit:        a5ee5b1
 Built:             Thu Feb  9 19:51:00 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.1
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.19.5
  Git commit:       bc3805a
  Built:            Thu Feb  9 19:48:42 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.18
  GitCommit:        2456e983eb9e37e47538f59ea18f2043c9a73640
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Hi @cytown thanks for trying DIRD. Your first command is certainly not correct, as <IP_ADDRESS> is not an IP that Docker will choose for load balancing. Your second command may be correct, but to confirm this you should run ./docker-ingress-routing-daemon without any arguments on your load balancer node(s) and see what IP(s) are printed.
Also, after that, if you do not use the --preexisting option you must scale down your service to zero and scale it up again after launching DIRD; otherwise you will experience a freeze on traffic to pre-existing containers.
Please let me know if this helps.

Hi @cytown thanks for trying DIRD. Your first command is certainly not correct, as <IP_ADDRESS> is not an IP that Docker will choose for load balancing. Your second command may be correct, but to confirm this you should run ./docker-ingress-routing-daemon without any arguments on your load balancer node(s) and see what IP(s) are printed.
Also, after that, if you do not use the --preexisting option you must scale down your service to zero and scale it up again after launching DIRD; otherwise you will experience a freeze on traffic to pre-existing containers.
Please let me know if this helps.

Hi @struanb, for your reference, the command without any arguments just return:
Detected ingress subnet and node IP:
- Ingress subnet: <IP_ADDRESS>/24
- This node's ingress network IP: <IP_ADDRESS>

As I mentioned before, if I use <IP_ADDRESS> in arguments, it will freeze all docker process...

Ok thanks for confirming, but did you also try --preexisting?

Also, after that, if you do not use the --preexisting option you must scale down your service to zero and scale it up again after launching DIRD; otherwise you will experience a freeze on traffic to pre-existing containers.

Ok thanks for confirming, but did you also try --preexisting?

Also, after that, if you do not use the --preexisting option you must scale down your service to zero and scale it up again after launching DIRD; otherwise you will experience a freeze on traffic to pre-existing containers.

Hi @struanb , yes, specified <IP_ADDRESS> will freeze everything in docker, even with preexisting argument.

Ok thanks for confirming. I need to know more about your network now. Please forgive the large number of questions. They're essential to understanding your setup.
How many nodes are in your swarm? Please provide names (or pseudonyms) and ingress network IP for each, so we can refer to these nodes.
Which nodes are your service containers running on? Just the node with the <IP_ADDRESS> IP, or any others?
What services are you running apart from proxy_proxy? If any, do any of these services also publish on any ports?
Are you experiencing the freeze only on the proxy_proxy service or on any other services?
Please note, if you have more than one node, then you need to run DIRD on every node (at least those running your service containers).
Also if you are accessing your service through more than one load balancer node, you also need to run DIRD on all those nodes too, and the command line you run should reflect the IPs of all load balancer nodes (not just <IP_ADDRESS>) consistently.
Looking forward to your response.

Ok thanks for confirming. I need to know more about your network now. Please forgive the large number of questions. They're essential to understanding your setup.
How many nodes are in your swarm? Please provide names (or pseudonyms) and ingress network IP for each, so we can refer to these nodes.
only 1 node:

# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
2aywbykgaaou2cwgcg3talej1 *   xxxxx      Ready     Active         Leader           23.0.1

Which nodes are your service containers running on? Just the node with the <IP_ADDRESS> IP, or any others?
What services are you running apart from proxy_proxy? If any, do any of these services also publish on any ports?
I have portainer swarm installed, the version is: portainer/portainer-ce:2.17.1 & portainer/agent:2.17.1, and postgresql, redis, pgadmin.
Are you experiencing the freeze only on the proxy_proxy service or on any other services?
portainer and pgadmin were freezed, not test others.
Please note, if you have more than one node, then you need to run DIRD on every node (at least those running your service containers).
Also if you are accessing your service through more than one load balancer node, you also need to run DIRD on all those nodes too, and the command line you run should reflect the IPs of all load balancer nodes (not just <IP_ADDRESS>) consistently.
Looking forward to your response.

Please check the above answers.

@struanb any progress???

Apologies @cytown I didn't receive GitHub's alert to your earlier comment only this last one.
Can you try adding the --tcp-ports <ports> argument to the DIRD command line, replacing <ports> with the port(s) published by the proxy_proxy service.
If that doesn't help, please also supply full list of ports published by your services, ie output of docker service ls and docker ps as this is detail I'm still missing in understanding your setup.
Thanks.

@struanb Thank you so much for this, it really works!!!  Adding the tcp-ports argument did send the real ip to service and without infect other services.
Thanks for your such great project again.

I've updated the language in the README, which I hope you agree is clearer about the whitelisting options, and will now close this issue.

@struanb Found another issue:(
When I use more than one node, the load balance seems freeze or broken, only the node which point to will work.
It means: <IP_ADDRESS>-<IP_ADDRESS> is the ingress ip of each node, the proxy service running on <IP_ADDRESS> and <IP_ADDRESS>, the firewall directed all http request to <IP_ADDRESS>, when I make <IP_ADDRESS> and <IP_ADDRESS> running:
docker-ingress-routing-daemon --ingress-gateway-ips 10.0.0.x --install --services gly-proxy_proxy --tcp-ports 80,443 --preexisting

Then the ingress load balancer seems wrong, and when I visit the url, it will freeze all traffic to <IP_ADDRESS>, and works fine for <IP_ADDRESS>...
If I visit <IP_ADDRESS>:80, the balancer will work just fine, but the client ip will be <IP_ADDRESS>.
Any idea for this???

It looks like there's an x in your IP list.
Based on the ingress IPs you've listed, I think you should probably be running the following command, and please make sure you run it on every node:
docker-ingress-routing-daemon --ingress-gateway-ips <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS> --install --services gly-proxy_proxy --tcp-ports 80,443 --preexisting

(You may need to run docker-ingress-routing-daemon --uninstall  first).

It looks like there's an x in your IP list.
Based on the ingress IPs you've listed, I think you should probably be running the following command, and please make sure you run it on every node:
docker-ingress-routing-daemon --ingress-gateway-ips <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS> --install --services gly-proxy_proxy --tcp-ports 80,443 --preexisting

(You may need to run docker-ingress-routing-daemon --uninstall  first).

I have tried this command for <IP_ADDRESS>-<IP_ADDRESS>, and still the same issue, and direct visit <IP_ADDRESS> will balance to 2 and 3 with visit ip as <IP_ADDRESS>.
I doubt run command for 5-6 will help...
Anyway, I will try this later.

It looks like there's an x in your IP list.
Based on the ingress IPs you've listed, I think you should probably be running the following command, and please make sure you run it on every node:
docker-ingress-routing-daemon --ingress-gateway-ips <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS> --install --services gly-proxy_proxy --tcp-ports 80,443 --preexisting

(You may need to run docker-ingress-routing-daemon --uninstall  first).

It works like charm!!!  Thank you.


Add Issue Templates

Pull Request
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#45
#44  👈
#43
#41
#40
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @JackPlowman and the rest of your teammates on  Graphite

Merge activity

Oct 26, 9:52 AM EDT: Graphite rebased this pull request as part of a merge.


added some smaller storage sizes to choose from

Explain the changes

In order to be able to choose smaller memory reservations for small functions I added some more selectable memorySizeOptions for function in the UI.

Issues: Fixed #xxx / Gap #xxx
1.noobaa/noobaa-core/issues/6018
Testing Instructions:

@QuintinBecker
I've attached the relevant people to review your contribution.
Thank you!

@QuintinBecker Thank you for the PR.
If I remember correctly we have a gap passing the memory limit to the actual function process.
Here is the code where we create the func process, and we should somehow set the new fork memory limit with the --max-old-space-size v8 flag. Not sure how to do that for a fork call though.
https://github.com/noobaa/noobaa-core/blob/e02e83e74125ebf31c00033439bcffa07450b854/src/agent/func_services/func_node.js#L34

Hi #QuintinBecker
Please note that I approved the frontend changes, @guymguym point is still valid.

@QuintinBecker I see in node.js fork docs that we can set the execArgv option like this (I didn't test this code):
const max_heap_size_mb = Math.min(8, Math.ceil(func.config.memory_size / 1024 / 1024));
const proc = child_process.fork(FUNC_PROC_PATH, [], {
    execArgv: [
        `--max-heap-size=${max_heap_size_mb}`,
        ...process.execArgv,
    ],
    ...

See from node --v8-options:
  --max-semi-space-size (max size of a semi-space (in MBytes), the new space consists of two semi-spaces)
  --max-old-space-size (max size of the old space (in Mbytes))
  --max-heap-size (max size of the heap (in Mbytes) both max_semi_space_size and max_old_space_size take precedence. All three flags cannot be specified at the same time.)

I think using the heap size is what we aim for, although not sure if perhaps it will work better if we only set this limit on the old space (which is the one that grows mostly). @nb-ohad any thoughts?

Hey @QuintinBecker
In any case I think --max-heap-size is a good starting point, and if we find it is too restrictive we can change to set the limit only on old space.
I wanted to suggest a quick way to check this - you can manually patch the code on a running noobaa system , see below, BUT NOTE - this patch is only persistent in the pod filesystem and will be gone whenever the pod is deleted and recreated
$ kubectl exec -it noobaa-core-0 bash

    # opens pod shell

$$ vi /root/node_modules/noobaa-core/src/agent/func_services/func_node.js

    # add --max-heap-size to execArgs

$$ supervisorctl restart all
$$ exit

Hey @guymguym,
sorry for my late response on this, had some other issues in the pipeline.
We just checked the adoption in cluster and localy and had no issues so far, I pushed all changes in my master branch.
I will let the changes keep running for some more performance tests.
Thank you for your support an this topic.

@QuintinBecker ignore the deepscan error, it's a false positive (or rather a false-new-positive because the reported issue was not affected by your PR).

@nimrod-becker Can you take a look on this deep scan false positive so we can merge? It doesn't seem related to @QuintinBecker's change.

Updated deepscan

Hey @QuintinBecker are you able to rebase and fix that Math.max ^
It would be great to merge this PR

Hey @QuintinBecker - Would you prefer that I finish this PR?
It's pending for a while and I wouldn't want to let it stale here.
So I plan to merge it this week.

@guymguym
Sorry for beeing unrespnsive for so long. Vacation coupled with some issues on OKD4 with the changes we made on the noobaa core.
We ran into some problems with trigger not running if the option was set.
In addition I think func.config.memory_size already stores the requested size in mb and does not need the division.
As far as I cann see the memory_size within the func-object is set to the selected value from the memorySizeOptions .
Currently we are running an image excluding the max_heap_size_mb modification and it seems to be running stable so far.

Hey @QuintinBecker
So I merged and then reverted.

Thanks


Streaming discussion

So there's not really an streaming API, more like a POC from https://github.com/ggerganov/whisper.cpp/blob/master/examples/stream/stream.cpp
the main idea is this:

you start with some buffer (the audio_async is a thin wrapper around a circular buffer)
https://github.com/ggerganov/whisper.cpp/blob/70567eff232773d6786c91585d040f53c36b87a4/examples/common-sdl.h#L15

in the !use_vad case,  you simply wait until enough audio are available, and audio.get(params.length_ms, pcmf32)

run whisper_full(ctx, wparams, pcmf32.data(), pcmf32.size()) normally

use whisper_full_n_segments(ctx) and whisper_full_get_segment_text(ctx, i) normally

the only different thing is afterwards you want to add token from last full segment into wparams.prompt_tokens for next segment

the general idea of audio buffer is to pad n seconds, n < 30 into 30s, so as you speak, you're inference 1s + 29s silence, then 2s + 28s silence etc. depending on how large step_ms is.

In the use_vad case, we have more pcmf32 related vectors to swap audio data around (~slide window)
https://github.com/ggerganov/whisper.cpp/blob/70567eff232773d6786c91585d040f53c36b87a4/examples/stream/stream.cpp#L162-L164
the pcmf32 and friends are the actual sample you copy to and from for direct usage

I know @jpsamaroo was experimenting along these lines.


Incorrect inconsistent indentation reported with multiline conditionals

I have found a problem with with multiline conditionals as shown in the following code which happily runs through coffee:
a = 1
b = 1
c = 0
if a and
  b and
  not c
    console.log 'success'

coffeelint reports:
  ✗ #7: Line contains inconsistent indentation. Expected 2 got 4.

If I remove the "extra" indentation in line 7 it passes coffeelint but coffee will no longer run it:
 error: unexpected if
if a and
^^

It passes both if I don't indent the lines of the condition:
a = 1
b = 1
c = 0
if a and
b and
not c
  console.log 'success'

but that seems less readable to me.

The solution to this is to indent the line continuation further and then indent to body normally. It isn't required, but I like to put an extra line between the end of the condition and the body, I think it makes it a bit more clear.
if a and
    b and
    not c

  console.log 'success'

That isn't a solution to the problem in coffeelint - it is a workaround for my particular problem.
Having to know formatting tricks to satisfy both coffee and coffeelint somewhat defeats the purpose of using coffeelint in the first place.
The problem in coffeelint remains and is twofold:

coffeelint suggests a change which results in code which does not parse coffee.
coffeelint does not complain about code which would not parse coffee.

coffeelint does not complain about code which would not parse coffee.

This is simply false. The first thing CoffeeLint does is run the code through CoffeeScript.

defeats the purpose of using coffeelint

It's open source, if you don't like it then you should come fix it. We've done everything we know to do to make indentation work. Or you're welcome to just not use CoffeeLint if one bug defeats the whole purpose of the project.

The statement is not "simply false".  As per my initial report, that is the case for my example code after I apply the coffeelint suggested indentation.
I'm all for community involvement, but by closing the ticket you have declared that there is nothing required to be done. Not a great way to welcome input.

This does not pass CoffeeLint:
asa@asa /tmp/foo % cat tmp.coffee
a = 1
b = 1
c = 0
if a and
    b and
    not c
    console.log 'success'

asa@asa /tmp/foo % coffeelint tmp.coffee
  ✗ tmp.coffee
     ✗ #4: [stdin]:4:1: error: unexpected if
if a and
^^.

✗ Lint! » 1 error and 0 warnings in 1 file

What should we do with issues where there is nothing to be done? I provided help on how to fix the problem as I don't expect the code to change. Closing the issue has not prevented you from adding your feedback. If there is any constructive feedback on how we could change the code I will definitely reopen it.
In my opinion your original indentation is not a good strategy. If you end up refactoring your if so that it doesn't need line continuation you're going to need to modify all of the line in the body to correct the indentation. Indenting the continuation further and the body normally is both correct now and remains correct as you refactor your code later.

I stand corrected wrt the second problem - as you say it doesn't pass through coffeelint.  Not having kept the log I'm not sure exactly what I ran to draw that conclusion, but on trying again it certainly doesn't pass.  Perhaps I need to pass some more coffee myself.
That still leaves the first problem though - coffeelint suggests a change, specifically the "Expected 2 got 4", that does not parse.
I agree your indentation is a good solution, but that is not what coffeelint suggests. Its not a big problem though, so don't worry about it unless fix is trivial.


Improved .gitignore for IntelliJ IDEA

Ignore IntelliJ IDEA workspace files.

Note that every pull request should have a description. Please add a description to all of your PRs!

@renner Done, thanks for reviewing.

Manually merged into master. I adjusted your new patterns a little in order to make them match more precisely, see 5aec108540c852d2c728437024b1e7a145f94e5a. I hope it still works for you, otherwise let me know (couldn't test it since I don't use IDEA).

It's good, thanks!


Version & Contact Info Update.

Yep ... and the response is the same as with the other PR ... setup a virtual env and run make test ... this also is just a metadata & required versions pin. So, unrelated to how the Py3 conversion is tested.


Support X-Forwarded-*

Currently get_current_url ignores the X-Forwarded-Proto even if set by the reverse proxy, causing request.url to have wrong scheme if the client requests https while the backend application is served under http.
This can be fixed by replacing environ["wsgi.url_scheme"] to use X-Forwarded-Proto in precedence for get_current_url:
https://github.com/pallets/werkzeug/blob/237b35a63631fda0fe80eb51dccdfe8a2f50d304/src/werkzeug/wsgi.py#L71
For reference: Bottle's support for X-Forwarded-Proto.
Similarly, X-Forwarded-Host can be used in precedence of HTTP_HOST.

Use the ProxyFix middleware.

@davidism Thank you and sorry for not having noticed about this. Is there also support for Forwarded?


[feature request] ack from device

Hello.
Firstly, I want to thank you for this excellent plugin.
It would be perfect if there were optional some kind of requirement of “ack” from device that subscribed to homebridge/from/set. It is very important because user should know if the device isn’t responding.
Timeout -> device reachability state will be changed to “not available”.
When user acts with real HomeKit accessory, for example, taps the “Lamp” icon to turn it on, but it has somehow hung up, the spinning wheel appears, and after some time timeout and error happens, so user knows that there’s some problem with the Lamp accessory.
Now the spinning wheel (pending state) appears only for the time of publishing, and there’s no feedback except reachability status set by publishing it into topic homebridge/to/set/reachability.
Thank you in advance!
Sorry for my English.
–
Best wishes,
Fedor Zhuromsky

Thanks for your feedback.
I'll have a look next week and see what I can do.

Maybe with some thought the "last will" in MQTT could be used to set the reachabiliy automatically when the agent loses connection with the broker.


Add Categorical distribution

split from #4678.

jenkins, test this please.

Jenkins CI test (for commit 77d163e7c5590bb9e85257317a2b0e6b2f821c0c) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

jenkins, test this please.

Jenkins CI test (for commit 20a46c07b460785fe74057bba1ed3ed6c52d687b) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

jenkins, test this please.

Jenkins CI test (for commit c80d7af42277d7007c977a257c923aa2114b8a59) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

jenkins, test this please.

Jenkins CI test (for commit 3fa77fbc9f995e46dfaddf6a45480349e6068a9c) succeeded without errors!

Jenkins CI test (for commit 091aed82fadbbecd4c90166cc692fadd215ec50e) succeeded without errors!

jenkins, test this please.

Jenkins CI test (for commit 156785a6041e83c661f5163199131bb20b508eca, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

jenkins, test this please.

Jenkins CI test (for commit 21a1048784b9bde6f64ade76199a192636b66178, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

Could you suppress warnings (RuntimeWarning: divide by zero encountered in log)?  If it is intended, please fix it like #5122.

jenkins, test this please.

Jenkins CI test (for commit 53571b40f558d892312968c6cf45183cf52e9b7f, target branch master) succeeded!

Jenkins, test this please.

Jenkins CI test (for commit 507dbc97afb1f62647c0b69e78b96cca2ce8b297, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)


Dependabot configuration is not a workflow

Moving it one level up so it does not confuse CI.

This pull request is ready to merge

Merged to master branch. Thank you for the reviews.


Ubuntu .toml

An Ubuntu version for captive-browser.toml
Just for the record I also did a PoC using a different regular expression: https://play.golang.org/p/UZBmeKDBwZ
Output for https://example.com (I tested both http and https):

Thank you for making this and submitting it! ✨ 👍


Send screen starts with default amount set to max

The send screen always opens with the amount set to the max of the wallet by default, which makes it a bit inconvenient as the user has to start by deleting this default value. Note that when sending specific UTXOs the start value would still be the total wallet balance even if that is bigger than the UTXOs value, which in any case is wrong.

I think this is fixed already, right @cakesoft-utkarsh ?

Closing as fixed


Fix parameter name in YouTube shortcode section.

Since 'autostart' is not the correct name of the parameter, I changed the words to make this section more clear.

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


Refactor tests, prep for tab-aware alg

This PR refactors the tests a bit, to prep for making algorithms tableau-aware, so that we can extend OrdinaryDiffEq's alg_order.

I'm seeing
┌ Warning: Krylov.GmresSolver did not converge within 10 iterations; if possible, try improving the approximation of the Jacobian-vector product, or try increasing the forcing term
└ @ ClimaTimeSteppers D:\a\ClimaTimeSteppers.jl\ClimaTimeSteppers.jl\src\solvers\newtons_method.jl:456

on main in buildkite, but this warning is already showing up on main, in this GHA build: https://github.com/CliMA/ClimaTimeSteppers.jl/actions/runs/3802296726/jobs/6467641557, so I assume that this problem / config may just be a bit unstable. Moving forward.

bors r+


feat: contract interfaces and better function calls

Closes https://github.com/AztecProtocol/aztec-packages/issues/5081
This PR introduces autogenerated contract interfaces for easy intra and inter contract interactions. The aztec-macro crate is used to stub every non-internal private and public function and inject them into a ghost struct which has the same name as the contract that generated them. After that, they can be called like this:

contract ImportTest {

  use dep::my_imported_contract::MyImportedContract;

  #[aztec(private)]
  fn a_private_fn() {
    let deserialized_return = MyImportedContract::at(some_address).another_private_fn(arg1, arg2).call(&mut context);
    MyImportedContract::at(some_address).a_public_fn(arg1).enqueue(&mut context);
  }

  #[aztec(public)]
  fn a_public_fn() {
    let deserialized_return = MyImportedContract::at(some_address).a_public_fn(arg1).call(&mut context);
  }

  #[aztec(private)]
  fn calling_my_own_fns() {
    ImportTest::at(context.this_address).a_private_fn().call(&mut context);
    ImportTest::at(context.this_address).a_public_fn().enqueue(&mut context);
  }

}

Return values are deserialized_into() automatically, providing "real" return values thanks to https://github.com/AztecProtocol/aztec-packages/pull/5633
Also, some general cleanup was required to allow importing contracts in another contracts. Main changes:

HirContext.fully_qualified_struct_path now has a BFS mode to avoid returning the longest path when looking for a struct in a crate. This is required to avoid pulling structs usually imported in top-level dependencies (usually notes from our main contract) from other imported contracts.
pack_args_oracle now has a slice mode in addition to its usual array mode.

PENDING:
AvmContext. The AVM team is discussing supporting args as slices. In case it's decided not to do that, a workaround could possibly be implemented using the macro, but it would be fairly complex.

@SocketSecurity ignore<EMAIL_ADDRESS>@charlielye confirming ignoring this is acceptable?

Benchmark results
Metrics with a significant change:

note_successful_decrypting_time_in_ms (8): 201 (+27%)

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.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
772
772
772

l1_rollup_calldata_gas
6,796
6,784
6,784

l1_rollup_execution_gas
587,277
587,265
587,265

l2_block_processing_time_in_ms
1,254 (-4%)
4,566 (-3%)
10,414 (+15%)

note_successful_decrypting_time_in_ms
:warning: 201 (+27%)
466 (-5%)
994 (+5%)

note_trial_decrypting_time_in_ms
102 (+66%)
72.9 (-26%)
110 (+60%)

l2_block_building_time_in_ms
10,142 (-4%)
36,302 (-4%)
71,068 (-4%)

l2_block_rollup_simulation_time_in_ms
10,032 (-4%)
35,911 (-4%)
70,327 (-4%)

l2_block_public_tx_process_time_in_ms
4,854 (-4%)
19,020 (-4%)
38,019 (-4%)

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
14,127 (+1%)
26,411 (-5%)

note_history_successful_decrypting_time_in_ms
1,230 (+8%)
2,223 (+4%)

note_history_trial_decrypting_time_in_ms
49.6 (+32%)
80.4 (+11%)

node_database_size_in_bytes
18,714,704
35,082,320

pxe_database_size_in_bytes
29,859
59,414

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
142 (-2%)
44,561
26,424

private-kernel-inner
155 (-1%)
72,188
26,424

private-kernel-ordering
107 (-1%)
51,090
39,297

base-parity
3,879 (-1%)
128
311

root-parity
1,051
1,244
311

base-rollup
12,951 (-2%)
110,820
957

root-rollup
49.1
4,551
821

public-kernel-app-logic
81.6 (-2%)
48,151
40,933

public-kernel-tail
121 (-1%)
53,644
7,385

merge-rollup
10.7 (+4%)
2,760
957

public-kernel-teardown
79.6 (+2%)
48,151
40,933

public-kernel-setup
78.2 (+2%)
48,151
40,933

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
4096 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
9.95
16.0
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.6
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.578 (-1%)
0.494
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
45.5 (-1%)
72.2
223 (-3%)
448
839 (-4%)
1,733
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
96.0
159
543
1,055
2,079
4,127
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.467 (-1%)
0.445
0.406 (-3%)
0.419
0.399 (-4%)
0.414
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
53.7 (-1%)
105 (-2%)
324 (-5%)
664
1,261 (-4%)
2,658 (+2%)
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
105
207
691
1,363
2,707
5,395
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.475 (-1%)
0.476 (-2%)
0.442 (-4%)
0.456
0.438 (-3%)
0.459 (+1%)
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
61.3

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
109

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.536

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
41,005
528,889

Transaction size based on fee payment method

Metric
native fee payment method
fpc_public fee payment method
fpc_private fee payment method

tx_with_fee_size_in_bytes
905
1,161
1,377

Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes
2 new note hashes

tx_pxe_processing_time_ms
1,126
749 (-2%)
3,430 (+1%)

Metric
1 public data writes
2 public data writes
3 public data writes
4 public data writes
5 public data writes
8 public data writes

tx_sequencer_processing_time_ms
431 (-1%)
300 (+2%)
781 (+4%)
389 (+2%)
1,265 (+3%)
456 (+1%)

We should be able to remove all this code next, right? https://github.com/AztecProtocol/aztec-packages/blob/5dcbd75c0795640d48592efbd750cd22b5e5ddd5/yarn-project/noir-compiler/src/contract-interface-gen/noir.ts

@alexghr we should! But I wanted to get some eyes on this first and make sure we really don't want to the script generated version (maybe we need it for some cases and it's worth updating to generate the same interface the automatic version does?). What do you think, @spalladino ?

Docs Preview
Hey there! 👋 You can check your preview at https://661cc416adfe09110b4afc1b--aztec-docs-dev.netlify.app

Since the macro only works for non internal methods, how do we call those? The old scheme?

An idea about the interface: does it make sense to have different structs for using from private and public land, like we do in the Noir codegen? The idea is that, if you're in public-land, you cannot call anything in private-land, so we could just not generate wrappers for private methods in the public struct. We could have an interface like:
Token::from_public(address, context).method(...).call();

But I don't like the from_public name, and I'm not really sure it's worth the change. Just wanted to share as an idea to see what you think!

An idea about the interface: does it make sense to have different structs for using from private and public land, like we do in the Noir codegen? The idea is that, if you're in public-land, you cannot call anything in private-land, so we could just not generate wrappers for private methods in the public struct.

While I do think the optimization is cool...

But I don't like the from_public name, and I'm not really sure it's worth the change. Just wanted to share as an idea to see what you think!

...there's not a good way around this. Everything I can think of involves changing either the interface API, renaming the original contract functions or a combination of both. Also seems redundant to me (I AM in public, of course I want the from_public interface!).
Using .call and .enqueue where the cleanest options while also conveying exactly what is being done under the hood and keeping the original contract function signature exactly the same. BTW, credits to @sirasistant for the idea!

Since the macro only works for non internal methods, how do we call those? The old scheme?

@rahul-kothari I just realised that while that's what I wrote, they actually get exported in the noir interface. I think using this new method is definitely an improvement and we shouldn't have to use the old scheme for internal ones if we're on the same contract, but nothing is preventing someone from calling an #[aztec(internal)] method from another contract.
What happened before this change? Is something preventing me from performing a low-level call to another contract if their function si marked as internal? AFAIK that attribute only prevented usage from the API since it wouldn't appear in the ABI...maybe @LHerskind ?

Is something preventing me from performing a low-level call to another contract if their function si marked as internal?

The aztec(internal) macro injects a small check at the beginning of the function that asserts that msgsender is self. So you can make the call, but it should fail immediately.

Waiting for https://github.com/AztecProtocol/aztec-packages/pull/5800, but should be ready.
To summarize what's been agreed on this monster:

Serialization woes: Highlighted by @spalladino. Problems are outlined here and has been agreed to wait for Noir's metaprogramming feature to enforce a canonical (de)serialization. Right now, custom serialization schemas can be circumvented by using low level calls (just like we've done up until this point), so nothing is lost. Added note on docs CC/ @rahul-kothari
Internal calls: Highlighted by @rahul-kothari. Stubs are still created for internal functions so they can be called by local contract. Message sender check fails in runtime just like they do now, as explained by @spalladino
Contract imports and macros: Highlighted by @alexghr. Some logic has been added to prevent executing macro logic on contracts that have been imported just for their interfaces. Still some improvements to go on the compute_note_hash_and_nullifier side, but should be fine.
Fully qualified paths for structs: Were using a DFS algorithm, which returned the longest path to structid in the interner. Now that we are importing contracts on contracts, it could be a problem in case nested dependencies weren't re-exported, while the top level contract had it right there. Agreed with @TomAFrench to change to a BFS implementation.
AvmContext: Currently implemented using the _raw calls to avoid modifying the PublicContext and adding slices everywhere. Open to suggestions, maybe @fcarreiro ?

AvmContext: Currently implemented using the _raw calls to avoid modifying the PublicContext and adding slices everywhere. Open to suggestions, maybe @fcarreiro ?

Like we discussed. I think I prefer it if you use the non-raw version for the AVM (and therefore change the PublicContext as well). The idea is that the current PublicContext and the AVM should be in sync. IIUC, most contract calls will just use the new Contract::at() interface and therefore there should be just a few cases to change.
If we end up thinking that the slice interface is too restrictive, we can change it later, np. But let's try to keep things in sync until the transition is done. Thanks!


ONE thermostats not detected

The thermostats included in the ONE device is not detected as thermostat, only as sensor.
I did some debugging and it seems it has a different subtype (12):
{"req_type":0,"req_sub_type":-1,"obj_id":"DOM#CL#66.1","out_data":[{"id":"DOM#CL#66.1","type":9,"sub_type":12,"sched_status":"0","status":"0","powerst":"1","temperatura":"206","auto_man":"2","est_inv":"1","soglia_attiva":"198","out_value_inv":"0","out_value_est":"0","dir_out_inv":"0","dir_out_est":"0","semiauto_enabled":"0"}]}
So, I modified this in hub.py
 # skip creating the climate sensor for the PT100 sensor and add compatibility for ONE                     if HubFields.SUB_TYPE in item and (item["sub_type"] == 16 or item["sub_type"] == 12):                         self.update_climate(id, description, item)
But when I do this I get an error, as the ONE (not ONE/H) has no humidity sensor on board.
2024-04-25 18:23:22.073 ERROR (MainThread) [homeassistant.components.climate] Error adding entity climate.comelit_climate_living for domain climate with platform comelit Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities     await coro   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 890, in _async_add_entity     await entity.add_to_platform_finish()   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1334, in add_to_platform_finish     self.async_write_ha_state()   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 998, in async_write_ha_state     self._async_write_ha_state()   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1119, in _async_write_ha_state     state, attr, capabilities, shadowed_attr = self.__async_calculate_state()                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1058, in __async_calculate_state     attr.update(self.state_attributes or {})                 ^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 328, in __getattribute__     return super().__getattribute__(__name)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 539, in state_attributes     if (current_humidity := self.current_humidity) is not None:                             ^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 328, in __getattribute__     return super().__getattribute__(__name)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/config/custom_components/comelit/climate.py", line 66, in current_humidity     return self._state['measured_humidity']            ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ KeyError: 'measured_humidity'
I can bypass the error by modifying this in climate.py:
    @property     def current_humidity(self):              return self._state['measured_humidity']
in
   @property     def current_humidity(self):      return 10
But this is just a workaround for debugging.
How could I fix this properly?
I had a look, but I'm not a programmer, so can you point me in the right direction.

You could write something like
@property
def current_humidity(self):
    return self._state.get('measured_humidity', None)

It returns the default value (None) when a dictionary key is not found.

Ok it worked, I created a pull request.
Closing.


Allow config for ignoreEmptyContextAndExtra

https://github.com/GrKamil/laravel-telegram-logging/blob/f746dbb2413afdaac7faa9465000e50b33a6b8e3/src/TelegramHandler.php#L98
possible quick solution:
return new LineFormatter("%message% %context% %extra%\n",null, false, true);
Or can add them to config for flexibility

I just had the same problem: The logs contain two extra square brackets at the end. So the original log message "The system is down!" is formatted to "The system is down! [] []".
The 4th parameter$ignoreEmptyContextAndExtra of LineFormatter constructor hides empty arrays from formatted output.

I have fixed as you suggested. If someone want to make PR with flexible values (move the line formatter options to config) it would be great.


Component Epic

Reference
Components page
Ryan outlines some functionality here and also some UX of the final component.
Components list
See issues nested below in this epic. This list here is semi-prioritized, with links kept for canonical reference.  [Note]Checkmarks of tasks was just a reference from sprint_1 week_1 before we had epics from Zenhub.

[x] Page Heading
[x] Breadcrumbs
[x] Inline Code syntax
[x] Links
[x] Tabs and explainer
[x] CTA's aka buttons
[x] Callout
[x] Status alert or banners
[x] Touts
[x] 3 column chocolate box (learn content and Governance content are good examples) and explainer
[x] Categories and explainer
[x] 2- Column
[x] Process list
[x] Lists
[x] Checklists
[x] Accordian
[x] Info blocks (image + copy)
[x] Language Selector
[x] Image
[x] Inline video
[x] Multi video
[x] Alternative Header and explainer
[x] Inline GIF <-- not mocked up but in original feature list. Especially for active resources on front ends, or projects due to change, an easy swap out for GIFs that are updated might keep the copy evergreen and the visuals subject to updates.

Nice to have

[ ] Vote card
[ ] Progressive disclosure (E.g., "show 10 more topics")

Perhaps we can iframe in components from the mkrgov dash and transparency dash when appropriate (Subject to opening another issue and a discussion about if it's possible).

iFrame of mkrgov.science
iFrame of transparency Dash

@twblack88 Inline Gif support is possible just by using the image component like you would normally.
[Hello](https://urltogif.com/inline.gif)


Compound Variants merging issue

Describe the bug
I'm not 100% sure if this is a bug or i'm just expecting this to work differently.
Repo: https://github.com/calcom/cal.com/commit/68957ef1839dca0df2e5aadd065d8c465117c8c3
We have defined variants - ones we will be focusing on is variant and size.

Created a compound variant that targets both of these

To Reproduce
See above
Expected behavior
I would expect the class to come out as icon + base + className in variant but for the variant classname to take priority without having to do !p-2

Hey! You're absolutely right to expect icon + base + className and that is what's happening here.
The problem you're hitting into is that Tailwind's shorthand padding classes are likely defined before the directional padding classes (not something we can customize). So you will unfortunately need to bump the specificity here to override
Alternatives you could try:

Use arbitrary values and store the padding value as a custom property
[--padding-small:8px] p-[var(--padding-small)]

Use tailwind-merge to handle style conflicts


feat!: Installing direct dev dependencies

This PR makes ROPM logic the same as NPM which installs in the main node_modules directory:

all prod dependencies and their prod dependencies recursively
all direct dev dependencies and their prod dependencies recursively

Until now all dev dependencies weren't copied because of using the --prod flag. Both NPM v6 and v7 do return dependencies listed above by default (the only difference is that since v7 depth is set to 1 by default, but I'm fixing it in another PR).
Why direct dev dependencies should be copied by ROPM too? For example to be able to set up a unit testing framework as a dev dependency. Because of Roku's technical limitations, the majority of unit testing frameworks add some files into a package to run tests. Without this change the unit testing framework has to be set as a production dependency therefore if used in a library module we use in our frontend app, it would be automatically copied into the production app code because it would be a prod dependency of direct app's prod dependency.
PS This is the last PR of the series of changes I was working on.

@pawelhertman i had to resolve a merge conflict. Can you verify this PR still works the way you intended? Also, could you add a unit test or two that ensures this functionality will work in the future?

@TwitchBronBron yes, I confirm it works fine. It wouldn't be a unit test because it's just a change of parameters of a shell command (childProcess.execSync is not even mocked in tests). I could write another integration test however it totally depends on the execution environment - if I wrote a test and keep the prod argument it would pass on npm v6. Which version of NPM does CI use? I couldn't figure it out easily. If v6 then, IMO, it's pointless to write an integration test.
BTW I won't be able to respond in next 2 weeks.