swarm mode services: no ability to partition ingress network / constrain --publish to certain nodes only

Currently using --publish with Swarm Mode Services results in opening ports on the whole Swarm (ingress network if I understand correctly).
Notably, it's not possible to publish a service on an individual IP only, i.e.:
$ docker service create --name nginx --publish <IP_ADDRESS>:80:80 nginx
invalid argument "<IP_ADDRESS>:80:80" for --publish: HostIP is not supported by a service.

In any case, the above wouldn't be super useful because it would lock constrain the service to run only on the node which has the said IP.
On the other hand, currently there is no way to "overload" certain popular ports. If you publish port 80, every single node in the Swarm will open that port, preventing you from running multiple services on the same port in the same Swarm.
It would be good if there was a way to partition the swarm into network sections, so that selected nodes, for example A, B, C, D belong to one network section (call it partition-1), and E, F, G, H into another one (partition-2).
When publishing, we could select which network partition should be actually publishing the ports, i.e.:
$ docker service create --name nginx --publish partition-1:80:80 nginx

There should be an option to optionally constrain those services to run within the partition for increased performance (otherwise the swarm needs to proxy all the requests to the right node), but it's still much more manageable.
This would also help in the cases where the Node has multiple IPs assigned to it, as such node's IPs could be present in both partitions respectively.

Thanks for suggesting
/cc @mrjana @aluzzardi

Thanks for considering!
Is there any workaround we could use now, before this is implemented that would allow us to expose selected ports of given service on a given node?
When running with the old Swarm, specifying -p IP:PORT:PORT was possible, as was using local bridge or event host networks; I can't seem to be able to workaround this in any way now.

@niieani No way to partition currently. This was intentional for 1.12 -- I'll have to refer to the network team if this is expected to be allowed at some point.
One thing you can do is expose the port to spin up a service running an L7 LB that can route traffic to the appropriate service based on whatever criteria (e.g. hostname).

First steps for customising the ingress network are taken https://github.com/docker/docker/pull/31714. Nothing yet for partitioning, but baby steps :smile:

Great to hear. Looking forward to it! 👍

Hey there, just wanted to ask -- where there any developments on this front, aside from landing #31714?


mat-select does not display default (null) option text in mat-option

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
I'm reposting this issue again: https://github.com/angular/components/issues/6466
since you closed it without providing any reasonable workaround or an explanation why you chose to implement this super weird, opinionated, behaviour. What is the reason to implement it like this? What problems does you implementation solve or prevent? From what I can see, it's just limiting a very common use-case, without any reasonable benefits. If you really insist on this, at least make it optional with an input binding, so we can opt-out of it when we don't need it.
The only workaround for this is to use some other value, e.g. '' and then map it back and forth all over the place, for each mat-select.  Totally messy, bug prone etc. and still a very poor workaround.
I haven't found a single workaround that would enable the desired behaviour in the use-case when you have your own component, implementing control value accessor, which wraps a mat-select.
Reproduction
http://plnkr.co/edit/i919jzNOoXhlPeN4hxxE?p=preview
Expected Behavior
Select should display text associated with null/undefined value when provided
Actual Behavior
Select displays nothing
Environment

Angular: 14,0,0
CDK/Material: 14.0.0
Browser(s): ALL
Operating System (e.g. Windows, macOS, Ubuntu): ALL

@crisbeto Given this was a deliberate decision, is this considered working as intended? Or would you like to revisit this eventually?

Yes, this is working as expected. The idea was to mimic the behavior of the native select and option elements with mat-select and mat-option.

@wagnermaciel @crisbeto Sorry, but that is not an answer.
You could declare every single bug as "deliberate decision" this way...
Can you provide some workaround?
Also, can you name just one lib (any framework, any technology) that works the way that your does?
It's simply not true that native select works like this. (see screenshot).
It shows "NONE" as selected, it doesn't shown an empty string.

I honestly don't get your reasoning.
This is a needless limitation that is making a super common used case (optional filters, "ALL" options etc) nearly impossible to implement.
You could at least make it optional. Instead of forcing a opinionated, weird, behaviour like this, for no good reason.

You still have the ability to control what the trigger looks like using the mat-select-trigger element. There's a live example in the docs: https://material.angular.io/components/select/examples#select-custom-trigger

@crisbeto No you don't. I've tried that already.
Here is a stacblitz example:
https://stackblitz.com/edit/angular-l21cgb?file=src/app/select-custom-trigger-example.ts
The custom trigger is not shown either if the mat-option value is "empty".
In that case it shows the placeholder.
And you can't use the placeholder for this purpose if you use floating labels.
Even if you could, it would be an awful hack.
This line is the problem:
https://github.com/angular/components/blob/8ca012fdf63a540c0364d6acecd1d378f60f444e/src/material/select/select.html#L16
Others have reported this already in the original thread.
https://github.com/angular/components/issues/6466#issuecomment-332743725

If the list of mat-options contains an "empty" value, than that initial/blank state doesn't make sense to begin with. So they shouldn't be able to get to it from the start, or after selection. That is how a native select works. There is no blank state.

Users may find that weird though since the form field around the select changes if a value is shown. For example you could have an empty form with a few input elements and a mat-select. The label of the inputs won't be floating, but the select will, despite the fact that you haven't interacted with it.

And please don't treat null and undefined as the same thing. It's not. You could potentially treat undefined as a reset option, but null is definitely not some magical reset option. It is an explicit value.

FormControls change undefined values to null.

Users may find that weird though since the form field around the select changes if a value is shown. For example you could have an empty form with a few input elements and a mat-select. The label of the inputs won't be floating, but the select will, despite the fact that you haven't interacted with it.

True. But the current behaviour is even more weird. You select something (with an "empty" value) and it just disappears. This is a functionality issue, compared to the opposite which is a UX issue, at best.
Making this optional is the cleanest way to go.

FormControls change undefined values to null.

Yeah, true, I think this is weird as well.
It converts undefined to null for the initial value, but not when you change selection.
Pretty weird and inconsistent
https://user-images.githubusercontent.com/1048531/176408691-9aef702d-114a-4ba1-8ed5-adfa75481fec.mp4
.

Hey @zolakt, I wanted to thank you for the engagement in this issue and all the helpful information.
Going up the thread:

To me this looks like a case of a bruised ego. Instead of making it right, you refuse to acknowledge the fact that you made a poor design choice

I want to ensure that we're all focused on improving Angular, and I'd recommend assuming good intentions.
Such statements and personal attacks are not welcome in our communication channels. Let's stick to a constructive tone and collaborative environment.

@mgechev I apologise for the harshness, it was impulsively written. There was no bad intention.
In my defence, it can be frustrating to try to get you guys into an argumented discussion.
You have a tendency to close threads quickly, without really considering them thoroughly.
This happened to the original thread. And then you did the same to this one immediately.
So again, I'm sorry if I offended anyone.
I just hope this finally gets reconsidered and fixed.
It's a 5 year old issue, that is pretty annoying.

Any movement on this? it would be really nice to have mat select respect null value display text.

Hello, any updates on this issue?

Any news here ?

5 years and we still don't have a solution or a workaround. Very frustrating.

@mgechev @zolakt Please, we need this. Mapping to null is a very common case with dropdowns that display an "All" option. The only way right now is to map it to an empty string which makes less sense. As @zolakt said, please don't be so opinionated with this, let us devs choose what we want as value.

While I do think the tone of this issue is far too harsh (bad decisions happen, and it's not always easy to undo the consequences), I also want to advocate for the ability to map to null. It would be great if this was revisited with flexibility in mind.

@GabrielBB Why are you asking me :) I'm in the same boat as everyone else here, waiting for someone to finally fix this after 5+ years. The only workaround I have is to use 0 instead, which is incredibly stupid and tedious to maintain, but I found no better workaround

My vote here as well, why do we need to think every time about what value to use for the "All" option, why to choose from nonlogical values ('', '-', '-1', '0' etc.) while "null" would be ideal...

I agree that mapping to null is needed. Here is the workaround I've been using:
<mat-form-field floatLabel="always">
  <mat-label>State</mat-label>
  <mat-select placeholder="Any" formControlName="state">
    <mat-option [value]="null">Any</mat-option>
    <mat-option *ngFor="let state of states" [value]="state.id">
      {{ state.name }}
    </mat-option>
  </mat-select>
</mat-form-field>

https://github.com/angular/components/issues/25120#issuecomment-1500577134
This gif is basically the crux of the entire issue. My client just told me he wanted to see 'All' as the displayed value for empty field in one of the dropdowns inside his form.
That grey-out by default behavior is awkward for sure.

Just wanted to chime in, the suggested workaround with mat-select-trigger does not work. In the example stackblitz I tried
    <mat-select-trigger>
      {{ foodCtrl.value ? foodCtrl.value : 'I am null'  }}
    </mat-select-trigger>

And it still displays the placeholder text, even though the value is null.
This stackblitz exhibits the problem with and without the mat-select-trigger, alongside a native select that works as intended: https://stackblitz.com/edit/4mzrpg?file=src%2Fexample%2Fselect-overview-example.html

Best workaround I have found is to set the placeholder text to whatever you want to display for null and set floatLabel="always" on the mat-form-field

I need the mat-select-trigger  with floatLabel="always" that I can "clear" (with 'X' button on the control) that, when cleared, will show "Make your selection" (for example).

Please, make this change, guys.

