Hue and Deconz parallel configured issue: ph: error: TypeError: Cannot read property 'isDeconz' of undefined

I have added a Deconz  device to my existing Hue configuration.
The Hue everything works fine. But on my new Deconz device I can read light status but not change status.
[Hue] Phoscon-GW: request 21: PUT /lights/2/state {"on":true}
[Hue] Phoscon-GW: request 21: api error 3: resource, /lights/2, not available
ph lightlist
ph: error: TypeError: Cannot read property 'isDeconz' of undefined
at Main.main (/usr/local/lib/node_modules/homebridge-hue/cli/ph.js:506:26)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

Which version are you on?

Which version are you on?

[Hue] homebridge-hue v0.12.14, node v14.15.4, homebridge v1.1.7
[Hue] Philips hue: Signify Netherlands B.V. BSB002 bridge v1942135050, api v1.42.0
[Hue] Phoscon-GW: dresden elektronik deCONZ gateway v2.7.1, api v1.16.0
pi@raspberrypi:~ $ ph createuser
ph: error: TypeError: config: not an object
at newTypeError (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:35:52)
at Function.toObject (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:432:13)
at Object._callbacks. [as config] (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:756:40)
at OptionParser.parse (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:818:29)
at new HueClient (/usr/local/lib/node_modules/homebridge-hue/lib/HueClient.js:170:8)
at Main.main (/usr/local/lib/node_modules/homebridge-hue/cli/ph.js:509:24)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

[Hue] homebridge-hue v0.12.14, node v14.15.4, homebridge v1.1.7
[Hue] Philips hue: Signify Netherlands B.V. BSB002 bridge v1942135050, api v1.42.0
[Hue] Phoscon-GW: dresden elektronik deCONZ gateway v2.7.1, api v1.16.0
pi@raspberrypi:~ $ ph createuser
ph: error: TypeError: config: not an object
at newTypeError (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:35:52)
at Function.toObject (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:432:13)
at Object._callbacks. [as config] (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:756:40)
at OptionParser.parse (/usr/local/lib/node_modules/homebridge-hue/node_modules/homebridge-lib/lib/OptionParser.js:818:29)
at new HueClient (/usr/local/lib/node_modules/homebridge-hue/lib/HueClient.js:170:8)
at Main.main (/usr/local/lib/node_modules/homebridge-hue/cli/ph.js:509:24)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

That's weird.  What does ph config return?

That's weird.    You need to issue ph -H <IP_ADDRESS>:port createuser, substituting the port that deCONZ runs on.

OK, that's the raw byte values for:

    <!doctype html>

            <meta charset='utf-8'>

            <title>● </title>
            <link rel='stylesheet' href='pihole/blockingpage.css'>
            <link rel='shortcut icon' href='admin/img/favicons/favicon.ico' type='image/x-icon'>

Pi-hole: Your black hole for Internet advertisements

            Did you mean to go to the admin panel?

Looks like port 80 is running the pihole UI?  You need to issue ph -H <IP_ADDRESS>:port createuser, substituting the port that deCONZ runs on.

Yes, pihole runs on the same server on port 80.
In the Hue plugin I had configured: :8080
When I try to change change a light status it fails.
[Hue] Phoscon-GW: request 9: PUT /lights/2/state {"on":false}
[Hue] Phoscon-GW: request 9: api error 3: resource, /lights/2, not available
[Hue] Fernsehleuchte: homekit on changed from true to false
[Hue] Phoscon-GW: request 10: PUT /lights/2/state {"on":false}
[Hue] Phoscon-GW: request 10: api error 3: resource, /lights/2, not available
But when I change the status in the Phoscon app the status change is showing correct in Homebrige log.
[Hue] Fernsehleuchte: set homekit on from true to false
[Hue] Fernsehleuchte: set homekit on from false to true
[Hue] Fernsehleuchte: set homekit on from true to false
When I run the following I get a 10 char user string.
ph -H <IP_ADDRESS>:8080 createuser
But I have an API key already create by pressing the Phoscon app button and it's in the Config file. At least the connection seem to work partly.
Where do I need this new created user for?

Yes, pihole runs on the same server on port 80.
In the Hue plugin I had configured: :8080
When I try to change change a light status it fails.
[Hue] Phoscon-GW: request 9: PUT /lights/2/state {"on":false}
[Hue] Phoscon-GW: request 9: api error 3: resource, /lights/2, not available
[Hue] Fernsehleuchte: homekit on changed from true to false
[Hue] Phoscon-GW: request 10: PUT /lights/2/state {"on":false}
[Hue] Phoscon-GW: request 10: api error 3: resource, /lights/2, not available
But when I change the status in the Phoscon app the status change is showing correct in Homebrige log.
[Hue] Fernsehleuchte: set homekit on from true to false
[Hue] Fernsehleuchte: set homekit on from false to true
[Hue] Fernsehleuchte: set homekit on from true to false
When I run the following I get a 10 char user string.
ph -H <IP_ADDRESS>:8080 createuser
But I have an API key already create by pressing the Phoscon app button and it's in the Config file. At least the connection seem to work partly.
Where do I need this new created user for?

[Hue] Phoscon-GW: request 9: api error 3: resource, /lights/2, not available

deCONZ is not exposing /lights/2.  This could be because the light has been deleted after you started Homebridge, or because of https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2473.

Where do I need this new created user for?

For ph.  It has saved it in ~/.ph.  You can set PH_HOST In the environment, so you don’t have to specify -H <IP_ADDRESS>:8080 every time.  Best to use a different API key per app, so you can check which app created what resources on the gateway.

[Hue] Phoscon-GW: request 9: api error 3: resource, /lights/2, not available

deCONZ is not exposing /lights/2.  This could be because the light has been deleted after you started Homebridge, or because of https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2473.

Where do I need this new created user for?

For ph.  It has saved it in ~/.ph.  You can set PH_HOST In the environment, so you don’t have to specify -H <IP_ADDRESS>:8080 every time.  Best to use a different API key per app, so you can check which app created what resources on the gateway.

Now the config returns proper values.  But lights parameter has no return value. Looks like lights get lost somehow.
ph -H <IP_ADDRESS>:8080 -u ... config
{
"apiversion": "1.16.0",
"bridgeid": "...",
"datastoreversion": "93",
"devicename": "ConBee II",
"factorynew": false,
"mac": "...",
"modelid": "deCONZ",
"name": "Phoscon-GW",
"replacesbridgeid": null,
"starterkitid": "",
"swversion": "2.7.1"
}
What's the syntax for ~/.ph file? Can't find a URL which describs the paramter syntax.
Is the following right?
PH_HOST = <IP_ADDRESS>:8080

Now the config returns proper values.  But lights parameter has no return value. Looks like lights get lost somehow.
ph -H <IP_ADDRESS>:8080 -u ... config
{
"apiversion": "1.16.0",
"bridgeid": "...",
"datastoreversion": "93",
"devicename": "ConBee II",
"factorynew": false,
"mac": "...",
"modelid": "deCONZ",
"name": "Phoscon-GW",
"replacesbridgeid": null,
"starterkitid": "",
"swversion": "2.7.1"
}
What's the syntax for ~/.ph file? Can't find a URL which describs the paramter syntax.
Is the following right?
PH_HOST = <IP_ADDRESS>:8080

But lightlist parameter has no return value.

Yeah, it's kinda silent.  Run ph lightlist -v to get some feedback.

What's the syntax for ~/.ph file?

Undocumented.  It's a single JSON object with API key and fingerprint for the pinned SSL certificate per bridge/gateway.

Can't find a URL which describs the paramter syntax.

Run ph -h or ph --help.

Is the following right?

Except for the spaces.  This is Linux/Unix shell syntax.  You might want to export it from .profile or similar:
export PH_HOST=<IP_ADDRESS>:8080

But lightlist parameter has no return value.

Yeah, it's kinda silent.  Run ph lightlist -v to get some feedback.

What's the syntax for ~/.ph file?

Undocumented.  It's a single JSON object with API key and fingerprint for the pinned SSL certificate per bridge/gateway.

Can't find a URL which describs the paramter syntax.

Run ph -h or ph --help.

Is the following right?

Except for the spaces.  This is Linux/Unix shell syntax.  You might want to export it from .profile or similar:
export PH_HOST=<IP_ADDRESS>:8080

Fix ph createuser and improved bridge recognition in v0.12.15.

Fix ph createuser and improved bridge recognition in v0.12.15.


Nested Menu Alignment

If you have more than one level of menu entries the layout for some reason does not look right. I am not sure if this is known or by design. Here is the code:
- ## Catalog
    - [Structure](/docs/{{version}}/catalog/structure)
    - [Documents](/docs/{{version}}/catalog/documents)
        - [Product](/docs/{{version}}/catalog/documents/product)
        - [Category](/docs/{{version}}/catalog/documents/catrgory)

And the Screenshot:

I think this is by design, but I would like to see nested menus be supported, possibly has a hidden menu kind of option (think laravel docs)

