How do I pop back to another router?

I have an app where there is a main page and a viewer that shows pages of a book.  Once the viewer reaches the end of the book it needs to return to the main page.  The problem is if I just call Actions.Main(); to go to the main page I notice that code on the viewer keeps running as I change my store.  How do I go back to the main page and remove the viewer from memory so it no longer runs when changes are made to the store?
Here's my layout:
<Route name="Main" component={connect(mapStateToProps, mapDispatchToProps)(Main)} title="Main"/>

<Route name="Viewer">
    <Router>
        <Route name="Page" component={connect(mapStateToProps, mapDispatchToProps)(Viewer)} title="Viewer" schema="turnPage"/>
    </Router>
</Route>

I don't think Actions.pop() works because I'm trying to go from one router to another.
Any ideas?

pop() is most suitable when you need to remove scene from memory. Or try 'reset' type for Main so Actions.Main() will reset nav stack.

@aksonov, thanks for the response.


[easy][CI] cache bench

the bench in CI is really not that useful considering the lack of accuracy... I might just kill it for now


Add subnet and creator restrictions for start, stop, extend

👍  I don't have AWS console access to end-to-end test this but the code looks good!


Remove pyglet as a dependency

To make Tau platform agnostic; move the pyglet window handling out of the Tau object to a optional renderer object used more for simple demonstrations and debugging otherwise the user should implement their own rendering solution.
This will also mean a new way of handling update() methods must be created. Making update() asynchronous would be ideal.

blinker could be another way of handling update() calls


[Question] - Support for Rancher 2.7.10 in Harvester 1.2.1?

