Assertion dependent on Authorization interface

We are building a Rest API and are using an authorization module that is heavily inspired by zfc-rbac. One problem we ran into (and among the reasons why we had to make our own module) was that the assertions class (AssertionInterface) takes an AuthorizationService as an argument.
The API is able to push resource representations of newly created resources to clients/users that are online.
Like this we keep the cached model on the client up to date.
These resources we push to the client(s) render with resource privileges/permissions and these can be different for each user. To render these privileges we need to use the assertions without an AuthorizationService (since the authenticated user (the Identity in the RoleService set in the AuthorizationService ) is not who we are rendering for).
Setting a different $identity in the RoleService or setting another RoleService instance in the AuthorizationService during rendering felt very counter intuitive (and even dangerous).
I considered instantiating a new AuthorizationService for the identity/user we are rendering for and use this instance only for rendering, but it felt very uncomfortable to create an AuthorizationService merely for the purpose of rendering my resources with the correct privileges/permissions.
In the end I ended up changing my assertion model and I made an AssertionInterface that takes $identity (IdentityInterface) as a parameter instead of AuthorizationService. This allowed me to use my assertions with other then the currently authenticated Identity.
So what it comes down to is I need to get information on privileges/permissions for a certain identity without having this identity authenticated (so intuitively I would say without an AuthorizationService for this Identity in my application).
Why is the AssertionInterface actually taking an AuthorizationService as an argument instead of an Identity?
Any thoughts on this?

Why is the AssertionInterface actually taking an AuthorizationService as an argument instead of an Identity?

Because you may want to use AuthorizationService to check something in your assertion. We don't pass IdentityInterface as argument because you can always fetch it from AuthorizationService instance.
In next major version of ZfcRbac (v3) we will make AuthorizationService stateless, so that you can pass the identity as argument to isGranted(). And AssertionInterface#assert() signature will be likely the same of AuthorizationServiceInterface#isGranted():
// AuthorizationServiceInterface
public function isGranted(IdentityInterface $identity, $permission, $context = null);

// AssertionInterface
public function assert(IdentityInterface $identity, $permission, $context = null);

That would solve your problem. Of course it makes AuthorizationService more hard to consume because consumers will need to know the identity, but on other side the PSR-7 request attributes will make it easy to carry the identity instance between middlewares, and ZfcRbac v3 will target middleware concept.

Thanks for the answer @danizord.
I think a proper AuthorizationService should not be Identity aware and I think making it stateless is totally legitimate.
When will v3 be released?
Where can I find dev branch for this release so I can test whether it would indeed suffice my needs?

@danizord Can I find a preliminary version of v3 somewhere? Or a develop branch?

@Wilt

I do miss though a $resource in this assertion method. The result (privileges/permissions) returned by our AuthorizationService doesn't only depend on the passed Identity instance but also on the passed Resource instance. In the current solution where AuthorizationService is passed as a param we could fetch the Identity (like you suggested) with $authorizationService->getIdentity() but like that we could as well get the Resource using for example $authorizationService->getResource()

Actually, what you call resource is the $permission, what identifies the action that identity is trying to do.

Can I find a preliminary version of v3 somewhere? Or a develop branch?

There is the develop branch where @bakura10 did some work on 3.0. You can see some discussions and changes about 3.0 in issues and pull requests of milestone 3.0.0. Mainly https://github.com/ZF-Commons/zfc-rbac/issues/307.
Unfornunately we are not using ZfcRbac in our current project so we are not having time to work on 3.0 for now :cry:, but there are a lot of apps running in production with ZfcRbac and we will certainly use it in next projects that needs role based access control, so the repo is a bit without activity but the project is not dead :)
Having said that, if you want to work on it, please feel free to open pull requests and discussions, I'm here to support you.

@danizord
No, what I meant with a $resource is something else than a $permission but correct me if I am wrong.
For example a permission could be create, read, update, delete.
A resource could be for example a Post, Comment or User
So permissions can differ depending on the resource.
And assertions can also depend on resource.

For example a permission could be create, read, update, delete. A resource could be for example a Post, Comment or User

In ZfcRbac we don't have concept of "resources" like in ACL. In this case we tend to concatenate the subject and action in permission name: post.create, post.read, post.update, post.delete...


Incorrect code generated for AWS Pipeline example

From https://github.com/pulumi/docs/pull/6105

I don’t see any issue on https://www.pulumi.com/registry/packages/aws/api-docs/codepipeline/pipeline/.


Incomplete quick start / undeclared dependencies

build-deps requires the following to be installed:
Python packages: pyyaml, jinja2
pkg-config

Added prerequisite section to readme in af8df44130ce42d59fa016a87484cfeb6b4a4720.
Thanks!


terrain textures fubared on linux

On Linux the terrain detail textures seem to be gone:
Broken:
http://imgur.com/GPxG8nT
Normal:
http://imgur.com/8MOzCjl
actual 3.8 version compiled with opensuse cmake and ninja

Looks weird, but i think this is why u doesnt  used ubuntu linux. Instead u used suse linux Maybe.

saying to not use Ubuntu because this happens to be broken is just ridiculous and purist. This is an actual issue. Can confirm it happens on OSX.

Terrain textures appear correctly for me in Uebergame <IP_ADDRESS>, which uses Torque3D. They did not in Uebergame <IP_ADDRESS>.

I think this has been fixed some time ago.

yeah there's been some opengl fixes since way back when.


Support for Travis CI linting

Can we add TravisCI to check for linting? If need be I can create a travis.yml file and get it setup, just need you guys to activate travis on the repo.

Hi, sorry for being so slow to respond.  I was out on leave and am just getting back.  This role probably needs an update.  Submit a PR, and I'll get it approved and enabled at travis-ci.  Thanks for contributing!


Error: Connection closed.

Describe the bug
Miscord randomly closes letting the following report on the "error reports channel" :

Connection closed.
Error: Connection closed.
at TLSSocket.connect.tslib_1._awaiter.socket.on. (C:\snapshot\miscord\node_modules\libfb\dist\mqtt\MqttConnection.js:42:23)
at TLSSocket.emit (events.js:187:15)
at _handle.close (net.js:595:12)
at TCP.done [as _onclose] (_tls_wrap.js:383:7)

To Reproduce
Steps to reproduce the behavior:
Let Miscord run for at least 24 hours. It happens at least once every 24 hours.
Specifications:

OS: Windows 10 1809 x64
Version Miscord 4.1.4
Node.js version ???

Additional context
For the moment, I downgraded to 4.1.3, to see if I get the same problems.

Miscord v4.1.6
OS - Debian Linux (Raspberry Pi)
This exception was thrown 20 times today alone.  I had been running v4.1.0, and did not see these errors.  Willing to provide data to help debug as needed.

I am also running into this issue with 4.1.6 on Debian Raspberry Pi.  I was going to downgrade but I have long forgotten the command to downgrade the NPM global package lol.  Currently I have been looking into a method of getting it to just auto restart on failure.

Follow up : I upgraded to 4.1.6 (Windows 10 1809 x64), and don't have this problem anymore.

I noticed it usually crashes when somebody sends a link on messenger. Some links are fine, but some cause the crash.

@Foodzo thanks, I'll look more into that.

Crashes when attempting login to Facebook.  I was just setting it up for the first time.  Performed a couple of message tests between Discord and FB.
OS is Win10
i info getConfig » Using config at C:\Users\ww\AppData\Roaming\Miscord\config.json
[2018-10-30 01:30:40] * start Launching Miscord v4.1.6
[2018-10-30 01:30:40] * start login » Logging in...
[2018-10-30 01:30:40] i info login » logLevel
[2018-10-30 01:30:40]   info
[2018-10-30 01:30:40] * start discord » login » Logging in to Discord...
[2018-10-30 01:30:41] √ success discord » login » Logged in to Discord
[2018-10-30 01:30:41] * start messenger » login » Logging in to Facebook...
[2018-10-30 01:30:41] × error errorHandler » Error: Connection closed.
[2018-10-30 01:30:41]   at TLSSocket.connect.tslib_1._awaiter.socket.on. (C:\snapshot\miscord\node_modules\libfb\dist\mqtt\MqttConnection.js:42:23)
at TLSSocket.emit (events.js:187:15)
at _handle.close (net.js:595:12)
at TCP.done [as _onclose] (_tls_wrap.js:383:7)
[2018-10-30 01:30:41]
[2018-10-30 01:30:41]

Got the problem on 4.1.0,  4.1.3,  4.1.4,  4.1.6
Windows 10 x64


Create a Feature Suggestion Template for this repo

Currently there is no template for feature suggestions.
This is a good starting point:
https://github.com/jfmartinz/ResourceHub/blob/main/.github/ISSUE_TEMPLATE/feature.yml
Most of all, be creative <3
Read the Docs.
Give a ⭐
Don't break anything. :)

hey @omicreativedev, can I work on this issue?


Add ability to close window with Ctrl+Q

Currently window can be closed with Alt+F4. Can Ctrl+Q be added, as it is quite common shortcut for that?

@narimiran
I think the shortcut should NOT be added in general to NiGui.
But you can do this in your application. I have just implemented it.
Example code:
window.onKeyDown = proc(event: KeyboardEvent) =
  # Ctrl + Q -> Quit application
  if Key_Q.isDown() and Key_ControlL.isDown():
    app.quit()

Thanks for adding it to the examples. I'll close this.


WF error step text expander not working

The Workflow error step text expander does not work, and when you have more text it overlaps with the scroll bar.
See photos for more context:

for today: investigate issue and get familiar with it

Added CL:
Fixed:
{
      "what": [
        "text expander functionality in {APP_NAME_PRIVACY} error step."
      ],
      "refs": [
        "https://github.com/cortezaproject/corteza/commit/84215c0edf87b52b0bcb07fe632107b48e48d582"
      ]
    }

Issue for the above findings


Add new Dota2 minimap

Updated 3 years old minimap

Hi thank you for the request, and sorry, for the terribly late answer, but I removed minimap images since I have no way to deduce from the replay which patch level the game was at, and I would have to have many many map images, one for each patch.


About the setting of the parameter allowed_border