Just wanted to chime in, the suggested workaround with mat-select-trigger does not work. In the example stackblitz I tried
    <mat-select-trigger>
      {{ foodCtrl.value ? foodCtrl.value : 'I am null'  }}
    </mat-select-trigger>

And it still displays the placeholder text, even though the value is null.
This stackblitz exhibits the problem with and without the mat-select-trigger, alongside a native select that works as intended: https://stackblitz.com/edit/4mzrpg?file=src%2Fexample%2Fselect-overview-example.html

Not sure where you have seen a workaround suggestion with mat-select-trigger.
I've tested that already, commented that it doesn't work and posted the problematic code: here.
Although, I highly doubt anyone will ever fix that code, even after pointing out the exact problematic line. Personally, I've given up on waiting for this.  If you wait for these guys to fix anything, you will never finish a single project. Now I'll probably get downvoted for pointing out the obvious, but sadly, that is reality...

Given that the fix on the surface levels seems to be changing https://github.com/angular/components/blob/5398170c6865d9881162096f2a40b77a74cf3953/src/material/select/select.ts#L1110 and similar cases of handling nulls, are you open for contributions regarding this or is keeping up the current behavior more important for you in regards to backwards compability or other reasons?

How can this be bugged? Seriously.

For me the default value dose not get displayed at all.
<mat-form-field appearance="outline">
          <mat-label>{{ 'FIELD' | translate }}</mat-label>
          <mat-select
            [disabled]="isReadOnly$ | async"
            placeholder="{{ 'FIELD_PLACEHOLDER' | translate }}"
            (valueChange)="item.field.next($event)"
            [value]="item.field | async"
          >
            @for (item of OTHER.FIELD_TYPES_ARRAY; track item) {
              <mat-option [value]="item">{{ item }}</mat-option>
            }
          </mat-select>
        </mat-form-field>

Any news on this one? We need to support null for mat-select as @zolakt mentioned > "It is an explicit value" of none.
 still doesn't show/override if the control value is null. (link is here https://github.com/angular/components/issues/7758)
Should we use workarounds or tricks or can we just add support for null to make the mat-select more flexible?

Totally need this fix as well.

Please, it is necesary...


[BUG] - error with Connect-PnPOnline

Error connecting with a hard-coded non-MFA email and password
Expected behavior
successful conenction
Actual behavior
Connect-PnPOnline : There was an error parsing WS-Trust response from the endpoint. This may occur if there is an issue with your ADFS configuration. See https://aka.ms/msal-net-iwa-troubleshooting for
more details. Error Message: Federated service at https://sts.xxxxxxxx.com/adfs/services/trust/2005/usernamemixed returned error: ID3242: The security token could not be authenticated or authorized.
Steps to reproduce behavior
cls
$siteUrl="https://xxxxx.sharepoint.com/sites/xxxxxx"
$spoUserName = "xxxxxxxxxxxx"
$spoUserPassword='xxxxxxxxxxxx'
$secPwd = $spoUserPassword | ConvertTo-SecureString -AsPlainText -Force
$creds = new-object -typename System.Management.Automation.PSCredential -argumentlist $spoUserName, $secPwd
$ReportFile="C:\Temp\DLA-ELD.csv"
remove-item $ReportFile -ErrorAction SilentlyContinue
$now=Get-Date
write-host "start - $now"
#$creds=Get-Credential
Connect-PnPOnline -URL $siteURL -Credentials $creds
What is the version of the Cmdlet module you are running?
ModuleType Version    Name                                ExportedCommands

Manifest   1.11.0     PnP.PowerShell                      {Add-PnPAdaptiveScopeProperty, Add-PnPPropertyBagValue, Add-PnPSiteClassification, Copy-PnPFolder...}
Manifest   1.10.0     PnP.PowerShell                      {Add-PnPAdaptiveScopeProperty, Add-PnPPropertyBagValue, Copy-PnPFolder, Export-PnPClientSidePage...}
Which operating system/environment are you running PnP PowerShell on?

[x ] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

Looks like some issue specific to your M365 environment , can you try with -Interactive parameter ?
Am moving this to discussion as it is not an issue with the module itself but some configuration which is interfering with the login process.


How to update shadcn-svelte library

Change Type
Addition
Proposed Changes
I'd love to see a direct instruction, on how to update the shadcn-svelte library in the documentation

@amirbenasr have you seen this chapter? https://www.shadcn-svelte.com/docs/cli#update

As @ollema mentioned, we have documentation on updating the components using the CLI. You can also manually copy and paste them if you'd like.
A large majority of updates come from bits-ui (the underlying primitives), which is distributed via npm and can be upgraded using your package manager of choice!

thank you all, yes didn't notice that part !


Add pypy3 support

Resolves: pre-commit-ci/issues#191

I hope this is done correctly in case the original issue has merit, otherwise I apologise for taking up your time.
I took inspiration from an older commit (https://github.com/pre-commit-ci/runner-image/commit/bb1fe8e685f7f6ca15852f2ecd295b8062d024d0) and placed pypy3 on top to not break numbering as new python3.x packages are released.

I think this might need an update as well https://github.com/pre-commit-ci/runner-image/blob/main/build/seed-virtualenv-cache

Thank you, seems to work well 😸


[WIP]RAINCATCH-1156 Adding role based check to login

Motivation
https://issues.jboss.org/browse/RAINCATCH-1156
Description
Added allowed roles to the server config and cross check them with user roles (intersection of both size > 0)
Progress

[x] Passport
[ ] Unit tests
[ ] Documentation

Additional Notes

Changes Unknown when pulling a347dca51eab9bf15156cfcbd5454e1587288b4f on witmicko:RAINCATCH-1156_login_roles_check into ** on feedhenry-raincatcher:master**.

@witmicko - We cannot have it this way as we provide role based support on top of the client application. We will need to move from admin and user roles fairly soon.
This means that users will need to use role based check - using our AuthService in the portal client to show dialog if user do not have permission as was suggested in the ticket.
This change needs to work with both keycloak and passworrd.
Using using interface will allow us to do so.
This aproach works but it's not using parts of our framework which we want others to use.
ping @JameelB

This means that users will need to use role based check - using our AuthService in the portal client to show dialog if user do not have permission as was suggested in the ticket.

It does exactly, that. Not sure what is the problem here, pull changes locally and try this.
from what I saw so far passport and keycloak differ a lot in implementation.
We cant have role restriction on the client side - what is stopping me from changing it locally or modifying requests in preflight?

from what I saw so far passport and keycloak differ a lot in implementation.

They using single interface that it should be used. If that's not possible then that is a bug as PRD clearly states that this should be possible.

Closing for now in favour of client-side filtering (server side is still protected)


Add support for setting custom xdebug IDE key

The xdebug IDE key is currently hardcoded. It would be nice to allow support for other IDE's.

The way the Magento 1.x images do this is quite nice imo.  We should do that for these images.
https://github.com/meanbee/docker-magento/blob/09631506421db8f2f0113c86f370b1b9c17bdb63/7.1/fpm/entrypoint.sh#L12


fix: Use amount_capturable as default refund amount

Currently it's not possible as amount_capturable is as option.

@dracarys18  @AkshayaFoiger
I would be delighted to work on this issue
so kindly assign me this
Thank You : )


support Athena partition

What happened:
I use aws cost usage report data, and use Athena create partition with year and month. but __timeFilter not support partition
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):

Screenshots

Anything else we need to know?:
Environment:

Grafana version:  8.4.6
Plugin version:  1.0.5
OS Grafana is installed on:  kubernetes
User OS & Browser:
Others:

Hi @shencan, what add more information about what you expect to happen? Note that you can specify a format when using  $__timeFilter, $__timeFrom, $__rawTimeFrom or any time related macro, as stated in the docs


The SSL methods are deprecated and not supported in iOS13 and Mac-catalina

'SSLClose' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLWrite' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLRead' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'serverSide' was deprecated in iOS 13.0
'clientSide' was deprecated in iOS 13.0
'SSLCreateContext' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'streamType' was deprecated in iOS 13.0
'SSLSetIOFuncs' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLSetCertificate' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLSetEnabledCiphers' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLSetConnection' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLSetSessionOption' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'breakOnServerAuth' was deprecated in iOS 13.0
'SSLHandshake' was deprecated in iOS 13.0: No longer supported. Use Network.framework.
'SSLCopyPeerTrust' was deprecated in iOS 13.0: No longer supported. Use Network.framework.

Any news about methods that are not deprecated?


Testnet3 Submissions

rejected:B5
address:4Pc2BQze9yVra1TWx3gU8D8tAfZ1i3myJ7DAm2U51mnzHP4bkd
reason: no 'update baker account' or 'update baker key' transactions found on-chain

confirmed:B4
address:4Pc2BQze9yVra1TWx3gU8D8tAfZ1i3myJ7DAm2U51mnzHP4bkd
baker:864

rejected:B1
It looks like you are trying to submit B1, however it seems like the following submission criteria are problematic:

Logs are missing
We’ve thus marked B1 as rejected, however if this is a mistake, please upload the log summary and we can re-review.

confirmed:B3

confirmed:B6


[context] Add type parameter for key to createContext()

Small change to get more accurate types. Should be non breaking as the second type parameter has a default and doesn't have to be specified.
cc @benjamind

Thanks @sorvell!


Angry Level Loader simply not appearing

