K8SPXC-321 feature: Restrict running less than 2 pods of proxySQL if unsafe flag is not set

https://jira.percona.com/browse/K8SPXC-321
Modified validation to restrict running less than 2 pods of proxySQL unless allowUnsafeConfigurations flag is set to true by changing proxySQL size to 2 if it's lower than that.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Test name
Status

big-data
passed

scaling
passed

recreate
passed

haproxy
failed

upgrade-haproxy
passed

storage
failed

scaling-proxysql
failed

restore-to-encrypted-cluster
passed

self-healing
passed

upgrade-proxysql
passed

init-deploy
failed

self-healing-advanced
passed

demand-backup
passed

smart-update
failed

security-context
failed

limits
failed

monitoring-2-0
passed

operator-self-healing
failed

affinity
failed

one-pod
passed

pitr
passed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

demand-backup-encrypted-with-tls
passed

users
failed

scheduled-backup
failed

upgrade-consistency
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/f4713fc7da81f52c2fca0535cf7c3ec9496b1ef1
image: perconalab/percona-xtradb-cluster-operator:PR-802-f4713fc7

Test name
Status

recreate
passed

scaling
passed

upgrade-haproxy
passed

haproxy
failed

big-data
passed

storage
failed

scaling-proxysql
failed

restore-to-encrypted-cluster
passed

self-healing
passed

upgrade-proxysql
passed

init-deploy
failed

self-healing-advanced
passed

demand-backup
passed

smart-update
failed

security-context
failed

limits
failed

monitoring-2-0
passed

operator-self-healing
passed

affinity
failed

one-pod
passed

pitr
passed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

demand-backup-encrypted-with-tls
failed

users
failed

scheduled-backup
failed

upgrade-consistency
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/e6ab4ee9c0639938998154c8275c7e6564df8a08
image: perconalab/percona-xtradb-cluster-operator:PR-802-e6ab4ee9

Test name
Status

recreate
passed

scaling
passed

big-data
passed

haproxy
failed

storage
failed

upgrade-haproxy
passed

scaling-proxysql
failed

self-healing
passed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

init-deploy
failed

self-healing-advanced
passed

demand-backup
passed

smart-update
failed

security-context
failed

limits
failed

operator-self-healing
failed

monitoring-2-0
failed

pitr
passed

demand-backup-encrypted-with-tls
failed

affinity
failed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

scheduled-backup
failed

upgrade-consistency
failed

users
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/74953bd3ca3d883ba486a9bce33fd95d0ee12ecd
image: perconalab/percona-xtradb-cluster-operator:PR-802-74953bd3

Test name
Status

big-data
passed

haproxy
failed

storage
failed

upgrade-haproxy
passed

recreate
passed

scaling
passed

scaling-proxysql
failed

self-healing
passed

restore-to-encrypted-cluster
passed

init-deploy
failed

self-healing-advanced
passed

demand-backup
passed

upgrade-proxysql
passed

limits
failed

security-context
failed

monitoring-2-0
passed

operator-self-healing
failed

smart-update
failed

affinity
failed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
failed

pitr
passed

users
failed

demand-backup-encrypted-with-tls
failed

scheduled-backup
failed

upgrade-consistency
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/1f6097938a57aab624829864cc20d929030bb1cb
image: perconalab/percona-xtradb-cluster-operator:PR-802-1f609793

P.S it's also needed to change the compare files for tests

Test name
Status

big-data
failed

haproxy
passed

recreate
passed

scaling
passed

storage
passed

upgrade-haproxy
passed

init-deploy
passed

self-healing
passed

scaling-proxysql
failed

restore-to-encrypted-cluster
failed

upgrade-proxysql
passed

limits
passed

self-healing-advanced
passed

monitoring-2-0
passed

smart-update
failed

security-context
failed

demand-backup
failed

affinity
passed

operator-self-healing
passed

one-pod
failed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

pitr
passed

demand-backup-encrypted-with-tls
failed

upgrade-consistency
failed

tls-issue-self
passed

scheduled-backup
failed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/ace03f3d91f2cff8585a2b0cee57e8d613c59950
image: perconalab/percona-xtradb-cluster-operator:PR-802-ace03f3d

Test name
Status

scaling
passed

scaling-proxysql
failed

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

storage
passed

one-pod
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

recreate
passed

restore-to-encrypted-cluster
passed

big-data
passed

upgrade-haproxy
passed

upgrade-proxysql
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

smart-update
failed

demand-backup
passed

security-context
failed

pitr
passed

demand-backup-encrypted-with-tls
passed

scheduled-backup
failed

upgrade-consistency
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/ace03f3d91f2cff8585a2b0cee57e8d613c59950
image: perconalab/percona-xtradb-cluster-operator:PR-802-ace03f3d

Test name
Status

upgrade-haproxy
passed

scaling
passed

scaling-proxysql
failed

big-data
passed

storage
passed

self-healing
passed

recreate
passed

self-healing-advanced
passed

restore-to-encrypted-cluster
passed

operator-self-healing
passed

demand-backup
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

haproxy
passed

scheduled-backup
failed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

upgrade-proxysql
passed

smart-update
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

security-context
failed

upgrade-consistency
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/ace03f3d91f2cff8585a2b0cee57e8d613c59950
image: perconalab/percona-xtradb-cluster-operator:PR-802-ace03f3d

Test name
Status

big-data
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

recreate
passed

operator-self-healing
passed

restore-to-encrypted-cluster
passed

demand-backup
passed

pitr
passed

scaling
passed

demand-backup-encrypted-with-tls
passed

scaling-proxysql
failed

scheduled-backup
failed

upgrade-haproxy
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

upgrade-proxysql
passed

smart-update
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

security-context
failed

upgrade-consistency
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/ace03f3d91f2cff8585a2b0cee57e8d613c59950
image: perconalab/percona-xtradb-cluster-operator:PR-802-ace03f3d

Test name
Status

upgrade-haproxy
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

recreate
passed

restore-to-encrypted-cluster
passed

demand-backup
passed

pitr
passed

big-data
passed

demand-backup-encrypted-with-tls
passed

scheduled-backup
failed

haproxy
passed

init-deploy
passed

scaling
passed

limits
passed

scaling-proxysql
failed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
failed

upgrade-proxysql
passed

smart-update
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

security-context
failed

upgrade-consistency
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/ace03f3d91f2cff8585a2b0cee57e8d613c59950
image: perconalab/percona-xtradb-cluster-operator:PR-802-ace03f3d

Test name
Status

storage
passed

haproxy
passed

scaling
passed

upgrade-haproxy
passed

recreate
passed

big-data
passed

init-deploy
passed

self-healing
failed

scaling-proxysql
passed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

security-context
passed

limits
passed

monitoring-2-0
passed

demand-backup
passed

smart-update
failed

affinity
passed

self-healing-advanced
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

operator-self-healing
passed

users
passed

tls-issue-self
passed

pitr
passed

tls-issue-cert-manager
failed

demand-backup-encrypted-with-tls
passed

upgrade-consistency
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

scheduled-backup
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/647eb0e6c5fc6f8adcb6c91e539eaa59533bc13e
image: perconalab/percona-xtradb-cluster-operator:PR-802-647eb0e6

Test name
Status

upgrade-haproxy
passed

haproxy
passed

recreate
passed

scaling
passed

storage
passed

big-data
passed

init-deploy
passed

scaling-proxysql
passed

self-healing
failed

security-context
passed

upgrade-proxysql
passed

restore-to-encrypted-cluster
passed

limits
passed

monitoring-2-0
passed

smart-update
passed

affinity
passed

demand-backup
passed

one-pod
passed

self-healing-advanced
passed

pitr
passed

upgrade-consistency
passed

operator-self-healing
passed

auto-tuning
passed

demand-backup-encrypted-with-tls
passed

proxysql-sidecar-res-limits
failed

scheduled-backup
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/dfd601fa58eed4854a275305924765d525121c3a
image: perconalab/percona-xtradb-cluster-operator:PR-802-dfd601fa

Test name
Status

storage
passed

haproxy
passed

recreate
passed

upgrade-haproxy
passed

big-data
passed

scaling
passed

init-deploy
passed

scaling-proxysql
passed

self-healing
passed

restore-to-encrypted-cluster
passed

security-context
passed

upgrade-proxysql
passed

limits
passed

self-healing-advanced
passed

monitoring-2-0
passed

demand-backup
passed

smart-update
passed

affinity
passed

one-pod
passed

operator-self-healing
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

pitr
passed

users
failed

upgrade-consistency
passed

demand-backup-encrypted-with-tls
passed

scheduled-backup
failed

tls-issue-self
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/b61876ae79ba13f49afd89f9e886606bd9fb3dac
image: perconalab/percona-xtradb-cluster-operator:PR-802-b61876ae

Test name
Status

upgrade-haproxy
passed

scaling
passed

scaling-proxysql
passed

security-context
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

big-data
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/b61876ae79ba13f49afd89f9e886606bd9fb3dac
image: perconalab/percona-xtradb-cluster-operator:PR-802-b61876ae

Test name
Status

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

scaling
passed

scaling-proxysql
passed

security-context
passed

big-data
passed

upgrade-haproxy
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/b61876ae79ba13f49afd89f9e886606bd9fb3dac
image: perconalab/percona-xtradb-cluster-operator:PR-802-b61876ae

Test name
Status

upgrade-haproxy
passed

scaling
passed

storage
passed

scaling-proxysql
passed

self-healing
passed

security-context
passed

self-healing-advanced
passed

operator-self-healing
passed

big-data
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/b61876ae79ba13f49afd89f9e886606bd9fb3dac
image: perconalab/percona-xtradb-cluster-operator:PR-802-b61876ae

Test name
Status

big-data
passed

scaling
passed

scaling-proxysql
passed

security-context
passed

upgrade-haproxy
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/b61876ae79ba13f49afd89f9e886606bd9fb3dac
image: perconalab/percona-xtradb-cluster-operator:PR-802-b61876ae

Test name
Status

haproxy
passed

init-deploy
passed

scaling
passed

limits
passed

monitoring-2-0
passed

scaling-proxysql
passed

affinity
passed

security-context
passed

one-pod
passed

auto-tuning
passed

