Command "export" is not defined.

[X] I am on the latest Poetry version.
[X] I have searched the issues of this repo and believe that this is not a duplicate.
[ ] If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

OS version and name:  macOs Sierra 10.13.6
Poetry version: Poetry 0.12.11

Issue

I would like to execute the command export but the command is not there.
When I execute poetry export -f requirements.txt the response is:
[CommandNotFound]
Command "export" is not defined.

When I execute poetry list I have:
Available commands:
  about          Short information about Poetry.
  add            Add a new dependency to pyproject.toml.
  build          Builds a package, as a tarball and a wheel by default.
  check          Checks the validity of the pyproject.toml file.
  config         Sets/Gets config options.
  develop        Installs the current project in development mode. (Deprecated)
  help           Displays help for a command
  init           Creates a basic pyproject.toml file in the current directory.
  install        Installs the project dependencies.
  list           Lists commands
  lock           Locks the project dependencies.
  new            Creates a new Python project at <path>
  publish        Publishes a package to a remote repository.
  remove         Removes a package from the project dependencies.
  run            Runs a command in the appropriate environment.
  script         Executes a script defined in pyproject.toml. (Deprecated)
  search         Searches for packages on remote repositories.
  shell          Spawns a shell within the virtual environment.
  show           Shows information about packages.
  update         Update dependencies as according to the pyproject.toml file.
  version        Bumps the version of the project.
 cache
  cache:clear    Clears poetry's cache.
 debug
  debug:info     Shows debug information.
  debug:resolve  Debugs dependency resolution.
 self
  self:update    Updates poetry to the latest version.

I have updated to tha latest version using the command self:update. The rest of the commands works perfectely.
Thanks for your help!!

It's part of the alpha releases: https://github.com/sdispater/poetry/releases/tag/1.0.0a0

thanks @jacebrowning
Do you know when is going to be released?

thanks again @jacebrowning

It's dangerous to go alone! Take this:
$ export POETRY_VERSION=1.0.0a0
$ POETRY_PREVIEW=1 curl -sSL https://raw.githubusercontent.com/sdispater/poetry/develop/get-poetry.py | python


[VS Code] default to generate jsonc job config file

Coverage remained the same at 52.845% when pulling 9e7f41cbf42a92e37220697fc83b94967f8969eb on zhouhy/default-jsonc-job-config into<PHONE_NUMBER>769948e6d4005d63b199f826b72846 on qinsu/hdfs.

Coverage remained the same at 52.845% when pulling 9e7f41cbf42a92e37220697fc83b94967f8969eb on zhouhy/default-jsonc-job-config into<PHONE_NUMBER>769948e6d4005d63b199f826b72846 on qinsu/hdfs.

#2368


Something (CPU speed?) is causing reading success to be wildly different on different machines

My laptop fails 11 reader tests in cypress, and 14 in node.
The github action testers fail 13 tests in cypress, and 11 in node.
My desktop fails 12 in each.
These are all repeatable in each environment.
There's something definitely going wrong -- this shouldn't happen.  But I don't have any idea at this time what it might be.

I was mistaken about this, they all had different test setups. oops


Document how the conda.org emails work

Checklist

[X] I added a descriptive title
[X] I searched open requests and couldn't find a duplicate

What is the idea?
We've started to use the conda.org domain for the Code of Conduct committee, but it's currently maintained by Anaconda IT. This should be documented so the Conda Organization knows how to request changes and/or additional email addresses.
Why is this needed?
This came up while reviewing https://github.com/conda-incubator/governance/pull/62.
What should happen?
No response
Additional Context
No response

What his our intended usage of these? For teams? Individuals? Both?

What his our intended usage of these? For teams? Individuals? Both?

I'm not sure, I think for now for infra type things like the CoC committee, but it's worth discussing in the steering council. Personally I could see each project team having (optionally) an email alias for example, or topical email addresses like<EMAIL_ADDRESS>to handle vulnerability reports. Whatever we decide though, it needs to be obvious how to handle the maintenance, which this ticket is mostly about.

not stale


testing: run Ingress conformance test

Ingress conformance is currently being worked on: https://github.com/kubernetes-sigs/ingress-controller-conformance
The scope here is to add conformance tests in the CI process to highlight and flag issues during development and ensure conformance to k8s specs.
Acceptance criteria

[ ] A manual conformance test run against a recent KIC version. If any test failures occur, having these documented as GitHub issues.
[ ] Each KIC PR use the tool ingress-controller-conformance run the conformance tests. If too much load, run per release.

For now I've created a PR to make the project build again: https://github.com/kubernetes-sigs/ingress-controller-conformance/pull/94

So after looking at the results (that I can post later from a full test run) it seems that KIC doesn't fully pass those.
Given that the upstream project is not actively maintained (last commits in September 2021) In that case I believe we can either:

retrofit some upstream tests that our ingress controller passes into our tests suite in this repo which will require some effort to add the boilerplate around it, and later if https://github.com/kubernetes-sigs/ingress-controller-conformance picks up steam work on making all upstream tests pass with KIC
fork the upstream project and work on test cases but then we're diverging from upstream and whole point is to have 1 set of "conformance" tests for ingress controllers

Can you enumerate which tests are not passing, and what changes would be needed to become conformant?

