This issue should be fixed here https://github.com/aquasecurity/terraform-provider-aquasec/issues/135, but it wasn't.
(this time I updated the aqusec provider to latest v0.8.12 to verify it)
Terraform Version
❯ terraform -v
Terraform v1.2.2
on darwin_amd64
+ provider registry.terraform.io/aquasecurity/aquasec v0.8.12

Affected Resource(s)

aquasec_enforcer_groups

Steps to Reproduce
I'm using this code to create enforcer groups in Aqua:
terraform {
  backend "local" {
    path = "terraform.tfstate"
  }
  required_providers {
    aquasec = {
      version = "0.8.12"
      source  = "aquasecurity/aquasec"
    }
  }
}

provider "aquasec" {
  username = var.aquasec_username
  aqua_url = var.aquasec_url
  password = var.aquasec_password
}

variable "aquasec_username" {
  type        = string
  description = "Aqua Username"
}

variable "aquasec_password" {
  type        = string
  description = "Aqua Password"
}

variable "aquasec_url" {
  type        = string
  description = "Aqua URL"
}

resource "aquasec_enforcer_groups" "auqa-enforcers-agent-kubernetes" {
  group_id    = "tes-enforcer"
  type        = "agent"
  description = "Test Enforcer"
  enforce     = true
  # Host Assurance
  host_assurance = true
  # Network Firewall (Host Protection)
  host_network_protection = true
  # Runtime Controls
  host_protection = true
  # Network Firewall (Container Protection)
  network_protection = true
  # Advanced Malware Protection (Container Protection)
  container_antivirus_protection = true
  # Runtime Controls
  container_activity_protection = true
  # Image Assurance
  image_assurance = true
  # Advanced Malware Protection (Host Protection)
  antivirus_protection = true
  # Host Images
  sync_host_images = true
  # Risk Explorer
  risk_explorer_auto_discovery = true

  orchestrator {
    type      = "kubernetes"
    namespace = "aqua"
  }
}

resource "aquasec_enforcer_groups" "auqa-enforcers-kube_enforcers-kubernetes" {
  group_id    = "test-kube_enforcer"
  type        = "kube_enforcer"
  description = "Test Kube Enforcer"
  enforce     = true
  # Enable admission control
  admission_control = true
  # Perform admission control if not connected to a gateway
  block_admission_control = true
  # Enable workload discovery
  auto_discovery_enabled = true
  # Register discovered pod images
  auto_scan_discovered_images_running_containers = true
  # Add discovered registries
  auto_discover_configure_registries = true
  # Kube-bench image path
  kube_bench_image_name = "registry.aquasec.com/kube-bench:v0.6.5"
  # Secret that holds the registry credentials for the Pod Enforcer and kube-bench
  micro_enforcer_secrets_name = "aqua-registry"
  # Auto copy these secrets to the Pod Enforcer namespace and container
  auto_copy_secrets = true

  orchestrator {
    type      = "kubernetes"
    namespace = "aqua"
  }
}

Install kube-enforcer to k8s cluster:
helm repo add aqua-helm https://helm.aquasec.com
helm upgrade --install --version "2022.4.5" --namespace aqua --create-namespace --values - kube-enforcer aqua-helm/kube-enforcer << EOF
global:
  enforcer:
    enabled: true
  gateway:
    address: 25dxxxxxxxx-gw.cloud.aquasec.com
    port: 443
  imageCredentials:
  imageCredentials:
    create: true
    #---# Aqua repository example:
    username: "xxxxxxxxxxxxxx"
    password: "xxxxxxxxxxxxxx"
serviceAccount:
  create: true
clusterName: "kube2.k8s.mylabs.com"
logicalName: "kube2.k8s.mylabs.com"
certsSecret:
  autoGenerate: true
aquaSecret:
  #---# The following value needs to be changed !
  kubeEnforcerToken: "xxxxxxx"
enforcer:
  #---# The following value needs to be changed !
  enforcerToken: "xxxxxxxxxxx"
  logicalName: kube2.k8s.mylabs.com
  nodeName: kube2.k8s.mylabs.com
EOF

Once the enforcer groups are create I connected my k8s cluster and everything is working like expected:

The problem appeared when I tried to run terraform destroy where I'm getting:
aquasec_enforcer_groups.auqa-enforcers-kube_enforcers-kubernetes: Destroying... [id=test-kube_enforcer]
aquasec_enforcer_groups.auqa-enforcers-agent-kubernetes: Destroying... [id=tes-enforcer]
╷
│ Error: failed deleting enforcer group, status code: 400
│
│
╵
╷
│ Error: failed deleting enforcer group, status code: 400

When I delete the k8s cluster I can not destroy it either (see "red" disconnected enforcers):

I need to manually delete connections/enforcers in Aqua GUI and then I can destroy it:

-> Terraform should be able to destroy enforcer groups without any manual intervention.

Use case - we are creating / deleting k8s clusters for testing purposes therefore we would like to automate the whole process:

create cluster
register cluster to Aqua
run tests
delete cluster
delete cluster form Aqua

Hi @ruzickap
Sorry, but the updated version for 2022.4 with this fix was not released yet
It is planned to be released this week.
We will update you when it will be ready in this issue

Thank you for explanation.
Can we keep this opened till fix for 2022.04 will be released please?
Once the fix for Aqua 2022.04 will be released - I'll give it a try and update/close the issue.

@ruzickap Of course.

Hey @ruzickap
The 2022.4, update 4 was released today

Thank you...
I'll test it next week :-)

This is now working fine....
I was able to remove enforcer with "registered k8s cluster" without any issues.
Thank you for fixing it :-)

@ruzickap thank you for testing it


[AutoPR monitor/resource-manager]  add Azure Monitor Action Group 2018-09-01 API for armrole receiver

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/3770

(message created by the CI based on PR content)

Codecov Report

:exclamation: No coverage uploaded for pull request base (restapi_auto_monitor/resource-manager@2fa795e). Click here to learn what that means.
The diff coverage is 63.63%.

@@                           Coverage Diff                            @@
##             restapi_auto_monitor/resource-manager    #3233   +/-   ##
========================================================================
  Coverage                                         ?      56%
========================================================================
  Files                                            ?     7367
  Lines                                            ?   154414
  Branches                                         ?        0
========================================================================
  Hits                                             ?    86475
  Misses                                           ?    67939
  Partials                                         ?        0

Impacted Files
Coverage Δ

...azure/mgmt/monitor/models/action_group_resource.py
27.77% <0%> (ø)

...gmt/monitor/operations/action_groups_operations.py
16.66% <100%> (ø)

...mgmt-monitor/azure/mgmt/monitor/models/__init__.py
100% <100%> (ø)

...e/mgmt/monitor/models/action_group_resource_py3.py
27.77% <50%> (ø)

...azure/mgmt/monitor/models/arm_role_receiver_py3.py
62.5% <62.5%> (ø)

...tor/azure/mgmt/monitor/models/arm_role_receiver.py
62.5% <62.5%> (ø)

Continue to review full report at Codecov.

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


Replaced if-else with switch

Thanks for your contribution

Sorry, have no idea, how to write tests.


Enforce-MFA doesn’t work as expected when used in post login flow

I’ve configured it exactly as described in the readme, but I use this authentication flow as the Identity Provider’s post login flow.
- MFA Wrapper Flow
-- MFA-Authenticate-subflow CONDITIONAL
--- Condition - user configured REQUIRED
--- OTP ALTERNATIVE
--- WebAuthn ALTERNATIVE

-- Register-MFA-subflow CONDITIONAL
--- Condition - user configured REQUIRED
--- Enforce-MFA REQUIRED

Even when the user has Passkeys enrolled, Keycloak always shows them the Enforce-MFA page with the selection of 2FA methods to configure.

but I use this authentication flow as the Identity Provider’s post login flow.

Thanks for your report. Could you please explain what that means? Or even better provide the full authentication flow setup?


Add a HomogeneousViewport class that works like MixedViewport but handles only children that have all the same height.

(this PR is defunct for now)

Ready for review. @abarth


[CI] Move flake8 to dev_requirements.txt

@kylef

@orta Do you wanna have a look? Per Kyle's suggestion I split out flake8 into a dev only requirements file which I should have done from the start. This means it's not installed in production environments where it's not used.

Yep, this makes sense to me 👍


Pipelines tasks refer to virtmerlin/c0-worker, c0 team dockerhub may be better?

See ref: https://github.com/pivotal-cf/aws-concourse/issues/12 (that repository is now deprecated).
This is just a copy of the issue.

@bijukunjummen
I noticed that some of the pipeline steps refer to this docker image virtmerlin/c0-worker, wouldn't hosting and using docker images from a team dockerhub a better idea.

@krishicks
We have chores to replace any non-cflinuxfs2 images with either cflinuxfs2 or one based on
cflinuxfs2 that we maintain.
They're here:
https://www.pivotaltracker.com/story/show/144251129
https://www.pivotaltracker.com/story/show/144251109
https://www.pivotaltracker.com/story/show/144251095

We already have a story for this and have nearly completed the work.


[FLINK-28701][runtime] Minimize the explosion range during failover for hybrid shuffle

What is the purpose of the change
In hybrid shuffle mode, there are currently two strategies to control spilling. For the full spilling strategy, the data is guaranteed to be persistent to the disk after task finished. When a failover occurs, if the upstream has been finished, the data should be recovered directly from the disk file without re-compute. For selective spilling strategy, the entire topology must be restarted.
Brief change log

Split HYBRID result partition type to HYBRID_FULL and HYBRID_SELECTIVE.
RestartPipelinedRegionFailoverStrategy takes reConsumable into account when decide partition available.
Remove WIP prefix of ALL_EXCHANGE_HYBRID_FULL and ALL_EXCHANGE_HYBRID_SELECTIVE in BatchShuffleMode and expose them to documents.

Verifying this change
This change added new test methods in related test class.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

@flinkbot run azure

@flinkbot run azure


request feature : music on folder/library

hello, can you make atom music compatible with itunes library or can scanning music in folder/library?
thnx

I will check on it and will update

@sdinesh86 Where is the playlist saved?