Description
So I woke up to the level loader completely gone, I have installed it both manually and with r2modman, but neither seem to detect it. After installation, the "Custom Levels" Button disappeared from the screen and the plugin configuration options imply do not show up AngryLevelLoader
I uninstalled Ultrakill, r2modman, and both at the same time even
It's getting me quite worried because this doesn't happen with any other mod, this is only happening with this mod and i'm not sure why. The level folders for the mod look alright, I haven't compared them to anyone's but it looks like it should work. If there's any questions or info about my installation and such then i'm more than available to give out necessary details
Plugins Used

PluginConfigurator (1.8.4)
AngryLevelLoader (2.7.6)
Bepinex ofc (5.4.2100)

Could you send your console logs?

Sure thing! Although I don't know where they're located. I haven't found a way to access them, do you know in which directory are they in?

LogOutput.log
I think this is it

It seems unity logs are not recorded in this file. Open BepInEx/config/BepInEx.cfg, change this line to true and open the game again.
[Logging.Disk]

## Include unity log messages in log file output.
# Setting type: Boolean
# Default value: false
WriteUnityLog = true

LogOutput.log
Got it! Should be on now, not sure what the difference is but I hope this did something

Could you check if these files exist in E:/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL_Data/StreamingAssets/aa/StandaloneWindows64?
other_assets_allaudio.bundle
other_assets_dooraudio.bundle
other_assets_goreaudio.bundle
other_assets_musicaudio.bundle
other_assets_unfreezeableaudio.bundle

They do, but they're like, a LOT smaller than the other files, so it looks a bit suspicious. The other files say they're from 600 kb to 20 mb, and from other_assets_allaudio.bundle to other_assets_unfreezeableaudio.bundle they're all 3 kb
https://drive.google.com/drive/folders/1xcuKonB0anquU187FU8Qjya4RGadRUoV?usp=sharing

I analyzed the files you uploaded. It does not match with the ones from angry and are probably corrupted. Try deleting (or safely moving them away) them so that angry can regenerate them.

It worked! Thank you! They've been regenerated and now it shows up
I wonder how you knew that those files in specific were different... Can't thank you enough!

I passed them trough a program that compares files. But I should investigate the orogin of the corruption later.

My pc has been corrupting a bunch of files in general, i'm sure it's nothing on your end! Thank you so much man! I seriously can't thank you enough

i need help. i tried this but this is not worked

I analyzed the files you uploaded. They do not match with the ones from angry and are probably corrupted. Try deleting (or safely moving them away) them so that angry can regenerate them.


⚠ ClamAV has degraded performance

In 0dc3d36, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 78 ms

Resolved: ClamAV performance has improved in 16e7c6c.


⚠ Bofrost.de has degraded performance

In 12f4214, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1816 ms

Resolved: Bofrost.de performance has improved in 50c995a.


Chart test image missing.

Hi,
The chart's test fails due to the lack of a Docker image configured in the e2e.yaml resource manifest.
I thought about using this chart as a dependency in two I maintain. But the failing test prevents me from doing so because there is no way in Helm to disable tests from a single dependency.
Could please you either provide the missing image or drop the test resource if it is just a junk?

Helm test is only for CI, don't run it in real cluster.

Hmm... No, it is not.
Helm test is to (according to the documentation) "validate that your chart works as expected when it is installed".
And the problem with Helm is that you cannot disable a test for a dependency. So if I put a dependency into my chart that has a broken test, I cannot run after-installation tests for my chart.

It is not for a chart's author, but a chart's user.

Helm test of this helm chart is not intented for any usage outside CI.
I will not expose the test image to the public, because of previous point.
Afaik, Helm tests are only executed when someone calls helm test, but I will double check this.
From the results of previous point I will either report results here or provide bugfixes.

wdyt ?

True for no.3, but not only when it is called on your chart, but on any chart depending on yours.
That's why you cannot make no.1 assumption.
If you intend to follow no.2. you need to remove the test from the published chart.
Please do the following:
$ helm create apicurio-registry-depender
$ cd apicurio-registry-depnder
$ helm install tmp .
$ helm test tmp

You should get a successful test result of the installation of the sample chart.
Now add a dependency to your chart by adding at the end of Charts.yaml:
dependencies:
  - name: apicurio-registry
    version: 1.3.0
    repository: "oci://ghcr.io/eshepelyuk/"

And do:
$ export HELM_EXPERIMENTAL_OCI=1
$ helm dependencies update
$ helm upgrade tmp .
$ helm test tmp

You will get failed test result and the last command will return ERR status (which stops further execution of a shell script).
In short: Adding your chart as a dependency breaks the testing of installation of any depending chart.

Hmmmmmm
Are you directly calling helm test ??? After the installation of your umbrella chart ??

Yes. Exactly following the script above.
helm test always runs tests of dependencies as well and AFAIK there is no way to disable it.

I am not gonna address this, because helm test is never used during chart installation/upgrade. Instead chart installation/upgrade success is determined by liveness/readiness/startup probes.
Is you consider that chart is missing any of those probes - please open an issue or provide a PR.
To fix your own problem - just sont runhelm test.

How did you come to a conclusion that helm test is intended for only your CI process and not any CI process of your chart consumers?

This dscussion is closed. No more replies gonna be provided. I've described possible options above. Please consider either of them.
Thanks a lot.

It's sad. You gave no option to test a depending chart and it makes your valuable work here unusable.
It seems a simple fix just to remove the failing test from the published artefact in Artifacthub. If you don't want it to be executed why do you publish it then?


chore add case in test_delete

Proposed changes
Add some cases of deletion conditions with numeric values.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


[Home Assistant] Toggle Groups

Extension – Home Assistant
Author: @tonka3000
I would love it if It would be possible to toggle a group as the default, instead of viewing the entity information!
Describe the feature and the current behavior/state.
Currently, when you click enter when selecting a group, it opens the entity information. I would love if it would toggle the group. At a minimum, it would be nice to have it as an option in the commands.
Who will benefit with this feature?
People who would like to toggle their groups.
Any Other info.

Hi @eIiot ,
Which kind of group you are talking about? Lights group are already supported.
Please provided an example for your groups you are having. Yaml examples of your group would also help.
Greetings
Michael

I'm talking about a .group entity created in groups.yaml. They should be able to be toggled with homeassistant.toggle
For example

@eIiot Please can also send a screenshot from the entity view itself. I would be interesting which state the group show too you (on the right side. I guess it is off). There is no toggle service for groups, so I need to make sure that on/off state is always there.
Please can you also check if homeassistant.turn_on will turn on the group on as you expect. Same for homeassistant.turn_off but for the off state. Just use the Home Assistant developer tools to check it.
If this all works on your side I can impl. that.


[Feature] Add CMMLU dataset

Motivation
Add CMMLU dataset for Chinese multi-task evaluations.
What's need
Add CMMLU data files to OpenCompassData.zip, which can be download by:
wget https://github.com/InternLM/opencompass/releases/download/0.1.0/OpenCompassData.zip
The dataset can be found here: https://github.com/haonan-li/CMMLU/tree/master/data.

The linting test seems not passed.

You can install pre-commit hooks to automatically fix this issue:
pip install -U pre-commit
pre-commit install
pre-commit run --all-files
git add --update
git commit

I've reformat the code, please check.


"Import file must reside in opendatakit folder" error while attempting to import csv data

Tag @wbrunette, @elmps2018, and @Redeem-Grimm-Satoshi.
I'm trying to follow the instructions in the documentation found at this link to import data from a CSV file directly into a table. However, I'm encountering an error message that says, Import file must reside in opendatakit folder.
The issue I'm facing is that the documentation mentions a path /csv on my device, but I can't find this path in /opendatakit/default/config/assets. So, I manually created the /csv folder and put my people.csv file in /opendatakit/default/config/assets/csv.
When I try to load people.csv from this directory into the tables, I still get the same error message, Import file must reside in opendatakit folder. I'm not sure if I'm doing something wrong or if there might be a bug. Any help or guidance on this would be much appreciated.

Hi @permission-error! This is a known issue already raised here https://github.com/odk-x/tool-suite-X/issues/350 - so I am going to close your additional issue just so there's one. This is something that will hopefully get fixed in the next release.

Reclosing as dupliace

Duplicate

Duplicate


Avoid arbitrary format strings upon calling fail() function

Might fix #7111, although I didn't verify this

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@9002c51). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #7112   +/-   ##
=========================================
  Coverage          ?   41.53%
=========================================
  Files             ?      446
  Lines             ?    60825
  Branches          ?        0
=========================================
  Hits              ?    25266
  Misses            ?    32276
  Partials          ?     3283

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 9002c51...f71ad09. Read the comment docs.


Refactor the Chart class to avoid Canvas inheritence

Is your feature request related to a problem? Please describe.
This is a continuation of discussion made in beeware/toga-chart#20.
Right now, Canvas.redraw is used as an internal method of Canvas which is used after adding a new drawing element to it. It basically means that "a new element was added and we need to redraw the canvas to the window".
However, For the Chart class we want to use redraw in a different way: Assuming that a new element was added to the chart, one might want to call redraw manually to update the Canvas.
When trying to use Chart.redraw as the second option, it causes an infinite loop as one can see in the linked PR.
Describe the solution you'd like
There are 2 possible solutions:

Add a new method called Chart.update that updates the chart manually (on call) based on new changes.
Refactor Chart to no longer inherit from Canvas so it could redefine the method redraw.

Hey @freakboy3742 ,
I changed the title and description of the issue.
I would love if you could take the time and explain how you would refactor the Chart class to no longer inherit from Canvas.
It seems like Chart would no longer inherit from Widget and will be a sort of wrapper to the Canvas class. Am I correct?