Thank you @aftabnaveed for addressing this issue. Yes, that's correct the library support only one level of nested menu. However, you can add your custom CSS to support that as well or I'll add this request to the future development ( #6 ).


PP Graph stopped updating

That's strange. Can you write which version of the plugin you use? Have you updated to the latest one? And what browser (and version) do you use?

v<IP_ADDRESS>, Chrome 87.0.4280.66
Refreshing global cache/reinstalling the script doesn't help.

Something must have gone wrong with converting the database after the update.
Do you use Discord? Could you contact me at motzel#8017 ? I will give you information how to restore an older version of the plugin and ask you to export the data for analysis.

Fixed in <IP_ADDRESS>, please update


Conflicting indexes were encountered when renaming coordinate dimensions.

Thank you for your contribution to this project. I have noticed an error in your code and I would like to kindly bring it to your attention.
When I ran the notebook with xarray version 2022.11.0, there was an error with conflicting indexes. The problem code is in line 8 of the second block of plotbook.ipynb.
ds.coords['lat'] = ('lat', `lat.to_numpy())
----> ds.coords['lon'] = ('lon', lon.to_numpy())  # Error reported here
ds = ds.reset_coords(names=['latitude','longitude'], drop=True)

Error details are as follows
ValueError: cannot re-index or align objects with conflicting indexes found for the following dimensions: 'lat' (2 conflicting indexes)
Conflicting indexes may occur when
- they relate to different sets of coordinate and/or dimension names
- they don't have the same type
- they may be used to reindex data along common dimensions

When I try to change ds = ds.rename_dims ({'latitude':'lat','longitude':'lon'}) to ds = ds.swap_dims({'latitude':'lat','longitude':'lon'}), then the error is resolved.
Perhaps this error needs to be fixed in the project, this is just my personal opinion and for reference only.

Thank you! you are right. I admire your effort to enhance the code, if other reader have same problems, they can change ds = ds.rename_dims ({'latitude':'lat','longitude':'lon'}) to ds = ds.swap_dims({'latitude':'lat','longitude':'lon'})


The camera can't recognize the face at a little distance

In the case of three.js, the face will not be recognized if it is a little far away from the camera. If it is close to the camera, the face can be recognized. Can I use a value to control the recognition distance?

You can use the scanSettings init parameter or the set_scanSettings post-init method to tune face search - see https://github.com/jeeliz/jeelizFaceFilter#miscellaneous-methods
Related to https://github.com/jeeliz/jeelizFaceFilter/issues/127#issuecomment-534593145

Thanks a lot!! I only change scanSettings.scale0Factor to a lower value and it works very good! 😃 I will close this issue.


indexing usability improvements

This allows to call getindex and view with logical indexing (i.e. t[[true, false]]), whereas before it errored due to indexes being unsorted (which is incorrect, as this kind of indexing is always sorted).
I also allow unsorted indices if there are no primary keys. If there are primary keys, I can't quite decide whether we should remove those keys or error, I've left the error so far.

I think erroring is fine for now. This is nice, thanks!


pod hostPort does not work

Hello,
I have a DS that specifies that a pod with traefik should be started on each node, but the controller node.  However, the hostPort doesn't work. Accessing the port results in the protection being refused. There are no iptables rules in iptables-save that indicate that there's a DNAT set up for the local port, not are there any processes listed in ss -tpnl that could proxy the traffic. I use kubernetes v1.3.4+coreos.0 on AWS.
The DS configuration is the following:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: traefik-ingress-lb
  labels:
    app: traefik-ingress-lb
spec:
  selector:
      matchLabels:
        app: traefik-ingress-lb
  template:
    metadata:
      annotations:
        scheduler.alpha.kubernetes.io/affinity: >
          {
            "nodeAffinity": {
              "requiredDuringSchedulingIgnoredDuringExecution": {
                "nodeSelectorTerms": [
                  {
                    "matchExpressions": [
                      {
                        "key": "controller",
                        "operator": "DoesNotExist"
                      }
                    ]
                  }
                ]
              }
            }
          }

      labels:
        app: traefik-ingress-lb
    spec:
      terminationGracePeriodSeconds: 60
      containers:
        - image: containous/traefik:v1.0.2
          name: traefik-ingress-lb
          imagePullPolicy: Always
          ports:
            - containerPort: 80
              hostPort: 80
              protocol: TCP
            - containerPort: 443
              hostPort: 443
              protocol: TCP
            - containerPort: 8080
              protocol: TCP
          livenessProbe:
              httpGet:
                  path: /health
                  port: 8080
              initialDelaySeconds: 60
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 5
          args:
            - --web
            - --kubernetes
          resources:
            limits:
              cpu: 100m
              memory: 200Mi
            requests:
              cpu: 100m
              memory: 100Mi

ps aux:
root     26000  2.3  0.5  27544 20296 ?        Ssl  10:52   1:13 /traefik --web --kubernetes

docker ps:
CONTAINER ID        IMAGE                                                                                COMMAND                  CREATED             STATUS              P
ORTS               NAMES
264f4fc138ed        containous/traefik:v1.0.2                                                                               "/traefik --web --kub"   53 minutes ago      Up 53 minutes                           k8s_traefik-ingress-lb.d2560973_traefik-ingress-lb-ei9qv_default_a0fa4392-7bfb-11e6-b376-0253cca96ab9_96e4af4a
e87f3f9ed6c5        gcr.io/google_containers/pause-amd64:3.0                                                                "/pause"                 53 minutes ago      Up 53 minutes                           k8s_POD.d8dbe16c_traefik-ingress-lb-ei9qv_default_a0fa4392-7bfb-11e6-b376-0253cca96ab9_541e8aca

I've been having the exact same problem after upgrading to 1.3. At first i thought i was hitting https://github.com/kubernetes/kubernetes/issues/32415 but upgrading to 1.3.7 didn't fix it...
So i dug into the kube code and https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/network/hostport/hostport.go seems to indicate there should be a KUBE-HOSTPORTS iptables chain... but that doesn't exist on my clusters.
My workaround is to create a service with nodePorts but that's not very efficient.

Hitting the same problem on 1.4 after wanting to try the Ingress feature.  At the moment it's rendered unusable tho i did not try creating a service to front the nginx.

@danielschonfeld Do you mind linking the existing bug report on the kubernetes repo in here?

For reference: https://github.com/kubernetes/kubernetes/issues/23920

It worked fine btw in v1.3.2 so its not 1.3 but a later version (sounds like either 1.3.3 or 1.3.4 probably should test to find out).

We use 1.3.4, so it's at least that version.

In this case, using hostNetwork=truefix the issue.
spec:
  hostNetwork: true
  containers:
    - image: containous/traefik:v1.0.2
      name: traefik-ingress-lb
      imagePullPolicy: Always


[brew] can't upgrade or uninstall orbstack

can't upgrade or uninstall orbstack on my macbook via brew command
$ brew reinstall --verbose --debug orbstack
...
==> Uninstalling artifact of class Cask::Artifact::Uninstall
==> Running uninstall script /Applications/OrbStack.app/Contents/MacOS/bin/orbctl
/usr/bin/env /Applications/OrbStack.app/Contents/MacOS/bin/orbctl _internal brew-uninstall
panic: build expired

goroutine 1 [running]:
main.main()
	github.com/kdrag0n/macvirt/scon/cmd/scli/main.go:19 +0x185
Error: Failure while executing; `/usr/bin/env /Applications/OrbStack.app/Contents/MacOS/bin/orbctl _internal brew-uninstall` exited with 2. Here's the output:
panic: build expired

goroutine 1 [running]:
main.main()
	github.com/kdrag0n/macvirt/scon/cmd/scli/main.go:19 +0x185

anyway, I fixed the issue by this way
$ rm -rf /Applications/OrbStack.app

Fixed for the next version. Thanks for reporting!
This is because beta builds expire and must be updated after 30 days. Deleting data (~/.orbstack) is not necessary. There are several other ways to fix it, such as opening the app to update instead of using Homebrew or running brew upgrade --greedy-auto-updates instead of brew reinstall.

Released in v0.12.0.


Use Flutter SDK GIT Tag instead of Flutter Channel

-Removes Flutter Channel support in favor of using Flutter SDK Git Tag
Signed-off-by: Joel Winarske<EMAIL_ADDRESS>

Abandoned


chore Using multithread to accelerate FE compilation

Proposed changes
Issue Number: close #xxx
Maven 3.x has the capability to perform parallel builds. If enable parallel builds, 50% speed improvement has be observed.
before:

after:

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

run buildall


SCA Checks Fail When Deleting an Account Due to Missing Folder in environments repo

Expected Behavior
When an account is deleted and all associated files and folders are removed, the SCA checks (Trivy scan and TFSec) should gracefully skip the scan if the folder does not exist. This should prevent the checks from failing due to missing directories, ensuring that the CI/CD pipeline proceeds without errors.
Actual Behavior
Currently, when an account is deleted, the SCA checks (Trivy scan and TFSec) are failing because they cannot find the folder associated with the deleted account. This failure occurs because all files and folders related to the account are removed as part of the deletion process. Consequently, the absence of the expected folder causes the scans to error out, disrupting the CI/CD pipeline.
https://github.com/ministryofjustice/modernisation-platform-environments/actions/runs/9299243722/job/25592774870
Steps to Reproduce the Problem
No response
Version
No response
Modules
No response
Account
No response

https://github.com/ministryofjustice/github-actions/pull/259


vPreProcess early exit fix

Fixed config error with undistort flag: "return false" statement outside else block was causing module to terminate every time undistort flag is true

I merged this change in with a few other fixes I made with a different pull request.


gc.pruneWorktreesExpire missing from git-config(1) manpage for version 2.5.2

It is present in http://git-scm.com/docs/git-config/2.5.1 but not in http://git-scm.com/docs/git-config/2.5.2, despite this config option still being in the 2.5.2 manpage.
% man git-config | tail -n1
Git 2.5.2                            09/13/2015                        GIT-CONFIG(1)
% man git-config | fgrep -A4 gc.pruneWorktreesExpire
       gc.pruneWorktreesExpire
           When git gc is run, it will call prune --worktrees --expire 3.months.ago.
           Override the grace period with this config variable. The value "now" may
           be used to disable the grace period and prune $GIT_DIR/worktrees
           immediately.

solved. should be closed @peff


morphodict 2025:  Upgrade repository dependencies to future-proof morphodict

Current dependencies are approaching (or past) the end of their extended support lifecycles.  Dependencies should be upgraded. For example:

Django 3.2 LTS extended support ended in April : https://www.djangoproject.com/download/#supported-versions
Python 3.9 to enter EOL in Oct '25: https://devguide.python.org/versions/
Ubuntu 20.22 LTS standard support ends upcoming April: https://ubuntu.com/about/release-cycle

These main dependencies trickle down to other dependencies in the system.  We should upgrade the morphodict code and infrastructure so it will continue working for the foreseeable future as it has been working so far.
Our expected timeline is as follows:

Name
Timeline
Ubuntu (infrastructure)
Python
Django
Node

~"Legacy"~
~End of May, 2024~
~🟡 20.04 LTS  (EOL 2025-04)~
~🟡 3.9  (EOL 2025-10)~
~🔴 3.2 LTS  (EOL 2024-04)~
~🔴 14  (EOL 2023)~

"Stopgap"
End of June, 2024
🟢 ⬆  22.04 LTS  (EOL 2027-04)
🟢 ⬆  3.10  (EOL 2026-10)
🔴 3.2 LTS  (EOL 2024-04)
🟢 ⬆  20  (EOL 2026-04)

"Current"
July, 2024
🟢  22.04 LTS  (EOL 2027-04)
🟢 3.10  (EOL 2026-10)
🟢 ⬆  4.2 LTS  (EOL 2026-04)
🟢 20  (EOL 2026-04)

"Future - 2025"
December, 2024
🟢 ⬆  24.04 LTS  (EOL 2029-04)
🟢 ⬆  3.12  (EOL 2028-10)
🟢  4.2 LTS  (EOL 2026-04)
🟢 20  (EOL 2026-04)

"Future - 2028"
May, 2025 [^1]
🟢  24.04 LTS  (EOL 2029-04)
🟢 3.12  (EOL 2028-10)
🟢 ⬆ 5.2 LTS  (EOL 2028-04)
🟢 ⬆ 24  (EOL 2028-04)

Updates on docker images and code will be reflected first on the dev branch
[^1]: Some dependencies (Django 5.2 LTS and Node 24) will only be released in Apr 2025.

All github actions have been updated to remove any old warnings as well.

Currently deployed version in itwewina.altlab.app has been bumped up to Stopgap, opening the space for dev branch to be migrated up to Current.

Currently deployed version in itwewina.altlab.app has been bumped up to Current.  I expect the dependencies to remain in this new state until the end of the year, following the timeline.


Retaining significant whitespace within MacroExpressions within MacroVerbatim

Discussion
Background
Currently if you have code like:
{%
  10

  # Foo

  20
  30

  # Bar

  40
%}
{%
  50
  60
%}

The parser is able to properly attribute location information to each number, taking into account the newlines and comments:
{value: "10", line_number: 2}
{value: "20", line_number: 6}
{value: "30", line_number: 7}
{value: "40", line_number: 11}
{value: "50", line_number: 14}
{value: "60", line_number: 15}

However, when used as part of a MacroVerbatim node like:
macro finished
  {% verbatim do %}
    {%
      10

      # Foo

      20
      30

      # Bar

      40
    %}
    {%
      50
      60
    %}
  {% end %}
end

NOTE: The macro finished isn't really needed to reproduce this problem, but is included for demonstration purposes to make generating the output easier.

The results are now not totally accurate:
{value: "10", line_number: 2}
{value: "20", line_number: 3}
{value: "30", line_number: 4}
{value: "40", line_number: 5}
{value: "50", line_number: 7}
{value: "60", line_number: 8}

This is because the line numbers for each node are now based on the to_s representation of the MacroExpressions within the MacroVerbatim versus the actual source code. E.g.
# There's a newline here
    {% 10
20
30
40
 %}
    {% 50
60
 %}

The Problem
#15305 makes things a little bit more accurate by retaining the newline after the {% is present. E.g.
{value: "10", line_number: 3}
{value: "20", line_number: 4}
{value: "30", line_number: 5}
{value: "40", line_number: 6}
{value: "50", line_number: 9}
{value: "60", line_number: 10}

# There's a newline here
    {%
  10
  20
  30
  40
%}
    {%
  50
  60
%}

However things are still not quite 100% correct. We can make things a bit better by summing the node's location with the location of the MacroVerbatim node itself (removing the 0 || on like 592 in interpreter.cr in the appendix diff):
{value: "10", line_number: 4}
{value: "20", line_number: 5}
{value: "30", line_number: 6}
{value: "40", line_number: 7}
{value: "50", line_number: 10}
{value: "60", line_number: 11}

The number 10 now at least has the proper location, but all the others are still not correct. The gist of why the other numbers are off is because notice in the stringified output, all the whitespace and comments in the macro expression have been stripped. Thus they are not taken into consideration when the code is re-parsed as part of the macro expansion logic.
Not having the nodes have the proper location information in this context makes #14880 much harder as it relies on having proper line numbers to map to the source code when generating the coverage report.
Proposed Solution
So far the most robust solution I can think of is to have the parser include MacroLiteral nodes when parsing macro expressions that represent comments and extra newlines. This would ensure that the stringified macro expression includes these newlines so the re-parsed code is able to map to the line numbers of the source.
WDYT?
EDIT: Is this maybe something we could leverage location pragmas for?
Appendix

Diff used to generate the outputs
diff --git a/src/compiler/crystal/macros/interpreter.cr b/src/compiler/crystal/macros/interpreter.cr
index 978c57470..d7541a8af 100644
--- a/src/compiler/crystal/macros/interpreter.cr
+++ b/src/compiler/crystal/macros/interpreter.cr
@@ -82,6 +82,10 @@ module Crystal
       @last = Nop.new
     end

+    def is_test_file?
+      @location.try &.original_filename.as?(String).try &.ends_with? "test.cr"
+    end
+
     def define_var(name : String, value : ASTNode) : Nil
       @vars[name] = value
     end
@@ -584,6 +588,10 @@ module Crystal
     end

     def visit(node : Nop | NilLiteral | BoolLiteral | NumberLiteral | CharLiteral | StringLiteral | SymbolLiteral | RangeLiteral | RegexLiteral | MacroId | TypeNode | Def)
+      if self.is_test_file?
+        pp({value: node.to_s, line_number: (node.location.try(&.line_number) || 0) + (0 || node.location.try(&.macro_location.try(&.line_number)) || 0)})
+      end
+
       @last = node.clone_without_location
       false
     end
diff --git a/src/compiler/crystal/macros/macros.cr b/src/compiler/crystal/macros/macros.cr
index a5d5714f1..1b68e3b53 100644
--- a/src/compiler/crystal/macros/macros.cr
+++ b/src/compiler/crystal/macros/macros.cr
@@ -27,7 +27,18 @@ class Crystal::Program
     interpreter = MacroInterpreter.new self, scope, path_lookup || scope, node.location, def: a_def, in_macro: false
     interpreter.free_vars = free_vars
     node.accept interpreter
-    {interpreter.to_s, interpreter.macro_expansion_pragmas}
+    output_str = interpreter.to_s
+
+    if interpreter.is_test_file?
+      puts
+      puts
+
+      puts output_str
+
+      puts
+      puts
+    end
+    {output_str, interpreter.macro_expansion_pragmas}
   end

   def parse_macro_source(generated_source, macro_expansion_pragmas, the_macro, node, vars, current_def = nil, inside_type = false, inside_exp = false, mode : Parser::ParseMode = :normal, visibility : Visibility = :public)

I'm wondering if there could be a rather trivial solution by making verbatim retain the original source code as a string instead of parsing the content into an AST and then stringifing that again.

@straight-shoota Hmm that would work, but not be 100% robust mainly these specs would still fail due to them not being in a verbatim block:
expect_to_s "{%\n  1\n  2\n  3\n%}"
expect_to_s "{%\n  1\n%}"
expect_to_s "{%\n  2 + 2\n%}"
expect_to_s "{%\n  a = 1 %}", "{%\n  a = 1\n%}"

So there would still need to be some tweaks to ToSVisitor. At which point, I'm not sure if it makes sense to have special parsing logic just to handle verbatim, while still needing to have everything else in ToSVisitor.


Merge gz-launch6 ➡  gz-launch7

➡  Forward port
Port gz-launch6  ➡  gz-launch7
Branch comparison: https://github.com/gazebosim/gz-launch/compare/gz-launch7...gz-launch6
Note to maintainers: Remember to Merge with commit (not squash-merge or rebase)

Will wait for #252 to merge.


Format override should use format= instead of f=

Because we serialize "format" in the RDF, to be consistent, we should use the same term, therefore use "format="

fixed in 62bbd0e84a820829f1b66a69698f724bc632d1a2

both format and f are accepted. format has priority
format=ttl&f=rdf  will return ttl
f=rdf will return rdf/xml


last

:warning: This is a Pull Request Template :warning:

Checkout all the things you've done by placing an *x*\ within the square braces.

Proposed Changes

[x] I've forked the repository.
[x] I've created a branch and made my chagnes in it.
[x] I've read the CODE OF CONDUCT and abide to it.
[x] I've read the CONTRIBUTING.md
[x] I understand opening a PULL REQUEST doesn't mean it will be merged for sure.

done

@bharatck - Please submit your own code file and a profile entry on the README file. I'll reopen or just resubmit a new PR. 👍


PDI-17607 - Upgrade to ElasticSearch 6.3.0

Important note, which is listed in the code:
With the upgrade to elasticsearch 6.3.0, removed the NodeBuilder,
which was removed from the elasticsearch 5.0 API, see:
https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_java_api_changes.html#_nodebuilder_removed

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -f 'pom.xml' -pl 'plugins/elasticsearch-bulk-insert/core' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'plugins/elasticsearch-bulk-insert/core' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  plugins/elasticsearch-bulk-insert/assemblies/plugin/assembly/assembly.xml
  plugins/elasticsearch-bulk-insert/core/pom.xml
  plugins/elasticsearch-bulk-insert/core/src/main/java/org/pentaho/di/trans/steps/elasticsearchbulk/ElasticSearchBulk.java
  plugins/elasticsearch-bulk-insert/core/src/main/java/org/pentaho/di/trans/steps/elasticsearchbulk/ElasticSearchBulkMeta.java
  plugins/elasticsearch-bulk-insert/core/src/main/java/org/pentaho/di/ui/trans/steps/elasticsearchbulk/ElasticSearchBulkDialog.java
  plugins/elasticsearch-bulk-insert/core/src/test/java/org/pentaho/di/trans/steps/elasticsearchbulk/ElasticSearchBulkMetaTest.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes: +0.3% (click to expand)
org.pentaho.di.trans.steps.elasticsearchbulk.ElasticSearchBulkMeta.Server

Complexity Change: -16.7% :small_red_triangle_down:
Line Change: -16.7% :small_red_triangle_down:
Method Change: -16.7% :small_red_triangle_down:

Checkstyle violations
The code submitted is not complying with one or more of our guidelines. To perform these checks locally, please use this tool.
/home/buildguy/project/plugins/elasticsearch-bulk-insert/core/src/main/java/org/pentaho/di/trans/steps/elasticsearchbulk/ElasticSearchBulk.java

:heavy_exclamation_mark: Line has trailing spaces at Line: 336

:heavy_exclamation_mark: Line has trailing spaces at Line: 337

:heavy_exclamation_mark: Line has trailing spaces at Line: 474

:heavy_exclamation_mark: Line has trailing spaces at Line: 475

:heavy_exclamation_mark: Line has trailing spaces at Line: 478

:heavy_exclamation_mark: 'lambda arguments' has incorrect indentation level 8, expected level should be 6. at Line: 479

:heavy_exclamation_mark: Line has trailing spaces at Line: 484

:heavy_exclamation_mark: Line has trailing spaces at Line: 485

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 485 Column: 59

:heavy_exclamation_mark: Line has trailing spaces at Line: 488

:heavy_exclamation_mark: Line has trailing spaces at Line: 490

:heavy_exclamation_mark: Line has trailing spaces at Line: 495

/home/buildguy/project/plugins/elasticsearch-bulk-insert/core/src/main/java/org/pentaho/di/trans/steps/elasticsearchbulk/ElasticSearchBulkMeta.java

:heavy_exclamation_mark: 'method def' child has incorrect indentation level 6, expected level should be 4. at Line: 767

:heavy_exclamation_mark: Line has trailing spaces at Line: 787

:heavy_exclamation_mark: Line has trailing spaces at Line: 791

/home/buildguy/project/plugins/elasticsearch-bulk-insert/core/src/main/java/org/pentaho/di/ui/trans/steps/elasticsearchbulk/ElasticSearchBulkDialog.java

:heavy_exclamation_mark: Line has trailing spaces at Line: 902

:heavy_exclamation_mark: 'lambda arguments' has incorrect indentation level 10, expected level should be 8. at Line: 903

:heavy_exclamation_mark: Line has trailing spaces at Line: 904

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 906 Column: 12

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 906 Column: 99

:heavy_exclamation_mark: Line has trailing spaces at Line: 910

:heavy_exclamation_mark: Line has trailing spaces at Line: 911

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 911 Column: 73

:heavy_exclamation_mark: Line has trailing spaces at Line: 956

:x: Build failed in 4m 45s
Build command:
mvn clean verify -B -e -Daudit -amd

:exclamation: No tests found!
Errors:
Filtered log (click to expand)

Pull request 5799 : Not mergeable at b203a966793997742f5aa546ab1955e714401453+2866b5a140ec944bd4e37e4548d9ad4d075df5c2 (NOT_MERGEABLE)

:information_source:  This is an automatic message


Add back Pod selection checkboxes and delete button to workload views in Cluster Explorer

Internal reference: SURE-3726
Issue description:
In the Cluster Manager UI, when in the view for a workload (i.e. Deployment, DaemonSet etc). the list of Pods for the workload had checkboxes and a delete button allowing multi-select to delete Pods. This is not present in the Cluster Explorer UI.
There's one report that users rely heavily on Rancher UI and apparently made heavy use of deletion of Pods from within a workload view. They can delete multiple Pods via the Pods view, but adds the challenge of locating Pods in Namespace with many Pods and making sure not to delete Pods for other workloads by accident.
Repro steps:

Provision a Rancher v2.6.2 instance and custom cluster
Navigate to a workload, i.e. coredns in kube-system Namespace, observe lack of multi-select checkboxes and delete button
Navigate to the same workload in the Cluster Manager UI, observe mutli-select checkboxes and delete button

Workaround:
Is workaround available and implemented? Yes
What is the workaround: Select and delete multiple Pods for the workloads from the Pods view (being sure to delete Pods for the correct workload)
Actual behavior:
No ability to select and delete multiple Pods within the view for a workload (i.e. Deployment, DaemonSet etc.)
Expected behavior:
Ability to select and delete multiple Pods within the view for a workload (i.e. Deployment, DaemonSet etc.)

See below - the table does not show actions, hence no checkboxes:

@mantis-toboggan-md This should be just a case of setting :table-actions="false" to true in detail/workload/index.vue - I believe this used to have layout issues with the buttons overlapping things - but I don't believe it does this any longer, so we can re-enable - worth checking that it renders okay.

Reproduced on 2.6.3

Test Environment:
Rancher version: 2.6-head e55a04c
Rancher cluster type: HA
Docker version: 20.10
Downstream cluster type: RKE2 node driver
Downstream K8s version: v1.21.9+rke2r1

Testing:

Create a deployment
Workloads -> Deployments -> click on the deployment you created
At this point you are taken to the pod list page

checkboxes are present next to each pod
checkbox to select all pods in the deployment is present
i can delete one/many pods by selecting them individually or by selecting them all

when pod(s) is deleted expected DELETE request is sent by UI https://rancher_url/k8s/clusters/cluster_id/v1/pods/default/pod_id per pod

i can download yaml files for selected pods

when pod(s) yaml is downloaded expected GET request is sent by UI https://rancher_url/k8s/clusters/cluster_id/v1/pods/default/pod_id per pod

the whole pod table is responsive: you can left click on the field to have it selected and right click to have options open


canExecuteInTransaction is not respected by JavaMigration

Which version and edition of Flyway are you using?
5.2.4
If this is not the latest version, can you reproduce the issue with the latest one as well?
(Many bugs are fixed in newer releases and upgrading will often resolve the issue)
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Java API
Which database are you using (type & version)?
PostgresSQL
Which operating system are you using?
Ubuntu 18.10
What did you do?
(Please include the content causing the issue, any relevant configuration settings, the SQL statement that failed (if relevant) and the command you ran.)
Write a java migration that must execute outside of a transaction - alter type public.my_type add value 'new_value';
What did you expect to see?
No error
What did you see instead?
A postgres error
The issue comes from the fact that the JavaMigrationExecutor doesn't forward the migration's canExecuteInTransaction value, which can be seen here:
https://github.com/flyway/flyway/blob/master/flyway-core/src/main/java/org/flywaydb/core/internal/resolver/java/JavaMigrationExecutor.java#L68
The method should be
    @Override
    public boolean canExecuteInTransaction() {
        return this.javaMigration.canExecuteInTransaction();
    }

Also, I had a tough time debugging it b/c the reflection code that instantiates the migration hides inner exceptions, and is difficult to find.  I'm working on a PR that fixes the issue, and makes reflection errors easier to detect.

Here's the code that makes debugging difficult: https://github.com/flyway/flyway/blob/master/flyway-core/src/main/java/org/flywaydb/core/internal/util/ClassUtils.java#L128-L164

Thanks for catching this and investigating. Truly appreciated! Fixed.

Is it possible to get a 5.X.Y release including this fix since 6.X.Y isn't yet ready for production?


mmctl command update

Added some missing commands to mmctl documentation.

@mgdelacroix, when you have a moment could you look this over? Thank you!


Docker container failing to start isn't properly detected

Even if the docker container doesn't start it will often show the success message

Should be fixed with<EMAIL_ADDRESS>waiting for some feedback before closing.


tests/k8s: erroring out k8s multinode tests in case of error

Since the k8s tests where being executed inside an ssh session, the
error might not be propagated to the caller. By setting set -e inside
the same ssh command we make sure we fail if some of the tests failed
as well.
Signed-off-by: André Martins<EMAIL_ADDRESS>

Hopefully jenkins should error out now.


Translation is missing warning

Describe the bug
Using Document.createElement('script') cause the warning of translation is missing.
Extension Version
i18n-ally (v1.8.5)
Framework/i18n package you are using
react-i18next (In next.js project with react-i18next installed)
To Reproduce
Steps to reproduce the behavior:

Go to pages/_app.tsx
Add Document.createElement('script') in componentDidMount()
See the warning of vscode

Screenshots

May I have the output messages in the Output > i18n Ally panel?
Something like this:

Thanks!

May I have the output messages in the Output > i18n Ally panel?
Something like this:

Thanks!

It seems no error here.

@bcjohnblue Looks like you are using an out to dated version. Please update and check if the problem persists. Thanks.

@bcjohnblue Looks like you are using an out to dated version. Please update and check if the problem persists. Thanks.

When I update to v1.9.0, it doesn't show any warnings. Thanks a lot!


Checking amount of token in liquidity pool (Uniswap v2)

It is unclear how to use something like get_token_balance() with respect to the Uniswap v2 factory contract. I am trying to view the amount of a token in the Uniswap v2 liquidity pool,  and it seems all I can check is the ERC20 token balance globally.
Edit: I see now I can use get_ex_token_balance(), but I am receiving the Uniswap v1 pool amounts. When I switch to version 2 the Factory methods seem broken. I see it may be a work in progress with Erik, and am interested about the new Web3 market data read functions. Thanks!

I added my own function to the library to get amount of tokens in liquidity pool and to get the price of the input token in eth. Here is the code,
def get_token_price_in_eth(self, owner, weth_address,token) -> Wei:
weth_address = self.w3.toChecksumAddress(weth_address)#WETH
erc20_weth = self.erc20_contract(weth_address)
owner = self.w3.toChecksumAddress(owner)#Uni:Token input exchange ex: UniV2:DAI
weth_balance: int = erc20_weth.functions.balanceOf(owner).call()
weth_balance = float(self.w3.fromWei(weth_balance,'ether') )
print (f'WETH quantity in Uniswap Pool = {weth_balance}')
token_address = self.w3.toChecksumAddress(token) # Like DAI
erc20 = self.erc20_contract(token_address)
token_balance: int = erc20.functions.balanceOf(owner).call()
gwei =<PHONE_NUMBER>
token_balance = float(token_balance / gwei)
print (f'Token balance in Uniswap Pool = {token_balance}')
return float(weth_balance/token_balance)  # price of token

@cmackeen Yeah, I was lazy and didn't implement get_ex_token_balance for Uniswap v2 since I didn't personally have any need for it.
It should be easy to implement in a similar fashion to what @msujithk suggested (although I haven't tested it), so feel free to submit a PR!

@ErikBjare I'd like to work on this issue, is there anyone else working on this issue? Otherwise, would you like to assign me this issue? (Or should I send a pull request without an assign?)

@yukarinoki To my knowledge no one is working on it. Go ahead and do your thing, I'll assign you to the issue :)

I added my own function to the library to get amount of tokens in liquidity pool and to get the price of the input token in eth. Here is the code,
def get_token_price_in_eth(self, owner, weth_address,token) -> Wei:
    weth_address = self.w3.toChecksumAddress(weth_address)#WETH
    erc20_weth = self.erc20_contract(weth_address)
    owner = self.w3.toChecksumAddress(owner)#Uni:Token input exchange ex: UniV2:DAI
    weth_balance: int = erc20_weth.functions.balanceOf(owner).call()
    weth_balance = float(self.w3.fromWei(weth_balance,'ether') )
    print (f'WETH quantity in Uniswap Pool = {weth_balance}')
    token_address = self.w3.toChecksumAddress(token) # Like DAI
    erc20 = self.erc20_contract(token_address)
    token_balance: int = erc20.functions.balanceOf(owner).call()
    gwei =<PHONE_NUMBER>
    token_balance = float(token_balance / gwei)
    print (f'Token balance in Uniswap Pool = {token_balance}')
    return float(weth_balance/token_balance)  # price of token

How do you find that "owner" knowing only token address?

Any news about this? I'd like to have a way to get the amount of tokens provided as liquidity in a specific uniswap pool.

When you create a pair the object returned by the sdk has "tokenAmounts" and "liquidityToken" as two identifiers you can call query. "tokenAmounts" contains the contract addresses for the two tokens you are trying to trade and their relative value and "liquidityToken" contains the contract address for the liquidity pool. To get the balance/rate from the liquidity pool create and instance of the ERC20 contract using the ABI and the address of the liquidity pool (new Contract(erc20ABI, addressOfPool)) and then call the 'balanceOf' function using the token0 and token1 addresses and then process the balances to get the price.

    token_balance: int = erc20.functions.balanceOf(owner).call()
    gwei =<PHONE_NUMBER>
    token_balance = float(token_balance / gwei)

Hi,
Can you explain why you are dividing the balance of the token by gwei ? I can't understand this.

The balance received is wei, replace gwai with how ever many units of wei make up 1 unit of the currency. It just turns the huge numbers in to easier to manage decimals. You should consider using a big number package as there will be implicit rounding issues making your output less precise.
Sent from my iPhone

On 9 Apr 2021, at 10:05, 0hax @.***> wrote:

token_balance: int = erc20.functions.balanceOf(owner).call()
gwei =<PHONE_NUMBER>
token_balance = float(token_balance / gwei)
Hi,
Can you explain why you are dividing the balance of the token by gwei ? I can't understand this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

I added my own function to the library to get amount of tokens in liquidity pool and to get the price of the input token in eth. Here is the code,
def get_token_price_in_eth(self, owner, weth_address,token) -> Wei:
    weth_address = self.w3.toChecksumAddress(weth_address)#WETH
    erc20_weth = self.erc20_contract(weth_address)
    owner = self.w3.toChecksumAddress(owner)#Uni:Token input exchange ex: UniV2:DAI
    weth_balance: int = erc20_weth.functions.balanceOf(owner).call()
    weth_balance = float(self.w3.fromWei(weth_balance,'ether') )
    print (f'WETH quantity in Uniswap Pool = {weth_balance}')
    token_address = self.w3.toChecksumAddress(token) # Like DAI
    erc20 = self.erc20_contract(token_address)
    token_balance: int = erc20.functions.balanceOf(owner).call()
    gwei =<PHONE_NUMBER>
    token_balance = float(token_balance / gwei)
    print (f'Token balance in Uniswap Pool = {token_balance}')
    return float(weth_balance/token_balance)  # price of token

How do you find that "owner" knowing only token address?

You can generate the token pair using the router address of uniswap (or sushiswap), and the two token addresses.  I answered this question on stackexchange: https://stackoverflow.com/questions/66710238/compute-uniswap-pair-address-via-python/67156507#67156507

I also lost you on how to get the owner and why it's the same owner for both tokens/addresses.

I also lost you on how to get the owner and why it's the same owner for both tokens/addresses.

The 'owner' key is the address for the token pair which is unique for each Exchange.

So, the function shared on this post can be used to get the liquidity in v2? I am looking to use this in BSC chain.
I already got the fix for constants.py for the BSC chain, and I have also copied the function suggested here, but I do not understand the parameters. Suppose I want to check the liquidity of CAKE in pancakeswap. All I have is the CAKE contract address.
What is owner, weth_addrees and token?

@msujithk also, I am getting
AttributeError: 'Uniswap' object has no attribute 'erc20_contract'
Where is that method?

Sorry for my last two comments, got it figured out.
Working code for BSC:
    def get_pool_info(self, owner, weth_address, token) -> Wei:
        weth_address = self.w3.toChecksumAddress(weth_address)  # WETH
        erc20_weth= _load_contract_erc20(self.w3, weth_address)

        owner = self.w3.toChecksumAddress(owner)
        weth_balance: int = erc20_weth.functions.balanceOf(owner).call()
        weth_balance = float(self.w3.fromWei(weth_balance, 'ether'))
        print(f'WETH quantity in Uniswap Pool = {weth_balance}')
        token_address = self.w3.toChecksumAddress(token)  # Like DAI
        erc20 = _load_contract_erc20(self.w3, token_address)

        token_balance: int = erc20.functions.balanceOf(owner).call()
        gwei =<PHONE_NUMBER>
        token_balance = float(token_balance / gwei)
        print(f'Token balance in Uniswap Pool = {token_balance}')

        return 0.0 if token_balance == 0 else float(weth_balance / token_balance)  # price of token

Used like this:
# For BSC network
CONTRACTS = {
    "no_liq": "0x0Fc701755e825C488439Df26393505C4AC9e6Fc1",
    "CAKE": "0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82"
}

PANCAKE_SWAP_FACTORY= "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73"
PANCAKE_SWAP_ROUTER = "0x10ED43C718714eb63d5aA57B78B54704E256024E"

for name, addr in CONTRACTS.items():
    pancakeswap.get_pool_info(
        owner=PANCAKE_SWAP_ROUTER,
        weth_address=addr,
        token=addr
    )

@joseddg92 is there anyway for me to message you about the code above?

@joseddg92 Does your code get the amount of lp tokens for a given address

@joseddg92 method is just good for tracking small amounts of tokens, it can not work for most of the tokens. @8ty8t, @Mreyna3. I think we need to figure out some other ways to successfully tracking the liquid pool.

@Mreyna3, @8ty8t, are you looking to check  LP tokens for V2 or V3 uniswap. For V2, you can check the total LP from the pairs contract function totalSupply(). I think V3 should be roughly similar. If you are still looking for a solution. I can type one up.

joseddg92 no such thing as sorx or fx or etc, cepux, say etc any nmw s perfect

@Mreyna3, @8ty8t, are you looking to check LP tokens for V2 or V3 uniswap. For V2, you can check the total LP from the pairs contract function totalSupply(). I think V3 should be roughly similar. If you are still looking for a solution. I can type one up.

Where can I get the abi for this?


Update owners.txt

Hello, please add sahara101 :)

Your packages were added a few hours ago! Are you using /endpoint? Try /dynamic/json

Thank you, you rock!

No problem! I'll close this then


Potential bug:  Documentation links don't work

Description
Hi! The README has a documentation link at the top of a page as well as a link to the API reference in the documentation section but neither works for me (I get a 404 error).
Reproduction steps
1. Go to README
2. Click on the `documentation` button

Version
latest
Screenshots
No response
OS
No response

Hello! I'm out sick today but can have a look when I'm back.

It seems to work now, no idea why I was getting a 404 yesterday 🤷🏻♀

I had it too, just tried around with a few things, something must have worked 😅


MINOR: Introduce producer.config property to ConsoleProducer

This makes it easier to pass security properties in the same way
to ConsoleConsumer and ConsoleProducer.

./gradlew test passed locally

Thanks for the patch. LGTM


[MLS Spec change] Editorial (#698)

Link to the exact changes
https://github.com/mlswg/mls-protocol/pull/698
Description of the changes

This is only editorial and will be addressed when working through the other spec issues.


Remote end closed socket abruptly errors

Hi,
We are randomly getting the error "Remote end closed socket abruptly" when streaming a download to a file.  Sorry for the long wait. :)


Sentry swallows errors in test environment

Environment

Elixir version (elixir -v): 1.6.4
Erlang/OTP version (erl): 20.3.2
Sentry version (mix deps): 6.2.0
Operating system: MacOS

Description
Adding Sentry.Plug behaviour to the router creates a stack trace that obfuscates where the real errors are being thrown.
Expected Behavior
The stack traces that are thrown during tests should not be swallowed by Sentry.
     ** (Ecto.Query.CastError) lib/TestApp/analytics/analytics.ex:149: value `%TestApp.Analytics.App{__meta__: #Ecto.Schema.Metadata<:loaded, "apps">, created_at: ~N[2018-04-14 16:49:52.332741], id: 2129, identifier: "st", title: "Sentry Test", updated_at: ~N[2018-04-14 16:49:52.332752]}` in `where` cannot be cast to type :id in query:

     from a in TestApp.Analytics.Report,
       where: a.app_id == ^%TestApp.Analytics.App{__meta__: #Ecto.Schema.Metadata<:loaded, "apps">, created_at: ~N[2018-04-14 16:49:52.332741], id: 2129, identifier: "st", title: "Sentry Test", updated_at: ~N[2018-04-14 16:49:52.332752]} and a.report_date >= ^~D[2018-04-13] and a.report_date <= ^~D[2018-04-14],
       select: a

    stacktrace:
       (elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
       (elixir) lib/enum.ex:1397: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
       (elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
       (ecto) lib/ecto/repo/queryable.ex:124: Ecto.Repo.Queryable.execute/5
       (ecto) lib/ecto/repo/queryable.ex:37: Ecto.Repo.Queryable.all/4
       (test_app) lib/test_app_web/controllers/report_controller.ex:61: TestAppWeb.ReportController.index/2
       (test_app) lib/test_app_web/controllers/report_controller.ex:1: TestAppWeb.ReportController.action/2
       (test_app) lib/test_app_web/controllers/report_controller.ex:1: TestAppWeb.ReportController.phoenix_controller_pipeline/2
       (test_app) lib/test_app_web/endpoint.ex:1: TestAppWeb.Endpoint.instrument/4
       (phoenix) lib/phoenix/router.ex:278: Phoenix.Router.__call__/1
       (test_app) lib/plug/error_handler.ex:64: TestAppWeb.Router.call/2

Actual Behavior
     ** (FunctionClauseError) no function clause matching in URI.parse/1

     The following arguments were given to URI.parse/1:

         # 1
         nil

     Attempted function clauses (showing 2 out of 2):

         def parse(%URI{} = uri)
         def parse(string) when is_binary(string)

     code: |> get(report_path(conn, :index, params), nil)
     stacktrace:
       (elixir) lib/uri.ex:414: URI.parse/1
       (sentry) lib/sentry/client.ex:213: Sentry.Client.get_dsn/0
       (sentry) lib/sentry/client.ex:308: Sentry.Client.get_headers_and_endpoint/0
       (sentry) lib/sentry/client.ex:88: Sentry.Client.do_send_event/3
       (test_app) lib/test_app_web/endpoint.ex:1: TestAppWeb.Endpoint.call/2
       (phoenix) lib/phoenix/test/conn_test.ex:224: Phoenix.ConnTest.dispatch/5
       test/test_app_web/controllers/report_controller_test.exs:27: (test)

Steps to Reproduce
Write a controller (ConnCase) test that throws an exception with Sentry configured as per the documentation – Sentry.Plug to the router, and Sentry.Phoenix.Endpoint to the Phoenix endpoint module.

Thanks for opening the issue! It looks like you have Sentry configured to run in the test environment, and it's failing while trying to send an error because the DSN is not configured and is trying to parse nil.
If you don't want to be running Sentry in the test environment, see the :environment_name and :included_environments configuration documentation in https://hexdocs.pm/sentry/readme.html#configuration.

If there's further information, I can reopen this, but I am going to close it for now :)


Implement abc.abstractmethod pattern

What was wrong?
Abstract methods did not use the abc.abstractmethod decorator (see #466)
How was it fixed?
Added decorator
Cute Animal Picture

Ok, hold off this isn't finished yet. I had to partially roll back some changes and will reintroduce them properly soon.

@pipermerriam It's green and ready for another review now. I had to create some Dummy classes for tests that previously instantiated abstract classes that are now forbidden to instantiate.
There's one thing though. I don't fully understand why the metaclass=ABCMeta is needed because it also seems to work without that: https://stackoverflow.com/questions/49297254/abstractmethod-works-just-fine-without-metaclass-abcmeta-when-it-shouldnt

@pipermerriam so it turns out that without metaclass=ABCMeta only mypy will catch the error whereas with metaclass=ABCMeta both mypy and python will catch the error.
See:

from abc import abstractmethod

class C():
    @abstractmethod
    def my_abstract_method(self):
        print('foo')

class D(C):
    pass

x = C()
y = D()

$ mypy test.py
test.py:13: error: Cannot instantiate abstract class 'C' with abstract attribute 'my_abstract_method'
test.py:15: error: Cannot instantiate abstract class 'D' with abstract attribute 'my_abstract_method'

but
$ python3 test.py
$

Wheras with that, python will catch the error as well.
from abc import ABCMeta, abstractmethod

class C(metaclass=ABCMeta):
    @abstractmethod
    def my_abstract_method(self):
        print('foo')

class D(C):
    pass

x = C()

y = D()

$ python3 test.py
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    x = C()
TypeError: Can't instantiate abstract class C with abstract methods my_abstract_method

This broke ChainSyncer. I'm now getting this when I try to run it:
19:07:40 ERROR: Unexpected error when handling remote msg: Traceback (most recent call last):
  File "/home/salgado/src/py-evm/p2p/peer.py", line 256, in run
    await self.read_loop()
  File "/home/salgado/src/py-evm/p2p/peer.py", line 300, in read_loop
    cmd, msg = await self.read_msg()
  File "/home/salgado/src/py-evm/p2p/peer.py", line 318, in read_msg
    decoded_msg = cmd.decode(msg)
  File "/home/salgado/src/py-evm/p2p/protocol.py", line 83, in decode
    return self.decode_payload(data[1:])
  File "/home/salgado/src/py-evm/p2p/protocol.py", line 70, in decode_payload
    data = rlp.decode(rlp_data, sedes=decoder)
  File "/home/salgado/virtualenvs/pyevm/lib/python3.6/site-packages/rlp-0.6.0-py3.6.egg/rlp/codec.py", line 226, in decode
    obj = sedes.deserialize(item, **kwargs)
  File "/home/salgado/virtualenvs/pyevm/lib/python3.6/site-packages/rlp-0.6.0-py3.6.egg/rlp/sedes/lists.py", line 126, in deserialize
    result.append(self.element_sedes.deserialize(element))
  File "/home/salgado/virtualenvs/pyevm/lib/python3.6/site-packages/rlp-0.6.0-py3.6.egg/rlp/sedes/lists.py", line 255, in deserialize
    obj = cls(**dict(list(params.items()) + list(kwargs.items())))
TypeError: Can't instantiate abstract class BaseTransaction with abstract methods check_signature_validity, create_unsigned_transaction, get_intrinsic_gas, get_message_for_signing, get_sender

Any idea how I'd go about fixing it? You can see it by running the following:

python -m p2p.chain -db /tmp/foo

Sorry, I'm on mobile now but basically that means that the code tried to
instantiate BaseTransaction which is prohibited now as it is considered an
abstract class that needs to be derived from and have the mentioned methods
overwritten. Is that wrong for BaseTransaction?
On Mar 15, 2018 20:11, "Guilherme Salgado"<EMAIL_ADDRESS>wrote:

This broke ChainSyncer. I'm now getting this when I try to run it:
19:07:40 ERROR: Unexpected error when handling remote msg: Traceback (most recent call last):
File "/home/salgado/src/py-evm/p2p/peer.py", line 256, in run
await self.read_loop()
File "/home/salgado/src/py-evm/p2p/peer.py", line 300, in read_loop
cmd, msg = await self.read_msg()
File "/home/salgado/src/py-evm/p2p/peer.py", line 318, in read_msg
decoded_msg = cmd.decode(msg)
File "/home/salgado/src/py-evm/p2p/protocol.py", line 83, in decode
return self.decode_payload(data[1:])
File "/home/salgado/src/py-evm/p2p/protocol.py", line 70, in decode_payload
data = rlp.decode(rlp_data, sedes=decoder)
File "/home/salgado/virtualenvs/pyevm/lib/python3.6/site-packages/rlp-0.6.0-py3.6.egg/rlp/codec.py", line 226, in decode
obj = sedes.deserialize(item, **kwargs)
File "/home/salgado/virtualenvs/pyevm/lib/python3.6/site-packages/rlp-0.6.0-py3.6.egg/rlp/sedes/lists.py", line 126, in deserialize
result.append(self.element_sedes.deserialize(element))
File "/home/salgado/virtualenvs/pyevm/lib/python3.6/site-packages/rlp-0.6.0-py3.6.egg/rlp/sedes/lists.py", line 255, in deserialize
obj = cls(**dict(list(params.items()) + list(kwargs.items())))
TypeError: Can't instantiate abstract class BaseTransaction with abstract methods check_signature_validity, create_unsigned_transaction, get_intrinsic_gas, get_message_for_signing, get_sender
Any idea how I'd go about fixing it? You can see it by running the
following:
python -m p2p.chain -db /tmp/foo
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ethereum/py-evm/pull/467#issuecomment-373490541, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAfzlbA3pKda6N51N2R8gKehuoE3BpVDks5terzJgaJpZM4SrUa4
.

Any idea how I'd go about fixing it?

Quick fix is to remove metaclass=ABCMeta from the BaseTransaction
Intermediate fix is to make a P2PTransaction class which stubs out all of the un-implemented methods.
Correct fix is to use the proper transaction classes for each VM based on the block number the transaction is in.

I'm fine with any of these, with the understanding that we probably need to eventually get to where we're using the proper transaction class for each VM.

I'd volunteer to make the correct fix in case you want to go for a
quicker one meanwhile. However, chances are that I won't be able to work on
it for the next one or two weeks. If that would be too long to wait don't
worry about me.
On Mar 15, 2018 21:11, "Piper Merriam"<EMAIL_ADDRESS>wrote:

Any idea how I'd go about fixing it?

Quick fix is to remove metaclass=ABCMeta from the BaseTransaction
Intermediate fix is to make a P2PTransaction class which stubs out
all of the un-implemented methods.
Correct fix is to use the proper transaction classes for each VM
based on the block number the transaction is in.

I'm fine with any of these, with the understanding that we probably
need to eventually get to where we're using the proper transaction class
for each VM.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ethereum/py-evm/pull/467#issuecomment-373507540, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAfzldythCwdNyk6V4jDmGfOxbDKr4vwks5tessDgaJpZM4SrUa4
.

@pipermerriam the correct fix is not really possible since the P2P messages that include transactions do not include any info about the block to which they belong. We could look up that information but for that we'd have to make the chaindb available to p2p.Command, and even then we'd still need to first deserialize the tx into a non-vm-specific transaction type so that we could generate the trie data and hash it in order to lookup the block to which the transactions belong

@gsalgado can't any rlp.Serializable also be decoded as a simple list of values?  Would it be possible to replace all of the usages of BaseTransaction with sedes.List or sedes.CountableList (i don't now which is the right one).?

That should be possible, but using BaseTransaction helps ensuring whatever we store in the DB can later be deserialized into the vm-specific transaction types. Another alternative would be to have P2PTransaction inherit from rlp.Serializable and just copy the fields from BaseTransaction, like this:
 class P2PTransaction(rlp.Serializable):
    fields = BaseTransaction.fields.copy()


cli: typo in setup.py file causing install failures

@ivotron  Please review https://github.com/systemslab/popper/pull/519

fixed in #519


add nri server

Ⅰ. Describe what this PR does
Koordinator as a QoS based scheduling system for hybrid workloads orchestration on Kubernetes and its runtime hooks support two working modes for different scenarios: Standalone and Proxy. However, both of them have some constraints in 2023/02/07 meeting discussion. We'd like to integrate NRI framework to address these constraints based on community recommend mechanism.
This PR will implement a NRI plugin in koordlet. Currently, it co-exist with standalone and proxy mode. Koodlet will start an NRI plugin to subscribe pod/container lifecycle events from container runtime (e.g. containerd, crio), and then koordlet NRI plugin will call runtime hooks to adjust pod resources or OCI spec.

Ⅱ. Does this pull request fix one issue?
fix #1277

Ⅲ. Describe how to verify it

Create BE pod with batch_resource hook enable
Check pod/container level cpu.cfs_quota_us and memory.limit_in_bytes values

Ⅳ. Special notes for reviews

Some errors may need to pass to containerd based on PluginFailurePolicy, this may be done in the future
Other hook points may be added in the future

V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/cc @zwzhang0107 @hormes @eahydra @FillZpp @ZiMengSheng @jasonliu747 @ZYecho @honpey PTAL

Welcome to participate in Koordinator's technical co-construction, and jointly promote the evolution of the framework of community standards(nri).

Please add more UT cases to improve the code coverage.

Yes, I'm doing this.

/lgtm
/approve

/assign @hormes @FillZpp

/approve


link to answer added for A4

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
What did you learn from the changes you have made?
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
How were these changes tested?
A reference to a related issue in your repository (if applicable)
Checklist

[ ] I can confirm that my changes are working as intended

noted! added the table within markdown file.

Hi @Melokazz
I am not sure if my A4 has been marked or not.
I have  already submitted changes.
Thanks


Dynamic path validation

Dynamic pages could extend a new DynamicPage Logic type which supplies a validatePath abstract function.
Not sure of how this could be implemented, but it would allow for some nice defaults out of the box.

This makes more sense now there are exceptions thrown for errors and redirects (#378)

Closed as go() function can just throw an exception.


[FEATURE] Add directive to allow autofocus option for pick dialogs

Please don't include dist in pull requests


Font Conflict (w/module Token Mold)

Found a conflict with the module Token Mold, but I've also found the source. Token Mold uses font-awesome to for stat overlays, but in the age-system.css at line 3694 the font-override styling causes these icons to show as errors. I was able to fix this particular issue by adding the '.fas' class to to *:not(i, .fas).
I have not found any other issues regarding font conflicts, but I'm sure you can think of a better solution.

Thanks for reporting. The solution you proposed is the best I can think of. It will be implemented in the next release.


[Discussion] Time to start tagging releases for the TF operator?

Several documented examples depend on an unversioned tarball URL.
In order to:

make demos more reproducible
speak clearly about when changes happened
make organized progress toward 1.0
begin building release capabilities among the contributors

it would be great for this project to begin tagging pre-release (v0.x.x) versions.

I think we should close this in favor of kubeflow/kubeflow#215
I think the ksonnet configs are the things we want to tag and pin since those are what we expect users to interact with.

Duplicate of kubeflow/kubeflow#215


Removing the first item in the dev drive window from tab stop

Summary of the pull request
Some item, somewhere, has IsTabStop to true and is invisible. This was causing users to tab twice in the DevDrive window to get to the first element.
I could not find this invisible element.  Instead I found the first element above the "Learn More" hyperlink and turned "IsTabStop" to false.
References and relevant issues
Task
Detailed description of the pull request / Additional comments
Validation steps performed
Manually tested
PR checklist

[ ] Closes #xxx
[ ] Tests added/passed
[ ] Documentation updated

How does this behave with Narrator?

With the one line fix (compared to the multi line fix) nothing.  narrator works as expected.  So does the tabbing order.


Release security advisories for recent oC updates

Not quite sure if this is already on the roadmap but it would make sense to release the security advisories for the recent oC updates. This would correct wrong claims like "unpatched vulnerabilities" like seen in:
http://seclists.org/fulldisclosure/2016/Nov/34
where these vulns where already patched since around 2-3 weeks but just not released in a new version.
cc @DeepDiver1975 @PVince81

They arrived in https://github.com/owncloud/owncloud.org/pull/1097 so closing here.


Terminal is initialised with the wrong cursor style

When creating the terminal, and passing the cursorStyle through options, the cursor will still be block.  This is because the class for the cursor style xterm-cursor-style-... is not set when creating the terminal.

Nice find, repro'd in the demo. I missed this because we apply all options after the terminal is initialized.

I was able to fix this in #781 via https://github.com/sourcelair/xterm.js/pull/781/commits/98d9b5e26d417c6e01329ed9d188bb441c87aff6


py: More re/factoring

Towards improved tests #17
Fix #128

Codecov Report

Merging #129 (74df4c4) into main (b0de060) will increase coverage by 2.60%.
The diff coverage is 31.36%.

@@            Coverage Diff             @@
##             main     #129      +/-   ##
==========================================
+ Coverage   31.84%   34.44%   +2.60%
==========================================
  Files          70       77       +7
  Lines        1975     2061      +86
==========================================
+ Hits          629      710      +81
- Misses       1346     1351       +5

Impacted Files
Coverage Δ

playground/control/api/listener.py
46.80% <0.00%> (ø)

playground/control/attribs/request/network.py
42.55% <0.00%> (ø)

playground/control/connectors/docker/networks.py
28.00% <28.00%> (ø)

playground/control/connectors/docker/services.py
32.65% <32.65%> (ø)

playground/control/connectors/docker/proxies.py
33.33% <33.33%> (ø)

playground/control/connectors/docker/client.py
34.69% <53.84%> (+10.52%)
:arrow_up:

tests/py/run.py
100.00% <0.00%> (ø)

tests/py/validators.py
100.00% <0.00%> (ø)

tests/py/request.py
100.00% <0.00%> (ø)

... and 3 more

Continue to review full report at Codecov.

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


Table-Valued Parameters (TVPs) with fast_executemany

Python version 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)]
pyodbc version 4.0.27
msodbcsql17.dll version 17.03.0001
Given the following database objects ...
/****** Object:  UserDefinedTableType [dbo].[intTable]    Script Date: 2019-08-06 08:04:34 ******/
CREATE TYPE [dbo].[intTable] AS TABLE(
    [c1] [int] NOT NULL,
    PRIMARY KEY CLUSTERED
(
    [c1] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
GO

/****** Object:  StoredProcedure [dbo].[tvpTestProc]    Script Date: 2019-08-06 08:05:39 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[tvpTestProc]
    @tbl intTable READONLY
AS
BEGIN
    SET NOCOUNT ON;
    INSERT INTO tvpTestTable (c1) SELECT c1 FROM @tbl;
END

GO

... the following code works fine:
crsr.execute("TRUNCATE TABLE tvpTestTable")
data = [[[[1],[2]]] for i in range(3)]
sql = "{CALL tvpTestProc(?)}"
crsr.fast_executemany = False
crsr.executemany(sql, data)
print(crsr.execute("SELECT * FROM tvpTestTable").fetchall())
# [(1, 1), (2, 2), (3, 1), (4, 2), (5, 1), (6, 2)]

However, when I change fast_executemany to True then I get

pyodbc.ProgrammingError: ('Unknown object type list during describe', 'HY000')

I tried using both UseFMTONLY=Yes and UseFMTONLY=No and I got the same result.
SQL.LOG shows that SQLDescribeParam is successful ...
main            170c-1288	EXIT  SQLDescribeParam  with return code 0 (SQL_SUCCESS)
        HSTMT               0x006CAAB8
        UWORD                        1
        SWORD *             0x020DDB4A (-153)
        SQLULEN *           0x020DDB4C (0)
        SWORD *             0x020DDB50 (0)
        SWORD *             0x0031F8F0 (1)

... but pyodbc appears to be unhappy with what it got back.

TVP is not currently supported with fast_executemany; a TVP is itself an array of parameters.


Proto3

Codecov Report

Merging #205 into master will decrease coverage by 1.68%.
The diff coverage is 65.81%.

@@            Coverage Diff             @@
##           master     #205      +/-   ##
==========================================
- Coverage   69.17%   67.48%   -1.69%
==========================================
  Files          82       82
  Lines       16212    16253      +41
==========================================
- Hits        11214    10969     -245
- Misses       4142     4399     +257
- Partials      856      885      +29

Impacted Files
Coverage Δ

plan/plan.go
44.4% <25%> (-1.39%)
:arrow_down:

expr/node.go
52.73% <66.32%> (-2.03%)
:arrow_down:

rel/sql.go
50.15% <73.33%> (+1.51%)
:arrow_up:

rel/parse_sql.go
64.4% <0%> (-5.7%)
:arrow_down:

lex/dialect_sql.go
84.33% <0%> (-4.44%)
:arrow_down:

schema/schema.go
89.21% <0%> (-2.42%)
:arrow_down:

Continue to review full report at Codecov.

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


Directive unmounted before the end of the transition

Version
3.2.31
Reproduction link
stackblitz.com
SFC Playground
Steps to reproduce
Click on the toggle button to show the div, the background is immediately red.
Click again to hide it, the background becomes transparent before the animation ends.
What is expected?
The background must remain red until the end of the animation.
The directive must not be unmounted during the transition of the element.
What is actually happening?
The directive is unmounted immediately.

A transition must be a postponement of the DOM removal. During the element's transition, it is still in the DOM. It should remain exactly as it was before the transition began and only process its DOM removal behaviors when actually leaving the DOM.
In my actual scenario, the directive is a "stick-to" directive that attaches the element to another using Popper.js.
When "unmounted" is called, I destroy the popper handler object which has the effect of moving the floating item out of position.
When the "unmounted" hook is triggered, the directive should be able to undo whatever changes it had done, regardless of what is outside or how the host element was deleted.
If the "unmount" logic can't be executed in the "unmounted" handler, where should it be?

Duplicate of https://github.com/vuejs/core/issues/994


[Bug #3302] execute scala code in Kyuubi

Why are the changes needed?

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

will check it at weekends

will check it at weekends

Any idea for this one?

I have discussed with @cxzl25 .
Seems there is no a appropriate way to prevent the repl class output conflicts.
Because the repl class outputdir is static for exectors.

Also cc @yaooqinn

seems there is no workaround for this... it's kind of a JVM restriction.

we need a usage guide for scala operation and doc the limitations there, @luoyedeyi would you like to take this?

we need a usage guide for scala operation and doc the limitations there, @luoyedeyi would you like to take this?

Yup, I will do that

Fixed by #4150


Add support for publishing UDP ports

What should we add or change to make your life better?
Possibility to publish UDP ports like you can in Docker 1234:1234/udp.
Why is this important to you?
I'm trying to run a project in Tye that uses OpenTelemetry and their Jaeger exporter. The Jaeger container requires you to publish UDP ports so that the Jaeger client can send data. This is not currently supported by Tye (AFAIK).
When trying something like this in Tye:
- name: jaeger
    image: jaegertracing/all-in-one:1.19
    bindings:
      - name: thrift_compact
        port: 6831/udp
      - name: thrift_binary
        port: 6832/udp
      - name: ui
        port: 16686

You get the following error:
Error parsing tye.yaml: (31, 15): "port" value must be an integer.
It seems that port must be an integer, and looking in DockerRunner.cs there seems to be no way of dealing with this. I would be happy to take a shot a providing a PR if you are interested?

Right now, we support protocol definition via setting protocol.
- name: jaeger
    image: jaegertracing/all-in-one:1.19
    bindings:
      - name: thrift_compact
        port: 6831
        protocol: UDP
      - name: thrift_binary
        port: 6832
        protocol: UDP
      - name: ui
        port: 16686

That configuration would need to be understood by the Jaeger exporter though. You should be able to use the following convention to read the value from config and use it accordingly when configuring Jaeger

Thanks for getting back to me @jkotalik. I'm really no "docker port expert" 😬 but I don't think using protocol does what I need?
In the image below the two first outputs are when running the container through Tye. The third and fourth outputs are when running the container via the following command below the image (taken from the Jaeger getting started):

 docker run -d --name jaeger \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 16686:16686 \
  jaegertracing/all-in-one:1.19

So to me it looks like running it via Tye doesn't publish the ports correctly. Looking at the command Tye produces (I removed a lot of stuff for clarity):
docker run -d -p 6831:6831 -p 6832:6832 -p 16686:16686 --name jaeger_a4d4e801-1 --restart=unless-stopped jaegertracing/all-in-one:1.19

Am I missing something? Have I gotten it wrong? 🤔

Having the same issue. Also with jaeger


Window test extension

I updated the test_extension.c to export the init function for Windows.  I also updated the tests, now all the load extension tests are working on Windows.

Thanks!


Cancelled debugging output of passwords when creating storage-manager.

By default the open-api client logs everything, including credentials.
Also cleaned up some unreachable code.

Seems like 2 unrelated changes.  Would you please split into separate PRs


Sendable receivable protocols

Fixes #24

Thanks! I'll push a few cosmetic changes later, but this should be useful! 👍

I pushed a few small changes, but now that I think about it, I think we'll need to put this PR on hold. Currently we can't express that a Collection of elements UInt8 conforms to Sendable and Receivable, which is the needed base case to make it all work. I saw a Swift proposal that'd allow it being reviewed (possibly even accepted), so we just need to wait until this feature actually gets implemented and merge this then.

Hey everyone, this ended up getting pretty out of date, it'll take some updating. I'm gonna close it until it's ready.


[MRG] Update minimum requirements

Change minimum requirements, so that they are compatible with sklearn 0.23
Adapt CI
Add information to readme

Please don't merge your own PRs

Ok


Allows using less ch weightings than loaded, fixes #1413.

Fixes #1413

There is still a small inconsistency: When there are CH profiles from a previous import we can configure less profiles and its fine (this was done in this PR). However, we cannot configure no CH profile at all, so its like this:
2 CH profiles imported, 2 configured -> ok
2 CH profiles imported, 1 configured -> ok
2 CH profiles imported, 0 configured -> error

I would say it should also be possible to configure no profile at all? However it looks like in #471 this was purposefully prevented...
Btw for LM its entirely different: Modifying config.yml both allows loading less or none of the previously configured LM profiles and its even possible to add LM profiles in config.yml which are then added to the graph folder during the next import.
Maybe some of the confusion arises from CH adding a default CH profile (calling GraphHopper.setCHEnable adds a single CH weighting)?.

I fixed this here: 0a43887654d1b1786fa93a111d6862942d89a176. Its now OK to configure 0 CH profiles when previously there were some. Its still not possible to add additional CH profiles.


[unified builds] PT/IPEX/PT benchmark branches which support Intel Triton XPU 2.1 wheel and Triton 3.0 API at the same time

To streamline the e2e functional and performance validation we PT/IPEX/PT Benchmark branches which support Intel Triton XPU 2.1 (spirv branch) and Intel Triton 3.0 XPU (llvm branch) at the same time:

PYTORCH_REPO: https://github.com/Stonepia/pytorch.git
PYTORCH_BRANCH: dev/triton-test-3.0
IPEX_REPO: https://github.com/intel/intel-extension-for-pytorch.git
IPEX_BRANCH: dev/triton-test-3.0
BENCHMARK_REPO: https://github.com/weishi-deng/benchmark.git
BENCHMARK_BRANCH: main

Hello, This feature is implemented in the latest PyTorch and Triton, for IPEX, there is no API change.
PyTorch: https://github.com/Stonepia/pytorch/commit/cbd2bb7011a63102e3f9235b03e0ce300d151e51
Triton spirv-target: https://github.com/intel/intel-xpu-backend-for-triton/commit/ffc918d7e03b094a68a852419f5e38b78be6ded2
For the above version, both llvm-target and spirv-target could work.

Hello, This feature is implemented in the latest PyTorch and Triton, for IPEX, there is no API change.
PyTorch: Stonepia/pytorch@85c67db
Triton spirv-target: ffc918d
For the above version, both llvm-target and spirv-target could work. To use the spirv backend, please make sure export TRITON_XPU_USE_LEGACY_API=1

Note that https://github.com/Stonepia/pytorch/commit/85c67db7c86bc97b4fb6d39efa62b33e87b4952e#diff-8dfc175f817a04eb10c183509564129a91f32db31190e7b4ad3fd9653337c6f6R487
if os.environ["TRITON_XPU_USE_LEGACY_API"]=="1":

raises KeyError: 'TRITON_XPU_USE_LEGACY_API' if TRITON_XPU_USE_LEGACY_API not set.

Hi, Thanks for pointing out! I have fixed it using os.environ.get in https://github.com/Stonepia/pytorch/commit/d6785e186d9dda8a65c9d9170bd96a6f7faeecdf
It's strange that I didn't encounter this error locally, is it because of the Python version? I use 3.10, and seems that I could pass even if I didn't set this key.

It's strange that I didn't encounter this error locally, is it because of the Python version? I use 3.10, and seems that I could pass even if I didn't set this key.

Thank you fore fixing it! This branch of code is not executed when you install IPEX with the existing Triton. The exception handler is executed if Triton is not installed or installed but import fails.


Update values.toString to output brackets

Based on the outcome of the discussion on gitter about toString output of arrays/objects, either update the code or close this issue.

As discussed on gitter, values.inspect and values.toString should be modified so that
const c1 = null;
const c2 = 5;
const c3 = "abcd";
const c4 =  :2016-01-01 12:34:56:;

const s = "Interpolated: ${c1} ${c2} ${c3} ${c4}";

should interpolate to:
"Interpolated: null 5 abcd 2016-01-01T01:01T12:34:56.000Z"

and:
const c1 = [ null, 5, "abcd",  :2016-01-01 12:34:56: ];
const c2 = { a: null, b: 5, c: "abcd", d: :2016-01-01 12:34:56: };
const c3 = [];
const c4 = {};

const s = "Interpolated: ${c1} ${c2} ${c3} ${c4}";

to:
"Interpolated: [ null, 5, "abcd", "2016-01-01T01:01T12:34:56.000Z" ] { a: null, b: 5, c: "abcd", d: "2016-01-01T01:01T12:34:56.000Z" } [] {}"

At the moment, we seem to have 3 different ways how to accomplish the same task - serializing a point into a string:
Je trochu nejasny, jak postupovat ohledne vystupu nested points:

toString
inspect - if we implement the above proposal from Rodney for toString, inspect can be dropped
fromNative - Mike suggested to keep the output structure of the point 'flat' - basically just keys + JSON for nested fields. This looks like a duplicate, too.

I'd propose folding those three implementations into a single one - toString(), which has:

human-readable output for flat and nested fields
represents the value uniquely, so it can be used as a group identifier

This was codified in a spec https://github.com/juttle/juttle/wiki/String-Representation-of-Juttle-Values and implemented in #200


Version 1.0.5 introduced breaking changes.

The version released at https://github.com/codelabsab/rust-ocpp/releases/tag/v1.0.5 contains a breaking change introduced in https://github.com/codelabsab/rust-ocpp/pull/110.
What should be done?
I would say to yank version 1.0.5 and instead release it as version 2.0.0.

Thank you, I'll do that

v2.0.0 released with information about breaking changes