Hey sorry for the late response
The playlist if saved in the serialized state of the package.
I am not mainitng the package anymore and I noticed that you have forked the repo and have create mitsu.
If you want you can takeover this package.
Thanks,
Dinesh

@sdinesh86 No problem, thank you for responding. :-)
"saved in the serialized state": yes, have seen.
"forked the repo": yes, i have and still struggling with coffee script and the broken specs. :-D
"takeover this package": yes, would be nice :-)
Thanks,
Vivien

@sdinesh86 Sorry, need also to discontinue the mitsu package, because i am still not able to fix this issue: https://github.com/sdinesh86/atom-music/issues/15
So both packages are still broken.

I dont have a mac right now, but once I get it I will check on it and let you know

@sdinesh86 It's not related to mac only. See here: https://github.com/vivi90/mitsu/issues/2

A workaround is:

Clear playlist
add music.

@rhymelody What about support for multiple playlists, switched by drop down menu?

Possible solution 1
The easiest way might be to replace the "Add music tracks" button by a "Add playlist button" and replace the "Clear playlist" button by a "Remove playlist" button.
Then just add a "Switch playlist" drop down menu.
So we will completely replace the session based playlist by user created ordinary playlist (e.g. *.m3u).
We are inside a text editor so i see no problem for the users to just write a playlist and add it to the player.
Possible solution 2
Nearly like solution 1 but it's not playlists.
Instead it's folders for that are added and selected.
This folders might be scanned by toggle event.
My recommendation
Implement both solutions with the ability to switch between it by plugin-in settings.

Third-party services
Collection of possible solutions

Spotify & iTunes: cody-music npm package
Soundcloud: https://developers.soundcloud.com/docs/api/guide

@UziTech Let's discuss this. :slightly_smiling_face:


Enable Persistent Storage for Grafana with ceph-csi(cephfs), rancher doesn't creat a pvc for it.

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):
1.create k8s cluster in rancher.
2.enable Cluster Monitoring in rancher website(Tools->monitoring)
3.Enable Persistent Storage for Grafana set storage class ceph-csi(cephfs)
Result:
I found that Pod 'grafana-cluster-monitoring-XXX' is Pedding and describe po k8s give error 'persistentvolumeclaim "grafana-cluster-monitoring" not found'
Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
stable 2.4.4
Installation option (single install/HA):
run with docker command

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
Custom
Machine type (cloud/VM/metal) and specifications (CPU/memory):
cloud
Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.6", GitCommit:"d32e40e20d167e103faf894261614c5b45c44198", GitTreeState:"clean", BuildDate:"2020-05-20T13:16:24Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", BuildDate:"2020-06-26T03:39:24Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

(paste the output here)

Warning  FailedScheduling    default-scheduler  persistentvolumeclaim "grafana-cluster-monitoring" not found

Docker version (use docker version):
Client: Docker Engine - Community
Version:           19.03.5
API version:       1.40
Go version:        go1.12.12
Git commit:        633a0ea
Built:             Wed Nov 13 07:25:41 2019
OS/Arch:           linux/amd64
Experimental:      false

(paste the output here)

use ceph-csi storage plugin instead of intree ceph storage plugin


Uncaught Error: Module did not self-register.

[Enter steps to reproduce:]

...
...

Atom: 1.51.0 x64
Electron: 5.0.13
OS: Unknown macOS version
Thrown From: Atom Core
Stack Trace
Uncaught Error: Module did not self-register.
At electron/js2c/asar.js:138

Error: Module did not self-register.
    at process.func [as dlopen] (electron/js2c/asar.js:138:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:881:18)
    at Object.func [as .node] (electron/js2c/asar.js:147:18)
    at Module.load (internal/modules/cjs/loader.js:701:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:633:12)
    at Function.Module._load (internal/modules/cjs/loader.js:625:3)
    at Module.require (/app.asar/static/index.js:72:46)
    at require (internal/modules/cjs/helpers.js:14:16)
    at customRequire (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:1:695414)
    at get_KeyboardLayoutManager (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:14:2715520)
    at get_manager (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:14:2715622)
    at Object.getCurrentKeyboardLayout (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:14:2715748)
    at e.keystrokeForKeyboardEvent (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:14:1047867)
    at KeymapManager.keystrokeForKeyboardEvent (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:11:1228180)
    at KeymapManager.handleKeyboardEvent (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:11:1226165)
    at WindowEventHandler.handleDocumentKeyEvent (/Users/garrickngai/Desktop/Atom.app/Contents/Resources/app/static/<embedded>:11:284829)

Commands
     -3:13.1.0 core:select-all (input.hidden-input)
     -3:09.4.0 core:copy (input.hidden-input)
     -2:56.6.0 tree-view:add-folder (span.name.icon.icon-file-directory)
  2x -2:06.8.0 core:select-all (input.hidden-input)
  2x -1:57 core:copy (input.hidden-input)
     -1:44.7.0 tree-view:add-folder (span.name.icon.icon-file-directory)
     -1:10 core:copy (input.hidden-input)
     -0:15.7.0 tree-view:add-file (span.name.icon.icon-file-directory)
     -0:03.0 core:select-all (input.hidden-input)

Non-Core Packages
advanced-open-file 0.16.8
atom-material-ui 2.1.3
color-picker 2.3.0
file-icons 2.1.40
formatter-json 1.0.1
highlight-selected 0.17.0
indent-guide-improved 1.4.13
minimap 4.29.9

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


Submit button disabled until all form fields are valid.

Hi,
Great plug-in.
Is there a way of initially setting the Form Submit button to disabled and it is only enabled when all the forms fields have been successfully validated and hence are ready to be submitted?
I've looked through help and issues and have found nothing to do this and I'm guessing it would be a common use  case.
Thanks for your time.
John

Found a solution to this problem?

Same request...

@harkinj @pashkes The closest I found so far is this: https://stackoverflow.com/a/27050178/3163075
$('input').on('blur keyup', function() {
    if ($("#myform").valid()) {
        $('#submit').prop('disabled', false);
    } else {
        $('#submit').prop('disabled', 'disabled');
    }
});

This validation triggers all form fields on the page once you 'blur' from one input.
You can attach .valid() to the individual fields within the onfocusout handler. However, for activating your submit button, you cannot invoke .valid() to return a boolean without also invoking the error messages... .valid() does both at the same time. No method is provided that can tell you if the form is valid without also activating validation on the form.
If you write your own custom function for this, then you wouldn't need the plugin because you'd essentially be writing client-side validation from scratch. Maybe you can restrict the handler above to only fire when no fields are left blank... it's not perfect.
The developer has not provided any event that fires on a valid form. However, the blur and keyup events normally fire the validation test, so you can also use these to trigger a validation test and activate the button.

I think it basically comes down to someone like @staabm who needs to implement this feature.

The code below is what I ended up with so far:
$('#formId').on('blur keyup change', 'input', function(event) {
  validateForm('#formId');
});

function validateForm(id) {
  var valid = $(id).validate().checkForm();
    if (valid) {
      $('.form-save').prop('disabled', false);
        $('.form-save').removeClass('isDisabled');
    } else {
      $('.form-save').prop('disabled', 'disabled');
      $('.form-save').addClass('isDisabled');
    }
}

// Run once, so subsequent input will be show error message upon validation
validateForm('#formId');

It uses checkForm() instead of the form() and my disable button has the classform-save

Does anyone know a ability to disable the button while the form is invalid? We check the fields instantly after focus out of the specific field.

It appears that there is no way to do such thing @it4need I ended also doing a custom code with the keyup event on each input to validate that.

for me this worked: https://stackoverflow.com/questions/48757363/disable-form-submit-based-on-validation


LUCENE-10475: Merge o.a.l.a.[ja|ko].util into o.a.l.a.[ja|ko].dict

Minor refactoring to make some dictionary internals package-private (see inline comments for details).
This moves a number of public classes into another package, though, it really is not an "API change" since they are used to generate resources included in the Jars and then there is no practical effect on users.

We don't have good tests for dictionary builders (testing them is difficult), gradlew regenerate tasks for kuromoji / nori works, and do not change generated resources.

@mocobeta hello!  I hit conflicts backporting https://github.com/apache/lucene/issues/12911 because this PR was never backported to 9.x.
Is there any reason not to backport?  It looks like some public APIs changed packages, but, these are the tooling to compile dictionaries, so backporting should be fine?

@mikemccand I tried to backport this to branch_9x and found that we should handle many conflicts in both kuromoji and nori to cherry-pick this in 9x branch. I think it can be a daunting task.
I'd like to check the conflicts you are seeing, could you point out the PR under concern? It looks like #12911 is an issue. I guess you mean #12933?


svg is broken

I built latest (0c1dd39) version of async-profiler with JAVA_HOME=/usr/lib/jvm/java-8-openjdk make and ran it with ./profiler.sh -f result.svg -d 100 13327.
The resulting svg file gives the following output when opened in Firefox or Chromium:

If needed I can provide the generated svg after I obfuscate the classes names or reproduce on a libre project ;)

Yes, please. An example of such .svg will be helpful.

Here it is: https://gist.github.com/victornoel/9306861dbde29830b73c74221ba7167d

Thank you. I understand the problem now. Due to locale settings floating point numbers are formatted using , instead of ..
I'll fix that.

I've committed the fix. Please check if it helps.

@apangin it works as expected, I'm closing the issue, thanks for the quick fix ;)


OHRI-2118-added the visits tables under tpt patient summary

added the visits tables under tpt patient summary
Requirements

[ ] This PR has a title that briefly describes the work done including the ticket number. If there is a ticket, make sure your PR title includes the ticket number in the format OHRI-123 My PR title.
[ ] My work includes tests or is validated by existing tests.

Summary

Screenshots

Related Issue

Other

@kirwea kindly add a more recent screenshot representing your work, thanks.

Not need for this anymore


Register justincodingprojects.is-cool.dev

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.

Description

A countdown website that I made.
Link to Website

https://justincodingprojects.github.io/automated-countdown-generator-reborn/

what do I have to do?

had to change it many times -_-
anyways how long does the process take normally?