This is the test output that I ran against GKE 1.23 ( I ran this on ARM64 box with this patch so that the project builds and runs without errors: https://github.com/kubernetes-sigs/ingress-controller-conformance/pull/94)

...and what changes would be needed to become conformant?

As for that unfortunately I don't know at this point.
$ ./ingress-controller-conformance -ingress-class kong -wait-time-for-ingress-status 120s
Feature: Ingress class
  Ingresses can be implemented by different controllers, often with different configuration.
  Each Ingress definition could specify a class, a reference to an IngressClass resource that contains
  additional configuration including the name of the controller that should implement the class.

  https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class

  Scenario: An Ingress with an invalid ingress class should not send traffic to the matching backend service # features/ingress_class.feature:9
    Given an Ingress resource in a new random namespace                                                      # feature.go:51 -> anIngressResourceInANewRandomNamespace
      """
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: test-ingress-class
      spec:
        ingressClassName: some-invalid-class-name
        rules:
          - host: "ingress-class"
            http:
              paths:
                - path: /
                  pathType: Prefix
                  backend:
                    service:
                      name: ingress-class-prefix
                      port:
                        number: 8080
      """
    Then The Ingress status should not contain the IP address or FQDN                                        # feature.go:79 -> theIngressStatusShouldNotContainTheIPAddressOrFQDN

1 scenarios (1 passed)
2 steps (2 passed)
2m5.72046475s
Feature: Load Balancing
  An Ingress exposing a backend service with multiple replicas should use all the pods available
  The feature sessionAffinity is not configured in the backend service https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#service-v1-core

  Background:
    Given a new random namespace                                                                                # feature.go:61 -> aNewRandomNamespace
    Given an Ingress resource named "load-balancing" with this spec:                                                                   # feature.go:71 -> anIngressResourceNamedWithThisSpec
      """
      defaultBackend:
        service:
          name: echo-service
          port:
            number: 8080
      """
    Then The Ingress status shows the IP address or FQDN where it is exposed                                                           # feature.go:92 -> theIngressStatusShowsTheIPAddressOrFQDNWhereItIsExposed
    waiting for ingress status update: timed out waiting for the condition
    Then The backend deployment "echo-service" for the ingress resource is scaled to 10                                                # feature.go:137 -> theBackendDeploymentForTheIngressResourceIsScaledTo

  Scenario Outline: An Ingress with no rules should send all requests to the default backend and                                       # features/load_balancing.feature:19
    When I send 100 requests to "http://load-balancing"                                                                                # feature.go:102 -> iSendRequestsTo
    Then all the responses status-code must be 200 and the response body should contain the IP address of 10 different Kubernetes pods # feature.go:124 -> allTheResponsesStatuscodeMustBeAndTheResponseBodyShouldContainTheIPAddressOfDifferentKubernetesPods

--- Failed steps:

  Scenario Outline: An Ingress with no rules should send all requests to the default backend and # features/load_balancing.feature:19
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/load_balancing.feature:16
      Error: waiting for ingress status update: timed out waiting for the condition

1 scenarios (1 failed)
6 steps (2 passed, 1 failed, 3 skipped)
2m5.656539959s
Feature: Default backend
  An Ingress with no rules sends all traffic to the single default backend.
  The default backend is part of the Ingress resource spec field `defaultBackend`.

  If none of the hosts or paths match the HTTP request in the
  Ingress objects, the traffic is routed to your default backend.

  Background:
    Given a new random namespace                                                             # feature.go:61 -> aNewRandomNamespace
    Given an Ingress resource named "default-backend" with this spec:                        # feature.go:71 -> anIngressResourceNamedWithThisSpec
      """
      defaultBackend:
        service:
          name: echo-service
          port:
            number: 8080
      """
    Then The Ingress status shows the IP address or FQDN where it is exposed                 # feature.go:92 -> theIngressStatusShowsTheIPAddressOrFQDNWhereItIsExposed
    waiting for ingress status update: timed out waiting for the condition

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Given a new random namespace                                                             # feature.go:61 -> aNewRandomNamespace
    Given an Ingress resource named "default-backend" with this spec:                        # feature.go:71 -> anIngressResourceNamedWithThisSpec
      """
      defaultBackend:
        service:
          name: echo-service
          port:
            number: 8080
      """
    Then The Ingress status shows the IP address or FQDN where it is exposed                 # feature.go:92 -> theIngressStatusShowsTheIPAddressOrFQDNWhereItIsExposed
    When I send a "<method>" request to http://"<host>"/"<path>"                             # feature.go:102 -> iSendARequestToHttp
    Then the response status-code must be 200                                                # feature.go:106 -> theResponseStatuscodeMustBe
    And the response must be served by the "echo-service" service                            # feature.go:110 -> theResponseMustBeServedByTheService
    And the response proto must be "HTTP/1.1"                                                # feature.go:114 -> theResponseProtoMustBe
    And the response headers must contain <key> with matching <value>                        # feature.go:118 -> theResponseHeadersMustContainKeyWithMatchingValue
      | key            | value |
      | Content-Length | *     |
      | Content-Type   | *     |
      | Date           | *     |
      | Server         | *     |
    And the request method must be "<method>"                                                # feature.go:122 -> theRequestMethodMustBe
    And the request path must be "<path>"                                                    # feature.go:126 -> theRequestPathMustBe
    And the request proto must be "HTTP/1.1"                                                 # feature.go:130 -> theRequestProtoMustBe
    And the request headers must contain <key> with matching <value>                         # feature.go:134 -> theRequestHeadersMustContainKeyWithMatchingValue
      | key        | value              |
      | User-Agent | Go-http-client/1.1 |

    Examples:
      | method | host      | path     |
      | GET    | my-host   |          |
        waiting for ingress status update: timed out waiting for the condition
      | GET    | my-host   | sub-path |
        waiting for ingress status update: timed out waiting for the condition
      | POST   | some-host |          |
        waiting for ingress status update: timed out waiting for the condition
      | PUT    |           | resource |
        waiting for ingress status update: timed out waiting for the condition
      | DELETE | some-host | resource |
        waiting for ingress status update: timed out waiting for the condition
      | PATCH  | my-host   | resource |
        waiting for ingress status update: timed out waiting for the condition

--- Failed steps:

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/default_backend.feature:19
      Error: waiting for ingress status update: timed out waiting for the condition

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/default_backend.feature:19
      Error: waiting for ingress status update: timed out waiting for the condition

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/default_backend.feature:19
      Error: waiting for ingress status update: timed out waiting for the condition

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/default_backend.feature:19
      Error: waiting for ingress status update: timed out waiting for the condition

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/default_backend.feature:19
      Error: waiting for ingress status update: timed out waiting for the condition

  Scenario Outline: An Ingress with no rules should send all requests to the default backend # features/default_backend.feature:21
    Then The Ingress status shows the IP address or FQDN where it is exposed # features/default_backend.feature:19
      Error: waiting for ingress status update: timed out waiting for the condition

6 scenarios (6 failed)
72 steps (12 passed, 6 failed, 54 skipped)
12m35.103788667s
Feature: Host rules
  An Ingress may define routing rules based on the request host.

  If the HTTP request host matches one of the hosts in the
  Ingress objects, the traffic is routed to its backend service.

  Background:
    Given a new random namespace                                                                # feature.go:58 -> aNewRandomNamespace
    Given a self-signed TLS secret named "conformance-tls" for the "foo.bar.com" hostname       # feature.go:89 -> aSelfsignedTLSSecretNamedForTheHostname
    Given an Ingress resource                                                                   # feature.go:68 -> anIngressResource
      """
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: host-rules
      spec:
        tls:
          - hosts:
              - foo.bar.com
            secretName: conformance-tls
        rules:
          - host: "*.foo.com"
            http:
              paths:
                - path: /
                  pathType: Prefix
                  backend:
                    service:
                      name: wildcard-foo-com
                      port:
                        number: 8080

          - host: foo.bar.com
            http:
              paths:
                - path: /
                  pathType: Prefix
                  backend:
                    service:
                      name: foo-bar-com
                      port:
                        name: http
      """
    Then The Ingress status shows the IP address or FQDN where it is exposed                    # feature.go:101 -> theIngressStatusShowsTheIPAddressOrFQDNWhereItIsExposed

  Scenario: An Ingress with a host rule should send TLS traffic to the matching backend service # features/host_rules.feature:47
    When I send a "GET" request to "https://foo.bar.com"                                        # feature.go:112 -> iSendARequestTo
    Then the secure connection must verify the "foo.bar.com" hostname                           # feature.go:120 -> theSecureConnectionMustVerifyTheHostname
    And the response status-code must be 200                                                    # feature.go:134 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-bar-com" service                                # feature.go:138 -> theResponseMustBeServedByTheService
    And the request host must be "foo.bar.com"                                                  # feature.go:142 -> theRequestHostMustBe

  Scenario: An Ingress with a host rule should send traffic to the matching backend service # features/host_rules.feature:56
    When I send a "GET" request to "http://foo.bar.com"                                     # feature.go:112 -> iSendARequestTo
    And the response status-code must be 200                                                # feature.go:134 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-bar-com" service                            # feature.go:138 -> theResponseMustBeServedByTheService
    And the request host must be "foo.bar.com"                                              # feature.go:142 -> theRequestHostMustBe

  Scenario: An Ingress with a host rule should not route traffic when hostname does not match # features/host_rules.feature:64
    When I send a "GET" request to "http://subdomain.bar.com"                                 # feature.go:112 -> iSendARequestTo
    Then the response status-code must be 404                                                 # feature.go:134 -> theResponseStatuscodeMustBe

  Scenario: An Ingress with a wildcard host rule should send traffic to the matching backend service # features/host_rules.feature:70
    When I send a "GET" request to "http://bar.foo.com"                                              # feature.go:112 -> iSendARequestTo
    Then the response status-code must be 200                                                        # feature.go:134 -> theResponseStatuscodeMustBe
    And the response must be served by the "wildcard-foo-com" service                                # feature.go:138 -> theResponseMustBeServedByTheService
    And the request host must be "bar.foo.com"                                                       # feature.go:142 -> theRequestHostMustBe

  Scenario: An Ingress with a wildcard host rule should not route traffic matching on more than a single dns label # features/host_rules.feature:78
    When I send a "GET" request to "http://baz.bar.foo.com"                                                        # feature.go:112 -> iSendARequestTo
    Then the response status-code must be 404                                                                      # feature.go:134 -> theResponseStatuscodeMustBe
    expected status code 404 but 200 was returned

  Scenario: An Ingress with a wildcard host rule should not route traffic matching no dns label # features/host_rules.feature:84
    When I send a "GET" request to "http://foo.com"                                             # feature.go:112 -> iSendARequestTo
    Then the response status-code must be 404                                                   # feature.go:134 -> theResponseStatuscodeMustBe

--- Failed steps:

  Scenario: An Ingress with a wildcard host rule should not route traffic matching on more than a single dns label # features/host_rules.feature:78
    Then the response status-code must be 404 # features/host_rules.feature:82
      Error: expected status code 404 but 200 was returned

6 scenarios (5 passed, 1 failed)
43 steps (42 passed, 1 failed)
1m38.584221125s
Feature: Path rules
  An Ingress may define routing rules based on the request path.

  If the HTTP request path matches one of the paths in the
  Ingress objects, the traffic is routed to its backend service.

  Background:
    Given an Ingress resource in a new random namespace                                          # feature.go:55 -> anIngressResourceInANewRandomNamespace
      """
      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: path-rules
      spec:
        rules:
          - host: "exact-path-rules"
            http:
              paths:
                - path: /foo
                  pathType: Exact
                  backend:
                    service:
                      name: foo-exact
                      port:
                        number: 8080

          - host: "prefix-path-rules"
            http:
              paths:
                - path: /foo
                  pathType: Prefix
                  backend:
                    service:
                      name: foo-prefix
                      port:
                        number: 8080

                - path: /aaa/bbb
                  pathType: Prefix
                  backend:
                    service:
                      name: aaa-slash-bbb-prefix
                      port:
                        number: 8080

                - path: /aaa
                  pathType: Prefix
                  backend:
                    service:
                      name: aaa-prefix
                      port:
                        number: 8080

          - host: "mixed-path-rules"
            http:
              paths:
                - path: /foo
                  pathType: Prefix
                  backend:
                    service:
                      name: foo-prefix
                      port:
                        number: 8080

                - path: /foo
                  pathType: Exact
                  backend:
                    service:
                      name: foo-exact
                      port:
                        number: 8080

          - host: "trailing-slash-path-rules"
            http:
              paths:
                - path: /aaa/bbb/
                  pathType: Prefix
                  backend:
                    service:
                      name: aaa-slash-bbb-slash-prefix
                      port:
                        number: 8080

                - path: /foo/
                  pathType: Exact
                  backend:
                    service:
                      name: foo-slash-exact
                      port:
                        number: 8080
      """
    Then The Ingress status shows the IP address or FQDN where it is exposed                     # feature.go:83 -> theIngressStatusShowsTheIPAddressOrFQDNWhereItIsExposed

  Scenario: An Ingress with exact path rules should send traffic to the matching backend service # features/path_rules.feature:95
    When I send a "GET" request to "http://exact-path-rules/foo"                                 # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                    # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-exact" service                                   # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with exact path rules should not match requests with trailing slash # features/path_rules.feature:102
    When I send a "GET" request to "http://exact-path-rules/foo/"                          # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 404                                              # feature.go:102 -> theResponseStatuscodeMustBe

  Scenario: An Ingress with exact path rules should be case sensitive        # features/path_rules.feature:108
    When I send a "GET" request to "http://exact-path-rules/FOO"             # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 404                                # feature.go:102 -> theResponseStatuscodeMustBe

  Scenario: An Ingress with exact path rules should not match any other label # features/path_rules.feature:114
    When I send a "GET" request to "http://exact-path-rules/bar"              # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 404                                 # feature.go:102 -> theResponseStatuscodeMustBe

  Scenario: An Ingress with prefix path rules should send traffic to the matching backend service # features/path_rules.feature:120
    When I send a "GET" request to "http://prefix-path-rules/foo"                                 # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                     # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-prefix" service                                   # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with prefix path rules should ignore the request trailing slash and send traffic to the matching backend service # features/path_rules.feature:127
    When I send a "GET" request to "http://prefix-path-rules/foo/"                                                                      # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                                # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-prefix" service                                                                         # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with prefix path rules should be case sensitive       # features/path_rules.feature:134
    When I send a "GET" request to "http://prefix-path-rules/FOO"            # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 404                                # feature.go:102 -> theResponseStatuscodeMustBe

  Scenario: An Ingress with prefix path rules should match multiple labels, match the longest path, and send traffic to the matching backend service # features/path_rules.feature:140
    When I send a "GET" request to "http://prefix-path-rules/aaa/bbb"                                                                                # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                                # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "aaa-slash-bbb-prefix" service                                                                            # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with prefix path rules should match multiple labels, match the longest path, and subpaths and send traffic to the matching backend service # features/path_rules.feature:147
    When I send a "GET" request to "http://prefix-path-rules/aaa/bbb/ccc"                                                                                # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                                # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "aaa-slash-bbb-prefix" service                                                                                # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with prefix path rules should and send traffic to the matching backend service # features/path_rules.feature:154
    When I send a "GET" request to "http://prefix-path-rules/aaa/ccc"                                 # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                         # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "aaa-prefix" service                                       # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with prefix path rules should match each labels string prefix # features/path_rules.feature:161
    When I send a "GET" request to "http://prefix-path-rules/aaaccc"                 # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 404                                        # feature.go:102 -> theResponseStatuscodeMustBe

  Scenario: An Ingress with prefix path rules should ignore the request trailing slash and send traffic to the matching backend service # features/path_rules.feature:167
    When I send a "GET" request to "http://prefix-path-rules/foo/"                                                                      # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                                # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-prefix" service                                                                         # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with mixed path rules should send traffic to the matching backend service where Exact is preferred # features/path_rules.feature:174
    When I send a "GET" request to "http://mixed-path-rules/foo"                                                          # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                             # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "foo-exact" service                                                            # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with a trailing slashes in a prefix path rule should ignore the trailing slash and send traffic to the matching backend service # features/path_rules.feature:181
    When I send a "GET" request to "http://trailing-slash-path-rules/aaa/bbb"                                                                          # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                                # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "aaa-slash-bbb-slash-prefix" service                                                                        # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with a trailing slashes in a prefix path rule should ignore the trailing slash and send traffic to the matching backend service # features/path_rules.feature:188
    When I send a "GET" request to "http://trailing-slash-path-rules/aaa/bbb/"                                                                         # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 200                                                                                # feature.go:102 -> theResponseStatuscodeMustBe
    And the response must be served by the "aaa-slash-bbb-slash-prefix" service                                                                        # feature.go:106 -> theResponseMustBeServedByTheService

  Scenario: An Ingress with a trailing slashes in an exact path rule should not match requests without a trailing slash # features/path_rules.feature:195
    When I send a "GET" request to "http://trailing-slash-path-rules/foo"                                               # feature.go:94 -> iSendARequestTo
    Then the response status-code must be 404                                                                           # feature.go:102 -> theResponseStatuscodeMustBe

16 scenarios (16 passed)
74 steps (74 passed)
10m4.672818125s
--- FAIL: TestSuite (1709.74s)
    conformance_test.go:129: at least one step/scenario failed
FAIL

Given that we seem to be at the edge of a fairly sizeable time investment if we want to see this issue through to completion and the fact that you got no response in SIG Networking channel on Kubernetes slack, I suggest that we add an agenda item to the next SIG Network Sync to inquire about the state of the conformance tests and their maintainer-ship and see if the community has any insights about our predicament. From there we can probably get a better idea of how much time this is going to take overall.

After several discussions with the community the common thread appears to be that ingress conformance came too late in the game and never got the attention it deserved. As such it's not actively maintained and it would simply appear to not be worth the time to try to implement it until we're ready to invest significantly in upstream as this would possibly be required. For now I'm closing this as not having any priority at the moment, and we can re-asses later if need be.


Vulnerable locations:  com.startapp.android.publish.adsCommon.adinformation.b->onClick

hello,
i got a alert on google play they say my app wille be removed and i have to fix thi
Vulnerable locations:
com.startapp.android.publish.adsCommon.adinformation.b->onClick
thanks for help

Hello, please check your code. My plugin not contains ads. View https://github.com/StartApp-SDK/Documentation/wiki/Android-InApp-Documentation


Soundcloud 403 HTTP [Broken]

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running yt-dlp version 2021.08.10
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

yt-dlp -v https://soundcloud.com/dr00pyyy/by0nn_meat
[debug] Command-line config: ['-v', 'https://soundcloud.com/dr00pyyy/by0nn_meat']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] yt-dlp version 2021.08.10 (exe)
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.19042-SP0
[debug] exe versions: ffmpeg 2021-04-14-git-c5ca18fd1b-full_build-www.gyan.dev, ffprobe 2021-04-14-git-c5ca18fd1b-full_build-www.gyan.dev
[debug] Optional libraries: mutagen, pycryptodome, sqlite, websockets
[debug] Proxy map: {}
[debug] [soundcloud] Extracting URL: https://soundcloud.com/dr00pyyy/by0nn_meat
[soundcloud] dr00pyyy/by0nn_meat: Downloading info JSON
ERROR: Unable to download JSON metadata: HTTP Error 403: Forbidden (caused by <HTTPError 403: 'Forbidden'>); please report this issue on  https://github.com/yt-dlp/yt-dlp . Make sure you are using the latest version; see  https://github.com/yt-dlp/yt-dlp  on how to update. Be sure to call yt-dlp with the --verbose flag and include its complete output.
  File "yt_dlp\extractor\common.py", line 682, in _request_webpage
  File "yt_dlp\YoutubeDL.py", line 3190, in urlopen
  File "urllib\request.py", line 531, in open
  File "urllib\request.py", line 640, in http_response
  File "urllib\request.py", line 569, in error
  File "urllib\request.py", line 502, in _call_chain
  File "urllib\request.py", line 649, in http_error_default