Close, but not quite. Chart will still inherit from Widget, as it needs to be a widget from the perspective of Toga to be added to a layout. However, it won't inherit from Canvas or any FigureCanvasBase - the Canvas and FigureCanvasBase will be attributes of the Widget. In that respect it will be a "wrapper"; the Toga Chart widget will be composed of the base widgets, rather than inheriting from the base widgets.

This might be problematic:
If Chart is a widget, when you set the style attribute of Chart you should actually set the style attribute of the Canvas underneath. This might be problematic to solve.
I thought that a better solution should look like the following:
def startup():
    canvas = toga.Canvas(style=Pack(flex=1))
    chart = toga_chart.Chart(canvas=canvas, on_draw=on_draw)

    content = toga.Box(
        children = [canvas]
    )
    main_window.content = content

Now it is clear that the Canvas is the actual widget and Chart is a help function that draws a figure into the Canvas.
Moreover, we can say that if a canvas was not presented in the constructor of Chart it will create a new one. So the example should also be written like:
def startup():
    chart = toga_chart.Chart(on_draw=on_draw)  # Creates a new Canvas as attribute
    chart.canvas.style.flex = 1

    content = toga.Box(
        children = [chart.canvas]
    )
    main_window.content = content

The approach you've describe could be made to work, but it's not really making Chart a widget in the sense that I'm describing. What you've described here - is some sort of weird container object where the end user needs to know about the internal implementation of Chart.
What I'm suggesting is that toga.Chart should actually be a widget - it's external API surface is the same as a widget. If you set the style of the chart, it is is applied to the chart; and when you add the chart to a layout, you add the chart to the layout. The fact that the Chart is backed by a toga.Canvas is an implementation detail - but not one the user needs to know about.
One way to do this would be to have the Chart create a Canvas instance and store it as a member - but make Chart._impl be the Canvas._impl instance. This means most of the internal operations will be performed directly on the Canvas instance - but the public interface that users see won't have most of the Canvas API entry points.
You can then make the Canvas API one that makes sense from the perspective of end-users, proxying those calls to the Canvas instance as necessary.


Adding CCDEF Format Class

This pull request adds a first iteration of CCDEF HDF5, very similar to the WFDB format class. The code uses h5py for file operations. More fidelity checking is needed, but this runs with the benchmarking script.

Thanks @wa6gz ! This is running on our linux server for me but isn't outputting the #seek, #read, and KiB numbers.
@bemoody , strace seems to be running without any exception but isn't reporting numbers. Any ideas as to why?

@briangow I've not looked into this in any detail, but as far as I can see write_waveforms isn't saving the files.

@tompollard despite it not being obvious in the code, I think this is writing the file as expected:
channel = 'II'
write_waveforms

set a trap at line 60: f["Waveforms"][channel].attrs["sample_rate"] = datadict["samples_per_second"]
in console enter f["Waveforms"][channel].attrs["sample_rate"]
KeyError: "Unable to synchronously open attribute (can't locate attribute: 'sample_rate')"
continue by executing f["Waveforms"][channel].attrs["sample_rate"] = datadict["samples_per_second"] and the remaining attrs lines.

read_waveforms

set a trap at line 72, the previous line is: sample_rate = f["Waveforms"][channel].attrs["sample_rate"]
type sample_rate in the console:
249.89

This shows that even though the f["Waveforms"].create_dataset(channel,data=sig_samples,compression="gzip", compression_opts=6, shuffle=True) line is before the code that sets the attrs, they are actually written.

@briangow you're right, my bad!

Looks great - thanks, Will!
The "KiB" column probably isn't measured correctly because my cache-busting kludge only works for native Python I/O.  I've just thought of a better way to handle that, so let's ignore that issue for now. :)
As for why "#seek" and "#read" report zeroes... maybe h5py is using mmap?


Add transaction support to write.

Supersedes #69, but made @maxfreu a co-author on this PR.
Apart from formatting, the relevant bits are here: feat/use-transactions?expand=1#diff-db104fa7ac
From inspection of the GDAL code, and the code in #69, it seems copy is not necessary at all. Direct creation of a layer is possible, but only using addfeature (adding it), as createfeature actually tries to overwrite an existing one (and can't find one) when the layer is linked to a dataset. 🤷🏻
Also adds use of ogr_f_setgeomfielddirectly, which prevents making a copy of the geometry. Overall this code should be faster and use less memory. @maxfreu Can you confirm a 30x speed improvement with this code as well?

Also note that I used GDALDatasetStartTransaction on the dataset level (https://gdal.org/api/raster_c_api.html#gdal_8h_1a57e354633ef531d521b674b4e5321369) instead of the OGR_L_StartTransaction at the layer level, as recommended by GDAL.

Supersedes https://github.com/evetion/GeoDataFrames.jl/pull/69, but made @maxfreu a co-author on this PR.

I'm fine with that :)
Overall, this seems to be a solid improvement. When I wrote the initial code, I just copied the older stuff from ArchGDAL, with all its flaws. The main problem for me back then was lacking documentation and the cumbersome API of (Arch)GDAL, so the outcome was sub-optimal.

Also adds use of ogr_f_setgeomfielddirectly, which prevents making a copy of the geometry. Overall this code should be faster and use less memory.

Very good, I think these changes must be upstreamed to ArchGDAL.

I used GDALDatasetStartTransaction on the dataset level

Yeah, I read the documentation just yesterday :sweat_smile:

Can you confirm a 30x speed improvement with this code as well?

I'll benchmark it and let you know.
The only nitpick: If we want really solid code, then we should also include transaction rollback.

I tested both implementations with a dataframe containing ~38k polygons with ids and took several timings. I'm surprised, but your code is consistently slower than the old version and also allocates more:
# old
julia> @time GeoDataFrames.write("/tmp/deleteme.sqlite", df; use_gdal_copy=false)
  0.286841 seconds (655.66 k allocations: 13.266 MiB)
"/tmp/deleteme.sqlite"

# new
julia> @time GeoDataFrames.write("/tmp/deleteme.sqlite", df)
  0.439611 seconds (3.39 M allocations: 99.919 MiB, 3.43% gc time)
"/tmp/deleteme.sqlite"

I tested both implementations with a dataframe containing ~38k polygons with ids and took several timings. I'm surprised, but your code is consistently slower than the old version and also allocates more:

Always good to profile. So I forgot to shortcut the _convert method, otherwise we always convert ArchGDAL geometries. Now it requires just one unsafe_copy. I now have less allocations, and twice as fast code for writing a 7k polygon geopackage.
old:
0.152208 seconds (271.71 k allocations: 4.585 MiB)
this PR:
0.062026 seconds (174.90 k allocations: 3.108 MiB)

I can confirm the improvement; for me it went down from 0.44s to 0.2s, which is about 1.8 times faster than my code and 18 times faster than master. Looking forward to the merge :)

Whoop whoop :tada: Thanks! :)


Play page code seperation

This is to separate the code on the Play page for the levels and basically separate the conditions for play mode and test mode separately, and create a different component for those

useful refactoring!  I will say, try to keep the components co-located in the pages that use them.  The play and test mode are not used on any other page, so maybe put them directly in the page.tsx route they are used in

@kdhaka94 can you resolve conflicts with main branch? thanks

I wasn't able to test the latest due to convex issue, figuring it out, I tried to put in most of the logic and not mess it up, Please do let me know if any issue occurs, and also when pulled in the latest it seems somebody forgot to typecast the handlers and map.ts

useful refactoring! I will say, try to keep the components co-located in the pages that use them. The play and test mode are not used on any other page, so maybe put them directly in the page.tsx route they are used in

Yeah, I do get your point but I feel that the pages folder itself gets too much cluttered if not handled properly and the atomic design concept might be a better solution to and if there is a case where the number of developers is exceeding, then using plopJs creates a much more developer friendly environment, I can go on and on but yeah just my opinion 😁

Hey @kdhaka94, can you check review and also resolve merge commits?

closing as stale, feel free to reopen once you fix all the merge conflicts!


Division for unsigned values produces incorrect result

Test sample
var Long = dcodeIO.Long;
		var a = new Long(0,8, true);
		var b = Long.fromNumber(2656901066, true);
		var x = a.div(b); // x = 12 is corrupt, its object value->unsigned = false, should be true
		//x = 12; // Explicitly setting Long.fromNumber(12, true) yields correct result.
		var y = Long.fromNumber(3850086465, true);
		var z = Long.fromNumber(2476925576, true);
		var res = x.mul(y).compare(z.shl(32)) > 0;

		console.log("x = " + x + "; (" + (x.mul(y)) + ") > (" + (z.shl(32)) + ") = " + res);

Output:
x = 12;<PHONE_NUMBER>0) ><PHONE_NUMBER>3545962496) = true
Expected:
x = 12;<PHONE_NUMBER>0) ><PHONE_NUMBER>3545962496) = false

Well, I see where this fails, but this doesn't seem to be an easy thing to fix. The derived algorithm (from the closure library) seems to be designed for signed values only. Making the inputs properly unsigned only results in infinite loops for me so far.