upgrade-haproxy
passed

proxysql-sidecar-res-limits
passed

users
passed

recreate
passed

restore-to-encrypted-cluster
passed

demand-backup
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

scheduled-backup
passed

big-data
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/b61876ae79ba13f49afd89f9e886606bd9fb3dac
image: perconalab/percona-xtradb-cluster-operator:PR-802-b61876ae

Test name
Status

haproxy
passed

scaling
passed

recreate
passed

big-data
passed

storage
passed

upgrade-haproxy
passed

init-deploy
passed

scaling-proxysql
passed

self-healing
passed

security-context
passed

restore-to-encrypted-cluster
passed

upgrade-proxysql
passed

self-healing-advanced
passed

limits
passed

demand-backup
passed

smart-update
passed

monitoring-2-0
failed

operator-self-healing
passed

affinity
passed

pitr
passed

one-pod
passed

auto-tuning
passed

upgrade-consistency
passed

proxysql-sidecar-res-limits
passed

users
passed

demand-backup-encrypted-with-tls
failed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
failed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/6d7d8d8664fee32784a8570bc18dea57873b8442
image: perconalab/percona-xtradb-cluster-operator:PR-802-6d7d8d86

Test name
Status

scaling
passed

scaling-proxysql
passed

security-context
passed

recreate
passed

restore-to-encrypted-cluster
passed

demand-backup
passed

pitr
passed

demand-backup-encrypted-with-tls
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

big-data
passed

operator-self-healing
passed

haproxy
passed

upgrade-haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
failed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

scheduled-backup
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/6d7d8d8664fee32784a8570bc18dea57873b8442
image: perconalab/percona-xtradb-cluster-operator:PR-802-6d7d8d86

@ollevche
monitoring-2-0 test fails on diff. Need to update compare files

Test name
Status

big-data
passed

recreate
passed

storage
passed

upgrade-haproxy
passed

scaling
passed

haproxy
passed

self-healing
passed

init-deploy
passed

scaling-proxysql
passed

restore-to-encrypted-cluster
passed

security-context
passed

upgrade-proxysql
passed

limits
passed

self-healing-advanced
passed

monitoring-2-0
passed

demand-backup
passed

smart-update
passed

affinity
passed

operator-self-healing
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

pitr
passed

users
passed

upgrade-consistency
passed

demand-backup-encrypted-with-tls
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

scheduled-backup
failed

validation-hook
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/2c303781cde279d2a45e0d07411bdc97a4bc82b4
image: perconalab/percona-xtradb-cluster-operator:PR-802-2c303781

Test name
Status

scaling
passed

scaling-proxysql
passed

security-context
passed

storage
passed

self-healing
passed

self-healing-advanced
passed

operator-self-healing
passed

upgrade-haproxy
passed

big-data
passed

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

users
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

tls-issue-cert-manager-ref
passed

validation-hook
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/2c303781cde279d2a45e0d07411bdc97a4bc82b4
image: perconalab/percona-xtradb-cluster-operator:PR-802-2c303781

Test name
Status

haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

upgrade-haproxy
passed

one-pod
passed

auto-tuning
passed

proxysql-sidecar-res-limits
passed

scaling
passed

users
passed

scaling-proxysql
passed

storage
passed

tls-issue-self
passed

security-context
passed

self-healing
passed

tls-issue-cert-manager
passed

self-healing-advanced
passed

tls-issue-cert-manager-ref
passed

operator-self-healing
passed

validation-hook
passed

big-data
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/2c303781cde279d2a45e0d07411bdc97a4bc82b4
image: perconalab/percona-xtradb-cluster-operator:PR-802-2c303781

Test name
Status

haproxy
passed

upgrade-haproxy
passed

init-deploy
passed

limits
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

storage
passed

auto-tuning
passed

self-healing
passed

proxysql-sidecar-res-limits
passed

self-healing-advanced
passed

users
passed

operator-self-healing
passed

tls-issue-self
passed

tls-issue-cert-manager
passed

scaling
passed

tls-issue-cert-manager-ref
passed

scaling-proxysql
passed

validation-hook
passed

security-context
passed

big-data
passed

upgrade-proxysql
passed

smart-update
passed

upgrade-consistency
passed

commit: https://github.com/percona/percona-xtradb-cluster-operator/pull/802/commits/2c303781cde279d2a45e0d07411bdc97a4bc82b4
image: perconalab/percona-xtradb-cluster-operator:PR-802-2c303781


Don't crash on drop after shutdown call.

let mut postgres_process = self.postgres_process.take().unwrap(); panics the second time it is called.

I came here to report this after getting bitten by it. The changes here look good.

Sorry, I completely forgot about this. I pushed #11 and released v0.4.0 in #12 so this should be fixed now.
Thank you!


[Badge] Hoist specificity of invisible class

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
After overriding badge css rule of its CSS api, it shows badge rule instead of default invisible rule until add overridden invisible rule. For example,
const useStyles = makeStyles(() =>
  createStyles({
    badge: {
      transform: 'scale(0.66) translate(50%, -50%)',
    },
    invisible: {
      transform: 'scale(0) translate(50%, -50%)', // it shows `badge` rule if I didn't add this.
    }
  }),
);

Expected Behavior 🤔
The specificity of invisible should be more than badge even badge rule is overridden, i.e., there is no need to add additional  invisible rule with default value again.

Steps to Reproduce 🕹

Steps:

add new styles to override badge rule
and then the badge component shows as the overridden badge rule sets instead of the default invisible rule.

Context 🔦

Your Environment 🌎

Tech
Version

Material-UI
master

React
16.8.6

Browser
chrome  76.0.3809.100 (64 bits)

TypeScript
3.5.2

etc.

@jsgao0 Increasing the specificity could help in the future if we want to support different position: top left, bottom left, top right & bottom right. I don't think that changing the scale is a valid customization use case, I would rather change the font size and box sizes directly.
Ok, I don't have a strong preference either way. We could increase the specificity of the invisible selector.


feat: show video track selectors on PlayerControlView

This PR adds functionality on PlayerControlView to display an extra setting on SettingsPopup (Window) where user is able to select another VideoTrackSelection similar to AudioTrackSelection.

I'm going to send this for internal review now. You may see some more commits being added as I make changes in response to review feedback. Please refrain from pushing any more substantive changes as it will complicate the internal review - thanks!


Add configuration breakdown page

Description
Adds a page to list out all configuration options to aid in customization. Can be viewed by running yarn start in /nativelink-docs folder and going to the Configuration page.
Fixes #724
Type of change

[x] This change requires a documentation update

Checklist

[x] Updated documentation if needed
[x] Tests added/amended
[x] bazel test //...  passes locally
[x] PR is contained in a single commit, using git amend see some docs

This change is

Preview Deployment: https://nativelink-docs-git-fork-blakehat-0da362-native-link-web-assets.vercel.app/Configuration

Is it possible to preview this change deployed as a draft before landed?

Reviewable status: 0 of 1 LGTMs obtained

https://nativelink-docs-git-fork-blakehat-0da362-native-link-web-assets.vercel.app/Configuration
Sorry I need to remember to link these in the PR for all major documentation changes.

Thanks for the link.
In general, it's a big step in the right direction but it's not quite complete enough even for a merge.
At a high level, all i see is a long list of configuration options but it's not clear where they belong in the configuration file. The configuration file is a beat itself and that's the reason for the breakdown.
Now, I would switch to approve if by approving this it means we can do more of the work as a fast follow. I would just be totally overwhelmed by a docs page that says copy this code and these are the options.

Reviewable status: 0 of 1 LGTMs obtained

I agree there needs to be more context to the configuration options. I'll probably section them off with tabs and some examples to provide more context. Then we can make an additional PR improving this further once we have more user feedback.

I think we should try to break the tabs out. The long list of configs is basically unintelligible because of information overload. It's like the importance of section headings in a textbook.


GoLand commit panel not applying Atom Icons

When comparing the file icon for a go file in GoLand 2020.1.2 in the Project panel vs the Commit panel they are different. it looks like the icons are not being applied in the commit panel. Plugin version 25.0

That's right. It's one of the subtasks of https://github.com/mallowigi/a-file-icon-idea/issues/68


Example Call demonstrating selection by tags is not up-to-date

part of https://github.com/infolis/infolis-web/issues/20

The example and documentation are updated. Do we need also another infolisEntityTags for entities?

The example and documentation are updated. Do we need also another infolisEntityTags for entities?

Yes. So it cannot hurt to document it now and change the API and docs for all types of taggable things later in one go.

sry edited the page while you wrote that, putting it back in

@kba Are the infolisEntityTags ready now? I didn't find it in the schema: http://infolis.gesis.org/infolink/schema/infolisEntityTags but the others are there e.g. http://infolis.gesis.org/infolink/schema/infolisFileTags

@zuphilip They are not because it's not quite sure how they should be resolved for me. infolisFileTags resolves the tags to Execution.inputFiles, infolisPatternTags resolves the tags to Execution.patterns but what property of the Execution would infolisEntityTags (or entityTags) be resolved to right now? @bolandka @Dommii

@kba I had the same question when writing the TagResolver. I can't think of a useful use-case for specifying entites via tags. Cause there's nothing to be done with them inside of an Excecution, they are rather products of an Execution and used to identify source files in EntityLinks. I would suggest to remove infolisEntityTags from the documentation and not implement them.

We could support searching TextualReferences by tags though. Users could request to resolve TextualReferences of some tag to EntityLinks. I don't think this feature would be too useful, though, in practice because everything that could be achieved by such a call can already be achieved by posting requests with the existing features. But it would make sense, at least.

What about EntityLinks?


Added WrappedEnv class convenience methods