Description

youtube-dl can do this without an account, I don't have go+ or anything. I know theres some things where it needs an account but I'm not sure why it should be required here.

Fixed with #696


[TableSortLabel][TypeScript] Relax IconComponent requirements in TypeScript

According to the source TableSortLabel only passes className to the IconComponent: https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/TableSortLabel/TableSortLabel.js#L82-L84
So this PR relaxes the requirement to IconComponent prop in TypeScript.

[x] I have followed (at least) the PR section of the contributing guide.

@Igorbek Thanks!


If terminal is too small, output doesn't update properly

When running nanobox deploy output can spam smaller terminals. Likely not a big deal at all.
Exaggerated example (happens with terminals 80 columns wide as well(common default width)):

Looks like wget is the same way:

closing as cosmetic non-issue

Hey @glinton I think this is still something we should look into. I'm gonna keep it open if that's ok with you?

Probably more related to this than a new issue with compiling, but when trying to debug why nanobox compile-app isn't compiling the app, nanobox panics.
To view the panic, terminal has to be <40 characters wide.
panic: runtime error: slice bounds out of range

goroutine 51 [running]:
panic(0x936ca0, 0xc420014150)
	/home/travis/.gimme/versions/go1.7.3.linux.amd64/src/runtime/panic.go:500 +0x1a1
github.com/nanobox-io/nanobox/util/display.(*Summarizer).handleLog(0xc420096300, 0xc420318c40, 0x35)
	/home/travis/gopath/src/github.com/nanobox-io/nanobox/util/display/summary.go:225 +0x1de
github.com/nanobox-io/nanobox/util/display.(*Summarizer).run(0xc420096300)
	/home/travis/gopath/src/github.com/nanobox-io/nanobox/util/display/summary.go:146 +0x18f
created by github.com/nanobox-io/nanobox/util/display.(*Summarizer).Start
	/home/travis/gopath/src/github.com/nanobox-io/nanobox/util/display/summary.go:68 +0x3f

Ubuntu 16.10
Nanobox version 0.9.0 ()


Extend scope of narrowed consts

This is a suggestion to lift a limitation of the current flow analysis.
Consider this, with strict null checks:
function f() {
  let name: string | null = frob();
  if (!name) return;
  bar(() => name.length);  // Error possibly null name
}

TS does not propagate type guards accross function captures.
Rightly so because we don't know when the lambda will actually be called. It can be called much later and at that point name might be null again. E.g. if right after bar(...) we have name = null.
Now, consider this variation:
function f() {
  const name: string | null = frob();
  if (!name) return;
  bar(() => name.length);  // Error possibly null name
}

I suggest that because name is declared with const, it can't change. So if at the point of capture it has a not null type guard, then it is correct to propagate this information inside the lambda.
:point_right:  The second example can compile without error.

This is already not an error in master.

Cool thanks! I'm on the nightly at home but this happened at work and we're still on 2.0.0.

Sorry it seems my short repro was not good enough.
After testing the code above works even on 2.0.0, but try this instead:
function f() {
  const x: string | null = frob();
  if (!x)
    return {
      bar() { return x.length; }  // Error: possibly null x
    };
}

Not sure what the difference is here... Method in object literals are considered differently than plain lambdas?

That error is correct because you tested for !x

function f() {
  const x: string | null = <any>{};
  if (x !== null) {
    return {
      bar() { return x.length; }  // Error: possibly null x
    };
  }
}

Currently we only extend const type guards to nested function expressions and arrow functions, but we ought to also include methods in object literals and class expressions. Until we have a fix, the easy workaround for object literals is to just use regular properties and function expressions. For example, this works:
function f() {
  const x: string | null = <any>{};
  if (x !== null) {
    return {
      bar: function() { return x.length; }  // Ok
    };
  }
}


DataGridView Default Error Dialog

When I navigate through incompatible files or options, I encounter this error, and the only way to resolve it is to completely uninstall and reinstall the plugin. Even after acknowledging the error by clicking 'OK,' it continues to persist, making the plugin unusable.