What about to replace 'res = ZERO' (https://github.com/dcodeIO/long.js/blob/master/src/long.js#L961) to 'res = this.unsigned ? UZERO : ZERO'
It seems it resolves the issue

Well, yes, partly, but there is also this test case: https://github.com/dcodeIO/long.js/blob/master/tests/suite.js#L159
Using toNumber() there is bogus of course, but let's say we do this instead:
        "max_unsigned_div_neg_signed": function(test) {
            var a = Long.MAX_UNSIGNED_VALUE;
            var b = Long.MAX_UNSIGNED_VALUE.sub(1);
            var longVal = a.div(b); // here
            console.log(longVal.toString());
            test.done();
        },

With your proposed fix applied, this (still) results in an infinite loop.

Yes, I see infinite loop
What about to adopt unsigned division from that
https://github.com/sq/JSIL/blob/master/JSIL.Libraries/Includes/Bootstrap/Int/Classes/System.UInt64.js#L36

@dcodeIO, thank you for fixing this issue!


Discord.py 2.0 changes

While discord.py 2.0 is unknown when it will be released or if it will ever happen and while no official statement, i'll leave this here for what cog needs changes and not.

If you convert all the cogs to dpy2, I suggest having them on a separate branch, because many people are still on dpy 1.7.3

If you convert all the cogs to dpy2, I suggest having them on a separate branch, because many people are still on dpy 1.7.3

Well they are not going to be converted until dpy 2.0 is actually a thing to everyone.

ah i see, thanks :)

This is complete and waiting for discord.py to bump their version to 2.0 from alpha. + Red has to push their stuff to 3.5, Closing this as complete so i dont forget about this one. 3.5 needs to be out before August 31 and its not long until.
If some has question or wants something more added, feel free to create an issue and mark it with dpy 2.0.


After newest update today FB pixel is not working at all. Code seems to work in GTM, however FB is not registering the pixel.

Hi,
I can't reproduce this - it's worked fine when I've tested it. Is this still a problem? If it is, could you share the Preview mode link to your container as well as a URL where the issue persist? Thanks!

Sorry I missed this email. I changed the container to a previous version
and then it worked again. I haven't dared to update to the newest version
yet. I'll test it and if the problem persists I'll let you know. Thanks for
replying to me.
Best,
Sarah
On Mon, Jun 1, 2020 at 9:33 AM Simo Ahava<EMAIL_ADDRESS>wrote:

Closed #4
https://github.com/gtm-templates-simo-ahava/facebook-pixel/issues/4.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gtm-templates-simo-ahava/facebook-pixel/issues/4#event-3391890876,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APMBN4A3RG6WAPA2XFTWGXDRUNKUZANCNFSM4MTBHTFA
.


Add isCMSPreview() and a variable for 'CMSPreview'

Idea / New Feature request
A core function around the CMSPreview param that is used in requests to work out if we're currently in the preview pane.
I've seen a couple of situations where controllers are doing things that you don't want specifically done in the CMS preview pane.
Think redirection logic or perhaps rendering something.
Additional ideas:

The string itself could be defined as a static for configuration

Example the DNA...\BaseElement.php has the following

public function isCMSPreview()
{
    if (Controller::has_curr()) {
        $controller = Controller::curr();

        if ($controller->getRequest()->requestVar('CMSPreview')) {
            return true;
        }
    }

    return false;
 }

Something like that would be useful to be in core I think, + also good to have a fixed way to get the CMSPreview string used in the param. As it's not a variable currently in framework/core

The string it self could be defined as a static for configuration

I can't foresee any scenario where this would be useful - normally you'd want to configure something like that to avoid collisions, but I can't think of any other use of a CMSPreview parameter you'd want to avoid clashing with.
isCMSPreview() as a method somewhere in core makes sense. Where do you think this should go?
If it's on Controller or Request (arguably the two places that would make the most sense) you'd still have to do a if (Controller::has_curr()) check, so the method would ultimately be a one-liner return $controller->getRequest()->requestVar('CMSPreview');

I can't foresee any scenario where this would be useful - normally you'd want to configure something like that to avoid collisions, but I can't think of any other use of a CMSPreview parameter you'd want to avoid clashing with.

I've worked on some sites in the past where Clients would like things obfuscated in some manner.. I guess mostly just for their thoughts that they've done something
It would really be on the developer if placing CMSPreview=1 on the front end gets you something you shouldn't.

isCMSPreview() as a method somewhere in core makes sense in theory. Where do you think this should go? If it's on Controller or Request (arguably the two places that would make the most sense) you'd still have to do a if (Controller::has_curr()) check, so the method would ultimately be a one-liner return $controller->getRequest()->requestVar('CMSPreview');

✅ That is clean 🧼 🎉
I was only thinking Controller, but Request makes sense...
Would a trait make sense? Then I guess you could apply it else where if you were making something truly custom 🤔

Sorry, I bookmarked this with full intentions to get back to it and then never got back to it. Do you wanna have a zoom call sometime next week to hash this out?

@GuySartorelli
My turn to be late.
I'll slack you, and we'll sus something out.

We've discussed this offline, and have concluded:

