Fix logic related to isTriviallyDuplicatable.

In SILInstruction::isTriviallyDuplicatable():

Make deallocating instructions trivially duplicatable. They are by
any useful definition--duplicating an instruction does not imply
reordering it. Tail duplication was already treating deallocations
as duplicatable, but doing it inconsistently. Sometimes it checks
isTriviallyDuplicatable, and sometimes it doesn't, which appears to
have been an accident. Disallowing duplication of deallocations will
cause severe performance regressions. Instead, consistently allow
them to be duplicated, making tail duplication more powerful, which
could expose other bugs.

Do not duplicate on-stack AllocRefInst (without special
consideration). This is a correctness fix that apparently was never
exposed.

Fix SILLoop::canDuplicate():

Handle isDeallocatingStack. It's not clear how we were avoiding an
assertion before when a stack allocatable reference was confined to
a loop--probably just by luck.

Handle begin/end_access inside a loop. This is extremely important
and probably prevented many loop optimizations from working with
exclusivity.

Update LoopRotate canDuplicateOrMoveToPreheader(). This is NFC.

I figured out this is what was been blocking another correctness fix:
https://github.com/apple/swift/pull/27444
That fix was regressing performance because it was correctly checking isTriviallyDuplicatable before cloning blocks.

@swift-ci test

@swift-ci benchmark

@swift-ci test source compatibility

Performance: -O

Regression
OLD
NEW
DELTA
RATIO

Set.isDisjoint.Seq.Box.Empty
145
160
+10.3%
0.91x (?)

Improvement
OLD
NEW
DELTA
RATIO

ClassArrayGetter2
1830
120
-93.4%
15.25x

MapReduceClass2
210
42
-80.0%
5.00x

MapReduceClassShort2
376
203
-46.0%
1.85x

Set.isDisjoint.Seq.Box25
484
296
-38.8%
1.64x

Set.isDisjoint.Seq.Box0
658
408
-38.0%
1.61x

Set.isSuperset.Seq.Box25
153
96
-37.3%
1.59x

Set.isSuperset.Seq.Box0
242
184
-24.0%
1.32x

ArrayAppendGenericStructs
1760
1340
-23.9%
1.31x (?)

MapReduceLazyCollectionShort
37
34
-8.1%
1.09x (?)

Code size: -O

Regression
OLD
NEW
DELTA
RATIO

DictionaryGroup.o
16197
17573
+8.5%
0.92x

MapReduce.o
31909
32261
+1.1%
0.99x

SetTests.o
141957
143437
+1.0%
0.99x

Performance: -Osize

Regression
OLD
NEW
DELTA
RATIO

ObjectiveCBridgeStubFromNSDateRef
3780
4200
+11.1%
0.90x (?)

Improvement
OLD
NEW
DELTA
RATIO

ObjectiveCBridgeFromNSStringForced
2735
2545
-6.9%
1.07x (?)

Code size: -Osize

Regression
OLD
NEW
DELTA
RATIO

Hash.o
18997
19445
+2.4%
0.98x

Performance: -Onone

Regression
OLD
NEW
DELTA
RATIO

ObjectiveCBridgeStubToNSDate2
1320
1470
+11.4%
0.90x (?)

Improvement
OLD
NEW
DELTA
RATIO

ObjectiveCBridgeStubFromNSDateRef
4850
4370
-9.9%
1.11x (?)

Code size: -swiftlibs

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

The case of partial_apply [stack] is handled earlier by querying the isAllocatingStack() predicate so this part of the change is NFC.

I don't think the previous support in Loop canDuplicate for on-stack PartialApply actually worked because it only handled the PartialApply, not the corresponding DeallocStack.
I added the full support here
https://github.com/apple/swift/pull/28261


updating the incorrect URI for the claim type

The URI for password expiration claims are http. Not https. See https://adfshelp.microsoft.com/AadTrustClaims/GenerateClaims for sample claims rules.

Thanks for fixing!


Fix starvation issue with session processor when MaxCallsPerSession > 1

Fixes https://github.com/Azure/azure-sdk-for-net/issues/14938
The heuristic we use to determine when a session should be closed when using the ServiceBusSessionProcessor in the round-robin case (i.e. when no specific sessions are listed in the ServiceBusSessionProcesserOptions) is the following: a receive call times out and there are no other threads processing the session. If MaxCallsPerSession is more than 1, the session processor can end up leaving sessions open for a long time even when there are no messages for the session, as new threads will keep getting assigned to the session. To fix this, we avoid adding new threads to a session when a receive call has already timed out. This issue manifested in the MaxCallsPerSessionRespected test timing out occasionally.
Also, updated logging to include SessionId when opening a receive link, consolidated the session open logic, and added additional logging for processor event handlers.

/azp run net - servicebus - tests

/azp run net - servicebus - tests


Fail to reset reader group with no checkpoint recovery

Problem description
In FlinkPravegaReaderRGStateITCase, we have a test for no checkpoint recovery case. We expect the Pravega reader group should be reset to the beginning position with the help of the checkpoint hook when there is no checkpoint for recovery.
However, https://issues.apache.org/jira/browse/FLINK-20222 changes the behavior we once had for this story. The change brings an enum of OperatorCoordinatorRestoreBehavior with a check for the hook.reset() . By default, it is a regional recovery strategy which sets it to SKIP, then the hook.reset() is not called. This patch is added in both 1.11.3 and 1.12.0, which causes the test case failure that blocks the connector integration.
Problem location
Flink's CheckpointCoordinator
Suggestions for an improvement

https://issues.apache.org/jira/browse/FLINK-21178 is created to track the Flink issue

https://issues.apache.org/jira/browse/FLINK-21178 is created to track the Flink issue


Add an integration test for GCM sink

Assigning to me :)

cc @piosz.

I can take this (with medium priority).

closing as obsolete


Actions show up as extra noise in JSX panel

Is there anyway to remove this noise?

We use a wrapper function to override the toString of the function
/**
 * Overrides the toString on a function so that it addon-jsx prints
 * the callbacks in a copy-paste-able way.
 */
export const callback = <T extends Function>(fn: T): T => {
  /** A toString to render the function in storybook */
  // eslint-disable-next-line no-param-reassign
  fn.toString = () => "() => {}";
  return fn;
};

:rocket: Issue was released in v7.3.1 :rocket:

This worked for me with the v6 story writing approach.
export const parameters = {
  jsx: { functionValue: (fn: () => unknown) => fn.name || 'func' },
  ...
};

This worked for me with the v6 story writing approach.
export const parameters = {
  jsx: { functionValue: (fn: () => unknown) => fn.name || 'func' },
  ...
};


CMake 3.19 fix for find_package_handle_standard_args

Signed-off-by: Nick Avramoussis<EMAIL_ADDRESS>Fixes: https://github.com/AcademySoftwareFoundation/openvdb/actions/runs/398576400
I don't know why this explicit error was added

@danrbailey I pushed this up before I saw the windows failures, I've re-kicked off the CI on this commit to verify


OneDrive link not working

Hello, I was trying to download the LAV-DF annotations from OneDrive, but the link is not working and I can not use Baidu.
Would it be possible to update the OneDrive link, so the features are downloadble?
Thank you :)

It's fine for me to check the link here, maybe you need to check your internet


Support for quoted booleans in CR

Is your feature request related to a problem? Please describe.
The operator is unable to parse quoted booleans.
While developing a tiny Helm chart for deploying CRs for "grafanas.integreatly.org", I wanted to get use of tpl:
apiVersion: integreatly.org/v1alpha1
kind: Grafana
metadata:
  name: {{ include "grafana-deployment.fullname" . }}
  labels:
    {{- include "grafana-deployment.labels" . | nindent 4 }}
spec:
  {{- tpl (toYaml .Values.grafanaDeployment) . | nindent 2 }}

That allows me to use templates inside templates, e.g. for defining oauth settings:
grafanaDeployment:
  config:
    auth:
      oauth_auto_login: "{{.Values.keycloak.automaticRedirect}}"
    auth.generic_oauth:
      enabled: "{{.Values.keycloak.enabled}}"
      name: Keycloak
      allow_sign_up: true
      client_id: "{{.Values.keycloak.clientId}}"
      client_secret: "{{.Values.keycloak.secret}}"
      auth_url: "{{.Values.keycloak.url}}/auth/realms/{{.Values.keycloak.realm}}/protocol/openid-connect/auth"
      token_url: "{{.Values.keycloak.url}}/auth/realms/{{.Values.keycloak.realm}}/protocol/openid-connect/token"
      api_url: "{{.Values.keycloak.url}}/auth/realms/{{.Values.keycloak.realm}}/protocol/openid-connect/userinfo"
      role_attribute_path: "contains(roles[*], '{{.Values.keycloak.adminRole}}') && 'Admin' || contains(roles[*], '{{.Values.keycloak.editorRole}}') && 'Editor' || 'Viewer'"
      # [...]

Which in turn lets me define certain settings in one place without the need to repeat URLs or make changes in complex values like the abovementioned role_attribute_path:
keycloak:
  enabled: true
  automaticRedirect: true
  url: http://keycloak.localhost
  realm: test
  clientId: grafana
  clientSecret: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
  adminRole: grafana-admin
  editorRole: grafana-editor

Sadly, in this case, booleans get quoted like in the example below, thus making the operator fail to interpret the CR:
[...]
  spec:
    config:
      auth:
        oauth_auto_login: "true"

