Splash screen

Closes #755

Created SplashView lib/modules/splash/view/splash_view.dart and changed _initApp() from WalletAppState to _initPage() SplashViewState.
Created  router/app_router.dart file and refactored onGenerateRoute.

It is not last commit.

Ok, I think I have narrowed down the failing integration tests:
Only the failing ones have the following lines: https://github.com/encointer/encointer-wallet-flutter/actions/runs/3046722266/jobs/4909883689
E/flutter ( 3213): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:294:7)
E/flutter ( 3213): <asynchronous suspension>
E/flutter ( 3213): #1      InAppWebViewController.evaluateJavascript (package:flutter_inappwebview/src/in_app_webview/in_app_webview_controller.dart:1420:16)
E/flutter ( 3213): <asynchronous suspension>
E/flutter ( 3213):
E/flutter ( 3213): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method evaluateJavascript on channel com.pichillilorenzo/flutter_inappwebview_1244136176218113881918137161177228145109182179)
E/flutter ( 3213): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:294:7)
E/flutter ( 3213): <asynchronous suspension>
E/flutter ( 3213): #1      InAppWebViewController.evaluateJavascript (package:flutter_inappwebview/src/in_app_webview/in_app_webview_controller.dart:1420:16)
E/flutter ( 3213): <asynchronous suspension>

Which might be due to a race condition while initializing the webApi. This leads to a timeout in some future, from which the error is not properly catched:
E/flutter ( 3213): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s) (onError): The error handler of Future.catchError must return a value of the future's type
E/flutter ( 3213): #0      _FutureListener.handleError (dart:async/future_impl.dart:181:7)
E/flutter ( 3213): #1      Future._propagateToListeners.handleError (dart:async/future_impl.dart:778:47)
E/flutter ( 3213): #2      Future._propagateToListeners (dart:async/future_impl.dart:799:13)
E/flutter ( 3213): #3      Future._completeError (dart:async/future_impl.dart:574:5)
E/flutter ( 3213): #4      Future.timeout.<anonymous closure> (dart:async/future_impl.dart:853:17)
E/flutter ( 3213): #5      _rootRun (dart:async/zone.dart:1383:47)
E/flutter ( 3213): #6      _ZoneDelegate.run (dart:async/zone.dart:944:19)
E/flutter ( 3213): #7      AsyncAction._run (package:mobx/src/api/async/async_action.dart:43:29)
E/flutter ( 3213): #8      _ZoneDelegate.run (dart:async/zone.dart:944:19)
E/flutter ( 3213): #9      AsyncAction._run (package:mobx/src/api/async/async_action.dart:43:29)
E/flutter ( 3213): #10     _CustomZone.run (dart:async/zone.dart:1293:19)
E/flutter ( 3213): #11     _CustomZone.runGuarded (dart:async/zone.dart:1201:7)
E/flutter ( 3213): #12     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1241:23)
E/flutter ( 3213): #13     _rootRun (dart:async/zone.dart:1391:13)
E/flutter ( 3213): #14     _ZoneDelegate.run (dart:async/zone.dart:944:19)
E/flutter ( 3213): #15     AsyncAction._run (package:mobx/src/api/async/async_action.dart:43:29)
E/flutter ( 3213): #16     _ZoneDelegate.run (dart:async/zone.dart:944:19)
E/flutter ( 3213): #17     AsyncAction._run (package:mobx/src/api/async/async_action.dart:43:29)
E/flutter ( 3213): #18     _CustomZone.run (dart:async/zone.dart:1293:19)
E/flutter ( 3213): #19     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1225:23)
E/flutter ( 3213): #20     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
E/flutter ( 3213): #21     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter ( 3213): #22     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter ( 3213): #23     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
E/flutter ( 3213):

And here we have the very suspicious lint-ignore: https://github.com/encointer/encointer-wallet-flutter/blob/76677651556c8b56d7de50dbec523dfa0dee5689/lib/store/encointer/encointer.dart#L335
The combination of these errors could be the cause of the failing integration tests. It could be that this only occurs on slow machines, which is why we can't observe them, when we run the tests locally.

I have attempted to fix the integration tests, let's wait and see. :)
Howver, even if they are fixed now, it is only because I fixed the type error in the catchError of the future. It would still good to eliminate the race condition with the platform channel. It would be great if you can take a look at that again.

I have not checked in detail, but I am quite certain that you did not fix all: Navigator.popUntil(context, ModalRoute.withName('/'))
Please replace them with a fix like you did in the change password dialogue:                       Navigator.of(context).popUntil((route) => route.isFirst);


[policy] run __gc metamethod when policies are garbage collected

This would allow doing cleanup when policies are reloaded by changed configuration (like shutting down timers).

@davidor sorry for rebasing your commits, but I think it is better when the relevant changes (code, tests) are in one commit and I needed to make a change anyway to cover the self.table issue.

@mikz  No worries, I agree with that approach.


Create a Policy for Ec2 instance which doesn't have name

hi, I have written policy for ec2 instance which doesn't have a name and while dry run run mode, it's working fine, but I am confused that how we have to handle the auto scaling groups.
Code for Ec2

name: ec2-non-name-compliance
resource: ec2
description: |
Schedule a resource that does not meet name compliance policies.
mode:
type: periodic
schedule: "rate(1 Day)"
filters:

"tag:Name": absent
actions:
type: mark-for-op
tag: custodian_status
op: terminate
days: 4

So what i have understood from your explanation is
policies:

name: ec2-non1-name-compliance
resource: ec2
description: |
Schedule a resource that does not meet name compliance policies.
mode:
type: periodic
schedule: "rate(1 Day)"
filters:

"tag:Name": absent
"tag:aws:autoscaling:groupName": Present
actions:
type: mark-for-op
tag: custodian_status
op: terminate
days: 4

name: asg-non-name-compliance
resource: ec2
description: |
Schedule a resource that does not meet name compliance policies.
mode:
type: periodic
schedule: "rate(1 Day)"
filters:

"tag:Name": absent
"tag:aws:autoscaling:groupName": Present
actions:
type: mark-for-op
tag: custodian_status
op: terminate
days: 4

and one more thing that if the Ec2 instance is deleted but it is attached to asg , than again that Ec2 instance will again get start, so how we have to deal in that case. ?

@agaur123 you'll need a separate asg policy to handle that, you can suspend processes on the asg level to prevent it from creating new instances see:
$ custodian schema asg.actions.suspend

@thisisshi the explanation for the command says that your ASG should have Suspend Tag, but what if we don't have that while creating the ASG, than we have to handle that ?
`
:example:
.. code-block:: yaml
    policies:
      - name: asg-suspend-processes
        resource: asg
        filters:
          - "tag:SuspendTag": present
        actions:
          - type: suspend`

@agaur123 no, that's just an arbitrary filter
your policy would look something like:
policies:
  - name: suspend-asg-without-name
    resource: asg
    filters:
      - "tag:Name": absent
    actions:
      - type: suspend

@thisisshi See let me Tell you the whole scenario, I want to make policy to delete the Ec2 instance which doesn't have the name(This can be easy), then if some instance is not having the name and it's created through ASG, then in that case, we have to delete the ASG, so that automatically the Instance will delete. The thing is we don't have to make a policy for ASG without the name, we have to make policy for instance which is made through ASG and then suspend that ASG.

I understand, what I'm saying is you need to have a policy to both terminate ec2s that aren't connected to an asg and a policy to suspend the asg autoscaling process and then terminate the no-name ec2's.
The suspend action will prevent the asg from creating new ec2 instances and it should only have to check if the Name tag is absent as tags are propagated from the asg to the ec2 instance. Once the asgs with no name are suspended then you can safely terminate the rest of the no-name ec2 instances.

SO from your Explanation i have written the policy
`policies:

name: ec2-non-asg-compliance
resource: ec2
description: |
Resource that does not have name tag
mode:
type: periodic
schedule: "rate(1 Day)"
filters:

"tag:aws:autoscaling:groupName": absent
actions:
type: mark-for-op
tag: custodian_status
op: terminate
days: 4

name: suspend-asg-without-name
resource: asg
description: |
Resource that does not have name tag
filters:
- "tag:Name": absent
actions:
- type: suspend

name: ec2-non-name-compliance
resource: ec2
description: |
Resource that does not have name tag
mode:
type: periodic
schedule: "rate(1 Day)"
filters:

"tag:Name": absent
actions:
type: mark-for-op
tag: custodian_status
op: terminate
days: 4
`

tell me if i need to make any change in this

and one thing this way we are terminating the name Ec2 Instances, and we dont want to do that. Just want for No-name Ec2 Instances.


Matrix form - observable argument to average_data

What is the expected behavior?
Being able to enter the observable argument in average_data in _results.py as matrix instead of dict. For simplification of using the function with > 2 qubits.
Further, it would be useful if the function could be modified such that it allows for the 'averaging' of a subset of qubits --> partial trace.

We are going to remove this feature from results and provide a function to do this.

@Zoufalc we just moved the average_data to is own function in #1351 I think it could be good to add the matrix here.

@Zoufalc we just moved the average_data to is own function in #1351 I think it could be good to add the matrix here.

Thanks!


Is it bypass sprite limits?

Do your plugin bypass sprite limits? In my case maybe not. How can I fix it?

Sprite limit must be exceeded by the client. It cannot be exceeded by the server.

Thanks


plugin install error