This should be implemented on Director as a public static method (that's where similar methods such as is_cli() live)
It should be added as a global template variable via Director::get_template_global_variables()

This allows you to use Director::isCMSPreview() in PHP or $isCMSPreview in a template.
A docs PR will also be needed, to update the list of template globals and to add this to the 5.2 changelog.


Physics nodes reorganization

Implements https://github.com/godotengine/godot-proposals/issues/2184 for 2D and 3D physics.
Named things a bit differently from the original proposal in order to alleviate possible confusion reported by the community (more details in https://github.com/godotengine/godot-proposals/issues/2184#issuecomment-839040057).
The general idea is to keep consistent naming all over the API to make documentation easier, with names that match standards from physics engines:
Dynamic = can move, receive forces and be pushed around
Kinematic = can't be pushed, can move and push dynamic bodies along the path
Static = can't be pushed, can move by teleport only
Character = specific kinematic character controller functionalities
Changes are in separate commits to make review easier, but I can squash everything in the end if needed.
1. KinematicBody functionalities split between PhysicsBody and new node CharacterBody
-KinematicBody renamed CharacterBody, using same icons
-PhysicsBody now has methods move_and_collide/test_move and needed properties for these methods: safe margin, locked axes (3D only).
-Moved collision_exceptions from StaticBody to PhysicsBody for 3D (now same as 2D, and conforms to documentation).
-RigidBody doesn't have test_motion() method anymore, since it's now redundant with PhysicsBody.test_move().
2. Properties instead of parameters for move_and_slide and remove move_and_slide_with_snap
-snap property to replace move_and_slide_with_snap()
-floor_max_angle, stop_on_slope, infinite_inertia, max_slides, up_direction properties to replace arguments from move_and_slide()
-Default values haven't changed, except for up_direction which is now Vector3.UP and Vector2.UP since it's the most common use case (it was previously zero, and would consider everything a wall by default)
-Possiblity to add more properties in the future to support different character controller use cases
3. More explanatory names for RigidBody modes
-MODE_DYNAMIC instead of MODE_RIGID (to avoid confusion with RigidBody node)
-MODE_DYNAMIC_LOCKED instead of MODE_CHARACTER (to avoid confusion with CharacterBody node)
-No more special case for sleeping behavior for MODE_DYNAMIC_LOCKED (MODE_CHARACTER was forcing the body not to sleep, which is redundant with can_sleep and wasn't done in Bullet).
4. Support for kinematic_motion in StaticBody
-Does the same thing as simulate motion from RigidBody in Kinematic mode, and CharacterBody (previously KinematicBody).
-Added support for constant linear/angular velocity with kinematic_motion in StaticBody, which moves the body in physics (as opposed to just moving bodies in contact)
-Updated documentation for StaticBody and CharacterBody to describe their functionalities more accurately.

BTW can we get docs telling us how to convert move_and_slide() to move_and_collide() - I tried passing the velocity * delta to move and collide, which most tutorials seem to recommend, and got completely different behavior than move_and_slide(), do they use different parameters other than one having the delta baked in and the other not?

@Zireael07 If you mean that move_and_collide will stop on obstacles, that's because you need to slide the body manually. Something like
var col = move_and_collide(velocity * delta)
if col:
    move_and_collide(col.remainder.slide(col.normal))

No, I do want it to stop on obstacles. I mean I get completely different behavior, almost as though the velocities were much larger...

@Zireael07 That seems strange. Could you open an issue with a MRP so I or someone else can have a look to your use case? It's a bit off-topic to discuss it here.

@Zireael07 Wasn't it because in move_and_slide the delta time is processed internally?

Err, sorry, approved by accident, but it looks fanastic so i guess its ok anyway.
I would change the safe margin, but depends on what you think regarding it most likely breaking in Bullet. TBH I would just not care about Bullet at this point.

@reduz I've just pushed two changes based on your feedback and our discussion on rocketchat:

Safe margin cleanup

Safe margin property on CharacterBody instead of PhysicsBody, used as argument in move_and_collide. It can be still useful to keep it as a property as it's used in move_and_slide and CharacterBody is a specialized node.
Removed kinematic_safe_margin in 3D physics server, not really useful and now harmonized with 2D.

Linear velocity cleanup

CharacterBody has a linear_velocity property to replace the argument in move_and_slide. So now move_and_slide uses this property and modifies it when collisions occur.
StaticBody handles reporting linear/angular velocity correctly when kinematic motion is used (in 3D, used in vehicle and navigation).  This is an issue I've just spotted, when I've moved kinematic motion from KinematicBody to StaticBody I overlooked this case.

Supersedes https://github.com/godotengine/godot/pull/43073?

Supersedes #43073?

Yeah, #43073 is based on an older proposal that was superseded.

Late to the party but only just found out about the linear_velocity property. I am not a fan.....


Access to fetch at external_redirect_url from origin our_url has been blocked due to CORS policy

Expected behavior:
When tapping on a link that redirects to an external site
The external site should load correctly
Actual behavior:

"Error loading page" screen
Along with this in the Logcat output:
WebFragment onVisitErrorReceived() error code 0

[INFO:CONSOLE(0)] Access to fetch at 'https://our-app.formstack.com/forms/redacted'
(redirected from 'http://app.android-local.dev-hellobrightline.com:3000/formstack/forms/3f76559e-bb49-4465-a7ab-ab4e75b80f29')
from origin 'http://app.android-local.dev-hellobrightline.com:3000' has been blocked by CORS policy:
 No 'Access-Control-Allow-Origin' header is present on the requested resource.
If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.",
source: http://app.android-local.dev-hellobrightline.com:3000/formstack/forms/3f76559e-bb49-4465-a7ab-ab4e75b80f29 (0)

Isolating the problem further, if instead I have the original link pointing to https://our-app.formstack.com/forms/redacted instead of http://app.android-local.dev-hellobrightline.com:3000/formstack/forms/3f76559e-bb49-4465-a7ab-ab4e75b80f29, it works just fine. The introduction of the redirect seems to break it.
I noticed the CORS error in firefox and chrome, and disabling turbo fixed the request since it stopped being a fetch via turbo.js. Now it's happily a link that redirects successfully. But in our turbo-android app, it is still failing.
Since I don't have control over the formstack servers, I cannot modify the CORS headers successfully.
I'm going to continue to dive into this issue, but wanted to post it here for posterity, and to hopefully get some help from anyone who has encountered this issue previously.
Thanks in advance.

You have to intercept navigations to external links and create a separate WebView to show them. WebView from Turbo is only intended to be used with turbo.js itself.

Thanks @MichalSznajder !
I already have some code doing that here:
interface NavDestination : TurboNavDestination {

   override fun shouldNavigateTo(newLocation: String): Boolean {
        Log.d("Navigation", "Navigation to ${newLocation} from ${location}")
        return when (isNavigable(newLocation)) {
            true -> true
            else -> {
                launchCustomTab(newLocation)
                false
            }
        }
    }

    private fun isNavigable(location: String): Boolean {
        return location.startsWith(BuildConfig.BASE_APP_URL)
    }

}
...

But the logging (Navigation to ${newLocation} from ${location}") only shows up on the first link.

So it shows up for my internal link, returns true, and continues within the WebView with turbo.js. However, it does not log the above after the redirect. So, that mechanism fails here. It's very possible I'm inserting myself at the wrong moment, but if not, this is more internal to the `turbo-android` codebase than I've dug into.

I think we're getting closer. I'll keep looking through the docs to better understand if I'm intercepting the request properly.

I think I've verified that this is a bug in turbo-android. I've added this commit to a fork of the demo repository:
https://github.com/hjhart/turbo-native-demo/commit/767139cdc09d6c4181dd357860038b39ab65f742
You can see how the external links work just fine, but a redirect to an external link does now. See the video below, running against a local server and using the default turbo-android demo code.
https://github.com/hotwired/turbo-android/assets/547981/201cd83e-c7c4-4549-9257-3f7ebfcaa532

@jayohms I'm happy to take this work on, as it is blocking my companies critical path, but do you have any pointers as to what code I might want to touch before I dive into this work?

@jayohms, wow, that works perfectly. Thanks so much!
https://github.com/hotwired/turbo-android/assets/547981/46b22503-4ce2-4586-8db8-d6b9d64abdfe

The fix is now available in 7.1.2: https://github.com/hotwired/turbo-android/releases/tag/7.1.2

Hey @jayohms, thanks for the quick release! Does this also require an upgrade of turbo.js?

@jayohms, okay, I'm realizing I don't know what to do again. The domain I had set up in test was to https://turbo.hotwired.dev.
~ ❱ curl -I https://turbo.hotwired.dev                                                                                13:43:19
HTTP/2 200
...
access-control-allow-origin: *
...

The important bit in those headers is that access-control-allow-origin is set to allow all domains. But how should the turbo-android package handle it if we don't have access to set those headers? One option is to set up a proxy, but I'd love to avoid setting up any new infrastructure, as this works perfectly fine in a browser.
Here it is demonstrated again...
https://github.com/hotwired/turbo-android/assets/547981/24b47cf0-7c38-4330-8a89-16dcf96cc3cb
I'm working off of main on turbo-android, and using this server running locally: https://github.com/hjhart/turbo-native-demo
I think I should be breaking out of turbo, but I don't seem to have the proper hooks firing to do so (shouldNavigateTo doesn't fire, for instance).
Any input?


cdo: 1.9.10 -> 2.0.5 and add eccodes dependency for GRIB files

Description of changes

Latest changelog: https://code.mpimet.mpg.de/news/521
Some versions are skipped, more changelogs can be found here: https://code.mpimet.mpg.de/projects/cdo/news
The second commit adds eccodes as a dependency because it is needed for GRIB files.
This makes the package comply with its longDescription, which explicitly mentions GRIB 1/2.
I am not sure if this should be a separate PR, but it is such a small change that I decided against that.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1014

I applied the formatting suggestions. Should the default be to just run nixpkgs-fmt on it in the future? Because that would also reformat the function arguments at the top to be on separate lines.

yeah sure, why not

@ofborg eval


Suggestions for improving this repository

See e-mail about assignment follow-up
Contained are comments that describe various issues with your repository as is. There are no functional changes -- this just describes what is required to improve functionality and make this repository professional.

Thank you for the feedback. The code has been adjuster 👍 🙏  Closing this


dashboard: icon and widgets

entering as etest i don't see the widgets.
probably good to have them also for non-admin.
otherwise a rather useless page? (see navigation bar).
the home icon should probably become a dashboard icon?
consider a live graphical representation of the data sections.

not relevant for now


Supports topic name as targetType of JsonDeserializer

It's common to use FQCN of domain object as topic name, so we can use topic name instead of header, it make message more compact to save space.
here is my implementation for reference:
import java.io.IOException;
import java.util.Arrays;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.apache.kafka.common.errors.SerializationException;
import org.apache.kafka.common.header.Headers;
import org.springframework.kafka.support.serializer.JsonDeserializer;

@SuppressWarnings("unchecked")
public class TopicNameBasedJsonDeserializer<T> extends JsonDeserializer<T> {

	private Map<String, Class<?>> cache = new ConcurrentHashMap<>();

	@Override
	public T deserialize(String topic, Headers headers, byte[] data) {
		if (data == null)
			return null;
		try {
			Class<?> clazz = cache.computeIfAbsent(topic, cls -> {
				try {
					return (Class<T>) Class.forName(cls);
				} catch (ClassNotFoundException e) {
					return Object.class;
				}
			});
			return clazz != Object.class ? (T) this.objectMapper.readValue(data, clazz)
					: super.deserialize(topic, headers, data);
		} catch (IOException e) {
			throw new SerializationException(
					"Can't deserialize data [" + Arrays.toString(data) + "] from topic [" + topic + "]", e);
		}
	}

	@Override
	public T deserialize(String topic, byte[] data) {
		if (data == null)
			return null;
		try {
			Class<?> clazz = cache.computeIfAbsent(topic, cls -> {
				try {
					return (Class<T>) Class.forName(cls);
				} catch (ClassNotFoundException e) {
					return Object.class;
				}
			});
			return clazz != Object.class ? (T) this.objectMapper.readValue(data, clazz)
					: super.deserialize(topic, data);
		} catch (IOException e) {
			throw new SerializationException(
					"Can't deserialize data [" + Arrays.toString(data) + "] from topic [" + topic + "]", e);
		}

	}

}

Interesting technique, but this seems a little unusual to me rather than "common", so I am not sure it belongs in the framework.

It can be an alternative of storing type in headers, and disabled as default.

After consideration we have decided to reject this suggestion.
While it might work for your application, it's not general enough for the framework - for example, key serialization/deserialization is not supported.
Thanks for the suggestion, though.


Synonym for GUBS

Mondo term
Genitourinary and/or brain malformation syndrome MONDO:0032934
Synonyms
GUB syndrome
Urogenital and/or brain malformation syndrome
UBMS
UBM syndrome
Synonym type
exact
Additional comments
GeneReviews:NBK573670

Dear @peupeubangbang,
Thank you for reaching out to the Mondo Disease Ontology, part of the Monarch Initiative!
We have received your ticket and will review it as soon as possible.
If you have any additional information or updates relevant to your inquiry, please add them in a comment on this ticket. Your input is valuable in helping us understand and resolve the issue effectively.
Thank you for your patience and for your contributions to Mondo!
Sincerely,
The Mondo Team


Extend TypeScript types

refs #8

Codecov Report

Merging #10 (5ada026) into master (7c7324c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           26        26
=========================================
  Hits            26        26

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 7c7324c...5ada026. Read the comment docs.

Codecov Report

Merging #10 (5ada026) into master (7c7324c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           26        26
=========================================
  Hits            26        26

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 7c7324c...5ada026. Read the comment docs.

Sorry for hassle, but could you also publish this change? Would save us a bunch of castings :D

Sorry for hassle, but could you also publish this change? Would save us a bunch of castings :D

Done in 1.1.1

Done in 1.1.1

Thank you!

Thank you!

Thank you for the contributions!

Thank you for the contributions!

It was my pleasure :)

It was my pleasure :)


PHP 7.2 count() Issue

Hi, there are some problem with this library after updating to php 7.2.
It doesn't support count() to check empty params.
"count(): Parameter must be an array or an object that implements Countable"

@count() could solve

Bu is not much elegant :) Happy 2019