Ended up implementing a class like this for work and figured it gave us decent value and might be a nice thing for other people to use.  We had a few main issues we wanted to solve:
Forgetting to set environment variables lead to bugs in our error tracker that weren't obviously caused by environment variables.  We started using WrappedEnv.fetch for all required values so anytime one wasn't set it would be completely obvious what was going wrong.
Testing the effects of specific changes to environment variables was difficult to do without affecting the rest of our test suite.  Hence we added WrappedEnv.override(hash) and WrappedEnv.reset to allow specific test cases to change values, giving more flexibility than a simple .env.test
One problem with ENV is that all values are strings so you have to manually cast them yourself.  This can bite you especially with boolean values as the string 'false' evaluates to true.  If you have a toggle variable you can use to turn off certain features which is initially true you might reference it as ENV['MY_TOGGLE_VAR'] in your code.  Then say you'd like to toggle it off in production, your only option is to entirely remove it from the environment which can lead to confusion later about whether or not your code will run.  You cannot set it to blank or false because both of those will be turned into strings and evaluate to true.
Replacing your ENV[key] calls with WrappedEnv.cast(key) and any call to ENV.fetch(key) with WrappedEnv.cast!(key) solves this problem the majority of the time.
Open to any feedback on this.

Hi @ejlangev, thanks for the pull request! I think this is a great idea and would love to see something like this exist.
I also explored it in #131 and ultimately decided that it should be separate from dotenv. I have it extracted to another gem, but just need a name for the gem before releasing it. Maybe I'll just go ahead and make it public today and worry about coming up with a name later.
I would love your thoughts on #131.


Github Codespace: cannot preview astro website

What version of astro are you using?
2.0.11
Are you using an SSR adapter? If so, which one?
None
What package manager are you using?
npm
What operating system are you using?
Linux
What browser are you using?
Chrome
Describe the Bug
Github Codespaces is returning 502 Bad Gateway for any astro template written on astro 2. It seems to work fine for projects build on astro 1.
Here are a few theme templates from official Astro website which did not work for me:

https://astro.build/themes/details/astro-paper/
https://astro.build/themes/details/modern-personal/

Link to Minimal Reproducible Example
https://tusharshahi-fuzzy-dollop-r7vq55j5rx9hpj47-3000.preview.app.github.dev/
Participation

[ ] I am willing to submit a pull request for this issue.

I think that it would be better for them to just find a way to patch this (don't no why it does this.)

Hi @TusharShahi , @CommanderGL ! Are either of you able to confirm that this is still a problem? I'm not sure this is ours to document, especially if it is a bug or something that should just be fixed. It might even be an issue to take up with GitHub/Codespaces?
But, it's at least something for our support squad on Discord to be made aware of so they can give advice as necessary. I'll close this issue here, as I don't think it's really something for us to document, and track when it starts working again. But even if closed you can reply here, or better yet, head into our Discord and either make a support thread where we do track issues that people are having, and we have people there who will explore further for you... (and then come back to us in docs, if it's truly a last resort and we expect this to be a long-lasting issue that we would consider documenting).

still doesn't work with codespaces

Can confirm I ran into this the other day while testing https://github.com/withastro/starlight/pull/434.
For some reason GitHub Codespaces require you to run astro dev or astro preview with the --host flag in order to avoid the 502 error. Maybe we add a small note to our “In-browser editor” docs?

@delucis, tbh, this is very strange to me 🤔 but +1 to add it to the docs. Even if it's a temp issue

Thanks for confirming, @donvito! Would you like to PR a change to our docs, as @delucis described?
We could also probably update that 2nd bullet point to read "GitHub Codespaces" (since this page was originally written before Codespaces existed?  :sweat_smile: )  (I'm not sure how many people would choose github.dev over Codespaces now. We could include both?)
I can confirm this is NOT necessary on Gitpod nor Stackblitz, so it's probably just a Codespaces thing. In that case, maybe we switch the order and put Codespaces below Gitpod so that a comment can apply just to that one, and not break the flow of the other bullet points?

Is this still an on-going issue?

Closing this for inactivity, and we haven't heard issues of this lately!


Added distributed training support for distillation of CNN-2.

Type of Change
Added distributed training support for distillation of MobileNetV2.
API not changed
Description
detail description
JIRA ticket: Support multiple node examples with INC
Expected Behavior & Potential Risk
the expected behavior that triggered by this PR
How has this PR been tested?
how to reproduce the test (including hardware information)
Dependency Change?
introduced accelerate

Merged at first, please train with endeavor. @XinyuYe-Intel @ronggegu


CMSPageRenderer shall add data to context only once

Currently the method shop.rest.renderers.CMSPageRenderer.render merges the serialized data, once into the template_context and once as extra attribute template_context['data'].
This is confusing and may cause errors by polluting the global context namespace. Instead the serialized data shall only be added to template_context['data'].
Additionally, the View class using that renderer shall be allowed to override the attribute name data. I would propose to add context_data_name = 'my_data' to the View class (in analogy to context_object_name in Django View classes).

added for version 0.11


feat: api-key-cmd to run command to get API key

implements and closes #388

I think we can make the command a string in the configuration, and then split it with shellwords.
running it could also be exec.Command(args[0], args[1:]...).CombinedOutput() instead of the start and wait thing.
other than that, I think this is a good idea! thanks for the PR :)

appreciate the feedback.  a bit cleaner now :)

looks good! Thanks!


rpc: Implement chainSpec RPC API

This PR lays the ground for the implementation of the RPC spec
and adds the chainSpec methods.
The RPC methods are placed in the rpc-spec crate subject to
change in the future.
The chainSpec methods include:

chainSpec_unstable_chainName - Get the chain name, as present in the chain specification.
chainSpec_unstable_genesisHash - Get the chain's genesis hash.
chainSpec_unstable_properties - Get the properties of the chain, as present in the chain specification.

Testing Done

Unit tests are added for each methods
CURL requests submitted to the local node

$ curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "chainSpec_unstable_properties"}' http://localhost:9933/
  {"jsonrpc":"2.0","result":{},"id":1}

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "chainSpec_unstable_chainName"}' http://localhost:9933/
  {"jsonrpc":"2.0","result":"Development","id":1}

 curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "chainSpec_unstable_genesisHash"}' http://localhost:9933/
{"jsonrpc":"2.0","result":"0x7d341d884f3bea9b5668d29be58ac5e307d57122a7df21021a2099ffdd609928","id":1}

First part of #12071 .

The logic looks good to me. Can't comment on the code organization.

I think it's better to call the crate rpc-spec something like rpc-api-v2/rpcv2 instead if we are planning to merge piece by piece.
For now it's probably alright to have the rpc api def and the implementation in the same crate as you did otherwise looks good.

We have also decided to remove the version: 1 from the result of the rpc_methods.
This is to simplify the rpc_methods response, as the new API should group and version methods.


Setting g:lightline.active.left in ginit.vim

I have this code in ginit.vim but the config doesn't get picked up by lightline.
unlet g:lightline.active.left
let g:lightline.active.left = [ ['mode', 'paste'] , ['cocstatus', 'currentfunction', 'fugitive', 'readonly','absolutepath', 'modified']]

When I run echo g:lightline.active.left I get the output below:

The ginit.vim file is sourced after plugin initialization so this is a correct behavior. Consider moving configuration to init.vim.

@itchyny I don't want to show the absolutepath in terminal version (init.vim).
I'm nvim-qt GUI which needs the config to be in ginit.vim due to which I need to 'reset' the array. If there's a way to add absolutepath to the array and re-render the status line, that would work too.

If you want to switch the config check has('gui'). If you still need to write in gvim.vim, call lightline#init() and then call lightline#update() would apply the config.

Thanks, that worked like a charm!


Need folder reset

Can you please reset my private folder?
Thanks.
Statement:
Mon 27 Mar 2017 00:32:27 BST: Please completely reset folder /keybase/private/fgsch because I no longer have access to any of the devices it is keyed for.
Signed message:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5wcIkHbrwbR9mW SmOk3V9EN5OcGRP tLBgLHROJCmbu5I 8OFIxMLPzYliDMd a0vdF4VtOrHJkBr LrEsurXvWdDbotw hqxhzv0p4TRdWEA T8eJcP1pHn85wbu NDU9VjANj5LMKWz Nx4ouVuSYwe29DE bPYEBcMhbbKzpm9 ouvMinGrlRH7xfU 5GDauGifL98Dfyf ew2jqD4T3Z4zdiT VOk8G7HOQMCCzEo gRET4nJuidl2uSj 00EQQ9rj0oGCn6N 1PrJRDJWV07ujq3 fHRZf4wcPvXVUNt LN6qgmZweKTKmzt WnSwemE3zTnMR9B 6vygJRtMqHJWqGN 6RqOav5EUjrPej3 wmg1YKm57tPYA5n 53aZOAngenG2QQU TsYmiYniTPok807 SCavR5V5leG0j4R kqQ9KvMs8go0Ez2 ReDC9PzV96Yo7TJ VRzS2V3dcInUChU hTsYDWykBW5t3ax 8mw4. END KEYBASE SALTPACK SIGNED MESSAGE.

I've reset your private folder.  Please check it out and close this if everything looks ok.
Would you be willing to give us some context about how you lost all the devices (including the paper keys), and any feedback for us as to how we could change things to have minimized the risk of that happening?  Thanks!

By the way, I notice that one of your remaining private folders is with a user that doesn't have any device keys. That means that user won't be able to rekey it for you, even once they add a device, since only your (lost) devices can read it.
If you want me to reset that one as well, please append another signature here. If you want to keep the other username private, you can encrypt it for me (strib@github) before you post, or you can put it in /keybase/private/fgsch,strib.

Thanks a lot. It's working now.
Regarding the first part, it was self inflicted. Long story short, I switched to a new laptop and the previous one was zeroed before I have any chance to migrate things.
As for the folder, here's the signed message:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5wcIkHbrwbR9mW SmOk3V9EN5OcGRP tLBgLHROJCmbu5I 8OFIxMLPzZDmCoD QEUDX0EJcC50VmW FuW1VByCDYj9wGL hdF9G5PZlKFbaz6 durtyFWGLkCGabR WaD8DcCdtndFJ6u 5L7uMY491B2qKMr lhLKKkk3txPY02e BAn2sWSPzdWAq7P ZAKDmd30OqHZKsJ U3iFwNylyWlqf3i tF91HX9iLSl52Wn uGO8503aVwwPfd7 nIBWa3kYkqZTlPi Qp0GKLvui7OgDmP hcxLTP9u25Z9ZBZ UBKbm7K1gCfcZPg EELqT3BuXOvVXTB A1I87YFCuRroe. END KEYBASE SALTPACK SIGNED MESSAGE.
Statement:
Please reset the private folder I have with .
Thanks a lot and sorry for the problem.