In the paper of mmdetection，there are the following expressions：
In RPN, pre-defined anchors are generated on each location of a feature map. Anchors exceeding the boundaries of the image by more than allowedborder will be ignored during training. It is set to 0 by default, which means any anchors exceeding the image boundary will be ignored. However, we find that relaxing this rule will be beneficial. If we set it to infinity, which means none of the anchors are ignored, AR will be improved from57.1%to 57.7%. In this way, ground truth objects near boundaries will have more matching positive samples during training.
How to set allowed_border to infinity in the program？1000 or 10000？

You can set it as -1 and it will take no effect.
Sometimes higher AR rate does not lead to higher AP because it might bring some hard samples.


feat: Support attaching EnvoyProxy resource to Gateways

Fixes #3317

thanks for picking this one up @haoqixu, looking forward to reviewing it once its ready !

/retest

/retest

/retest

@haoqixu can rebase or merge main to fix the conflict.

@haoqixu can rebase or merge main to fix the conflict.

done


Support unbatched models in DALI backend

This PR enables unbatched models support in DALI backend and creates a special execution path for such models.
Unbatched model is a model with max_batch_size set to 0. In such case Triton does not interpret the first dimension of tensors as batch_size, which e.g. disables the dynamic batching.
This mode is best fitting for our streamed video use-case because we in that case we always want to handle requests one-by-one.
This required changes in the config validation/autofill (config_tools/*) and separate, simplified ExecuteUnbatched method in DaliModelInstance.
Signed-off-by: Rafal<EMAIL_ADDRESS>

CI MESSAGE: [6985670]: BUILD STARTED

CI MESSAGE: [6985798]: BUILD STARTED

CI MESSAGE: [6985798]: BUILD FAILED

CI MESSAGE: [7063829]: BUILD STARTED

CI MESSAGE: [7063829]: BUILD FAILED

CI MESSAGE: [7092071]: BUILD STARTED

CI MESSAGE: [7092071]: BUILD FAILED

CI MESSAGE: [7092071]: BUILD PASSED

CI MESSAGE: [7113279]: BUILD STARTED

CI MESSAGE: [7113279]: BUILD PASSED


Adding Missing ``` to TypeScript block.

Previous PR was missing ticks to close a TypeScript block, resulting in the following section being included as code in the previous section. Added ``` to close first example and corrected Typescript to TypeScript.

Docs Build status updates of commit 06e3eb9:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/resources/samples/excel-samples.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Async read requests and general code/type/record cleanup

The idea of this branch is to allow for DCs to perform requests different types of requests from one to another in a scalable manner.
For example these requests could include asking for:

missing log entries
permissions for needed for specific objects (like bounded counter)
cross dc read requests during partial replication
cross dc object validation/certification

Currently only the missing log entries request is implemented.
Note that that log entry requests already existed in Antidote from the ZMQ InterDC implementation, but they were hardcoded as the only type of requests and the were sequential and blocking per DC.
Now different types of requests can be added by modifying:
antidote_message_types.hrl, inter_dc_query.erl, and inter_dc_query_receive_socket.erl
Requests and replies are done asynchronously and handled by a pool of threads and are sent directly to the node responsible for the key/partition of the request.
This pull request also includes lots of code cleanup and commenting and dialyzer additions (when I was making the log requests parallel I noticed these issues so I fixed a lot of them at the same time).
This includes better defined types and records thought the code, especially in the log.  This lead to a lot of dialyzer fixes as well (we had a lot of missing entries or wrong entries that were still passing because many were defined incorrectly, but there is still more to be done here).  Note that we are using a version of Erlang from 3 years ago, so we is seems we cannot use some of the new ways of typing objects (for example we cannot type dicts), I still added some of these new definitions (but in comments) in the logging code as I think they help make the code a lot more understandable.
Additionally I moved some of the code to a separate project called antidote_utils (https://github.com/SyncFree/antidote_utils).  The reason for this is that as were are breaking Antidote into separate projects we will need to share this code (for example for the the separate logging project).  It currently includes vector clocks, vector clock ordered dictionaries, and some type definitions.

Thanks for all this work - but PLEASE next time delta merge requests. This is just too much stuff to review ...


Feature Request: Create new PPT based on existing PPT

Hi @gitbrent, thanks for building this wonderful module. Have you thought about extending the features to allow creating a new file based on existing files, or even simply updating existing files? I am thinking about PPT specifically. Thanks!

Hi @vcheeze
Thanks for the feedback. :)
This a somewhat common question and is mentioned in the README... No, this library is solely designed to produce PowerPoint presentations. There are no plans to read/modify existing PPT files.


Web Warriors - Log Event Styling + Component Changes

Updated styling of the log event page to look more consistent with other views.
Replaced our dropdown and date picker components with BPDomainSelector and BPDatePicker components respectively (for consistency and improved functionality)
Other minor fixes and changes related to customer requests.

Current state of our Log Events View:

Current state of our Log Detail View (example):

Login Page is generating an error in browser console.

It seems like your components (lowercase C) folder is named Components (uppercase C). Git will not differ the casing, so it works just fine, but generating warnings in the terminal (and probably future confusions). Do you want to refactor your folder name from Components to components?
Terminal:

And some of your files are not passing the eslint, please make sure to fix them (you can automatically fix them, but be careful do not fix other teams' files which may generate potential conflicts).
For linting, you can run npm run lint to list all errors or check https://github.com/david-fisher/320-S22-Track2/pull/50#issuecomment-1073357503 if you have no idea.

@lilingxi01 Just made a commit fixing linting errors in WebWarriors components and the _app.js file. Also refactored Components to components as requested, let me know if there are any other glaring problems that I need to fix before merge (or if I missed anything).


add missing env vars

After merge, then I can point the psibase/.github/worfklows/ubuntu-builders.yml file in the cicd PR to an updated 20.04 builder image, and remove the definitions of these env vars from the yml file.


Vectorize reshape operation

Hi, thanks for making your code available! I am very interested in trying out the pooling method in my own sentence encoding project.
I got a little hung up on this code in sent_emb.py:
https://github.com/BinWang28/SBERT-WK-Sentence-Embedding/blob/ca65d43cbed637f2a7129669110782e9a6f7fe3b/sen_emb.py#L109-L112
It seems this is basically just a reshape operation that swaps the dimension representing the number of layers with the dimension representing the number of sentences. That can be vectorized and replaced with the following one-liner:
all_layer_embedding = torch.stack(features).permute(1, 0, 2, 3).cpu().numpy()

This is easier to read and should be slightly faster as it swaps a nested for loop for a series of vectorized operations. I checked that the two approaches are equivalent:

# PROPOSED APPROACH
all_layer_embedding_approach_2 = torch.stack(features).permute(1, 0, 2, 3).cpu().numpy()

# CURRENT APPROACH
features = [layer_emb.cpu().numpy() for layer_emb in features]
all_layer_embedding = []
for i in range(features[0].shape[0]):
    all_layer_embedding.append(np.array([layer_emb[i] for layer_emb in features]))

# CHECK THAT THEY ARE EQUAL
assert np.array_equal(all_layer_embedding, all_layer_embedding_approach_2)

This PR just implements that change. I also black formatted sent_emb.py :smile:

Thanks so much for helping improve the code! I also have double-checked!


A whisper of many aggregation policies (with percentiles)

Early works, more stuff to come.
This PR aims at introducing a new aggregation policy: mix. With mix policy, you could aggregated data from base/first archive into multiple lower archives with the same precision.
This means that you could have more than one aggregation policy comparing to the classic whisper files.
Take the policy bellow as an example:
retention: 1s:2d,1m:28d,1h:2y
aggregation: sum,last,min,max,average,p50,p90,p95

To use it in go-carbon, append the policy intended at the end of metric:
server.instance01.threads.busy@last
server.instance01.threads.busy@p95
server.*.threads.busy@p95

Drawback:

Data are only aggregated when there are enough for the last retention policy (take the example above, it takes an hour of data points to propagate for both 1m and 1h archives)
?

Merits:

No longer need to choose policy for your metrics, you could include them all
File size is bigger
Along with mix, percentile is also supported now

Differences:

All data are aggregated from the base archive

Currently only compressed format is supported, but it could be extended to standard format.

Very cool idea, like it!
Will it work with normal whisper format, or only with compressed one, @bom-d-van ?

@deniszh uncompressed format will be very expensive to keep around with all aggregations enabled, but compressed shouldn't be that much a blow and makes a perfect sense.

@deniszh I think @bom-d-van already answered your question:
[quote]Currently only compressed format is supported, [b]but it could be extended to standard format.[b][/quote]
However the question is if it's feasible to do that? I would also assume that the change is not backward compatible and will require some conversion, at least upgrading metadata, right?

Nah, I'm totally fine with that, just overlooked in the initial description.

However the question is if it's feasible to do that? I would also assume that the change is not backward compatible and will require some conversion, at least upgrading metadata to follow the same format as compressed one, right? (sorry, I haven't read the code yet)

Off the top of my head, I think we could use the "mix" aggregation policy as a flag to differentiate new and old whisper files, but I could be wrong. However, conversion shouldn't be necessary, because unlike compressed format, it isn't attempting to convert historical data to mix policy.
Nice to see welcoming opinions of this feature, the original idea of including all aggregation policies comes from @azhiltsov and Anna, I was only thinking of percentiles. :P

If no conversion is required, then it need to be backward-compatible with Python whisper library (at least) and ideally with old go version. And I'm not sure how it will behave if it will spot extra archives.

then it need to be backward-compatible with Python whisper library (at least) and ideally with old go version

Yes, it is.
All changes made in go-whisper so far maintain backward compatibility. Changes could also be ported back to python library as well. I think these new designs/changes are beneficial in general. :)

@deniszh uncompressed format will be very expensive to keep around with all aggregations enabled, but compressed shouldn't be that much a blow and makes a perfect sense.

@azhiltsov I've had people send the same metric multiple times with different postfixes so that they could have multiple aggregations. In this case it would actually be cheaper to have one metric with multiple aggregations.
That said, I don't know if there are any reasons to not switch to compressed whisper if you need many aggs.

Hi all, it takes a long time to complete but finally I feel the changes are ready to be reviewed. Hope it could be both a good ending for 2019 and a good opening for 2020. :D
As usual, it is designed and built for full backward compatibility and things should work as usual.


[Feature Request]: devMiddleware writeToDisk configurability

What problem does this feature solve?
Specify which files are written to disk and the rest are written to memory via writeToDisk
What does the proposed API of configuration look like?
devMiddleware: {
        writeToDisk: (file: string) => !file.includes('.hot-update.'),
      },

blocked by https://github.com/web-infra-dev/rspack/issues/2391


embed CSS and JS assets into the HTML document

When we render HTML in print.rb, the final document has links to external resources, like CSS and JS. Would be more convenient to embed them right into the final HTML. This will make our HTML network-independent.
Also, we should embed SVG logo, as explained here.

Assign this to me.

@PrateekPsingh thanks, please go ahead


Created files for Classroom snippets

Description
Created files for 3 region tags and modified 1 file for Classroom snippets.
Fixes # (211028802)
Has it been tested?

[X] Development testing done
[ ] Unit or integration test implemented

Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have performed a peer-reviewed with team member(s)
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] Any dependent changes have been merged and published in downstream modules

Take a look at the linter output and update appropriately -- there are some issues that might indicate errors (e.g. mismatched # of positional args)
https://github.com/googleworkspace/python-samples/runs/5514857564?check_suite_focus=true


Play/search history

Is your feature request related to a problem? Please describe.
This is a feature I am missing from the original client. There is a section with recently played songs, and I used that to revisit what I played recently.
Describe the solution you'd like
I'd love to get an history of played songs, or perhaps a history of results selected from search. I believe the selected songs from search is what the original client uses, and it works fairly well.
The history could be unlimited, that would make it outright better than the original client.
I also think they omit songs that are only listened to for a couple of seconds to avoid bloating the history when quickly checking out results.

I use the Recently Played list often when I listened to a song and decide afterwards I want to put it on one of my playlists. I started playing around with the code and added the feature to my fork at https://github.com/MoriTanosuke/psst/tree/recently-played. I do not know any Rust, so I'd be very happy if someone could have a look at my branch and give me some pointers what I did wrong or what could be improved.
The new tab should be updated after a song was played or maybe everytime when the user opens the tab, but I could not yet add that to to my absolutely non-existing knowledge of Rust.


ArrayIndex out  of range

https://github.com/awslabs/djl/blob/a491d98ad70610c42210799a15f7a8bb8ed367e5/examples/src/main/java/ai/djl/examples/inference/BertClassification.java#L157
inputs.length is 2 or 1

Hi @small-cold nice catch!
would you like to create a PR to fix it?


Implement retrieveThreadMember

Pull Request Etiquette

[x] I have checked the PRs for upcoming features/bug fixes.
[x] I have read the contributing guidelines.

Changes

[x] Internal code
[x] Library interface (affecting end-user code)
[x] Documentation
[ ] Other: _____

Closes Issue: NaN
Description
Implements the retrieveThreadMember(ById) methods.

Added documentation after request from @DV8FromTheWorld on the Discord (excuse the delay)


Add documentation for WAGTAIL_REDIRECTS_FILE_STORAGE setting

This is a continuation of #5949 where I've added documentation for the WAGTAIL_REDIRECTS_FILE_STORAGE setting.

Thanks @marteinn! Merged in c8f493c09598d1d93e30120e076d43f4a6cb1311.


Issue#2693: Fix incorrect links

Pull request
Description

Related

RFC
Related Issues: fixes #000, closed #000
Related docs PR

Checklist

[ ] The RFC, if required, has been submitted and approved
[ ] Any user-facing impact of the changes is reflected in docs.tremor.rs
[ ] The code is tested
[ ] Use of unsafe code is reasoned about in a comment
[ ] Update CHANGELOG.md appropriately, recording any changes, bug fixes, or other observable changes in behavior
[ ] The performance impact of the change is measured (see below)

Performance

Following the fix DCO retroactively process from github should resolve the DCO check:
https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md


M5StickC-Plus IDF is Missing

Hello @EeeeBin @Hades2001;
M5StickC-Plus IDF library is missing, do you have a plan for preparing IDF library for M5StickC-Plus.

Yeah it would be nice to have some support to V4.x as well.


ParameterStoreBuildWrapperPlugin:More Information on how to add or update AWS Credential for cross-account deployments in Jenkin

I think it would be helpful to add more information where the AWS Credential with the id '_PARAMETER_STORE_ACCESS' that provides access to ParameterStore for cross account account
should be updated in the Jenkins
Ex.
One-time step:

Install the AWS Parameter Store Build Wrapper Plugin on your Jenkins master

For cross-account deployments, create an AWS Credential with the id '_PARAMETER_STORE_ACCESS' that provides access to ParameterStore for that account.

Click on Manage Credentials

Under Stores scoped to Jenkins

Click Jenkins

Global credentials (unrestricted)

Add Credentials

Kind --> Select --> AWS Credentials

Below click Advanced

ID update with the AWS Credential with the id '_PARAMETER_STORE_ACCESS'

Ex. UAT_PARAMETER_STORE_ACCESS

Add Description of your choice

Click Advance

Update  IAM Role To Use section with the IAM ROLE. Ex arn:aws:iam::0000000000:role/xxx-role/xxxx_prod_xxxx_iam_role

Good feedback - this would definitely be great to add.


Bumps versions for AFox

target + compile SDK versions updated
Kotlin and gradle plugin version updated
android:exported="true" in Manifest set
library version numbers updated
jcenter() replaced by mavenCentral()
apply plugin: 'kotlin-android-extensions' line removed

Thanks for changing targetSDK version back to 29! I believe we'll have to do the same for the other open pull requests too.


Helm files are not scanned when using certain chart names

Running the checkmarx/kics scan command on 2 helm charts, both helm charts are identical except for the Chart.Name property as well as throughout the _helpers.tpl results in one chart getting scanned correctly while the other is not scanned at all.
Expected Behavior
Both charts should be scanned correctly regardless of what the chart name is.
Actual Behavior
helm-patate chart is scanned properly. (scan-patate.txt)
helm-users chart is not scanned at all. (scan-users.txt)
Steps to Reproduce the Problem
Commands used:
For the helm-patate chart (helm-patate.zip):
docker run --rm -v /path-to-chart/helm-patate:/src -v /path-to-results/results:/results checkmarx/kics scan -v --log-level trace -p /src -o /results/ --report-formats json --type Dockerfile,Kubernetes,Terraform --ignore-on-exit results
For the helm-users chart (helm-users.zip):
docker run --rm -v /path-to-chart/helm-users:/src -v /path-to-results/results:/results checkmarx/kics scan -v --log-level trace -p /src -o /results/ --report-formats json --type Dockerfile,Kubernetes,Terraform --ignore-on-exit results
Names found to result in failed scans so far are: "users", "registration", "clientportal"
Specifications

Version: Latest
Platform: Linux

Hi @gabgaudreau, hope you are doing great!
I am glad to inform you that this issue is being addressed in #6024.
The problem was caused due a bug in our helm resolver.
Thank you for reporting this issue 🙂


Set exit code properly when errors occur

Use:
var exitCode = 0
process.on('exit', () => process.exit(exitCode))

Set exitCode = 1 by default, only set to 0 when at least one file is uploaded.


Fix mem leak

Taken from https://github.com/septag/rizz/pull/12

ah! totally forgot to merge that.
thanks


Replace the schedule as an image instead of a canvas element

#14

Need canvas element to draw schedule, use hidden attribute on canvas node to not render it to the DOM
Convert canvas to a dataURL and use it for the images src
This change allows the user to open the created schedule in a new tab and lets mobile users save a schedule

closes https://github.com/Exanut/schedubuddy-web/issues/14


Leads permissions

I will close this pull request because it's made on our previous base which we decided to change. I rebased it to the new one so please follow the link : Leads Permissions


Process Is not Defined error while running from angular component

I am new to this, I tried to connect one RabbitMQ server that is located in my LAN. but getting following error
ERROR ReferenceError: process is not defined
at new AMQPClient (amqp-socket-client.js:16:1)
Following is the code I am using in component file
`
ngOnInit(): void {
this.run()
}
async run() {
try {
const amqp = new AMQPClient("amqp://<IP_ADDRESS>")
const conn = await amqp.connect()
const ch = await conn.channel()
const q = await ch.queue()
const consumer = await q.subscribe({noAck: true}, async (msg) => {
console.log(msg.bodyToString())
await consumer.cancel()
})
await q.publish("Hello World", {deliveryMode: 2})
await consumer.wait() // will block until consumer is canceled or throw an error if server closed channel/connection
await conn.close()
} catch (e:any) {
console.error("ERROR", e)
e.connection.close()
setTimeout(this.run, 1000) // will try to reconnect in 1s
}
}`

If you're connecting from a browser you need to use the AMQPWebSocketClient


Introduce the rust impl. Poseidon hashing

Probably wrap the Rust implementation of Poseidon hash from the Pathfinder project into a standalone python package for it to be included in the devnet.
Potentially with https://pyo3.rs/
Let's keep this issue as a placeholder !

One notable thing to mention is that while the wrappers implemented in Pathfinder certainly help with Poseidon hashing performance some things are still rather inefficient. Notably, class hash calculation is implemented in Cairo, with the Poseidon hash implementation using only the poseidon_perm primitive. This is still significantly slower than a full-Rust class hash implementation (on the order of >10s for a fairly trivial class).


fix: BondedTokens exceeds int64 range

Description
Closes: #XXXX

fix bonded tokens / unbonded tokens exceeding range with int64.
Store the value as string instead.

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] targeted the correct branch
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed ! in the type prefix if API or client breaking change
[ ] confirmed all author checklist items have been addressed
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

Codecov Report

:exclamation: No coverage uploaded for pull request base (v2/cosmos/stargate@1bdca6c). Click here to learn what that means.
The diff coverage is n/a.

@@                  Coverage Diff                  @@
##             v2/cosmos/stargate     #300   +/-   ##
=====================================================
  Coverage                      ?   50.58%
=====================================================
  Files                         ?       19
  Lines                         ?     1870
  Branches                      ?        0
=====================================================
  Hits                          ?      946
  Misses                        ?      796
  Partials                      ?      128

Codecov Report

:exclamation: No coverage uploaded for pull request base (v2/cosmos/stargate@1bdca6c). Click here to learn what that means.
The diff coverage is n/a.

@@                  Coverage Diff                  @@
##             v2/cosmos/stargate     #300   +/-   ##
=====================================================
  Coverage                      ?   50.58%
=====================================================
  Files                         ?       19
  Lines                         ?     1870
  Branches                      ?        0
=====================================================
  Hits                          ?      946
  Misses                        ?      796
  Partials                      ?      128

@huichiaotsou Can you also update the schema for proposal_staking_pool_snapshot table ?

@huichiaotsou Can you also update the schema for proposal_staking_pool_snapshot table ?

Hi hi @MonikaCat I found out that the type we use in staking_pool table is also BIGINT, should I update both or we can keep BIGINT for both tables?

@huichiaotsou Yes let's update the staking_pool table to TEXT type as well, coz on some chains this value might also be too large to store as a BIGINT


Feature Request: Switch for the ventilation position

Another question: Did you already thought about to integrate a switch for the ventilation position?
Originally posted by @itapower in https://github.com/mapero/esphome-hcpbridge/issues/2#issuecomment-1887319841

Hi @itapower
not yet. What would be the expectations?
It might be simpler to realize this with the service in esphome or home assistant. E.g. by using the https://esphome.io/components/button/index.html and triggering the vent service.

Hi mapero,
I have to apologize, I'm not an expert.
I thought a switch could be easier to be used in automation (Home Assistant), like the light switch you already have in the esphome code.
And yes, I managed the automations with triggering the vent position.
So, it's not really necessary to have a switch for the vent position at the end. It's kind of nice to have.

Can you try the following (I have not tried yet):
Give your cover an id:
cover:
  - platform: hcpbridge
    name: Garage Door
    id: garagedoor_cover ### <-- id of your cover

And add the following to your config:
button:
  platform: template
  name: "Garage Door Vent"
  on_press:
    - lambda: |-
        auto ptr = id(garagedoor_cover);
        static_cast<esphome::hcpbridge::HCPBridgeCover*>(ptr)->on_go_to_vent();

It should create a button that calls the on_go_to_vent() method when pressed.
I will test it this weekend.

Great!
I will lock to test it also this weekend.

Hi,
according to your example_build the external _components changed.
When I put these lines in the yaml, I get an error for the path
external_components:

source:
type: local
path: "../components/"

Should I use the former  lines?
external_components:
source: github://mapero/esphome-hcpbridge
refresh: 0s

Hi,
sorry for the late reply. Finally I added the id on the cover and the button to the code and left everything like it was before. I have tested the button. It's working perfect. Thank you for this great work.


EIP-4788 Beacon Block Root accessible from EVM

I feel like we should add a parentBeaconBlockRoot field to the "block" schema:
https://github.com/ethereum/execution-apis/blob/9c873c21d7d773d0df4b679b0bb37bf05aebadf2/src/schemas/block.yaml#L24
I'm definitely open to another name, but that's the name used in the Engine API: https://github.com/ethereum/execution-apis/pull/420

this is separate but we also want to extend this schema for the 4844 changes w/ blob gas


feat: _save_every() method saves the checkpoint every n minutes in the background, Fixes: #20

started by adding the _save_every() method.
I will incrementally modify the acceptance test for the new method, and then will go for implementing the handle_preemption()
A design question about handling the timeout stuff:
I noticed there is a separate class for handling the timeouts.
https://github.com/andnp/rl-control-template/blob/4cb9ff63a7abf80aab76e2d8ba8be837bc507aba/src/utils/preempt.py#L28
and the code iterates over a list of registered callbacks and tries to execute them before the job is cancelled.
In our case, the only callback would be the save() method, right? So can we implement the time handling methods inside the Checkpoint instead? What are the pros and cons of separating it as a class, or having it as a method?

Re: preemption design
Good question. I believe I used a class previously because I wanted to store some stateful information alongside the functionality --- namely, I wanted to know how many times the preemption handler had been called previously (1 time means start saving, 2 times means we need to stop immediately). I also wanted to limit cohesion between the preemption handler and the checkpointer, so made these entirely separate subsystems.
Generally, this is the distinction between methods and classes. I reach for classes if I want state + functionality bundled together and I reach for methods when I intend to have state and functionality maintained separately.
For this library, there is likely no benefit to treating the preemption handler as a totally separate subsystem from checkpointing. We can allow these to be intertwined, and so preemption doesn't necessarily have its own state information that should be kept separately from the checkpointer's state information. So in this sense, the preemption system can be a method of the checkpoint.


Fixed Broken Link - Mixed Reality Documentation

Corrected broken Mixed Reality link in docs
Old link: https://developer.microsoft.com/windows/mixed-reality/documentation
New link (proposed): https://developer.microsoft.com/windows/mixed-reality/development

Thanks for the assist! :)


When building with --no realise, retain the path to the derivation

We might want to revise this to add the derivation filename to hive.state.


Add to_python(..., serialize_generators=False)

This disables wrapping/consuming generators while serializing, while calling the fallback function on them.
In many cases, we want to implement some custom serialization logic for generators (such as io.IOBase), instead of consuming them whole.

Change Summary
Add serialize_generators parameter to to_python, to_json, etc. This changes the serialization to handle generators as if they were 'unknown' types. By default, this calls fallback or leaves them alone in to_python, and calls fallback in to_json or errors there.
Related issue number
pydantic-core part of a fix for https://github.com/pydantic/pydantic/issues/8907 . If this change gets merged, we'll submit another PR to pydantic to have model_dump forward a serialize_generators argument.

Checklist

[x] Unit tests for the changes exist
[x] Documentation reflects the changes where applicable
[ ] Pydantic tests pass with this pydantic-core (except for expected changes)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

@davidhewitt I don't think this solves the use case: I'd want to keep generators as-is in the serialization output, while the issue only deals with excluding them from the serialization output.
The use-case is: we get pydantic models from library users which sometimes include IO streams. We want to convert them to dicts but apply a custom function to the IO streams.


Forfeit field always shows 0

When entering a larger accrual than the available accrual days, "Forfeit" remains at zero and the balance exceeds the "Max balance" value.

Bug fixed!


fv infra for runnign full ipv6 tests

Description
Pods and nodes have ipv6 addresses, so have tunnel interfaces.

api server listens on ipv6 address.

services have ipv6 addresses.

In fact, the infra then runs in ipv4/6 dual mode.

refs https://github.com/projectcalico/calico/issues/4736

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

TBD

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

Only one unrelated flaky test in ipsets, the rest is green :heavy_check_mark:


add JSON manifest for qpdf-7.00

Hello,
I have added a JSON manifest for QPDF a command-line program that does structural, content-preserving transformations on PDF files.

Added extract_dir because bin property can't be updated.
Switched to sha512.


Print specified yaml fields, like .spec.storageClassName

Summary by CodeRabbit

New Features

Introduced the ability to print specific YAML fields from retrieved resources using the -f flag.
Added examples for extracting detailed information from nodes and persistent volume claims (PVCs).

Bug Fixes

Enhanced error handling for user input, improving feedback for incorrect command usage.

Documentation

Updated the README to include new usage instructions and examples for the YAML field extraction feature.

Report bugs in Issues
The following are automatically added:

Add reviewers from OWNER file (in the root of the repository) under reviewers section.
Set PR size label.
New issue is created for the PR. (Closed when PR is merged/closed)
Run pre-commit if .pre-commit-config.yaml exists in the repo.

Available user actions:

To mark PR as WIP comment /wip to the PR, To remove it from the PR comment /wip cancel to the PR.
To block merging of PR comment /hold, To un-block merging of PR comment /hold cancel.
To mark PR as verified comment /verified to the PR, to un-verify comment /verified cancel to the PR.
verified label removed on each new commit push.
To cherry pick a merged PR comment /cherry-pick <target branch to cherry-pick to> in the PR.

Multiple target branches can be cherry-picked, separated by spaces. (/cherry-pick branch1 branch2)
Cherry-pick will be started when PR is merged

To build and push container image command /build-and-push-container in the PR (tag will be the PR number).

You can add extra args to the Podman build command

Example: /build-and-push-container --build-arg OPENSHIFT_PYTHON_WRAPPER_COMMIT=<commit_hash>

To add a label by comment use /<label name>, to remove, use /<label name> cancel
To assign reviewers based on OWNERS file use /assign-reviewers
To check if PR can be merged use /check-can-merge

Supported /retest check runs

/retest tox: Retest tox
/retest python-module-install: Retest python-module-install
/retest all: Retest all

Supported labels

hold
verified
wip
lgtm

/verified


Copying files to other drive with rsync ignores custom metadata

I installed FileMeta and am using it to manage tags for png images and similar files; it's been working great. I noticed however than when I use rsync to copy files with custom metadata to another drive, custom tags are lost on the receiving end. rsync seems to notice that the metadata has been changed and performs the copy, but the new tags do not appear on the other side.
I don't have this issue with files such as jpegs that natively support tags and other metadata, and it works fine if I manually copy the file or tag it myself. Worst case scenario, I can automatically export the metadata from the source drive on each backup and reapply it to the destination drive after copying; I'd just like to avoid this if possible.
For reference, I am running 64-bit Windows 10 (and the appropriate version of FileMeta) and using rsync through Cygwin. Any advice you can give would be greatly appreciated.
Thanks for creating this awesome tool!

To copy NTFS files correctly, whatever does the copying must recognise that an NTFS file can contain multiple streams. If only the main (default) stream is copied, then meta data that is not held in the main body of the file will be lost.
In the case of UNIX, as far as I know, all terminal stream sources and sinks support only single streams. The command line utilities support splitting and merging multiple streams, but only in flight, with operations like duplicate and concatenate.
So it makes sense that if you copy using a UNIX utility, you are only going to copy the main stream. To copy correctly, you need to use a utility that supports NTFS multiple stream files.
Dijji


Fix bugs, improve code clarity, and enhance overall reliability across several files.

General Updates

Documentation and Error Messages: Improved clarity and accuracy in documentation and error messages across multiple files. This includes providing more descriptive error messages and consistent usage examples to help developers better understand code functionalities and constraints.

Typo Corrections: Fixed typos in comments and function names, notably correcting get_dafault_permission_client to get_default_permission_client and its asynchronous counterpart in client.py and types/permission_types.py. These changes prevent potential bugs and improve overall code quality.

Specific File Changes

generative_models.py:

Corrected a typo from "equvalents" to "equivalents".
Updated example usage to use a consistent model path format ('models/gemini-pro'), aligning with changes in models.py.

models.py:

Simplified functionality by removing handling of tunedModels/ from the get_model function. Now, model fetching is uniformly handled under the models/ prefix, reducing complexity.
Updated error messages to include the problematic name input when model names do not start with required prefixes (models/ or tunedModels/), aiding in quicker debugging and error resolution.

answer.py:

Improved error message clarity to aid developers in understanding the requirements and restrictions in data handling.
Enhanced function documentation to provide clearer instructions on their usage and the expected inputs.

client.py:

Corrected spelling mistakes in function names from get_dafault_permission_client to get_default_permission_client and similarly for the async client functions. This correction is critical for preventing potential misconfigurations and ensuring the accuracy of function calls.

types/permission_types.py:

Fixed typos in function names and modified the functions to use the corrected names, enhancing accuracy and preventing potential misconfigurations.
Streamlined permission handling processes to enhance overall system reliability.

notebook/text_model_test.py:

I have broken down test_generate_text for better debugging (The call_model method of the TestModel class seems to be returning these values as strings, which is causing some tests to fail)

unittest vs pytest
I noticed discrepancies in the number of tests discovered when using unittest and pytest.
When running our test suite with unittest using the command:
python -m unittest discover -s /workspaces/generative-ai-python/tests
unittest reported that it ran 603 tests.
However, when we ran the same test suite with pytest using the command:
pytest /workspaces/generative-ai-python/tests
pytest reported that it collected and ran 607 tests.
TODO:
I have broken down test_generate_text in notebook/text_model_test.py for better debugging.
beacuse after using pytest i got this
======================================================================================== short test summary info ========================================================================================
FAILED tests/notebook/text_model_test.py::TextModelTestCase::test_generate_text_with_args_candidate_count - AssertionError: '5' != 5
FAILED tests/notebook/text_model_test.py::TextModelTestCase::test_generate_text_with_args_temperature - AssertionError: '0.42' != 0.42
FAILED tests/notebook/text_model_test.py::TextModelTestCase::test_generate_text_without_args_none_results - AssertionError: 'None' is not None
============================================================================== 3 failed, 609 passed, 35 warnings in 5.15s ===============================================================================

The call_model method of the TestModel class seems to be returning these values as strings, which is causing the tests to fail.
Please review the changes and provide any additional feedback.
Thank You! 😊

Hi @MarkDaoust :)
Let me know if you would like me to split this into multiple PRs.

Wait I need to look at that TODO before merging this.

The one in the permission_types? I should submit it in a separate PR.
@Faisal-Alsrheed thank you for the typos and other fixes :)

The one in the permission_types? I should submit it in a separate PR.

No I meant the one at the end of the PR description.
I think this is good to submit.


ci: use xrepo.cmake inside repo for CI build.

Feel free to close this PR if you don't like to add special handling for CI build in example.

I have fixed this issue. https://github.com/xmake-io/xrepo-cmake/commit/4addea86c07b7afd04c65bffe8285cb9b52400ec

It's really clever to use repo root as build directory for cmake. Much better than this PR.


refactor(other): follow @Mogge's review on #2287

see: https://github.com/dreammall-earth/dreammall.earth/pull/2287#pullrequestreview-2327855858
It's a matter of taste, but I think it's cleaner without this commit.
joinTable refers to a Table in the database, with a numeric id. openTables refer to the transient class OpenTable which gets constructed from a BBB meeting and an (optional) Table in the database.

@Mogge and I agree to close this


Installing stackrox-central-services on OpenShift via ArgoCD: "imagePullSecrets" in ServiceAccount cause "out of sync"

Hi,
I am trying to deploy StackRox (not ACS) onto a OpenShift cluster via ArgoCD.
One issue that I am currently trying to solve is the constant "out of sync" due to the ServiceAccounts being created with an empty imagePullSecrets: section (instead of omitting this section completely). My guess would be that the if-condition in the helm templates needs to be before this line, but this far I have not found the templates for the charts so this is just a guess).
OpenShift automatically adds an  imagePullSecrets: section with the secrets it creates, as far as I understood because we have a ClusterPullSecret set.
I have not seen a difference when using the different settings for imagePullSecrets in the chart's values.yaml (useFromDefaultServiceAccount, allowNone, etc.).
Anyone else having this issue?
Kind Regards,
Johannes
P.S.: For the record, here is our current values.yaml (which contains lots of things I tried out, as the admin password does not get respected, but I'll open another issue for that:
  allowNonstandardReleaseName: true
  env:
    openshift: 4
    istio: false
    platform: "default"
    offlineMode: true
  system:
    enablePodSecurityPolicies: false
  meta:
    useLookup: false
  central:
    telemetry:
      enabled: false
    persistence:
      none: true
    adminPassword:
      htpasswd: <redacted-htpasswd-string-here>
    exposure:
      route:
        enabled: true
    resources:
      requests:
        memory: 1Gi
        cpu: 1
      limits:
        memory: 4Gi
        cpu: 1
    db:
      resources:
        requests:
          memory: 1Gi
          cpu: 500m
        limits:
          memory: 4Gi
          cpu: 1
  scanner:
    autoscaling:
      disable: true
    replicas: 1
    resources:
      requests:
        memory: 500Mi
        cpu: 500m
      limits:
        memory: 2500Mi
        cpu: 2000m

Hi @kastl-ars! Thank you for reaching out!
I'll try to enumerate your questions, so that it's easier to keep discussion and refer to different problems.

Empty imagePullSecrets: is populated by Opensfhit and treated as out-of-sync by ArgoCD

We are using imagePullSecrets.allowNone=true. If, for some reason, imagePullSecrets has a different state and ArgoCD is trying to re-sync, maybe you can try useExisting: [].

Need help finding helm templates

You can always use helm pull to get helm chart .tgz. This is a template that helm uses. Also, helm charts should be published here: https://github.com/stackrox/helm-charts
Unfortunately, we have limited ArgoCD experience. I'm not sure if you already did that, but my suggestion would be to work with plain helm first and get to the state where everything is deployed and works. The reason for that is to simply reduce the number of components that could cause a problem.

I think I found the source templates being used for the creation of the serviceAccounts.
https://github.com/stackrox/stackrox/blob/master/image/templates/helm/stackrox-central/templates/01-central-00-db-serviceaccount.yaml#L12
Using this as an example, I think that the problem is that the imagePullSecrets: line is always being added to the manifest. Even if the range of ._rox.imagePullSecrets._names is empty.
Hypothesis: This means that this key is supposed to be empty, while OpenShift actually populated this key.
Putting an if-condition around the whole block, to only write it if there are actual secrets to add, could solve the problem.
Something along these lines:
{{- if  ._rox.imagePullSecrets._names }}
imagePullSecrets:
{{- range $secretName := ._rox.imagePullSecrets._names }}
- name: {{ quote $secretName }}
{{- end }}
{{- end }}

Hi @kastl-ars,
what Helm chart version? This is important for us when trying to reproduce a problem.
(again 400.4.4?)
Thanks
Moritz

@mclasmeier Sorry, yes, currently with 400.4.4

Could you check if the problem is also present in the latest Helm chart?

Could you check if the problem is also present in the latest Helm chart?

Sure, currently trying with 400.5.0

The "out of sync" still shows up, so I still think my hypothesis is correct.
Unless this is caused by other sync errors due to the hook annotations on the PVC, see https://github.com/stackrox/stackrox/issues/2482#issuecomment-2249727577
I would propose to keep this on hold until the PVC issue is solved.

OK, after I solved the PVC issue the serviceAccounts are still shown as "out of sync" by ArgoCD.
ArgoCD wants to remove those two lines:
imagePullSecrets:
  - name: central-dockercfg-m9fqf

Again, my guess is that this is caused by the empty (but present) imagePullSecrets key.
Tested with 400.5.0

I have one concern here. If we have helm chart output without rendered: imagePullSecrets, would Openshift still add it, and would ArgoCD still consider that as "out-of-sync"?
@kastl-ars Would it be possible for you to change the config and use imagePullSecrets.useExisting - and set it to use central-dockercfg-m9fqf? I know that central-dockercfg-m9fqf is a moving target, but to verify if that works.

I can test that the week after next.
But I guess if there is a non-empty imagePullSecrets section in the serviceAccount YAML that is sent to OpenShift, OpenShift will not add another one or overwrite it.
And thus ArgoCD should not have anything to complain about.

@kastl-ars Would it be possible for you to change the config and use imagePullSecrets.useExisting (it is a list of names, I think) - and set it to use central-dockercfg-m9fqf? I know that central-dockercfg-m9fqf is a moving target, but to verify if that works.

Using this in the values.yaml I see a green checkmark on the central service, as the desired manifest and the live manifest are in sync.
stackrox-central-services:
  allowNonstandardReleaseName: true
  imagePullSecrets:
    useExisting: central-dockercfg-m9fqf

But the other two service accounts (scanner and central-db) are still out of sync, as the live manifest now contains two imagePullSecrets, the one it previously had and the one I specified above.
Deleting the service account does not help, it is being recreated (and I guess OpenShift somehow knows that there is a scanner-dockercfg-hj6xf secret that the scanner serviceAccount should use.

@kastl-ars did you consider adjusting diffing with ignoreDifferences option in ArgoCD?
Something like:
ignoreDifferences:
  - kind: ServiceAccount
    name: central
    namespace: stackrox
    jqPathExpressions:
      - .imagePullSecrets

@kastl-ars did you consider adjusting diffing with ignoreDifferences option in ArgoCD?

Yes, but we try to avoid that and clarify things with upstream first. If I add an exception for each and everything we install I end up with a lot of exceptions and ignores...


Add the option of returning a raw map with queries

Alternative №2 (implements #8)

Usage:
var q = sqload.MustLoadFromFile[struct {
	FindUserById        string `query:"FindUserById"`
	UpdateFirstNameById string `query:"UpdateFirstNameById"`
	DeleteUserById      string `query:"DeleteUserById"`
	All                 sqload.QueriesMap
}]("sql/users.sql")

Thank you so much for the feedback @igorhub, thanks to that I added this function to sqload<EMAIL_ADDRESS>If it wasn't for you, this function would've never been added.


Give users more control on paths used by ModelCheckpoint callback

When initializing a ModelCheckpoint callback like this:
model_checkpoint = ModelCheckpoint(monitor="val_loss", filename="{epoch}-{val_loss:.3f}")

we get checkpoint files with names that look like this:
epoch=1-val_loss=0.436.ckpt

This looks really nice but the use of this name=value pattern is not necessarily what the end user would want.
In particular, tools like hydra will need the end user to escape the = sign:
$ python train.py trainer.resume_from_checkpoint="epoch\=1-val_loss\=0.436.ckpt"

which is not very practical.
Here comes my question: would it be possible to allow for more flexibility on the naming scheme of model checkpoints in ModelCheckpoint callback?
The culprit is this line:
https://github.com/PyTorchLightning/pytorch-lightning/blob/c208ac68c88a23977ae3d156dabb1440a9f1c9f3/pytorch_lightning/callbacks/model_checkpoint.py#L377

Duplicate of #4012


"Little Endian" and "Big Endian" swapped in README.md

Hi! The current formulation in README.md is:

The two fixed modes are:

Vax (big endian) - least significant byte written first
Network (little endian) - most significant byte written first

The "big endian" and "little endian" strings are swapped, it should be:

The two fixed modes are:

Vax (little endian) - least significant byte written first
Network (big endian) - most significant byte written first

Thanks. Fixed in Native::packing release 0.0.6.


Remove unused params

My compiler was screaming at me for unused params. I could either disable the warning, or I could remove the unused params.
Obviously these are breaking changes.

@tobyhinloopen this change is breaking the API and the functions consistency. No plans to change that.


Improvements job service

IMPROVEMENTS JOB SERVICE
Improvements to datamodelling and responseformat on dates. Updates to docker-compose for mongodb instance.
What's changed?

Use standard .isoformat() to stringify ISOdates stored in db
In addition to the upsert query, the jobs are now split into 2 collections

inprogress: asynchronous jobs. This collection has a unique index on datasetName to avoid importing a dataset twice
completed: Completed jobs. synchronous jobs are naturally only reported on completion and go directly to this collection.

Updates to request models following changes in version-manager terminology
Updated docs for docker compose for mongodb

@pawbu @vaskalan I posted this a tad too early. I need to edit some of the unit tests.


Laravel version check failed with Laravel 10+

UC:
php artisan test
NunoMaduro\Collision\Adapters\Laravel\Exceptions\RequirementsException
Running Collision ^5.0 artisan test command requires at least Laravel ^8.0.
Laravel version is declared like:
const VERSION = '10.3.1'
Check is running like this:
        if ((int) \Illuminate\Foundation\Application::VERSION[0] < 8) {     throw new RequirementsException('Running Collision ^5.0 artisan test command requires at least Laravel ^8.0.'); }
Working variant is:
        if (((int) \Illuminate\Foundation\Application::VERSION) < 8) {      throw new RequirementsException('Running Collision ^5.0 artisan test command requires at least Laravel ^8.0.'); }

I used old version. after update it workin ok.


[SPARK-41171][SQL] Infer and push down window limit through window if partitionSpec is empty

What changes were proposed in this pull request?
Sometimes, the SQL exists filter which condition compares the window function ROW_NUMBER() with number. For example,
SELECT *,
         ROW_NUMBER() OVER(ORDER BY a) AS rn
FROM Tab1
WHERE rn <= 5

We can create a Limit as the parent node of Window node. Such as: Limit(Literal(5), Window) and the optimizer rule LimitPushDownThroughWindow will push down the Limit as the child of Window. After this optimization, Spark executes top n and reduce the data size before shuffle. We can consider the SQL adjusted as the below.
SELECT *,
         ROW_NUMBER() OVER(ORDER BY a) AS rn
FROM
    (SELECT *
    FROM Tab1
    ORDER BY  a LIMIT 5) t

In short, it supports following pattern:
SELECT (... row_number()
    OVER (
ORDER BY  ... ) AS rn)
WHERE rn (==|<|<=) k
        AND other conditions

Why are the changes needed?
Improve the performance by infer window limit and push down it through window when partitionSpec is empty.
Does this PR introduce any user-facing change?
'No'.
New feature.
How was this patch tested?
The top n (Limit + Sort) have better performance than WindowGroupLimit if the window function is RowNumber and Window partitionSpec is empty.
Before this PR, the micro benchmark of Top-K show below.
Java HotSpot(TM) 64-Bit Server VM 1.8.0_311-b11 on Mac OS X 10.16
Intel(R) Core(TM) i7-9750H CPU  2.60GHz
Benchmark Top-K:                                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
-----------------------------------------------------------------------------------------------------------------------------------------------
ROW_NUMBER (PARTITION: , WindowGroupLimit: false)                        10711          11068         363          2.0         510.8       1.0X
ROW_NUMBER (PARTITION: , WindowGroupLimit: true)                          2611           2929         210          8.0         124.5       4.1X

After this PR, the micro benchmark of Top-K show below.
Java HotSpot(TM) 64-Bit Server VM 1.8.0_311-b11 on Mac OS X 10.16
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Benchmark Top-K:                                                 Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
-----------------------------------------------------------------------------------------------------------------------------------------------
ROW_NUMBER (PARTITION: , WindowGroupLimit: false)                        11054          11684         406          1.9         527.1       1.0X
ROW_NUMBER (PARTITION: , WindowGroupLimit: true)                          1737           1772          23         12.1          82.8       6.4X

We can see the change of ROW_NUMBER (PARTITION: , WindowGroupLimit: true) : 2929 -> 1772.

ping @cloud-fan cc @wangyum

thanks, merging to master!

@cloud-fan @dongjoon-hyun Thank you very much!


chore(master): Release 0.8.10

:robot: I have created a release beep boop
aztec-packages: 0.8.10
0.8.10 (2023-10-11)
Features

Adding Fr back as a BB export (ts) (#2770) (d9ac808)
Deploy l1 contracts npm pkg (#2754) (e317c47)
Docs: Add foundational concepts, ACIR and Sequencer pages (#2716) (9d10326)
LLVM xray presets (#2525) (23a1ee9)
Separate aggregation protocol (#2736) (ad16937)
ZeroMorph (#2664) (a006e5a)

Miscellaneous

Measure block building times, history processing times, and db sizes (#2733) (0cc553a)
Moved AddressNote to aztec.nr (#2752) (5f99066)
Renaming abi as artifact (#2756) (c0abcfd)
Stop whinging about this ownership stuff. (#2775) (3dd6900)
Use global crs in more places. Less pain. (#2772) (b819980)

Documentation

Add yellow-paper directory (#2773) (03de545)
Adding some authwit docs (#2711) (afc23f4)
Update site title and tagline (#2769) (bbb0b60)

barretenberg.js: 0.8.10
0.8.10 (2023-10-11)
Features

Adding Fr back as a BB export (ts) (#2770) (d9ac808)

barretenberg: 0.8.10
0.8.10 (2023-10-11)
Features

LLVM xray presets (#2525) (23a1ee9)
Separate aggregation protocol (#2736) (ad16937)
ZeroMorph (#2664) (a006e5a)

Miscellaneous

Stop whinging about this ownership stuff. (#2775) (3dd6900)
Use global crs in more places. Less pain. (#2772) (b819980)

This PR was generated with Release Please. See documentation.

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

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45444
179588
716132

l1_rollup_calldata_gas
223020
868268
3449624

l1_rollup_execution_gas
842107
3595376
22204993

l2_block_processing_time_in_ms
1004
3869
15104

note_successful_decrypting_time_in_ms
319
977
3756

note_trial_decrypting_time_in_ms
21
85
136

l2_block_building_time_in_ms
8898
35691
148478

l2_block_rollup_simulation_time_in_ms
6587
26615
104594

l2_block_public_tx_process_time_in_ms
2271
8955
43215

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

Metric
10 blocks
20 blocks
30 blocks

node_history_sync_time_in_ms
31169
76568
137264

note_history_successful_decrypting_time_in_ms
4540
13130
20003

note_history_trial_decrypting_time_in_ms
152
241
257

node_database_size_in_bytes
1191063
1901712
2757007

pxe_database_size_in_bytes
54187
108338
162578

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
55.98542944785276
56577
14745

private-kernel-ordering
29.891104294478527
20137
8089

base-rollup
870
631604
810

root-rollup
37.8780487804878
4072
1097

private-kernel-inner
51.54398148148148
72288
14745

public-kernel-private-input
51.38734567901235
37359
14745

public-kernel-non-first-iteration
31.733024691358025
37401
14745

merge-rollup
0.8992248062015504
2592
873

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/aztec-packages-v0.8.10 :sunflower:

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg.js-v0.8.10 :sunflower:

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg-v0.8.10 :sunflower:


Translating Ephemeral Container to ID Localization.

Hello!
I translated content/en/docs/concepts/workloads/pods/ephemeral-containers
Thanks,
Aris.

HI @ariscahyadi 👋 Any update on this?

HI @ariscahyadi 👋 Any update on this?

I push new commit.

Looking good, thank you so much for your contribution @ariscahyadi, well done! 🎉
/lgtm
/approve


Make show_versions not to reload modules (GH13684)

closes #13684

Current coverage is 85.27% (diff: 0.00%)

Merging #14126 into master will decrease coverage by <.01%

@@             master     #14126   diff @@
==========================================
  Files           139        139
  Lines         50529      50531     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits          43089      43089
- Misses         7440       7442     +2
  Partials          0          0

Powered by Codecov. Last update 47a8e71...74bfb21

lgtm.


Expose some client metrics for quota plugin alerts

What I'm thinking for the alerts is something like the following:
expr: kafka_producer_metrics_outgoing_byte_rate < 10 or on(something) kafka_producer_metrics_connection_count = 0
for: 5m

@grdryn thanks, I'm really liking the idea to leverage the Kafka client metrics.   Could you add a help field to the new metrics you add?

Could you add a help field to the new metrics you add?

@k-wall It turns out that the JMX exporter already adds the help field, based on the attribute description (I discovered this by thinking "wouldn't it be cool if it did that", and then realising that it does), as long as the name field is specified for the entry in this config (which we always do). Do you think that is sufficient?
From the jmx_exporter docs:

Defaults to the mBean attribute description, domain, and name of the attribute.

So where the pattern kafka.producer<type=producer-metrics, client-id=(.+)><>outgoing-byte-rate in JMX will have a description of:
The number of outgoing bytes sent to all servers per second

...this gets put into the help text of our kafka_producer_metrics_outgoing_byte_rate Prometheus metric based on the changes in this PR, as the following:
"The number of outgoing bytes sent to all servers per second (kafka.producer<type=producer-metrics, client-id=VolumeUsageMetrics><>outgoing-byte-rate)"

In my opinion, this is enough. Is there any more information that you think would need to be included for our purposes? One disadvantage is that it means the help text is only available to us at runtime, and not here in our source config.

@MikeEdgar Please take a look and merge if you're happy. Keith has already approved, but for some reason that seems to have been reverted.


Contributors pivot

Added a pivot which will have a list of all contributors to Podcasts repo. Also added my name as the first contributor :)

Rocks! thank you


[$250] Dev - Activating metrics on crashes the app on Android - reported by @parasharrajat

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
1.Set the env with following.
ONYX_METRICS=true
CAPTURE_METRICS=true
2. Build the app for android.
Expected Result:
App should build
Actual Result:
App crashes
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
Android

Version Number:
Reproducible in staging?: need repro
Reproducible in production?: need repro
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: @parasharrajat
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1660151993852989
View all open jobs on GitHub

External Upwork post: https://www.upwork.com/jobs/~01b6342fd8e2b2240a
Internal Upwork job: https://www.upwork.com/ab/applicants/1564180886378299392/job-details

Is it OK to have originalPromise value undefined?
In node_modules/react-native-onyx/lib/metrics/index.native.js
the originalPromise is undefined when the args value is:
["isLoadingReportData", true]

If originalPromise might be undefined, then my proposal is to add undefined check
+        if(originalPromise)
            originalPromise
                .then((result) => {
                    measureMarkToNow(mark, {result});
                })
                .catch((error) => {
                    measureMarkToNow(mark, {error});
                });

Proposal
Problem
For the issue in Android, it's due to the code in react-native-onyx -> lib/metrics/index.native.js -> function decorateWithMetrics is expecting that the func passed in is a function that returns a promise, which it's not always the case, for example the lib/Onyx.js -> function update(data) { does not return anything. So the attempt to use the decorateWithMetrics with that update function will result in that error because in decorateWithMetrics we're using .then with an undefined variable.
Solution
In function decorateWithMetrics, we should check that the returned value of the function is a promise first before attempting to resolve that promise. The code can be changed to below
+function isPromise(value){
+    return typeof value?.then === 'function';
+}

/**
 * Wraps a function with metrics capturing logic
 * @param {function} func
 * @param {String} [alias]
 * @returns {function} The wrapped function
 */
function decorateWithMetrics(func, alias = func.name) {
    if (decoratedAliases.has(alias)) {
        throw new Error(`"${alias}" is already decorated`);
    }

    decoratedAliases.add(alias);

    function decorated(...args) {
        const mark = addMark(alias, args);

+       const returnedValue = func.apply(this, args);

+       if (isPromise(returnedValue)) {
            /*
            * Then handlers added here are not affecting the original promise
            * They create a separate chain that's not exposed (returned) to the original caller
            * */
+           returnedValue
                .then((result) => {
                    measureMarkToNow(mark, {result});
                })
                .catch((error) => {
                    measureMarkToNow(mark, {error});
                });
+       }

+       return returnedValue;
    }

    return decorated;
}

The way I check if a value is a promise is also how graphql-js does it, you can refer here https://github.com/graphql/graphql-js/blob/main/src/jsutils/isPromise.ts
Android after the fix, no more crashes

About the crash in web
I'm not sure if the web crash is in the scope of this issue, but for the issue in web, it's due to the decorateWithMetrics noop in react-native-onyx -> lib/metrics/index.web.js is not returning anything, thus when we're using getAllKeys = decorate.decorateWithMetrics(getAllKeys, 'Onyx:getAllKeys');, the getAllKeys becomes undefined. So to fix that we need to modify the noop so that it returns the original function that is passed in
-function decorateWithMetrics() {}
+function decorateWithMetrics(func) { return func }

No more crash in web after the fix

Please let me know if you have any concerns regarding the above proposal
Thanks!

Will review this today/tomorrow.

@puneetlath
Actually, @wildan-m suggestion solves the crash that occurs on android devices.
I do prefer their solution to address the same.
From @christianwen proposal,

I'm not sure if the web crash is in the scope of this issue, but for the issue in web, it's due to the decorateWithMetrics noop in react-native-onyx -> lib/metrics/index.web.js is not returning anything, thus when we're using getAllKeys = decorate.decorateWithMetrics(getAllKeys, 'Onyx:getAllKeys');, the getAllKeys becomes undefined. So to fix that we need to modify the noop so that it returns the original function that is passed in

There is a different issue that occurs on the web, I can confirm that. We need a proposal to address that issue, but their solution doesn't address the issue.
TLD
So we are looking proposal to address the crash that occurs on the web also.

Hi, @Santhosh-Sellavel in my proposal I've also put the solution to address the crash on the web by fixing the decorateWithMetrics noop. By their solution doesn't address the issue, do you mean the crash still happens for you after trying the solution?

Yes crash occurred for me

@Santhosh-Sellavel can you attach the log of the crash after you apply the suggestion
is it the same log as in the original description?

thanks

Yeah getAllKeys was the issue, I checked it on the Latest main earlier.

@Santhosh-Sellavel confirming with you, you are modifying it in the node_modules/react-native-onyx/lib/metrics/index.web.js of this repo https://github.com/Expensify/App to try right?
if that's the case then it's not working because in node_modules, it is using the built code of react-native-onyx in node_modules/react-native-onyx/dist/web.development.js instead. You can try modifying the built code to test as follow (line 1786)

@Santhosh-Sellavel Forgot to investigate the web version
My updated proposal
For android:
+         originalPromise && originalPromise
                .then((result) => {
                    measureMarkToNow(mark, {result});
                })
                .catch((error) => {
                    measureMarkToNow(mark, {error});
                });

For web:
function applyDecorators() {
    // We're requiring the script dynamically here so that it's only evaluated when decorators are used
    const decorate = require('./metrics');

    // Re-assign with decorated functions
    /* eslint-disable no-func-assign */
+    get = decorate.decorateWithMetrics(get, 'Onyx:get') || get;
+   set = decorate.decorateWithMetrics(set, 'Onyx:set') || set;
+    multiSet = decorate.decorateWithMetrics(multiSet, 'Onyx:multiSet') || multiSet;
+   clear = decorate.decorateWithMetrics(clear, 'Onyx:clear') || clear;
+   merge = decorate.decorateWithMetrics(merge, 'Onyx:merge') || merge;
+   mergeCollection = decorate.decorateWithMetrics(mergeCollection, 'Onyx:mergeCollection') || mergeCollection;
+   getAllKeys = decorate.decorateWithMetrics(getAllKeys, 'Onyx:getAllKeys') || getAllKeys;
+   initializeWithDefaultKeyStates = decorate.decorateWithMetrics(initializeWithDefaultKeyStates, 'Onyx:defaults') || initializeWithDefaultKeyStates;
+    update = decorate.decorateWithMetrics(update, 'Onyx:update') || update;
    /* eslint-enable */

The @christianwen  wen solution for web version might be cleaner and not repeated

@Santhosh-Sellavel confirming with you, you are modifying it in the node_modules/react-native-onyx/lib/metrics/index.web.js after cloning repo https://github.com/Expensify/App locally to try right?

Ya right!

if that's the case then it's not working because in node_modules, it is using the built code (not the source code) of react-native-onyx in node_modules/react-native-onyx/dist/web.development.js instead. You can try modifying the built code to test as follow (line 1786)

This solution solves the crash on the web, need to ensure all platforms are working well before moving forward!

Not overdue.
Need to check on other platforms too!

@christianwen have you checked other platforms, does a crash occur there?

@Santhosh-Sellavel yeah I've checked, no more crash on any platform, screenshots attached below
iOS

mWeb

Mac Desktop app

For Android and web I've already attached screenshots in https://github.com/Expensify/App/issues/10622#issuecomment-1234389410
Thanks!

Updated to $500. @Santhosh-Sellavel mind providing an update?

Sorry for the delay here!
@puneetlath
Actually, @christianwen proposal solves the issue, but I am not sure this is the right way and am afraid of missing something else in the context here. So can we have a look from internal who is familiar & involved in implementing this moving forward?

Commented on the other thread!

@parasharrajat @luacmartins just to make sure I understand, you are both saying that this Onyx PR should solve this issue. And no further action should be needed, is that correct?

Well that PR was merged a while ago, so we will need to put up a fix.

Ah whoops, understood.
@christianwen feel free to update your proposal accordingly if you're still interested!

Updated Proposal
Here's my updated proposal for the Android crash following the recommendation by @parasharrajat here https://github.com/Expensify/App/issues/10622#issuecomment-1252708044
In function update(data) {:
-_.each(data, ({onyxMethod, key, value}) => {
+const promises = _.map(data, ({onyxMethod, key, value}) => {
    switch (onyxMethod) {
        case 'set':
+            return set(key, value);
-             set(key, value);
-             break;
        case 'merge':
+            return merge(key, value);
-             merge(key, value);
-             break;
        case 'mergecollection':
+            return mergeCollection(key, value);
-             mergeCollection(key, value);
-             break;
        case 'clear':
+            return clear();
-             clear();
-             break;
        default:
            break;
    }
});

+return Promise.all(promises);

For the web crash, the proposed solution is still the same as in https://github.com/Expensify/App/issues/10622#issuecomment-1234389410
For unit tests, I'll add later in the PR once the above proposal is confirmed
cc @puneetlath @luacmartins

@Santhosh-Sellavel what do you think?

Looks good to me for android, about unsure about the web proposal.

About the crash in web
I'm not sure if the web crash is in the scope of this issue, but for the issue in web, it's due to the decorateWithMetrics noop in react-native-onyx -> lib/metrics/index.web.js is not returning anything, thus when we're using getAllKeys = decorate.decorateWithMetrics(getAllKeys, 'Onyx:getAllKeys');, the getAllKeys becomes undefined. So to fix that we need to modify the noop so that it returns the original function that is passed in
-function decorateWithMetrics() {}
+function decorateWithMetrics(func) { return func }

if decorateWithMetrics is expecting a return func, I'm not sure how we could've missed this earlier.

@luacmartins any thoughts?

Native implementation looks fine. I think the web changes also make sense, but just like @Santhosh-Sellavel, I'm also confused by how we've had those methods be noops for a while now. @tgolen would you mind taking a look at this comment since you created this file?

@tgolen Bump!

Well, the reason it's been fine up until now is that this is the first time someone's tried using the metric code in forever. This stuff has always been super low-value in my opinion. It's hard for me to follow the different proposals here. Can't we just change the no-op methods to return an instantly resolved promise? return Promise.resolve();

@christianwen any thoughts on the above?

@Santhosh-Sellavel If we do as below
function decorateWithMetrics() { return Promise.resolve(); }
in the noop then the getAllKeys will not work correctly anymore
Here's the usage of decorateWithMetrics:
getAllKeys = decorate.decorateWithMetrics(getAllKeys, 'Onyx:getAllKeys');
The decorateWithMetrics should only add side effects to getAllKeys if CAPTURE_METRICS=true, not modifying the behavior of it. If we return Promise.resolve(); in the noop then the getAllKeys will lose it's behavior and become a dummy function. I believe the noop in this case should not add any side effects and also should not change how the function works, so my suggested change below satisfies both conditions.
function decorateWithMetrics(func) { return func }
FYI @tgolen we're discussing the below part of the proposal

OK, got it. I think function decorateWithMetrics(func) { return func } sounds like a good solution then.

Thanks, everyone!
@puneetlath We are good to go with @christianwen here!

Thanks @puneetlath, I applied for the job, here's my Upwork profile https://www.upwork.com/freelancers/~01991fd5e5c11ef3ba
The PR will be ready by Oct 13

Sorry for the delay, just added a comment on the PR.

PR in review

I believe we now also need a PR to update the app to use the new onyx version, is that right?

Yes right, @christianwen can you make submit again the E/APP, thanks!

@Santhosh-Sellavel PR for it here https://github.com/Expensify/App/pull/12465
Thanks

@Santhosh-Sellavel could you help out with determining which PR introduced this bug?

@puneetlath
I suspect this is the PR https://github.com/Expensify/react-native-onyx/pull/132

Checklist completed. Everyone paid.
Thanks for your contributions everyone!


Sum Aggregate function

This is incomplete, I have to add more testing and clean up as some of the errors are all over the place and the type coverage isn't completely there either, but for most integer types it appears to work. I'm more also just looking to make sure I'm on the right path for how to implement this.

Cool, I'll update to reflect that and clean my errors up a bit. What were you looking for in terms of breadth of testing for this?

There are some aggregate tests in https://github.com/datafusion-rs/datafusion/blob/master/tests/all_types.rs that test all supported types for min/max ... you could create some new ones for sum based on these.

I messed up my branch ugh, give me a minute, I'll try and sort this out

Pull Request Test Coverage Report for Build 247

54 of 101 (53.47%) changed or added relevant lines in 5 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.7%) to 81.469%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/types.rs
0
15
0.0%

src/functions/sum.rs
49
81
60.49%

Files with Coverage Reduction
New Missed Lines
%

src/relations/aggregate.rs
1
77.08%

src/exec.rs
1
83.62%

Totals

Change from base Build 243:
-0.7%

Covered Lines:
3249

Relevant Lines:
3988

💛  - Coveralls

Thanks @hntd187  ! I wasn't sure if you were done with this or not but it looks good so I went ahead and merged.

Thanks @andygrove , I added some very rough windows support too. The code should at least compile and run tests on windows now as well.


HDDS-11605. Directory deletion service should support multiple threads

What changes were proposed in this pull request?
When a large amount of data is deleted, we may see slow progress in clearing it out due to the large backlog of pending deletes, even if all deletion services run for their full intervals and collect their maximum number of entries. To speed up deletion further, more threads will need to be configured. This PR helps to support multi-threaded deletion for the directory deleting service.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11605
How was this patch tested?
Tested Manually.

Can you fill in the PR description to describe the algorithm implemented to divide the work among n threads?

Please wait for clean CI run in fork before marking "ready for review".

Performance Test Results: Directory Deletion
I tested the deletion of 200,000 directories in a multi-level structure under various configurations. Below are my observations:
Configuration:
Path limit per task: 7,000
Ratis log appender: 32 MB
Deletion interval: 3 seconds
Threads: 10 threads
Single-threaded vs Multi-threaded Performance:
Single-threaded (1 thread):
Time taken: 15 minutes
Directories deleted: 45,000 directories
Multi-threaded (10 threads):
Time taken: 7 minutes
Directories deleted: 200,000 directories
Performance improvement:
Achieved nearly 10x faster deletion with multi-threading.
Testing with More Threads:
I also tested with 30 threads and 50 threads, keeping other configurations the same.
With 30 threads:
Time taken: 3 minutes
Directories deleted: 200,000 directories
With 50 threads:
Time taken: 1 minute 50 seconds
Directories deleted: 200,000 directories


MWPW-144022: Quiz entry block

Adds carousel functionality to quiz entry block
Resolves: MWPW-144022
Todo: Style refinement and test coverage will follow this PR.
Test URLs:

Before: https://quiz-entry-block--milo--adobecom.hlx.page/drafts/colloyd/quiz-entry/
After: https://--milo--adobecom.hlx.page/?martech=off

Fix eslint?

A couple of things I noticed:

The tabbing feels strange when going through the cards. On desktop, the 3d slide is not visible (as expected) when tabbing through the cards, it moves from pdf to the next arrow, but then I am unable to get to 3d without shift tabbing or tabbing through the whole set of cards. I wonder if we need to have some kind of focus reset or something after arrows are activated with keyboard nav or something? something to make it easier to get to the newly revealed cards.
I'm seeing some odd breaking of the arrows at certain device widths like this:

@colloyd

A couple of things I noticed:

The tabbing feels strange when going through the cards. On desktop, the 3d slide is not visible (as expected) when tabbing through the cards, it moves from pdf to the next arrow, but then I am unable to get to 3d without shift tabbing or tabbing through the whole set of cards. I wonder if we need to have some kind of focus reset or something after arrows are activated with keyboard nav or something? something to make it easier to get to the newly revealed cards. EDIT: It does feel reasonable in the tabbing if you navigate with the arrow keys to cards that aren't visible. I wonder if we ought to consider making it so the arrows aren't tab-able? Did MJ from the accessibility team have a look at the finished experience yet?

You can still access the right/left arrows in the situation you describe, and the tab order is generally not shabby. Its a bit more straightforward than the original regarding tabbing, and still remains consistent with the experience. Check out the tabbing experience on the last carousel of this page for example: https://main--milo--adobecom.hlx.page/docs/library/kitchen-sink/carousel
Resetting the index seems like a risky move regarding user experience / accessibility standards.
MJ & team has not finished reviewing. I've let them know for now I'll go with the default Milo core interactions to keep experiences consistent across pages until everything is worked out for alignment. I think these are small things we can iterate on.

I'm seeing some odd breaking of the arrows at certain device widths like this:

This does need a bit more CSS follow up still as noted:

Todo: Style refinement and test coverage will follow this PR.

I'll pick up on the testing bits next for the block.

I tested it, it didn't move like a carousel, will this be fixed by css refinement?


Support scanning multiple specified files on the command line

Hi, how can I scan multiple files?
I don't want to scan a whole folder I want to scan only a few specific files.
I want to achieve something like that: detect-secrets scan test.js test.yaml but right now when I run it I get:

I think (from researching a little on the code out of curiosity) that it's only scanning the first argument (file or directory). Maybe this one is the 'offending' function: https://github.com/Yelp/detect-secrets/blob/1f3322cbe41fdeed76abb164a6c8cbb99b1e9b2c/detect_secrets/core/usage.py#L120
As it's using '?' nargs that reads only one argument if possible [0]. I'm sure that @domanchi or @KevinHock can throw more light on this issue.
[0] https://docs.python.org/3/library/argparse.html#nargs

@dgzlopes++
That's accurate. Shouldn't be too hard to modify this such that it can scan multiple files with the command line invocation you suggested: https://github.com/Yelp/detect-secrets/blob/master/detect_secrets/core/baseline.py#L37

I close it by mistake.

Closing issue, as #188 has been merged.


Add JSON and JSONpath output for cilium API commands

To make it easier to check for certain output in our APIs as part of our CI, we should add a flag to format the output of certain commands in JSON or JSONPath formats.

Hey @ianvernon
If you provide a list of commands that you want I can do tomorrow.
Regards

Per our convo on Slack:
cilium service list | get
cilium bpf tunnel list|get
cilium bpf endpoints
cilium bpf lb list
cilium identity list

#1463 will have to be merged before the work can be done for cilium identity list.


Apply --legacy flag when using Xcode 16's xcresulttool

Because of the recent changes in Xcode 16, xcresulttool subcommands require the --legacy flag to be passed in order to output the previous format.
When this flag is not passed, the subcommands return a non-zero code with the following example message:
Error: This command is deprecated and will be removed in a future release, --legacy flag is required to use it.
Usage: xcresulttool get object [--legacy] --path <path> [--id <id>] [--version <version>] [--format <format>]
  See 'xcresulttool get object --help' for more information.

This PR is aimed to fix this based on Fastlane's implementation, see https://github.com/fastlane/fastlane/pull/22147 for reference.
Also this changeset bumps rubocop to ~> 1.65 because compiling its dependency jaro_winkler on the currently locked version (1.5.3) fails on Apple Silicon - this was fixed in 1.5.5 - see https://github.com/tonytonyjan/jaro_winkler/issues/51.

I became a maintainer, so I wish to merge this PR. Could you send the reviewed points, or can I address your patch?

This patch seems to be fine. I'm asking the original maintainer to merge and release this.
Please moment.


Remove Forks from list of they are no longer in github

I removed a number of forks from github but the UI does not update to remove them.

Closing this


upgrade lightpaper to :latest

the website's download link always points to the latest version
the old website now redirects to a new one
extracted appcast url from Content/Info.plist

@vitorgalvao With an appcast + unversioned URL, we should use a version/shasum, correct?

@adidalal Yes.

Thank you for the contribution. It needed some fixes, so they were made in 8a2c34475ab245abcf6a9389b68f406b06750e87. Your contribution is still included (and still credited to you), with the appropriate modifications. Please feel free to ask about any of the changes.

@vitorgalvao just so you know, the url in this file always points to the latest version... so at some point this formula will stop working when the shasum mismatches.

@jconley That’ll only happen until we have the system to automatically check appcast and update casks based on that.

@vitorgalvao glad to hear that's finally being implemented...  that will be a massive improvement!!