Rancher fixed some pretty high CVE (https://github.com/rancher/rancher/releases/tag/v2.7.10) in rancher 2.7.10.  The Suse support matrix states that Harvester supports only 2.7.6 and 2.7.9.  Is 2.7.10 supported with harvester 1.2.1?  I don't think it's reasonable to wait for months for the upgrade 1.3 to fix these vulnerabilities...  Rancher in Harvester itself is also vulnerable to 2 of those vulnerabilities...  And I don't think it's super safe to upgrade rancher without harvester, but at the same time, waiting months to fix those kind of vulnerabilities is far from ideal...
Kind Regards

@khushboo-rancher Does QA have a plan to test v2.7.10 + 1.2.1?

Typically, we test both the stable and latest versions of Rancher active branches when releasing Harvester. We also regularly update the supported Rancher versions with Harvester releases, prioritizing based on testing needs or customer usage patterns. Our goal is to automate this process, enabling more frequent updates to Rancher supported versions, ideally within 1-2 weeks of Rancher releases.
Regarding Rancher 2.7.10 with Harvester 1.2.1, we intend to conduct testing after the release of Harvester 1.3.0, which is scheduled for the next couple of weeks or so as all QAs are busy in efforts and automation tasks related to the 1.3.0 release.

Having some basic tests based on harvester-v1.2.1 + rancher-v2.7.9 with upgrade path -> v2.7.10 -> v2.7.11 -> v2.8.3-rc5.
Hit an known issue #5247 (minor cuz have workaround), in general LGTM.
cc. @khushboo-rancher

Harvester officially supports Rancher 2.7.10, 2.7.11 and 2.8.2 now. Support matrix - https://www.suse.com/suse-harvester/support-matrix/all-supported-versions/harvester-v1-2-x/

One thing tough...  With the warning on your 1.3.0 release page https://github.com/harvester/harvester/releases/tag/v1.3.0 :

Wouldn't be better to stop the support matrix to 2.7.11 and wait for the release of 2.8.3  so users don't try to upgrade to 2.8.2 from 2.7.11?  I am unsure if the issue applies to Harvester 1.2.1, but I assume it does..?


Module lazyloading and forRoot convention

Hi @ManuCutillas, first of all, thanks for your amazing work.
I am encountering a problem with version 5.0.6 and module lazyloading.
In responsive.module.ts, I think the list of providers defined in decorator @ngModule should be moved with the providers declared inside forRoot method, to have something similar to:
@NgModule({
    declarations:
        [
            BOOTSTRAP_DIRECTIVES,
            BROWSER_DIRECTIVES,
            CUSTOMSIZES_DIRECTIVES,
            DEVICES_DIRECTIVES,
            PIXELRATIO_DIRECTIVES,
            RESPONSIVE_DIRECTIVE,
            RESPONSIVEWINDOW_DIRECTIVE,
            USERAGENT_INFO_DIRECTIVE,
            RESPONSIVE_SIZE_INFO_DIRECTIVE,
        ],
    exports:
        [
            BOOTSTRAP_DIRECTIVES,
            BROWSER_DIRECTIVES,
            CUSTOMSIZES_DIRECTIVES,
            DEVICES_DIRECTIVES,
            PIXELRATIO_DIRECTIVES,
            RESPONSIVE_DIRECTIVE,
            RESPONSIVEWINDOW_DIRECTIVE,
            USERAGENT_INFO_DIRECTIVE,
            RESPONSIVE_SIZE_INFO_DIRECTIVE,
        ],
})
export class ResponsiveModule {
    public static forRoot(config: IResponsiveConfig = null): ModuleWithProviders {
        return {
            ngModule: ResponsiveModule,
            providers: [{
                provide: RESPONSIVE_CONFIGURATION,
                useValue: (config !== null) ? config : {
                    breakPoints: {
                        xs: { max: 767 },
                        sm: { min: 768, max: 991 },
                        md: { min: 992, max: 1199 },
                        lg: { min: 1200, max: 1599 },
                        xl: { min: 1600 },
                    },
                    debounceTime: 100,
                },
            }, {
                provide: ResponsiveConfig,
                useFactory: responsiveConfiguration,
                deps: [RESPONSIVE_CONFIGURATION],
            },
                ResponsiveState,
                RESPONSIVE_SIZE_INFO_RX,
                USERAGENT_INFO_RX,
                BROWSER_INFO_RX,
                IE_INFO_RX,
                DEVICES_INFO_RX,
            ],
        };
    }
}

Currently, in a lazyloaded module, I'm not able to import ResponsiveModule (without calling forRoot) to access only directives, since I get the following error:
ERROR Error: Uncaught (in promise): Error: StaticInjectorError[config]:
  StaticInjectorError[config]:
    NullInjectorError: No provider for config!
Error: StaticInjectorError[config]:
  StaticInjectorError[config]:
    NullInjectorError: No provider for config!
    ...

Thanks @cdubuisson ! 😄
I fix this problem.  Install in your proyect this new version -> 5.0.8.


Slurm 3.0.1 DefMemPerCpu miscalculated for htc partitions

CC = 8.4.0
Slurm Cluster-init = 3.0.1
Slurm version = 22.05.8-1
ISSUE
azure.conf uses  use miscalculated DefMemPerCpu for HTC partitions ( slurm.hpc = false)
STEPS TO REPRODUCE

Create a Slurm cluster with HTC partition
inspect the azure.conf file:

root@jm-slurm-multi2-hn:~# cat /sched/azure.conf
# Creating dynamic nodeset and partition using slurm.dynamic_config=-Z --conf "Feature=dyn"
Nodeset=dynamicns Feature=dyn
PartitionName=dynamic Nodes=dynamicns
# Note: CycleCloud reported a RealMemory of 446273536 but we reduced it by -1 (i.e. max(1gb, -1%)) to account for OS/VM overhead which
# would result in the nodes being rejected by Slurm if they report a number less than defined here.
# To pick a different percentage to dampen, set slurm.dampen_memory=X in the nodearray's Configuration where X is percentage (5 = 5%).
PartitionName=hpc Nodes=jm-slurm-mutli2-hpc-[1-3] Default=YES DefMemPerCPU=18158 MaxTime=INFINITE State=UP
Nodename=jm-slurm-mutli2-hpc-[1-3] Feature=cloud STATE=CLOUD CPUs=24 ThreadsPerCore=1 RealMemory=435814 Gres=gpu:4
# Note: CycleCloud reported a RealMemory of 3145728 but we reduced it by -1 (i.e. max(1gb, -1%)) to account for OS/VM overhead which
# would result in the nodes being rejected by Slurm if they report a number less than defined here.
# To pick a different percentage to dampen, set slurm.dampen_memory=X in the nodearray's Configuration where X is percentage (5 = 5%).
PartitionName=htc Nodes=jm-slurm-mutli2-htc-[1-5] Default=NO DefMemPerCPU=3072 MaxTime=INFINITE State=UP
Nodename=jm-slurm-mutli2-htc-[1-5] Feature=cloud STATE=CLOUD CPUs=2 ThreadsPerCore=1 RealMemory=3072

The HTC partition has CPUS=2 and RealMemory=3072, which is correct.  The expected DefMemPerCPU should be 1536 (3072/2) but is configured for 3072.

WORKAROUND
manually update azure.conf whenever azslurm scale is run.

Fixed in 3.0.3


Provide a way to set UserSkel-defaults on GoogleAccount login method

When Google Login is used, it might be wanted that new users are configured as "root" users or other features, maybe because the Google Login Method is only used by admins.
Therefore, a way must be created to allow changing the default in such a case.

Relates to https://github.com/viur-framework/viur-core/issues/676


Searching for a substring in the strings window highlights the wrong result.

If you search for "rintf" in the strings window, the line following the correct result is the one that is highlighted instead of the correct line that contains "rintf".

When you say "search" do you mean you're using CMD-F or you're using the filtering by just typing when the window is focused?

I assume it's ctl-f or cmd-f but I can't seem to reproduce that here. Can you share a binary that demonstrates it or maybe record a quick screen cap showing it?

Yes, the problem only appears when using cmd-f and searching for a substring (i.e., "rintf" instead of "printf"


nixops-encrypted-links: 2021-01-18 -> 2021-02-16

Motivation for this change
Fix nixops deploy --include.
https://github.com/nix-community/nixops-encrypted-links/pull/5
This PR only adds that fix.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build nixopsUnstable

Closing in favor of #117464


nit: dont show url as :// in odo url list

What type of PR is this?

Uncomment only one  /kind line, and delete the rest.
For example, > /kind bug would simply become: /kind bug

/kind bug
What does does this PR do / why we need it:
before doing odo push if there is a url present then we show it as :// and that's confusing. Resolved it by making it a blank until user pushes.
Which issue(s) this PR fixes:
Fixes https://github.com/openshift/odo/issues/4109
PR acceptance criteria:

[ ] Unit test

[X] Integration test

[ ] Documentation

[ ] I have read the test guidelines

How to test changes / Special notes to the reviewer:
way to reproduce
odo create nodejs
odo url create --port 3000
odo url list

Output:
Found the following URLs for component nodejs
NAME STATE URL PORT SECURE KIND
nodejs-3000 Not Pushed :// 3000 false route

After fix the url would be blank

[mrinaldas@localhost project]$ odo create nodejs
Validation
 ✓  Checking devfile existence [38692ns]
 ✓  Creating a devfile component from registry: odo-V2-Registry [58716ns]
 ✓  Validating devfile component [193853ns]

Please use `odo push` command to create the component with source deployed
[mrinaldas@localhost project]$ odo url  list
Found the following URLs for component nodejs
NAME          STATE          URL     PORT     SECURE     KIND
http-3000     Not Pushed     ://     3000     false      route
There are local changes. Please run 'odo push'.
[mrinaldas@localhost project]$ odo url create example
 ✓  URL example created for component: nodejs

To apply the URL configuration changes, please use `odo push`
[mrinaldas@localhost project]$ odo url  list
Found the following URLs for component nodejs
NAME          STATE          URL     PORT     SECURE     KIND
example       Not Pushed     ://     3000     false      route
http-3000     Not Pushed     ://     3000     false      route

Not working for me on a Openshift cluster

Not working for me on a Openshift cluster

Same here on CRC.
$ odo url create url1 --port 8080
 ✓  URL url1 created for component: node-1

To apply the URL configuration changes, please use `odo push`

$ odo url list
Found the following URLs for component node-1
NAME     STATE          URL     PORT     SECURE     KIND
url1     Not Pushed     ://     8080     false      route
There are local changes. Please run 'odo push'.

/refresh

Still cannot see tidy on this PR

/retest

@openshift/openshift-team-developer-productivity-test-platform ptal
Tide is missing

/retest

/retest


Use a real progress bar in the app

I discovered if one keeps on looking at the app during a picture upload, one just sees a fake progress bar imitation. If one wants to see a real progress bar one just has to pull down the notifications. So please use the same real progress bar that you have in  notifications, also in the app. Thanks. You might need a very slow network to see what I'm talking about. Version: latest beta.

I would like to work on this issue PLease assign me

Hi @Rishavgupta12345 ! We usually assign 'enhancements' only to contributors with more than 5 merged pull requests. You take a look at issues tagged with 'good first issue' instead.

@jidanni I am able to see the same thing in the notification progress bar and on-screen progress bar when uploading images. can you please share a screenshot of the notification progress bar? Thanks1

@devarsh-mavani-19 Yes thanks! To answer your question: When uploading a picture, the contributions activity shows a bar which goes left to right, it is the same animation that loops the same way without any indication of what percentage of the upload has been accomplished. On the opposite, the progress bar in Android's notification area shows more or less accurately what percentage of the upload has been accomplished so far.


Added Pulsar processors and Controller Service

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

NIFI-4908

please update all the nifi component version references to 1.6.0-SNAPSHOT

I have updated all the nifi component version references to 1.6.0-SNAPSHOT, and successfully rebuilt the project using mvn -Pcontrib-check clean install.

When I started writing these processors, I used the Kafka ones as a model. However, I felt that it would be easier to configure the Pulsar client once, such as SSLContextService integration, and then pool both the Producer and Consumers for re-use, similar to a connection pool for a database.

Hey @david-streamlio this is very cool! I've been thinking about writing processors for interacting with Pulsar myself but haven't had a chance yet. Just a few things that we should think through a bit:

Re: Connection Pool in controller service vs. doing it in the processor: what makes sense here I think depends on how you expect to use it. If you expect to be creating several Pulsar processors with the same connection info, then a Controller Service makes sense. If you think the more common case will be a single instance of the Processor then configuring it in the Processor is probably easier for the user. I think both have their merits though, so I'm fine with either approach personally.

One concern that I have is that with the Kafka processors, we end up having to create a new copy of the processors with pretty much each release of Kafka, so that we can take advantage of the new features. Have you considered how you see this evolving as more versions of Pulsar are released? There are two approaches that we often see with NiFi. One is to create a new processor for each new version as we did with Kafka. The other is to have a "Client Service" Controller service. It would then have methods like publish(FlowFile), consume() or something like that. Then there is only a single ConsumePulsar processor and a single PublishPulsar processor. Each is then just configured with the controller service that handles interacting with Pulsar directly. Either approach is okay, I think. But we should probably think about naming at least - does it make sense to name these ConsumePulsar_1_20 or ConsumePulsar_1_0 or something of that nature? I think it's best to figure this part out before the initial release because it can then become confusing if we have processors like ConsumePulsar and ConsumePulsar_1_35 for instance.

Thoughts?

Thanks @markap14.  This has been a great learning experience for me, and I am happy to contribute back to such a great project. I am still new to developing processors, so I really appreciate the feedback on my design and these are great points I hadn't considered.

I decided to go with a ControllerService, because I envision the user will only have 1 or 2 Pulsar clusters they are interacting with, therefore it made more sense to have a controller service that the user can configure once (Broker URL & SSL ControllerService), and pull Publishers and Consumers.  from. I believe that the common usage pattern will be to have small number of Producers, that leverage the expression language to route the messages to multiple topics. I would expect Consumers to be configured to a single topic/subscription pair to feed data into the flow.

I have not given much thought to how we are going to handle Pulsar client evolution from these processors to be honest, as I don't expect the API to change drastically. Having said that, I think it is safe to at least associate these with the major version number of Pulsar just in case there is a major functionally shift between 1.x and 2.x. I am ok with naming these ConsumerPulsar_1_0.

Can you point me to an example of the "Client Service" Controller pattern you mention? I would like to examine that.

@david-streamlio @markap14 i'd recommend we dont even bother with non record based producers/consumers with Pulsar.

I created a separate JIRA for record-based processors.....https://issues.apache.org/jira/browse/NIFI-4914, but would like to get these processors into the release as well. Primarily because Pulsar doesn't currently have schemas or a schema registry, so writing records to Pulsar doesn't help the downstream consumers much. Unless they use the ConsumePulsarRecord processor.

@markap14. I completely agree that is the best approach for handling text-based payloads into and out of Pulsar, and am starting to work on the record based processors now.  However, I do see a need for keeping the non record based processors around to handle non-text payloads, such as image files, audio files, scientific data, etc.

@david-streamlio HBase is an example of what @markap14 suggested.
https://github.com/apache/nifi/tree/master/nifi-nar-bundles/nifi-standard-services
and there is a new PR (#2498) currently opened that is adding a new service for HBase 2 without modifying anything in all the related HBase processors that are located in this bundle:
https://github.com/apache/nifi/tree/master/nifi-nar-bundles/nifi-hbase-bundle

@david-streamlio i'm supportive of doing non record ones for the cases you mention.  Does Pulsar by any chance offer a true streaming API instead of byte[] then so handling the types of objects you describe is feasible?  We are doing the memory warning annootations so that will help too but would be awesome if they do..

The Pulsar client API, https://pulsar.apache.org/api/client/, currently only supports byte[] payloads. By true streaming, I am assuming you mean an API that return an IO stream object of some sort.

yes correct it would be awesome if the client/broker interface could support a genuinely streaming interface rather than a byte[] as this helps frameworks that can operate on the streams rather than having objects fully loaded operate in the most GC/efficient manner possible.  It means sending a 1 GB object for example never holds more than some small buffer size in memory.  If you want to suppor the use case you're describing then nifi has to load the full image/document/etc.. into a byte[] then hand that over to the pulsar interface.  So, larger objects become a problem in terms of efficiency/parallelism.  no biggie for now but does make that use case a bit less exciting for now :)

I completely agree on your observation about having to land the entire, unbroken file into NiFi's repo rather than streaming through memory is inefficient. I will talk to the Pulsar team about getting a true streaming API implemented. It is a great suggestion.
If we were to write such an API, do you have some examples of how we would leverage it inside NiFi? I thought we had to generate a flow file for our Consumer processor. Is there a way to hand off streams instead?

on the consume side you would generate a flowfile.  But you'd then write to it via the streaming API.  #neverbytearray is a movement we should start.

At the risk of sounding pushy.....Is there anything else I need to do on this PR, such as add the record-based processors?

@david-streamlio Looks like you pulled in about 30 some commits from other folks into this. Can you rebase the branch so that only your commits are part of the PR?

Pulsar looks interesting, so if you can do the rebase I'll try to help out with the review.

Sure, I will start re-basing now.

I have rebased my branch and created new pull request here:  https://github.com/apache/nifi/pull/2553. Please ignore this pull request as the new one supersedes it.


Sqitch: Added patina db shortcut

added target for local dev
Change-Id: I135b925fe99d4aa74985cba7aaa77fcf7efc2c63

Code Review comments can be found at https://gerrithub.io/q/I135b925fe99d4aa74985cba7aaa77fcf7efc2c63


How to debug

Hello,
I have an eel app that uses electron, but I can't figure out how to get the error messages from electron. At the moment I have a problem whereby my custom minimise and close buttons won't work, as I discussed here.
Here is my gui.py file:
import eel
import sys

options = {
	'mode': 'custom',
	'args': ['node_modules/electron/dist/electron.exe', '.']
}

@eel.expose
def quit_app():
	sys.exit(0)

if __name__ == "__main__":
	eel.init('web')
	eel.start('html/index.html', options=options)

So if you could please show me how to get the error outputs then that would be very useful, thanks.

If the error is Electron side then look in the console (press ctrl+shift+i)

@ChrisKnott I tried pressing CTL+SHIFT+I but nothing happened.

I fixed it by removing this line from my main.js: mainWindow.setMenu(null);. Now I can see the errors, thanks!


Active use merge conflicts

Sorry...this was a screw-up and I can't figure out how to delete it.  -AlbinoRhino


refactor: get rid of jakarta-validation framework

What this PR changes/adds
Replaces jakarta-validation framework with a self-implemented framework.
This PR wraps up the work already done for the Json-LD validation, and replaces the remaining bean-validation.
Why it does that
Avoid unneeded dependencies
Linked Issue(s)
Closes #3230
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

Codecov Report
Patch coverage: 66.66% and project coverage change: -0.03 :warning:

Comparison is base (20c366a) 65.94% compared to head (107061f) 65.92%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3236      +/-   ##
==========================================
- Coverage   65.94%   65.92%   -0.03%
==========================================
  Files         843      842       -1
  Lines       16871    16875       +4
  Branches      925      929       +4
==========================================
- Hits        11126    11124       -2
- Misses       5375     5381       +6
  Partials      370      370

Impacted Files
Coverage Δ

.../org/eclipse/edc/web/jersey/JerseyRestService.java
94.87% <ø> (-0.13%)
:arrow_down:

...sferprocess/model/TransferProcessFailStateDto.java
0.00% <ø> (ø)

...vision/http/webhook/ProvisionerWebhookRequest.java
100.00% <ø> (ø)

...erprocess/TransferProcessControlApiController.java
28.57% <14.28%> (-14.29%)
:arrow_down:

...p/webhook/HttpProvisionerWebhookApiController.java
97.14% <100.00%> (+1.30%)
:arrow_up:

... and 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


[FEATURE REQUEST] Removal of Logstash component

Is your feature request related to a problem? Please describe.
The functionality that Logstash is serving in Epiphany - exporting csv can right now be achieved using Open Distro for Elasticsearch plugin.
Describe the solution you'd like
We want to remove unused Logstash component as it double the functionality with Open Distro for Elasticsearch plugin.
Describe alternatives you've considered
None.
Additional context
Logstash in this version is prone to log4j issue and this is also the reason why should be removed.

DoD checklist

[ ] Changelog updated
[ ] COMPONENTS.md updated / doesn't need to be updated
[ ] Schema updated / doesn't need to be updated
[ ] Feature has automated tests
[ ] Automated tests passed (QA pipelines)

[ ] apply
[ ] upgrade

[ ] Idempotency tested
[ ] Documentation added / updated / doesn't need to be updated
[ ] All conversations in PR resolved
[ ] Solution meets requirements and is done according to design doc
[ ] Usage compliant with license
[ ] Backport tasks created / doesn't need to be backported

Important is to remove everything:

Ansible
Python (if present)
Defaults
Validation
Documentation
etc

From documentation only leave things that are part of design docs.

Hi @cicharka, shouldn't you also remove spec test for logstash? see here

Hello @rafzei, as I understand it, the test you pointed to is related to filebeat component.
Unfortunately name 'logstash' was not only used for logstash component name, but also as username for elasticsearch here and also in filebeat here.
Please correct me if I wrong @przemyslavic or point out who can verify it :)

Probably you have right, but let's wait for @przemyslavic. Maybe we could change the username?

Updated all develop pipelines by removing Vault, Istio, Logstash an Ignite components/apps.

Please create documentation regarding deprecation: what steps are needed from admin to remove packages or create ansible tasks for this. We should not leave not use components and dependencies on machines.

Logstash component has no dependencies or any other package is not dependent on it, therefore its removal can be performed easily. Added more information in docs.


refactor: call requests

Stop revealing start counters of public call requests from private.
Export PublicCallRequest structs instead of hashes from public inputs.

Gate counts have increased because of the larger data (Will try to reduce them in the next pr). But now the app circuit can save 5k for each public function call.

Remove caller context. Instead, use call context in the call request to check addresses and function selector.
Add missing checks:

Nested function selector.
Teardown call request.
Empty public data update requests.

Benchmark results
Metrics with a significant change:

app_circuit_witness_generation_time_in_ms (GasToken:deploy): 476 (-16%)
app_circuit_output_size_in_bytes (ContractClassRegisterer:register): 11,699 (+25%)
app_circuit_output_size_in_bytes (ContractInstanceDeployer:deploy): 11,699 (+25%)
app_circuit_output_size_in_bytes (MultiCallEntrypoint:entrypoint): 11,699 (+25%)
app_circuit_output_size_in_bytes (GasToken:deploy): 11,699 (+25%)
app_circuit_output_size_in_bytes (SchnorrAccount:constructor): 11,699 (+25%)
app_circuit_output_size_in_bytes (SchnorrAccount:entrypoint): 11,699 (+25%)
app_circuit_output_size_in_bytes (Token:privately_mint_private_note): 11,699 (+25%)
app_circuit_output_size_in_bytes (FPC:fee_entrypoint_public): 11,699 (+25%)
app_circuit_output_size_in_bytes (Token:transfer): 11,699 (+25%)
app_circuit_output_size_in_bytes (Benchmarking:create_note): 11,699 (+25%)
app_circuit_output_size_in_bytes (SchnorrAccount:verify_private_authwit): 11,699 (+25%)
app_circuit_output_size_in_bytes (Token:unshield): 11,699 (+25%)
app_circuit_output_size_in_bytes (FPC:fee_entrypoint_private): 11,699 (+25%)
protocol_circuit_simulation_time_in_ms (private-kernel-tail): 1,482 (+33%)
protocol_circuit_simulation_time_in_ms (public-kernel-setup): 240 (+23%)
protocol_circuit_input_size_in_bytes (private-kernel-tail-to-public): 900,541 (+16%)
avm_simulation_time_ms (GasToken:set_portal): 18.6 (+36%)
avm_simulation_time_ms (FPC:pay_refund_with_shielded_rebate): 177 (+64%)
protocol_circuit_witness_generation_time_in_ms (private-kernel-tail-to-public): 3,692 (+29%)
protocol_circuit_witness_generation_time_in_ms (public-kernel-app-logic): 4,158 (+24%)
protocol_circuit_witness_generation_time_in_ms (public-kernel-teardown): 4,139 (+22%)
protocol_circuit_proving_time_in_ms (base-parity): 1,389 (-34%)
protocol_circuit_proof_size_in_bytes (public-kernel-setup): 140,932 (+18%)
protocol_circuit_proof_size_in_bytes (public-kernel-app-logic): 140,932 (+18%)
protocol_circuit_proof_size_in_bytes (public-kernel-teardown): 140,932 (+18%)
protocol_circuit_num_public_inputs (public-kernel-setup): 4,011 (+20%)
protocol_circuit_num_public_inputs (public-kernel-app-logic): 4,011 (+20%)
protocol_circuit_num_public_inputs (public-kernel-teardown): 4,011 (+20%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,719
1,541
705
757
776

proof_construction_time_sha256_30_ms
11,722 (+1%)
3,129
1,407
1,446 (+1%)
1,470

proof_construction_time_sha256_100_ms
43,860
11,866 (-1%)
5,425
5,436
5,365

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
60.0
89.0

proof_construction_time_poseidon_hash_30_ms
1,521 (+1%)
415
200
221 (-2%)
270

proof_construction_time_poseidon_hash_100_ms
5,612
1,512
677
733 (+1%)
751

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
708
708
708

l1_rollup_calldata_gas
6,588
6,586
6,588

l1_rollup_execution_gas
583,050
583,199
583,352

l2_block_processing_time_in_ms
762
1,435 (+1%)
2,712

l2_block_building_time_in_ms
14,059 (+7%)
27,621 (+8%)
54,571 (+7%)

l2_block_rollup_simulation_time_in_ms
14,059 (+7%)
27,620 (+8%)
54,571 (+7%)

l2_block_public_tx_process_time_in_ms
11,827 (+7%)
25,177 (+8%)
52,086 (+7%)

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

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
7,148
10,016 (+1%)

node_database_size_in_bytes
12,468,304
16,453,712

pxe_database_size_in_bytes
16,254
26,813

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

Function
time_ms
bytecode_size_in_bytes

GasToken:_increase_public_balance
97.5
13,790

GasToken:set_portal
:warning: 18.6 (+36%)
3,339

Token:constructor
123 (+2%)
23,692

FPC:constructor
90.7 (-3%)
13,592

GasToken:mint_public
82.9
10,158

Token:mint_public
378 (+12%)
19,034

Token:assert_minter_and_mint
60.5 (+18%)
12,925

AuthRegistry:set_authorized
46.3 (+3%)
7,812

FPC:prepare_fee
107 (-5%)
11,068

Token:transfer_public
43.1 (+13%)
31,218

FPC:pay_refund
149 (+16%)
21,266

Benchmarking:increment_balance
1,418 (+9%)
11,281

Token:_increase_public_balance
66.4 (-21%)
15,006

FPC:pay_refund_with_shielded_rebate
:warning: 177 (+64%)
22,361

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.151 (-5%)

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

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
10.4
16.8
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.603
0.515
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
47.8 (-1%)
77.5 (+2%)
131
245 (-1%)
469

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.489 (-1%)
0.476 (+2%)
0.450
0.445 (-1%)
0.436

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
59.3 (-1%)
111
182
354
691

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.501 (-1%)
0.501
0.482
0.480
0.476

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
72.6
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
133
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.516
N/A
N/A
N/A
N/A

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

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
72,014 (-7%)
666,910

Transaction size based on fee payment method
| Metric |  |
| - |  |


UX Research on Open Info publishing

Title of ticket:
Description
UX Research on Open Info Tracker and publishing general requests on Open Info.
Dependencies
Are there any dependencies?
DOD

[x] 1-2 page UX Research Plan with research goals, tactics, and participants

General research notes and existing flow can be found here: https://miro.com/app/board/o9J_lFQ2oaU=/

https://bcgov.sharepoint.com/:w:/t/03521/EZpQwdEBO4VBsadawNUcPXABfKmIcn_gTbN9XUGidz2SYg?e=D0fEWY

Research plan looks good to me!

Good from my end too @JHarrietha-AOT

This is complete. Good work, @JHarrietha-AOT


Add missing serde derives

Jmt already derives serde for most types, but a few were missing. This PR adds derives on the missing types.

As I understand it, these types are not exposed in the public API. What's the utility in adding serialization implementations for them, if they are not needed to be serialized internally?

Hmm, good point - we can always add serialization later but removing it would be a breaking change. I removed the derives from all of the types except Node and its contained types since serializing Nodes is the only use case we care about for now.


Development of mdof MDoFForcedDisksWithSerialSprings dynamic system

Move the system to appropriate submodule and rewrite the code if needed.

Inheritance from a similar class proposed. Link to the Jypyter notebook below.
https://cocalc.com/projects/cdcf3856-3e8b-4d1c-bcb2-5c42ba749d83/files/UCZESTNICY/Maja Banasiak /2023-07-18-file-1.ipynb#id=9f29c5

Issue can be closed. Code of the system visible below
https://github.com/bogumilchilinski/dynpy/blob/673ca0a328c0a72f8bd7a2f2c2bfaaa0a5b865cf/models/mechanics/disk.py#L566-L750

Issue can be closed.


Call minimum_size_changed() in PopupMenu::remove_item()

When removing an item from a PopupMenu we need to update the control's
size cache otherwise the size of the PopupMenu itself lags behind by 1
item size. Meaning the PopupMenu will remain too large.

Thanks!

Cherry-picked for 3.0.7.


request for Voltage per MPPT

Hi,
@Spookster already implemented the Power of PPV1 and PPV2. I'd like to see the Voltage as well.
Would it be possible for someone to implement? Or is this something I could achieve myself with configuration?
Little coding experience here...
Best
Hannes

Looking quickly at the docs, the values you are looking for are Upv1 and Upv2
I havent tried to access them, but also using node-red-contrib-alphaess and they arent available from that.

oh that was a quick reply.
Sorry I don't know node-red-contrib-alphaess, what does it do?

I use that component in Node Red alongside Charless code for other reasons:

I had a quick look at Upv, tried some code, but it seems its not accessible from the standard json code?
Someone else may be able to confirm


Add GitHub exporter image build logic

Add GitHub exporter image build logic.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: abhay-krishna
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [abhay-krishna]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@abhay-krishna: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

github-exporter-tooling-presubmit
f41ed2b82aa6db1dab2c6f7b269019e195994f07
link
/test github-exporter-tooling-presubmit

Full PR test history. Your PR dashboard.

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


Convert user_access_token_section to TypeScript

Summary
Migrate 'components/user_settings/security/user_access_token_section' module and associated tests to TypeScript
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/13693
JIRA: https://mattermost.atlassian.net/browse/MM-20548

I got an error at line 50 in index.ts file:
userAccessTokens: state.entities.users.myUserAccessTokens
error: Property 'myUserAccessTokens' does not exist on type 'UsersState'.
I already checked UsersState, it really doesn't have myUserAccessTokens property.

I got an error at line 50 in index.ts file:
userAccessTokens: state.entities.users.myUserAccessTokens
error: Property 'myUserAccessTokens' does not exist on type 'UsersState'.
I already checked UsersState, it really doesn't have myUserAccessTokens property.

Thanks for the catch! I'll make a change to redux and get that fixed.

@hiendinhngoc The fix is in, you'll just need to update the mattermost-redux package to this commit and everything should work nicely: 1838b6c20c51d9f2a8c9899c91417672dced87f0

@hiendinhngoc The fix is in, you'll just need to update the mattermost-redux package to this commit and everything should work nicely: 1838b6c20c51d9f2a8c9899c91417672dced87f0

@devinbinnie thank you, I updated in my side by entering the version to package.json file, then npm install. After that, the error came out and type-check was passed from my local. However, CI shows the error with type-check. Is there any step that I missed or sth wrong here?

@hiendinhngoc The fix is in, you'll just need to update the mattermost-redux package to this commit and everything should work nicely: 1838b6c20c51d9f2a8c9899c91417672dced87f0

@devinbinnie thank you, I updated in my side by entering the version to package.json file, then npm install. After that, the error came out and type-check was passed from my local. However, CI shows the error with type-check. Is there any step that I missed or sth wrong here?

@hiendinhngoc CircleCI uses the copy of package-lock.json in the repo in order to fetch its packages, so you'll need to change that as well. Sorry for the inconvience.

@devinbinnie It seems an update for mattermost-redux at previous commit which caused type check error when I changed to 1838b6c20c51d9f2a8c9899c91417672dced87f0

@devinbinnie It seems an update for mattermost-redux at previous commit which caused type check error when I changed to 1838b6c20c51d9f2a8c9899c91417672dced87f0

@hiendinhngoc I guess you'll have to update the files to the latest commit then, see here: https://github.com/mattermost/mattermost-redux/commit/6fdb4667fdb689ac209eb27d2726922d8b422104

This PR has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @jfrerich

Hi @hiendinhngoc, did you have questions on how to update the files to the latest commit: mattermost/mattermost-redux@6fdb466
If any, let us know! Happy to help :)

/update-branch


docs(readme): Add logo, backer, sponser and update links

Hello
I've updated README_ko.md file based on the d0aa83d.
So the outdated links are updated. And the other missing things are now added.
Thanks,
Jisu Park

Thanks!


Can support nested type?

PUT /obj
{
  "mappings": {
    "_doc": {
      "properties": {
        "name": {
          "type": "text"
        },
        "car": {
          "type": "nested",
          "properties": {
            "make": {
              "type": "text"
            }
          }
        }
      }
    }
  },
  "settings":{
      "index":{
          "number_of_shards":1,
          "number_of_replicas":1
      }
  }
}

PUT /obj/_doc/1
{
  "name" : "Zach",
  "car" : [
    {
      "make" : "Saturn",
      "model" : "SL"
    },
    {
      "make" : "Subaru",
      "model" : "Imprezza"
    }
  ]
}

PUT /obj/_doc/2
{
  "name" : "Rach",
  "car" : [
    {
      "make" : "Naturn",
      "model" : "NL"
    },
    {
      "make" : "Wubaru",
      "model" : "Laprezza"
    },
    {
      "make" : "Siri",
      "model" : "Paprezza"
    }
  ]
}

I want to get the all  elements of array.  like
select  * from obj.car

Thanks for reporting the issue. I'm looking into this.

In your example, the query and result is expected to be like:
POST _opendistro/_sql?format=jdbc
{
  "query": "SELECT * FROM obj o, o.car m"
}
{
  "schema": [
    {
      "name": "car.model",
      "type": "text"
    },
    {
      "name": "name",
      "type": "text"
    },
    {
      "name": "car.make",
      "type": "text"
    }
  ],
  "total": 5,
  "datarows": [
    [
      "SL",
      "Zach",
      "Saturn"
    ],
    [
      "Imprezza",
      "Zach",
      "Subaru"
    ],
    [
      "NL",
      "Rach",
      "Naturn"
    ],
    [
      "Laprezza",
      "Rach",
      "Wubaru"
    ],
    [
      "Paprezza",
      "Rach",
      "Siri"
    ]
  ],
  "size": 5,
  "status": 200
}

Ok, it works fine. Thank you. And I expect a simpler query like my example , because we want to privide it  to thirdparty

I'm fixing this in PR: https://github.com/opendistro-for-elasticsearch/sql/pull/98. This kind of nested field query works in most cases. But the meaning of SELECT * was not clear. Will merge to master after approved.
Btw, we'd like to follow the syntax in my example because it is standard. Please refer to https://ci.apache.org/projects/asterixdb/sqlpp/manual.html#Unnest_clauses. Comma join here is equivalent to unnest nested field.

https://github.com/opendistro-for-elasticsearch/sql/pull/98#issuecomment-510974475
@penghuiy I'm ready to merge. Please reference to the test query in the comment above. Thanks!


Enhancement: GE Monarch ZDP486NDT1SS Oven Fields

I have a GE Monarch ZDP486NDT1SS: https://www.geappliances.com/appliance/Monogram-48-Dual-Fuel-Professional-Range-with-6-Burners-and-Griddle-Natural-Gas-ZDP486NDTSS
Integrations mostly work. Some issues:

Ovens are actually side by side, not upper/lower.
Light control is only available for the lower oven.
Lower oven temp is always shown at 0 degrees.
Not all of the oven modes are shown correctly. It has the following modes: bake, broil, warm, proof, clean, convection broil, convection roast, and convection bake.

Log attached.
Thanks for your work! Let me know if I can help with this.
ge_appliances.log

Unfortunately, I can't do anything about the side by side vs. upper/lower - that's the way data is presented.  I'm sure that the official app maintains a mapping of some sort that indicates which model is which, but I don't really have the ability to do that.
In regard to the oven modes, not all are available, unfortunately.  I don't know why they limited it, but they didn't allow us to set a bunch of them (perhaps some sort of safety thing??).
I think that I've got the others in the latest version that I'm working through right now, which I'll release shortly (hopefully).


Adding a desktop notification for macos

Hello , I was thinking about adding desktop notification. You know the ones that pop up on upper right corner. I have a Mac but it can be extended by others with different OS's. It doesn't require any token info, maybe couple of configuration arguments , and can simply be called with @desktop_sender().
It's not a hard task, there are already libraries for it , but nevertheless I would like to make the PR myself.
What do you think ?

Hello @atakanyenel,
Yes, I see what you are talking about! I'm not really familiar with the libraries that handle this type of notification. Is it cross-platform or a specific code has to be developed for each os (mainly: linux, mac, windows)? So far, I've tried to make as simple as possible and to integrate it with what people already use independently of this library. It would be great if it supports the main OS.
I'm also curious: how long are your training/tasks? I usually use knockknock for longer (at least a few hours) trainings so I like receiving something on my phone as I don't necessarily have my laptop with me.
Victor

The libraries that I know of are not cross-platform but we can combine couple of libraries for each OS and check the current OS with os.name.
I also understand that this case is only usable for people who train on their own computer and not on their server.
I'm also not a ML researcher and I don't do training :) What I use knockknock is for load testing with python or running build scripts. So I let the python script run, watch a youtube video , in 5-10 mins I would check the terminal, so  desktop notif would be enough for me.
I can send an example implementation for macos in a PR but only if you want to have it implemented.
what do you think ?

Gotcha, I don't why I assumed that you were doing machine learning but I am glad that this small lib can be useful if other use-cases!
I was also thinking that there are ways to configure something in bash to send notifs at the end of a process. It would be cross-platform (as long as you use terminal), but I don't think the UI is as polished as the one we are talking about (cute notifications on the top right on Mac).
If you could open a pull request, I would be happy to coordinate with you on this, and hopefully, someone else knows enough to include other platforms (Windows and Linux).

Merged in pull request #29.
Closing this.


Improve Fluid Modifier Source feedback

Make it clearer which fluid simulation the modifier is in and which one it interacts with.

Added a overlay on the underlying terrain in version v1.0.6


Fix tags to avoid duplication with nvim-treesitter

Ah, already updated on #2. Feel free to close this.

Close this because #2 has been merged.

Close this because #2 has been merged.


Add support for collections.abc.Collection type hints

Adds a new internal Beam representation for type hints that are exactly collections.abc.Collections types. Allows for more general type hinting guarantees.
Part of #29135

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @damccorm @robertwb


Is it possible to use user embeddings too? How can we use users in the context of this CTR model with other categorical and numerical features?

The embeddings can represent arbitrary things. Please read through the discussion in the following issue https://github.com/facebookresearch/dlrm/issues/105 for additional background about it.

The embeddings can represent arbitrary things. Please read through the discussion in the following issue #105 for additional background about it.

Thank you so much. One more question, I'm trying to make the scheme more personalized by adding users explicit feedbacks for the purpose of e-commence recommendations, is there anything done around that area or anything that can help me go towards that direction with this model? Thanks a lot again.

You will find a lot of scientific literature about this topic in KDD. In particular, you can take a look at our recent Building Recommender Systems with PyTorch tutorial. That's probably the best place to look for an answer to this type of questions.

It looks like this is resolved. Closing.


Add HSA functions from ROCR Runtime for HIP 6.1.0

Waiting for ROCR Runtime fix.

Rebasing is required when https://github.com/ROCm/HIP/pull/3445 is merged.

The PR was rebased and conflicts are resolved again. Please take a look at it!


ModuleNotFoundError: No module named 'socks_smtp'

Python 3.7.3 on VirtualEnv
PySocks==1.7.1
dnspython==1.16.0
ideas?

oh wait.. its a path issue.. sorry about that

Hello.
I am new in python and trying to use the socks_smtp.
I have installed the PySocks == 1.7.1 but getting the error
from socks_smtp import SocksSMTP as SMTP
ModuleNotFoundError: No module named 'socks_smtp'
Can you please share what path you changed.

@mbilal02 You need to change
from socks_smtp import ...
to:
from verifier.socks_smtp import ...
The reason is that when the code is imported from your file, the path of that code is now your file.
your_file.py
verifier/
verifier.py
socks_smtp.py
init.py


add transfer task standby processor skeleton

Coverage decreased (-0.5%) to 64.829% when pulling e6a2a0e59214169a80e95ecf47b3df642babbec6 on transfer-Q-standby into 1beef9007bb8957a96401539e30b18a754fbebde on master.


feat(table): add sub component render

https://github.com/consolelabs/web-foundation/assets/12707960/a9c68618-bb9e-48ff-bf76-b1c95b424ce3

https://web-design-system-git-feat-add-subcomponent-aae314-consolelabs.vercel.app/?path=/story/components-table--render-sub-component


Support ScaledObject taking over existing HPAs with the same name while they are not managed by other ScaledObject

Proposal
Support a new field such as advanced.takeOverCurrentHpa that should be able to skip validation webhook when the existing HPA that is being taken over does not have any metadata that indicates it's managed by another ScaledObject

hpa name=foo exists.
created a new ScaledObject and had set the same attribute name. name=foo but also had set advanced.takeOverCurrentHpa = true.
Scaled Object should take over and replace the HPA with a managed one. Validation Webhook should not block it because the existing hpa is not managed by another ScaledObject.

Use-Case
Supports drop-in migrations for companies using HPA that want to easily move existing resources with ScaledObjects.
Is this a feature you are interested in implementing yourself?
Maybe
Anything else?
No response

This feature might enable the opportunity to create a "Migrator CLI" or similar that should replace the existing HPA yaml with a modified ScaledObject that should take over the previous resource.

Is your main problem that the webhook is blocking it? Because you can also install it without webhook validation.
Additionally, I believe we should allow you to turn off rules which are tracked in #4067

@tomkerkhove, the behaviors in the webhook are expected unless someone is trying to migrate their resources in their namespace. This is useful for multi-tenant clusters holding workloads for multiple teams so not all the teams need to perform the migration simultaneously.

So would it help if you could:

Annotate an HPA as "don't complain about this one", and
Be able to create a scaled object, but not have it "active"

That way you can create the SO next to your HPA and you can delete the HPA once the SO is created. Would that help?
A migratory CLI could be another route but more work for something "trivial" which would only cover CPU/memory then?

As discussed in standup, the current thinking is to:

Use the existing HPA name field to define the name
Use a new annotation to mark a ScaledObject keda.sh/transfer-hpa-ownership: true

Once that is the case, KEDA will:

Ignore webhook validation for duplicate HPA for same workload
Configure the HPA to be owned by KEDA
Provide a warning that take-over was performed

Hi, any progress on this issue? Looks like PR still in draft mode
Actually we need this feature so that our users will have Zero downtime during migration!


Enable automerge from 22.10 to 22.12 [skip ci]

Signed-off-by: Peixin Li<EMAIL_ADDRESS>as title. https://github.com/NVIDIA/spark-rapids-jni/tree/branch-22.12 is created

build

build


Intercept internal logs

In go-pg I used pg.SetLogger to integrate with my logging system. It doesn't look like this is possible in bun based on what I'm seeing in /internal/logger.go. Is there a recommended approach?

I've sent https://github.com/uptrace/bun/pull/133 but it looks like internal.Logger is unused right now. I've seen requests asking for ability to overwrite Warn and Deprecated, but it is not clear how API should look like.


enable Dependabot v2

https://github.blog/2020-06-01-keep-all-your-packages-up-to-date-with-dependabot/
dependabot.yml contains explicit configuration for Dependabot v2

@tomakehurst The current version of wiremock 2.27.1 has the following vulnerable dependencies
http2-common-9.4.29.v20200521.jar: CVE-2019-17638
http2-server-9.4.29.v20200521.jar: CVE-2019-17638
jetty-server-9.4.29.v20200521.jar: CVE-2019-17638

Enabling dependabot would pave a way for quicker upgrades of vulnerable dependencies.

Enabled in 940564e1f02f757c8ebfcf8db5ffff261aac9bc9


Both buttons have a pressed animation (EpicAttributeInput/EpicIncrementInput)

In the CharEdit view when the up or down button is pressed the other button has a visual effeck as if it is pressed as well.
Expected: Only the button which is actually pressed has the effect.

@visualjerk can you look into this ?

:tada: This issue has been resolved in version 1.6.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


WxWgpuWindow object has no attribute 'add_event_handler'

At least on MacOS, it seems that the WxWgpuWindow integration seems not to work. The example found here can not be run because of the following issue:
Traceback (most recent call last):
  File "/pyfx_image_viewer.py", line 11, in <module>
    canvas = WgpuCanvas()
  File "/venv/lib/python3.9/site-packages/wgpu/gui/wx.py", line 146, in __init__
    self._subwidget.add_event_handler(weakbind(self.handle_event), "*")
AttributeError: 'WxWgpuWindow' object has no attribute 'add_event_handler'

Versions:

pygfx 0.1.18
wgpu 0.15.0
wxpython 4.2.1
python 3.9.18

@Korijn I have created a PR to fix this in wgpu and another one which updates the wx example in pygfx. Would be great if you could have a look.

@Korijn Would it be possible to create a new wgpu release, since in 0.15.1 my changes of the merge request #486  are not present? This blocks using wgpu & pygfx together with wx.

#496

new release is available. Thanks for the heads-up!

Closed by #552


Icons Volume 19

Icons Volume 19
Epic to consolidate icon requests for the next icon release

Icons for this Epic:
#5089
#5451
#5348
#5517

Icons for #5089 #5451 #5348 #5517
digital_signature_line.svg.zip
timeline_line.svg.zip
update_line.svg.zip

Also...Icons for issue #5517
5517-icons.zip

not sure if discussion is correct, but please also consider a new icon for auction/hammer:
https://github.com/vmware/clarity/discussions/5831
@lil-kim


How to get Public IP from vagrant aws logs

Hi
I am wondering If can I get the public IP of the provisioned instance from Vagrant logs
Thanks,
Ahmed

Actually I used --debug option so it is solved
Thanks


Represent guild features as enum

Guild features are defined in the discord documentation as an enum (https://discord.com/developers/docs/resources/guild#guild-object-guild-features), but are represented in the library as Strings (https://github.com/twilight-rs/twilight/blob/trunk/model/src/guild/mod.rs#L72).
If we choose to represent them as an enum, we could always add the #[non_exhaustive] tag onto it as to prevent from future breaks when the enum expands.

The features are very unstable and while adding new variants is not breaking removing will always be.

Understandable


feat: create a FDW can read file data from S3

Feature request
Describe the feature
Create a FDW can read file data from S3, it will also be compatible with Supabase Storage.
Additional context

Read-only should be enough for the first stage, we can implement writing in the next release.
If we can support multiple sequence files read and common compressions like gzip, that will be great.

@burmecia we can close this issue as I can see the fdw as released, is it correct ?

@burmecia we can close this issue as I can see the fdw as released, is it correct ?

yes, the initial version of S3 FDW is ready now, it supports read only and common compressions. Although data write, Supabase Storage and multiple sequence files are not supported yet, we can put it in future enhancement. Let's close this first.


Data binding between multiple formio forms

About half year ago, two way data binding was supported and this was very convenient solution.
But now, only solution is to listen form "change" event and emit "refresh" event to other forms.
This is not convenient at all because we have to synchronize data between forms manually.
Angular2+ main idea was that developers should not bind data manually.
Are there any plans to improve it in angular-formio?

Actually i think i solved my problem easily.
Lets say we have 3 forms. form3 depends on form1 and form2. form2 dependes on form1.
HTML part is in this case:

A1

      <formio src="https://form1schema" [refresh]="refreshForm1" [submission]="submission" (change)="setSubmission($event,'form1')"></formio>

A2

      <formio src="https://form2schema" [refresh]="refreshForm2" [submission]="submission" (change)="setSubmission($event,'form2')"></formio>

A3

      <formio src="https://form3schema" [refresh]="refreshForm3" [submission]="submission" (change)="setSubmission($event,'form3')"></formio>

And  controller part:
  public refreshForm1 = new EventEmitter();
  public refreshForm2 = new EventEmitter();
  public refreshForm3 = new EventEmitter();

  public setSubmission(submission: any, formId: string): void {
    if (submission.changed && submission.changed.component.key) {
      this.submission.data[submission.changed.component.key] = submission.changed.value;
      // form2 depends on form1
      if (formId === 'form1') {
        this.refreshForm2.emit({
          submission: this.submission
        });
      }
      // form3 depends on form2
      if (formId === 'form2') {
        this.refreshForm3.emit({
          submission: this.submission
        });
      }
    }
  }

Solved for me.

Hello,
Thanks for the feedback!
The reason for the change was that two way data binding within the form caused many issues in the form, particularly around the principle that a component should only ever change its own value. Otherwise you run into race conditions where two components could attempt to change one component’s value at the same time.
The way we got around this was to allow components to trigger events and other components to respond to those events but changing their value. This is has a little more configuration but makes things more understandable and debuggable when trying to figure out "why did that field's value change?"
Please let me know if you need any further information.
Thanks,
William Gay
Form.io Developer Support


[BEAM-14470] Use lifecycle method names directly.

Use lifecycle method names directly, rather than excluding all exported methods on DoFns.
Breaks certain usecases with extreme number (10+) of emitter parameters, when the method doesn't have a generic representation. The static code generator works in those cases, but it isn't recommended.
The ideal work around would be to have a tagged API instead of the positional one, but that's significantly more work.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

As discussed offline, we decided to completely remove the method restriction entirely. While this may make things a little harder for novices, it will make things harder for novices with typos in the optional methods. These should be detectable by users via testing however.
Unfortunately there's no good way of validating this on our end short of doing some sort of typo/proximity algorithm, which is likely more trouble than better documentation and clearer examples, hence the initial strict approach.

@damccorm PTAL


Check Buffer at runtime to avoid browserify shims

If we check for Buffer at runtime, browserify won't pull in its core buffer implementation, saving ~40K or so.

Actually, this doesn't fix the issue, but there is a tiny module to handle specifically this case, will open a new PR.


Enable "Platform Specific" MR Config base profiles

XRTK - Mixed Reality Toolkit Feature Request
Is your feature request related to a problem? Please describe
As more platforms are coming on board requiring specific configuration templates, we need a way to allow developers to override the base configuration with another profile tree based on the running platform. (Not the build target as we are getting many different platforms running on Android and UWP)
How would you classify your suggestion

Usability / Configuration

Describe the solution you'd like
Currently the MR config only supports a single root configuration definition, which must be selected:

I propose we extend this like we do with extension services and visualisation to allow overrides for specific platforms, allowing variants of configuration to be used on demand.

Allowing for a default runtime profile and then overrides per supported platform as required (non-mandatory)
Describe alternatives you've considered
Manually configuring each time for every platform before a build, meh
Additional context
Question. Is it likely to have more than one Mr base scene to load?
With different config?
I ask because Mrtk now ship several default config profiles (which I dislike as it breaks the multi - platform idea) which you select on startup

DinomiteToday at 09:31
I'd say no. As I imagine XRTK to be it should be one base scene whatever I do. BUT XRTK should allow me to configure more than one config profile and then add all of them to the "root configuration" and have a "conditional logic" that will then decide which one to use on start.
Basically like the platform enum dropdowns
If Android -> Config Android
if UWP -> A different one

SimonDarksideJToday at 09:32
I was just thinking that too :blush:
So like the extension services config. Have a default and possibly an override for specific platforms or supported platforms.
I say platforms as a lot more devices are using the android platform and its becoming an issue distinguishing between them

DinomiteToday at 09:34
True
Yeah we'll have that issue more often in the future. I am also seeing some trouble with the camera / quality config in the camera profile.
Not sure if opaque and transparent displays is just it

SimonDarksideJToday at 09:35
Thinking we are going to need a platform identification module to load before the MR Config init

DinomiteToday at 09:35
I'd rather distinguish this using different profiles

SimonDarksideJToday at 09:35
Something lightweight

DinomiteToday at 09:36
Definitely. I might look into that after hand tracking because I need something lik that anyway for my game. I need to know on start exactly what I am running on.

SimonDarksideJToday at 09:36
Well. Here's your problem, we've been talking to different vendors and each are subtly different but all in android
So the use case I guess we need to distinguish is, when do you need different profiles?
Ar vs Immersive?
Or more detailed

DinomiteToday at 09:37
I think that's the number one case
Also when "non - XR"
classic 2D
I've heard XRTK is supposed to handle that as well

SimonDarksideJToday at 09:38
2D is possibly a lot harder :rofl:
To detect

DinomiteToday at 09:39
Yeah. I think we might just have to wait a little more with this and let people use it, gatheer more information and use cases

SimonDarksideJToday at 09:39
And what about 2D plus hands?
We can start with allowing different config based on the "target", e.g. HoloLens vs Quest
Then build up from there, having an addition list like with visualisation

See #294 as a different approach to how to solve this problem.

Complete in dev


[2.9] UI gets stuck on fatal error trying to create an AKS cluster

Setup

Rancher version: 2.9 dev build with PR https://github.com/rancher/rancher/pull/45246
Rancher UI Extensions: None
Browser type & version: Firefox latest

Describe the bug
I tried to create an AKS cluster. The screen is stuck at "Loading..."
The console has this error message:
Uncaught (in promise) TypeError: this.versionChoices.firstObject is undefined at https://releases.rancher.com/ui/latest2/assets/addon-tree-output/shared/components/cluster-driver/driver-eks/component.js line 72
This code:
const kubernetesVersion = this.versionChoices.firstObject.value;

To Reproduce

I created and helm-installed personal images based on rancher and rancher-agent from
cf79d4972 - (origin/release/v2.9, origin/HEAD, release/v2.9) Merge pull request #44784
with the diffs from PR 45246 -- without them I can't start the auth process.

Result
See above
Expected Result
See above

@ericpromislow It looks like that line only appears in the ember EKS driver, are you sure it was AKS?
AKS has been ported to the dashboard, so shouldn't be showing anything ember side.
EKS will be ported to the dashboard very soon (once https://github.com/rancher/dashboard/pull/10581 merges)
cc @mantis-toboggan-md

@ericpromislow AKS and EKS cluster provisioning have been migrated to the dashboard. I wasn't able to reproduce the issue in my own testing; could you confirm whether or not you're still seeing it?

Unable to reproduce as well. closing issue


Similar to toBuilder=true, add the ability to have a newBuilder instance method generated via @Builder(newBuilder=true) so buildable objects can be treated generically

Similar to toBuilder=true, add the ability to have a B newBuilder() instance method generated via @Builder(newBuilder=true) so buildable objects can be treated generically.
A great thing about @Builder is that by declaring an empty *Builder class one can have the generated builder implement interfaces:
    public static interface WithName {

        String getName();

        public static interface WithNameSetter<BUILDER extends WithName.WithNameSetter<? super BUILDER>> {

            BUILDER name(String name);
        }
    }

    @Value
    @Builder
    public static class MyClass implements WithName {

        final private String name;

        public static class MyClassBuilder implements WithName.WithNameSetter<MyClass.MyClassBuilder> {}
    }

    public static final <B extends WithName.WithNameSetter<B>> B populateName(final B builder, final String newName) {
        return builder.name(newName);
    }

    @Test
    public void testPopulateName() {

        final String expected = "Alice";

        final MyClass.MyClassBuilder resultBuilder = NewBuilderSimpleTest.populateName(MyClass.builder(), expected);

        final WithName result = resultBuilder.build();

        assertEquals(expected, result.getName());
    }

Suppose we want to be able to change a value in a generic fashion and instead of returning the builder we return the built object?
We simply add a WithBuild<T> interface to our builder and make sure the builder type (B) in populateName(B builder) implements WithBuild<T>:
    public interface WithBuild<T> {

        T build();
    }

    public static interface WithName {

        String getName();

        public static interface WithNameSetter<BUILDER extends WithName.WithNameSetter<? super BUILDER>> {

            BUILDER name(String name);
        }
    }

    @Value
    @Builder(toBuilder = true)
    public static class MyClass implements WithName {

        final private String name;

        public static class MyClassBuilder implements WithBuild<MyClass>,
                WithName.WithNameSetter<MyClass.MyClassBuilder> {}
    }

    public static final <B extends WithName.WithNameSetter<B> & WithBuild<T>, T> T populateName(final B builder,
            final String newName) {

        return builder.name(newName)
            .build();
    }

    @Test
    public void testPopulateName() {

        final String expected = "Alice";

        final MyClass result = populateName(MyClass.builder(), expected);

        assertEquals(expected, result.getName());
    }

Now suppose we want to create new objects with different values from existing objects.
We need to add toBuilder=true to our @Builder annotation and introduce the interface WithBuilder<T extends WithBuilder<T,B>,B extends WithBuild<T>>
that has a B toBuilder() method.
We also add a new field type as B toBuilder() on a single valued type is not very valuable.
It is important to note that aside from implementing the WithBuilder interface we do not have to modify the class:
    public interface WithBuild<T> {

        T build();
    }

    public interface WithBuilder<T extends WithBuilder<T, B>, B extends WithBuild<T>> {

        B toBuilder();
    }

    public static interface WithType {

        String getType();

        public static interface WithTypeSetter<B extends WithType.WithTypeSetter<? super B>> {

            B type(String name);
        }
    }

    public static interface WithName {

        String getName();

        public static interface WithNameSetter<B extends WithName.WithNameSetter<? super B>> {

            B name(String name);
        }
    }

    @Value
    @Builder(toBuilder = true)
    public static class MyClass implements WithName, WithType, WithBuilder<MyClass, MyClass.MyClassBuilder> {

        final private String name;

        final private String type;

        public static class MyClassBuilder implements WithBuild<MyClass>,
                WithName.WithNameSetter<MyClass.MyClassBuilder>, WithType.WithTypeSetter<MyClass.MyClassBuilder> {}
    }

    public static final <B extends WithName.WithNameSetter<B> & WithType.WithTypeSetter<B> & WithBuild<T>, T extends WithBuilder<T, B>> T changeName(
            T row, final String newName) {

        return row.toBuilder()
            .name(newName)
            .build();
    }

    @Test
    public void testChangeName() {

        final String initialName = "Alice";

        final String initialType = "A";

        MyClass initial = MyClass.builder()
            .name(initialName)
            .type(initialType)
            .build();

        final String expectedName = "Bob";

        final MyClass result = changeName(initial, expectedName);

        assertEquals(expectedName, result.getName());

        assertEquals(initialType, result.getType());
    }

Now suppose we want to change a subset of fields in some cases and change them all in other cases?
In that case we need both a B toBuilder() and B newBuilder() method on the WithBuilder interface.
However since B builder() is static and not an instance method it is not visible generically and thus
we are required to implement a B newBuilder() instance method on every object that implements WithBuilder.
Automatically adding a B newBuilder() instance method would eliminate the need for this boilerplate:
    public interface WithBuild<T> {

        T build();
    }

    public interface WithBuilder<T extends WithBuilder<T, B>, B extends WithBuild<T>> {

        B toBuilder();

        B newBuilder();
    }

    public static interface WithType {

        String getType();

        public static interface WithTypeSetter<B extends WithType.WithTypeSetter<? super B>> {

            B type(String name);
        }
    }

    public static interface WithName {

        String getName();

        public static interface WithNameSetter<B extends WithName.WithNameSetter<? super B>> {

            B name(String name);
        }
    }

    @Value
    @Builder(toBuilder = true)
    public static class MyClass implements WithName, WithType, WithBuilder<MyClass, MyClass.MyClassBuilder> {

        final private String name;

        final private String type;

        // This should be handled by @Builder(toBuilder = true, newBuilder = true)
        @Override
        public MyClassBuilder newBuilder() {

            return MyClass.builder();
        }

        public static class MyClassBuilder implements WithBuild<MyClass>,
                WithName.WithNameSetter<MyClass.MyClassBuilder>, WithType.WithTypeSetter<MyClass.MyClassBuilder> {}

    }

    public static final <B extends WithName.WithNameSetter<B> & WithType.WithTypeSetter<B> & WithBuild<T>, T extends WithBuilder<T, B> & WithName & WithType> T changeFieldsConditionally(
            T row, final String newName) {

        if ("C".equals(row.getType())) {

            return row.newBuilder()
                .name(row.getName()
                    .toUpperCase())
                .type("A")
                .build();
        }

        return row.toBuilder()
            .name(newName)
            .build();
    }

    @Test
    public void testChangeFieldsConditionally() {

        final String initialAliceName = "Alice";

        final String initialAliceType = "C";

        MyClass initialAlice = MyClass.builder()
            .name(initialAliceName)
            .type(initialAliceType)
            .build();

        final String expectedAliceName = "ALICE";

        final String expectedAliceType = "A";

        final String expectedName = "Bruce";

        final MyClass aliceResult = changeFieldsConditionally(initialAlice, expectedName);
        assertEquals(expectedAliceName, aliceResult.getName());
        assertEquals(expectedAliceType, aliceResult.getType());

        final String initialBobName = "Bob";

        final String initialBobType = "B";
        final String expectedBobType = initialBobType;

        MyClass initialBob = MyClass.builder()
            .name(initialBobName)
            .type(initialBobType)
            .build();

        final MyClass bobResult = changeFieldsConditionally(initialBob, expectedName);

        assertEquals(expectedName, bobResult.getName());
        assertEquals(expectedBobType, bobResult.getType());
    }

This is exotic. Which means lombok won't do it; lombok does boilerplate, and boilerplate is defined as non-exotic.
We always have to weigh exoticness against difficulty of handwriting it. Fortunately, here the call is easy: Adding a 'newBuilder' instance method is easy to do and doesn't require you to modify it when you add or remove fields (you'd have to modify it when you add or remove generics params but that happens far less often).


Intermediate collaborative tx before funding fidelity bond

See discussion in the community call #18.
We might want to consider doing a collaborative tx to an address in the same mixdepth before funding a fidelity bond to de-link the UTXOs involved from their history before they go into the fidelity bond.

not planned to be implemented, enough best practices are communicated


Add --config_overwrite option to test.py

The test.py script doesn't have an argument parsing like calibrate.py, which means adjusting the config must be done in code. This presents a couple of problems:

During development, it's easy to forget to switch config values back to sensible defaults (see #22).
The 1098obc has a distance of 7.5cm between the stereo cameras, which means currently they'd have to modify the test.py code to set the correct distance.
If you want to verify the stereo calibration, you have to manually modify the code to adjust the streams.

I suggest adding a --config_overwrite option to test.py that behaves the same as calibrate.py for consistency.

Closed by #24.


Open file in a new tab when clicking twice

Hi,
any way to open a file or folder in a new tab when clicking the left mouse button twice?
I have tried this: let g:NERDTreeMapOpenInTabSilent = '<2-LeftMouse>' as said here:
http://stackoverflow.com/questions/10670111/remap-nerdtree-double-click-to-t
Im on NERD tree 4.2.0 and vim 7.4.

FYI:
Although it's not good code, I forcefully change the click behavior by putting this in .vimrc.
autocmd WinEnter * if &ft == 'nerdtree' | call s:MyNERDTreeSetting() | endif
fun! s:MyNERDTreeSetting()
  fun! s:DoubleClickBehavior()
    if match(getline('.'), '▸') == -1 && match(getline('.'), '▾') == -1
      map <buffer> <2-LeftMouse> t
    else
      map <buffer> <2-LeftMouse> o
    endif
  endfun
  autocmd CursorMoved * call s:DoubleClickBehavior()
endfun

@peteonrails This might be useful to you if you're still rockin' the vim?

You need to override the mouse mapping a different way.  OpenInTab(node)
        call a:node.activate({'reuse': 'all', 'where': 't'})
    endfunction

You need the autocmd VimEnter * because NERDTreeAddKeyMap hasn't been defined at the time vimrc is being sourced.


Add --content-base-url option to warg-server.

This PR adds a --content-base-url to warg-server that allows specifying what the expected base URL to use when serving content.
By default, the base URL is derived from the listen address for the server.
For servers that aren't bound to the address that will also be serving the content, the --content-base-url option can be used to control the URLs the server returns for fetching content.

Just to confirm the behavior, does the base URL no longer have a default value? Looks good to me either way.

Just to confirm the behavior, does the base URL no longer have a default value? Looks good to me either way. From your comment description, there's the same default as before. But couldn't spot it from a quick read of the code

Never mind, I spotted it. Looks good. Hard to read code on your phone :)


Bug in the Vtctld app2 UI

In the app2 UI, if we click on a folder under Topology Browser tab and it doesn't consist of a subfolder, it just keep on appending in the URL as well as header. As a result if we try to click on another tab like Global it would not work because it has moved to a different hierarchy.
Please check the screenshot for more details.

I think you're getting errors, and they're not reported / handled properly by the UI. I can't seem to reproduce the issue with my local test.
If you use Chrome, can you inspect the page, go to network traffic, and copy what the client - server interactions are? Thanks!

Api calls while using App2 UI:
Every time i click on the link the following requests are created
Click1 :
Request URL:http://<IP_ADDRESS>:15000/api/topodata/test
Referer:http://<IP_ADDRESS>:15000/app2/topo
Click2
Request URL:http://<IP_ADDRESS>:15000/api/topodata/test/test
Referer:http://<IP_ADDRESS>:15000/app2/topo?path=%2Ftest
API Calls while using App UI:
Request URL 1:http://<IP_ADDRESS>:15000/api/topodata/test
Referer 1:http://<IP_ADDRESS>:15000/app/
Request URL 2http://<IP_ADDRESS>:15000/app2/
Referer 2:http://<IP_ADDRESS>:15000/app/
I am seeing the difference here that when we use App UI, for one click 2 requests are being sent as mentioned above while for App2 UI  only 1 rest call is made.
Note the behaviour is seen only when while clicking the response is pending state. The App UI shows an image loading so we don't have the option to click anything but in App2 UI we can still click on test again which appends /test to the url


 (NVIDIA Jetson Nano 2Gb)
Thank you!!

Solved:
chmod a+rwx build_opencv.sh


scalable function issue

Hi' I used this module a few days, then i found out that when i try to scalable the 2 instance the 3 instance or more, it will recreate all instance resource, the old instance data will be lose, Did you has
some idea about this thing.

hi @hehehehe123 , thx for support our project, may I ask the complete process of this operation?

Thanks for reply, refer the main.tf file.
`` module "tf-instances" {
source = "alibaba/ecs-instance/alicloud"

vswitch_id = "vsw-wqrw3c423"
group_ids = ["sg-f2c2fwqvs"]
private_ips = ["<IP_ADDRESS>", "<IP_ADDRESS>"]

disk_category = "cloud_ssd"
disk_name = "my_module_disk"
disk_size = "50"
number_of_disks = 2

instance_name = "my_module_instances"
host_name = "my-host"
internet_charge_type = "PayByTraffic"
number_of_instances = "2"

key_name = "for-ecs-instance-module"

}
``
There has a variable:     number_of_instances = "2"
When i change this value from 2 to 3 or more, it will recreate all instances. I want add 1 not recreate. How can I do that.

Hi @hehehehe123 , you can't modify the field number_of_instances only, it's should be modified with the field private_ips, just add 1 ip is ok.
btw, I've tried to create the instances like your way, and got

I just modified 2 fields number_of_instances and private_ips, could you try again?
If the problem still occurs, please show the terraform plan log to us before your every terraform apply.


SRS does not remove finished/dead streams

注意：咨询和讨论请提交到SRS星球(Please ask question at) http://bbs.ossrs.net
cannot read/wrine chinese.

描述(Description)

SRS版本(Version): v4.0.177
SRS的配置如下(Config):

listen              1935;
max_connections     1024;   #1000;
srs_log_tank        console;
daemon              off;
query_latest_version off;
http_api {
    enabled         on;
    listen          1985;
}
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}
stats {
    network         0;
    disk            sda sdb xvda xvdb;
}
rtc_server {
    enabled         on;
    # Listen at udp://8000
    listen          8000;
    #
    # The $CANDIDATE means fetch from env, if not configed, use * as default.
    #
    # The * means retrieving server IP automatically, from all network interfaces,
    # @see https://github.com/ossrs/srs/issues/307#issuecomment-599028124
    candidate       $CANDIDATE;
}
vhost __defaultVhost__ {
    hls {
        enabled         on;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
    rtc {
        enabled     on;
        bframe      discard;
    }
    http_hooks {
        enabled         on;
        on_connect      https://******************;
        on_close        https://******************;
        on_publish      https://******************;
        on_unpublish    https://******************;
        on_play         https://******************;
        on_stop         https://******************;
    }
}

重现(Replay)

start stream by ffmpeg like ffmpeg -re -i lg.mp4 -c copy -f flv -y rtmp://<ip or domain name here>/live/121
stop it
repeat it multiple times
Open srs web console and there are multiple streams with Status=N, 0 clients, 0kbps.

期望行为(Expect)
I was expecting to see no streams after stream stopped (or srs does not receive data for some configurable time)
Also empty streams can be fetched via api call curl http://<IP_ADDRESS>:1985/api/v1/streams/ | jq
If a streamer unexpectedly goew down then how stream should be removed ? Also packet lost or other kind of disconnects - how srs should handle it ?

Dup to #413
I will delete this issue.

你的问题已经在FAQ中存在，该Issue会被删除，请在FAQ中搜索：#2716


mention that cache-plugin is not required in httplug bundle

documentation for https://github.com/php-http/HttplugBundle/pull/311

Should we merge this right now and wait for the next release ?

i merged it. people should already be doing it to be safe when upgrading.


td-data-table missing (rowClick) at "Code" tab

There is not call to action when a row is clicked at the documentation.
Description
Just completed the documentation. Included at the td-data-table element the call to action placed at the Code Tab.

Thanks for that, if we are gonna add the output then we need to add the showAlert() method in the TS demo also.

added the showAlert() method at TS documentation


Support encrypting content

Added

Introduces a new options API to rich text attributes, which allows us to set some of them as encrypted

closes #34

This PR allows passing the encrypted options to any rich text fields to ensure they are encrypted at rest. It should allow encryption on a per-field basis. Since we may have multiple fields on the same model (record), this will allow us to encrypt only the ones we want to.
Example usage:
use Illuminate\Database\Eloquent\Model;
use Tonysm\RichTextLaravel\Models\Traits\HasRichText;

class Message extends Model
{
    use HasRichText;

    protected $richTextAttributes = [
        'content' => ['encrypted' => true],
        'notes', // Not encrypted...
    ];
}

Merged this. But if anyone has anything against it or any other API suggestion, feel free to comment.


useQuery is inconsistently updating caching / re-render

Describe the bug
We have been using react-query for a little while and really enjoy using the library. In the past few days, we've noticed a first scenario where useQuery was successfully fetching data but for some reason not updating the cache / re-rendering our component. We use the library extensively across our codebase and this was the first time we noticed inconsistent re-rendering. We didn't manage to pin point the issue, but luckily, we noticed a second scenario where this is occurring - within a unit test.
Your minimal, reproducible example
Code available below.
Steps to reproduce
First Scenario - Unit test
When running the code below, this is the output we are getting in the console:
console.log("output data", hasPermission, isLoading);
// output data, undefined, true
console.log("request");
// request
console.log("response", response);
// response {...}

The API call succeeds, returns the expected response but doesn't propagate the value back to PermissionWrapper
The React component
export const PermissionWrapper: React.FC<PermissionWrapperProps> = ({  component, permission }) => {
  const { data: hasPermission, isLoading } = useHasPermission(permission);
  console.log("output data", hasPermission, isLoading);

  const Component = () => component({ hasPermission, isLoading });

  return <Component />;
};

The hook using useQuery
export const useHasPermission = (queryParams: string) => {
  const { get } = useRbacApi();

  return useQuery<boolean, Error, boolean, Array<any>>(["permissions", queryParams], async () => {
    console.log("request");
    const response = await get<PermissionsResponse>("/permissions", queryParams);
    console.log("response", response);
    return response.permissions.length !== 0;
  });
};

The unit test
import { APIProvider } from "api-client";
import { fireEvent, render, screen, waitFor } from "@testing-library/react";
import { BrowserRouter as Router } from "react-router-dom";
import { NewReportButton } from "./NewReportButton";

const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      refetchOnWindowFocus: false,
    },
  },
});