Introduce Snapshot

Problem
Yorkie allows each client to exchange operations with the server. This causes a performance problem when a client attaches a document that has many accumulated operations.
Operations vs Snapshot in counter example:

operation: (+1), (+1), (+1), (+1), (+1), (+1), (+1)
snapshot: 7

Solution
The server stores snapshot at specific intervals then send a snapshot when the client attaches a document.

The response size of the attach API with 3972 changes is about 1.3 Mb.

The response size of the attach API with 4250 changes is about 0.789 Mb in Drawing example.

I think that the payload will be reduced if we replace the size of actorID or perform garbage collection as follow-up work.
https://github.com/yorkie-team/yorkie/issues/3

with snapshot + replace actor_id(24 bytes string -> 12 bytes array)
The response size of the attach API with 4296 changes with a snapshot is about 0.636 MB in Drawing example.


openconnect: Add darwin support

Motivation for this change
So far the derivation had no Darwin support. The build was failing on darwin because yubikey needs the PCSC framework dependency so I added it. I also upgraded to the latest vpnc-script as recommended on the openconnect homepage (see: https://www.infradead.org/openconnect/platforms.html) because with the old vpnc-script openconnect did not work properly. Lastly, I moved all dependencies which are not used at runtime from propagatedBuildInputs to buildInputs (Please correct me if that is wrong).
Things done

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

[ ] NixOS
[x] macOS
[x] other Linux distributions

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

Things to do
Would be nice if someone could test it on NixOS and linux (Maybe @trobert in combination with your pkcs11 support).
Notify maintainers
cc @pradeepchhetri

Builds for me, macos 10.13.

Anyone on linux using openconnect who can test this?

@tricktron @trobert could you review each others changes?
https://github.com/NixOS/nixpkgs/pull/68780

I successfully managed to build this derivation on linux as well.

I successfully tested these changes combined with those in #68780 on linux.
However I am not sure about the propagatedBuildInputs change. At first I agreed but then I saw that openconnect also provides a lib. So it could make sense to propagate the dependencies for the lib users (like connman-gtk ?).
On the other hand, I think vpnc should not be part of any *buildInputs.
Someone more experienced on Nix than me may be able to help more on this part.
Last, did you also test openconnect_openssl on darwin ? On linux it requires an addtional lib (libp11)

However I am not sure about the propagatedBuildInputs change.

Me neither. My understanding is that every build time dependency should go into buildInputsand every runtime dependency into propagatedBuildInputs. So you are probably right and every library should stay in the propagatedBuildInputs.

Someone more experienced on Nix than me may be able to help more on this part.

Exactly. Maybe @FRidh knows more?

Last, did you also test openconnect_openssl on darwin ? On linux it requires an addtional lib (libp11)

Yes I tested it and it builds successfully. Openssl does not require libp11. Only pkcs11 requires libp11 support if using openssl. So without libp11 -> no pkcs11 support using openssl. With libp11 -> pkcs11 support using openssl.

after a second look, I think the vpnc script need also to be patched to use /nix/store paths for its dependencies (ip, netstat, awk, ...), as in the original vpnc derivation.


Geospatial View node has duplicate base map entry for Stamen Watercolor

The title says it all

Fixed with https://github.com/spatial-data-lab/knime-geospatial-extension/commit/d6596b0c66c0eabee9857521e9b6a444c1fe334f


Add cn docs for conv1d, conv1d_transpose, Conv1D and Conv1DTranspose

Conv1D

L_{out} = \frac{\left ( L_{in} + padding * 2 - \left ( dilation*\left ( L_{f}-1 \right )+1 \right ) \right )}{stride}+1

Conv1D

Conv1DTranspose

conv1d

conv1d_transpose

grid_sample

affine_grid


feat: add Probe object to wrap probe design results from Primer3

Originally we wanted to add a Probe object that inherits from Primer and added additional attributes of a probe. We have decided to change course to refactor Primer and Probe into the same dataclass, Oligo. Standby for refactor.

@msto agreed -- I will close this PR and open a new one with additional context


Support Include

I used ReturnsDbSet to mock the data. But it does not support include clause.
What is the syntax to support include?

Would love to hear more about this, I also need this feature :)

Are you able to help me with development? Last time I have limited time to support my all projects that is why this feature is parked a bit.

Let's assume EF code like this:
public class Address
{
    public int Id { get; set; }
    public string Line1 { get; set; }
}

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual Address Address { get; set; }
}

public class PersonContext : DbContext
{
    public virtual DbSet<Person> Persons { get; set; }
    public virtual DbSet<Address> Addresses { get; set; }
}

public class PersonsController
{
    private readonly PersonContext personContext;

    public PersonsController(PersonContext personContext)
    {
        this.personContext = personContext;
    }

    public IEnumerable<Person> GetPersons()
    {
        return this.personContext.Persons.Include("Address").ToList();
    }
}

Then Include mock should work like this:
[Fact]
public void TestWithInclude()
{
    var address = new Address {Id = 1, Line1 = "123 Main St."};
    var expectedPersons = new List<Person>
    {
        new Person {Id = 1, Address = address, Name = "John"},
        new Person {Id = 2, Address = address, Name = "John Jr."},
    };

    var personContextMock = new Mock<PersonContext>();
    personContextMock.Setup(m => m.Persons.Include("Address")).Returns(expectedPersons.AsQueryable());
    ...
}

Have you tried this solution?

@MichalJankowskii When I run similar code, I get the following error:
cannot convert from 'System.Linq.IQueryable<Person>' to 'Microsoft.EntityFrameworkCore.Query.IIncludableQueryable<Person, Address>

But more important, how do I verify with above code that my SUT implementation actually contains an Include()?
Take for example above method GetPersons(), if I change that to the following, the test will still succeed:
    public IEnumerable<Person> GetPersons()
    {
-        return this.personContext.Persons.Include("Address").ToList();
+        return this.personContext.Persons.ToList();
    }

That's because the test expected db result already contains the "navigation" part (Address = address).
Similar issue: https://github.com/romantitov/MockQueryable/issues/45

This is a great question.
Provided example worked fine in 2020. From that time, Microsoft changed the implementation of EF library. The latest implementation uses extension methods for the Include function. And it is not possible to use Moq to fake it.
This is the limitation of EFCore architecture and Moq features. I am not able to support this in this lib.
You could create your own extensions and wrap those from EF. Here you could mock that based on your implementation. But this is not the approach I would like to have in the code.

Hi @MichalJankowskii ,
Sorry for re-opening this, but I felt like it's better than opening yet another issue for this.
First of all thank you for your efforts put into this little library, looks very promising.
While I understand that implementing the full proper Include functionality is difficoult to say the least, but I'd also like to at least validate the added includes in my unit tests.
I see that in the current EFCore there is not too much change to catch these calls, as the code checks whether the provider is an instance of EntityQueryProvider (see here). However, it would probably be a small bit of flexibility to modify this by introducing an interface like IIncludableQueryProvider (as a marker interface). I don't think it would have too much impact in any manner to EF Core. Then EntityQueryProvider could implement that, and you could implement that too, so you would receive the CreateQuery calls with the Include method. This way you could track the added includes in some way so at least the added includes would be assertable in a unit test. Does this make sense? Do you think it's worth a try to add a PR to EFCore to allow this extensibility?
Thank you

As an addition, I see that this EntityQueryProvider in EF Core is part of the public interface, and also has all the methods as virtual. As a possible alternative approach (without needing any modifications in EF Core), could it be possible to inherit the mocked provider from this one and re-use the base test query provider in some other way inside?


std::map is already a sorted container, no need to sort it

@AngheloAlf Jenkins actually tests the oot repo so no need :)


no graphic output on TBT screen

I installed 10.14.5 mojave on the hades canyon and it works well with my 1080p monitor. but when i use a 5k monitor with the thunderbolt plug, there's no graphic output at all and the screen is black. but the loudspeaker inside the monitor works so i think maybe the tbt device is connected.
my 5k monitor is lg ultrafine 5k and it is designed for macos, u can find it in the apple store and i'm sure it should be working perfectly with a real mac. the resolution is 5120x2880. it can connects only with a thunderbolt plug, no dp or hdmi. it works well in windows 10 at 5120x2880@60Hz
except the HID light sensor so it cannot adjust the brightness automatically.
It would be perfect if the screen goes well for this set.

I've already got the TB3 security setting from its default to the legacy mode in the bios

Duplicate of #15
Let's keep the conversation there.


Unable to save Read Only File( EPERM: operation not permitted, open 'E:\NewBranch\ui-src\budgeting\model-builder\model\js\models\model.js')

hi,
unable to save Read Only File in atom
Error:
EPERM: operation not permitted, open 'E:\NewBranch\ui-src\budgeting\model-builder\model\js\models\modelTemplatesModel.js'
wheares in other Editors like Visual Studio code
it will prompt with a Message and option of Overwrite and after that saving the File

Prerequisites

[ ] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
[Description of the issue]
Steps to Reproduce

[First Step]
[Second Step]
[and so on...]