please provide logs and steps to reproduce the error.
This issue was presumed resolved by having at least one category (as reported in #49 ), but I'll need your steps and logs to figure out if it's a separate issue.

Hello I have the same problem this error is displayed in a loop and it is impossible to create a category before or even after adding a sound.
-I install the plugin, go to configure it or even add a sound.
-The error occurs repeatedly when I go to the audio files page and add a sound.
-It's also impossible to use the category page, which looks like it's been cropped and if I try to add categories I can only give them a name.
The error doesn't seem to be present in the logs even when I install the plugins or reproduce the error afterwards.

I am French, sorry there are some French words in the logs.
2024-10-30.log

me too T_T

you have to configure the plugin. Then you have to create a catergory first before adding sounds


Feature/vs 15 implement druid ip address filter extension

I would call it druid-ip-rane-filter as druid-filtering-ext doesn't seem right This extension also should be added to the release workflow

About name, I was thinking that we can add multiple filter here so named it like it. If it doesn't make much sense we can rename it

About name, I was thinking that we can add multiple filter here so named it like it. If it doesn't make much sense we can rename it
IDK whether we gonna add some new filters, but in this case we will be able to reorganize this. Cuz we can end up keeping it abstract for no reason.

BTW, should this extension be public?

About name, I was thinking that we can add multiple filter here so named it like it. If it doesn't make much sense we can rename it

IDK whether we gonna add some new filters, but in this case we will be able to reorganize this. Cuz we can end up keeping it abstract for no reason.
BTW, should this extension be public?

No I dont think so it will be public.
Also I renamed it as suggested.

No I dont think so it will be public. Also I renamed it as suggested.

Current repo is a public one, if it should be private, than it should be moved to a separate repo


can get user infor. plz help

tiktok updated the countries that are not allowed to access. So I could not get user information. Can you help me?

I can't help you as tiktok is ban in India
On Sat, Jul 18, 2020, 5:51 PM thanhnguyen1121<EMAIL_ADDRESS>wrote:

tiktok updated the countries that are not allowed to access. So I could
not get user information. Can you help me?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/imsurajsharma/TikTok-API-Python/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGPGLVQKNFKUKATPVLYI6Z3R4GHVTANCNFSM4O727YGQ
.

I'm in Vietnam and I can't access tiktok either!

Also, I don't have time for this. Sorry
On Sat, Jul 18, 2020, 8:12 PM thanhnguyen1121<EMAIL_ADDRESS>wrote:

I'm in Vietnam and I can't access tiktok either!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/imsurajsharma/TikTok-API-Python/issues/1#issuecomment-660493265,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGPGLVSLBVBQ62HTOX6KBLDR4GYFFANCNFSM4O727YGQ
.

I will try to find a solution. If possible I will update the code here. ^_^

Sure...i will. Thanks
On Sat, Jul 18, 2020, 8:30 PM thanhnguyen1121<EMAIL_ADDRESS>wrote:

I will try to find a solution. If possible I will update the code here. ^_^
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/imsurajsharma/TikTok-API-Python/issues/1#issuecomment-660495628,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGPGLVU4BU5WGQLYG2VJHRTR4G2HJANCNFSM4O727YGQ
.


/cluster API response status 400

For a Kong 0.6.1 cluster running with two members in a Private Space, at some point the /cluster admin API starts returning HTTP 400.

Other admin & proxy APIs continue to function correctly.
Restarting the app heroku restart does not restore functionality.

The following is logged. Unsure if correlated, but I've rarely seen this mutex error until now.
app[web.2]: 2016/03/01 02:37:16 [error] 98#0: [lua] cluster.lua:40: Cassandra error: Could not create lock for prepare request: Error locking mutex: timeout, context: ngx.timer
app[web.1]: 2016/03/01 02:37:16 [error] 98#0: [lua] cluster.lua:40: Cassandra error: Could not create lock for prepare request: Error locking mutex: timeout, context: ngx.timer

May be related to #6

That same cluster appears healthy when checked via kong CLI:
~ $ kong cluster members -c $KONG_CONF
[INFO] Using configuration: /app/config/kong.yml
dyno-64714c8b-3f9f-417c-8007-d3c998070a9b_<IP_ADDRESS>:7946   <IP_ADDRESS>:7946   alive
dyno-967fef17-e4b4-4de5-b253-3575960fe701_<IP_ADDRESS>:7946   <IP_ADDRESS>:7946   alive
dyno-da5dab93-30c2-4a11-ab22-7f1c7ee165c2_<IP_ADDRESS>:7946  <IP_ADDRESS>:7946  alive

~ $ kong cluster reachability -c $KONG_CONF
[INFO] Using configuration: /app/config/kong.yml
Total members: 3, live members: 3
Starting reachability test...
Successfully contacted all live nodes

Also worth noting: a single-node Kong 0.6.1 responds status 200 as expected.

Solved the problem: I was sending an empty JSON object in the body of my /cluster API requests, which caused the status 400 response. Sending an empty body results in successful responses.


Expose decision on what to do on keep-alive timeout to the application level

Follow the specification Handling the Unexpected point 1 and allow the application to decide what to do if the keepalive timeout is exceeded.

exposed as on_keepalive_timeout on handler class


Windows Broken

Windows appears to be broken in a couple of different ways:

Cygwin just did an update which causes more of the GSL code to complain during compilation. We actually contributed strnlen functionality to the GSL specifically for cygwin and it appears that we will need to do the same thing for wcsnlen
Somehow the IOCTL for write got reversed in our Clang Tidy PR, and as a result, BFM it unable to provide the driver with module information, resulting in BFM failing to load the hypervisor. This is a simple fix that hopefully will not happen again
The TLS work appears to be killing Windows (BSOD). This doesn't seem to happen as much on real hardware, which allowed this to sneak though during testing as it's a race condition. Specifically, the us of FS seems to make Windows very mad if an interrupt fires while the hypervisor is being loaded. We are investigating different approaches to solve this which include: don't use FS, which would break support for thread_storage in the future, or disable interrupts while loading the hypervisor which might be the better approach (if it works).

In either case, we hope to have Windows support fixed in the very near future.

I tried disabling interrupts and that didn't help, which is similar to a Linux bug I saw a long time ago, so for now we will have to continue to support interrupts while we launch the VMM.
So... that means that we cannot touch GS or FS while we load, which is pretty annoying. The Exit Handler can use GS/FS without issue, just not the loader. I will try to draft up a proposal on how I would like to fix the issue today as I believe the TLS implementation is a little buggy how it's implemented today anyways, so I think a new design is in order.
This all being said, Windows is broken until we get this fixed so I will try to clean this up as fast as possible.

Looks like it's not just Windows. Picking up Bareflank again, I frequently get a kernel panic while executing pieces of the loader:
#make load
<snip>
[  328.419691] [bareflank]: IOCTL_ADD_MODULE_LENGTH: succeeded
[  328.419705] [bareflank]: common_add_module [4]: #intrinsics.so
[  328.419706] [bareflank]:     addr = ffffc900036b9000
[  328.419707] [bareflank]:     size =<PHONE_NUMBER>006008
[  328.419707] [bareflank]: IOCTL_ADD_MODULE: succeeded
<snip>
#make start
[  328.858407] BUG: unable to handle kernel paging request at 00007fb969151600
[  328.858510] IP: [<ffffc900036bcea4>] 0xffffc900036bcea4
[  328.858536] PGD 6d9c1067 PUD 67c2d067 PMD 790c8067 PTE 800000006b961067
[  328.858566] Oops: 0001 [#1] PREEMPT SMP
[  328.858587] Modules linked in: bareflank(O) xfrm_user xfrm_algo xt_addrtype br_netfilter xt_CHECKSUM iptable_mangle ipt_MASQUERADE dm_thin_pool nf_nat_masquerade_ipv4 dm_persistent_data dm_bio_prison iptable_nat nf_nat_ipv4 dm_bufio nf_nat libcrc32c crc32c_generic nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack loop ipt_REJECT nf_reject_ipv4 dm_mod xt_tcpudp tun bridge stp llc ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter cfg80211 fuse vmw_vsock_vmci_transport vsock uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ttm aesni_intel drm_kms_helper snd_ens1371 snd_ac97_codec aes_x86_64 lrw gf128mul drm joydev glue_helper ablk_helper cryptd
[  328.858917]  ppdev videodev intel_rapl_perf ac97_bus vmw_balloon gameport psmouse snd_rawmidi snd_seq_device btusb btrtl input_leds snd_pcm btbcm btintel led_class bluetooth pcspkr evdev mousedev media mac_hid rfkill syscopyarea snd_timer e1000 i2c_piix4 sysfillrect snd soundcore sysimgblt fb_sys_fops vmw_vmci intel_agp intel_gtt shpchp nfit battery parport_pc parport fjes acpi_cpufreq tpm_tis tpm ac button sch_fq_codel ip_tables x_tables ext4 crc16 jbd2 mbcache hid_generic usbhid hid sd_mod sr_mod cdrom ata_generic pata_acpi uhci_hcd mptspi scsi_transport_spi ehci_pci ata_piix ehci_hcd libata mptscsih serio_raw atkbd usbcore libps2 scsi_mod usb_common mptbase i8042 serio
[  328.859220] CPU: 1 PID: 3999 Comm: bfm Tainted: G           O    4.7.4-1-ARCH #1
[  328.859257] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/02/2015
[  328.860037] task: ffff88006daab900 ti: ffff880079774000 task.ti: ffff880079774000
[  328.860804] RIP: 0010:[<ffffc900036bcea4>]  [<ffffc900036bcea4>] 0xffffc900036bcea4
[  328.861580] RSP: 0018:ffffc90003890bc0  EFLAGS: 00010293
[  328.861974] RAX:<PHONE_NUMBER>000000 RBX:<PHONE_NUMBER>000000 RCX:<PHONE_NUMBER>000001
[  328.862369] RDX: ffffc9000377e730 RSI: ffffc90003a69894 RDI:<PHONE_NUMBER>000000
[  328.862759] RBP: ffffc90003890be8 R08:<PHONE_NUMBER>000535 R09: ffffffffa08253a7
[  328.863144] R10:<PHONE_NUMBER>00006d R11: ffff8800787b1200 R12: 00007fb969151600
[  328.863525] R13: ffffc900036805ed R14:<PHONE_NUMBER>000001 R15:<PHONE_NUMBER>000000
[  328.863902] FS:  00007fb969151600(0000) GS:ffff88007b640000(0000) knlGS:0000000000000000
[  328.864634] CS:  0010 DS: 0000 ES: 0000 CR0:<PHONE_NUMBER>050033
[  328.865002] CR2: 00007fb969151600 CR3:<PHONE_NUMBER>e91000 CR4:<PHONE_NUMBER>3406e0
[  328.865548] Stack:
[  328.866047]  ffffc90003a8c899 ffffc90004427088<PHONE_NUMBER>000000 ffffc90003a69894
[  328.866783]  ffffc90003ac62f0 ffffc90003890bf8 ffffc90003a69981 ffffc90003890c18
[  328.867503]  ffffc90003a0e34b ffffc900044270b0 ffffc900044270b0 ffffc90003890c28
[  328.868220] Call Trace:
[  328.868566]  <UNK>
[  328.868572] Code:
[  328.869416] c3 0f 01 0f c3 0f 01 1f c3 66 89 fa 66 89 f0 ee c3 66 89 fa 66 89 f0 66 ef c3 48 31 c0 66 89 fa ec c3 48 31 c0 66 89 fa 66 ed c3 <64> 48 8b 04 25 00 00 00 00 48 83 c0 08 c3 66 2e 0f 1f 84 00 00
[  328.870543] RIP  [<ffffc900036bcea4>] 0xffffc900036bcea4
[  328.870881]  RSP <ffffc90003890bc0>
[  328.871208] CR2: 00007fb969151600
[  328.871526] ---[ end trace 9dcdb5a3a5642763 ]---

Note the CR2 and FS values, which are a pretty dead giveaway that someone's trying to read the TLS base pointer from [fs:0x0].  Sure enough,  RIP points to the following line in intrinsics_x64:
; uint64_t __tls_base(void)
__tls_base:
>   mov rax, [fs:0x0]
    add rax, 0x8
    ret

Given FS points to a userland address, I'd say it looks like Linux is getting just as mad as Windows. :(

Yeah, while loading we cannot touch FS or GS, but the exit handler needs these. I am currently working on an RFC on how to handle this better. The other problem with the way this works now is the memory being used for TLS is different during loading from the exit handler, and thus there is a consistency problem that I'm surprised has not blown up. Both issues need to be addressed.

@brendank310, @ktemkin, @josephsharkey
I think I have a good solution to this issue, but I would like some input. Basically, to get thread local storage (TLS) to work (which is needed by the libc++), we need a way to identify a block of memory, VERY quickly, per CPU. The way the kernel does this is it stores a pointer to the block in FS or GS (for the kernel it might be GS), but either way, clearly both Linux and Windows are using FS and GS for something which is why this issue exists.
So this means we cannot use FS or GS to identify where this memory is for each CPU, at least not while we are loading the VMM. The VMM exit handler can use these just fine, but there is a discontinuity that we must resolve (whatever we use for loading must also be used by the exit handler).
So... I think a good solution is to use RDTSCP. This is a very fast instruction, and it returns an OS defined proc ID. On Linux, this ID matches the core number, and I am willing to bet it's the same on Windows. So, if I dump out this ID, I see 0, 1, 2, etc....
So, my idea is pretty simple. The common.c in the driver can get the total number of CPUs (it already does this), and pre-calc a block of memory for each CPU for the TLS storage, as one big array. It would then call into our C++ code to tell the pthread library where the TLS block is. When libc++ calls into the pthread library to get/set something in the TLS data, we call RDTSCP to get the index into this block of memory, and we are done. All we would need to do is make sure that we leave these indexes the same for the VMM, which makes sense anyways, and we should have a simple way of getting this data very fast. We can also have a sane way of checking this in the driver just to make sure the index is not out of bounds.
The only downside is the CPU would need to support RDTSCP, which is not a problem since we require the TRUE based controls, and I'm pretty sure any CPU that supports these, also supports RDTSCP.
Thoughts? What is the equivalent on ARM?

FYI, I tested on Windows, and it is doing the same thing as Linux, (i.e. 0, 1, 2, etc...)

That makes sense to me.
Can't you also use the x2APIC ID as the core number? You get get that via CPUID (eax val 0x0B).
ARM is a little more complicated (no surprise!). There is a CPU register MPIDR_EL1 that contains this info. But it gives somewhat sparse values - i.e. you might get core numbers 0,1,2,3,8,9,10,11 on a CPU with 4 big cores and 4 little cores since they are essentially arranged into clusters and they have a field for cluster number, then a core number within the cluster. The linux kernel takes the value of this register and translates it into logical CPU numbers; but the translation is based on #defines at compile time that know the # of cores for each cluster for your SoC....

We can use the APIC, but CPUID is pretty slow compared to RDTSCP, and this will get called potentially a lot in the exit handler (on_success, on_failure need TLS to work), so I'd rather use RDTSCP if possible. It is a fencing instruction, but not as bad as CPUID which completely serializes the pipeline.
The other issue with CPUID is it has the same issue you just described with ARM, in that you will likely get non-contiguous indexes. Unlike ARM, I don't know of anyway to calculate the logical ID. So long as you guys think that there is at least a way to calc a logical address on ARM we should be good. @ktemkin

These ideas seem like they'd work-- but I strongly suspect we can do this more efficiently by imitating the way the Linux kernel stored its thread context in pre-2.4 kernels:
http://lxr.free-electrons.com/source/include/asm-i386/current.h?v=2.2.26
This model is relatively straightforward. When each thread is created, it is allocated a small stack whose address is aligned to the stack size. Thread stacks are always sized to a binary number; this enables us to locate the first entry on the stack given the stack pointer, no matter how much data is on the stack.
For example, if we had a 64K stack that occupies virtual addresses 0xABCD0000-0xABCDFFFF, we can always find the end of the first entry by OR'ing with 0xFFFF.
If we follow this model, we can allocate an easily-located block of thread-specific storage by carving out a block of memory immediately following stack allocation-- before we call the entry point for the given thread. As this is the first element on the per-thread stack, we can always find this block with just some pointer arithmetic:
// Assuming a 64K stack and a TLS_SIZE storage area:
tls_base = (tls_block_type *)((stack_pointer | 0xFFFF) - (TLS_SIZE - 1))

// For example, we might have a 64K stack that grows from 0xABCDFFFF, and a TLS storage block from 0xABCDFF00-0xABCDFFFFF.
// If at runtime, the current SP was 0xABCD1234, our math would be
tls_base = (stack_pointer | stack_mask) - (tls_size + 1)
tls_base = (0xABCD1234 | 0xFFFF) - (255)
tls_base = 0xABCDFF00

// Or, equivalently:
tls_base = (0xABCD1234 | 0xFFFF) & 0xFFFFFF00
tls_base = 0xABCDFF00

This should be fairly platform-agnostic, and much easier on the CPU.

@ktemkin I like this approach a lot better as it removes the fence that RDTSCP has, and it will work fine on Intel and ARM.
Any objections to using this approach? It will require a larger mod as I will have to do some work to clean up the stacks that are used, but in general I think this is much better.
In general... the way I will approach this is, at any point in time, you should be able to get the bottom of the stack by masking your SP. This can be used for setting up the VMCS, and syncing the TLS data structures between loading and the exit handler, something we are not doing at the moment (its amazing that did crash).

@ktemkin, @brendank310
Couple of notes:
I am using 32k stacks, which is more inline with what Windows does in Windows 10. I feel the larger stack is useful since RAII does take up stack space. The stack allocation algorithm is as follows:
g_stack = platform_alloc_rw(STACK_SIZE * 2);
if (g_stack == 0)
    return BF_ERROR_OUT_OF_MEMORY;

g_stack_loc = (uint64_t)g_stack + (STACK_SIZE * 2);
g_stack_loc = g_stack_loc - 1;
g_stack_loc = g_stack_loc & (STACK_SIZE - 1);

I have to subtract 1 first to ensure we are within the bounds of the stack (0 offset problem), and then I can mask to ensure we have an aligned stack to perform the above trick. The STACK_SIZE * 2 is to ensure there is enough space once the mask operation occurs. Let me know if I am missing anything here (my brain is still pretty foggy).
In general, this means that we will need to alloc 64k per CPU, plus 64k for startup, with only 32k being usable per CPU.
Also.. the TLS block needs to be in it's own memory and not on the stack. Instead the stack needs to point to the TLS block. The reason for this is the startup code and the exit handler need their own stack, but have to point to the same TLS data. So, I plan to reserve 32 bytes for pointers (4x 64bit pointers) and each TLS block will be 4K (which means that we really need 68k per CPU).
Finally, the pthread logic will need to be updated to use atomic operations for key allocation, as right now there is the potential for a race that could cause god to get mad and end all life as we know it 😄 .

platform_alloc_rw(STACK_SIZE * 2);

Nitpick: this could probably be platform_alloc_rw((STACK_SIZE * 2) -  1);, as the worst-case is that you're assigned an address one byte after an aligned address-- in which case, you need to waste STACK_SIZE - 1 bytes. (I'm sure this essentially makes no functional difference; so this is just a question of aesthestics and possibly clarity.)
g_stack_loc = (uint64_t)g_stack + (STACK_SIZE * 2);
g_stack_loc = g_stack_loc - 1;
g_stack_loc = g_stack_loc & (STACK_SIZE - 1);

This doesn't look quite right:

Looks like you're missing a bitwise-inverse, here. This will clear out all bits except the least significant; when I suspect you mean the opposite.
The alignment math isn't quite right here, either. You want to move to the next alignment boundary by adding one less than the alignment size-- which increments the high bits only if we're not already aligned-- and then masking off the low bits, like so:

g_stack_loc = (uint64_t)g_stack + (STACK_SIZE - 1)
g_stack_loc = g_stack_loc & ~(STACK_SIZE - 1);

You're adding too much, and thus have the danger of moving past the desired aligned block and into the partial block afterwards.  I debated sending another post, or just updating the original, and did the later, so if you look at it, I added the ~.
The math above is trying to locate the top of the stack. Since a push subtracts, we need to find the top, and work our way to the bottom, with the TLS data sitting right at the top, and the actual stack sitting 32 bytes below that. So at least... this is what I have in my head (assume STACK_SIZE=0x4000 for this example):

------------ 0x9050 <-- top of stack
|          |
|   ---    | 0x7FFF <-- top of stack & ~(STACK_SIZE - 1) - 1.
|          |            This is what we give RSP
|          |
|          |
|   ---    | 0x4020 <-- bottom of stack + reserved space.
|          |            TLS, Core #, magic #, etc... go here
|   ---    | 0x4000 <-- bottom of stack. The rest is wasted
|          |
|          |
|          |
|          |
------------ 0x1050 <-- returned by platform_alloc_rw(STACK_SIZE * 2)

So long as RSP (in this example) is between 0x4000 <-> 0x7FFF, we always get 0x4000 when we & ~(STACK_SIZE -1). So I did forget a -1 at the end, and since we mask, I can just move the existing one to this:
g_stack_loc = (uint64_t)g_stack + (STACK_SIZE * 2);
g_stack_loc = g_stack_loc & ~(STACK_SIZE - 1) - 1;

Thoughts?

Oops-- I misinterpreted what you were trying to calculate, and assumed you were trying to find the an aligned location to put the stack (and thus it's lowest address), rather than the base.
Nonetheless, the mistake I was pointing out still remains:
// This just adds values to the more-significant bits;
//it doesn't actually affect alignment.
g_stack_loc = (uint64_t)g_stack + (STACK_SIZE * 2);

// What you want is something that will 'add one' to the
//more-significant bits iff the given address isn't already aligned:
g_stack_loc = (uint64_t)g_stack + ((STACK_SIZE * 2) -1);

Without that correction, your code fails if you pass it an aligned address. For example, if we have a STACK_SIZE of  32K, then we'd expect that g_stack = 0x abcd0000 to produce a 32K aligned stack starting at 0xabcd0000 and with a bottom of 0xabcd7fff. In this case, nothing should change; we're already aligned.
There's also a typo-ish issue: & has super-low precedence, so you'll want to parenthesize (g_stack_loc & ~(STACK_SIZE -1)) - 1.
With those corrections, this becomes:
g_stack_loc = (uint64_t)g_stack + (STACK_SIZE * 2 - 1);
g_stack_loc = (g_stack_loc & ~(STACK_SIZE - 1)) - 1;

I find this a little hard to read; I might prefer this as:

// Find an aligned address for the top of our stack.
g_stack_top = (uint64_t)g_stack + (STACK_SIZE - 1);
g_stack_top &= ~(STACK_SIZE -1);

// Locate the bottom of our stack:
g_stack_bottom = g_stack_top + (STACK_SIZE - 1);

// [OR] Locate a structure of type struct_blah stored at the bottom of the stack:
g_my_struct = g_stack_top + (STACK_SIZE - sizeof(struct_blah));

Also, just for reference, here's the crappy python I was using to sanity-check myself as I looked over your math:
STACK_SIZE = 1024 * 32

def align(stack_loc):
#    bottom = stack_loc + (STACK_SIZE * 2 - 1);
#    bottom = (bottom & ~(STACK_SIZE - 1)) - 1;
    top = stack_loc + (STACK_SIZE - 1)
    top = top & ~(STACK_SIZE - 1)
    bottom = top + (STACK_SIZE  - 16)
    return bottom

def assert_equal(a, b, prefix):
    if a != b:
        print(prefix)
        print("    expected {}, got {}".format(hex(b), hex(a)))

for i in range(0xABCD0000, 0xABCDFFFF):
    aligned = align(i)
    prefix = "{} => {}".format(hex(i), hex(aligned))

    if i == 0xABCD0000:
        assert_equal(aligned, 0xABCD7fff, prefix)
    elif (i > 0xABCD0000) and (i <= 0xABCD8000):
        assert_equal(aligned, 0xABCDffff, prefix)
    elif (i > 0xABCD8000) and (i <= 0xABCDffff):
        assert_equal(aligned, 0xABCE7fff, prefix)
    else:
        print("coding error")

Yeah, I agree the - 1 should be there. The compiler found the missing parenthesize so that has also been fixed.
I don't agree with g_my_struct, as that really should be (since the struct is at the bottom):
g_my_struct = (my_struct *) g_stack_bottom;

Ok talking with Kyle privately I think we are on the same page, so this is what we came up with. Short story is, we decided to move the struct to the top of the stack. It adds an additional addition to the calculation of the struct's location (thats a lot of adds in a single sentence 😄 ), but it prevents the struct from becoming corrupt in case an overrun occurs, and allows the extra space to be used if it's need. So here is the math:
------------ 0x9050 <-- top of stack (0x1050 + STACK_SIZE)
|          |
|   ---    | 0x7FFF <-- actual top stack = top of stack & ~(STACK_SIZE - 1) - 1
|          |            TLS, Core #, magic #, etc... go here
|   ---    | 0x7FCD <-- RSP = actual top stack - 32
|          |
|          |
|          |
|   ---    | 0x4000 <-- bottom of stack
|          |
|          | Extra space can be used on overrun
|          |
------------ 0x1050 <-- returned by platform_alloc_rw(STACK_SIZE * 2)

To get the location of the struct you do the following:
bottom_of_stack = RSP & ~(STACK_SIZE - 1)
top_of_stack = bottom_of_stack + STACK_SIZE - 1
struct_loc = top_of_stack - 32

Obviously the code will be written with a sizeof(struct) and I will fill in the struct with 4 64bit unsigned ints with:

0 -> CPU core # (should be the same thing you see in RDTSCP)
1 -> TLS pointer
2 -> reserved
3 -> reserved

Thoughts?

Fixed


Adding support for flowise as an AI provider

Modified command/config.ts to support OCO_FLOWISE_ENDPOINT and OCO_FLOWISE_API_KEY.
Added a class FlowiseAi that implements AiEngine
Modified utils/engine.ts to take into account the provider being flowise
Closes (#373)

hi @JMN09, thanks for your contribution!
i see the branch has conflicts, could you change the base branch to master please?

Hello @di-sukharev, hope you're doing well
I merged from master, do you still see any conflicts ?

i see this

Hey again,
I fixed the merge conflicts, there shouldn't be any merge issues anymore, please confirm.

thank you for your contribution, it will be released with with a new build


Module: twoslash integration with external types

I'm trying to add twoslash to code examples for my blog, some of them has dependency to 3rd party modules. Here's an example:

```ts twoslash
import React from 'react'

const Context = React.createContext('')
```

When passing the code through twoslash by calling twoslasher(code, 'ts') I got
Expected:
// @errors: 2307

  [2307] - Cannot find module 'react'.

One thing that I've tried was using fsMap by including @types/react/index.d.ts in the fsMap
const fsMap = new Map<string, string>();
const reactDts = fs.readFileSync(require.resolve('@types/react/index.d.ts'), 'utf-8')
fsMap.set('react', reactDts)
const results = twoslasher(code, 'ts', undefined, undefined, undefined, fsMap)

I've confirmed that reactDts includes type definition of react.
Additional context

twoslash: v0.3.0
typescript: v3.8.3
Not using gatsby or gatsby-remark-shiki-twoslash.

Improvement Idea:
When run in node environment, automatically include all @types from node_modules.
Why:
I think most people would assume that twoslash should behave similarly with tsc where it automatically includes external types from node_modules
Alternative ideas:
Provide a way to include list of @types/* dependency when running twoslash

It's possible that I implement this the wrong way, so any pointer is appreciated.

This needs to be solved at gatsby-remark-shiki-twoslash level - twoslash shouldn't have side-effects like automatically acquiring types. I validated that twoslash would work fine if the types were in the map with this test
gatsby-remark-shiki-twoslashimport { twoslasher } from "../src/index"
import { createDefaultMapFromNodeModules } from "@typescript/vfs"

const dt = `
declare namespace G {
      function hasMagic(pattern: string, options?: IOptions): boolean;
}
export = G;
`

it("works with a dependency in @types for the project", () => {
  const fsMap = createDefaultMapFromNodeModules({})
<EMAIL_ADDRESS>dt)

  const file = `
import glob from "glob"
glob.hasMagic("OK")
//   ^?
  `
  const result = twoslasher(file, "ts", undefined, undefined, undefined, fsMap)
  expect(result.errors).toEqual([])
  expect(result.queries[0].text.includes("hasMagic")).toBeTruthy()
})

What I think needs to happen is that in gatsby-remark-shiki-twoslash - it looks to see if your module has "import" in the code - if it does, then it fills the fsMap with the project's node_modules/@types/ dependencies.
Ideally the types dependencies gets set as a singleton so we only do the fs work once, and then subsequent parses of code with imports don't get that hit

I think createDefaultMapFromNodeModules should probably get renamed too - it only get lib DTS files, and that name would definitely be confusing.

 It works now! Thank you so much!
Do you think we should update the README in either ts-twoslasher or typescript-vfs to add how to include dts from @types/* dependency? I can help creating a PR for this

Hah, it happens!
I think it makes sense to have a note in ts-twoslash - and I also think there should probably be a function in typescript-vfs which sets up a map with the lib files and all the @types modules too


Feature Addition to Momentum Calculator

Hi @SarthakKeshari, if possible I would like to expand on the Momentum Calculator I made in issue #531. To solve for Momentum in that calculator, the mass is measured in kilograms, and the velocity in meters per second. However, mass can also be measured in grams, pounds and ounces. Velocity can be measured in inches per second, centimeters per second, and more.
If approved, I would like to allow the user to find momentum using different measurements for velocity and mass, this will be done by using a combo box menu which will allow the user to select the measurements they want to use.

@Pasqua101,
Glad that you wish to enhance the Momentum Calculator.

Hey @Pasqua101,
Assigned.
You may contribute your code under the folder path -
calc_for_everything\calculators\src\physics\momentumCalc
Issue completion deadline - 1st Dec 11:00:00 am IST
NOTE - In case the issue completion deadline is not met, the issue will be assigned to a new contributor


Upload image to Docker Hub

Do you plan to upload the image to docker hub? Currently I can only see https://hub.docker.com/r/mattermost/platform/ which does not support version 3.0.

@it33 Would you update the image?

+1 - Would love to see 3.0 on docker hub. Having a bit of challenges setting up mattermail plugin which is optimized for 3.0.

We should, @StianOvrevage would you join us on https://pre-release.mattermost.com/core in the Developers channel? Please just post there and we can figure out how to get this done. Thanks so much for creating mattermail, would love to have you in discussions with the core team,

@it33, I have a fork that published to dockerhub. Basically you will need to create one dockerhub repo for each component in this repo and point each dockerhub repo to different dockerfiles. so you will have mattermost/app, mattermost/db, etc, on dockerhub.
+1 for this so that I can get rid of my fork.

Credit for mattermail should go to @rodrigocorsi2 and not me! But I'll join you in the dev channel anyhow :)

It would be great to see this get submitted as a official image to dockerhub. Not sure what is involved but would make it simple to get started and up to date.

Sorry for late reply, @crspeller was working on this and he's away for the holiday weekend in Canada, @xcompass, is there a PR you can do to help prepare this repo to get pushed to Docker Hub? I'm not familiar with setup. @npcode, wondering if you have any thoughts?

@it33 I completely agree with uploading the images in this repository to dockerhub. It would be nice if I can help it.

@it33 you have all the code you need. No need to change the code or any PR. You just need to do the setup in docker hub. Creates three automated builds, one for app, one for db and one for web. In each build, change dockerfile location to the correct path,e.g. for app, it should be /app

Then you will have three automated build images. That's it.

@xcompass @it33 Additionally we can send a PR to https://github.com/docker-library/official-images to make them official images which can be found in https://hub.docker.com/explore/.

Good idea!

Thanks @npcode, @xcompass when @crspeller is back he can review and approve the ideas. Sorry for the delay, our monitoring systems in Mattermost work on /platform but we don't have them setup for /mattermost-docker yet. @esethna is back this week and we can ask his help to connect up all the Mattermost projects outside of /platform.
Please do feel free to join our Developers channel on our Mattermost instance if you'd like to be more involved in the community.

As I can see, you already have a docker repository for mattermost: https://hub.docker.com/r/mattermost/platform/~/dockerfile/.
Looking at the Dockerfile, it seems like the change would be really trivial. Assuming that the location of the mattermost.tar.gz file on s3 has not changed, perhaps you would just have to rebuild the docker image and push it as version 3.0?

I have redone the old preview image. It now lives here: https://hub.docker.com/r/mattermost/mattermost-preview/
With a new single line install:
docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview

For this production image I have created three automated builds:
https://hub.docker.com/r/mattermost/mattermost-prod-app/
https://hub.docker.com/r/mattermost/mattermost-prod-db/
https://hub.docker.com/r/mattermost/mattermost-prod-web/
However the web autobuild fails with
Build failed: lstat cert/cert.pem: no such file or directory

@npcode Can we have your help fixing the web image then performing any necessary updates to pull the images from these locations.
Thanks!

@crspeller To fix the problem, we should not try to copy cert files into web container. I'll modify the Dockerfile and docker-compose.yml to mount the files instead.

@crspeller I have just removed the dependency on cert files. Would you please try it again?

@npcode Seems to have worked! After your done modifying the compose files to use the new images on docker hub. Can you tag the repository 3.0. That way a tag will be created in dockerhub so people can pull a 3.0 image.

@crspeller

Can you tag the repository 3.0

Well, why not 3.0.2?

@crspeller I have tagged this repository as 3, 3.0 and 3.0.2. I hope what I did doesn't conflict with the tagging convention of dockerhub.

@npcode In the past we have not tagged dot releases. But it's fine if you want to maintain that.
I think everything is done for this issue. Closing.


Ground Items Wiped

I play on two different RL accounts so I constantly have to sign in & out of the google account linked to the RL client. One day I logged in and noticed my ground items was wiped. Unsure how to reproduce.
Other things I've found is that ground markers sometimes won't stay marked when I start a new session. Or bank tags won't get saved. Also sometimes I fail to sign in to RL, the webpage will say successfully signed in but the client shows up as not logged into a RL account.

Sounds like the login is sometimes failing despite web page saying it did not, at least in my mind that would cause every issue here.
Related discord convo:
[8:28 AM] Cant PvM: my ground item config got cleared on two of my runelite accounts
[8:28 AM] Cant PvM: idk if it's cause i constantly sign in & out depending on which account i'm playing
[8:28 AM] Makendu: is it diffrent settings on each account when ur logged in
[8:29 AM] Cant PvM: they both got wiped. but only the ground items
[8:29 AM] Makendu: like ur trying to make them diff settings
[8:29 AM] Cant PvM: and a few tiles i marked
[8:29 AM] Cant PvM: ye they're different
[8:29 AM] Makendu: i dont think u can do that conisdering it shares the same file
[8:29 AM] Makendu: itll write over each other
[8:29 AM] Cant PvM: they shouldn't share the same file
[8:29 AM] Cant PvM: different accounts
[8:29 AM] Makendu: its  not a seprate profile ? u mean seprate google accounts
[8:29 AM] Cant PvM: yes
[8:30 AM] Cant PvM: google accounts
[8:30 AM] Cant PvM: one for main one for iron
[8:30 AM] Makendu: well im not sure if they share the same profile settings idk how Rl works only thing i can think of its shareing the same file
[8:30 AM] Makendu: and writing over each other
[8:30 AM] Unmoon: you are logging on the accounts every time you restart runelite?
[8:30 AM] Cant PvM: on launch i'll sign out & in depending on if i need to
[8:31 AM] Cant PvM: sometimes i sign out, then close and then sign in with the newly opened RL window
[8:31 AM] Cant PvM: cause it also messes up the loot tracker
[8:31 AM] Unmoon: ok, do you change any other settings?
[8:31 AM] Cant PvM: some times tile markers
[8:31 AM] Cant PvM: but the biggest difference is ground items
[8:31 AM] Unmoon: do they work?
[8:31 AM] Cant PvM: ye they do
[8:32 AM] Cant PvM: but if i mark sometimes they don't save
[8:32 AM] Cant PvM: will have to remark at times
[8:32 AM] Unmoon: weird
[8:32 AM] Unmoon: !logs you could check if its failing to  connect or something
[8:32 AM] BOTRuneLite: To find logs, either open screenshot directory (by right-clicking "Camera" button) and navigate 1 directory up and then open logs folder, or navigate to %userprofile%\.runelite\logs on Windows or $HOME/.runelite/logs on Linux and macOS.
[8:32 AM] Cant PvM: ye happened recently. the wipe i mean
[8:32 AM] Cant PvM: like maybe 1-2 weeks ago
[8:33 AM] Cant PvM: the entire folder
[8:33 AM] Cant PvM: oh no i see. certain dates i suppose
[8:35 AM] Cant PvM: oh ye sometimes when i click sign in
[8:35 AM] Cant PvM: the web page says succesfully signed in but RL isn't actually signed in
[8:37 AM] Cant PvM: should i look at app log or client log?
[8:38 AM] Unmoon: client
[8:43 AM] Cant PvM: oh on my local files i had my ground items config
[8:43 AM] Cant PvM: just copy pasted over those settings
[8:44 AM] Cant PvM: but ye if it happens again i'll keep the date in mind to look thru the logs
[8:44 AM] Unmoon: hmm so its just failing to login i guess?
[8:44 AM] Unmoon: thats strange
[8:45 AM] Unmoon: you should make an issue about it and definitely try to find a way to reproduce so we can fix it
[8:45 AM] Unmoon: !issues
[8:45 AM] BOTRuneLite: You can make suggestions and report bugs on GitHub Issues. Make sure you search for duplicates before opening a new issue! https://github.com/runelite/runelite/issues
GitHub
runelite/runelite
Open source Old School RuneScape client. Contribute to runelite/runelite development by creating an account on GitHub.
[8:45 AM] Cant PvM: ye i just wonder if it's caused by the constant signing in & out

Bump, this is still happening to me.

Closing since incredibly stale


feat: navigation

:tada: This PR is included in version 0.93.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


NIFI-5382 ConvertRecord Add Option To Drop 0 Record Files

For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

makes sense to be consistent with https://github.com/patricker/nifi/blob/f234f0b2e654027dcaa7e72acfd0f3d035377bae/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryRecord.java#L131

Updated, additional test not written; suggestions on which Record Reader will make this easy?

+1 LGTM, ran build with unit tests and contrib-check, and tried various readers/writers, verified the behavior is as intended. Thanks for this improvement! Merging to master


Fixed issue where Library crop is ignored for single photos

Fix for: https://github.com/Yummypets/YPImagePicker/issues/290

@calsmith ! Thank you so much noticing that, and providing a working fix, this is much (Much) appreciated :)
I was curious about the if strongSelf.multipleSelectionEnabled { condition since code is usually here for a reason ^^. It has been added in this commit with no particular (obvious) reasons so let's get rid of it :)
https://github.com/Yummypets/YPImagePicker/commit/d6b35ea4bffca001c3a901a7f0f5729d1b3c2668


gradient precission

processing https://commons.wikimedia.org/wiki/File:EM_Spectrum_Properties_edit.svg

lib
pic

rsvg

resvg

The atomic nuclei look differnent (gradinet?) and the molecules look different (anti-aliasing?)

This is fine. Gradient rendering is backend-dependent. I cannot control it.
If you want to compare rsvg and resvg, you should build resvg with the cairo backend to get similar rendering results.

I rendered https://commons.wikimedia.org/wiki/File:Mahuri.svg with cairo-backend and still get different eye-bluring

pic

r

re

I think chrome renders it more like resvg.
Copyright
source https://commons.wikimedia.org/wiki/File:Mahuri.svg
author Niabot
license https://creativecommons.org/licenses/by/3.0

Why do you think that this is because gradients and not filters?

Why do you think that this is because gradients and not filters?

Sorry i think in Mahuri.svg it's filters. I'm not so precise and mix them up. (also I know the difference)


Make functionality available for other tools

Due to the fact that no functions within main-package can be used in other programs, I moved it into a separate package.

Thanks for the PR, but I'm not interested in splitting out an importable package from this tool. I don't feel that there's enough here to warrant exposing an API.

Of course, given the license, you are free to copy/modify deplist if you want to make your own Go package for listing dependencies.


GPU rendering

I was wondering using LunaSVG in Godot and have it create editable 2d shapes in Godot Editor via plutovg output.
Any thoughts?

I will try to take a look at Godot Editor

Here was a previous attempt.
https://github.com/godot-extended-libraries/godot_vector_graphics

Here's the path to mesh code.
https://github.com/godot-extended-libraries/godot_vector_graphics/blob/master/tove2d/src/cpp/mesh/meshifier.cpp#L232

I have to replace plutovg in canvas.cpp with the hardware accelerated renderer.

Maybe I will try to add tove2d to lunasvg backends

Now I get your points.. let's talk privately<EMAIL_ADDRESS>


dark mode text not properly visible.

the button color is black, also the text inside is also black which makes the UI look not so good

it is not

you have to change the theme from white to dark then the glitch will appear

@oyepriyansh

alright


View balance changes over time

Story
As a Trader
I want to see the sum of all my account balances for a given asset (and a way to get a breakdown of each)
So that I can get a picture of my account status over time and analyse what has impacted the changes
Acceptance Criteria

[ ] I can see how my total balance across all accounts has changed over time
[ ] I can see how the total balance breaks down by account (type)
[ ] I can filter the data by date range
[ ] I can filter the data by market
[ ] I can filter the data by asset (?)
[ ] I can filter the data by account (i.e. general, margin, bond etc.)
[ ] I can see a breakdown of how money has moved to achieve the balance (driven by ledger entries and aggregated by type)

Tasks

[ ] UX
[ ] Design (if needed)
[ ] Team and stakeholder review
[ ] Specs reviewed and created or adjusted
[ ] Implementation
[ ] Testing (unit and/or e2e)
[ ] Code review
[ ] QA review

Sketch
Additional details / background info

There are other tickets for this sort of thing


Captcha Guard

Add a CaptchaGuard guard that can be added to the guards arrays in configurations in order to activate captcha on given components.
    ConfigModule.withConfig(<CmsConfig>{
      	cmsComponents: {
			SomeComponent: {
				...
				guards: [CaptchaGuard]
			}
		}
	}

Guard has been implemented in PR: #3969
Steps to test functionality:

Add the site key to captcha global configuration in app.module.ts

captcha: {
	siteKey: 'invalid-key'
	captchaUrl:
          'https://cors-anywhere.herokuapp.com/https://www.google.com/recaptcha/api.js',
}

Note: Given captcha url temp. fixes cors issue

Add CaptchaGuard to a component via override in app.module.ts

cmsComponents: {
        ReturningCustomerLoginComponent: {
          component: LoginFormComponent,
          guards: [CaptchaGuard],
        },
      },

Given example adds recaptcha to login page.

Navigate to login page and check that recaptcha renders. Its okay if the rendered widget displays an error due to invalid sitekey.


Newsboat snap - having problems with playing podcasts

Newsboat version (copy the output of newsboat -v or the first line of git show):
newsboat 2.13.0 - https://newsboat.org/
Copyright (C) 2006-2015 Andreas Krennmair
Copyright (C) 2015-2018 Alexander Batischev
Copyright (C) 2006-2017 Newsbeuter contributors
Copyright (C) 2017-2018 Newsboat contributors

Newsboat is free software licensed under the MIT License. (Type `newsboat -vv' to see the full text.)
It bundles JSON for Modern C++ library, licensed under the MIT License: https://github.com/nlohmann/json
It bundles an alphanum algorithm implementation licensed under the MIT license: http://www.davekoelle.com/alphanum.html

newsboat 2.13.0
System: Linux 5.4.51-v7l+ (armv7l)
Compiler: g++ 8.3.0
ncurses: ncurses 6.1.20181013 (compiled with 6.1)
libcurl: libcurl/7.64.0 GnuTLS/3.6.7 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3 (compiled with 7.64.0)
SQLite: 3.27.2 (compiled with 3.27.2)
libxml2: compiled with 2.9.4

Config file (copy from ~/.newsboat/config or ~/.config/newsboat/config):
podcast-auto-enqueue   no
browser     lynx
auto-reload yes

# podboat config items
download-path "~/podcasts/%n"
download-retries    1
max-downloads   1
player  "mp3blaster"

Reasons why I'm using snap
I'm running latest version of raspbian  on my pi but unfortunately as it's debian based that leaves me stuck with newsboat v2.13
Certain of my podcasts I subscribe to use libsyn and other services that are badly behaved and add optional %^&% to the end of the mp3 url which was fixed in version 2.14 of newsboat (thanks)
Unfortunately, I'm forced to use snap to get a later version as newsboat relies on libraries that are newer than are shipped with debian 10
This leaves me in the situation where I can read and download using the snap version of newsboat
/snap/bin/newsboat
But I cannot play files with /snap/bin/podboat (v2.20)
But I am able to play files in /usr/bin/podboat (v2.13) that was installed through the debian repository

Steps to reproduce the issue:

install snap in raspbian (latest update)

add urls to urls

enqueue, download and 'p' a podcast which just returns and

Other info you think is relevant:

Podboat downloads the podcasts fine
I can manually play the podcast with mp3blaster
I can play already downloaded files with /usr/bin/podboat (debian repo apt installed version)
I cannot play any file with /snap/bin/podboat
all the time using the same config file

Is there any config option to allow the execution of mp3blaster I am missing?  Should I be prefixing it with another command
Or is it a fixed limitation of the snap subsystem that cannot execute binaries outside of itself?
It doesn't appear to be a bug in the code as all hell would have broken loose - I'm guessing it's either a limitation of the snap system OR the build of the snap

Hi!

Unfortunately, I'm forced to use snap to get a later version as newsboat relies on libraries that are newer than are shipped with debian 10

What libraries do you mean? Newsboat 2.20 might not build on Debian 10 because the Rust compiler is too old there, but some of the earlier releases should, e.g. 2.14 requires Rust 1.25+ whereas Debian 10 ships 1.34.

Or is it a fixed limitation of the snap subsystem that cannot execute binaries outside of itself?

It's how our Snap is built. Snapcraft lets us pick between "classic" and "strict" confinement. "Classic" means that the snap can invoke any program, whereas "strict" puts limits on what the snap can do. We're using "strict" confinement mainly because it's how it was initially done. Ideally we should add "Snap interfaces" to give our snap access to some specific facilities, but that hasn't happened yet.
In your situation, I'd either install a newer Debian package (if it doesn't pull too many new dependencies) or just build from source (we have instructions in the README).

@iandstanley, was my comment above of any help?

I consider this resolved, so closing the issue. Please comment or open a new one if something is unclear!


chore(master): release 0.6.0

:robot: I have created a release beep boop
0.6.0 (2023-12-13)
🚀 Features

api: Tidy up public API & enforce via tests (#16) (5e7d8fa)
implement islamic, persian and um al qura calendars (#19) (705a0a3)

🐛 Bug Fixes

Instant: Raise OverflowError when Instant._plus() is passed a sufficiently large or small Offset (#18) (c42f124)
pre-commit: add v prefix to commitizen pre-commit hook rev (#26) (999f7a7)

This PR was generated with Release Please. See documentation.

This branch was created automatically by release-please v3.x
We have since moved to v4.x which uses a different branch name.
closed in favour of #28


Fix Databricks version comparison in pytests [databricks]

Compare minor components only as a tie breaker if major components are equal
Fixes #7345
Fixes xfail for is_databricks104_or_later on 11.3
Signed-off-by: Gera Shegalov<EMAIL_ADDRESS>

build

build

Changed "Contributes to" to  "Fixes" because either way nol tests mentioned in #7345 are failing


Example customization with OS user doesn't work

The example Dockerfile for creating your own image with a OS user / password doesn't work.
FROM mq
RUN useradd alice -G mqm && \
    echo alice:passw0rd | chpasswd
COPY 20-config.mqsc /etc/mqm/

It appears that it's broken by mq-dev-config.sh which configures an admin user that has a UID that clashes with the one generated for alice.
Here's an alternative that works by explicitly specifying the UID for alice in a range outside those used by the scripts:
FROM mq
RUN useradd -N -G mqm -u 5001 alice && \
    echo alice:passw0rd | chpasswd
COPY 20-config.mqsc /etc/mqm/

Thanks, we're currently deciding how to fix this or whether to change the example.
Given that we now create 2 users by default in the mq-dev-config.sh file we may no longer need an example that creates a user.

Hi @prestona - We've just merged a Pull Request that should fix this issue. Could you ensure you have the latest master/release (v3.0) and try to recreate the problem.

Hi @prestona I'll close this issue as I've manually verified. If you're still seeing the issue then feel free to reopen this one or create a new one.


Loved music not reflecting on app as it is on web

Expected behavior
All details on an account on the website, must be the same as what will be shown in the application. Loved tracks on the website, will also reflect ln the application.
Actual behavior
After adding a track to loved track on the website, it does not reflect in the application.
How to reproduce

Download and install the application
Switch on your data connection
Launch the application
Log in if you already have an account or click on the sign up button if you are yet to get an account

Visit https://www.last.fm/music, love some tracks
Click on your profile icon,  select loved tracks,  to view loved tracks on the website.
Go back to the app
Log in
Click on the menu button, by the top right corner
Click on the profile section
Click on the Loved track

And note the bug there.

App version: musiQ 1.845
Operating system: Android v7.0

Recording Of The Bug
https://youtu.be/VssF3XO3E_U

Hello. Thanks for the report. I tested this on several devices and it seemed to work on all of them. Can you please try again? It might be on last.fm's side and not on mine. Maybe there was a problem with the website at the time.

Did you try it on Android v7?

Yes I did. Still works. Can you see if the issue still persists?

I updated the app, but it not stable,  it sometimes show the loved tracks, even my profile only shows the link nothing else.


cask-repair Bad credentials

After pressing y to confirm all is correct, cask-repair failes saying 401 bad credentials. Log below
Is everything correct? ([y]es / [n]o / [e]dit) y
Submitting…

You need a passphrase to unlock the secret key for
user: "Conor Randall<EMAIL_ADDRESS>4096-bit RSA key, ID 22570890, created 2016-12-03

Error creating pull request: Unauthorized (HTTP 401)
Bad credentials
Error creating pull request: Unauthorized (HTTP 401)
Bad credentials

There was an error submitting the pull request. Please open a bug report on the repo for this script (https://github.com/vitorgalvao/tiny-scripts).

This is hub-related, not cask-repair-related. See https://github.com/github/hub/issues/899.


Translations update from Hosted Weblate

Translations update from Hosted Weblate for Flashy/Flashy.
Current translation status:

Thank you so much for your support, @programutox! 😘


Fix: Shared file decryption

CHANGELOG

Fix binary file decoding
Fix HMAC computation and also fixes password verification before decryption.
Update UI to show loadings state and error state (instead of using an alert()).
Fix file icon logic to use the extension on file name shared
Make ipfs gateway base url configurable via GATSBY_IPFS_GATEWAY_BASE_URL environment variable

@dmerrill6 FYI: I added an environment variable for the gateway base url. It currently defaults to dev which I think should be fine, but in case we want to split the space services into app.space.storage and possible a dev version at app-dev.space.storage, the gateway it would be using to fetch can be configured via that env variable GATSBY_IPFS_GATEWAY_BASE_URL


Recurrence skipped when exact date of event does not exist

Hi,
I'm using iCal.Net library version 4.1.11 (the current latest stable) to generate event recurrences.
When a recurrence falls on a date that doesn't exist (i.e. > 29th Feb in a leap year, > 28th Feb other years and > 30th of any 30-day month) then the recurrence is completely skipped.
I understand that skipping events can be the expected behaviour in some circumstances, but in our position we would expect the missing event to occur on the nearest date that does exist. I haven't been able to find any configuration option that might switch between those behaviours.
Tests have shown the behaviour as described. Here is one example that we tested:
RecurrencePattern: FREQ=MONTHLY;COUNT=8;INTERVAL=3
DtStart: 2018/11/29
...which skips: 2019/02/29
Can you guide us on whether this is a bug or not? If it is intended behaviour, whether there is a way to switch between behaviours?
None of the examples that I have been able to find online address this behaviour.
Many thanks, Anthony.

OK... for anyone else encountering this problem...
The package is implementing the standard correctly, but the standard does not appear to have considered recurrence under these circumstances so it simply states that non-existent dates will be ignored.
Our solution is to detect the vulnerable days of the month and append the recurrence rule to include a BYMONTHDAY clause with a negative value (to make it count from the end of the month).
For recurrences with MONTHLY frequency: When the start day is 29th or greater we set the new clause to the recurrence start day (29, 30 or 31) less the number of days in the start date's month and subtract 1 (producing -1, -2 or -3).
For recurrences with YEARLY frequency: When the start date is 29th February we set the new clause to -1.
For our purposes this adjustment meets the requirement, however you may want to make it more sophisticated (e.g. only adjusting recurrences for a 29th of a month when it's a February in a non-leap year).