Looking at your folders again, I think I was wrong.  The folder I was thinking of actually is missing keys for you, and not the other user.  I got it backwards. Sorry for the confusion, I think you're all good now.


Remove ruby jenkinsfile

Signed-off-by: Sayali Gaikawad<EMAIL_ADDRESS>Description
With #2857 being completed, the file in this PR is outdated and cannot be used due to missing credentials and other stuff. Also we do not plan to publish gems on S3 but rather on rubygems directly.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hi @gaiksaya can you make sure in Jenkins this file is not used anymore?
Thanks.

Yes removing this job as well https://build.ci.opensearch.org/job/opensearch-ruby-build-sign-upload/ that uses this jenkinsFile.
Thanks!


Connection lost between server and client not handled.

FTP Server OS: Windows
FTP Server Type: FileZilla Server 1.8.1
Client Computer OS: Debian/ARM64
FluentFTP Version: 49.0.2
Framework: .NET 8
I'm working on a project, that creates logs, and needs to store those logs on a FTP Server.  But because of the nature of the project, I wanted to handle connection interrupts, and in these cases, where I'm disconnecting the FTP client from the network ( simulating no signal, because the client will be using a LTE router ) the upload just hang, and after reconnecting sometimes It's resumes the upload sometimes doesn't. How can I handle this situation?
I can't even post logs for it, because it's just hangs.

Make sure you try this with the absolute newest master cut from this repo. There were some possible problems on stream dispose recently (possible hang), which I fixed.
If debugging this remains tricky, consider writing the logs to a file directly, closing after each line. You need to get more information on this, so also consider examining the server log or taking a wireshark trace (which won't help altogether much in this scenario, I realize that).
I see client is Debian/ARM64, so I assume a RPi or something similar: You could run your application in a terminal and instead of logging, write the output to the terminal and see what goes on up to the hang?

Forgot to mention it, I'm using GnuTLS

On ARM64? Incredible. Didn't know that would work, totally untested when I wrote the GnuTLS wrapper. But on the other hand, why not?
But, at least we have a log. And can continue with that.
Still, to isolate the problem, it would be best to run with "plain FTP" - I assume you are referring to "not encrypted".
And then to produce the same log again. Yes, I suppose it will look the same and hang. How long have you ever left it hanging? It might timeout after a while and tell you more.
I would then, if at all possible, look at the (detailed, debug level) log of FileZilla if you can.
Can you try some other upload, not using UploadStream, but using UploadFile instead (upload some test file, perhaps). Let's confirm that upload basically works before using the stream upload logic, to further isolate the problem.

Can you try some other upload, not using UploadStream, but using UploadFile instead (upload some test file, perhaps). Let's confirm that upload basically works before using the stream upload logic, to further isolate the problem.

The methods on the other hand works fine, but having this problem the only thing I didn't try is UploadDirectory and UploadFiles.
Using not encrypted FTP gets the same results, but after hanging for ~15 minutes it closes the connection. Which timeout handle this that I missed?
FluentFTP Logs:
# Connect(False)
Status:   FluentFTP <IP_ADDRESS>(.NET 6.0)
Status:   Connecting to IP #1= ***:21
Status:   Waiting for a response
Response: 220-FileZilla Server 1.8.1
Response: 220 Please visit https://filezilla-project.org/ [738953.692d]
Status:   Detected FTP server: FileZilla
Command:  USER ***
Status:   Waiting for response to: USER ***
Response: 331 Please, specify the password. [4ms]
Command:  PASS ***
Status:   Waiting for response to: PASS ***
Response: 230 Login successful. [35ms]
Command:  FEAT
Status:   Waiting for response to: FEAT
Response: 211-Features:
Response: MDTM
Response: REST STREAM
Response: SIZE
Response: MLST type*;size*;modify*;perm*;
Response: MLSD
Response: AUTH SSL
Response: AUTH TLS
Response: PROT
Response: PBSZ
Response: UTF8
Response: TVFS
Response: EPSV
Response: EPRT
Response: MFMT
Response: 211 End [3ms]
Status:   Text encoding: System.Text.UTF8Encoding+UTF8EncodingSealed
Command:  OPTS UTF8 ON
Status:   Waiting for response to: OPTS UTF8 ON
Response: 202 UTF8 mode is always enabled. No need to send this command [3ms]
Command:  SYST
Status:   Waiting for response to: SYST
Response: 215 UNIX emulated by FileZilla. [2ms]
Status:   Active ServerHandler is: FileZilla
Status:   Listing parser set to: Machine
Command:  PWD
Status:   Waiting for response to: PWD
Response: 257 "/" is current directory. [2ms]

# UploadFile("rock.xz", "rock.xz", Overwrite, False, None)

# FileExists("rock.xz")
Command:  SIZE /rock.xz
Status:   Waiting for response to: SIZE /rock.xz
Response: 550 Couldn't open the file or directory [4ms]

# OpenWrite("rock.xz", Binary, -1, False)
Command:  TYPE I
Status:   Waiting for response to: TYPE I
Response: 200 Type set to I [2ms]

# OpenDataStream("STOR rock.xz", 0)

# OpenPassiveDataStream(AutoPassive, "STOR rock.xz", 0)
Command:  EPSV
Status:   Waiting for response to: EPSV
Response: 229 Entering Extended Passive Mode (|||64478|) [2ms]
Status:   Connecting to IP #1= ***:64478
Command:  STOR rock.xz
Status:   Waiting for response to: STOR rock.xz
Response: 150 Starting data transfer. [2ms]
Status:   Closing/Disposing FtpSocketStream(data connection)
Status:   IOException for file rock.xz : Unable to write data to the transport connection: No route to host.
Status:   Failed to upload file.

# Dispose()
Status:   Disposing FtpClient object...
Status:   Testing connectivity using Socket.Poll()...

# Disconnect()
Command:  QUIT
Status:   Waiting for response to: QUIT
Warning:  FtpClient.Disconnect(): Exception caught and discarded while closing control connection : Unable to read data from the transport connection: Connection timed out.
Status:   Closing/Disposing FtpSocketStream(control connection)
Status:   Closing/Disposing FtpSocketStream(control connection)

FileZilla Server Logs:
2024-03-09T16:36:15.643Z DI [FTP Session 3 <IP_ADDRESS>] Session 0x17d3f5b0660 with ID 3 created.
2024-03-09T16:36:15.643Z << [FTP Session 3 <IP_ADDRESS>] 220-FileZilla Server 1.8.1
2024-03-09T16:36:15.643Z << [FTP Session 3 <IP_ADDRESS>] 220 Please visit https://filezilla-project.org/
2024-03-09T16:36:15.676Z >> [FTP Session 3 <IP_ADDRESS>] USER test
2024-03-09T16:36:15.687Z DI [Throttled Authenticator, FTP Session: 3] Authenticating user test from IP <IP_ADDRESS>.
2024-03-09T16:36:15.687Z DD [File-based Authenticator, FTP Session: 3] Invoked authenticate(()) on worker 0x17d3f5a19e0, with available methods = []
2024-03-09T16:36:15.687Z DD [File-based Authenticator, FTP Session: 3] Authentication for user 'test' not complete. Remaning methods: [password]
2024-03-09T16:36:15.687Z DD [File-based Authenticator, FTP Session: 3] Worker 0x17d3f5a19e0 created new operation 0x17d3f536bc0, with shared_user = 0x0, methods = [password], error = 0
2024-03-09T16:36:15.687Z DD [Throttled Authenticator, FTP Session: 3] Worker 0x18865fcb50 created new operation 0x17d3f53aed0
2024-03-09T16:36:15.687Z << [FTP Session 3 <IP_ADDRESS>] 331 Please, specify the password.
2024-03-09T16:36:15.691Z >> [FTP Session 3 <IP_ADDRESS>] PASS ****
2024-03-09T16:36:15.691Z DD [File-based Authenticator, FTP Session: 3] Invoked authenticate((password)) on worker 0x17d3f5a19e0, with available methods = [password]
2024-03-09T16:36:15.691Z DV [File-based Authenticator, FTP Session: 3] Authenticating user 'test'. Methods requested: (password). Available methods: [password].
2024-03-09T16:36:15.723Z DV [File-based Authenticator, FTP Session: 3] Auth method password passed for user 'test'.
2024-03-09T16:36:15.723Z DV [File-based Authenticator, FTP Session: 3] impersonation_token: { username: "", home: "" }
2024-03-09T16:36:15.723Z DV [File-based Authenticator, FTP Session: 3] Authentication for user 'test' is complete.
2024-03-09T16:36:15.723Z DI [File-based Authenticator, user: test] Effective mount points:
2024-03-09T16:36:15.723Z DI [File-based Authenticator, user: test]   > "/" -> "C:\ftptest"
2024-03-09T16:36:15.723Z DV [File-based Authenticator, FTP Session: 3] impersonation_token: { username: "", home: "" }
2024-03-09T16:36:15.723Z DD [File-based Authenticator, FTP Session: 3] Worker 0x17d3f5a19e0 created new operation 0x17d3f537480, with shared_user = 0x17d3f5b43c0, methods = [], error = 0
2024-03-09T16:36:15.723Z DD [Throttled Authenticator, FTP Session: 3] Worker 0x18865fcb50 created new operation 0x17d3f53b1b0
2024-03-09T16:36:15.723Z DD [File-based Authenticator, FTP Session: 3] operation 0x17d3f537480 stop() erasing worker 0x17d3f5a19e0
2024-03-09T16:36:15.723Z DD [Throttled Authenticator, FTP Session: 3] operation 0x17d3f53b1b0 stop() erasing worker 0x17d3ec1bd30
2024-03-09T16:36:15.723Z << [FTP Session 3 <IP_ADDRESS>] 230 Login successful.
2024-03-09T16:36:15.739Z >> [FTP Session 3 <IP_ADDRESS> test] FEAT
2024-03-09T16:36:15.739Z << [FTP Session 3 <IP_ADDRESS> test] 211-Features:
2024-03-09T16:36:15.739Z << [FTP Session 3 <IP_ADDRESS> test] 211 End
2024-03-09T16:36:15.740Z >> [FTP Session 3 <IP_ADDRESS> test] OPTS UTF8 ON
2024-03-09T16:36:15.740Z << [FTP Session 3 <IP_ADDRESS> test] 202 UTF8 mode is always enabled. No need to send this command
2024-03-09T16:36:15.740Z >> [FTP Session 3 <IP_ADDRESS> test] SYST
2024-03-09T16:36:15.740Z << [FTP Session 3 <IP_ADDRESS> test] 215 UNIX emulated by FileZilla.
2024-03-09T16:36:15.755Z >> [FTP Session 3 <IP_ADDRESS> test] PWD
2024-03-09T16:36:15.755Z << [FTP Session 3 <IP_ADDRESS> test] 257 "/" is current directory.
2024-03-09T16:36:15.756Z >> [FTP Session 3 <IP_ADDRESS> test] SIZE /rock.xz
2024-03-09T16:36:15.756Z DD [FTP Session 3 <IP_ADDRESS> test/TVFS/local_filesys] info(C:\ftptest\rock.xz): result: 7
2024-03-09T16:36:15.771Z << [FTP Session 3 <IP_ADDRESS> test] 550 Couldn't open the file or directory
2024-03-09T16:36:15.771Z >> [FTP Session 3 <IP_ADDRESS> test] TYPE I
2024-03-09T16:36:15.771Z << [FTP Session 3 <IP_ADDRESS> test] 200 Type set to I
2024-03-09T16:36:15.771Z >> [FTP Session 3 <IP_ADDRESS> test] EPSV
2024-03-09T16:36:15.771Z DV [FTP Session 3 <IP_ADDRESS> test] Trying listen(1, 0) for data connection.
2024-03-09T16:36:15.771Z << [FTP Session 3 <IP_ADDRESS> test] 229 Entering Extended Passive Mode (|||64478|)
2024-03-09T16:36:15.787Z DV [FTP Session 3 <IP_ADDRESS> test] session::on_socket_event(): source = data listen, flag = 2, error = 0, state = -1
2024-03-09T16:36:15.787Z DV [FTP Session 3 <IP_ADDRESS> test] session::on_socket_event(): source = data, flag = 8, error = 0, state = 2
2024-03-09T16:36:15.787Z >> [FTP Session 3 <IP_ADDRESS> test] STOR rock.xz
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test/TVFS/local_filesys] open_file(C:\ftptest\rock.xz): fd = 932, res = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test] CHANNEL state is being dumped:
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test] PIPE((IN)) {
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     max_num_loops_           = 10
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     thread_safe_             = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     variant_buffer_          = <2>
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     variant_adder_           = <2>
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     variant_consumer_        = <2>
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     buffer_                  = 0x17d3f5b1c10
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     adder_                   = 0x0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     consumer_                = 0x0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     waiting_for_adder_event_ = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     consumer_error_          = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     adder_error_             = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test] }
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test] PIPE((OUT)) {
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     max_num_loops_           = 10
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     thread_safe_             = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     variant_buffer_          = <2>
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     variant_adder_           = <2>
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     variant_consumer_        = <2>
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     buffer_                  = 0x17d3f5b1ad8
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     adder_                   = 0x0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     consumer_                = 0x0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     waiting_for_adder_event_ = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     consumer_error_          = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test]     adder_error_             = 0
2024-03-09T16:36:15.787Z DD [FTP Session 3 <IP_ADDRESS> test] }
2024-03-09T16:36:15.787Z << [FTP Session 3 <IP_ADDRESS> test] 150 Starting data transfer.