const Wrapper = ({ children }: React.PropsWithChildren) => (
  <Router>
    <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
  </Router>
);

describe("NewReportButton", () => {
  it("should toggle modal", async () => {
    render(
      <Wrapper>
        <PermissionWrapper
          permission={Permissions.ReportBuilder.TemplateReport.Create}
          component={({ hasPermission, isLoading }) => (
            <ButtonWithTooltip
              data-testid="report.create"
              color={"primary"}
              variant={"contained"}
              onClick={toggleModal}
              disabled={!hasPermission}
              loading={isLoading}
              tooltip={!hasPermission ? "You cannot create a new report." : undefined}
            >
              Create New Report
            </ButtonWithTooltip>
          )}
        ></PermissionWrapper>
      </Wrapper>
    );

    await waitFor(() => expect(screen.getByTestId("report.create")).not.toBeDisabled());

    fireEvent.click(screen.getByText("Create New Report"));

    expect(await screen.getByText("Choose a template")).toBeInTheDocument();
  });
});

Second Scenario - Cache not updated on invalidateQuery
In our second scenario, we were using the following code to create a report & invalidate the list of reports so that it would be re-fetched when going back to our list of reports.
Code
export const useCreateReport = () => {
  const queryClient = useQueryClient();
  const { create } = useReportLibraryApi();

  return useMutation(
    async ({
      report: reportMetadata,
      configuration,
    }: {
      report: Partial<Report>;
      configuration: Record<string, unknown>;
    }) => {
      const report = await create<Report>(`/reports/`, reportMetadata);
      return await create<Report>(`/reports/${report.id}/run`, configuration);
    },
    {
      onSuccess: report => {
        queryClient.setQueryData(["reports", report.id], () => report);
-        queryClient.invalidateQueries(["reports"]);
+        queryClient.invalidateQueries({ queryKey: ["reports"], exact: true, refetchType: "all" });
      },
    }
  );
};