dear author，
when i install this plugin to elasticsearch , i use comand on linux:
/bin/elasticsearch-plugin file:///data//rrjia/project/elasticsearch-binary-vector-scoring-7.5.0.zip
but i meet error:
ERROR: Unknown command [file:///data//rrjia/project/elasticsearch-binary-vector-scoring-7.5.0.zip]
So I came to ask for your help.
elasticsearch 7.5.0
thanks.

i forget "install”


Fix issue with sort not taking into account on re-render

Fixing issue #305

Coverage decreased (-0.5%) to 77.704% when pulling ee01e5e82e0c3b2bb04ebd4bfe26c195d77d9dc4 on joaoaguiam:master into 68e523e1f1c61170ce6f58ffd8a168a752d181e5 on gregnb:master.

Great thanks for fixing this isssue!


ZEPPELIN-3202. Added missing test dependencies in the scio module

What is this PR for?
Added missing test dependencies for the scio module to prevent test failures when running mvn clean install.
What type of PR is it?
Bug Fix
Todos

[ ] - Task

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-3202

How should this be tested?

CI pass

Screenshots (if appropriate)
Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

I kicked off another Travis build and it seems that these failing tests are flakey.

I just reran the failing builds, as suggested by @zjffdu in ZEPPELIN-3182, and all are green now.

merging if no more comment


Can't change/jump to page

I'm using this library with React to render the whole pdf document and also have the function to go to particular page. The strange thing is that I can't jump to page only when I'm rendering my whole document with new pdfjsViewer.PDFViewer , but when I'm using new pdfjsViewer.PDFSinglePageViewer for rendering just one page at the time I can normally jump to page and implement all other functions.
This is some of my code:
import * as pdfWorker from 'pdfjs-dist/build/pdf.worker'
import PdfJsLib from 'pdfjs-dist';
import 'pdfjs-dist/web/pdf_viewer.css';
import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';

...

componentDidMount() {
        let container = this.viewerContainer.current;
        let viewer = this.viewer.current;

        PdfJsLib.GlobalWorkerOptions.workerSrc = pdfWorker;
        PdfJsLib.getDocument(this.props.file).then((pdf) => {

            this.setState({numPages: pdf.numPages});

            this.pdfLinkService = new pdfjsViewer.PDFLinkService();

            this.pdfFindController = new pdfjsViewer.PDFFindController({
                linkService: this.pdfLinkService,
            });

            this.pdfViewer = new pdfjsViewer.PDFViewer({
                 container,
                 viewer,
                 linkService: this.pdfLinkService,
                 findController: this.pdfFindController
            });
            this.pdfLinkService.setViewer(this.pdfViewer);

            this.pdfViewer.setDocument(pdf);
            this.pdfLinkService.setDocument(pdf, null);

            this.pdfViewer.onePageRendered.then(() => {
                 pdf.getOutline().then((outline) => {
                     this.outline = outline || null;

                     if (!outline) {
                        return;
                     }
                     this.setState({bookmarkItems: outline});
            });
       });
   });
}

...

onNextPageClick = () => {
    if(this.state.numPages > this.state.pageNumber) {
        this.setState({pageNumber: this.state.pageNumber + 1});
        this.setState({pageNumberInput: this.state.pageNumber + 1});

        this.pdfViewer.currentPageNumber++;
    }
}
onPreviousPageClick = () => {
    if(this.state.pageNumber > 1) {
        this.setState({pageNumber: this.state.pageNumber - 1});
        this.setState({pageNumberInput: this.state.pageNumber - 1});

        this.pdfViewer.currentPageNumber--;
    }
}

...

render() {
    return(

        ...

            <button className="toolbarButton pageUp" title="Previous Page" id="previous" tabIndex="13" data-l10n-id="previous" onClick={this.onPreviousPageClick}>
            Previous
            </button>

            <button className="toolbarButton pageDown" title="Next Page" id="next" tabIndex="14" data-l10n-id="next" onClick={this.onNextPageClick}>
             Next
            </button>

         ...

    )
}

Is there anything that I'm doing wrong here or am I missing something?
Configuration:

Web browser and its version: Chrome 71.0.3578.98
Operating system and its version: Windows 10
PDF.js version: 2.0.489

Thank you for responding. Sorry if I wasn't clear enough, when I wrote "jumping to a page" I meant changing the page or to be more precise scrolling to the page. So when I'm using PDFSinglePageViewer I can change page normally but when I'm using PDFViewer nothing happens when setting currentPageNumber (all the other code is identical with the one using PDFSinglePageViewer). Is there anything special that needs to be implemented for changing the page using PDFViewer in comparison with PDFSinglePageViewer?

Not that I'm aware of. Try the examples from https://github.com/mozilla/pdf.js/tree/master/examples without React to see if perhaps the combination with React is breaking something.

I found where my problem was. I wasn't aware that div element with id viewerContainer has to have position: absolute so that scrollIntoView actually do something. The same goes for the div element mainContainer. Of course it make sense now but I was looking at the wrong places all the time thinking it has to do something with react or services like PDFLinkService. @timvandermeij Thank you for the help.

// Check for pages to
const gotopage = () => {
    const x=document.getElementById('page-to').value.trim();
      if (x >= pdfDoc.numPages) {
    return;
  }
    pageNum=x;
    queueRenderPage(parseInt(pageNum));
};

USE : parseInt(pass the page number);
Its working...

I found where my problem was. I wasn't aware that div element with id viewerContainer has to have position: absolute so that scrollIntoView actually do something. The same goes for the div element mainContainer. Of course it make sense now but I was looking at the wrong places all the time thinking it has to do something with react or services like PDFLinkService. @timvandermeij Thank you for the help.

I am having the same problem but I am not sure how you fixed it. I tried your fix and added the absolute positioning but to no avail. Any other tips you have after debugging?


fix: read http port from config file

Closes #122

Hi!
that's not working yet :-) without any change, the server spins up with a random port.
from my analysis: With your fix you use
port: config.HTTP_PORT, in line 15, but the Variable configis in this case is not the .env, but the config.yaml. Same is true for other variables in the original .env To verify I added
HTTP_PORT: 3000
MQTT_BROKER: mosquitto
MQTT_PORT: 1883

to config.yaml and server came up with the configured port and connects to mosquito (BTW: Intended or not: I prefer the way you're doing now by having all variables in the config.yaml much more than spreading them in 2 files)
I'd suggest you leave it like that and update README.md
Good job, thanks for fixing!

Actually I want to keep the feature to set the parameters via process.env to keep secrets out of the config, and to be compatible with the previous version. I assume I was just blind when I created the PR...🤦
But I also see your point that it could be cool to use the single config in some environments. Therefore, I changed the PR now to support both.


[5.4] Add assertDatabaseHasOne and assertDatabaseHasMany

When asserting certain results were found in the database, I think it is convenient to have the possibility to test that exactly 1 results or N in particular were found:
`$this->assertDatabaseHasOne('posts', [ /***/ ]);
`$this->assertDatabaseHasMany('images', 3, [ /***/ ]);

No plans to add this. It feels really easy to count them already however you want.


chore: Update color scheme when deleted or changed

SUMMARY
This PR updates the color scheme for Dashboards and Charts when a color scheme in EXTRA_CATEGORICAL_COLOR_SCHEMES or EXTRA_SEQUENTIAL_COLOR_SCHEMES is deleted or changed.
KNOWN LIMITATIONS
At the moment, it isn't possible to regenerate the shared label colors for all charts when the Dashboard is using tabs. This is a problem affecting master too that will be investigated separetely.
TEST COVERAGE
More test cases covering the color schemes' behaviours will be published In a separate PR
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Regression test finished and did not see issues. LGTM!

🏷 preset:2022.29


[clang-format] Change .clang-format file and apply it

A script file "./script/format_code.sh" is added for applying formatting rules via script also.

Sorry, wrong repo.


Better sediment integration

Complete refactor of how sediment is coupled and integrated. Here I have focused on minimusing the amount of Oceananigans functions I'm having to replace, as it is I think the minimum possible is to only overload the ab2_step! and equivilant functions.
Not yet working but thought I should post progress anyway.

Timestepping now occures, even if it does go NaN after about 2 steps


2.0.x to master

Description

Moving latest changes to master
Overview of Changes

N/A
Type of Change

N/A
Test Details

N/A
Additional Notes

N/A

You did it @lopezton-anthem!
Thank you for signing the Anthem Opensource Software CLA.


Update YalseeSession fields automagically

https://stackoverflow.com/questions/31503041/spring-aop-get-old-field-value-before-calling-the-setter

Requires compilation process changes, that brakes UI compilation,


Don't call it a "bind mount" when it's not

The mount being done in the example is just a regular device mount, not a bind mount. Remove "bind" from the description.

lgtm, thanks for the fix!

Johnathan, thanks!
Is the protocol here for me to delete the patch branch on GitHub once it's
merged, or is that taken care of some other way?
Spencer Brown
On Tue, Jan 20, 2015 at 1:39 PM, Jonathan Boulle<EMAIL_ADDRESS>wrote:

Merged #415 https://github.com/coreos/docs/pull/415.
--
Reply to this email directly or view it on GitHub
https://github.com/coreos/docs/pull/415#event-221841498.

@SpencerBrown yes, you'll need to delete it yourself


Provide support for using Azure AD service principal authentication with client secret/certificate

Proposal
Proposing the following updates:

Add a provider for azure service principal
Update the AuthPodIdentity, triggerAuthentication to take in a ClientID, Audience and Secret
Adding mechanism to load the base64 decoded Kubernetes secret
Adding a mechanism to decode the certificate and get the AadToken

Use-Case
We have a use case where we need to support System Assigned Identity for accessing eventhub and since PodIdentity and Workload Identities don't support System-Assigned Identity out of box, we are looking into service-principal based authentication using certificates
Anything else?
No response

I'd be happy to contribute this feature to the project.

Hi @Aashish93-stack
You can use Workload Identities with the service principal, doesn't it solve your problem?

@JorTurFer unfortunately, there are some use cases where don't have access to the service principal to configure federation and other cases where users don't won't to onboard the workload-identity, so we are hoping to add a certificate based authentication to cover all our bases

Yes, this is another way of authenticating.
I think service principal support makes sense but I'd suggest to post a configuration proposal here first to make sure we are all aligned first.
Is that OK for you @Aashish93-stack?

There is also the option of using User Managed Identities if you need them as WI already supports them

BUt then you still need Workload Identity :) In some scenarios you just want to use a SP.

I wouldn't add this as a new pod identity because it isn't. Maybe we could add another section like azureServicePrincipal or something like that. WDYT?

Yes, that makes sense, updating trigger auth structure to this ->
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: {trigger-authentication-name}
  namespace: {trigger-authentication-namespace}
spec:
  azureServicePrincipal:
     clientId: {{UUID}}
     tenantId: {{UUID}}
     audience: {{audience}}
 secretTargetRef:               #Optional: Required when using azureServicePrincipal and not Secret from Azure KeyVault
    - parameter: {{secretRef}}
      name: {{secret-name}}
      key: {secret-key-name}
 azureKeyVault:                #Optional: Required when using azureServicePrincipal and not referencing Secret from Kubernetes
      vaultURI: {key-vault-address}
      credentials:
          clientId: {azure-ad-client-id}
          clientSecret:
             valueFrom:
                secretKeyRef:
                   name: {k8s-secret-with-azure-ad-secret}
                   key: {key-within-the-secret}
          tenantId: {azure-ad-tenant-id}

and will add a new struct in the triggerauthentication_types
type AzureServicePrincipal struct {
	ClientID string `json:"clientId"`
	// +optional
	TenantID string `json:"tenantId"`
	// +optional
	Audience string `json:"audience"`
}

Since it's no longer part of the PodIdentity, was thinking of adding a AzureServicePrincipalHandler which can be used for decoding the certificate and returning the ServicePrincipalToken and this can be called by the new if block for triggerAuthSpec.AzureServicePrincipal in resolveAuthRef function under scale_resolvers.go and store the token in the authParams  map, which can then be used by the individual scalers. Does this look good ?

Yes, that makes sense, updating trigger auth structure to this ->
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: {trigger-authentication-name}
  namespace: {trigger-authentication-namespace}
spec:
  azureServicePrincipal:
     clientId: {{UUID}}
     tenantId: {{UUID}}
     audience: {{audience}}
 secretTargetRef:               #Optional: Required when using azureServicePrincipal and not Secret from Azure KeyVault
    - parameter: {{secretRef}}
      name: {{secret-name}}
      key: {secret-key-name}
 azureKeyVault:                #Optional: Required when using azureServicePrincipal and not referencing Secret from Kubernetes
      vaultURI: {key-vault-address}
      credentials:
          clientId: {azure-ad-client-id}
          clientSecret:
             valueFrom:
                secretKeyRef:
                   name: {k8s-secret-with-azure-ad-secret}
                   key: {key-within-the-secret}
          tenantId: {azure-ad-tenant-id}

and will add a new struct in the triggerauthentication_types
type AzureServicePrincipal struct {
	ClientID string `json:"clientId"`
	// +optional
	TenantID string `json:"tenantId"`
	// +optional
	Audience string `json:"audience"`
}

Since it's no longer part of the PodIdentity, was thinking of adding a AzureServicePrincipalHandler which can be used for decoding the certificate and returning the ServicePrincipalToken and this can be called by the new if block for triggerAuthSpec.AzureServicePrincipal in resolveAuthRef function under scale_resolvers.go and store the token in the authParams  map, which can then be used by the individual scalers. Does this look good?

WDYT @v-shenoy ?

WDYT @v-shenoy ?

Yeah, sounds good.
Are we planning to add this only for Event Hub, or all Azure scalers @JorTurFer?

I guess that this is interesting for all azure scalers, isn't?

I guess that this is interesting for all azure scalers, isn't?

It is. I asked because the issue is titled for Event Hub.

@Aashish93-stack , are you willing to contribute with other scalers too?

@tomkerkhove cool, the suggestions look good to me, will update it to azureActiveDirectoryServicePrincipal, support both certificate and client secret and update clientId to applicationId. For keyvault I was thinking as a 1P provider, but yeah will start out with Kubernetes secret and we can look into keyvault integration later since we may want to support 3p as well.
@JorTurFer Unfortunately, don't have much bandwidth, will try to get as many scalers I can or can do it in phases

If you are willing to contribute, obviously is dependent on your availability, doing it in phases is awesome. Also, you are not forced to do in on every scaler, other contributors can take them (as you prefer 😄 )

Sorry been busy with other commitments, will contribute this feature in March.

No worries!

@Aashish93-stack are you still interested? I would possibly try to implement


Dyson Purifier Humidify Cool Formaldehyde (358K) not supported

Please support Dyson Purifier Humidify Cool Formaldehyde 358K.

Just bought the Dyson hot + cool HP09 (formaldehyde model), so very iterested to see this one added

Having the same problem, I have and old Dyson pure cool (438) that I've been able to add locally. I also have a regular Purifier Humidify+Cool that I can't add. The get_devices.py out put is as follows:
Serial: K1D-US-XXXXXXXX
Name: Bedroom
Device Type: 358E

Is there already some workaround to add the device while it's fixed properly?

Well, v0.18.0 is released with support for all Formaldehyde devices! It uses a local interview process and does not require any cloud features (beyond the ones that Formaldehyde devices already require to setup initially).
One note, I've been testing with a simulated device as my 527K happens to be the no-Formaldehyde version. Please feel free to install and test. There should be no breaking changes to dyson-local, but please let me know if you experience any problems.
cc: @zltn and @KLucky13

@BigThunderSR ahh, the upgrade to libdyson breaks the cloud integration eh? I'll get that resolved and post an updated version of the cloud integration today.

@BigThunderSR hmm, weirdly enough I don't actually see any references to DysonPurifierHumidifyCool in the cloud integration. I'm not sure why you're seeing that error, but I'll continue to look into it.

Just to be safe, I just released ha-dyson-cloud v0.18.0 and see if that fixes it. All it does is match the libdyson version with the local integration.
Let me know if that resolves it for you - also, out of curiousity, do you own the Dyson Purifier Humidify+Cool? Maybe that would explain why you're getting that error while I'm not?

I just installed the update and the Formaldehyde value showed up, I don't see any other issues since updating! If I notice anything else I will post it here.

@dotvezz I might have found something, the formaldehyde sensor "results" are showing as a status bar and not as a graph:

if you compare it with PM25 for example:

Hey @KLucky13!
For your first issue, that's because of sensors.py:327-338 not setting a state class for the sensor. I actually have a branch with that fixed, but I was hoping to figure out the base units issue and merge them together (#4, with lots of discussion here).
Alas, the units issue is more frustrating than expected so I'll go ahead and do a patch release that updates the measurement display.
For your second question, I think that's just because of how Home Assistant handles climate entities. You can call the set_temperature service on the climate entity (https://www.home-assistant.io/integrations/climate/ for the official docs), but let me know if that doesn't work!

@KLucky13 I think @dotvezz needs to introduce the
state_class: measurement
to the formaldehyde sensor so it plots a history chart, but yeah, the units issue is frustrating even for a non-dev like me.

Unfortunately, I still can't connect my device.
Serial: X6P-EU-XXXXXXXX
Name: living room
Device Type: 358K

@gonzolino69 I got an email that indicated you were still having problems, but looks like the comment is gone now. Were you able to get it up and working?

@KLucky13 we've got a new release that fixes the Formaldehyde display to a graph: https://github.com/libdyson-wg/ha-dyson/releases/tag/v0.18.1
Note it also removes the µg/m³ unit label since @Anto79-ops realized that some conversion is apparently needed. We're trying to figure out the conversion math in #4 - if you can help by providing screenshots on that thread, it'd be amazing!

Thanks for the great work, got this all setup with mine.
I don't have the option to change to toggle auto in Home/HomeKit. Is that a config issue, or something more to do with HomeKit or HASS Bridge?

@gwigz For your auto toggle in Home/Homekit - I dunno! Feel free to make a new issue where we can follow up on that though.


Static files are not loaded in IE8 on Win7

Branch: 0.15.x.
Windows installer: kalite-setup-0.15.0--9-18-2015.exe
Platform: IE8 on XP
Expected Behavior: Must load static files.
Current Behavior: Static files are not loaded.
Steps to reproduce:

Download windows installer at http://field.learningequality.org/KALiteSetup-0.15.0--9-18-2015.exe.
Install it in IE8 on Win7.
Launch KA-Lite apps
Click on Start on Server in menu option.
Wait until the Load in browser menu becomes available and click on it.

Screenshot:

Let's consolidate this with #176.


Silent errors in sumstats pipeline

During the process of sumstats release to FTP, silent errors can occur, eg:

Sumstats not successfully moved to staging ftp. (eg. '6608c665db8d9f000198b901', ticket #1304)
Yaml file not created on staging ftp (eg. above example)

Please investigate if an e-mail could be sent notifying of these kinds of issues, per GCST, not just per submission.
Data to include in notification email:

Submission id
GCST id
Type of failure
Reason for failure

Or else / additional an auto-retry mechanism.

If metadata YAML generation fails, we'll receive an email to gwas-dev mail address.
As you can see in the sample email below, it includes the following data.

GCST id
Type of failure
Reason for failure

Note that submission ids are difficult fetch at this layer, therefore it's skipped.
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/celery/app/trace.py", line 385, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/celery/app/trace.py", line 648, in __protected_call__
    return self.run(*args, **kwargs)
  File "/sumstats_service/sumstats_service/app.py", line 390, in convert_metadata_to_yaml
    return au.convert_metadata_to_yaml(gcst_id, is_harmonised_included)
  File "/sumstats_service/sumstats_service/resources/api_utils.py", line 442, in convert_metadata_to_yaml
    raise FileNotFoundError(
FileNotFoundError:
            Data file not available for GCST90268003
            at '/pub/databases/gwas/summary_statistics/GCST90268001-GCST90269000/GCST90268003'

 Task was called with args:
                 ['GCST90268003'] kwargs: {}.

                 Exception was raised:

            Data file not available for GCST90268003
            at '/pub/databases/gwas/summary_statistics/GCST90268001-GCST90269000/GCST90268003'

                 Traceback:
<traceback object at 0x7fb7c7d17b80>

@karatugo to change so the check is for files on staging, not production

@karatugo to create a new table in mongo, save failed ones there, and send single email every day for the prev day's failures.

[ ] Report only the ones with sumstats in the email

Deployed to sandbox.

Test with studies GCST90275903 and GCST90275904 successful.

Deployed to prod. Expect nightly emails around 23:00 for sandbox and 23:05 for prod for that day.


operator: rework webhooks

the next controller-runtime drops deprecated webhook.Defaulter/Validator. Move to admission.CustomDefaulter/Validator

mostly untested and could use a bit of help

build operator from this PR and test deploy modified samples (e.g., without Image and with an old version). observe the webhook logs look sane

pushed an update since I had expectedImage set wrong (intel-x-image but it should be intel-x-plugin)


Fix bugs inner element must either be a resource reference or empty follow this ref https://developer.android.com/guide/topics/resources/more-resources#Id

Reference from Android Doc: https://developer.android.com/guide/topics/resources/more-resources#Id
It just has a problem when you're using API 28
Please approve my pull request for next release
Isssue: https://github.com/tcking/GiraffePlayer2/issues/130

same as https://github.com/tcking/GiraffePlayer2/pull/102


Add cointape fee recommendation

Use http://api.cointape.com/v1/fees/list to find an applicable fee rate for a new transaction

https://bitcoinfees.21.co/


Core: Utilize initalizer lists in Variant constructors

Inspired by a conversation in #core^1, this makes all Variant constructors set type via initalizer lists. I'm unsure what the actual performance benefits of this will be, but this style of constuction is good practice either way.

In cases like this, I don't expect generated code to be different from using the other style. However, even if this don't improve performance, there are other upsides, with no shortcomings, and it's, after all, the route the engine code started walking.

Thanks!


Invalid input '{': expected whitespace or a label name

How to set label in create node cql?
String query = "CREATE (n:{1} {})";
try (PreparedStatement stmt = con.prepareStatement(query)) {
 stmt.setString(1,"testLabel");
stmt.executeUpdate();
  }}
I test "CREATE (n:{1} {})" and CREATE (n:? {}), both of them are all error.

You can pass the label name as a parameter. It's a cypher limit, not a jdbc one, but you can easy solve that by calling a specific APOC.


Update LPWINDOWPOS flags

https://github.com/microsoft/terminal/blob/41ef5554f5cb946c4a48e2b8db791265c7217fce/src/cascadia/WindowsTerminal/IslandWindow.cpp#L592
Since size is changed here shouldn't we clear the SWP_NOSIZE bit in lpwpos->flags?

Maybe? I'm not totally sure how those flags work. I was more under the impression that they are told to us, but aren't used in our response to the OS. Like, when that flag is set, the OS is telling us "I'm about to do something with your window, but don't worry I'm not changing your size". And our response is "okay but actually change my size". Admittedly, I don't have the strongest grasp on how user32 works so I could be mistaken.
We can try clearing it, I'm not sure what that would change but it probably wouldn't hurt.
@ekoschik might actually know what clearing that flag would affect, if anything.

@zadjii-msft yes, the POSCHANGING handler (if it changes the size) should be clearing the NOSIZE (and NOMOVE) flags.
Near the top of this POSCHANGING handler is a check for NOMOVE, meaning 'change the new the size and position if someone is moving the window). This should probably also check NOSIZE.
Now, if one of these flags is set but not the other, the incoming WINDOWPOS struct will have those fields NOT set. So if NOMOVE the x/y are not set (and NOSIZE means cx/cy aren't set). You could handle only cases that both move or size, or you could check for either flag being set, but know to use the window's current position or size if either of the two flags aren't set.
For example, consider someone resizing the window to move it mostly onto another monitor (do you want to detect this and 'snap' to the new monitor)?

@ekoschik Hi,
Here's what a potential check for SWP_NOMOVE and SWP_NOSIZE could look like. Any input?
// "if we're not moving or resizing the window, do nothing."
// GH #12924
if ( (noMove = WI_IsFlagSet(lpwpos->flags, SWP_NOMOVE)) && (noSize = WI_IsFlagSet(lpwpos->flags, SWP_NOSIZE)) )
{
      break;
}

Then, each boolean could be checked in this layout (avoiding additional WI_IsFlagSet calls):
// GH #12924: check SWP_NOMOVE and SWP_NOSIZE, clear both if either is unset
if (!noMove)
{
    lpwpos->x = newWindowRect.left;
    lpwpos->y = newWindowRect.top;
}
if (!noSize)
{
    lpwpos->cx = newWindowRect.width();
    lpwpos->cy = newWindowRect.height();
}

// at least one of the above executes, so we should clear flags.
WI_ClearFlag(lwpos->flags, SWP_NOMOVE);
WI_ClearFlag(lwpos->flags, SWP_NOSIZE);

Let me know what you think. I'll submit a PR after some more discussion if necessary. Thanks!

@ekoschik Hi,
Here's what a potential check for SWP_NOMOVE and SWP_NOSIZE could look like. Any input?
// "if we're not moving or resizing the window, do nothing."
// GH #12924
if ( (noMove = WI_IsFlagSet(lpwpos->flags, SWP_NOMOVE)) && (noSize = WI_IsFlagSet(lpwpos->flags, SWP_NOSIZE)) )
{
      break;
}

Then, each boolean could be checked in this layout (avoiding additional WI_IsFlagSet calls):
// GH #12924: check SWP_NOMOVE and SWP_NOSIZE, clear both if either is unset
if (!noMove)
{
    lpwpos->x = newWindowRect.left;
    lpwpos->y = newWindowRect.top;
}
if (!noSize)
{
    lpwpos->cx = newWindowRect.width();
    lpwpos->cy = newWindowRect.height();
}

// at least one of the above executes, so we should clear flags.
WI_ClearFlag(lpwpos->flags, SWP_NOMOVE);
WI_ClearFlag(lpwpos->flags, SWP_NOSIZE);

Let me know what you think. I'll submit a PR after some more discussion if necessary. Thanks!

Something seems off. The 'newWindowRect' sounds like the value from the WINDOWPOS (lpwpos). If not 'no move', the pos x/y is set (to the new window position left/top). What I think this should be doing is saying
if (noMove)
pwpos->x = rcWIndow.left
pwpos->y = rcWindow.top
where rcWIndow is the window's current position (GetWindowRect, or the last WINDOWPOS from WM_WINDOWPOSCHANGED).
This would produce the 'real proposed rect', which you could use to MonitorFromRect to determine which monitor the new position is on.

The 'newWindowRect' sounds like the value from the WINDOWPOS (lpwpos).

Sorry I didn't clarify! newWindowRect contains the proposed dimensions on the proposed monitor. It's a til::rect retrieved from _getQuakeModeSize, which was called with the monitor retrieved from the values in lpwpos.
My understanding is that lpwpos contains the proposed changes upon entry, and upon exit, the values in lpwpos will become the new window dimensions. Therefore, if SWP_NOMOVE is set, lpwpos->x is equal to the current window X positon, and so on.

This would produce the 'real proposed rect'

this is done with the RECT rcSuggested, which is then used in getting the proposed monitor to pass to _getQuakeModeSize. Here's the creation of that structure:
RECT rcSuggested;
rcSuggested.left = lpwpos->x; // note: these are lpwpos's values upon entry, they have not been modified yet
rcSuggested.top = lpwpos->y;
rcSuggested.right = rcSuggested.left + lpwpos->cx;
rcSuggested.bottom = rcSuggested.top + lpwpos->cy;

Because lpwpos will contain the current window pos if unchanged, or the proposed values on a per-value basis, there's no need introduce the overhead of checking the previous position with GetWindowRect.
To be honest, the guards around the lpwpos modifications aren't strictly necessary, they just prevent assignment if it's superfluous (if lpwpos->x isn't changed because SWP_NOMOVE is set, why would we need to assign it before exit?). At least one of those guarded blocks will execute, so like you said earlier, we must clear SWP_NOMOVE and SWP_NOSIZE. Hmm, I could actually combine those two calls into a single WI_ClearAllFlags` call...

Not sure if it helps but I did something similar while implementing Per-Monitor DPI in my apps:
The intention is to resize the Window when it is moving to a different monitor.
        if (! (wp->flags & SWP_NOMOVE) && wp->flags & SWP_NOSIZE) //move and not size
        {
            if (new_monitor)
            {
                wp->flags &= ~SWP_NOSIZE; //force resize
                Size size = calcWindowSizeForDPI(window, dpi);
                wp->cx = size.w;
                wp->cy = size.h;
                return 0;
                }
            }
        }

So I am changing the size only if the user moves the window to a new monitor.

Hey so I maybe lost track of this - is there a practical side effect to us not doing this right? Something I could use to validate both:

What we're doing now causes {bug}
Whatever fix we try fixes {bug}

?
Seems like an easy enough fix, but I (personally) want to better understand what doing this wrong causes.

Not sure if it helps but I did something similar while implementing Per-Monitor DPI in my apps:
        if (! (wp->flags & SWP_NOMOVE) && wp->flags & SWP_NOSIZE) //move and not size
        {
            if (UINT dpi = Win_GetRectDpi(Rect(wp->x, wp->y, wp->cx, wp->cy)); dpi != Win_GetWindowDpi(hWnd))
            {
                wp->flags &= ~SWP_NOSIZE; //force resize
                Size size = calcWindowSizeForDPI(window, dpi);
                wp->cx = size.w;
                wp->cy = size.h;
                return 0;
            }
        }

So I am changing the size when a call to SetWindowPos moves the Window to a new monitor.

This will cause problems, notably when dragging the window between monitors of different DPIs.
The system expects all per-monitor DPI aware windows to always 'accept' the lParam rect in WM_DPICHANGED. Attempting to manipulate the rect in that handler OR within WM_WINDOWPOSCHANGING will cause the window to jump away from the cursor, or potentially 'wobble' (bounce back/forth between the two monitors).
Instead of this, its recommended to mark the window as 'per monitor v2' and use WM_GETDPISCALEDSIZE. This is sent prior to sending the window a WM_DPICHANGED with the pre-scaled window size and the new DPI. For example, if the window is scaling to 200% and is moving to 300%, the window can scale the provided size from 2x to 3x, allowing it to override how it scales for DPI while still accepting the WM_DPICHANGED rect (and not flying away from the cursor).

Thank you for your input! Yes indeed I am marking all windows 'per monitor v2' and I do use WM_GETDPISCALEDSIZE.
The code I posted is in WM_WINDOWPOSCHANGING. I am testing on Windows 11 and WM_WINDOWPOSCHANGING is not
called when dragging the window between monitors.
The problem this code is trying to solve is setting the correct size of the Window when I am calling SetWindowPos.
When closing I am saving the window pos to the registry and I want the window to open later at that saved position.
If this position is on a different monitor I also need to resize the window to match the size needed on that different monitor.


DeepLabv3 + ADE20k benchmark

Pull request to add the DeepLabv3 model and the ADE20k dataset as a new benchmark for semantic segmentation tasks
Some results with 4 seeds for each experiment:

Experiment
Final
Best

Train for 127 epochs
44.888 +/- 0.304
44.959 +/- 0.307

Train for 64 epochs
45.051 +/ - 0.328
45.323 +/- 0.284

Use batch size 32 instead of 16
44.904 +/- 0.181
45.089 +/- 0.055

Decoupled SGD (WD = 5e-6
45.54 +/- 0.364
45.669 +/- 0.284

Here is a convergence run.
mmsegmentation reports 44.08 mIoU and 45.00 mIoU for 64 and 127 epochs, respectively (here). I think these numbers are the final results for a single run.
Before Merging

[x] Test for mean IoU
[x] Test for each segmentation transformation

@hanlint @coryMosaicML @A-Jacobson I want to make one more pass through the code today, but should be ready for review tomorrow!

I'm not able to pass the CPU test due to a timeout error during test_hparams.py. I think the timeout occurs because DeepLabV3 by default downloads pre-trained weights which take about 30s to download. Is there a way to avoid this timeout? I don't think we would want to change the defaults for the sake of the CPU test.

Would you be able to use monkeypatch to mock out the actual download during the tests (and instead have it return uninitialized weights)?

The pretrained weight download is done within torchvision, so I thought the easiest way to avoid the long download was to manually change is_backbone_pretrained in test_hparams.py and test_model_registry.py when DeepLabV3 is used.

cc: @A-Jacobson or @coryMosaicML for a review here (vision team)

After some thought and discussion, I think it makes the most sense to make the initial benchmark to be as close as possible to other benchmarks. This means reverting back to the original batch size, no decoupled weight decay, and using a Polynomial LR schedule instead of cosine decay.
@ravi-mosaicml and/or @A-Jacobson could y'all skim through these recent changes today or tomorrow?

Added code to use initializers in deeplabv3.py

Added PolynomialLR and PolynomialLRHparamstoschedulers.py` and in the required scheduler tests

Added test_loss.py for mIoU tests (subsequently made a tests/models directory and added test_efficientnet.py)

Added test_segmentation_transforms.py for tests on segmentation transforms. I could not quickly come up with good ways to test these especially since some of them are random, but I'm not sure how rigorous these tests should be. Be gentle!

It would be amazing if I could get this in tomorrow, thank you!!

Okay, I think addressed all of @ravi-mosaicml  comments, but let me know if more is needed!
Also, I'm getting this failure for the cpu test now:
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
    torch>=1.9 from https://files.pythonhosted.org/packages/2c/c8/dcef19018d2fe730ecacf47650d3d6e8d6fe545f02fbdbde0174e0279f02/torch-1.10.1-cp39-cp39-manylinux1_x86_64.whl#sha256=cca660b27a90dbbc0af06c859260f6b875aef37c0897bd353e5deed085d2c877 (from mosaicml==0.3.1):
        Expected sha256 cca660b27a90dbbc0af06c859260f6b875aef37c0897bd353e5deed085d2c877
             Got<PHONE_NUMBER>9939f561c54f7e13ddb31d041c5a9dbd0397414446e4b31440b6b9

How do I resolve this?


Updated aws notebooks documentation

Updated the AWS notebooks documentation to include Runtime 23.1 and Python3.10

Please remove the duplicate imports as discussed.


How to set track_total_hits

Hi,
I was wondering how do I set track_total_hits pram to true in the body?
I am not too sure how to go about this?
Thanks :)

org.elasticsearch
elasticsearch
7.2.1

1、java code:
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);  //above es-7.x version
=========1 and 2 is the same result===============
2、query string
if query in the query string, please set parameter "track_total_hits":
{"track_total_hits": true}


[RESOLVED] High ICMP ping response time

Problem started at 10:52:33 on 2023.07.26
Problem name: High ICMP ping response time
Host: S100-Santiago
Severity: Warning
Operational data: Value: 1s 80ms
Original problem ID: 33112
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23518&eventid=33112

Problem has been resolved in 5m 0s at 10:57:33 on 2023.07.26
Problem name: High ICMP ping response time
Host: S100-Santiago
Severity: Warning
Original problem ID: 33112


[+0-normal-args] When building the bodies of thunks, be sure to conve…

…rt from +0 to +1.
Caught by the ownership verifier on the file test/SILGen/objc_currying.swift
when compiling with +0 enabled.
rdar://34222540

@swift-ci smoke test and merge


Github page missing

Link to BDD examples brings to 404 error.

Fixed the issue. The project code has been removed now and therefore, I have added a link to the BDD documentation for reference.


cscope: rewrite function: db_build

1. if Makefile exists: try `make cscope`
2. if .git exists: run `git ls-files | cscope ${db_build_cmd_args} -i -`
3. if all fails: run `find . -name '*.c' -o -name '*.cpp' -o -name '*.h' | cscope ${db_build_cmd_args} -i -`

because it always tells me no source files found, so I rewrite db_build to build the database. I'm not sure whether it is a better choice.

You might want to add "-R" in db_build_cmd_args

You might want to add "-R" in db_build_cmd_args

the args are ok, I closed it because I have tried build a project in docker, so make cscope runs failed in host, but the next command didn't run, I think I may need to do some extra works

You might want to add "-R" in db_build_cmd_args

the args are ok, I closed it because I have tried to build a project in docker, so make cscope runs failed in host, but the next command didn't run, I think I may need to do some extra works

I use -v to mount the project directory,  they have different path


elasticsearch7.4.0 NoClassDefFoundError: org/elasticsearch/action/StreamableResponseActionType

use the elasticsearch 7.4.0 as server and install the opendistro_security-<IP_ADDRESS> plugin, it will throw exception when startup
"stacktrace": ["java.lang.NoClassDefFoundError: org/elasticsearch/action/StreamableResponseActionType"

opendistro_security-<IP_ADDRESS> is not compatible with Elasticseach 7.4.x . Please use opendistro_security-<IP_ADDRESS> and have a look at the compatibility matrix here https://opendistro.github.io/for-elasticsearch-docs/docs/install/plugins/#plugin-compatibility


Integrated charts using chartjs-wrapper.

Integrated charting library (installing wrapper from npm).
Since there are countless options to create/customize charts, instead of creating functions to modify everything, I rely on the original json-based configuration. I have added an example at /chart/ with the full code commented.

Looks like there is a Jest issue, I am going to fix.

@aymanhab Jest errors are fixed now. The latest error was related to CI having node version 12, which is deprecated and was not compatible with one of the dependencies we use (I think it was @adobe/css-tools).
I updated to version 16 in this PR, since it is the recommended version: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/

@aymanhab I finally figured out what is happening.
The ChartJS library uses EcmaScript Modules, and Jest is not compatible with it. This is why the charts were working locally, while tests were complaining about the syntax of EcmaScript in the wrapper and in the ChartJS library.
I just had to fix a few things in the wrapper and comment the text that imports ChartJS and everything is working now. We have to find a way of either doing the test ignoring EcmaScript modules, or make Jest support it.

@AlbertoCasasOrtiz Trying to build an integrated environment from latest PRs for the demo failed because of compiler issues, let's investigate when you're around.


In presence of subcommands, help text does not advertise the presence of options

Right now the help text for cargo supply-chain looks like this:
Gather author, contributor and publisher data on crates in your dependency graph

Usage: COMMAND

Available options:
    -h, --help      Prints help information
    -v, --version   Prints version information

Available commands:
    publishers  List all crates.io publishers in the depedency graph
    crates      List all crates in dependency graph and crates.io publishers for each
    json        Like 'crates', but in JSON and with more fields for each publisher
    update      Download the latest daily dump from crates.io to speed up other commands

I feel that Usage: COMMAND is a little misleading: each subcommand accepts a host of arguments, which vary depending on the command in question, but are in no way mentioned in the top-level auto-generated help (they are listed if you call cargo supply-chain <subcommand> --help, however).
Would it be possible to reflect the presence of options passed to subcommands, something like COMMAND [OPTIONS]?

As a quick fix you can take a look at https://docs.rs/bpaf/0.3.2/bpaf/struct.Info.html#method.usage which allows you do just that. I need to check how other systems implement that. I might just replace COMMAND token with COMMAND [...] since at least --help is always available...

How do you feel about displaying COMMAND ... instead of COMMAND? Is that an indication clear enough that you can pass something else?

Fixed in 016ab2a


Losing Events when Server is down

Hi,
I have faced a big problem:
If the JDBC-Server is down then I am losing all the logstash events until the server is again up an running. (FYI: I am using this nice plugin in combination with the Crate JDBC connector)
What can be done against that?
Is it possible to configure or introduce somthing like a retry policy?
It would be great, if this plugins is as robust as the elasticsearch-output-plugin.
And currently, this is the best and fastest plugin to write data from Logstash into the Crate-Elasticsearch-DB. The http-output-plugin is slow and has got no retry policy at all!
Thx for writing this plugin and hopefully you can give me a hint or even a solution!

What version of logstash and the plugin are you using please? The reason I ask is because several versions ago the plugin was altered so that it should, keep inifinitely retrying everything in the buffer, unless you tell it not to.

Actually, I have thought of an obvious reason why this probably would happen on the current version as well :oops:
I'll try and make some time to test things tonight, or tomorrow - but it would still be useful to know version of the plugin you're using :smile:

I've pushed a release candidate that I think will resolve the problem for you in logstash 2.x.
Install (or update) using the command to specifically install this pre-release, and let me know if it fixes the problem for you please @githubmui
bin/plugin install --version 0.2.6.rc1 logstash-output-jdbc

FYI @githubmui 0.2.6 (non-rc) is now on rubygems. There is a secondary fix included which may also resolve this problem. I've not been able to reproduce the issue since applying these 2 fixes.

If you can reproduce the original issue, please let me know.


Support for Avro Serialization

This PR brings support for Avro serialization.
Therefore, from now on, you can choose for your service (at @rpc level) the type of serialization. Currently: Avro or Protobuf.
@free
    @service
    trait FreesRPCService {

      @rpc(Avro) def unary(a: A): FS[C]

      @rpc(Protobuf)
      @stream[ResponseStreaming.type]
      def serverStreaming(b: B): FS[Observable[C]]

      @rpc(Protobuf)
      @stream[RequestStreaming.type]
      def clientStreaming(oa: Observable[A]): FS[D]

      @rpc(Avro)
      @stream[BidirectionalStreaming.type]
      def biStreaming(oe: Observable[E]): FS[Observable[E]]
    }

We are relying on avro4s for the binary serialization/deserialization.

Codecov Report

Merging #78 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #78   +/-   ##
=======================================
  Coverage   88.52%   88.52%
=======================================
  Files          12       12
  Lines         122      122
=======================================
  Hits          108      108
  Misses         14       14

Continue to review full report at Codecov.

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


Bug preview-head.html

Hi there :)
I am trying to inject some custom fonts with Typekit into the iframe, so I am following these instructions: https://storybook.js.org/configurations/add-custom-head-tags/
So I created a preview-head.html file, but it never gets injected when running the local server. I was before on version 3.1.7, I updated to 3.1.9 to see if any luck but didn't work. Also I tried to use the deprecated head.html but no luck.
Is there some known issue at the moment with preview-head.html? Or do I need to inject it myself with Webpack?
Thanks!

@kivohin am not aware of any known issues with this. Can you provide a repro? I'm going to update the examples/cra-kitchen-sink to include a working example.

Thanks for your answer @shilman. I realized the scripts are actually being injected, so everything is good on your side 👍🏼 Keep up the great work 🌈


React UI: Sanitize HTML string to allow only supported elements

:+1: Wonderful, thank you :)

One observation though: this PR added about 300kb to the final size of the prometheus binary (80155524 vs. 79840132 bytes). That seems quite heavy to me for some HTML sanitization...

@juliusv If I have correctly understood by prometheus binary you mean the React app assets sizes? The size diff I see following-
Before adding sanitize-html
File sizes after gzip:

  204.06 KB  build/static/js/2.17185238.chunk.js
  23.12 KB   build/static/css/2.164b004b.chunk.css
  7.2 KB     build/static/js/main.e6039d22.chunk.js
  912 B      build/static/css/main.2ac95e7f.chunk.css
  763 B      build/static/js/runtime~main.d653cc00.js

After adding sanitize-html
File sizes after gzip:

  279.21 KB  build/static/js/2.b257cdc5.chunk.js
  23.12 KB   build/static/css/2.bae5dac8.chunk.css
  7.49 KB    build/static/js/main.091b61ea.chunk.js
  913 B      build/static/css/main.73fd8119.chunk.css
  769 B      build/static/js/runtime-main.56ad181a.js

The difference here is ~75.44KB, but still it's more for just sanitization. Unfortunately, sanitize-html depends on some heavy libs like chalk and htmlparser2 to sanitize lib. But at the moment this is just one library which does this job perfectly.

@codingdash I meant the actual size of the prometheus binary file. Interesting that the underlying bundle size so much less! When you run make build, it generates a web/ui/assets_vfsdata.go file that gets compiled into the binary, but it just contains byte slices with the file contents to serve. So I'm not sure how this can trigger the blowup. ¯_(ツ)_/¯

Ah, thanks :) I wasn't aware of this.


[Question / Feature Request] keyboardShouldPersistTaps to prevent need for double tapping

I've implemented this like your example but the main issue I am having is that it takes two taps to select the list item. The first tap dismisses the keyboard and then the second will select the row- which should happen on the first tap.
This sounds similar to this so I'm wondering if you could provide some insight on if it's from the same issue, if everyone on this library is affected, and if it can be fixed. I tried adding the prop keyboardShouldPersistTaps={true} but it had no effect.
Thanks!

+1

+1

I was able to get persistent taps working. I have the auto complete component as a child of ScrollView
  <ScrollView
    keyboardShouldPersistTaps={"always"}
  >
    <GooglePlacesAutocomplete />
  </ScrollView>

I believe keyboardShouldPersistTaps={true} is deprecated. Hope this helps!

@jeanpaulsio unfortunately I didn't share your luck. I am still unable to get this working.

me neither.. Dropdown basically ignores my taps(address is not set, only dropdown disappears), only reacts sometimes when I double tap very fast..
Any help, or at least some explenation why does it work like this?

@jeanpaulsio ... I was having the same issue ... I tried your suggestion and it worked ... Thanks

Make sure that any parent ScrollViews (or FlatList, etc.) of your GooglePlacesAutocomplete component have the prop keyboardShouldPersistTaps={'always'}set. This resolved the problem for me. Good luck!

Also having this issue. Setting  keyboardShouldPersistTaps="always" in the parent works great if there are no other children, but the problem is that my components parent has a scrollview with other input fields that rely on those taps not persisting. Has anyone found any other solutions?

@guilhermepontes why was this closed? This is still a problem.

the same problem here, + 1, I don't know what I need to do, for a single tap works to select an item of the list. I try with keyboardShouldPersistTaps={"always"} and nothing !

I'm having the same problem, did you manage to solve it?


[$500] Web - Keyboard Delete Key Functions Incorrectly: Deletes in Wrong Direction and Has No Effect

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

Action Performed:

Go to FAB, then select "Request Money."
Input an amount (e.g., "123456").
Position the cursor between the second and third digit by clicking in that specific location.
Press the keyboard's delete key to erase characters (take note of the deletion direction).
Following two delete key presses (or after the left-sided numbers vanish), execute another delete key press, and observe the cursor's placement.

Expected Result:
In step 4, the deletion should occur to the right of the cursor. During step 5, pressing the delete key should not cause the cursor to leap to the end of the amount. Conversely, if the intended deletion direction is to the left, and the cursor jumps to the amount's end, the delete key should still erase numbers to the left.
Actual Result:
When pressing the keyboard's delete key, the numbers located to the left of the cursor are deleted. Once all left-sided numbers have been erased and the delete key is pressed again, the cursor jumps to the amount's end. After the cursor's relocation to the amount's end, the delete key ceases to remove numbers positioned to the cursor's left.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:  v1.3.55-7
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/af37c557-64b4-47a7-aabe-9e20b18a967d
https://github.com/Expensify/App/assets/115492554/fd2e75fb-c016-4f8e-b20b-79d339ae9b23
Expensify/Expensify Issue URL:
Issue reported by: @Nathan-Mulugeta
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1691742018138099
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f6bacb5a4e8eaf7a
Upwork Job ID:<PHONE_NUMBER>174825472
Last Price Increase: 2023-08-23
Automatic offers:

akinwale | Contributor | 26296415
Nathan-Mulugeta | Reporter | 26296416

Proposal
Please re-state the problem that we are trying to solve in this issue.
Pressing Delete on the keyboard in the Request Money input field does not place the cursor correctly afterwards.
What is the root cause of that problem?
What changes do you think we should make in order to solve the problem?

What alternative solutions did you explore? (Optional)

These are the supported platforms for accepted bug reports:

Android / native
Android / Chrome
iOS / native
iOS / Safari
MacOS / Chrome / Safari
MacOS / Desktop

I see MacOS / Chrome / Safari was checked, but this is a Windows-only issue. There isn't an explicit Delete button on Mac to forward delete, and backspace is working as intended. As such, I think we close this one out as it isn't a focus as of now. Happy for a second opinion though! CC: @mountiny @s77rt

These are the supported platforms for accepted bug reports:

Android / native
Android / Chrome
iOS / native
iOS / Safari
MacOS / Chrome / Safari
MacOS / Desktop

I see MacOS / Chrome / Safari was checked, but this is a Windows-only issue. There isn't an explicit Delete button on Mac to forward delete, and backspace is working as intended. As such, I think we close this one out as it isn't a focus as of now. Happy for a second opinion though! CC: @mountiny @s77rt

I have a bit of a bias since I already posted a proposal, but I think this is worth fixing for a few reasons.

Some users may be using a third-party keyboard with their Macs, and some do have a dedicated Delete key. I use a Keychron C2 mechanical keyboard with my Mac, for instance.
It happens in all browsers, regardless of the running OS, so it can easily be reproduced on macOS as well.
Apple Support also provides a list of keyboard shortcuts which includes shortcuts for forward delete (using Control-D, or Fn-Delete). There may be users who want to use these shortcuts if they do not have the key available on their keyboards.

Yeah I think this can be fixable for lower bounty $500 since its low priority as well

@narefyev91 👋 proposal ready for review here.

@trjExpensify @akinwale I was not able to reproduce it neither on staging no on main branch
https://github.com/Expensify/App/assets/28352309/bc95eccc-c24e-4478-ac70-8206c188aaba

@trjExpensify @akinwale I was not able to reproduce it neither on staging no on main branch - i'm on Mac
Screen.Recording.2023-08-23.at.14.48.25.mov

@narefyev91 You're performing a regular Backspace operation. The forward-delete operation can be performed using the one of the following:

A dedicated forward Delete key (marked as "Del" on non-Mac keyboards)
Fn-Delete keyboard shortcut on Mac
Ctrl+D keyboard shortcut on Mac

@akinwale ok I see now - did you test your solution? Because using ctrl+d - removes items from the right side - instead of left

@narefyev91 Yes, I did test on all platforms. This is the expected behaviour. Ctrl+D (on Mac) does the same thing as Fn-Delete, which is forward delete (delete text to the right of the cursor). The current operation which works as expected is to delete text to the left of the cursor (Backspace on a Windows keyboard or the Delete key on a Mac keyboard).

Also i'm wondering - did we have the same issue with old implementation? I did never see that we have some checks like nativeEvent.ctrlKey && key === 'd' - at old one

I added this extra check (which can be considered as a new feature) based on the documented keyboard shortcuts at https://support.apple.com/en-us/HT201236 (search for "Control-D"). This is only applicable on Macs.

In any case - we can move to PR to start iterating and solve that
Let's move with @akinwale proposal
🎀 👀 🎀 C+ reviewed

@narefyev91 My PR is ready for review. Thanks.

@narefyev91 My https://github.com/Expensify/App/pull/25815 is ready for review. Thanks.

🎯 ⚡ Woah @narefyev91 / @akinwale, great job pushing this forwards! ⚡
The pull request got merged within 3 working days of assignment, so this job is eligible for a 50% #urgency bonus 🎉
when @akinwale got assigned: 2023-08-24 03:57:49 Z
when the PR got merged: 2023-08-29 02:55:30 UTC
On to the next one 🚀

I think regression https://expensify.slack.com/archives/C049HHMV9SM/p1693329205638489 from here
cc: @situchan

The crash is due to the BaseTextInputWithCurrencySymbol's ref not being properly set in TextInputWithCurrencySymbol/index.js and index.android.js. Can be fixed by adding the following lines instead of just spreading the props:
{..._.omit(props, 'forwardedRef')}
ref={props.forwardedRef}

👋 @narefyev91 can you complete the checklist so we can proceed with payments please?
Confirming those as follows:
@Nathan-Mulugeta - $250 for the bug report
@akinwale - $500 for the fix
No #urgency bonus applied as per here.
Correct?

Note: there was regression of crash which they fixed in 2nd PR

Note: there was https://github.com/Expensify/App/issues/25578#issuecomment-1697957224 which they fixed in 2nd https://github.com/Expensify/App/pull/26267

Ah, so the payment due to @akinwale is $250 for the regression correct @situchan?

yes, in theory but watching video from checklist (both author and reviewer), crash didn't happen on iOS.
Maybe didn't test at the time of merge, after fixing conflict?

Cool, maybe @narefyev91 & @akinwale can clarify on that. :)

Okay, got it. Thanks for confirming! Payment of $250 sent :)
closing this out :)


Test script got failed while using longpress method

Hi,
I am using the following code for performing the longpress method in my AUT.
WebElement button = driverteacher.findElement(By.id("notes_cimage"));
TouchActions longPress = new TouchActions(driverteacher).longPress(button);
longPress.perform();
Longpress will happen on the element but after that my script gets fail even though INJECT_EVENTS permission is given in my App.The following error i am getting
INFO: return value from selendroid android server: {"message":"Unhandled excepti
on from application under test.\nio.selendroid.exceptions.AppCrashedException: U
nhandled exception from application under test....
Thanks,
Tariful Islam

I am also facing the same issue with flick action. please help.

I'm closing this issue due to inactivity.
If is a question rather than an issue, please send questions to the selendroid user group.
If you think it's an actual problem with selendroid and still experience the issue described on the latest release of selendroid feel free to file a new issue. If you do please provide a concise reproducible test case and describe what results you are seeing and what results you expect.


Read promo details when provided with a promo code

As a Promotion Service client
I need to get promotion details when customers apply a promo code
So that I can calculate the discounted product price
Details and Assumptions

We should find out who will be our client and set up data contract. Proposal:
{ "promoId": string,
"productId": string[],
"startDate": date,
"endDate": date,
"discountPercentage": num,
"discountDollar": decimal,
"isValid": boolean
}

Acceptance Criteria
Given the service is up
When service client requests a promo code
Then provide promo details and eligibility if found (200), or return 404 if no such promo.

Closed due to duplicate with issue #9


cargo test fails extendr-api

When trying to run cargo test for extendr-api, I get a segfault. Is this OS X specific or does the same problem show up on other platforms? I note that the "hello" example builds and runs fine.
clauswilke ~/github/extendr/extendr-api> cargo test
   Compiling extendr-api v0.1.4 (/Users/clauswilke/github/extendr/extendr-api)
    Finished test [unoptimized + debuginfo] target(s) in 1.76s
     Running /Users/clauswilke/github/extendr/target/debug/deps/extendr_api-6486cbe7629caf2f

running 7 tests
error: test failed, to rerun pass '--lib'

Caused by:
  process didn't exit successfully: `/Users/clauswilke/github/extendr/target/debug/deps/extendr_api-6486cbe7629caf2f` (signal: 11, SIGSEGV: invalid memory reference)

Well, it seems to succeed on Travis: https://travis-ci.org/github/extendr/extendr/builds/744744955
So maybe OS X specific.
@CGMossa Does it work for you on Windows?

can you try:
[profile.test]
codegen-units=1

@lebensterben Makes no difference.

Same here:
extendr/extendr-api ::  master is  v0.1.4 via  v1.50.0-nightly ~ 13s
𝛌 cargo test
    Finished test [unoptimized + debuginfo] target(s) in 0.01s
     Running /tmp/extendr/target/debug/deps/extendr_api-8a21d25a9c80c630
/tmp/extendr/target/debug/deps/extendr_api-8a21d25a9c80c630: error while loading shared libraries: libR.so: cannot open shared object file: No such file or directory
error: test failed, to rerun pass '--lib'

After fixing the libR.so missing problem, I get the same SIGSEGV error:
cargo test
    Finished test [unoptimized + debuginfo] target(s) in 0.04s
     Running /tmp/extendr/target/debug/deps/extendr_api-8a21d25a9c80c630

running 7 tests
error: test failed, to rerun pass '--lib'

Caused by:
  process didn't exit successfully: `/tmp/extendr/target/debug/deps/extendr_api-8a21d25a9c80c630` (signal: 11, SIGSEGV: invalid memory reference)

The crash happens in this line:
https://github.com/extendr/extendr/blob/8114138f483c8f31de3f3524826d147a11e0ae1e/extendr-api/src/robj.rs#L1273
I'll see if I can figure out how the code gets there.

So it panics when calling R_PreserveObject.
Also a very interesting finding:
thread 'args::tests::test_args' panicked at 'assertion failed: `(left == right)`
  left: `2`,
 right: `1`', extendr-api/src/args.rs:116:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

which comes from the line
assert_eq!(lang!("+", x = 1, y = 1).eval().unwrap(), Robj::from(2));

Keep running the tests again and again, I see more interesting errors:
Error: SET_VECTOR_ELT() can only be applied to a 'list', not a 'NULL'
Error: no more error handlers available (recursive errors?); invoking 'abort' restart
Fatal error: unable to initialize the JIT

thread 'args::tests::test_args' panicked at 'called `Result::unwrap()` on an `Err` value: "R eval error"', extendr-api/src/args.rs:116:44

Well, the memory management seems to be buggy.

@lebensterben Are you on OS X also? It's curious that things work just fine on Linux. I wonder whether it's bugs in the code or a problem with the toolchain. I believe we're using a different LLVM to generate the bindings and to compile the code. Maybe there's an incompatibility?

@lebensterben Are you on OS X also? It's curious that things work just fine on Linux. I wonder whether it's bugs in the code or a problem with the toolchain. I believe we're using a different LLVM to generate the bindings and to compile the code. Maybe there's an incompatibility?

@clauswilke Linux

Ok. For sure calling R from multiple threads is not safe and should not be done. We may have to enforce single-threaded use throughout. Where in the CI test is single threading enforced? I'm still somewhat new to Rust and don't know all the ins and outs.

Ah, I see: cargo test -- --nocapture --test-threads=1. With this command the tests complete without issues.

Closing this issue as segfaults under multi-threaded use are expected. The only fix is to not run multiple threads all talking to R at the same time.

well I think this is a very serious issue.

first this should be clearly documented.
second, why this causes SIGSEGV is still not clear.

a call to R_PreserveObject adds an object to an internal list of objects not to be collects, and a subsequent call to R_ReleaseObject removes it from that list. This provides a way for objects which are not returned as part of R objects to be protected across calls to compiled code: on the other hand it becomes the user’s responsibility to release them when they are no longer needed (and this often requires the use of a finalizer).

Unlike R_protect and R_unprotect where the order of protection and unprotection matters and is clearly documented, R_PreserveObject and R_ReleaseObject seems like agnostic for the order.

It is well documented, though (from here):

Calling any of the R API from threaded code is ‘for experts only’ and strongly discouraged. Many functions in the R API modify internal R data structures and might corrupt these data structures if called simultaneously from multiple threads.

You simply can't predict what's going to happen when you access the R API from multiple threads at the same time.
For related examples, see here: https://github.com/rdotnet/rdotnet/issues/7 or here: https://cran.r-project.org/web/packages/RcppThread/vignettes/RcppThread-vignette.pdf


Support per partition MessageReceiver

Is your feature request related to a problem? Please describe.
There's currently no easy way to know from which partition a message come from while using the Subscriber interface. This prevent to implement more complex control flow on a per partition basis. e.g.: We might want to stop processing new messages if there's a single outstanding message with an offset smaller than current offset minus X. In addition, there's no way to determine a unique id as only the offset is available. Ideally the publisher should include an id as an attribute, but there's use case where distinguishing between a message that have been publish more than once vs a message that have been deliver more than once can be useful.
Describe the solution you'd like
Modify SubcriberSettings.Builder to add the method setReceiverFactory(ApiFunction<Partition, MessageReceiver> receiverFactory). The method setReceiver(MessageReceiver receiver) should simply call this method, ignoring the Partition parameter.
Describe alternatives you've considered
Using AssigningSubscriber by giving PartitionSubscriberFactory that simply build a Subscriber from a SubcriberSettings where partitions have been set to a list of one element. Those are in the com.google.cloud.pubsublite.cloudpubsub.internal so it doesn't seem to be something that should be used outside the library.

Hi Guillame,
I have no issue exposing the partition in the interface, although I would do it in a slightly different way than you've described, by putting it on a well-known attribute. However, I want to understand your use case better: are you saying you want to implement additional flow control on top of the existing logic? What scenario are you attempting to handle.

if there's a single outstanding message with an offset smaller than current offset minus X

This section worries me because Pub/Sub Lite offsets are not guaranteed to be consecutive within partitions. Perhaps you can expand more on the specific behavior you're trying to implement so I can see if there's a better way to approach it?
-Dan

Hi Guillame,
I have no issue exposing the partition in the interface, although I would do it in a slightly different way than you've described, by putting it on a well-known attribute. However, I want to understand your use case better: are you saying you want to implement additional flow control on top of the existing logic? What scenario are you attempting to handle.

if there's a single outstanding message with an offset smaller than current offset minus X

This section worries me because Pub/Sub Lite offsets are not guaranteed to be consecutive within partitions. Perhaps you can expand more on the specific behavior you're trying to implement so I can see if there's a better way to approach it?
-Dan

Our current Kafka consumers process message in batch per partition. They don't process the next batch until the offset of the current batch have been committed. It looks a little like:
def process(partition: Long, processor: Seq[Message] => Future[Unit]): Future[Unit] = {
  def go(messages: Seq[Message], cursor: Cursor): Future[Unit] = {
    val next = fetchMessage(cursor)
    for {
      _ <- processor(messages)
      _ <- commitCursor(cursor)
     (nexMessages, nextCursor) <-  next
     _ <- go(nextMessages, nextCursor)
    } yield ()
  }

  for {
    currentCursor <- getCurrentCursor(partition)
    (message, nextCursor) <- fetchMessages(currentCursor)
    _ <- go(message, nextCursor)
  } yield ()
}

To reproduce this behaviour, we can simply buffer messages within the MessageReceiver.  After x seconds or when buffer reach a certain size, we can call the processor function making sure that the future returned by the previous call have been fulfilled first. However, since there's a single MessageReceiver share by all partitions, the buffering queue would also be share across all partitions. However, if we have a MessageReceiver per partition or if we can know the partition a message come from, we can reproduce this behaviour. (It wouldn't be strictly the same because AckReplyConsumer doesn't return an ApiFuture so we can't wait for the offset to be committed).
I think we will want to relax a little the processing ordering for new consumer and simply do ordering per key which the java client allow to do. However, there's a risk that consumer continue processing messages without ever committing offset if a single message is never ack or nack. If we know the partition of messages or if we have a MessageReceiver per partition, we can detect this situation and stop processing further messages.

Pub/Sub Lite exposes multiple models for interaction. One of those is the kafka consumer API available at https://github.com/googleapis/java-pubsublite-kafka. Might it be lower impedance to use that model?

process message in batch per partition

Do you use assign() with the kafka consumer, not subscribe()? I'm familiar with the kafka APIs so it would be better to deal in the exact loop within those APIs you call. If so, the equivalent in this library would be to create multiple subscribers with specifically set partitions https://github.com/googleapis/java-pubsublite/blob/425983545bb4d8ac526296a6db2e6aac4c17a512/google-cloud-pubsublite/src/main/java/com/google/cloud/pubsublite/cloudpubsub/SubscriberSettings.java#L156

They don't process the next batch until the offset of the current batch have been committed

I'm reading that you use autocommit from this? What I would suggest you do is just have a wrapper around your existing process behavior that does:
void processMessage(PubsubMessage message, AckReplyConsumer ackConsumer) {
  processor.apply(ImmutableList.of(message));
  ackConsumer.ack();
}

Unless it is important that your code handle batches for some reason?

there's a risk that consumer continue processing messages without ever committing offset if a single message is never ack or nack

This seems like the code would be incorrect then- if it never acknowledges successful completion of message processing, you have a bug, which should be rare. You can detect this using cloud monitoring metrics indicating that subscription backlog is growing.

ack or nack

Note that nack is not supported by default: You need to specifically install a NackHandler to handle when nack() is called, which must unconditionally acknowledge the message after performing intermediate processing.
Also feel free to reach out to me through email if you want to have a discussion about how we can best support your use case.


Issue with Capistrano3 deploys and proxy settings

We likely need code in one of the following files:
https://github.com/rollbar/rollbar-gem/blob/master/lib/rollbar/capistrano.rb
https://github.com/rollbar/rollbar-gem/blob/master/lib/rollbar/capistrano3.rb
so that the proxy settings can be pulled from environment vars and used in the Net request.

Looks like there are two ways for this to be handled - either from the rollbar config in the deploy.rb for the project or checking to see if there's an environment variable set. Given the variety of issues I've had with capistrano actually taking in environment variables, its probably better to use the ones set in deploy.rb

I dug into this a bit more - Net::HTTP will actually detect if the "http_proxy" environment variable is set and automatically use it. This may be a capistrano issue instead, I'm looking into it but the environment variable is set on my side.

Yes, this is still an issue.


No Way To Install Latest Patch or Version of Specific Ruby

It would be useful to have a way of installing the latest patch level and version of a given Ruby. For example:
rbenv install ruby # rbenv install 1.9.3-p362
rbenv install jruby # rbenv install jruby-1.7.1
rbenv install rbx # rbenv install rbx-1.2.4

rbenv install 1.9.3 # rbenv install 1.9.3-p362
rbenv install 1.9.2 # rbenv install 1.9.3-p320
rbenv install 1.8.7 # rbenv install 1.8.7-p371

This might be easiest by using symbolic links within the ruby-build folder. If this feature sounds useful I'd be happy to work on it.

If you don't know that then it is difficult.
If it is not acceptable to have fuzzy matching to install/use the latest version, then a useful behavior can be that a fuzzy match will result in a message
"The latest available version of ruby 2 is ruby 2.1.99 you can install this with
Rbenv install 2.1.99"


Improve Cloning Docs in Source Code

Summary
Improve documentation on public API surface of the cloning system, so it at least becomes clear what the different members of ICloneExplicit, CloneSurrogate etc. do and how they are used. Users should at least be enabled to provide their own surrogates and explicit cloning implementations where necessary.
Analysis

What's the difference between "handle" and "copy" methods in cloning?
What happens behind the scenes?
What needs to be handled by the user and what happens if it isn't done properly?
This blog entry might help.

Done.


Updates and housekeeping

Types of changes

[ ] Bugfix
[ ] Enhancement (new and/or improved behavior)
[ ] Refactoring (no functional changes)
[x] Code style update (no functional changes)
[x] Dependencies added, updated, or removed
[ ] Build related changes
[ ] Repository infrastructure changes (e.g. changes to issue / PR templates)
[ ] CI related changes
[ ] Documentation update
[ ] Other (please describe below)

Proposed changes / fixed issues
None.
Checklist

[x] My contribution is my original work
[ ] My contribution, or part of it, comes from projects with an MIT-compatible license AND I have updated the THIRD-PARTY-NOTICES file accordingly
[ ] I have added and/or updated related documentation (if applicable)
[ ] I have updated the "Unreleased changes" section in CHANGELOG.md according to the modifications I made

Other information
(n/a)

Codecov Report

Merging #37 (28e8193) into main (9fe74a4) will decrease coverage by 1.24%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
- Coverage   66.66%   65.42%   -1.25%
==========================================
  Files           3        3
  Lines         105      107       +2
  Branches       21       22       +1
==========================================
  Hits           70       70
- Misses         25       26       +1
- Partials       10       11       +1

Impacted Files
Coverage Δ

...Cecil.XmlDocNames/StringBuilderExtensions-Cecil.cs
69.23% <ø> (ø)

...ecil.XmlDocNames/StringBuilderExtensions-common.cs
53.84% <0.00%> (-9.80%)
:arrow_down:

Continue to review full report at Codecov.

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


[C++] bit_util: Remove the pre-computed kBitMask table ?

Describe the enhancement requested
I see the pr removed the kBitMask in arrow-rs[1]. Besides, abseil mentions that this optimization is useless in Haswell machine [2][3], and this might also suffer from cache eviction. Should we trying to remove them and use something like above:
// Bitmask selecting the k-th bit in a byte
// static constexpr uint8_t kBitmask[] = {1, 2, 4, 8, 16, 32, 64, 128};
static constexpr uint8_t GetBitMask(uint8_t index) {
  // DCHECK(index >= 0 && index <= 7);
  return static_cast<uint8_t>(1) << index;
}

// the bitwise complement version of kBitmask
// static constexpr uint8_t kFlippedBitmask[] = {254, 253, 251, 247, 239, 223, 191, 127};
static constexpr uint8_t GetFlippedBitMask(uint8_t index) {
  // DCHECK(index >= 0 && index <= 7);
  return ~(static_cast<uint8_t>(1) << index);
}

[1] https://github.com/apache/arrow-rs/issues/5771
[2] https://abseil.io/fast/9
[3] https://abseil.io/fast/39
Component(s)
C++

cc @felipecrv @pitrou

Well, feel free to do the change and run any benchmarks.

It's a bit faster on My M1 MacOS with existing benchmark ( arrow-bit-util-benchmark ), I'll push first and runing ursa benchmark


[Feature request] List container size using reg server

I think it would be a real nice addon to also add container size in the list of containers tags.

We would be interested in this feature too !

In my case, my goal is to identify the repo which use the storage the most. So, yes ! I would be a great feature ! ;)
:+1: :+1:

I made a PR in https://github.com/genuinetools/reg/pull/215 that should do this. Hopefully it helps out other people.


#1: add support for horses in database initialization

N/A

/paulo - can you please review this pull request?

/paulo - can you please review this pull request?


Release for v2023.01.10 IDEA and CLion

Please comment with any important changes that you want to make visible by adding to the Change log.

community PRs merged: #4206 #4239 #4250

Also:

#3737
#4131
#4180


Create a complex data format example

This should include some nesting to be able to test policy definitions against more complex data schemas

Closed, duplicate of gh-102


gherkin / languages : translate Rule to Czech Pravidlo in gherkin-languages.json

Summary
translated Rule to Czech Pravidlo in gherkin-languages.json
Details
gherkin-languages.json adjusted

Thanks for your contribution @plavcik!
Could you please distribute the changes to the different parser implementations?
To do so, from within the docker image (make docker-run), in /app/gherkin:
source ../scripts/functions.sh
rsync_files
make clean
make

That should sync gherkin-languages.json in the different implementations and then fix the CI

That should sync gherkin-languages.json in the different implementations and then fix the CI

Getting error in part make. Will return to it later.
><EMAIL_ADDRESS>test
> mocha

sh: 1: mocha: not found
npm ERR! code 127
npm ERR! path /app/gherkin/javascript
npm ERR! command failed
npm ERR! command sh -c mocha

LGTM but please add an entry under the "Fixed" header:
https://github.com/cucumber/cucumber/blob/master/gherkin/CHANGELOG.md

Not sure, what to put there. Could you help me?

Hi @plavcik,
Thanks for your making your first contribution to Cucumber, and welcome to the Cucumber committers team! You can now push directly to this repo and all other repos under the cucumber organization! 🍾
In return for this generous offer we hope you will:

✅ Continue to use branches and pull requests. When someone on the core team approves a pull request (yours or someone else's), you're welcome to merge it yourself.
💚 Commit to setting a good example by following and upholding our code of conduct in your interactions with other collaborators and users.
💬 Join the community Slack channel to meet the rest of the team and make yourself at home.
ℹ Don't feel obliged to help, just do what you can if you have the time and the energy.
🙋 Ask if you need anything. We're looking for feedback about how to make the project more welcoming, so please tell us!

On behalf of the Cucumber core team,
Aslak Hellesøy
Creator of Cucumber


Add privilege that user can get only role assigned to him.

Related to personium/app-cc-home#263 .
social-read make user can read all roles about target cell.

This is important because social-read is too strong privilege to give to visitors in general.
First we need to design external spec.

Let us read https://datatracker.ietf.org/doc/html/rfc3744.html
and see if there are any suitable api te extend to achieve this goal.


Check result projector slides

I didn't do anything for the projector. Please check and redo all projector related stuff.

Done.


Can you provide the checkpoint?

hello, can you provide the LJ checkpoint  in  Inference.ipynb, and the name is "./results/LJ_230518/Checkpoint/S_45000.pt"
Thank you.

Dear @yingfenging ,
Hello. I'm sorry, but the mentioned version was trained a long time ago, and the model's structure has undergone significant changes. Therefore, it may not be properly applicable to the current model. After making some additional modifications, I will share a version that has been trained briefly.
Best regards,
Heejo


Provide several examples combining NiaARM

Since the arm-preprocessing library is also intended to fit well with the NiaARM, it would be essential to prepare several examples involving NiaARM.

@lahovniktadej, this is very important

Examples provided in 8a657df7ec813c8f42c5b25c6487f693cd1e1bac.


Terminal smoke test is failing

https://monacotools.visualstudio.com/DefaultCollection/Monaco/Monaco Team/_build/index?buildId=32277&_a=summary&tab=artifacts

FYI I commented out the test. Please fix it and enable it.

@sandy081 The test is failing because the DOM is no longer filled with nodes so these tests can't work the way they did previously.
Is it possible with Spectron to pull a DOM node object, including any custom properties it has? If so I could attach a reference to the xterm.js object to the terminal element which would allow querying the terminal for this sort of information really easily.

@Tyriar Yes, you can access the DOM in Spectron and we do it in multiple places. For example refer to scm.
This will allow you to execute java script code on the renderer process that has access to DOM and let you return the model you want. But please be aware that, Since it runs in a different process than the test process, console log does not work.

PR with fix is out https://github.com/Microsoft/vscode/pull/35381, will merge in after release is branched off.


Checkout-UI <Icon /> interactive apperance doesn't inherit hover?

Please list the package(s) involved in the issue, and include the version you are using
Describe the bug
I feel this is a bug/oversight but if you place an <Icon /> inside a <Button> and use appearance="interactive" it won't inherit the button color change on hover/focus which seems wrong.
It looks like currently the icon simply adds color: inherit to the SVG which overrides currentColor which would otherwise inherit color changes on the parent anchor tag.
Steps to reproduce the behavior:

Add button with an icon set to interactive appearance
Hover/Tab focus
3.. No color change on icon but button text correctly changes color.

Expected behavior
I'd expect that the icon respects the change in color on hover/focus
Screenshots
Current result:

Expected result:

Additional context
<Button kind="secondary" to="">
                 <Icon
                            appearance="interactive"
                            source="mobile"
                            size="base"
                 />
               Click me
</Button>

@igor10k is this something your team would handle?

Hey @gil--, in this scenario, the quick fix would be to opt for the monochrome appearance for your Icon. This way the Icon will inherit the hover state color of the Button.
<Button kind="secondary">
  <Icon appearance="monochrome" source="mobile" />
  Click me
</Button>


better ux for loading and error states for menu fetches

Summary
Changes

[x] universalDatePicker()
[x] better ux for loading and error states for menu fetches. retry=false, so the loads are fast (untested for mobile though)
[x] light/dark/system colorscheme setting

?

not sure if we should be caching jwt in asyncstorage for web but thats what i did for right now

Verification

[ ]

Closes #
demo
https://github.com/icssc/ZotMeal/assets/83149801/75ff45b1-1996-487a-b49a-ad8f46a1ab50
ui for missing nutrition facts

Looks good 👍
I was able to run it well on android, but I got this error when running on web:

I think it has something to do with the metro config, I will keep looking into to it on my end.

Looks good 👍 I was able to run it well on android, but I got this error when running on web:

I think it has something to do with the metro config, I will keep looking into to it on my end.

Web should work in one of the previous commits (37bad80) and we can narrow down and debug

I still get the same error on that commit, this is most likely a client side issue.
Also, I noticed this issue when trying to run pnpm install:

I think it's a simple fix of changing the version in the tooling/eslint/package.json

I still get the same error on that commit, this is most likely a client side issue.
Also, I noticed this issue when trying to run pnpm install on the latest commit:

I think it's a simple fix of changing the version in the tooling/eslint/package.json

Yeah it's fixed in my upcoming commit


LoggingClient should log headers that are actually sent

Currently, at a very late stage when converting to a Netty object we do some header manipulation, such as scrubbing HTTP/2 pseudoheaders when sending as HTTP/1. This makes the logs confusing and they should log the actually sent headers instead.

What's interesting is some users actually want the opposite. They want to know what headers they tried to send. Should we keep both?

Yeah probably should have both, or an option for both, in that case. We have a couple different type of loggers and I wonder if that can be the knob too.
LoggingClient/Service -> What user meant to send / receive, semantically
AccessLoggingService and a new Client -> What was actually sent / recieved, over the wire


Swipeable stack is not working when you call setState inside onSwipeCompleted or onWillMoveNext

When I call setState inside those callbacks, the next time you swipe won't work.

I found a solution for that, i added a ValueNotifier for index, then listen SwipeableStack current index from ValueNotifier then call setstate  from there.
  ValueNotifier<int> pageIndex = ValueNotifier<int>(0);

  @override
  void initState() {
    super.initState();
    pageIndex.addListener(() {
      int leftCards = cards.length - pageIndex.value;
      if (leftCards < 5) {
        print('fetching moooooreeee');
        fetchMore();
        setState(() {});
      }
    });
  }

    child: CircularProgressIndicator.adaptive(),
            )
          : SwipableStack(
              onSwipeCompleted: (index, direction) {
                pageIndex.value = index;

                if (direction == SwipeDirection.right) {
                  //handleInteraction(index, false);
                } else {
                  likeCountLeft--;
                  //handleInteraction(index, true);
                }
              },

            ),

Thanks. I'll try it out later