Thank you for doing this without encryption, which of course is not always possible, I know. Thanks to this, you can see:

Status:   IOException for file rock.xz : Unable to write data to the transport connection: No route to host.

There is your explanation. The server offers (with EPSV) a IP you can't reach (?).
Consider isolating the problem further by forcing passive instead of autopassive (which allows EPSV).
And then compare the address offered with your network config/situation - try to find the explanation for "No route to host".
If there is no explanation that looks obvious: I would like to see a log of a test upload of a small test file using UploadFile(...).

Sorry for the late response, here are the logs with forcing passive mode, and uploading a small file.
FluentFTP Logs:
# Connect(False)
Status:   FluentFTP <IP_ADDRESS>(.NET 6.0)
Status:   Connecting to IP #1= ***:21
Status:   Waiting for a response
Response: 220-FileZilla Server 1.8.1
Response: 220 Please visit https://filezilla-project.org/ [738969.366d]
Status:   Detected FTP server: FileZilla
Command:  USER ***
Status:   Waiting for response to: USER ***
Response: 331 Please, specify the password. [3ms]
Command:  PASS ***
Status:   Waiting for response to: PASS ***
Response: 230 Login successful. [34ms]
Command:  FEAT
Status:   Waiting for response to: FEAT
Response: 211-Features:
Response: MDTM
Response: REST STREAM
Response: SIZE
Response: MLST type*;size*;modify*;perm*;
Response: MLSD
Response: AUTH SSL
Response: AUTH TLS
Response: PROT
Response: PBSZ
Response: UTF8
Response: TVFS
Response: EPSV
Response: EPRT
Response: MFMT
Response: 211 End [3ms]
Status:   Text encoding: System.Text.UTF8Encoding+UTF8EncodingSealed
Command:  OPTS UTF8 ON
Status:   Waiting for response to: OPTS UTF8 ON
Response: 202 UTF8 mode is always enabled. No need to send this command [3ms]
Command:  SYST
Status:   Waiting for response to: SYST
Response: 215 UNIX emulated by FileZilla. [2ms]
Status:   Active ServerHandler is: FileZilla
Status:   Listing parser set to: Machine
Command:  PWD
Status:   Waiting for response to: PWD
Response: 257 "/" is current directory. [3ms]

# UploadFile("small.txt", "small.txt", Overwrite, False, None)

# FileExists("small.txt")
Command:  SIZE /small.txt
Status:   Waiting for response to: SIZE /small.txt
Response:<PHONE_NUMBER> [6ms]

# DeleteFile("small.txt")
Command:  DELE small.txt
Status:   Waiting for response to: DELE small.txt
Response: 250 File deleted successfully. [4ms]

# OpenWrite("small.txt", Binary, -1, False)
Command:  TYPE I
Status:   Waiting for response to: TYPE I
Response: 200 Type set to I [1ms]

# OpenDataStream("STOR small.txt", 0)

# OpenPassiveDataStream(PASV, "STOR small.txt", 0)
Command:  PASV
Status:   Waiting for response to: PASV
Response: 227 Entering Passive Mode (192,168,0,143,211,78) [4ms]
Status:   PASV advertised a non-routable IPAD. Using original connect dnsname/IPAD
Status:   Connecting to IP #1= ***:54094
Command:  STOR small.txt
Status:   Waiting for response to: STOR small.txt
Response: 150 Starting data transfer. [3ms]
Status:   Uploaded 4082530 bytes
Status:   Closing/Disposing FtpSocketStream(data connection)
Status:   Waiting for response to: STOR small.txt
Response: 226 Operation successful [183ms]

# Dispose()
Status:   Disposing FtpClient object...

# Disconnect()
Command:  QUIT
Status:   Waiting for response to: QUIT
Response: 221 Goodbye. [2ms]
Status:   Closing/Disposing FtpSocketStream(control connection)
Status:   Closing/Disposing FtpSocketStream(control connection)