E0923 20:37:29.621641       1 reflector.go:123] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:204: Failed to list *v1alpha1.Grafana: v1alpha1.GrafanaList.Items: []v1alpha1.Grafana: v1alpha1.Grafana.Spec: v1alpha1.GrafanaSpec.Config: v1alpha1.GrafanaConfig.Auth: v1alpha1.GrafanaConfigAuth.OauthAutoLogin: ReadBool: expect t or f, but found ", error found in #10 byte of ...|o_login":"true"},"au|..., bigger context ...|0"},"spec":{"config":{"auth":{"oauth_auto_login":"true"},"auth.generic_oauth":{"allow_sign_up":true,|...
(If applicable)If your feature request solves a bug please provide a link to the community issue
none
Describe the solution you'd like
The operator should treat "false" as false, "true" as true. I only speak Python, so can't really give an advice here :)
Describe alternatives you've considered
The only workaround I've been able to find is to avoid using tpl with booleans for now.
Additional context
none
Existing solutions
none

Hi @weisdd , thanks for reporting, I'll have a look into how we can accommodate for both strings & boolean

I'm not quite familiar with helm, and not sure how it works, but could templates perhaps have escape characters for quoted booleans? Having done some research into this I've discovered that the change isn't as trivial as it might seem, to accommodate for both strings and bools would require either changing the grafana_type of any *bool to string or implementing a BoolOrString function, something like  https://github.com/kubernetes/apimachinery/blob/master/pkg/util/intstr/intstr.go

@HubertStefanski A Helm chart normally has a set of templates (the templates folder) and Values.yaml. In a template, there's no need to quote expressions like {{ .Values.keycloak.enabled }} - they are expected there by design. Values.yaml is a different thing, it has to follow pure YAML rules, so you can't use templating functions without first quoting your expression or using line folding. That's where the issue begins: if something is quoted, it is a string. As simple as that. I've tried line folding (=> no quotes, but the result is not a boolean anyway), anchors (they work well only within a single file, so the relation will break when passing values from multiple files), the node tag !!bool (cannot be applied here, as the conversion starts before the template is processed) - nothing helped.
If my understanding is correct, moving from *bool to string will be a breaking change for the existing installations. - The new operator will not be able to parse booleans, the old one - strings. So, everyone will have to adjust their charts to quote the respective values.
Having BoolOrString is a much better option as it opens the door for smooth transition. I do understand though that the change should not be a top priority for the project, it's rather a minor corner case. So, it's fine to not have it implemented at all.

@weisdd Implementing BoolOrString sounds like a possible solution (similar to IntOrString for Kubernetes port references) that is also backwards compatible. I'm not sure when we would be able to work on that, but would accept a PR if someone wants to take it on.

I'll take a look at this

Ok I think I'm most of the way to implementing this. Just needs some testing and an issue with controller-gen being investigated more deeply.
It seems to be that we're hitting into this issue due to BoolOrString requiring custom (de)serialization logic which controller-gen doesn't seem to cope well with.
The appropriate approach seems to be that we can use the Type override marker comments to just force it to treat them as strings for the sake of the schema, but this is currently not seeming to work as per the example in that issue.

PR [WIP] here: https://github.com/grafana-operator/grafana-operator/pull/418

@DeanBrunt do you need help with CRD generation for this change?

@DeanBrunt do you need help with CRD generation for this change?

When I last looked at this, we hit the bug I referenced in the previous comment but it looks like this is now resolved.
I've not currently got time to try upgrading the CRD generator to attempt regeneration so I'd be happy if someone else had bandwidth to attempt this.
I think the main meat of this change is there and that this was the main blocker. Obviously I suspect the WIP PR is going to need a rebase now too if someone is happy to take over that PR for now otherwise I'm happy to pick it up again when I have some time.

@weisdd have you been able to come up with a workaround for your issue?
Currently no one have time to prioritize this issue from the maintainers point of view. So unless you or someone from the community takes a stab at this it won't happen for a while.
I'm also curios if you could share the helm chart that you have created?
My very naive feeling is that this should be possible to solve within the helm chart.

@NissesSenap Unfortunately, I don't have the chart at hand anymore as I changed companies.
In the end, I just stopped trying to resolve a boolean through tpl ("{{.Values.keycloak.enabled}}"  - more details can be found in the first post) and left the value hardcoded to true, because we always relied on OIDC integration anyway.
At the time when I opened this issue, I wasn't aware how tricky it would be to work with dynamic typing in Go. Since it's such a corner-case, maybe it's not worth even trying to implement the feature at all.

Yeah that would have been my suggestion as well. Dove since no one else have asked for this feature i will close it.
Thanks for you quick response @weisdd


[BUG] verify LIMIT_BUILD_RESOURCES=0 by default with --container_build option

If --build-arg LIMIT_BUILD_RESOURCES=1 is not specified, the container will be created with LIMIT_BUILD_RESOURCES=0 by default.
but looks like it is not happening.
We need to check this that with --container_build option if --build-arg LIMIT_BUILD_RESOURCES=1 is not passed then does container get LIMIT_BUILD_RESOURCES=0  by default.

we tried builds to observe teh above as suggested by @cdeepali
on passing
--container_build_option without LIMIT_BUILD_RESOURCES. Default value is 0
--container_build with LIMIT_BUILD_RESOURCES=1. Value is 1

Thanks @ketank-new


what driver is responsible for mmcblk devices?

I'm trying to boot NixOS on BPI-R3, here's my config and packages. It mostly works, but doesn't boot because /dev/mmcblk0 doesn't appear. I assume that's because I'm using the default kernel (linux_testing), I saw someone else using it so I figured it'd be fine.
Do you have any ideas why the device isn't appearing? I made sure mmc_block kernel module is loaded. Comparing dmesg logs, my logs lack mtk-pcie output, but I'm not sure what to do with this info. Do I have to compile a custom kernel, or can I use the default one?

I saw someone else using it so I figured it'd be fine.

I don't see how the example "homelab" configuration could be functional.  It is applying all four of the  devicetree overlays.  The NOR and NAND ones and the SD, and eMMC overlays are mutually exclusive due to the wiring of the BPi-R3.

here's my config

I might have missed it, but I don't see any devicetree overlays being applied in your config; for the storage device to be detected, you'll need to apply the appropriate devicetree overlay for your backing storage at build time.
For SD based boot, the following.  Though this repo chooses to use a local copy of said file.
{config, ...}: {
  hardware.deviceTree.overlays = [
      {
        name = "mt7986a-bananapi-bpi-r3-sd.dtbo";
        dtboFile = "${config.boot.kernelPackages.kernel}/dtbs/mediatek/mt7986a-bananapi-bpi-r3-sd.dtbo";
      }
  ];
}

Module wise, it's mtk-sd.

Do I have to compile a custom kernel, or can I use the default one?

I suspect you can get the device to boot without a custom kernel, but I expect none of the ethernet ports will be functional.  I had to compile in kernel/drivers/net/ethernet/mediatek/mtk_eth.ko and kernel/net/dsa/tag_mtk.ko.
Someone reported this upstream, but it looks like they didn't follow up on the response; see<EMAIL_ADDRESS>There's similar issues with kernel/drivers/pci/controller/pcie-mediatek-gen3.ko as well IIRC.

Thanks, I confused dtb and dtbo files so I thought setting deviceTree.filter would be enough.
Ethernet didn't work (I did use a custom kernel after all, but mtk_eth wasn't compiled in), so I'll rebuild the kernel and try again.


Git/Github documentation enhancements

We are seeing a recurring phenomenon where PRs become very convoluted, apparently because of various git merge operations being used and replaying some actions. As one way to address this situation, I have some recommendations about the docsite with respect to Git/GitHub/code maintenance.

Nowhere do we suggest that contributors not use git merge for maintaining their branches; we should specifically mention this somewhere to amplify/expand on the recommendation that they do use git rebase.

Similarly, we need to make it clear in the appropriate place(s) never to commit to main, even in your fork.

The docsite currently has quite a few pages that go over things like code setup and git/github operations: https://numberscope.colorado.edu/doc/doc/running-from-source/, https://numberscope.colorado.edu/doc/CONTRIBUTING/, https://numberscope.colorado.edu/doc/doc/onboarding/,  https://numberscope.colorado.edu/doc/doc/working-with-git-and-github/, https://numberscope.colorado.edu/doc/doc/gitting-it-right/, https://numberscope.colorado.edu/doc/doc/pull-request-checklist/. I think this ends up being a bit confusing/hard to follow. Ideally, we would determine the information that needs to be covered, and segment it clearly into some of these pages, and try to avoid duplicating material in different pages.

We should pick one scheme of cloning/remote naming and stick to it everywhere. Currently most things are "clone from fork, so that the fork is origin, and add the official repo as upstream". That organization definitely works, so we could make those instructions explicit and consistent everywhere (they currently are not). I actually use "clone from the official repo, so that the official is origin, and add the fork as fork". I personally find the latter easier to keep track of and less error-prone, but I don't want to enforce my perspective on everyone. We should discuss and pick a scheme, and make sure all the docs are consistent with it. If the consensus is "fork = origin, official = upstream" then I will switch to that scheme so that I am dogfooding our instructions.

Worse, there are a number of places where one page contradicts another. The remaining points in this list catalog a number of such instances. I am not making any claim that this list is exhaustive.

https://numberscope.colorado.edu/doc/CONTRIBUTING/ says to sync a fork with the Github UI. https://numberscope.colorado.edu/doc/doc/working-with-git-and-github/ has a different command-line procedure, that omits the step of pushing back to the fork (and doesn't happen to be the one I used before the "sync fork" button on the UI. We should pick one and just recommend that. If we emphasize no commits to main, then the Github UI is the simplest way to go.

On https://numberscope.colorado.edu/doc/doc/running-from-source/ we recommend VScode. On https://numberscope.colorado.edu/doc/doc/onboarding/ we say there isn't an editor we recommend. And then on https://numberscope.colorado.edu/doc/doc/visual-studio-code-setup/ we recommend VScode + Volar. We can offer info about VScode, but we should be consistent in how we frame it: as info-only or as a recommendation. I prefer the former because I's prefer not to use VScode, but if we make it an official recommendation I will try to dogfood it.

OK, I am sure this is not yet exhaustive but I have typed enough. I will add more internal contradictions as time permits.

Amplifying item 4 from above, https://numberscope.colorado.edu/doc/doc/running-from-source/ says to clone the official repo, https://numberscope.colorado.edu/doc/CONTRIBUTING/ says to clone a fork, https://numberscope.colorado.edu/doc/doc/onboarding/ prefers to clone a fork but mentions you can clone the official repo if you don't want to bother forking, and the "Push a branch" section of https://numberscope.colorado.edu/doc/doc/working-with-git-and-github/ strongly implies that you cloned a fork.

Item 10 in https://numberscope.colorado.edu/doc/CONTRIBUTING/ links to a non-existent heading in https://numberscope.colorado.edu/doc/doc/working-with-git-and-github/. But then it has its own "Submit a pull request" section. That section mentions to sync your fork, but the pull request checklist does not. And neither place ever mentions to be sure the branch you are submitting as the PR is based on current main, as it should be. Suggestion: move the steps for actually submitting the pull request into the pull request checklist, and just link there from everywhere that talks about submitting a request, and get all of the steps straight in that one location.

Not a contradiction, but a suggestion: in the push changes section of https://numberscope.colorado.edu/doc/doc/working-with-git-and-github/ it just says to git push. But a newly-created local branch on the user's machine would not generally be set up to track any remote, so the git push would not know what to do. So there should be some further explanation about how/when to do something like git push myremote mybranch and how to set up tracking if desired (I don't think just pushing once does it, but am not really sure as I never bother to set up tracking myself, I just always use the full form with a remote and a branch).

Another suggestion: the stashing section on that same working with git and github page says

Alternatively, if you wish to discard those changes from the stash, issue the following command:

I think it should make clear that the pop command both applies the changes and subsequently discards them from the stash, not just discards them (I think there is a different command that does that...)

The "Create a Branch" section on that same page says:

To create a branch and switch to it in one command, issue the following command:

Doesn't it make a difference what branch you currently have checked out when you do this? Shouldn't it tell you to first check out the branch that you want the new branch to be created from? (often main?)

The "Push Changes" and "Push a Branch" sections on that page are confusing and potentially seem contradictory. There should either be just one section or they should be carefully made complementary and refer to each other.

I think it should make clear that the pop command both applies the changes and subsequently discards them from the stash, not just discards them (I think there is a different command that does that...)

The command you are thinking of is git stash apply, I think.

I think it should make clear that the pop command both applies the changes and subsequently discards them from the stash, not just discards them (I think there is a different command that does that...)

The command you are thinking of is git stash apply, I think.

No, git stash apply is already mentioned in our docs. That applies but does not discard. git stash pop applies and discards. I think there is yet a third command that discards without applying.

In today's meeting we discussed what we think our Git workflow should be:

Clone the original numberscope/frontscope repo.
Create a branch in that repo.
Once you have a unit that can be considered for a PR, create a fork.
Push your branch to the fork.
Open a PR based on the branch in your fork.

This makes updating the main branch easier than if you were to fork then create a branch in your fork.

Note that recent prolific contributor @Vectornaut prefers merge to rebase; there should be a project discussion with him to understand the pros and cons before finalizing what to recommend in our documentation.

I think the delft PR series demonstrates the need to use rebase, so I would consider the strategy here settled. This should be part of the documentation overhaul for alpha.

Resolved in ui2 per #463. Closing.


Auth digest responses get proxied to udp irrespective of original uri transport

When a 401 auth challenge is received for a request (e.g. REGISTER) sent using TCP or TLS transports, the response reply is always proxied to sip:<ip_address>:<port> on the default UDP transport which breaks the exchange.
This is caused by the code around line 107 of digest-client.js which is trying to avoid new DNS lookups but in doing loses critical elements of the original uri.
Have a proto-fix, will test and submit a PR shortly.

Thank you!  will push this in a release today or tomorrow


fix: improve docs on how to define an extension

The PR improves the docs on how to define and use extensions

This PR has a fairly simple change targeting only one section but the merge conflict was difficult to resolve. I re-created the changes in another PR and merged it, so closing this one: https://github.com/prisma/docs/pull/5499


REQ: Push gateway

Guys, would love to see an addition to have a PUSH gateway
extreme usefull if we use softphones with this asterisk addon, so it wakes up devices using  PUSH
this is a great project: https://github.com/BelledonneCommunications/flexisip
would be great if it could be added or maybe as a saperate addon:
https://github.com/BelledonneCommunications/flexisip

But doesn‘t this require to a have special accounts from Apple and Google?
flexisip integrates with Apple APN and Google GCM AFAIK.

So from what I understand this asterisk project aims at providing intercom at home. With the SIP based doorbell for example.
On the other hand one could use HA companion apps notification to signal an incoming call and then open a webview with the SIP card to establish intercom.
For my smartphone I will probably just use one of the well-know SIP clients like Zoiper or Bria Mobile and use there Push Notification for VoIP stuff together with an additional SIP provider in the internet to forward a call frim asterisk to this SIP provider that my smartphone is registered with.

I mainly use it for door intercom
The HA-SIp is nice, but i dont use it anymore for now, still havent found a good way to combine the HA-SIP card with softphones, it just doesnt work, i cant call an conference togeteher with softphones...
there are indeed softphones that uses their own push server, thats why would be nice that we have our own push server with the asterisk addon

So from what I understand this asterisk project aims at providing intercom at home. With the SIP based doorbell for example.

Yes, that is exactly what I'm aiming for. To call between your HA tablets. But the project grew and became more popular than I thought so now I'm also focusing to use it to call your doorbell, even with your phone when your not home. Which is hard because of security, certificates, mobile, codecs etc. So using a softphone app could be easier, or your only option depending on your situation.

On the other hand one could use HA companion apps notification to signal an incoming call and then open a webview with > the SIP card to establish intercom.

Yes, you can also set a extension in the url to call once the card is loaded, so you can just click on the notification to connect to your doorbell (which is parked or in a conference or something).
Anyway, I will look at the flexisip project and try to implement it. But could take a while. (currently working on the integration)

Thnx, no hurry :-)
Would be a great addition though, makes it complete

I read a bit further about flexisip push notifications and how it works on iOS and Android.
At least for iOS it is not easy and cheap. You must have an Apple Dev Account to be able to get a VoIP services certificate for use with the APNs. Those certificate signed by Apple have to be used by flexisip to be able to use Push Notification on iOS for VoIP applications. Even for normal push notification you need to have a certificate signed by Apple.
I am not sure if you get those certificates signed by Apple as a normal Apple Developer with the "individual" plan for 99USD/year.
Further details here: https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_certificate-based_connection_to_apns
https://wiki.linphone.org/xwiki/wiki/public/view/Flexisip/Configuration/Push notifications/#HConfiguringforeachmobileplatform
Also I think there is a misunderstanding about flexisip, push notification and softphones on mobile platforms.
Let me cite this:
"PushNotification module allows Flexisip to wake a liblinphone-basd application up when a chat message or call invite cannot be delivered because the application is unavailable. This feature has become crucial since mobile OSs got used to making the application to hibernate in order to save power.
Today, Flexisip supports native push systems of Android, iOS and Windows Phone ; but can also delegate the work of sending the push request to a tier service using HTTP GET API."
(from here)
So flexisip with push notifications onyl works with liblinphone-based apps.
It won't work with Zoiper or Bria Mobileor other VoIP apps for example. They have there own server solutions with push notification support.
Do you know any good liblibphone-based apps except the linphone and the linhome app itself?
I tried it and I was not satisfied with it. The linhome which claims to be a good solutions for SIP-based doorphones with video does not work stable either. However, they support early media during ringing with video. I tried it.

Push notifications is basically a permanent encrypted TCP connection to Apple or Google servers even when the device is sleeping.
So the your server side has to register with Apple and Google servers to send push notifications in a generic way.
However, more important your corresponding app must also be known to Apple Google APNs.
You cannot wake up a "foreign" app from your server via APNs.

yeah , its a diffcult thing
i wasntr aware that flexisip only worked with linphone/linhome only
But i was looking for more then a year for a good softphone client
The biggest problem is indeed early media, it works for most softphones, but PBX are not able to send early media to ring groups... early media only works on 1-1 call... but quite useless then
I have finally found a good app, where you can specify an RTSP stream manually as early media (preview)
The code is bases on linphone sources:
https://play.google.com/store/apps/details?id=com.basip.app
i use it, works perfect, they use their own push service, but you can specify another like flexisp
{"network":{"transport":"udp","stun":"stun.l.google.com:19302"},"account":{"number":"XXXX","host":"sip.bas-ip.com","name":"Indoor Station","password":"XXX"},"push_server":"http:\/\/push.bas-ip.com"}
quite easy to change the push server there

Interesting, I also tried this app on iOS: https://apps.apple.com/de/app/bas-ip-intercom/id1267232886
I had some problems with the RTSP streaming though.
Maybe I will give it another try.
My educated guess concerning the realisation of push notifications within this app is that they just use "local push via websocket" as the HA companion apps do it. See local push: https://companion.home-assistant.io/docs/notifications/notification-local/
The push server seems to use only HTTP and not HTTPS.
Have you tried sniffing the traffic?
But again I think that BAS IP push stuff will also only work if you use a SIP account on their server.

Yeah, I use their PBX server now to test... Works perfect, but the option to use another push server is indeed hidden in the app I think, but with that XML, you can override it I think, you can just use that XML to fetch the config, instead of manually inserting the sip configuration...
Not tested yet, but the push url must be there for a reason

I would say that anything which goes against using Home Assistant as a client is discouraged for the project.
If HA (web or mobile) does not work as good as other SIP clients, I think we should instead focus in trying to improve it to make it work as good as.
That's my 2-cents.

Hmm, I see it as 3 seperate modules...
Asterisk / integeration  / client...
I mainly use the first 2 because my hardwares (indoor stations) are customized, I can only run some APK on it ..
Only possible with softphones...
As for calling purposes externally, I think softphones is better ..
For internal tablets , with android, dedicated for HA Lovelace, then indeed the ha-sip is a good solution


Several improvements around RSA crypto

Since RSA is asymmetric cryptography sometimes it is useful to have an ability to encrypt with private key and to decrypt with public key in addition to common approach. I extended MIHPrivateKey and MIHPublicKey protocols to support it in addition to MIHRSAPrivateKey and MIHRSAPublicKey updates.
Another thing is that forcing RSA_PKCS1_OAEP_PADDING is not useful for general approach. So I have added ability to customize rsa padding via special property of MIHRSAPrivateKey and MIHRSAPublicKey.

Thank you very much for helping improving this project. However can you please add some unit tests for your changes?

Sure! Please review them. Also I propose set default rsa padding to RSA_PKCS1_PADDING since it is more standard value in comparison with RSA_PKCS1_OAEP_PADDING.

I wasn't aware of RSA_PKCS1_OAEP_PADDING is more popular. The test looks fine and again thank you for spending your time on helping on this project.


Log in button is not enabled when internet connection comes back

To reproduce:

Start Riot while the data is off : log in button is disabled
Enable the wifi: riot log in button is still disabled

Validated.
@ylecollen and @sabrinaj: when we start Riot with internet on, and a few seconds later the internet is off, the LOGIN button stay enabled.
Maybe we could disable it in this case if we folow the same logic ?


how to send vector3 list from unity to python

You need to find a way to convert it into bytes and send it. Or just send it as string separated by commas e.g. "0.1,3.2,-4.9".
This is beyond the scope of this repository. You can study how to send bytes using ZeroMQ and how to convert vector3 to bytes.


rewrite_string should return `Option

https://github.com/nrc/rustfmt/issues/217

I think this is unnecessary complexity unless there are circumstances where rewrite_string could fail to format the string (which it can't at the moment). If we add such things I'd be happy to make this change then. Although it does make things more uniform with other rewrite functions, I'm not too concerned about that since they already take different arguments in some cases.
Do you have any other motivation for this change?

It was solely because i saw the issue. It took me two seconds.

Oh, hey, I missed the issue link, sorry!
@marcusklaas what's the motivation for this?

It can fail when the combined length of the opening sequence, closing sequence and a single character is greater than width. In other words, when width < 3. While seemingly pathological, it can and does happen, mostly in list formatting.
-----Original Message-----
From: "Alex Newman"<EMAIL_ADDRESS>Sent: 5-9-2015 00:16
To: "nrc/rustfmt"<EMAIL_ADDRESS>Subject: Re: [rustfmt] rewrite_string should return `Option (#259)
It was solely because i saw the issue. It took me two seconds.
—
Reply to this email directly or view it on GitHub.

@marcusklaas does that mean there should be return None in rewrite_string somewhere (with this PR)?

I think so, yes.
-----Original Message-----
From: "Nick Cameron"<EMAIL_ADDRESS>Sent: 5-9-2015 00:21
To: "nrc/rustfmt"<EMAIL_ADDRESS>Cc: "Marcus Klaas de Vries"<EMAIL_ADDRESS>Subject: Re: [rustfmt] rewrite_string should return `Option (#259)
@marcusklaas does that mean there should be return None in rewrite_string somewhere (with this PR)?
—
Reply to this email directly or view it on GitHub.

*nod doesn't sounds to crazy

I'm confused on the error case
are you talking about a short circuit at the top that does a
if fmt.width < 3 {
return None;
}

By extension, ‘rewrite_commentshould probably return an option as well. Simply changing its signature and wrapping its calls torewrite_comment` should do the trick.
-----Original Message-----
From: "Alex Newman"<EMAIL_ADDRESS>Sent: 5-9-2015 00:24
To: "nrc/rustfmt"<EMAIL_ADDRESS>Cc: "Marcus Klaas de Vries"<EMAIL_ADDRESS>Subject: Re: [rustfmt] rewrite_string should return `Option (#259)
*nod doesn't sounds to crazy
—
Reply to this email directly or view it on GitHub.

Almost, but IIRC the "opening sequences" are parameterized. While they'll be a single " most of the time, we should probably compare width to opener.len() + closer.len() + 1. I can't actually look at the code right now so apologies if this isn't making sense!
-----Original Message-----
From: "Alex Newman"<EMAIL_ADDRESS>Sent: 5-9-2015 00:28
To: "nrc/rustfmt"<EMAIL_ADDRESS>Cc: "Marcus Klaas de Vries"<EMAIL_ADDRESS>Subject: Re: [rustfmt] rewrite_string should return `Option (#259)
I'm confused on the error case
are you talking about a short circuit at the top that does a
if fmt.width < 3 {
return None;
}
—
Reply to this email directly or view it on GitHub.

This was implemented in https://github.com/nrc/rustfmt/pull/362. Closing.


fix daylight saving error in cron

currently the summer clock turn made it run after lunch time with an hour.
it requires a longterm fix if it needs to be set manually with every bi-yearly clock turn

closed by #305


Adding backdrop-filter blur on navbar breaks offcanvas element

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
Create a Navbar With offCanvas element & add custom class
<nav class="navbar fixed-top customNavbar-mobile">
Add css to custom class
.customNavbar-mobile {         background-color: #282d43cc !important;         backdrop-filter: blur(5px);     }
Offcanvas breaks.
Reduced test cases
https://codepen.io/Justin-Zimmerman/pen/WNBzLBB
What operating system(s) are you seeing the problem on?
Windows
What browser(s) are you seeing the problem on?
Firefox
What version of Bootstrap are you using?
5.3.3

This does not seem to be a bug actually. Refer to this
I believe that something like this should solve your problem:
.customNavbar-mobile {
  background-color: #282d43cc !important;
}

.customNavbar-mobile .offcanvas-backdrop {
  backdrop-filter: blur(5px);
}

This does not seem to be a bug actually. Refer to this
I believe that something like this should solve your problem:
.customNavbar-mobile {
  background-color: #282d43cc !important;
}

.customNavbar-mobile .offcanvas-backdrop {
  backdrop-filter: blur(5px);
}

Thanks for the reply, but for some reason when you do that the transparency with the blur changes
.customNavbar-mobile {
        background-color: #282d43cc !important;
        backdrop-filter: blur(20px);
}

Produces:

.customNavbar-mobile {
        background-color: #282d43cc !important;
    }

    .customNavbar-mobile .offcanvas-backdrop {
        backdrop-filter: blur(20px);
}

Produces:

^^ Your method partially works but the blur is ignored no matter the amount you apply to it.

So it looks like adding height: 100vh; to the .offcanvas fixes the issue. height: 100%; does not work.
My final code that works:
.offcanvas {
        height: 100vh;
}

.customNavbar-mobile {
        backdrop-filter: blur(20px);
}

Working Codepen with changes
https://codepen.io/Justin-Zimmerman/pen/jOoxOVw
not sure if this is a bug ill let someone else decide if this should be closed.


[Bug]:  The app does not have an update button on playstore

Description
The  app does not have an update button on google Play store which makes it very difficult to update to the new version.
Steps to reproduce

On your phone Navigate through Playstore.
Search for Stax  app on playstore

Expected result
I expect to find an update button on the app inorder to update the app to the latest version.
Actual result
There is no update button on the app and it's currently in the previous version hence making it difficult to update it to the latest version
Link to screenshots/screen recordings
https://drive.google.com/drive/folders/1-hdGUlFZpDIDSlwCjogrLWKCwPcZvqAA
Device name
Huawei Y5 prime
Android OS
8.1.0
App version
1.17.3
Config version
20221109191508
Is your phone dual SIM or single SIM?
Single SIM
Which telco are you using for this test?
Safaricom
Stax device ID or email address
<EMAIL_ADDRESS>

This is cause we haven't rolled the update out to 100% of users yet. Still working out a few kinks, should be ready soon


WIP: VTable auto-naming

Biggest blocker: needs to implement vtbl inheritiance so the base classes get named first.

Do you have ideas for how you want to do the inheritance thing?
I think msvc linker will always have base classes before anything that inherits them so its possible just not re-renaming stuff we've already renamed will handle a lot of it, but we do need a way to reference other vtbls so we don't have to repeat function names multiple times.

@aers So I pulled most of my inheritance out of the old RTTI exe using classinformer and explicitly defined it.  It ends up showing alot of stuff like this:
Warning: vtbl_Component::GUI::AtkComponentInputBase[1] had a name of "Component::GUI::AtkUnitManager_vf1_nullsub"
Warning: vtbl_Component::GUI::AtkComponentTreeList[1] had a name of "Component::GUI::AtkUnitManager_vf1_nullsub"
Warning: vtbl_Client::Graphics::Kernel::Texture[2] had a name of "Client::Graphics::Render::ShadowCamera_vf2"
Warning: vtbl_Component::GUI::AtkComponentNumericInput[1] had a name of "Component::GUI::AtkUnitManager_vf1_nullsub"
New inheritance? Dunno, but its interesting. How the inheritance is actually shown in the big list is a little... busy? I'm tempted to yank it out into its own block, but as of right now it works pretty good. I'd like to get a few people in to test it. If someone knows the ghidra bindings I can fill those in too.

I also suppose this needs testing against ida 7.2 and lower.

There is definitely new inheritance since 2.3, although you might just be running into classes having multiple vtables.
Like
class A
class B : A
class C
class D : B, C
will have two vtbls, one for D : B : A and one for D : C

well for any inheritances we can actually verify, just need to add it to the list of its parents, for that given class. Otherwise itll just complain, but not overwrite.


Adjust superscript and subscript baselines for lr-scaled characters

Description
Superscripts and subscripts move up or down, respectively, when they are attached to a naturally tall character like sym.integral, or to parentheses that have been scaled up.  But they don't adjust for other characters that are made tall using #lr.  It seems to me that they should.

Use case
I'm mainly thinking of the use of | to mean "evaluated at".  If I want to do something like this:

I need the "x=0" to move to the bottom of the bar or else it looks very awkward.
Example Typst project
https://typst.app/project/rENbxvHSopJ6MM04mIyQNL

$
lr((dif x)/(dif y)|)_(x=0)
$

Duplicate of https://github.com/typst/typst/issues/2342
But yes, see @Enter-tainer comment


When can the relevant code be uploaded?

Hello, I want to study your related papers. When can the relevant code be uploaded?

Hi,
Thank you for your interest. I think the code can be released in early June.


Enforcer compliance

Please ensure your pull request adheres to the following guidelines:

[ X] explain your motives to contribute this change: adding annotations & labels needed for tivo-enforcer

[ X] Document your Changes in the CHANGELOG.md file of the respected chart as well as the Chart.yaml

This PR was unintentionally published here before completion


Why torch.max is used to get the output of ChannelSpatialSELayer?

https://github.com/ai-med/squeeze_and_excitation/blob/acdd26e7e3956b8e3d3b32663a784ebd64c844dd/squeeze_and_excitation/squeeze_and_excitation.py#L123
Why you use torch.max instead of torch.add in this line? It's mentioned in paper that "element-wise addition of the channel and spatial excitation".

ok, I see, in your journal version, the max-out aggregation strategy can achieve the best results.


java.io.FileNotFoundException when try to find server.xml

I have an exception when i try start a Smart Tomcat on IntelliJ Idea, they trow java.io.FileNotFoundException: /Users/franciscoparis/cooltra/projects/etendo/etendo/conf/server.xml (No such file or directory). I try to indicate the conf folder of the tomcat Catalina Base, but when i push the button Start throw me the exception and delete all the content of the conf folder. I Install again the apache Tomcat and try the same steps, and when i push the Start Button, again trows the exception and delete all the content of the folder.
https://i.postimg.cc/fLs3rmyf/Captura-de-pantalla-2024-06-25-a-las-13-44-23-1.png
My partner use:
Mac M2 with Sonoma OS v14.5
IntelliJ Idea CE 17.0.11
Apache Tomcat 8.5.82
SmartTomcat 4.7.2

你发的邮件我已经收到。会在近期内查看。

@conhello please update Catalina base, the server.xml full path should be %catalina_base%/conf/server.xml

I'm having the same issue here. It was working well with my configuration which i haven't touched for months, but today it suddenly stopped working.

I have an exception when i try start a Smart Tomcat on IntelliJ Idea, they trow java.io.FileNotFoundException: /Users/franciscoparis/cooltra/projects/etendo/etendo/conf/server.xml (No such file or directory). I try to indicate the conf folder of the tomcat Catalina Base, but when i push the button Start throw me the exception and delete all the content of the conf folder. I Install again the apache Tomcat and try the same steps, and when i push the Start Button, again trows the exception and delete all the content of the folder.
https://i.postimg.cc/fLs3rmyf/Captura-de-pantalla-2024-06-25-a-las-13-44-23-1.png
My partner use: Mac M2 with Sonoma OS v14.5 IntelliJ Idea CE 17.0.11 Apache Tomcat 8.5.82 SmartTomcat 4.7.2

I'm having the same issue here. It was working well with my configuration which i haven't touched for months, but today it suddenly stopped working.
I'm using Apache Tomcat/9.0.83; Windows 11 Home 22631.3737; IntelliJ 2024.1.4

I have the same issue after updating to 4.7.3. Revert to 4.7.2 fixes the issue.
In version 4.7.3, the complete %catalina_base%/conf directory is cleared when Tomcat is started.

4.7.3 works for me. It looks like two issues.
@conhello For your case, the Catalina base looks changed manually. Can you clear its value and try again?

@Sandoramix @oosterholt Is there any error popup when running Tomcat? Please attach them if possible, Thanks.

Same issue for me, the configuration:

When starting with 4.7.3,  Tomcat just throws a file not found error in the .SmartTomcat/$Name/conf, and that's it. If wanted i can surely provide an IntellIJ Log for that, but it's just a simple File not Found. I suspect this is happening because .SmartTomcat/conf is empty?
This is a problem i can observe at work, too, btw. We all just rolled back to 4.7.2 ^^'

I have the same issue after updating to 4.7.3. Revert to 4.7.2 fixes the issue. In version 4.7.3, the complete %catalina_base%/conf directory is cleared when Tomcat is started.

I also revert to 4.7.2 and to fixed this issue. The conf directory is cleared when i start smart tomcat

This issue also works for me

你发的邮件我已经收到。会在近期内查看。

4.7.2 also deletes the conf directory and then complains about the missing server.xml for me. I reverted back to 4.6.1, which works.

Was anyone able to resolve it? I have tried installing multiple versions (4.7.3, 4.7.2, 4.6.1) of the plugin and still facing the same issue.

你发的邮件我已经收到。会在近期内查看。

the same issue. m2 sequoia 15.0.1  but on 4.7.3 . downgraded to 4.7.1

I have the same problem: start plugin Smart Tomcat and conf of Tomcat becomes deleted. And message
Error running 'Tomcat 10.1.31' java.io.FileNotFoundException: ....\apache-tomcat-10.1.31\conf\server.xml
Still no one has any ideas?

I have the same problem: start plugin Smart Tomcat and conf of Tomcat becomes deleted. And message Error running 'Tomcat 10.1.31' java.io.FileNotFoundException: ....\apache-tomcat-10.1.31\conf\server.xml
Still no one has any ideas?

Yes I am facing the same issue @VadGitHub

你发的邮件我已经收到。会在近期内查看。


Private channel

Hi,
How to broadcast to private channel?

You can subscribe to a private channel to listen to events, but we haven't yet added support to send events.

Hi thank you for clarifying,
But how to listen to a private channel? I can not find method in the example code.
I see only Pusher.subscribe()
So which method would you prefer?
Again thank you to this package help me complete a project for a client  easily and on time
Thank you so much.

When calling Pusher.init send PusherOptions with PusherAuth setup for authentication. This is required for private channels.
Then just call Pusher.subscribe as normal with the channel name as private-mychannel .
See the official Java docs for more info: https://github.com/pusher/pusher-websocket-java#private-channels

@putheng are you stilling having issues with private channels or did my comment help you solve the issue?

No, I solved it.
Thank you


update to 2017.10

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

target-feedstock
oops, apparently conda smithy uses the name of the directory....

Thanks for the PR, @rvalieris!
Could you please add the GPL-3 license?
  license_file: '{{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3'  # [unix]
  license_file: '{{ environ["PREFIX"] }}\R\share\licenses\GPL-3'  # [win]

And could you please add daler and yourself to the list of recipe-maintainers?

added !

@rvalieris Please ping me when the CI builds finish so I can merge

ping !


remove unused gateway docker code (redux)

Before submitting this PR, please make sure:

[X] Your code builds clean without any errors or warnings
[X] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:

Remove legacy code from when Gateway was spun off automatically as a child Docker process for gateway create
Removes gateway status command and unused functions

Based on #6296

Steps:
Cloned fix branch and gateway-development
Start the instance and gateway-development
Type gateway then spacebar
Actual:
gateway status command still showing in autocomplete list
Expected:
removed commnds not showed in autocomplete

LGTM! Please make sure that the build from docker is working correctly @rapcmia

Build docker client image locally for this PR and setup with latest development docker gateway ✅
Getting the same reported above from Nikita

PR good to be approved, just need to fix the cosmetic bug for the autocomplete on gateway command.
Steps to reproduce:

Type gateway then spacebar or tab


Fix token name in session for OIDC and GitHub authentication

Seems like typos during code refactoring.
I didn't test the changes but I think now it's better than before with setting wrong token names in the session.

Oh yes, it was a mistake during code refactoring. Thank you for catching it. Merging now...


Replace cli_table

Need to replace this library or do away with having nice ascii tables since the crate appears to be broken when compiling in release

Maybe not? Perhaps some investigation. May have been my local copy of cli_table some how was messed up? Removing the registry for it in my ~/.cargo seemed to solve it?


[BUG] Few times, stack report shows zero dependencies

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
try stack report for this manifest file : https://gist.github.com/SriKrishnaPaparaju/daa0dec127c8af264ecf08effc33d251

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Logs
If applicable, attach logs.
VSCode(please complete the following information):

OS: [e.g. macOS]
VSCode version [e.g. 1.33.1]
Dependency Analytics Version [e.g. 0.0.22]

CHE7/Theia(please complete the following information):

OS: [e.g. macOS]
Browser [e.g. chrome]
CHE/Theia version
Dependency Analytics Version [e.g. 0.0.22]

Additional context
Add any other context about the problem here.

Couldn't reproduce it on my dev machine.

Closing as fixed. Feel free to reopen if not.


server crash after using /wild

When my users use the command /wild it will execute but then crash the server. Im using the latest version on paperspigot 1.8.8

Can you provide your log in a pastebin?

I will need more information to try to figure out the cause of the crash

Im gonna close this due to no response in over a two months


IAP subscription purchase error.

Version of react-native-iap
Latest
Expected behavior
data
Actual behavior
Error
Steps to reprodue the behabior
Well in my case, Install -> manual merge -> then this code
try {
//also tried RNIap.getSubscriptions().then((data) => ....);
    RNIap.getProducts().then((item_receipt) => {
                    console.log(item_receipt);
    }).catch(err => alert('errror :' + err))
} catch (err) {
alert('errror :' + err);
}

Error message: Type Error Cannot read property of getitems of undefined.

Alright, Main issue is Both functions are firing undefined error for different variables and other functions too like getProducts() etc..
this message is on simulator
And same code gave this error on Physical device

Type Error: undefined is not an object (evaluating 'i.buyProduct')

Because I am confused. You wrote buySubscription on the code but the error message is buyProduct of undefined.

That's why i filed an issue because i was confused too #reopen this issue until it's resolved.
I'll try to Resolve from my end too.

Did you link the library properly? If you checked the version perperly and used the proper methods name, I think that would be the reason you get undefined.
If you did, provide us our module version and your react-native version for more info.

Ok so this was happening because i forgot to add libRNIap.a
but after adding i Got this #98 again

"react-native-iap": "^0.3.1",
Successful purchase
Errors
Install library > link manually IOS> and again compile error

i face this issue with react-native 0.5.4 and  react-native-iap : ^1.3.5

@hungvu193 try to connect the library manually, it works for me. 👯♂

There are many fluctuations with latest react-native version.  IF facing any issue try to go previous build,


Fix broken website docs links

Renaming this since we have https://github.com/clockworklabs/spacetime-docs/issues/104


Fix CVE 2024 24786 for prometheus

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[* ] The toolchain has been rebuilt successfully (or no changes were made to it)
[ *] The toolchain/worker package manifests are up-to-date
[ *] Any updated packages successfully build (or no packages were changed)
[ *] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[ *] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[ *] All package sources are available
[ *] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[ *] LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
[ *] All source files have up-to-date hashes in the *.signatures.json files
[ *] sudo make go-tidy-all and sudo make go-test-coverage pass
[ *] Documentation has been updated to match any changes to the build system
[ *] Ready to merge

Summary

Fix CVE 2024 24786 for prometheus
Change Log

Add a protojson patch for  prometheus
https://go-review.googlesource.com/c/protobuf/+/569356

Does this affect the toolchain?

NO
Associated issues

#xxxx

Links to CVEs

https://nvd.nist.gov/vuln/detail/CVE-2024-24786

Test Methodology

--------------- Local Build Successful -------------------
INFO[0000][scheduler] Testing: prometheus-2.37.0-16.cm2.src.rpm
INFO[0000][scheduler] Building: prometheus-2.37.0-16.cm2.src.rpm
INFO[0164][scheduler] Built: prometheus-2.37.0-16.cm2.src.rpm -> [/home/bhapathak/azlinux/out/RPMS/x86_64/prometheus-2.37.0-16.cm2.x86_64.rpm /home/bhapathak/azlinux/out/RPMS/x86_64/prometheus-debuginfo-2.37.0-16.cm2.x86_64.rpm /home/bhapathak/azlinux/out/RPMS/x86_64/prometheus-docs-2.37.0-16.cm2.x86_64.rpm]
INFO[0164][scheduler] 0 currently active build(s): [].
INFO[0164][scheduler] 1 currently active test(s): [prometheus-2.37.0-16.cm2.src.rpm].
INFO[0596][scheduler] Tested: prometheus-2.37.0-16.cm2.src.rpm
INFO[0596][scheduler] 0 currently active build(s): [].
INFO[0596][scheduler] 0 currently active test(s): [].
INFO[0596][scheduler] All packages built
INFO[0597][scheduler] ---------------------------
INFO[0597][scheduler] --------- Summary ---------
INFO[0597][scheduler] ---------------------------
INFO[0597][scheduler] Number of prebuilt SRPMs:           0
INFO[0597][scheduler] Number of prebuilt delta SRPMs:     0
INFO[0597][scheduler] Number of skipped SRPMs tests:      0
INFO[0597][scheduler] Number of built SRPMs:              1
INFO[0597][scheduler] Number of passed SRPMs tests:       1
INFO[0597][scheduler] Number of unresolved dependencies:  0
INFO[0597][scheduler] Number of blocked SRPMs:            0
INFO[0597][scheduler] Number of blocked SRPMs tests:      0
INFO[0597][scheduler] Number of failed SRPMs:             0
INFO[0597][scheduler] Number of failed SRPMs tests:       0
INFO[0597][scheduler] Number of toolchain RPM conflicts:  0
INFO[0597][scheduler] Number of toolchain SRPM conflicts: 0
INFO[0597][scheduler] Built SRPMs:
INFO[0597][scheduler] --> prometheus-2.37.0-16.cm2.src.rpm
INFO[0597][scheduler] Passed SRPMs tests:

Pipeline build id: https://dev.azure.com/mariner-org/mariner/_build/results?buildId=654527&view=results

Retargeting following PR for fasttrack/2.0

https://github.com/microsoft/azurelinux/pull/10685
https://github.com/microsoft/azurelinux/pull/10673

under new PR https://github.com/microsoft/azurelinux/pull/10730


cannot copy from watch view

have a watch expression

you cannot select to copy the value of the watch expression

There is a copy value action in the context menu as an alternative.
We use the tree which does not support selection, adding it in the watch variables would make it inconsitent and not look that good imho
Though this is supported in the repl where it visually makes more sense to me.

fix it or close it.


Fix 'Analytics is not a function' error

segmentio/analytics.js-core already returns a new Analytics instance. Invoking it another time was causing an Analytics is not a function error.

Or should it be the other way around (export the class from segmentio/analytics.js-core and create the instance here)?

fixed in 2.10.2


CCLOG-1921 Fix for CVE-2020-36518

Problem
https://nvd.nist.gov/vuln/detail/CVE-2020-36518
Solution
Upgraded the common version, to bring in the version of jackson-databind which has the fix for this cve.
Also had to import confluent-log4j to avoid the following error in tests, where log4j dependency wasn't being pulled in.
[ERROR] Tests run: 14, Failures: 0, Errors: 14, Skipped: 0, Time elapsed: 0.01 s <<< FAILURE! - in io.confluent.kafka.connect.datagen.DatagenTaskTest
[ERROR] io.confluent.kafka.connect.datagen.DatagenTaskTest.shouldGenerateFilesForUsersQuickstart  Time elapsed: 0.001 s  <<< ERROR!
java.lang.NoClassDefFoundError: org/apache/log4j/Level
        at io.confluent.kafka.connect.datagen.DatagenTaskTest.<clinit>(DatagenTaskTest.java:58)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
        at io.confluent.kafka.connect.datagen.DatagenTaskTest.<clinit>(DatagenTaskTest.java:58)

Does this solution apply anywhere else?

[x] yes
[ ] no

If yes, where?
applies to other connectors as well. Also in all the branches of datagen.
Test Strategy
All existing unit tests succeed.
Manually verified the jackson-databind dependency being pulled in.
*[cclog-1921][~/workspace/kafka-connect-datagen]$ mvn dependency:tree | grep 'jackson-databind'                                                                                cclog-1921
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-databind:jar:<IP_ADDRESS>:compile

Testing done:

[ ] Unit tests
[ ] Integration tests
[ ] System tests
[x] Manual tests

Release Plan

@shaikzakiriitm
Shouldn't the confluent-log4j have scope <scope>test</scope> if its only needed to fix the tests?

@shaikzakiriitm I think we should not include confluent-log4j as it is replaced with reload4j recently in other connectors due to this - https://confluentinc.atlassian.net/wiki/spaces/~913794610/pages/2772764716/Backport+reload4j+to+replace+Confluent-log4j

Fixed it, migrated from slf4j-log4j2 to slf4j-reload4j

@shaikzakiriitm Shouldn't the confluent-log4j have scope <scope>test</scope> if its only needed to be included for the tests?

got rid of confluent-log4j now.


Added fallback if no realm roles were detected; It now extracts the r…

First of all, some explanation is required for this PR I think. I'm trying to get the proxy working with Azure App Registrations (or Enterprise Applications, whatever you want to call them).
Azure supports something they call AppRoles. How you manage them is not very relevant, but suffice to say, it results in a "roles" claim in the ID token. To support this usecase in louketo, I've added a fallback to the user_context that tries to extract the roles claims after it fails to load the realm roles. This is the easiest fixt.
If you find this acceptable, that would of course be nice, but maybe it's better to have a commandline option to control this behaviour. I don't think it's bad behaviour, and it won't break anything since the roles claim cannot be forged and is within trusted context. If no realm roles were found, it means Keycloak is not in the picture, and we are just using plain OIDC.
Title
Roles claim fallback
Summary
This adds an extra parse step of the claims in the ID token to 'find' roles.
Type
[] Bug fix
[] Feature request
[x] Enhancement
[] Docs
Why?
It 'fixes' roles functionality coming from Azure AD AppRoles.
Requirements
A working App Registration / Enterprise Application with AppRoles setup.
How to try it?
Guide: https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps
Documentation
I don't think it's required just yet. But if so, I can write some.
Additional Information
It's my first PR for this repo, please be gentle :)
Checklist:

[ ] My change requires a change to the documentation or CHANGELOG.
[ ] I have updated the documentation/CHANGELOG accordingly.

@FireDrunk thanks so much for spending time on this. However, I'm not sure if this is something we would like to add right now because it introduces specific checks for Azure into the codebase. So any specifics other provides should be extracted to a separate file.
I still want to try the steps you mentioned and would like to understand more about your motivation. Honestly, I'm slightly confused, you mentioned that this is the easiest fix., but it is marked as an "enhancement". Is this a bug you found while trying Azure with Louketo?
What would be the worst thing that could happen if we don't introduce this patch?
Another thing that worth to mention, is the fact that we need tests and documentation. But this can wait until we discuss the this PR

Good question, the problem is that the regular code (the first code block above my changes) is Keycloak specific. It checks for the realm specific claims here:
https://github.com/louketo/louketo-proxy/blob/master/user_context.go#L58
This means, that it's bound to Keycloak. Your premise is that this should be seperated into seperate files, which in itself a good idea. This would mean there are specific 'types' of tokens that Louketo recognises. We could make a parser that tries different sets of parsing rules, and add commandline options to set your preference. BUT, this would mean (in my opinion) that we should also move the Keycloak specific parsing to a seperate file.
This is where my explanation of 'easiest' fix came from. The code now let's the realm roles by parse the keycloak way, and if (and only if) that fails (the roles are ampty after that check), it tries the direct approach. This is not entirely Azure specific. It just looks for a 'roles' claim that is not nested.
If you want, I'm happy to (try to) build a basic setup for a multiple token types and a parser.
Problem is, that that is a much bigger (and design heavy) change, and I was kind of hoping this would be merged, because we want to use this in our testing environment ;)

Maybe implementing something like this: https://www.tutorialspoint.com/design_pattern/filter_pattern.htm (but in Go offcourse...)

@abstractj Do you have any time to look at my proposal?

Good question, the problem is that the regular code (the first code block above my changes) is Keycloak specific. It checks for the realm specific claims here:
https://github.com/louketo/louketo-proxy/blob/master/user_context.go#L58

@FireDrunk thanks for looking into this. The specifics for Keycloak should be refactored as we've been working to make Louketo work with more providers. There's still a lot of work to do, but that's our ultimate goal and the API design is still something to be discussed.

This means, that it's bound to Keycloak. Your premise is that this should be seperated into seperate files, which in itself a good idea. This would mean there are specific 'types' of tokens that Louketo recognises. We could make a parser that tries different sets of parsing rules, and add commandline options to set your preference. BUT, this would mean (in my opinion) that we should also move the Keycloak specific parsing to a seperate file.
This is where my explanation of 'easiest' fix came from. The code now tries to find the realm roles by parsing the token the keycloak way, and if (and only if) that fails (the roles are ampty after that check), it tries the direct approach. This is not entirely Azure specific. It just looks for a 'roles' claim that is not nested. This means that people adding 'custom' roles can just use a basic claim called 'roles'. There are several OIDC providers that support adding a custom claim called 'roles'
If you want, I'm happy to (try to) build a basic setup for a multiple token types and a parser.
Problem is, that that is a much bigger (and design heavy) change, and I was kind of hoping this would be merged, because we want to use this in our testing environment ;)

I believe you are correct in most of the ideas and indeed, it requires proper design and more work. I understand that it can be frustrating because you need this right now. At the same time, if we start to add more and more code without a proper design discussion, the codebase can become bloated and hard to maintain.
That being said +1 for having a proper design discussion on how to properly support more providers, but I don't see us moving forward with this PR as is.@FireDrunk thanks for looking into this. The specifics for Keycloak should be refactored as we've been working to make Louketo work with more providers. There's still a lot of work to do, but that's our ultimate goal and the API design is still something to be discussed.
@stianst what do you think?

Supporting multiple providers as well as different token formats is something we need to support. What could be good is to have the "core" require configuration to parse tokens rather than have it hard-coded, so it's be something like "--role-claim=claim-name". Then we can have vendor profiles where these things are pre-configured, something like "--vendor=kc".

Ok, that seems like a good idea. I'm willing to invest some time in this to make it work.
Is there any way we can 'agree' on a design, so I can start working on this? It would be a waste to spend a lot of time, and have the PR be denied or require rework multiple times.
I think my previous suggestion on having specific files for specific parsing rules  for claims fits @stianst suggestion. We can have something like:
./vendor.go: Containing vendor includes (it includes all structs, but only executes those requested via the cmd line.
./vendor//roles.go: Parse the roles claim into the user context
./vendor//groups.go: Parse the groups claim into the user context
We can write tests for each individual vendor in a vendor_test directory.

Not sure how @abstractj wants to deal with design discussions, but I would suggest at least we try GitHub discussions, or just use an issue for it. At least we should have a complete design somewhere that we can agree on, and that will as you say prevent having to redo PRs.

Ok, do you want me to start a discussion in a new Issue, and close this PR?

@stianst +1 let use GH issues for design discussions and centralize everything there. @FireDrunk sure let's close this PR and work on the design, in this way we make a better usage of your time. Thanks for understanding.


tests: ACN auto multiplex

Proposed changes
Part of incremental refactoring of ACN tests.
Fixes

auto assign multiplexers in base class to ensure disconnection via atexit registration on class setup
match error messages in pytest.raises
clean-up fault tolerance tests: assign proper protocol (fix) and remove flakiness marker
remove a meaningless test: TestP2PLibp2pConnectionFailureNodeDisconnect
simplify and remove needless code

Types of changes
What types of changes does your code introduce to agents-aea?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply.

[ ] I have read the CONTRIBUTING doc
[ ] I am making a pull request against the develop branch (left side). Also you should start your branch off our develop.
[ ] Lint and unit tests pass locally with my changes and CI passes too
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked that code coverage does not decrease.
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

Codecov Report

Merging #233 (7dbc26a) into tests/test_genesis_node_communication2 (403e5ff) will not change coverage.
The diff coverage is n/a.

@@                           Coverage Diff                           @@
##           tests/test_genesis_node_communication2     #233   +/-   ##
=======================================================================
  Coverage                                   94.55%   94.55%
=======================================================================
  Files                                         312      312
  Lines                                       25156    25156
=======================================================================
  Hits                                        23785    23785
  Misses                                       1371     1371

Flag
Coverage Δ

unittests
94.55% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

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 403e5ff...7dbc26a. Read the comment docs.

I only refactor tests here, but I want to bring to to your attention. The question is simple: do we want this? This can be another source of flakiness in tests, for example.
https://github.com/valory-xyz/open-aea/blob/6395b608560d6e7f2d1ed043087dd4c375cb3b39/packages/valory/connections/p2p_libp2p_client/connection.py#L355-L358
https://github.com/valory-xyz/open-aea/blob/6395b608560d6e7f2d1ed043087dd4c375cb3b39/packages/valory/connections/p2p_libp2p_mailbox/connection.py#L271-L274


Replace output table with text format

Due to size constraints in documentation, we should prefer using textual output instead of tables

/lgtm


Replace $RBENV_ROOT with $(rbenv root) in documentation

$RBENV_ROOT is not set by default, so it won't always work. But $(rbenv root) will always return the correct path whether $RBENV_ROOT is set or not.

Done!


Are there plans to support Vue files?

Hi @lzxb, I'm not a vue user so I cannot comment too much about it. If it's a regular ts file, it should just work. But it's better if you can provide more context of it.

I've found a solution
https://github.com/johnsoncodehk/vue-tsc


blueprint - api:docs - route groups wrong paths

Hello, I am trying to group my API doc routes like
user/login
user/me
user/...
Here is my Controller with annonations
 /**
 * @Resource("User", uri="/user")
 */
class AuthController extends Controller
{

/**
     * Login user
     *
     * Login with a `username` and `password`.
     *
     * @Post("login")
     * @Versions({"v1"})
     * @Transaction({
     * @Request({"email"="foo", "password"="bar"}, contentType="application/json"),
     * @Response(200, body={"access_token":"token","token_type":"bearer","expires_in":3600}),
     * @Response(401, body={"error":{"code":103,"message":"Email or password is incorrect."}})
     * })
     */
    public function login(Request $request)
    {

When I am using Resource with uri=, docs is creating wrong paths for methods, or I dont know how to use blueprint annotations. And same thing is happening if I try to convert blueprint > postman dump with apiary2postman.
https://image.prntscr.com/image/xJq79Cr3RsKZxNSaroMYPQ.png
And generated bluprint file :
FORMAT: 1A

# docTest

# User [/user]

## Login user [POST /user/login]
Login with a `username` and `password`.

+ Request (application/json)
    + Body

            {
                "email": "foo",
                "password": "bar"
            }

+ Response 200 (application/json)
    + Body

            {
                "access_token": "token",
                "token_type": "bearer",
                "expires_in": 3600
            }

+ Response 401 (application/json)
    + Body

            {
                "error": {
                    "code": 103,
                    "message": "Email or password is incorrect."
                }
            }

## Get current user [POST /user/me]
Get user with token.

+ Request (application/json)
    + Body

            {
                "email": "foo",
                "password": "bar"
            }

+ Response 200 (application/json)
    + Body

            {
                "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0Ojg4OC9hcGkvdXNlci9sb2dpbiIsImlhdCI6MTUxMjQ5NjM1OCwiZXhwIjoxNTEyNDk5OTU4LCJuYmYiOjE1MTI0OTYzNTgsImp0aSI6ImZJd1BmTkVZc1FRNTROYmIiLCJzdWIiOjUsInBydiI6Ijg3ZTBhZjFlZjlmZDE1ODEyZmRlYzk3MTUzYTE0ZTBiMDQ3NTQ2YWEifQ.Eh-oQ8MpK1rrbpwqeOnoouIASkdGOKijzgGVjxTyy9s",
                "token_type": "bearer",
                "expires_in": 3600
            }

+ Response 401 (application/json)
    + Body

            {
                "error": {
                    "code": 103,
                    "message": "Email or password is incorrect."
                }
            }

Thanks !!

update :
@Resource("User") is not producing the apib line  # Group User
FORMAT: 1A

# docTest

# Group User
User resource representation.

## Login user [POST /login]
Login with a `username` and `password`.

+ Request (application/json)

ATM the workaround is to set group name manually next to @ Resource.
And keep the name empty for correct url generation @Resource("", uri="/api")
/**
 * # Group DemoController
 *
 * @Resource("", uri="/api")
 */
class DemoController extends ApiController
{

    /**
     *
     * Login
     *
     * @Post("/demo-login")
     * @Versions({"v1"})
     */
    public function login(Request $request)
    {
    }
}


test: supplementary metrics test

What type of PR is this?
test: The original metrics test is too simple, I have enhanced it

Regarding the lint issue of yaml, we seem to be able to ignore it.
Regarding the problem of gomod, I can't solve it at the moment

/retest


Failsafe mode to turn off the performance improvement

The thin block and parallel validation are nice features to have. However, in case of some bugs in the code, like the recent one, it is easier to turn them off quickly. Are there any plan to implement it? Or is the current system too tightly coupled to implement it easily? Since the most important part is the user adjustable blocksize. So if the client can still run without addition performance improvements, it should greatly improve the stability of the whole network.

I'm wondering if you unintentionally opened this on the wrong project, Classic doesn't even have a parallel validation.
In any case, there are already options to turn off things like xthin blocks.

Noticing you posted on the BU site suggesting they have a keep-it-simple release.
In Classic we are following the KISS principle and there is very little changed. There is no AD, just EB in Classic, for instance. xthin can be turned off quite easy and features like FlexTrans are even turned off by default. Having no effect on actual run time.  Please also read https://zander.github.io/posts/ClassicQuality/

Sorry, I did not know this. I have this impression because I remember during the last attack, you only advise the people to update to the new client. If the option exist, you should let people know, as alternative, because not everyone can adopt/recompile immediately. I may be completely wrong if you have done this.


DS-3377 Solr query may be longer than allowed by the Web Container

https://jira.duraspace.org/browse/DS-3377
Now only the UUID of the comm/coll the user has explicit ADMIN authorization
on are added to the "location" parameter

Beside the necessary rebase, I also don't agree with the idea of this PR. In DSpace we use the concept of groups, subgroups and inheritance of permissions from groups to subgroups to EPersons.

Note: there is an alternative PR which simply changes all Solr requests to HTTP POST, see #2045   Unless anyone feels differently, we may be able to close this PR in favor of that new one.

Closing, as this was fixed in #2045


Proposal for more JS friendly function parameters

Building off of my comment in #1299, I think there are a couple things in function application which are still unfamiliar to those coming from JS and use an overloaded syntax which is confusing. The two main pain points I see are named arguments, and aliases. Since these concepts are foreign to JS, I propose using strong differentiating syntax for them so they are not overloaded or ambiguous to readers. In short - my proposed syntax would look something like:
let foo = (~a aa: option(int)=?, ~b bb=10) => 10;

Full proposal can be seen here: https://gist.github.com/rickyvetter/397140267ddcfd4bf76fa23ef0a5d127.
Note that we fall back to ~ to denote a named arg which will be familiar to OCaml and is not a widely used operator.
Other changes as part of this proposal:
Surrounding = and => around function argument definitions. This brings the syntax inline with ES6 arrow functions. I think the => to imply function is very important to explicitly show that this is a function as opposed to some sort of assignment. The leading = is cute because it makes most function signatures valid ES6 as well, but isn't really necessary.

I would love to see the ~ just like in Ocaml but I think it would make more sense to keep the colon instead of the equals sign?
e.g. ~a:10 as aa: int

I opted for the = so that : can remain un-overloaded  as only used for types. = also falls in line with python named args and is symmetric with default args, which are (imo) very similar actions of setting a specific param to a value.

Updated ordering to be consistent with OCaml, Flow and TS:
<~>name <: > type < as > alias < = > value

I'm not sold on the equals sign, but I too like the ~ from ocaml. Better separation between specifying a type and specifying a named argument will be a definite benefit to new users. We had a question on discord editorsupport today around this sort of thing.

Glad you like the ~. Why aren't you sold on the equals? And to clarify you mean only in the callsite, you're fine with it in the declaration?

@jordwalke @let-def do you think this proposal or parts of it make sense for the direction of Reason? Are these things I could implement easily? I have only basic knowledge of the parser and printer so I don't feel super comfortable doing them but things like the colon becoming a tilde seem like they would be easy enough.

Thanks for the proposal and thanks for using the proposal template which helps. I don't think the as keyword would be needed at all - if you just take the current syntax in master, and change the :label to ~label. So it ends up being something like let x = (~arg aliasedArg : typ = default) => ...

There are analogies with normal as though it's normally used a bit differently: it binds variables to expressions, while in this case it would be binding a variable to a label, which is more of a meta-level concept.
Normal use:
  switch (getList ()) {
  | [x, ..._] as list => x + List.length list
  | [] => 34
  };

The fact that labels and expressions aren't perfect analogies is a good point. There is also another syntax case which isn't handled in the gist where you want to use an actual as binding to an alias, which could be confusing with this newly added as:
let f = (~foo as {bar} as baz) => ...

I'm happy with just having space separation:
let f = (~foo {bar} as baz) => ...
/* or
 * let f = (~foo ({bar} as baz)) =>
 * if necessary
 */

I've updated the gist and example accordingly.
I think that the other change that should happen for consistency is bringing back the => following non-anonymous functions.

How about the symbol to be used. I don't know how much choice there is.
It seems that at least ~ and @ can be made to work.
Looking at a bunch of international keyboards, the position of ~ ranges from OK to not so OK.
Don't know about @ but I can assume that everyone has it in their muscle memory.

@ symbol would be fine as well. The loss of shared syntax with OCaml is unfortunate, but if the @ is more prevalent/accessible then well worth it.

In my opinion, there isn't much difference between reaching for the ~ or the backtick for polymorphic variants.

@rickyvetter good point about the two different kinds of as which might be ambiguous/overlapping in some cases.
About let x(~arg) = ... vs. let x(~arg) =>
Personal Opinion:
I believe that the let name(arg) = form will confuse the heck out of JS developers, but Haskell/ML people will understand it. It kind of bugs me because to me it conflicts with the concept of binding pattern matching: let Some x = Some "hi" binding x to "hi".
Observation:
The let x y => retValue form was more important in the previous syntax because we didn't have ES6 fat arrow syntax. With fat arrows, you can more easily do let x = y => retValue, but with the old syntax it was more verbose with let x = fun y => retValue, so the let x y => retValue shorthand was more necessary.
Observation:
With the new syntax, we might be able to refmt to something even better than either form! Now, the following is unambiguous:
let x(y) {
   returnValue
};

I wouldn't always want to format this way, but only if the return expression is so long that a break occurs. So your question about how to format when the return value doesn't break still stands.

For consistency and ease of refactoring I think that
let x = (y) => ret;

and
let x = (y) => {
  ret
};

is a really good compromise. If we refmt the latter to
let x(y) {
  ret
}

that's gravy. But I think the first two examples should still parse as valid code.

The distinction between using = vs. => vs. { for functions feels confusing. => looks like it's used for inline arrow functions or matching with switch. Having let-based functions use = instead of => seems inconsistent.
let x = y => retValue

is clear as to what it's doing.
let x(y) => retValue

feels like a shorthand to the previous line, but potentially confusing because (y) => retValue is a legitimate arrow function form.
let x = y => {
  retValue
}

feels like a long-form or multi-statement form.
let x(y) {
  retValue
}

feels like a shorthand to the multi-statement form.

Done for now


Lecture 3 Question 1 Why doesn't the second constructor for a parent class violate the principle of Tell Don't Ask?

Description
In lecture 1, it was mentioned that we should not make use of getter methods (Tell Don’t Ask) as it would defeat the purpose of making this attributes private. However, lecture 3, Prof Henry used a second constructor which essentially acts like a getter method to access the radius of FilledCircle from the parent class.
Could I check what is the guideline for using a getter and why is it a better practice to create a second constructor rather than simply using protected attribute?
Thank you.
Thong Cheng Han
Topic:
OOP

"Tell Don't Ask" literally means don't get the radius value from the parent class and make use of it.  In using the second constructor, no radius is passed.  Is the circle (or rather this) that is passed.  Specifically,
FillCircle(color) makes use of FilledCircle(this, color) which makes use of Circle(this).  Notice there is no indication of radius?  FilledCircle is telling Circle to construct another circle and Circle deals with the radius assignment.

One of the reasons for avoiding getter methods is that they reveal implementation details, e.g. how Circle is being implemented via radius. The implementor of Circle may wish to change from radius to diameter as its new implementation of Circle. With abstraction in place via private modifier, such a change can be conducted entirely within the Circle class since the 2nd constructor method is still within this Class. Hence, FilledCircle as client of Circle is completely unaffected since it is only making use of the service from the 2nd constructor method, and did not have direct access to radius as its implementation detail.
In summary, implementation details of classes are often changed by developer during maintenance and improvement phases. However, functionality of classes are quite stable, though they may still change from time-to-time depending also on the requirements from clients.
Tell-don't-Ask principle is thus to help enforce abstraction wall to isolate client from unnecessary implementation details that may be freely changed by developers from time-to-time without having to inform clients.

Contributions included in Lecture 03.


Don't include the observatory UI in skyshell's binary

Right now a big chunk (multiple megabytes) of Flutter's binary is the debugger UI. We should take that out of the binary, and provide a separate way to connect to a Flutter app (e.g. have observatory hosted somewhere, maybe https://debugger.flutter.io/ or something).

The steps here are roughly:

[ ] Instead of linking the observatory assets into the binary, include the observatory_assets.tar file in the APK and mmap it at runtime.  We already get a callback from DartVM when it needs the resources.  We just need to wire in the path and use mmap instead of getting the data from a linker symbol.
[ ] For end-developer APKs (e.g., produced with flutter apk), make the observatory_assets.tar file optional.
[ ] As part of the previous step, we'll have to include observatory_assets.tar in the artifacts.zip file we upload to Google storage.  Make it possible to use observatory using that observatory_assets.tar even if the APK doesn't include observatory_assets.tar.

That's a reasonable set of steps. I think we should also consider just hosting the assets elsewhere, and making the observatory protocol stable. Then you would launch the debugger by just going to the observatory Web site (or launching an app on your favorite platform).

In particular, we need that if we want to enable debugging deployed release builds (since they wouldn't have the assets).

Related: https://github.com/flutter/flutter/issues/76

We now only include the observatory in --debug and --profile builds.  Is that sufficient for this bug or do we also need to remove the UI from debug/profile?

This bug is only about removing it from production builds.


Is it possible to fully dynamically load external package component ?

We have a component library. We are trying to load a component with dynamic name. It doest work when i try to load it from node_modules, but it works when i try to load local files
This guy works
const AsyncComponent = loadable(
    (props) => {
        return import(`./${props.icon}`)
    }
);

This guy doesnt work
const AsyncComponent = loadable(
    (props) => {
        return<EMAIL_ADDRESS>    }
);

So my question is, is it possible to load dynamically files from node_modules ?
(doing it in nextjs)
Also, to make clear, the problem is with dynamically constructed imports, this guy, works without problems:
const AsyncComponent = loadable(
    props =>
        import(`@amazing/componentlib/IconAirplane`)
)

There is nothing special in loadable code capable to distinguish between your code and node_modules. However, I never tried loading stuff like in your example.
Can I ask for clarification - what does mean "This guy doesnt work"? How exactly?

Probably off-topic, but what I noticed is if you use this construction in a loop:
const AsyncIcon = loadable(
  // this import resolves only for the 1st icon in the list which is the component "A" (see below)
  (props) => import(`./${props.icon}`),
  {
    resolveComponent(module, props) {
      // here you'll receive the icon name from each `map` iteration ("A", then "B", and "C" in the last call)
      const { icon } = props;

      // in case the module doesn't use a `default` export you have to take it by its key.
      // however, this will fail because the module is always "A", but on the second step you expect it as "ModuleB.B"
      return module[icon];
    },
  }
);

and then
const icons = ["A", "B", "C"];

<>
  {icons.map(icon => <AsyncIcon key={icon} icon={icon} /> }
</>

I was able to "solve" it via () => import("./index") where you can re-export all the icons so in the consequent resolveComponent function calls you can reference to IndexModule.A, IndexModule.B, ... module[icon] without errors. But the resulting chunk will contain all the icons reexported from the index file. Imagine you have 100 icons there if you need only 3 of them.

A little off-topic, but however, this will fail because the module is always "A" sounds like a bug

I have the same problem. Dynamic path doesnt work, hardcoded one does.
Both are in src/, so no node_modules complexity.
This works:
const C = loadable(() => import('../screens/Test'), { resolveComponent: (c) => c.Test })

This doesnt work:
const componentPath = props.match.route.compPath // ../screens/Test
const componentName = props.match.route.Component.name // Test
const C = loadable(() => import(`${componentPath}`), { resolveComponent: (c) => `${c[componentName]}` })

It does not find the module... Cannot find module '../screens/Test'


Azure function deployment failure for python

Repro steps:

Action: azureFunctions.deploy
Error type: BadRequest
Error Message: Encountered an error (ServiceUnavailable) from host runtime.

Error: Encountered an error (ServiceUnavailable) from host runtime.

@gopalvaddi yeah we occasionally see a ServiceUnavailable error from Azure. Were you ever able to deploy successfully? Perhaps try a different region?
Also if you can send more details about your project that might be helpful. I assume it's python based on the logs from above - how did you create the project? What kind of triggers do you have (http, timer, etc.)?


Why matrix H has 6 degrees of freedom?

H=[a   b   c
0   d  e
o   f   1]
is f no use?

@andongchen You may read chapter B. CURVE FITTING USING H-NET of the origin paper for details:)

Sorry， I have read chapter B several times，but I still unknown where use the “f” in matrix H in curve fitting, Can you explain it in more detail, thank you very much .
In you paper you wrote:
Given a lane pixel pi = [xi; yi; 1]T belong to  P,
the transformed pixel p'i = [x'i; y'i; 1]T belong to P' is equal to Hpi=[axi+byi+c, dyi+e, fyi+1],
why p'i third element is one but not fyi+1?
And in your loss funtion I still unkonw where use the pts_projects's third element?
`gt_pts = tf.transpose(gt_pts)
pts_projects = tf.matmul(H, gt_pts)
    # 求解最小二乘二阶多项式拟合参数矩阵
    Y = tf.transpose(pts_projects[1, :])
    X = tf.transpose(pts_projects[0, :])
    Y_One = tf.add(tf.subtract(Y, Y), tf.constant(1.0, tf.float32))
    Y_stack = tf.stack([tf.pow(Y, 3), tf.pow(Y, 2), Y, Y_One], axis=1)
    w = tf.matmul(tf.matmul(tf.matrix_inverse(tf.matmul(tf.transpose(Y_stack), Y_stack)),
                            tf.transpose(Y_stack)),
                  tf.expand_dims(X, -1))
    # 利用二阶多项式参数求解拟合位置并反算到原始投影空间计算损失
    x_preds = tf.matmul(Y_stack, w)
    preds = tf.transpose(tf.stack([tf.squeeze(x_preds, -1), Y, Y_One], axis=1))
    x_transformation_back = tf.matmul(tf.matrix_inverse(H), preds)

    loss = tf.reduce_mean(tf.pow(gt_pts[0, :] - x_transformation_back[0, :], 2))`

@andongchen That's not my paper:)


Update New-OrganizationSegment.md

updated Example 3 as it was missing - before and parameter in filter which is required when multiple filters are added.

Docs Build status updates of commit fda400f:
:clock10: Full build: the average full build time is 12 min(s) 44 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit fda400f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance/New-OrganizationSegment.md
:white_check_mark:Succeeded
View (exchange-ps)

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

Docs Build status updates of commit 94169af:
:clock10: Full build: the average full build time is 12 min(s) 47 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit 94169af:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance/New-OrganizationSegment.md
:white_check_mark:Succeeded
View (exchange-ps)

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

Docs Build status updates of commit 6edae6f:
:clock10: Full build: the average full build time is 12 min(s) 47 sec(s), this is based on the last 1000 build(s) for this repository.

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

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/policy-and-compliance/New-OrganizationSegment.md
:white_check_mark:Succeeded
View (exchange-ps)

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


Change log target of discv5 logs from net::discv5 to discv5

Describe the feature
Our current disv4 implementation just logs to discv4, but our discv5 implementation logs to net::discv5. This should be consistent, so we should replace any occurence where net::discv5 is the log target with just simply discv5. This allows more granular filtering of logs.
Additional context
No response

Hi, I see that discv4 is only being used from reth's implementation of discv4. Should this still be changed then to use discv5 ?

Hi I made a quick pr for this in #12045 . Let me know if it works for this ticket 🙂


Kubeflow v1.6 release tracker for Nutanix Karbon

With Kubeflow 1.6 release, the progress is tracked for the following features on Nutanix Karbon

[x] multi-user deployment with profiles
[x] distributed training using Training operator(TFJob)
[x] Hyperparameter optimization using Katib
[x] Testing Inference using KServe
[x] Workflow creation using Pipelines
[x] e2e-mnist manifest testing

Kubeflow manifests release 1.6.rc1  is tested against Nutanix NKE 2.5.0 with k8s 1.22


chore (Ideal.Cotangent): simplify term for cotangentIdeal

This removes an extraneous have and reduces a let binding.

While I think the change is justified on its face, I hope it helps speed things up.

!bench

bors merge