We noticed that queryClient.invalidateQueries(["reports"]); was forcing to re-fetch our reports. The API call was executed, the updated data fetched but in one scenario (which we couldn't figure out how to isolate), the fetched data wasn't added to the cache / re-rendering. We tried many things and the only thing that ended up working consistently was to use queryClient.invalidateQueries({ queryKey: ["reports"], exact: true, refetchType: "all" }); instead.
Expected behavior
The PermissionWrapper should rerender once the response is returned / cache updated in our state. I tried to do the exact same thing without using react-query / useQuery and was able to successfully rerender my component & get the test to pass:
export const useHasPermission = (queryParams: string) => {
  const { get } = useRbacApi();

  const [data, setData] = useState<boolean>();

  useEffect(() => {
    (async () => {
      console.log("request");
      const response = await get<PermissionsResponse>("/permissions", queryParams);
      console.log("response", response);
      setData(response.permissions.length !== 0);
    })();
  }, []);

  return { data };
};

How often does this bug happen?
Sometimes
Screenshots or Videos
No response
Platform

macOS 13.0

react-query version
4.16.1
TypeScript version
4.9.3
Additional context
Hopefully there is something very simple that we are missing that could be figured out from looking at the code snippets. If not, I'll try to use CodeSandbox - I wasn't successful at setting all the pre-requisite to get jest + TypeScript tests running within the environment.
Thanks

yes please show a codesandbox reproduction.
also, we have to distinguish the terminology between cache not updating and component not re-rendering. You can inspect the devtools to see what's in the cache. If the data is not in the cache, that would be quite a different issue from "the component not re-rendering".
The only difference in the diff that you've shown:
- queryClient.invalidateQueries(["reports"]);
+ queryClient.invalidateQueries({ queryKey: ["reports"], exact: true, refetchType: "all" });

is the refetchType. exact actually matches fewer things than the default, fuzzy matching. refetchType: all also makes sure that queries that are inactive are refetched. Inactive queries are queries that have no active subscription via useQuery. The devtools also show this.

one thing that I am seeing is that this is a really weird anti-pattern in react itself:
const Component = () => component({ hasPermission, isLoading });

return <Component />;

because it will create a new, anonymous component in every render cycle, which then closures over things. That means every invocation of a render equals a mount and a re-mount, because react doesn't now that the two components are the same. For all react knows, you could be rendering a span in one cycle and then a div in the next. Components need to be referentially stable.
If you are looking for the render-props pattern, what you'd want is actually:
return component({ hasPermission, isLoading })

but then you cannot do component={MyComponent} - it has to be a function. So you need to decide if you want to pass a component reference or a render function.
I'm not sure if this is related to your react-query problem, but it very well could be.

@TkDodo We managed to isolate the error in a sandbox: https://codesandbox.io/s/jest-testing-react-forked-6tzgl8?file=/src/components/Button.test.tsx
We have 2 tests:

should work with useQuery
should work without useQuery

In the current state, the one with React-Query is failing. It seems to be related to our usage of queryClient.clear(); when an accountId is changed, or on first render, that kills the request while it's being executed and never returns the result.
However, by waiting for the clear to be executed before rendering the children using a loading state, it seems to work fine for both scenarios:
const Wrapper = ({ children, accountId }: WrapperProps) => {
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    setLoading(true);
    queryClient.clear();
    setLoading(false);
  }, [accountId]);

  return (
    <Router>
      <ApiContext.Provider value={{ accountId }}>
        <QueryClientProvider client={queryClient}>
          {!loading && children}
        </QueryClientProvider>
      </ApiContext.Provider>
    </Router>
  );
};

Is this expected behaviour? If so, what would you recommend us to use when swapping accounts & ensuring that the cache has been cleared / app remains functional?
Thanks

this seems like a race condition problem: You're clearing the query cache while it is fetching. The useEffect runs after rendering. At that time, the QueryClientProvider is already rendered with new data. clear also doesn't inform observers about the fact that it has cleared the cache.
it works if you're doing queryClient.resetQueries instead, because that does inform subscribers about the clearing and potentially re-fetches:

https://codesandbox.io/s/jest-testing-react-forked-44wnhb?file=/src/components/Button.test.tsx

it doesn't solve the problem that you are clearing after rendering. clear is not a side-effect of rendering - it's likely a side-effect of a user interaction (logout button clicked). So moving the clear into the event handler seems like the better move.

@TkDodo Makes sense - will use resetQueries() in the future and ensure it is in the handler to avoid unexpected race condition.
Thank you very much for the time reviewing this issue as well as your contribution to React-Query - our team really love using the library and it's been very helpful for our project.

Oof was facing the same issue, thanks a lot @TkDodo