Expected behavior: [What you expect to happen]
Actual behavior: [What actually happens]
Reproduces how often: [What percentage of the time does it reproduce?]
Versions
You can get this information from copy and pasting the output of atom --version and apm --version from the command line. Also, please include the OS and what version of the OS you're running.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Thanks for taking the time to contribute!
We noticed that this is a duplicate of https://github.com/atom/text-buffer/issues/107. You may want to subscribe there for updates.  Additionally, if you can fill out the issue template completely, that would be super helpful for us.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


Bumped the Mesos and mesos-modules packages.

High Level Description
This PR updates the Mesos and mesos-modules packages.
Related Issues

CORE-1067 Filter results of /master/slaves and the v1 call GET_AGENTS
DCOS-17194 Rename .cni config files to .conf

Checklist for all PR's

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): Mesos diff, mesos-modules diff
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot bump-ee

@mesosphere-mergebot label Ready For Review

@greggomann  - the upgrade-onprem test is not successful yet. This needs to turn green before it can be merged.

Changing to 'work in progress' after discussion with @sambatyon

Work is being continued in #1753, please someone with rights could close the PR?


sign apache icla optimalize

Optimalize how-to-sign-apache-icla.md

The English version also needs to be modified simultaneously.


[Feature#7255] Client support updateNameServerAddressListByDnsLookup

Which Issue(s) This PR Fixes

Fixes #7255
Brief Description

How Did You Test This Change?

Please fix checkstyle


Create Automated Deployment via Pulumi

Currently this repo relies on an individual to manually deploy the infrastructure as laid out in this repo. We should instead be looking to have this deploy using an OIDC role via Github Actions.
I recommend creating a pulumi preview workflow first, to trigger on PR, and move onto the pulumi up workflow once you're satisfied the preview is working as intended.
Acceptance Criteria

[x] A workflow is able to successfully access and deploy the stack from a github hosted runner
[x] The role used by the runner is appropriately scoped to the needs of this repo (created as an OIDC role)
[x] The workflow runs on PRs to preview the planned action, and again on merge into main to deploy.

Closed for now and may be reopned if issue is raised again.


[dev] Fix LDFLAGS for LLVM on MacOS

The lack of "rpath" caused the recent build failure when Brew changed the LLVM version to 4.0.


Calling dismiss dependency fails when executed from a secondary effect (navigation beta)

Description
In the following example, the dismiss dependency fails to dismiss the sheet when it is called from an effect that has been sent back into the store (for example, after saving state changes to disk).
import SwiftUI
import ComposableArchitecture

struct AppReducer: ReducerProtocol {

    struct State: Equatable {
        @PresentationState var sheet: MySheet.State?
    }

    enum Action: Equatable {
        case sheet(PresentationAction<MySheet.Action>)
        case sheetButtonTapped
    }

    var body: some ReducerProtocol<State, Action> {
        Reduce { state, action in
            switch action {
            case .sheetButtonTapped:
                state.sheet = .init()
                return .none

            case .sheet:
                return .none
            }
        }
        .ifLet(\.$sheet, action: /Action.sheet) {
            MySheet()
        }
    }
}

struct MySheet: ReducerProtocol {

    struct State: Equatable {
    }

    enum Action: Equatable {
        case cancelTapped
        case saveTapped
        case saveCompleted
    }

    @Dependency(\.dismiss) var dismiss

    var body: some ReducerProtocol<State, Action> {
        Reduce { state, action in
            switch (action) {
            case .cancelTapped:
                return .fireAndForget { await self.dismiss() }

            case .saveCompleted:
                // This has no effect
                return .fireAndForget { await self.dismiss() }

            case .saveTapped:
                // Simulate saving data
                return .task {
                    try await Task.sleep(nanoseconds: 100 * NSEC_PER_MSEC)
                    return .saveCompleted
                }
            }
        }
    }

}

struct ContentView: View {
    let store: StoreOf<AppReducer>

    var body: some View {
        WithViewStore(store, observe: { $0} ) { viewStore in
            Button("Open sheet") { viewStore.send(.sheetButtonTapped) }
                .sheet(store: store.scope(state: \.$sheet, action: AppReducer.Action.sheet)) { store in
                    SheetView(store: store)
                }
        }
    }
}

struct SheetView: View {
    let store: StoreOf<MySheet>

    var body: some View {
        WithViewStore(store, observe: { $0} ) { viewStore in
            NavigationStack {
                Text("A Sheet")
                .toolbar {
                    ToolbarItem(placement: .cancellationAction) {
                        Button("Cancel") {
                            viewStore.send(.cancelTapped)
                        }
                    }
                    ToolbarItem(placement: .primaryAction) {
                        Button("Save") {
                            viewStore.send(.saveTapped)
                        }
                    }
                }
            }

        }

    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView(store: .init(initialState: .init(), reducer: AppReducer()))
    }
}

Checklist

[ ] I have determined whether this bug is also reproducible in a vanilla SwiftUI project.
[ ] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
The sheet should be dismissed via an asynchronous effect.
Actual behavior
The sheet is not dismissed via an asynchronous effect.
Steps to reproduce
Copy the sample code into Xcode and run the preview.
The Composable Architecture version information
navigation-beta (45b88b6f1b08c10cbd6141d9794828cb0a3f012a)
Destination operating system
iOS 16.2
Xcode version information
14.2
Swift Compiler version information
No response

Hey @scogeo, thanks so much for the clear, reproducible code sample! We see the problem and have a fix (#1948) that we will probably merge soon, but we have a few things we want to understand about the whole system first.

@mbrandonw glad you were able to reproduce. Thanks to @stephencelis for jumping on the PR almost immediately last night! I read the PR comments and it looks like it uncovered a few additional issues so happy to wait for you guys to get it right.
I can hold off on deleting all of my delegated dismiss actions in my codebase for a few days more. 😀


Add note under conferencing support that viewing embedded video in PPT isn't supported.

This isn't supported in Skype for Business on Android or iOS per RFC to PG.  Recommend adding a circle with number 3 next to "View shared PowerPoint files" with a note that states, "Viewing embedded video in PowerPoint presentations is not supported."

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

ID: 257dc4a1-8091-23db-64c4-f46b0519e14e
Version Independent ID: c5094b34-c69d-9e8d-40cb-9197b924e632
Content: Mobile client feature comparison for Skype for Business
Content Source: Skype/SfbServer/plan-your-deployment/clients-and-devices/mobile-feature-comparison.md
Product: skype-for-business-itpro
GitHub Login: @jambirk
Microsoft Alias: jambirk

@PhillipGarding can you please comment?

Let me know if you need the RFC URL for reference.  Happy to provide it.
Regards,
Nicholas Burkhammer
Microsoft ● Unified Communications ● Support Escalation Engineer
Email: nichburk<EMAIL_ADDRESS>Phone: +1<PHONE_NUMBER>
Hours: Monday-Friday 0900-1800 ET
Manager ● Craig Fischer ●<EMAIL_ADDRESS>[SummitAward_2018-OutlookSign]
From: James Birkinshaw<EMAIL_ADDRESS>Sent: Thursday, March 14, 2019 12:17 PM
To: MicrosoftDocs/OfficeDocs-SkypeForBusiness<EMAIL_ADDRESS>Cc: Nicholas Burkhammer<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/OfficeDocs-SkypeForBusiness] Add note under conferencing support that viewing embedded video in PPT isn't supported. (#1789)
@PhillipGardinghttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FPhillipGarding&data=02|01|nichburk%40microsoft.com|dd4c433530074f64e06708d6a8988780|72f988bf86f141af91ab2d7cd011db47|1|0|636881770393617111&sdata=vwo1575v5GsXJgovqaRKGVHtdGs58KDP5hZ%2FHE%2FxLl4%3D&reserved=0 can you please comment?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-SkypeForBusiness%2Fissues%2F1789%23issuecomment-472943176&data=02|01|nichburk%40microsoft.com|dd4c433530074f64e06708d6a8988780|72f988bf86f141af91ab2d7cd011db47|1|0|636881770393617111&sdata=4uBMmn8E5DMmEJqwwY8LsQNv7%2ByAh7ww%2F6BZHwxFAd8%3D&reserved=0, or mute the threadhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAp0-tsrYUtBrL0-MP4CuHuEAKGmIYou0ks5vWnYNgaJpZM4b0KJK&data=02|01|nichburk%40microsoft.com|dd4c433530074f64e06708d6a8988780|72f988bf86f141af91ab2d7cd011db47|1|0|636881770393627110&sdata=o3QjYPYx4psGx53lI%2FAdVpi90ddvqMdiedxlD0EIEl0%3D&reserved=0.

This is correct.  Viewing of video embedded in an uploaded PowerPoint presentation is not supported on iOS and Android.  Please update the documentation appropriately.

@officedocsbot assign @scanum

@NicholasBurkhammer Thank you for submitting this feedback.
From our understanding the issue has been resolved. If you feel it hasn't been resolved please re-open this issue.
@officedocsbot close

@officedocsbot close


Support for authentication?

Hello, thanks for your great work!
Would it be difficult to support some basic form of authentication? I am a bit wary of deploying Rustpad on a production server in case it could be abused and affect the rest of the services running on that server.
I guess one could implement authentication by running Rustpad behind a proxy, but I thought that perhaps something simple (eg Basic authentication) could be implemented directly inside Rustpad to avoid the extra complexity.

What kind of authentication mechanism would be useful? An SSH key? A password field within the web UI? User accounts?
I'm not sure if any of these are within scope.

Basic LDAP support targeting LLDAP would be nice: https://github.com/nitnelave/lldap