Add response specific types

As of right now, all endpoints return a generic dynamic ComposableRequest.Response.
Going forward I'm going to implement some protocols for the most common responses.
e.g.
public protocol User
public extension User where Self: DynamicResponse {
     var username: String? { return self["username"].string() }
}

@sbertix  Could you provide some examples regarding how to parse User object?

@Goktug, check out User references in the development branch, for an idea on how to parse this all 💪


Prepare to release the project on PyPi

Background

Currently, we release only to Github and this makes package updates in other projects more complicated

Acceptance Criteria

Replace dependencies installed from Github releases with pypi versions
Add github action to release to pypi

blocked by https://github.com/exasol/script-languages-container-ci/issues/26
blocked by https://github.com/exasol/error-reporting-python/issues/14


ci: upgrade semantic release version

Upgrade semantic release and relevant packages.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (e80eddd) to head (7ae9252).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##             alpha      #370   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          414       414
  Branches       156       161    +5
=========================================
  Hits           414       414

Flag
Coverage Δ

?

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


C# .NET Framework (WinHttpHandler) client vs. Python3 server, unsupported protocol issue

What version of gRPC and what language are you using?
python3-grpcio 1.46.0, Grpc.Net.Client 2.45.0 in C# .NET Framework 4.7.2
What operating system (Linux, Windows,...) and version?
Windows 10 21H2
What runtime / compiler are you using (e.g. python version or version of gcc)
Python 3.8.10
What did you do?
I implemented a simple gRPC client in C# .NET Framework  4.7.2 (WinHttpHandler) and a gRPC server in Python3 (grpcio 1.46.0) for testing.
What did you expect to see?
A returned string value from my gRPC method call.
What did you see instead?
In C# .NET Framework i can use only client and it is mandantory to using TLS with WinHttpHandler. When i test it with my gRPC Python server and try to call a gRPC method, i got an "A connection with the server could not be established" exception in C# then i also got an "UNSUPPORTED_PROTOCOL" error in Python server log. Can you help what is this issue?
It seems to me gRPC Python server requires an other cryptographic protocol for example TLS v1.3 maybe, but in C# .NET Framework for WinHttpHandler i can use only TLS v1.0, v1.1, v1.2. Can you help how can i change TLS version of my gRPC Python server to any older version? By the way, if i test it in a Python client and Python server everything is working well.
gRPC Python server error:
E0511 17:55:18.799000000 14676 src/core/tsi/ssl_transport_security.cc:1495] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL.
D0511 17:55:18.802000000 14676 src/core/lib/security/transport/security_handshaker.cc:181] Security handshake failed: {"created":"@1652284518.802000000","description":"Handshake failed","file":"src/core/lib/security/transport/security_handshaker.cc","file_line":377,"tsi_code":10,"tsi_error":"TSI_PROTOCOL_FAILURE"}
D0511 17:55:18.806000000 14676 src/core/ext/transport/chttp2/server/chttp2_server.cc:427] Handshaking failed: {"created":"@1652284518.802000000","description":"Handshake failed","file":"src/core/lib/security/transport/security_handshaker.cc","file_line":377,"tsi_code":10,"tsi_error":"TSI_PROTOCOL_FAILURE"}