FileZilla Server Logs:
2024-03-25T08:47:08.663Z << [FTP Session 4 <IP_ADDRESS>] 220-FileZilla Server 1.8.1
2024-03-25T08:47:08.663Z << [FTP Session 4 <IP_ADDRESS>] 220 Please visit https://filezilla-project.org/
2024-03-25T08:47:08.694Z >> [FTP Session 4 <IP_ADDRESS>] USER test
2024-03-25T08:47:08.694Z DI [Throttled Authenticator, FTP Session: 4] Authenticating user test from IP <IP_ADDRESS>.
2024-03-25T08:47:08.694Z DD [File-based Authenticator, FTP Session: 4] Invoked authenticate(()) on worker 0x1cdd55c82b0, with available methods = []
2024-03-25T08:47:08.694Z DD [File-based Authenticator, FTP Session: 4] Authentication for user 'test' not complete. Remaning methods: [password]
2024-03-25T08:47:08.694Z DD [File-based Authenticator, FTP Session: 4] Worker 0x1cdd55c82b0 created new operation 0x1cdd5e16fb0, with shared_user = 0x0, methods = [password], error = 0
2024-03-25T08:47:08.694Z DD [Throttled Authenticator, FTP Session: 4] Worker 0x8750dfcf70 created new operation 0x1cdd5e120f0
2024-03-25T08:47:08.694Z << [FTP Session 4 <IP_ADDRESS>] 331 Please, specify the password.
2024-03-25T08:47:08.711Z >> [FTP Session 4 <IP_ADDRESS>] PASS ****
2024-03-25T08:47:08.711Z DD [File-based Authenticator, FTP Session: 4] Invoked authenticate((password)) on worker 0x1cdd55c82b0, with available methods = [password]
2024-03-25T08:47:08.711Z DV [File-based Authenticator, FTP Session: 4] Authenticating user 'test'. Methods requested: (password). Available methods: [password].
2024-03-25T08:47:08.742Z DV [File-based Authenticator, FTP Session: 4] Auth method password passed for user 'test'.
2024-03-25T08:47:08.742Z DV [File-based Authenticator, FTP Session: 4] impersonation_token: { username: "", home: "" }
2024-03-25T08:47:08.742Z DV [File-based Authenticator, FTP Session: 4] Authentication for user 'test' is complete.
2024-03-25T08:47:08.742Z DI [File-based Authenticator, user: test] Effective mount points:
2024-03-25T08:47:08.742Z DI [File-based Authenticator, user: test]   > "/" -> "C:\ftptest"
2024-03-25T08:47:08.742Z DV [File-based Authenticator, FTP Session: 4] impersonation_token: { username: "", home: "" }
2024-03-25T08:47:08.742Z DD [File-based Authenticator, FTP Session: 4] Worker 0x1cdd55c82b0 created new operation 0x1cdd5e16d30, with shared_user = 0x1cdd55eef00, methods = [], error = 0
2024-03-25T08:47:08.742Z DD [Throttled Authenticator, FTP Session: 4] Worker 0x8750dfcf70 created new operation 0x1cdd5e11f50
2024-03-25T08:47:08.742Z DD [File-based Authenticator, FTP Session: 4] operation 0x1cdd5e16d30 stop() erasing worker 0x1cdd55c82b0
2024-03-25T08:47:08.742Z DD [Throttled Authenticator, FTP Session: 4] operation 0x1cdd5e11f50 stop() erasing worker 0x1cdd5e6d070
2024-03-25T08:47:08.742Z << [FTP Session 4 <IP_ADDRESS>] 230 Login successful.
2024-03-25T08:47:08.742Z >> [FTP Session 4 <IP_ADDRESS> test] FEAT
2024-03-25T08:47:08.742Z << [FTP Session 4 <IP_ADDRESS> test] 211-Features:
2024-03-25T08:47:08.742Z << [FTP Session 4 <IP_ADDRESS> test] 211 End
2024-03-25T08:47:08.757Z >> [FTP Session 4 <IP_ADDRESS> test] OPTS UTF8 ON
2024-03-25T08:47:08.757Z << [FTP Session 4 <IP_ADDRESS> test] 202 UTF8 mode is always enabled. No need to send this command
2024-03-25T08:47:08.757Z >> [FTP Session 4 <IP_ADDRESS> test] SYST
2024-03-25T08:47:08.757Z << [FTP Session 4 <IP_ADDRESS> test] 215 UNIX emulated by FileZilla.
2024-03-25T08:47:08.757Z >> [FTP Session 4 <IP_ADDRESS> test] PWD
2024-03-25T08:47:08.757Z << [FTP Session 4 <IP_ADDRESS> test] 257 "/" is current directory.
2024-03-25T08:47:08.773Z >> [FTP Session 4 <IP_ADDRESS> test] SIZE /small.txt
2024-03-25T08:47:08.773Z DD [FTP Session 4 <IP_ADDRESS> test/TVFS/local_filesys] info(C:\ftptest\small.txt): result: 0
2024-03-25T08:47:08.773Z << [FTP Session 4 <IP_ADDRESS> test]<PHONE_NUMBER>
2024-03-25T08:47:08.789Z >> [FTP Session 4 <IP_ADDRESS> test] DELE small.txt
2024-03-25T08:47:08.789Z DD [FTP Session 4 <IP_ADDRESS> test/TVFS/local_filesys] remove_file(C:\ftptest\small.txt): result: 0
2024-03-25T08:47:08.789Z << [FTP Session 4 <IP_ADDRESS> test] 250 File deleted successfully.
2024-03-25T08:47:08.789Z >> [FTP Session 4 <IP_ADDRESS> test] TYPE I
2024-03-25T08:47:08.789Z << [FTP Session 4 <IP_ADDRESS> test] 200 Type set to I
2024-03-25T08:47:08.804Z >> [FTP Session 4 <IP_ADDRESS> test] PASV
2024-03-25T08:47:08.804Z DV [FTP Session 4 <IP_ADDRESS> test] Trying listen(1, 0) for data connection.
2024-03-25T08:47:08.804Z << [FTP Session 4 <IP_ADDRESS> test] 227 Entering Passive Mode (192,168,0,143,211,78)
2024-03-25T08:47:08.804Z DV [FTP Session 4 <IP_ADDRESS> test] session::on_socket_event(): source = data listen, flag = 2, error = 0, state = -1
2024-03-25T08:47:08.804Z DV [FTP Session 4 <IP_ADDRESS> test] session::on_socket_event(): source = data, flag = 8, error = 0, state = 2
2024-03-25T08:47:08.804Z >> [FTP Session 4 <IP_ADDRESS> test] STOR small.txt
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test/TVFS/local_filesys] open_file(C:\ftptest\small.txt): fd = 972, res = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test] CHANNEL state is being dumped:
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test] PIPE((IN)) {
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     max_num_loops_           = 10
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     thread_safe_             = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     variant_buffer_          = <2>
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     variant_adder_           = <2>
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     variant_consumer_        = <2>
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     buffer_                  = 0x1cdd5e64dc0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     adder_                   = 0x0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     consumer_                = 0x0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     waiting_for_adder_event_ = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     consumer_error_          = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     adder_error_             = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test] }
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test] PIPE((OUT)) {
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     max_num_loops_           = 10
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     thread_safe_             = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     variant_buffer_          = <2>
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     variant_adder_           = <2>
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     variant_consumer_        = <2>
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     buffer_                  = 0x1cdd5e64c88
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     adder_                   = 0x0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     consumer_                = 0x0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     waiting_for_adder_event_ = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     consumer_error_          = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test]     adder_error_             = 0
2024-03-25T08:47:08.804Z DD [FTP Session 4 <IP_ADDRESS> test] }
2024-03-25T08:47:08.804Z << [FTP Session 4 <IP_ADDRESS> test] 150 Starting data transfer.
2024-03-25T08:47:08.995Z DV [FTP Session 4 <IP_ADDRESS> test] data_socket_->shutdown() = 0
2024-03-25T08:47:08.995Z << [FTP Session 4 <IP_ADDRESS> test] 226 Operation successful
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test] session::close_data_connection(): prev data_connection_status = 2
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test] Removed done events: 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event] CHANNEL state is being dumped:
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event] PIPE((IN)) {
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     max_num_loops_           = 10
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     thread_safe_             = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     variant_buffer_          = <2>
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     variant_adder_           = <2>
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     variant_consumer_        = <2>
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     buffer_                  = 0x1cdd5e64dc0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     adder_                   = 0x0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     consumer_                = 0x0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     waiting_for_adder_event_ = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     consumer_error_          = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     adder_error_             = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event] }
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event] PIPE((OUT)) {
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     max_num_loops_           = 10
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     thread_safe_             = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     variant_buffer_          = <2>
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     variant_adder_           = <2>
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     variant_consumer_        = <2>
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     buffer_                  = 0x1cdd5e64c88
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     adder_                   = 0x0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     consumer_                = 0x0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     waiting_for_adder_event_ = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     consumer_error_          = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event]     adder_error_             = 0
2024-03-25T08:47:08.995Z DD [FTP Session 4 <IP_ADDRESS> test/Done Event] }
2024-03-25T08:47:08.995Z >> [FTP Session 4 <IP_ADDRESS> test] QUIT
2024-03-25T08:47:08.995Z << [FTP Session 4 <IP_ADDRESS> test] 221 Goodbye.
2024-03-25T08:47:08.995Z == [FTP Server] Session 4 ended gracefully.
2024-03-25T08:47:08.995Z DI [FTP Session 4 <IP_ADDRESS>] Session 0x1cdd5e63810 with ID 4 destroyed.
2024-03-25T08:47:51.634Z DD [Administration Server] tls_layer_impl::on_read()

So that looks good - using PASV: it works, right?

Yes, it works.

Yes, sorry I wasn't clear, the upload itself works as intended, but I wanted to handle the connection interruptions and wanted to configure if the connection lost between the server and the client that it doesn't want to retry for ~15 minutes.

It's just hangs

Hmmm. I see, so I have misunderstood the actual problem.
You are trying to say: "It shouldn't just hang (forever), it should abort with an exception or something".
I wonder if the .NET implementation on ARM is somehow not responding correctly to connection outages? Because FluentFTP should be getting some kind of exception or timeout from the socket level.
Perhaps you could run the code async and also initiate a timer task to cancel if it hangs for more than a minute or so?

Thank you, it works now how I wanted! Sort of..
I remembered, that I tried to cancel it if it hangs, with CancellationToken but it didn't work. And now further looking into it, my problem originates from GnuTLS. I'm going to open a new issue over there explaining it, and we can close this one.
Once more, thank you so much for you help!


Add files via upload

Updated Game Board. If anyone knows a more efficient way to create the gameboard and add color...I'm all ears. Next step is to add text.

This is already on the phase 2 branch?

My mistake, you have added a lot more - can you redo the PR to the phase-2-dev branch, not the master. Cheers mate.


Explicitly reexport in base init

Describe the bug
When mypy is run with the setting (implicit_reexport = False), mypy will fail when pandera is used as the documentation recommends.

[X] I have checked that this issue has not already been reported.
[X] I have confirmed this bug exists on the latest version of pandera.
[X] (optional) I have confirmed this bug exists on the master branch of pandera.

Note: Please read this guide detailing how to provide the necessary information for us to reproduce your bug.
Code Sample, a copy-pastable example
# main.py
import pandera as pa

class Schema(pa.SchemaModel):  # <-- error
  ...

And can be type checked with
mypy --strict main.py

main.py:4: error: Name 'pa.SchemaModel' is not defined
main.py:4: error: Class cannot subclass 'SchemaModel' (has type 'Any')
Found 2 errors in 1 file (checked 1 source file)

Expected behavior
The pandera base init file (pandera/__init__.py) uses implicit re-exports which means that instead we must import pandera classes instead like:
from pandera.model import SchemaModel
from pandera.model_components import Field

If the expectation is that if pandera is imported like import pandera as pa, then top level classes and function should be explicitly re-exported.
This would have no impact on users who don't use mypy and those who do allow implicit re-exports. But for those who want stricter type safety, it would allow the library to be used as intended.
Desktop (please complete the following information):

OS: macOS 12.0.1
Browser: Firefox
Version: 95.0.1 (64-bit)

Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Hi @rchui thanks for filing this issue! This should have been addressed in https://github.com/pandera-dev/pandera/pull/686.
I reproduced the issue on 0.8.0 tag, and it isn't a problem on master.
I'll be releasing a bugfix release by next week (a pre-2022 holiday 🎁 !)
Also as a head up, 0.8.1 will be making the mypy static-linting support optional with a pip install pandera[mypy] extra and mypy plugin. It turns out the pandas-stubs dependency raises a fair number of false positives so we decided to make mypy support experimental.
As a heads up here's the updated docs: https://pandera--701.org.readthedocs.build/en/701/mypy_integration.html#mypy-integration

Thank you. I'm looking forward to this. Closing this issue.


Python 3.7+ support