C# .NET Framework client exception:
Status(StatusCode="Internal", Detail="Error starting gRPC call. HttpRequestException: An error occurred while sending the request. WinHttpException: Error 12029 calling WINHTTP_CALLBACK_STATUS_REQUEST_ERROR, 'A connection with the server could not be established'.", DebugException="System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: Error 12029 calling WINHTTP_CALLBACK_STATUS_REQUEST_ERROR, 'A connection with the server could not be established'.
   at System.Threading.Tasks.RendezvousAwaitable`1.GetResult()
   at System.Net.Http.WinHttpHandler.<StartRequestAsync>d__122.MoveNext()
   --- End of inner exception stack trace ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Grpc.Net.Client.Internal.GrpcCall`2.<RunCall>d__73.MoveNext() in /_/src/Grpc.Net.Client/Internal/GrpcCall.cs:line 493")

Issue was mentioned also here: https://github.com/grpc/grpc-dotnet/issues/1733

I found that grpc-dotnet require a Windows 10 Build 19622 or later which is available only from Windows Insider. So this is the reason why not work on Windows 10 21H2 for me. Only the gRPC C# core-library works well on current Windows 10 21H2 build.
https://en.wikipedia.org/wiki/Windows_10_version_history

if anyone will meet the same problem again here is a solution


Fix type

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

-1 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 28.545%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

queuelogic/logic.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
914

Relevant Lines:
3202

💛  - Coveralls


chore: cleanup sqlalchemy warnings

Fixing these noisy warnings when using the superset cli
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'Tag.objects' will copy column tag.id to column tagged_object.tag_id, which conflicts with relationship(s): 'SavedQuery.tags' (copies tag.id to tagged_object.tag_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="tags"' to the 'Tag.objects' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)
  for prop in class_mapper(obj).iterate_properties:
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'TaggedObject.tag' will copy column tag.id to column tagged_object.tag_id, which conflicts with relationship(s): 'SavedQuery.tags' (copies tag.id to tagged_object.tag_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="tags"' to the 'TaggedObject.tag' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)
  for prop in class_mapper(obj).iterate_properties:
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'Slice.tags' will copy column slices.id to column tagged_object.object_id, which conflicts with relationship(s): 'SavedQuery.tags' (copies saved_query.id to tagged_object.object_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="tags"' to the 'Slice.tags' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)
  for prop in class_mapper(obj).iterate_properties:
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'Slice.tags' will copy column tag.id to column tagged_object.tag_id, which conflicts with relationship(s): 'SavedQuery.tags' (copies tag.id to tagged_object.tag_id), 'Tag.objects' (copies tag.id to tagged_object.tag_id), 'TaggedObject.tag' (copies tag.id to tagged_object.tag_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="objects,tag,tags"' to the 'Slice.tags' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)
  for prop in class_mapper(obj).iterate_properties:
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'SqlaTable.slices' will copy column tables.id to column slices.datasource_id, which conflicts with relationship(s): 'Slice.table' (copies tables.id to slices.datasource_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="table"' to the 'SqlaTable.slices' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)
  for prop in class_mapper(obj).iterate_properties:
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'Dashboard.tags' will copy column dashboards.id to column tagged_object.object_id, which conflicts with relationship(s): 'SavedQuery.tags' (copies saved_query.id to tagged_object.object_id), 'Slice.tags' (copies slices.id to tagged_object.object_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="tags,tags"' to the 'Dashboard.tags' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)
  for prop in class_mapper(obj).iterate_properties:
/Users/max/.pyenv/versions/3.9.16/envs/superset/lib/python3.9/site-packages/flask_appbuilder/models/sqla/interface.py:67: SAWarning: relationship 'Dashboard.tags' will copy column tag.id to column tagged_object.tag_id, which conflicts with relationship(s): 'SavedQuery.tags' (copies tag.id to tagged_object.tag_id), 'Slice.tags' (copies tag.id to tagged_object.tag_id), 'Tag.objects' (copies tag.id to tagged_object.tag_id), 'TaggedObject.tag' (copies tag.id to tagged_object.tag_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   To silence this warning, add the parameter 'overlaps="objects,tag,tags,tags"' to the 'Dashboard.tags' relationship. (Background on this error at: https://sqlalche.me/e/14/qzyx)

Looks like some tests are failing. I restarted them just in case we get lucky, but I think they're real and not just flaking.


Impossible to add workflows to render

Description

CWL Viewer cannot find a workflow in gitlab (self-hosted) repository.
Expected Behavior

CWL Viewer shall find and parse the workflow correctly
Actual Behavior

Error: The workflow could not be found within the repository
Possible Fix

Must be related to #424
Steps to Reproduce

Go to the https://view.commonwl.org/ and paste the address of the repository https://gitlab.cta-observatory.org/cta-computing/dpps/dpps-workflows.git as URL to workflow.
Paste this commit hash: 76f7c25c0472da23b7e0bfe9f2c18ab6bc369c9d to the "Branch Name/Commit ID" field
Now, the workflow that has been previously registered (long time ago) works: /workflows/calibpipe/uc-cp-001.cwl
However, the other workflow (that has not been registered before) doesn't: /workflows/datapipe/uc-dp-XXX.cwl

Context

I can't render my workflows
Your Environment

Version used:
Environment name and version (e.g. Chrome 39, Java 17):

Ah, I see! This explains things! Right, can you please improve the error message? :)

We should have given a better error message in this instance.

+1


Disabling bookends (first and last) piecewise Index/Value

In the above image, I have styled the slider to act as a timeline. I have included in my data array, empty strings every other time label. I found that creating an empty string at the beginning and end of the data array allowed me to give a good margin, and also since there are no piecewise styling for the first and last I noticed.
So my question is, how would I disable someone from ever going to the first or last index, since they are not really valid,  only placeholders.
Thanks once again for your help!

Sorry, there is currently no direct way to ban the first and last index.
You can try to watch  the value or use the component's callback method to determine if the current index is the first or last value, then go to manually set the value.
Of course, the best way is to delete the first and last values.

Thank you again for your quick response, and recommendation.
Yes I could always delete first and last, but piecewise marks are not created for first and last data points. And I am using the piecewise markers styled as vertical lines as my timeline


Using the plugin breaks fzf's ctrl+r bind.

It doesn't matter if I source zsh-vi-mode before or after fzf stuff, ctrl-r is somehow taken for "^R" history-incremental-search-backward. Even if I manually bind my ^R after loading the plugin (via bindkey "^R" fzf-history-widget) it still doesn't work. What am I doing wrong?

Hi @ftpd
For this issue, you can read here or refer to #24. And welcome to star this project for further updates in the future. : )
Thanks and regards

Right, that works, thank you!


Multiple values

Is there any way I could possibly test for multiple conditions through one single "UserSaysText" or one single "WaitBotSaysText"?
I have a bot that follows a conversation tree and at each node there can be multiple inputs/outputs to the bot. If I write tests for all possible combinations, I'll easily be writing over a million different scripts. Is there a way to check for a array of string values instead of one single string in the conversation flow?
Thankyou

Yes, indeed there is. Please read about it here. In short, it is possible to list all utterances for bot input and output in seperate files, and define the conversation structure just once.

Did you try it out ?

Hi, yes I did try it out, but I keep getting the same error
(node:3058) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Test cases for chatbot/Line 7: error sending to bot TypeError: Cannot set property 'msg' of undefined
This is my sample code
const BotDriver = require('botium-core').BotDriver
const Capabilities = require('botium-core').Capabilities
const Source = require('botium-core').Source
function assert (expected, actual) {
if (!actual || actual.indexOf(expected) < 0) {
console.log(ERROR: Expected <${expected}>, got <${actual}>)
} else {
console.log(SUCCESS: Got Expected <${expected}>)
}
}
const driver = new BotDriver()
.setCapability(Capabilities.PROJECTNAME, 'Delta-Chatomate')
.setCapability(Capabilities.CONTAINERMODE, 'simplerest')
.setCapability(Capabilities.SIMPLEREST_URL, 'https://delta-chatomate.herokuapp.com/bot/')
.setCapability(Capabilities.SIMPLEREST_METHOD, 'POST')
.setCapability(Capabilities.SIMPLEREST_BODY_TEMPLATE, 'userUtterance={{msg.messageText}}&sender=765757765')
.setCapability(Capabilities.SIMPLEREST_BODY_RAW, true)
.setCapability(Capabilities.SIMPLEREST_HEADERS_TEMPLATE, '{ "Content-Type": "application/x-www-form-urlencoded" }')
.setCapability(Capabilities.SIMPLEREST_CONTEXT_JSONPATH, '$')
.setCapability(Capabilities.SIMPLEREST_RESPONSE_JSONPATH, '$.utterance')
driver.BuildFluent()
.ReadScripts('convos')
.RunScripts()
.Exec()
I have created a folder called convos in the same directory as my test script, which contains a file called one.convo.txt
Here are the contents of that file
Test cases for chatbot
A simple test case
#me
Hello there
#bot
Hello there. I am ChatomateBot.
Does this have the same problem that it does not support urlencoded formats? Thanks

In your code, a call to "Start" method is missing - this should definitly be catched in the Botium API.
This example works (at least for me) - I extracted the configuration from the script to an external configuration file botium.json:
File "botium.json":
{
  "botium": {
    "Capabilities": {
      "PROJECTNAME": "Delta-Chatomate",
      "CONTAINERMODE": "simplerest",
      "SIMPLEREST_URL": "https://delta-chatomate.herokuapp.com/bot/",
      "SIMPLEREST_METHOD": "POST",
      "SIMPLEREST_BODY_TEMPLATE": "userUtterance={{msg.messageText}}&sender=765757765",
      "SIMPLEREST_BODY_RAW": true,
      "SIMPLEREST_HEADERS_TEMPLATE": "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }",
      "SIMPLEREST_CONTEXT_JSONPATH": "$",
      "SIMPLEREST_RESPONSE_JSONPATH": "$.utterance"
    }
  }
}

File "botiumFluent.js":
const BotDriver = require('../../index').BotDriver
const Capabilities = require('../../index').Capabilities
const Source = require('../../index').Source

const driver = new BotDriver()

driver.BuildFluent()
  .ReadScripts('convos')
  .Start()
  .RunScripts()
  .Exec()
  .then(() => {
    console.log('READY')
  })
  .catch((err) => {
    console.log('ERROR: ', err)
  })

Hi, it works perfectly now, thanks a lot for the solution! The wiki page that describes Botium Scripting has an example
driver.BuildFluent()   .ReadScripts('convos')   .RunScripts()   .Exec()
Maybe you wanna change that as well to include the Start statement as well, thanks again!

Thanks for the hint. Corrected in Wiki.

Hi, sorry about bringing this up again but I would really appreciate if you could provide some description as to how I can change the settings to 'expand' to multiple user inputs with an utterance file. The default only seems to be taking the first utterance, and it isn't randomised. Thanks

The expansion is done automatically when using the Fluent API, like in the sample:
https://github.com/codeforequity-at/botium-core/blob/master/samples/utterances/botiumFluent.js
Currently, there is not setting to randomize the input  from utterances, as we believe that dealing with random input is not helpful in test automation in general (in special cases, yes it would be helpful, for example smoke tests or performance tests).
Are your utterances files in the same folder as the convo files ? Maybe you could prepare an example again ?

Here is a sample of my conversation and utterance file. I'm simply reading 'convos' in my test file like you mentioned.
`Test cases for chatbot
A simple test case
#me
yes
#bot
Would you like to find your nearest bureau or want to know the documents to take to your meeting?
#me
nearest bureau
#bot
Tell me your postcode area. For example, Edinburgh, Perth, Glasgow, etc. If you are not sure, read out the first two letters in your postcode. For Glasgow, its just one letter, G.
#me
RESPONSE1
#bot
Okay, Edinburgh`
RESPONSE1 Edinburgh Perth Glasgow Aberdeen
This input always selects Edinburgh and doesn't pick Perth, Glasgow or Aberdeen. Will I have to write more conversation files to test all cases? If so, what will they be called? Thanks

So, with this example, I am receiving an error:
ERROR:  Error: Test cases for chatbot/Line 10: Expected bot response "All right!" to match one of "Would you like to find your nearest bureau or want to know the documents to take to your meeting?"
at Object.assertBotResponse (D:\dev\temp\utt_sample\node_modules\botium-core\dist\botium-cjs.js:1071:17)
at D:\dev\temp\utt_sample\node_modules\botium-core\dist\botium-cjs.js:524:51
at
at process._tickCallback (internal/process/next_tick.js:188:7)
But you can inspect yourself, just enable debug logging ("export DEBUG=botium*")

?


error is output format is not set in conf

The new image filter errors out if the output filter is not set.
seems to work with empty string also.
should default to the origin image type if output filter not specified.

Try it now.  I thought I handled null before, but apparently I only handled empty string.

Seems to be working now
Thanks


Improving ExchangeGraph_impl()

Implemented Alg 2 in https://dl.acm.org/doi/10.1145/1837853.1693476 for the ExchangeGraph_impl() associated to mpi arrays
Removed the code associated to the warn/error issued when the non-scalable algorithm was invoked

@fverdugo ready to review

The tests failed in Github Actions ... not sure why ? In my local machine, the tests pass ...

Codecov Report
Patch coverage: 98.03% and project coverage change: +0.32 :tada:

Comparison is base (bd4bb9f) 84.66% compared to head (7761c5e) 84.98%.

:exclamation: Current head 7761c5e differs from pull request most recent head 8ba4c9a. Consider uploading reports for the commit 8ba4c9a to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #106      +/-   ##
==========================================
+ Coverage   84.66%   84.98%   +0.32%
==========================================
  Files          10       10
  Lines        2543     2584      +41
==========================================
+ Hits         2153     2196      +43
+ Misses        390      388       -2

Impacted Files
Coverage Δ

src/mpi_array.jl
90.10% <97.50%> (+0.91%)
:arrow_up:

src/primitives.jl
96.88% <100.00%> (+0.94%)
:arrow_up:

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

The tests failed in Github Actions ... not sure why ? In my local machine, the tests pass ...

Ok, after a myriad of different microexperiments in github actions (I cannot debug locally, unfortunately), I think I understand now what's going on. In order to understand the following discussion, a sufficient understanding of Alg 2. from https://spcl.inf.ethz.ch/Publications/.pdf/hoefler-dsde-protocols.pdf is required.
My hypothesis is that there is to some extent delay in the propagation of the non-blocking barrier, the processes leave the barrier in a somewhat staggered way. Thus, this causes some processes exiting the busy waiting while loop before others (line 5 of Alg 2). While the processes are in the busy waiting loop, they probe for incoming messages, and get the message from the top of the incoming messages queue if probing returns true (lines 6-8 of Alg. 2).
Now, if the processes that exit the busy waiting while loop, start issuing send messages, there is a risk of (incorrect/inconsistent) message pair matching among the messages sent by these processes, and those which are still in the busy waiting loop probing for matching incoming messages. I note that this is quite frequent in PartitionedArrays, as one it determines the reciprocal of the communication graph in assembly_neighbors, then one has to perform a nearest neighbor exchange using such communication graph in assembly_local_indices (which in turn ends up calling exchange_impl!)
I guess that the time window within such an scenario can happen should be actually very small, as it depends on the delay it takes the non-blocking barrier to propagate among both processes. I would say that this delay should be small in high fidelity clusters.
In any case, matching happens if and only if all the following conditions are met:
(1) the sender and receiver match,
(2) the tag on sender and receiver match,
(3) the communicator matches.
Possible (alternative) solutions for this issue:

ExchangeGraph_impl() issues a blocking barrier right after the busy waiting loop in Alg 2.
ExchangeGraph_impl() duplicates the communicator, performs all exchanges on this communicator, and then frees it.
ExchangeGraph_impl() and exchange_impl!  use the same communicator, but tags are judiciously selected such that (a) there cannot be clashes among messages sent by exchange_impl! and received by ExchangeGraph_impl()  (b) there cannot be clashes among messages generated by different (e.g., consecutive) instances of ExchangeGraph_impl().

I think that we should pursue 3., as this solution does not introduce overhead nor additional (unnecessary) global synchronization points.  At present, exchange_impl! in PArrays is using the identifier of the sender as the message tag, but, there is no actual need in doing so, we could use the same tag for all messages, say, tag 0. Then, we could use another fixed tag for ExchangeGraph_impl(). HOWEVER, while this achieves 3. (a), I am not sure it will be also able to fulfill 3. (b). In order to try to fulfill 3. (b) we can use a global counter tag, which starts from 1, and increments by one (module largest integer) on each call to  ExchangeGraph_impl(). Still, although this intituively should solve the problem (or, in the worst case, reduce the probability of clashing to a negligible number) I am not able to proof if this is guaranteed to solve 100% the problem. What would happen if we had a myriad (as many as one round over all positive integer numbers) of consecutive ``ExchangeGraph_impl()` calls? Could it be that i-th iteration and the i+2^n iteration still clash?
@fverdugo @JordiManyer ... please let me know your thoughts ... we can may be implement the three strategies just in case ...

@fverdugo ... FYI ... I already implemented 3. The PR is ready to review, everything clean.

@fverdugo ... FYI ... I already implemented 3. The PR is ready to review, everything clean.

IMPORTANT UPDATE. This PR can only be accepted after PR https://github.com/fverdugo/PartitionedArrays.jl/pull/107 has been processed

Hi @amartinhuertas Thanks for this improvement!
I am on vacations right now. I'll come to this when I am back to work.

IMPORTANT UPDATE. This PR can only be accepted after PR https://github.com/fverdugo/PartitionedArrays.jl/pull/107 has been processed

Can you please decouple this from PR #107 ?

Can you please decouple this from PR https://github.com/fverdugo/PartitionedArrays.jl/pull/107 ?

Ok, done

Hi @amartinhuertas is there any way of falling back to the original implementation e.g. for debugging purposes?
I am also curious about the performance gain of the new implementation. It should be more efficient asymptotically, but what about the gains for distributions with up to tends of thousands of subdomains? Do you have some insight on this? Was the original implementation a bottleneck in any of your use cases?

Hi @amartinhuertas is there any way of falling back to the original implementation e.g. for debugging purposes?

Regarding this, I would implement each one of the possible strategies in a separate function (all with the same signature), and then pass this function as an optional key-word argument to ExchanchangeGraph.
E.g.
function find_rcv_ids_alg_2(snd_ids::MPIArray{<:AbstractVector{T}}) where T
    comm = snd_ids.comm
    rcv_ids=map(snd_ids) do snd_ids
        requests=MPI.Request[]
        tag=new_exchange_graph_impl_tag()
        for snd_part in snd_ids
          snd_rank = snd_part-1
          push!(requests,Issend(T(0),snd_rank,tag,comm))
        end
        rcv_ids=T[]
        done=false
        barrier_emitted=false
        all_sends_done=false
        barrier_req=nothing
        status = Ref(MPI.STATUS_ZERO)
        while (!done)
            # Check whether any message has arrived
            ismsg = MPI.Iprobe(comm, status; tag=tag)

            # If message has arrived ...
            if (ismsg)
                push!(rcv_ids, status[].source+1)
                tag_rcv = status[].tag
                dummy=T[0]
                MPI.Recv!(dummy, comm; source=rcv_ids[end]-1, tag=tag_rcv)
                @boundscheck @assert tag_rcv == tag "Inconsistent tag in ExchangeGraph_impl()!"
            end

            if (barrier_emitted)
                done=MPI.Test(barrier_req)
            else
                all_sends_done = MPI.Testall(requests)
                if (all_sends_done)
                    barrier_req=MPI.Ibarrier(comm)
                    barrier_emitted=true
                end
            end
        end
        sort(rcv_ids)
    end
    rcv_ids
end

ExchangeGraph(snd_ids,find_rcv_ids=find_rcv_ids_alg_2)

This allows to easily switch from strategies and also add new ones in the future.

I am also curious about the performance gain of the new implementation. It should be more efficient asymptotically, but what about the gains for distributions with up to tends of thousands of subdomains? Do you have some insight on this? Was the original implementation a bottleneck in any of your use cases?

I would perhaps keep the original strategy by default until we have experimental evidence that the new implementation is indeed faster.

I am also curious about the performance gain of the new implementation. It should be more efficient asymptotically, but what about the gains for distributions with up to tends of thousands of subdomains? Do you have some insight on this? Was the original implementation a bottleneck in any of your use cases?

I do not have experience/insight with the original implementation nor the one based on ibarrier. The only insight I have is the one of the paper, where they show the potential of the ibarrier solution versus other alternatives. You can look at the experiments there.

Regarding this, I would implement each one of the possible strategies in a separate function (all with the same signature), and then pass this function as an optional key-word argument to ExchanchangeGraph.
I would perhaps keep the original strategy by default until we have experimental evidence that the new implementation is indeed faster.

Ok, agreed. I have implemented already both. Ready to re-review.

@fverdugo ... are you happy with this PR? If yes, I would accept it. Thanks!

Hi @amartinhuertas,
I made some minor changes. The only real change (but still minor) is this one:

find_rcv_ids_* return rcv_ids instead of an ExchangeGrpah.

Otherwise, I think we are ready to merge (or perhaps first add an entry to CHANGELOG.md ).
Great thanks for this improvement!

I have just merged it. Feel free to add a line in CHANGELOG.md


Main settings in mod

The mod works great and I'm loving it so far, but the default f4 key doesn't seem to work to open the main settings for the mod. There is also no option to change the binding in the controls as it doesn't seem to exist. Not urgent but I couldn't seem to find anyone else talking about it online so I thought I'd ask here. Thanks.

It is 1.16.4? If yes there is no config support yet.

It is 1.16.4? If yes there is no config support yet.

Added config gui in 2.0.3.

Added config gui in 2.0.3.


modified fluid to paddleAPI

modified fluid to paddle API

 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.root seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Consideration of file data descriptor - workaround

Hi,
zzlib source code tells that data descriptor are not considered, This is problematic in some use case i met. Here after a proposal (for file zzlib-bit32.lua but applicable, i suppose, to zzlib-bwo.lua too), this proposal include the workaround about crc32 signed (i apologize for this late post knowing you update recently zzlib)
function zzlib.unzip(buf,filename)
local p = 1
local quit = false
while not quit do
local head = buf:int4le(p)
if head == 0x04034b50 then
-- local file header signature
local flag = buf:int2le(p+6)
local method = buf:int2le(p+8)
local crc = buf:int4le(p+14)
local csize = buf:int4le(p+18)
local namelen = buf:int2le(p+26)
local extlen = buf:int2le(p+28)
local name = buf:sub(p+30,p+29+namelen)
--ADD-1 >>
local NxtHdrPos=-1 -- init with out of range value
p = p+30+namelen+extlen
--ADD-1 <<
if bit.band(flag,1) ~= 0 then
error("no support for encrypted files")
elseif method ~= 8 and method ~= 0 then
error("unsupported compression method")
elseif bit.band(flag,8) ~= 0 then
--DEL-1 >>
-- error("no support for the data descriptor record")
--DEL-1 <<
--ADD-2 >>
-- SOURCES
-- [0] https://stackoverflow.com/questions/38437826/how-to-create-zip-file-with-data-descriptor-section
-- [1] https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
-- [2] https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html
NxtHdrPos = string.find( buf, '\x50\x4b\x03\x04', p, true ) -- look ahead to get the signature that starts the next local header file
if( NxtHdrPos==nil ) then error('unable to find '..filename.. 'into the zip' )
else
local DataDescrPos = NxtHdrPos-12 -- jump back to DataDescriptor Head regarding its size (in bytes) see [1] paragraph 4.3.9
crc = buf:int4le(DataDescrPos) -- overwrite previous crc that is null, see [2] paragraph Data descriptor
csize = buf:int4le(DataDescrPos+4) -- overwrite previous size that is null, see [2] paragraph Data descriptor
end
--ADD-2 <<
end
  if name == filename then
    local result
    if method == 0 then
      -- no compression
      result = buf:sub(p,p+csize-1)
    else
      -- DEFLATE compression
      local bs = bitstream_init(buf)
      bs.pos = p
      result = inflate_main(bs)
    end

--ADD >>
local crc_res = crc32(result)
if( crc_res<0 ) then
local bitmax32 =<PHONE_NUMBER>
crc_res = bitmax32 + crc_res
end
if crc ~= crc_res then
--ADD <<
--DEL >>
--if crc ~= crc32(result) then
--DEL <<
error("checksum verification failed")
end
return result
end
--DEL-2 >>
-- p = p+csize
--DEL-2 <<
--ADD-3 >>
if( bit.band(flag,8) ~= 0 )
then p = NxtHdrPos
else p = p+csize
end
--ADD-3 <<
else
-- other header: end of the list of files
quit = true
end
end
end
This "enhancement" allow usage of zzlib to decompress '.XLSX' file (that are zip file beyond extension) saved by Calc Application (from LibreOffice).
It worthly to note that '.XLSX' file saved by EXCEL application (from MSOffice) do not need this as they do not use data descriptor (different implement strategy granted by zip specification)
Feel free to adapt or reject this proposal it if you think is useless.

Hi @zballito,
Thank you for the suggestion. I did not support data descriptors up to now since I did not know some specific file formats like .xlsx were actually using them.
I might be considering an adaptation of your code to be included in zzlib soon. However I already found a bug in your code : if the file you are looking for is the last in the zip archive, it will not be found since there is no local file header following it. I am not sure yet about how to reliably determine the location of the data descriptor for the last file. without decompressing the file.
Another issue, while very unlikely but possible, would be that the compressed data in a file contains the '\x50\x4b\x03\x04' byte subsequence which would lead the search to failure.
Therefore I am investigating about how to completely not rely on data  descriptors, probably using the data in the central directory record.
Prior to this I am planning to refactor the code so that most of the utility code (file format management, crc32, adler32) gets moved to zzlib.lua . Only the lua-implementation-specific deflate code will remain in separate files for performance reasons.

Hi,
I agree with your analyses on weaknesses of the work around. I will add more notes.
-if data descriptor is not found while the last data descriptor is crossed over, the code will follow its scanning on central directory (or whatever zone after) until the end of file.
it is counter-performant (as the whole zip file is scanned) but the error message remain true, the file will be not found and the program returns.
-if during the whole scan bug 2 occurred, as you pointed, a similar byte sequence is found while it is not the start of a 'regular' descriptor,
i had presumed that the following bytes after that similar sequence, do not match the checks of data descriptor. So checks will fail and program will returns.
In this case error message point a cause like 'bad descriptor' while real cause is: 'file does not exist'. This case is acceptable in my tests conditions not in production.
-From what I remember, the ZIP specification does not tell how many descriptors are in, because, it allows 'stream compression'.
That is, the informations on the compressed file (like crc32) are computed after the compression is done.
And as you cannot go back to write them (cause the stream mode), you write them just after, that why descriptors 'at head' are not filled and they are given 'at foot'.
Thank again for your work.
SG
De : François Galea<EMAIL_ADDRESS>Envoyé : jeudi 2 avril 2020 01:58
À : zerkman/zzlib<EMAIL_ADDRESS>Cc : GUILMEAU Sébastien<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Objet : Re: [zerkman/zzlib] Consideration of file data descriptor - workaround (#6)
Hi @zballitohttps://github.com/zballito,
Thank you for the suggestion. I did not support data descriptors up to now since I did not know some specific file formats like .xlsx were actually using them.
I might be considering an adaptation of your code to be included in zzlib soon. However I already found a bug in your code : if the file you are looking for is the last in the zip archive, it will not be found since there is no local file header following it. I am not sure yet about how to reliably determine the location of the data descriptor for the last file. without decompressing the file.
Another issue, while very unlikely but possible, would be that the compressed data in a file contains the '\x50\x4b\x03\x04' byte subsequence which would lead the search to failure.
Therefore I am investigating about how to completely not rely on data descriptors, probably using the data in the central directory record.
Prior to this I am planning to refactor the code so that most of the utility code (file format management, crc32, adler32) gets moved to zzlib.lua . Only the lua-implementation-specific deflate code will remain in separate files for performance reasons.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/zerkman/zzlib/issues/6#issuecomment-607546707, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO4DGOTKZNRHHH6W3UKSGS3RKPIJ7ANCNFSM4LV4RBHA.

I just did the refactoring and reimplemented the zip file exploration using the central directory record.
It seems to be working fine on .zip and .xlsx files.
Can you try the latest version and tell me if it works on your test cases ?

Yeap, sure, i will test the changes tonight or in worst case this week, if it is okay for you.
De : François Galea<EMAIL_ADDRESS>Envoyé : jeudi 2 avril 2020 15:37
À : zerkman/zzlib<EMAIL_ADDRESS>Cc : GUILMEAU Sébastien<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Objet : Re: [zerkman/zzlib] Consideration of file data descriptor - workaround (#6)
I just did the refactoring and reimplemented the zip file exploration using the central directory record.
It seems to be working fine on .zip and .xlsx files.
Can you try the latest version and tell me if it works on your test cases ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/zerkman/zzlib/issues/6#issuecomment-607851744, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AO4DGOXQGVQ2QKJAVDQVQI3RKSII7ANCNFSM4LV4RBHA.

Hi,
I pass test on my set of zip files (that have descriptors before and after the compressed data),
they run without error returned and lead to same results that I had obtained with the proposed work arounds active.
So it's fine for me!
By the way, your excellent work is not referenced into Luarocks repository (so not visible by "mainstream Lua coders"), is it a choice?
Thanks a lot again.

Thank you for testing and your feedback. Glad it works for you.
I did not really look into Luarocks. I will consider adding zzlib to it.
Cheers


KeyError resp.ParseFromString(plat_response['response'])

[2017-03-01 08:44:23][   ERROR][worker-73] A wild KeyError appeared!
Traceback (most recent call last):
  File "/home/develop/productiv/monocle/worker.py", line 644, in visit
    await self.login()
  File "/home/develop/productiv/monocle/worker.py", line 210, in login
    await self.app_simulation_login(version)
  File "/home/develop/productiv/monocle/worker.py", line 290, in app_simulation_login
    tutorial_state = await self.get_player()
  File "/home/develop/productiv/monocle/worker.py", line 222, in get_player
    responses = await self.call(request, chain=False)
  File "/home/develop/productiv/monocle/worker.py", line 491, in call
    response = await request.call()
  File "/home/develop/lib64/python3.5/site-packages/aiopogo/pgoapi.py", line 149, in call
    response = await request.request(self._api_endpoint, self._req_method_list, self._position)
  File "/home/develop/lib64/python3.5/site-packages/aiopogo/rpc_api.py", line 126, in request
    response_dict = self._parse_main_response(response, subrequests)
  File "/home/develop/lib64/python3.5/site-packages/aiopogo/rpc_api.py", line 367, in _parse_main_response
    resp.ParseFromString(plat_response['response'])
KeyError: 'response'

Fixed in 11f575331bd921fb85c06f9c1a9bb1472d2ecd18.


Get node path

Hi,
Thanks for making developing this code. Is there a way to get the path the nodes traverse in the hsnw when calling knn_query?

Hi @dptam,
It is possible only in C++ via slight modifications of the code.


If admin uses app setup policy for org, does my bot get notified for all user's installations individually?

As an admin, if I set an app to "install for all users" when does the "onboarding" happen for each user? Is it all at once or when they sign in? And does my running app get notifications for every single install that happens for every user? (I need to make sure that every individual user gets the proper onboarding/installation message.)
I'm having difficulty testing this out because after installation ONCE and proceeding uninstallation, any time I test installation my bot isn't being notified about the second installation attempt.

This is by design. For a 1:1 conversation between the bot and a user (personal scope) the event is only sent the very first time the bot is installed. Technically, it is sent when the conversation is created between the bot and the user. If the user uninstalls the bot, this conversation is not deleted, so if the user then re-installs the bot the event is not sent.
For Group Chats and Channels the event will be sent each time the bot is installed. This is because each time the bot is uninstalled from this context, it is actually completely removed from the conversation, so an uninstall triggers the event.

Please re-open if you have any other queries here


filter, sort, and reverse transforms

This exports Plot.filter(value, options), Plot.sort(value, options) and Plot.reverse(options) so that the order in which these transforms are applied can be specified explicitly when the basic order of filter → sort → reverse is insufficient. Also, it makes possible to apply filtering, sorting, and reverse before or after another transform, such as binning.
Ref. https://github.com/observablehq/plot/pull/439#issuecomment-890530294

I wanted to add documentation and examples, but I found myself struggling with the seemingly simple task of sorting bins by y (large to small) before stacking them.
In https://observablehq.com/d/44c5fa3c52156203:
This works:
Plot.barY(
  data,
  Plot.reverse(
    Plot.sort(
      "length",
      Plot.groupX({ y: "count" }, { x: "island", fill: "sex" })
    )
  )
).plot()

But this doesn't:
Plot.barY(
  data,
  Plot.reverse(
    Plot.sort(
      "y",
      Plot.groupX({ y: "count" }, { x: "island", fill: "sex" })
    )
  )
).plot()

that's because the Plot.sort accessor receives the bins as input, and not the derived y channel.
(both have an implicit stacking transform added)

Plot doesn’t have a way to refer to another channel definition, like an alias. For example, you can’t do something like:
Plot.barY(data, {x: "revenue", y: "name", fill: "category", stroke: "fill"})

The first argument to Plot.sort is akin to a value in the options object, like sort: "field", and so you can’t replace "field" with the name of another channel; you can only give it the name of a column (or a value accessor or a comparator). So, needing "length" here instead of "y" makes sense to me.
If we want to have a way to alias channel names, we’d need a way to disambiguate it from data fields, and to make sure there are no circular definitions… and then there’s the question of whether you could refer to other channels in a function accessor, or if it can only be used to alias one channel onto another channel. In any case that feels like out of scope for this PR and possibly a significant undertaking.

Makes sense! I hope the tentative documentation I added is clear enough about this.

I am not sure how to address the inconsistency with #480. Do you have a preference, @Fil? If we take that approach, it would mean something like this:
Plot.sort({sort: "y", ...Plot.groupX({y: "count"}, {x: "island", fill: "sex"})})

which is, well, obviously awkward.
I suppose I could go back to Plot.normalizeX(basis, options) etc. in the other PR, but then I feel like we’d want Plot.windowX(windowOptions, markOptions) or something, which is also somewhat awkward because the markOptions aren’t strictly only for the mark—they include channels that will be transformed by the transform. Maybe that’s still the best option?

Here is the shorthand for the normalize transform:
https://github.com/observablehq/plot/compare/mbostock/normalize-shorthand
I have a guess as to how to extend this to the window transform, but it seems a little weird. I’m unclear on whether I should further try to extend the pattern to the stack transform, but if we did, it feels related to the other discussion about the reverse option being consumed by transforms #439 rather than representing the basis reverse transform (which in the case of stack would be applied prior to stacking).

If I understand correctly the problem with window is that we have several options, {k:24, anchor: "start"}, whereas for sort we have only 1, and write it directly as "length" instead of {sort: "length"}?
A common approach might be to merge the two arguments if they are both objects?
https://observablehq.com/d/a05b4fd47e766b26

To recap, there are really two problems here.
The first is that we want a way to control the order of the basic transforms (filter, sort, and reverse). Currently we cannot control the order because they are applied by maybeTransform, so the order is always filter → sort → reverse followed by any other transforms (which you can control the order of as transform2(transform1(…)) etc.).
The second is that sometimes the options to transforms are ambiguous: sometimes when we chain transforms, we want those options to apply to specific transforms in the chain. However that is not possible with the current form since the options for everything is declared as a single input into the chain: transformN(…transform2(transform1(options))).
We fixed the first issue by promoting the basic transforms to explicit transforms, so that you can chain them like the other transforms. However, we still need a fix for the second issue. And I’m considering pulling out the transform-specific options to a separate argument, as in transform(transformOptions, otherOptions). But I’m not sure that’s necessary in all cases or just in some cases, etc.

FYI I removed the example of composing basic transforms because I worry people would use it over the stack transforms order and reverse options, which are more likely to be correct. It’d be nice to have an example there but I think the application is fairly niche so it’s not urgent.


Documentation beyond godoc

Hi all. I was wondering if there was any thinking/planning to do more verbose documentation with various intended use-case examples than what godoc offers currently. One thing I find that really successful packages all have in common is lots of good usage documentation. I know gonum is meant to be similar to NumPy for Go, and as I recall while NumPy's adoption was slow'ish at first, as more documentation was written, it really took off rapidly. Anyway, I realize this is not an issue or an enhancement discussion, so if you feel it is inappropriate, for github issues, feel free to axe.
Thanks!

PRs adding documentation examples are welcomed. Also articles for https://gonum.org/ (https://github.com/gonum/website).


[Suggestion] Menu color changer

Can you add a button in the visuals/misc menu to change the menu/gui color (color scale+rainbow)

I can implement menu style editor if more people would be interested.

Menu style editor sounds good.

I have implemented menu coolor editor in my build of Osiris but it's 3 different sliders instead of a single color edit box. I could share that but I'd rather prefer a single color edit box

Added.


Find developer feature.

find developer is intended to market cit club upcoming talents. It will have a form input or select where one can specify the preferred technology and the results rendered from searching github profiles of individual members or a form where one will leave their contact details with the kind of the developer they want.
suggestions are welcomed!
@Vincent-kipngeno

Done


cherry-pick Impl translate and url encode 2.1

Proposed changes
pick https://github.com/apache/doris/pull/40567
some code about const folding should wait the pr picked: https://github.com/apache/doris/pull/40441

run buildall

run buildall

run buildall

run buildall


Inconsistent serialisation in CSV file

Searches for titles which include an apostrophe sometimes result in a quoted field in the corresponding CSV file, but sometimes don't. Why? Compare e.g. the downloaded results for "Ada Moore's story" (no quotes) and "Abbot's Cleve" (quotes). Some CSV-handling software requires the quotes.

The CSV looks to be fully compliant with the CSV specification.  Quotes around values are only needed if they contain a comma or a new line, so that the CSV parser knows that the comma is not denoting a new field.  E.g. the following line has quotes not because of the apostrophes, bvut because of the comma in the title.
Bodleian Libraries,"Carleton grange, by the author of 'Abbot's Cleve'."
Then there are also titles that themselves contain quotes, which require a double quote:
HathiTrust,"Carleton Grange : a novel / by the author of ""Abbot's Cleve."" 1"
But an apostrophe is OK and does not require quotes:
HathiTrust,Ada Moore's story : a novel.

OK, I was misled by the fact that inserting quotes seemed to solve the problem. But clearly it's my manky old perl csv-handling software which is the problem here. Now that I can get the results in XML who cares!


Supporting stuck node metrics/ events

Description
What problem are you trying to solve?
https://github.com/aws/karpenter-core/issues/743
As explained here sometimes we get nodes that are stuck during termination due to various reason (like PDB). As the cluster operator we would like to be able to figure out when nodes are in these situations.
Proposals:

Metric that tracks node up time after termination.
Based on an user inputted timeout N:

Events on stuck pods on node causing termination to not proceed after N
Labeling nodes that are stuck after N

How important is this feature to you?

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Metric that tracks node up time after termination

Metric that tracks node up time after termination

Could you use the node deletionTimestamp to model this for yourself with kube-state? I'm curious if the information for the termination is already present in the apiserver or if we truly need to model this within Karpenter?

Based on an user inputted timeout N:

Events on stuck pods on node causing termination to not proceed after N
Labeling nodes that are stuck after N

In terms of the wholesale solution for removing nodes after a certain time after their deletion timestamp has been set, I'd really like to see us just implement the graceful termination mechanism within Karpenter and then extend it out to other CRDs for a long-term upstream solution as called out by @sftim. We could put something into the nodeClaim like spec.gracefulTermination which would map into the NodePool at nodePool.spec.template.spec.gracefulTermination.

Metric that tracks node up time after termination

Could you use the node deletionTimestamp to model this for yourself with kube-state? I'm curious if the information for the termination is already present in the apiserver or if we truly need to model this within Karpenter?

Ah I guess I never saw that because we are running an older kube-state-metric but that should work

Based on an user inputted timeout N:

Events on stuck pods on node causing termination to not proceed after N
Labeling nodes that are stuck after N

In terms of the wholesale solution for removing nodes after a certain time after their deletion timestamp has been set, I'd really like to see us just implement the graceful termination mechanism within Karpenter and then extend it out to other CRDs for a long-term upstream solution as called out by @sftim. We could put something into the nodeClaim like spec.gracefulTermination which would map into the NodePool at nodePool.spec.template.spec.gracefulTermination.

Ya would like to see that too. I suspect if this was implement we may still need a similar metric but for nodes living > deletionTimestamp + gracefulTermination.

nodes living > deletionTimestamp + gracefulTermination but that change can wait

Yeah, I assume at that point, we would assume that the Karpenter controller is not behaving like it should since once we have that feature in we should just always react to NodeClaims/Nodes that are past their graceful termination period.


Elaticsearch v5.3.0 coule not install dejavu

@zonglu520 Starting Elasticsearch v5.0.0, site plugins have been removed. Alternatives are:

Using the docker image - dockerhub.com/r/appbaseio/dejavu (ideal replacement for the site plugin),
Using the chrome extension - https://chrome.google.com/webstore/detail/dejavu/jopjeaiilkcibeohjdmejhoifenbnmlh,
Using the hosted app at https://opensource.appbase.io/dejavu.


Use regex.test(str) instead of str.match(regex)

In all of these places, we really care about a boolean regex match so
we can use the much faster regex.test instead of str.match.
https://jsperf.com/str-match-vs-regex-test/1
At a glance, I see a few more opportunities for performance
improvements (e.g. moving regex declarations up to the module level),
but I'm going to leave them for now.

amazing!


type '(BuildContext, UserCaseAddBaseDataProviderModel) => void' is not a subtype of type '() => void'

Steps to Reproduce

...
...
...

Target Platform:
Target OS version/browser:
Devices:
Logs

You need to pass or ignore the required arguments, update () => void like (context, provider) => void

Hi @gneL1
opening an issue please try to provide
all or some of the information indicated in the template

Issue Template
If you are looking for support, please check out our documentation
or consider asking a question on Stack Overflow:
- https://flutter.dev/
- https://api.flutter.dev/
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent

If you have found a bug or if our documentation doesn't have an answer
to what you're looking for, then fill our the template below. Please read
our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports

Steps to Reproduce

Please tell us exactly how to reproduce the problem you are running into.

Please attach a small application (ideally just one main.dart file) that
reproduces the problem. You could use https://gist.github.com/ for this.

If the problem is with your application's rendering, then please attach
a screenshot and explain what the problem is.

1. ...
2. ...
3. ...

Please tell us which target platform(s) the problem occurs (Android / iOS / Web / macOS / Linux / Windows)
Which target OS version, for Web, browser, is the test system running?
Does the problem occur on emulator/simulator as well as on physical devices?

Target Platform:
Target OS version/browser:
Devices:

Run your application with `flutter run --verbose` and attach all the
log output below between the lines with the backticks. If there is an
exception, please see if the error message includes enough information
to explain how to solve the issue.

Run `flutter analyze` and attach any output of that command below.
If there are any analysis errors, try resolving them before filing this issue.

Finally, paste the output of running `flutter doctor -v` here.

Closing this issue, since no information has been provided.
Thank you.


[New Port Request] OpenXR-Toolkit

Library name
OpenXR-Toolkit
Library description
A collection of useful features to customize and improve existing OpenXR applications.
Source repository URL
https://github.com/mbucchia/OpenXR-Toolkit
Project homepage (if different from the source repository)
No response
Anything else that is useful to know when adding (such as optional features the library may have that should be included)
No response

I'm the author of that tool. I don't understand what bringing it to vcpkg would do at all?
OpenXR toolkit is a standalone application, not a library.

哦，好吧


"Remaining" Column

Please insert a remaining column in the torrent list

Remaining time? Data? If data, would it be OK to put it in the Size column?
Like “100mb (of 324mb)” for example.
On Mon, 12 Mar 2018 at 01:54, AFaustini<EMAIL_ADDRESS>wrote:

Please insert a remaining column in the torrent list
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/picotorrent/picotorrent/issues/548, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ABbDcDNcHGKI5MAe4CCHW_cnE3378rExks5tdcdPgaJpZM4Sl8NA
.

Data.
It's fine for me.
But i think some people does not like this mix and will prefer two fields (Total Download and Remaining Size) for organization purposes.

Sure! I’ll fix it tonight :)
On Mon, 12 Mar 2018 at 10:23, AFaustini<EMAIL_ADDRESS>wrote:

Data.
It's fine for me.
But i think some people does not like this mix and will prefer two fields
(Total Download and Remaining Size) for organization purposes.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/picotorrent/picotorrent/issues/548#issuecomment-372242648,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABbDcPB9HB7XMXMCru8dWRUrXIrliD7gks5tdj6kgaJpZM4Sl8NA
.

Added in #672.


Implement CI in github actions

migrate travis CI tests to github actions

release publishing is not currently implemented

drop python 3.5 and 3.6 support
run tests for python 3.7 to 3.9

python 3.10 tests fail due to removed loop argument, therefore currently disabled

this is only an issue in the test suite afaik

python 3.11 tests currently fail to install uvloop, therefore currently disabled

see https://github.com/MagicStack/uvloop/issues/450

run tests for MySQL 5.7 and 8.0 latest
run tests for MariaDB 10.2 to 10.7 and latest
bump dev/test dependencies

migrate deprecated test syntax

remove docker integration from tests, for automated builds this is now covered by github actions
async test methods have been broken before already https://app.travis-ci.com/github/aio-libs/aiomysql/jobs/448298144#L2340
each matrix job is currently limited to 15 minutes total execution, it should be safe to expect the tests to be completed by then. in my tests (with pip cache) the tests usually run about 1.5 minutes.
pytest job is soft limited to 5 minutes, hard limited to 6 minutes to avoid test hangs.
in my tests this is typically completed in less than a minute.
in broken tests we can easily deadlock otherwise and the test would otherwise keep running for hours.
port fix for test_issue_3 for MySQL 8.0 compatibility from https://github.com/PyMySQL/PyMySQL/pull/658
test_connection_gone_away fails on MySQL 8.0
test_drop_connection_if_timedout fails on MySQL 8.0, test was patched to close the pool to avoid blocking forever

open questions:

is there any point in running a set of separate tests for PYTHONASYNCIODEBUG=1?
should python 3.10 test compatibility be implemented in this PR or separately after this is merged?

merged upstream at https://github.com/aio-libs/aiomysql/pull/645


request: recurring to fund AWS-VMs for integration tests

I don't have estimates but we do minikube testing in different clouds, gcloud, azure, but we don't have any testing in AWS. AWS-VMs for minikube testing with up to 10 bare-metal VMs for testing different hypervisors.

Ack @medyagh will ask wg-k8s-infra first

/assign

Talked to @medyagh . The pattern minikube is following is to have persistent VMs in various clouds that act as github action runners. And github actions trigger things to run in those persistent VM(s). So we should basically get some AWS credits/credentials that @medyagh can share with minikube maintainers to be able to take care of this farm of VMs.
@idvoretskyi already indicated that CNCF can support this, so i will open a service desk ticket to get the process rolling

@dims sorry, I don't understand why specifically AWS is needed here - can you explain with more details?
We can offer the host to run GHA runners in Packet, or negotiate some extra capacity for the SaaS GitHub Actions.

@idvoretskyi minikube has features that work with various cloud providers ( example the registry integration https://github.com/kubernetes/minikube/blob/master/site/content/en/docs/handbook/registry.md#using-a-private-registry ) that needs to be tested. They currently have cloud credits from Microsoft/Azure for some of the scenarios (include windows testing as well). So there are things that need to be tested per cloud provider. Hence the ask for specific cloud credits.

The current goal is to have testing in all public clouds in github actions.
we use azure for nested virtualizaton testing in Windows,
and we would like to add github actions for different Linux distros available on AWS.
also to host the kic-base image that on aws registry

@idvoretskyi @medyagh i've opened a Service Desk ticket https://cncfservicedesk.atlassian.net/servicedesk/customer/portal/1/CNCFSD-434
thanks,
Dims

/assign @idvoretskyi

@idvoretskyi @medyagh i've opened a Service Desk ticket https://cncfservicedesk.atlassian.net/servicedesk/customer/portal/1/CNCFSD-434
thanks,
Dims

thank you @dims is this service desk protal something that I could login to ? or is it internal access only?

@medyagh i'll update you when there's traffic there, at this point, we it's assigned to Ihor which in Europe. So we wait for Ihor.

@medyagh it's for the CNCF project maintainers only - https://github.com/cncf/servicedesk#how-do-i-file-a-ticket-with-the-service-desk.
@dims and I will take it from there.

@medyagh Can you please the AWS pricing calculators and get us an approximately monthly cost?

@dims here is the link for the estimate https://calculator.aws/#/estimate?id=ce22ca6a1ce5fc79314fb57d26b5fc79388c8fd6

Picked 10 instances of type" i3.2xlarge" bare metal with 8 Logical CPUs.
Picked  "Windows" for the OS in the quick calculator. but in practice half them will become linux instances.

Picked "Windows" for the OS in the quick calculator. but in practice half them will become linux instances.

@medyagh I'd suggest you put more clear estimates here, the price can differ significantly.

Picked "Windows" for the OS in the quick calculator. but in practice half them will become linux instances.

@medyagh I'd suggest you put more clear estimates here, the price can differ significantly.

the calculator doesn't let mixing instance os types, but current difference is the cost for windows vs linux

Hi @dims I would like to know if there is any follow up on this ?

it's End of week for sure for Ihor. let's pick this back up next week.

Hi there is there any update  @dims @idvoretskyi

Status update: there are no AWS credits available yet, so this is pending. We are waiting for the next batch of credits to be allocated by AWS, and we'll proceed from there.
Should take a week or a few (hopefully).

this is already done.
thanks,
Dims


Add specs for IO#autoclose? and IO#autoclose= (take 2)

I took a stab at separating the specs given the feedback in #1077. This PR would supersede that one, given it is accepted.
/cc @andrykonchin Let me know if this isn't what you meant exactly or you have another preferred way to group them. Thanks!

Looks great. Thank you!


Add _status:healthz endpoint

The healthz endpoint checks if the server is ready to serve request.
This endpoint can be used by cloud deployment or self-hosted
installations to check the status of the server.
connects #264

@cheungpat, thanks for your PR! By analyzing the history of the files in this pull request, we identified @rickmak to be a potential reviewer.

Merge via 0d5f66b


Songs matching with matching disabled

I've seen a rash of this happening recently after never having seen it in years of use. I've had at least one song out of at least half a dozen randomly chosen albums testing my scripts/wrapper. It causes issues because the song is actually put in the library, but gmusicapi returns a tuple of empty dicts for the result.
This has been on Python 3 after the port. I haven't gotten to really test it well yet. Definitely needs testing to see if it happens on Python 2 with current version and Python 2 on prior version before porting. With luck, it's something that can be solved on gmusicapi's side and not another server oddity.
Edit: Probably best either way to set the matched result to the server_track_id since the song was actually matched.

Hm, I also noticed this during that weird uploading bug a few months back: https://github.com/simon-weber/gmusicapi/issues/380#issuecomment-156738383. I had assumed it got fixed along with it.

Yeah, I had #397 in my head for this. And, after a quick test this morning, stripping the tag from the file resulted in a successful upload.


Remove untestable documentation requirement

fixes #1015
See discussion:

https://github.com/publiccodenet/standard/issues/1015

Good change, and seems uncontroversial, so have gone ahead and merged this


Empty associationProperty leads to IndexOutOfBoundsException

Enhancement Description
We are using custom association resolvers in our sagas and experienced an unexpected exception when using an empty associationProperty in the annotation SagaEventHandler.
Current Behaviour
When using an associationProperty value for a non existing field, one gets usually an exception with a message containing something like "defines a property myProperty that is not defined". However, when one uses an empty value for associationProperty, the exception becomes an IndexOutOfBoundsException. As this exception is missing vital information (like the handler), it becomes rather difficult to find the origin.
Wanted Behaviour
The case of an empty associationProperty should be handled in the PayloadAssociationResolver. The exception should be similar and contain all information vital for fixing the issue.
Additional note
While writing the association resolvers, we were wondering why the associationProperty is a mandatory field in the annotation in the first place. Our own association resolvers (which are implementing AssociationResolver directly) are aware of the potential payloads and can thus work without this field. Shouldn't the requirement of associationProperty being non-null rather be one of the association resolver instead of the annotation?

Thanks (again) for drafting up an issue with us @nils-christian!
An interesting issue you have encountered here, can't say I've heard it before.
Can you help me understand whether this predicament originates from the fact you or your team members have constructed a custom AssociationResolver?
Some form of (pseudo-)code showing what you're doing would be very helpful in this case.

While writing the association resolvers, we were wondering why the associationProperty is a mandatory field in the annotation in the first place.

That's an interesting thought as well.
I'd wager though that anticipating that the AssociationResolver is aware of all the events the saga might handle is hard to deduce.
From the same point of view, it would be tough to automatically know which part of the message the AssociationResolver will use and how that works towards the property to define if any.
Although doable, I think that the default PayloadAssociationResolver, with a required associationProperty, serves as the easiest solution for users of Axon.
This makes it a cut-off between servicing a lot of people, or a couple of people.
Nonetheless, we're always open to debate on improvements.
Now to conclude, let's circle back to the sample request.
If you could provide some code on how you've reached the IndexOutOfBoundsException, that would be most helpful.

Hi @smcvb,
The issue occurs with a SagaEventHandler without association property:
@Saga
public class MySaga {

  @StartSaga
  @SagaEventHandler( associationProperty = "" )
  public void startSaga( ) {
  }

}

In a Spring Boot application this leads already to:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0

Writing associationProperty = "myProp" instead, another (more readable) exception occurs:
org.axonframework.common.AxonConfigurationException: SagaEventHandler ... defines a property myProp that is not defined on the Event it declares to handle

The reason we encountered this issue, was that our custom association resolver originally extended PayloadAssociationResolver (which runs into the StringIndexOutOfBoundsException during validating) instead of AssociationResolver.

Hi @smcvb,
I opened a pull request for the issue: #1899

Thanks for the sample there @nils-christian, that makes sense.
I agree that a StringIndexOutOfBoundsException is far from helpful if somebody missed providing a non-empty String.
I'll take a look at your PR right away.

Checked the PR, approved it, and merged it.
Thanks again for the fix here @nils-christian, the contributions you've been passing along are much appreciated!
Looking forward to hearing from you in the future.
I will close this issue as resolved since pull request #1899 added the enhancement.


Project READMEs

Each project should have a proper README including information such as:

Project abstract
How to install / use / run
Issue labelling policy (i.e. how do I find issues belonging to this project?)

Partially done (for non-Angular projects) in: https://github.com/hasadna/hasadna/commit/f2fb1560ffef166ef62274268e8dc8cab4c6d7a2


Question about translation update

Hello,
We're writing a mapping manual in PDF. During the process we've found a few UI texts that needed fixes and improvement, so we changed those on Transifex with acknowledge of the local translation team. That was 2 months ago and the manual is "a head of" the current UI.
Is there any ETA for a UI text update?
Regards,

On 3rd March version 2.19.6 was released, so if the translation was full 2 month ago it should be online by now.
Have you checked if your translations are online at the development preview site https://ideditor.netlify.app/ ?

@manfredbrandl , I've checked the https://ideditor.netlify.app/, unfortunately the new translations aren't there. And according to 2.19.6 changelog, only the lists of backgrounds and overlays were updated.

same issue:

Hungarian translation
I've checked the https://ideditor.netlify.app/ - and the current iD  ; still the old version.

now:  "Jászóvár"

expected  "Mászóka" - based on transifex ( has been changed 5 months ago )

With iD 2.20 I see updated translations after almost 1 year. Perhaps the translations went only to master branch?

id tagging moved to: https://github.com/openstreetmap/id-tagging-schema
but similar issue exists : https://github.com/openstreetmap/id-tagging-schema/issues/207


investigate for daily build.

nit fix.
make github action as pull request, push and daily build.
use a common file to avoid duplicate.

further considering as for night build, we need to update daily build action.
and keep test.yaml not changes.

@rootfs , @husky-parul I suppose for kepler and kepler operator, if our for night release as a daily build which just update latest image. or a specific image tag. we can ref this PR for changes. or I can make implementation after this PR been merged.