Replace thriftpy with thriftpy2 as the original one is no longer maintained.
Now it runs on Python 3.7 or higher.

It uses contextvars module added in Python 3.7 to manage acquired connections from multiple different asyncio tasks.

Remove use of asyncio.coroutine and yield from and migrate to the native coroutine syntax.
Deprecate use of loop variables everywhere.
Use pytest-asyncio instead of manually managing the event loop in tests.
Explicitly specify the minimum Python version required in setup.py.
BREAKING CHANGES

Nested connection acquisition from the connection pool is now prohibited. Updated tests/test_pool.py::test_create_new case accordingly.
with (await pool) as cli is now a deprecated style. I've updated all codes and tests to follow the async with pool as cli style instead.
Also changed with (await self._cond) codes to async with self._cond as recommended by the stdlib docs.

Deprecated since version 3.7: Acquiring a lock using await lock or yield from lock and/or with statement (with await lock, with (yield from lock)) is deprecated. Use async with lock instead.

@achimnol  I'm gonna merge this PR, and make some polishment and tweaks before bump a new version . Thanks for your contribution.


Machine-readable utxo_too_small error (experiment #3)

[ ] I have ...

Comments

Issue Number

bors try


Add EvalTranspose pattern to StablehloAggressiveFolder

This patch folds stablehlo.transpose operation with constant operand into stablehlo.constant.
I have considered doing this by iterating over source index space, i.e.
auto initialValue = *std::begin(data);
SmallVector<ElementType> result(resultType.getNumElements(), initialValue);

for (int64_t i = 0; i < operandType.getNumElements(); ++i) {
  auto srcDimIndex = delinearize(i, operandStrides);
  auto dstDimIndex = applyPermutation(srcDimIndex, permutation);
  auto dstLinearIndex = linearize(dstDimIndex, resultStrides);
  result[dstLinearIndex] = data[i];
}

but that requires preinitialization of result vector with some value, which is twice as slow on simple case:
func.func @eval_transpose() -> (tensor<5000x80x30xi32>) {
  %0 = stablehlo.iota dim = 0 : tensor<30x80x5000xi32>
  %1 = stablehlo.transpose %0, dims = [2, 1, 0] : (tensor<30x80x5000xi32>) -> tensor<5000x80x30xi32>
  func.return %1 : tensor<5000x80x30xi32>
}

@mvpant wanted to give a heads up that I'm going to be doing some re-organizing of StablehloAggressiveSimplification in the coming days (not planning to touch folders this week), and add some patterns from MHLO canonicalizers. If you don't have any active changes..maybe hold off on starting any for a few days to avoid a nasty merge conflict.

@mvpant wanted to give a heads up that I'm going to be doing some re-organizing of StablehloAggressiveSimplification in the coming days (not planning to touch folders this week), and add some patterns from MHLO canonicalizers. If you don't have any active changes..maybe hold off on starting any for a few days to avoid a nasty merge conflict.

@GleasonK sure. By the way, out of curiosity, what is the reason why stablehlo operations do not have <builtin> canonicalization using let hasCanonicalizer = 1; and folder let hasFolder = 1;? My guess is that this approach is intended to keep it stable for external users, ensuring that the generated output is predictable?

My guess is that this approach is intended to keep it stable for external users, ensuring that the generated output is predictable?

Exactly this. I've had too many issues with folks not being able to opt-out of certain patterns being applied and then they invent "clever" solutions like barrier ops to prevent constant folding, or mirrors of convert ops to avoid folding ops that would indicate that model weights are quantized, etc. In the current design point I'm trying to make everything as opt-in as possible, and have a stable input format which serialized and deserializes without changing.
Also I had a followup question, I see a few uses of tensor::EmptyOp, and I'm thinking to replace these with stablehlo::ConstantOp : dense<>. Any objections to this? I figure if tensor ops are needed it can be an extension pattern which converts empty constants to tensor::empty that lives in a part of the codebase that supports tensors, as opposed to a builtin canonicalization pattern

... invent "clever" solutions like barrier ops to prevent constant folding, or mirrors of convert ops to avoid folding ops that would indicate that model weights are quantized, etc.

Eh, doesn't sound good, makes much more sense now to keep emitted operations as is.

Also I had a followup question, I see a few uses of tensor::EmptyOp, and I'm thinking to replace these with stablehlo::ConstantOp : dense<>. Any objections to this?

Nope. I think tensor::EmptyOp is handy at further stages because of the built-in bufferization stuff, but at stablehlo level it shouldn't make a difference. Having stablehlo.constant everywhere seems fine and more consistent.


git global settings (name, email) are private, do not read or use

I am using my real name and private email for my own repos that will never go public. Why should cargo read this information? I do not consent!
If I were to accidentally leave that information and publish it, it would be pretty bad. I would have to get a new email and who knows what else can be compromised. I dont want to get into it, but the entire point of this issue is that it's none of your business what my name and email is unless I want to share it.

You may set the global [cargo-new] config settings to whichever value you want (described on the init page), or the CARGO_NAME/CARGO_EMAIL environment variables. Or you can just edit the Cargo.toml file after creating it, or create it manually.

This should be re-opened. Cargo is violating consent by scraping personal information from the environment without asking. The fact that you can opt-out by setting cargo-new.name and cargo-new.email doesn't change the fact that this is a violation of privacy and consent.

@substack It is being removed in #9282.


Global style

Fix #29
Comments:

Thought about create an app view effect on window screening but cxl that idea throughout the progress
Fixed some small global issues as setting margin globally

Button. {
Cursor: pointer
}


Bug dashboard

Looks like there is something wrong with the dashboard. I get different plots for the same trial:

Closed with #182


Is there a way to scale the text?

In my game I need to scale the text based on the screen.
I would expect something like a scale that I would pass to the draw function.
No other ways seem to work for me.

So, the way this works is using the Love2D text object one character at a time. You could do this a few ways:

You could define fonts for each size of the screen that you have, and then recreate the text object when the screen size changes.

yourbox = Text.new("left",
{
    font = -- This is what you would redfine for each size
    })

You could draw to a canvas and scale that canvas
You could inject the [scale=number] tag based on your screen size

There is no way to make this library scale for you as Love2D does not scale fonts dynamically.

I need to be able to change the scale for each frame so fonts and scale tag won't work.
The canvas would make the text blurry.

Sorry, I use the default love font system, so unless you are able to do it with set font and  love graphics print; my library can't do it.


Sorting vertices is gives wrong result on different gpu

I have a 4 gpu server and I use the following code to test cal_iou function
    device = 'cuda:0'
    box3 = [-0.3541, -0.5818,  0.6220,  1.2440,  2.1768]
    box4 = [-0.4219, -0.1952,  0.3413,  0.6827,  0.8751]
    tensor1 = torch.FloatTensor(box3).to(device)[None,None] # 2, 4, 2 # test same box
    tensor2 = torch.FloatTensor(box4).to(device)[None,None]

    area = cal_iou(tensor1, tensor2)[0]

    print("CUDA: ")
    print(area)

When device is 'cuda:0' it seems to work fine, but when it is 'cuda:1' or 'cuda:2' or 'cuda:3', area gives 0 always. What is wrong?

Hi, thank you very much for the issue!
I've never tested my code with multi-GPUs. I'll investigate this issue on a server and update this ASAP.

Hi, the CUDA kernel seems to need a guard. I'm still not sure what is going on here, but adding the guard fixed this issue on my server :D
More info: https://discuss.pytorch.org/t/c-cuda-extension-with-multiple-gpus/91241
Please pull the new commit and verify if it works on your machine.


Generate both author and authors directories

Currently, academic generate two directories related to authors, author and authors. It seems the files in the author directory have no useful content. Is the author directory necessary? Can it be disabled?
Step to reproduce it:

cd to exampleSite
run HUGO_THEME=academic hugo --themesDir ../../
Check files in public directory.

Hugo does not have a multi-user account feature. There has been great demand for such functionality in Academic and in v4 we implemented it.
The best solution for us to implement such capability in Academic was to use Hugo's taxonomy feature for user accounts. The behaviour that you noted is not directly related to Academic and is implemented in Hugo's taxonomy feature. I'm unaware of a way to change this. Feel free to ask on Hugo forums or make a proposal to the Hugo team.


xrmBrowser.Related.SetValue is returning Field does not exist error

Hi Team,
I am trying use xrmBrowser.Related.SetValue method to set field data on related record’s related entity and I am getting Field does not exist error.

Workplace -> contacts -> select and open existing contact (contact has 1:N relationship with custom entity)
Navigate to related custom entity associated view (from contact record) using navigation pane -> select and open existing custom entity record (custom entity has 1:N relationship with activities)
Navigate to related open activities associated view (from custom entity record) using navigation pane -> Add New Activity -> Phone Call (trying to create new phone call. Phone call form has opened in new window) -> xrmBrowser.Related.SetValue -> returning Field does not exist error

When I checked list of commands using below line, I am getting open activities associated view command buttons from custom entity instead of phone call command buttons.
How to access related record’s related entity form and fields? How can I set the data on related record’s related entity fields?
var buttons = xrmBrowser.Related.GetCommands(false).Value
Please find version details below.
EasyRepro version is beta-v9.0.2
D365 version is Version 1710 (<IP_ADDRESS>8) online
Selenium.Chrome.WebDriver is 2.42.0
Selenium.WebDriver is 3.14.0
Selenium.Support is 3.14.0
Thanks,
Veera

Hello @veerasekharbathala
In Step 3, when the new phone call form has opened, have you tried using the SwitchToPopupWindow() method?
xrmBrowser.Related.SwitchToPopupWindow();
xrmBrowser.Related.SetValue();
....
When you're done and the pop-up is closed, if you encounter issues re-targeting the main window, you could try:
xrmBrowser.Related.SwitchToDefaultContent();
Could you try these approaches out and let me know if it helps alleviate your issue? If not, please let me know and I'll evaluate with the team internally on the best approach to handle this scenario moving forward.
Best Regards,
Tyler

Thanks Tyler for the response.
Yes, I did tried xrmBrowser.Related.SwitchToPopupWindow() and this line of code is executed successfully. However, when i try to execute xrmBrowser.Related.SetValue() code after xrmBrowser.Related.SwitchToPopupWindow() then I got below error.
Test Name:	CreatePhoneCall
Test FullName:	D365.UIAutomation.UnitTest.PhoneCall.CreatePhoneCall
Test Outcome:	Failed
Test Duration:	0:03:32.1230061
Result StackTrace:
at OpenQA.Selenium.Remote.RemoteTargetLocator.Frame(String frameName)
at OpenQA.Selenium.Support.Events.EventFiringWebDriver.EventFiringTargetLocator.Frame(String frameName)
at Microsoft.Dynamics365.UIAutomation.Api.XrmPage.SwitchToRelated()
at Microsoft.Dynamics365.UIAutomation.Api.RelatedGrid..ctor(InteractiveBrowser browser)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.Dynamics365.UIAutomation.Browser.InteractiveBrowser.GetPageT
at Microsoft.Dynamics365.UIAutomation.Api.Browser.get_Related()
at D365.UIAutomation.UnitTest.PhoneCall.CreatePhoneCall()
Result Message:
Test method D365.UIAutomation.UnitTest.PhoneCall.CreatePhoneCall threw exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> OpenQA.Selenium.NoSuchFrameException: No frame element found with name or id areaActivitiesFrame

Whoops, my mistake here @veerasekharbathala
Once the pop-up is in focus, can you revert to setting entity field values like you would on a form?
xrmBrowser.Entity.SetValue(...);
Each time we call .Related, it initializes the RelatedGrid page, which does a SwitchToRelated() method that will no longer work in this context.
In the case of Entity, if the pop-up window switch worked, then the Entity page will be initialized and should switch into the main content window, allowing you to interact with the Phone Call form.
If you encounter issues with this, could you post your test code (feel free to adjust custom entity naming and parameter values accordingly if you want to keep anything private). I can then try to setup a repro with that to verify your steps and see what we're missing. :)
Best Regards,
Tyler

Thanks Tyler. I am able to interact with Phone call form using below approach.
xrmBrowser.Related.SwitchToPopupWindow();
xrmBrowser.Entity.SetValue

Thanks @veerasekharbathala . I'll close this out as resolved. If you have any further issues and/or questions, please open a new issue.


deprecate --type-check

PR checklist

[ ] Addresses an existing issue: #0000
[ ] New feature, bugfix, or enhancement

[ ] Includes tests

[x] Documentation update

Overview of change:
Deprecated --type-check. It's no longer necessary. Most users don't read the changelog and may not have noticed it.
It breaks consumers that expect a certain output format. And it confuses users, because --exclude does not work as expected.
We should remove it in v6.0
Is there anything you'd like reviewers to focus on?

CHANGELOG.md entry:
[deprecation] CLI argument --type-check is no longer necessary and will be removed in the next major version

Does this now mean that type checking is always enabled when running tslint?  If so, I like it!

@chrismbarr type checking and enabling typed rules is not the same thing:
Type checking does a full check of your entire project to find compile errors before the actual linting is done. It does not affect the lint result. This is deprecated now and will be removed in a future release. Type checking should be done by the compiler, not TSLint.
Typed rules are not enabled by default. Technically that's not possible. But you only need --project now to enable typed rules. Before v5.4.0 you needed --project --type-check. The latter is no longer necessary and therefore deprecated.

Yes, that's what I meant - thanks!  To be fair though a "typed rule" was enabled with a CLI flag named --type-check - so you can see why the terminology is a bit confusing.
But this is a good change, I like it. 1 flag to enable this feature instead of 2 is much better.

Just following up on this... I am running tslint version 5.7.0, and using VS Code v1.17.2 (currently the latest release).
Per advice in this PR, I have removed the --type-check parameter, and now have this in my "scripts" section of my package.json:
"tslint": "tslint --project ./tsconfig.json",

The issue I now have is that in VS Code no longer highlights type errors.
I realise that tslint is no longer providing this functionality, and any typing error will be flagged at compilation time – but of course I still want to see these errors when developing.
I have done some searching, but not yet found a solution... any ideas?
Thanks in advance.
Matt

Oops... looks like it was just some kind of refresh issue. I restarted VS Code a couple of times, and now it's disappeared.
As you were! :-D


fix some issue to ensure anp connectivity

Signed-off-by: xuezhaojun<EMAIL_ADDRESS>

/assgin @skeeey

/assign @skeeey

/lgtm


[tests-only] Bump core commit id for tests

Description
This PR bumps core commit id to the latest
Related Issue

Part of  https://github.com/owncloud/QA/issues/689
Part of  https://github.com/owncloud/QA/issues/690

@labkode @ishank011 ready to review.


Create Project Documentation

Below is the list of documentation pages/information that needs to be created.

[x] Home Page (This is essentially the README which should be expanded with the below sections)

[x] Installation (Brief steps)
[x] Help (Where to find it)
[x] Contributing (How to contribute to the project)
[x] Credits (Thank Yous)

[x] Installation
[x] Troubleshooting
[x] How to Contribute
[x] JSON Customizations

Notes

Mention that the name of the json file has to be the same name as the GitHub repo. - Revan
Installation instructions should mention that .NET Core 5.0 Runtime needs to be installed. - Flaw

All the pages with basic information has been created: https://www.editor.criticalflaw.ca/
This will be a living document and will be improved upon and expanded over time.


Disable Vulkan lit tests on GitHub CI

3374b659a260ac59a23b03c9a3dc40651c64e185 fixed the OSS lit test runner so it runs all run lines, not just the first one. This means vulkan tests are actually getting run now and failing because they're not supported in the CI environment

I'll merge once the bazel build check passes


Change keyboard dismissal from modal controller

Is there anyway to disable the dismissal of the modal via the escape key from within the modal controller? The use case for this would be a modal that makes an http request. When a user opens the modal and is interacting with it, it's convenient to allow them to dismiss the modal via the escape key. Once a request has been sent, however, you want to remove that ability so they modal isn't closed accidentally before the request completes.

In my humblest of opinions this request is far to nuanced and based on your specific use case to justify exposing an API to disable certain key bindings.

I don't think this should have been closed so fast.
This has some valid use cases, such as if the intent is to force user action on something.

See #3371

Yeh, this is duplicate of #3371


ParTool 1.3.0 error

Hello @Kaplas80 & @SutandoTsukai181 !
I tried to run the ParManager becaues i want to extract some sound files from yakuza kiwami 2.
I use Microsoft Visual Studio to run the exe but before i can even write anything I get this type of error here.

What am I doing wrong? How can I start the exe correctly so I can type in the extract command?
Would really appreciate any help!

Hello!
You don't need Visual Studio. Just download the zip with compiled exe from the github releases tab here, unzip it and then drag&drop the .par archive on ParTool.exe to extract it.
To create a .par archive, you only need to drag&drop a folder on ParTool.exe.
But if you want to use any other functionality of the app, you have to execute it from a command prompt, double click on the exe is not enough.
All the options and functions are detailed in the README file.


OnSpawn does not fire for UdonBehaviours

UdonBehaviours that are spawned in do not have OnSpawn called. It appears that current methods are too early as they have not run start yet and are ignored. Create a queue and call onSpawn after those objects have ran start.

VRChat no longer supports OnSpawn and spawning udon behaviours. This will not be implemented.


Fix-dep-locking

The dependence locking was broken when we added fv3gfs-util as a requirement to fv3fit.
Significant internal changes:

requirements for external packages can now be locked by listing them in external/<package>.requirements.in

Requirement changes:

update ipython since the installed version crashed due to incompatiblity with jedi
lock dependences of fv3gfs-util (this escaped our notice before).

I think the post process run failures are unrelated: https://github.com/ai2cm/fv3net/issues/1503


Render UI View with transparency?

Firstly, thank you for a wonderful library.
I am using the RecordUIVC example and the view I have has a transparency. The movie file (mp4 and even mov) have a black background.
Can you please help me understand how to render view with transparent background to .mov?
Aloha!

Also, the output is a bit pixelated. the UI point size and the frame size seem to be the same, but it doesn't account for the resolution?

never mind - my view needed to have a .clear background


3.3.0-rc5 select2.js and autocomplete.init.js bug when included many times

Hi,
the premise of this bug is: I have no control over what my django.admin includes in the HTML source. I do have a global search form, based on autocomplete, so I need to include dal JavaScript on every single page. And, occasionally, I do have a form with autocomplete. Django admin adds form.media, so I may get dal's JavaScript included many times.
If I include autocomplete.init.js and/or select2.js more than once, I do get a strange, erroneous behaviour but when? Only when I use that small, very useful "Create '%s'" option.
The item created gets submitted more than once. It gets submitted so many times as the times the autocomplete.init.js and select2.js is included. So, usually the first request that hits the server gets OK'd (HTTP status 200), another requests fail with 500 Server Error and I get stack trace about non-unique primary keys in my tables, because the software tries to create the item many times.
What's good about this is, that I do have a patch! And I'll submit it shortly.
Thanks for maintenance and development, as usual! Truly yours, with deepest regards,
--
m

Pull request created, https://github.com/yourlabs/django-autocomplete-light/pull/982 WHERE MY REVIEWERS AT

Awesome, great research ;)

question about 61890f3f6def did 3.3.0 rcX break something with create_options for you ?


Issue with using xray with async function

Tried using xray with async function but keep getting this error
Traceback (most recent call last):
  File "app.py", line 333, in <module>
    xray_recorder.end_segment()
  File "/usr/local/lib/python3.6/site-packages/aws_xray_sdk/core/recorder.py", line 206, in end_segment
    if self.current_segment().ready_to_send():
AttributeError: 'NoneType' object has no attribute 'ready_to_send'

PIP
aiobotocore     0.9.4
aws-xray-sdk    1.1
boto3           1.7.58
botocore        1.10.58

N.B: I know latest version of aws-xray-sdk is not supported with aiobotocore

Thanks

Hi, could you provide a code snippet of your X-Ray SDK configuration and the part that triggers this error so I can take a further look? Are you running this in AWS Lambda or locally? Is this  a script or a web app? Thanks.

The particular error is tracked here https://github.com/aws/aws-xray-sdk-python/issues/96. Closing this and please free feel to comment or open a new one if you have problem figuring out why the context doesn't propagate through async functions.