Leading "/" is being removed

I have a file & it's in directory app/views/folder/somefile.html.erb

After cache busting it gets converted to

The issue is that, plugin is removing the leading "/" & when I load the page it returns me 404 because that page is not on the root url of by webserver.
my config is as follows:
    cacheBust: {
      options: {
        encoding: 'utf8',
        algorithm: 'md5',
        length: 16,
        baseDir: '../public',
        ignorePatterns: [ 'favicons.html.erb' ]
      },
      production: {
        files: [{
          src: [ '../app/views/**/*.erb', './javascripts/angular/templates/**/*.html' ]
        }]
      }
    },

It was working fine before, broke recently

Hi @mudassir0909 - I've just pushed updates to rewriting the way URLs are resolved - try pulling down v0.5.0 and see if that fixes it

This will definitely be fixed in v1.0.0. You can pull down the v1.0.0-beta branch and try that out if you'd like

Thanks! I'm already using a temporary workaround, will pull once it is fixed in v1.0.0


vmware rke1 cluster is reported as AmazonEC2 in cluster management ui

Rancher Server Setup

Rancher version: master-head and v2.6-head
Installation option (Docker install/Helm Chart): Helm

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): k3s

Proxy/Cert Details: letsEncrypt

Information about the Cluster

Kubernetes version: v1.21.3+k3s1
Cluster Type (Local/Downstream): Downstream

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): Vmware infra provider

Describe the bug

When using master-head or v2.6-head to provision a RKE1 cluster on vmware, the cluster provisions correctly, however the cluster management UI reports the Provider as Amazon EC2.
To Reproduce

Launch a RKE1 cluster on vsphere.
Result
Expect the provider to be reported as vmware in the UI.
Expected Result

Screenshots

Additional context
<!--Add any other context about the problem here.—>

Given that the nodetemplatespec has the correct info, I've transferred this to dashboard, but if it's a backend issue, please let us know.

@ibrokethecloud Do you have a setup to share around this as my setup shows my RKE1 DO cluster fine.

I attempted to reproduce on vsphere but the provider was correct. I'll try a couple other RKE1 providers before moving to test.

I saw the same behavior with digital ocean. I think this may have been resolved by some other work.

@ibrokethecloud Can you try with the latest v2.6-head and let me know if you are still seeing the same issue?

Hi @deniseschannon just tried on v2.6-head (723f747) and I still see the same issue.
Both my digitalocean and vmware rke1 clusters report provider as AmazonEC2.

Probably related to #3714

Try creating the cluster after clicking around the different provides.

@ibrokethecloud Can you test again with v2.6.0-rc3 to see if you can reproduce it?

Verified on v2.6-head 72986b2 and v2.6.0-rc3
cloud providers show up as expected for vsphere and DO


app crash on RGB (issue asset)

Please check for both Collectibles and coins
Remove subheading with loreium ipesum
https://github.com/bithyve/bitcointribe/assets/107177634/21be5c82-3f76-4a8e-a2bb-eb621a6a0018

Verified this issue on Tribe app v 2.3.0(619)


Multiple Chrome instances randomly fail in Windows Server 2012

Steps to reproduce
Tell us about your environment:

Puppeteer version: 1.18.1
Platform / OS version: Windows Server 2012 R2, RAM 256 GB, Xeon with 40 cores
URLs (if applicable):
Node.js version: 9.9.0
Chrome version: 77.0.3865.120 (Official Build) (64-bit)

What steps will reproduce the problem?
Please include code that reproduces the issue.

Run 100 parallel instances of any puppeteer test (e.g. in Java thread pool)
Tried using Chrome with different arguments but the result is still the same.
Using a unique user-data-dir argument doesn't change the issue.

What is the expected result?
All 100 parallel tests should be completed
What happens instead?
20-40 puppeteer instances randomly fail with message "Failed to launch Chrome!". The exception stack refers to message_window.cc(112): Failed to create a message only window: The parameter is incorrect (0x57)
The rest of puppeteer test instances completes correctly.
If number of puppeteer test instances is reduced to 50, then all of them succeed.

I can't speak to the exact technical reasoning, but I had similar issues. As I recall, this has to do with running out of file handles for the puppeteer instances (I was running on Ubuntu at the time). That being said, you have some pretty good hardware, and you are on Windows, so that's very interesting. Perhaps @aslushnikov can help.

@nicoandmee Thank you for sharing your experience! To see if crashes are related to system limits, we tried running tests under another user (previously it was the 'local system account') and all 100 instances successfully started. We also tried 200 instances and all of them started as well. It seems only the system user has this issue.

My problem was IIS! Even with admin account, my program couldn't launch too much instances....
The solution was:

host my program through Windows Service https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-6.0&tabs=visual-studio
Use IIS as reverse proxy
https://medium.com/@gusterwoei/how-to-configure-reverse-proxy-on-windows-iis-52a48b90163a


Dashboard - Add ability to see logs per available loggers

I have an app which has a project with 2 Background Services.
Currently, the dashboard show the logs messages in the same window.
It would be useful to have the ability to select the Logger, to filter for only message on specific loggers, maybe a submenu under "Logs->Project"
Something like

Logs

Project

Project Name

Logger 1 Name
Logger 2 Name

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

This would be pretty awesome.

This should be a structured logs feature not a console logs feature (it was also added in preview 2 afaik).
cc @JamesNK

Quite right ... it is there:

The logger category is an option in the structured logs filter dialog. That was added a few days ago. I think it will be available in preview 3?
I considered making it a dropdown on the main page, but there is limited UI space, and a logger name can be very long (name space + type name).
See https://github.com/dotnet/aspire/pull/1214

Yeah, I think what you have in main is good for now. I think we can close this as done.

Useful, yet sadly not enough.
The benefit with the logs section is that it's a console instead of a grid.
As for space, I think menus could eventually be converted into panes, similar to what Azure Portal does, but that one would be another task.

The "console logs" page is displaying what is written to the console. It's all text as far as the dashboard is concerned.
If you want a more structured experience (filtering, log levels, metadata, etc) then you need to use structured logs.


sdl-config is missing while building python3 docker image

Ubuntu 18, nvidia drivers v.430, got this error and no idea how to fix. Installing sdl-config by sudo apt-get install libsdl2-dev on the host machine did not change anything.
Step 41/42 : RUN PATH=/miniconda/bin:$PATH pip install pygame
 ---> Running in 81819a6dc9b6
Collecting pygame
  Downloading https://files.pythonhosted.org/packages/0f/9c/78626be04e193c0624842090fe5555b3805c050dfaa81c8094d6441db2be/pygame-1.9.6.tar.gz (3.2MB)
    ERROR: Command errored out with exit status 1:
     command: /miniconda/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-grocx2w8/pygame/setup.py'"'"'; __file__='"'"'/tmp/pip-install-grocx2w8/pygame/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-grocx2w8/pygame/pip-egg-info
         cwd: /tmp/pip-install-grocx2w8/pygame/
    Complete output (12 lines):

    WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
    Using UNIX configuration...

    /bin/sh: 1: sdl-config: not found
    /bin/sh: 1: sdl-config: not found
    /bin/sh: 1: sdl-config: not found

    Hunting dependencies...
    WARNING: "sdl-config" failed!
    Unable to run "sdl-config". Please make sure a development version of SDL is installed.
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
The command '/bin/sh -c PATH=/miniconda/bin:$PATH pip install pygame' returned a non-zero code: 1

ok. changed that by adding at the 25 line of build script:
### this fixes missing sdl-config during pygame install
RUN apt-get install -y libsdl1.2-dev

now the output is:
    WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
    Using UNIX configuration...

    Hunting dependencies...
    SDL     : found 1.2.15
    FONT    : not found
    IMAGE   : not found
    MIXER   : not found
    PNG     : found
    JPEG    : not found
    SCRAP   : found
    PORTMIDI: not found
    PORTTIME: not found
    FREETYPE: found 21.0.15
    Missing dependencies
    ----------------------------------------

Would greatly appreciate to get pointers to the missing deps! =)

ok, the correct fix would be adding the following somewhere around line 25 of build script:
### this fixes missing sdl-config dependencies during pygame install
RUN apt-get install -y libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libportmidi-dev

Cheers for that,
I'll add the line to the dockerfile.
Which docker file is it?

dockers/python3_dev/Dockerfile

thanks

BTW, are there any plans to change to pygame 1.9.6 (April 25th 2019)?

Not at the moment.


Role2collection

fix lint,flake,black issues

Note: This is rebased on top of the latest auto-maintenance master branch which includes the tox.ini changes.


Build UI for quotes

We need layout for each quote and to think about how to implement navigation and storing of results.
https://marvelapp.com/55gc951/screen/25904152

closed with pr #65


Support nonMasqueradeCIDRs

Describe the problem/challenge you have
When a pod talks to an external address, ip-masq-agent controls a list of CIDR ranges no to masquerade by nonMasqueradeCIDRs. It's useful to some cloud providers that controls some internal addresses that are flat to the podCIDR. Antrea provides an option noSNAT, but it applies to all destination addresses.
Describe the solution you'd like
Support ip-masq-agent on windows and linux, or provide an option for nonMasqueradeCIDRs on antrea-agent.

Support ip-masq-agent on windows and linux

On Linux:
I believe that when using noEncap mode, you should be able to set noSNAT in the Antrea configuration, while deploying ip-masq-agent alongside Antrea with the desired value for nonMasqueradCIDRs
On Windows:
AFAIK, ip-masq-agent does not work on Windows Nodes. The Antrea noSNAT configuration is ignored on Windows, since we do not support noEncap mode on Windows. This feature request seems to only apply in noEncap mode, so it seems that this issue is dependent on that one: https://github.com/vmware-tanzu/antrea/issues/1632
If you're looking for a unified solution across Linux and Windows, looks like we will need to implement something like nonMasqueradeCIDRs in Antrea directly, once we figure out noEncap & noSNAT on Windows Nodes.

Agreed this is can be a good feature. Probably we can extend the noSNAT option for supporting a noSNAT feature.
On Windows, I remember @ruicao93 has a draft PR already, so hopefully we will get it soon.


Function.py: Total_amount = 0 and Total_amount = None are two different scenarios.

If the user does not provide a value it should be None - not zero.

    try:
        #sanitize
        if float(request_definition.portfolio) == 0.0:
            total_amount = None
        else:
            total_amount = request_definition.portfolio
    except:
        pass


workflow of vscode

how to use vscode with github

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

This is out of scope for debugging recipes. Might be useful in https://github.com/Microsoft/vscode-docs


Scheduler-specific unit tests broken on master

Commit that introduced the problem: a0abcd0905c7655d27e2d7159a8ab269a1c6ed0f. This appears if you run the test_scheduler.py alone. It doesn't appear if you run the whole suite together, because the module path is modified by some tests that are run prior to it.

The problem didn't appear in the full suite, because test_cli.py changes the module path globally and does not restore it, and this one runs before test_schedulers.py.


Fixed typo.

Fixed typo in the dependency/target example.
Motivation:
The example used "Logging' instead of "Logging".

@swift-server-bot test this please


Modify apeworx demo & utils to use FixedPoint lib

Codecov Report
Patch and project coverage have no change.

Comparison is base (67879ff) 86.84% compared to head (9ced6a6) 86.84%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #462   +/-   ##
=======================================
  Coverage   86.84%   86.84%
=======================================
  Files          32       32
  Lines        4228     4228
=======================================
  Hits         3672     3672
  Misses        556      556

Flag
Coverage Δ

unittests
86.84% <ø> (ø)

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

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


Skipping e2e for tektoncd-operator (0.60.0)

I was trying to release latest version for tektoncd-operator for operator hub but am not able to pass the CI.
Pull req : https://github.com/k8s-operatorhub/community-operators/pull/1424
with tektoncd-operator, we package multiple CRDs, one of which is TektonInstallerSet
when operator is installed, it internally creates an instance of TektonInstallerSet for some internal resources.
now in CI, after installation, it removes deployments and then CRDs
while removing TektonInstallerSet CRD it gets blocked as instance is already on cluster with finalizer set
and as deployments are already deleted, it will blocks indefinitely
so the deletion of CRD is getting timeout
is there any way I can override CI script or skip the e2e in this case?
or any other suggestion?

cc @J0zi @mvalarh

How can we detect such case?

How can we detect such case?

so this happens while uninstallation of operator too, if we uninstall deployments get removed but CRD instances will not be deleted as finalizers is set and controllers are not there to remove them.
so we recommended users to delete all CR instances and then uninstall.
in CI can we delete the CRDs first and then rest of the resources?

@sm43 fixed, we are able to remove resources smoothly. Thank you for raising this issue.


Add starlark jcxxgen

-> Relevant submit in this stacked change <-

Move code jcxxgen code generation into *bzl file.
This makes it more readable in the BUILD file.
jcxxgen(
    name = "lsp-protocol",
    src = "lsp-protocol.yaml",
    out = "lsp-protocol.h",
    namespace = "verible::lsp",
)

Codecov Report

Merging #980 (a951340) into master (43375d7) will increase coverage by 0.01%.
The diff coverage is 96.96%.

@@            Coverage Diff             @@
##           master     #980      +/-   ##
==========================================
+ Coverage   92.79%   92.81%   +0.01%
==========================================
  Files         322      324       +2
  Lines       20974    21072      +98
==========================================
+ Hits        19463    19558      +95
- Misses       1511     1514       +3

Impacted Files
Coverage Δ

common/lsp/json-rpc-dispatcher.h
100.00% <ø> (ø)

common/lsp/message-stream-splitter.cc
100.00% <ø> (ø)

common/lsp/message-stream-splitter.h
100.00% <ø> (ø)

common/lsp/file-event-dispatcher.cc
95.23% <95.23%> (ø)

common/lsp/dummy-ls.cc
97.22% <97.22%> (ø)

common/lsp/json-rpc-dispatcher.cc
100.00% <100.00%> (ø)

common/lsp/lsp-text-buffer.cc
100.00% <100.00%> (ø)

common/lsp/lsp-text-buffer.h
100.00% <100.00%> (ø)

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 43375d7...a951340. Read the comment docs.


Is this project dead?

Looks like there hasn't been any updates in 2 years. Microsoft is removing Basic auth in Office 365 later this year. Any plans to support this going forward?

Same question. I have been using this service for 2 years and suddently it stopped working some weeks ago. It could be the reason. :(

Same question. I have been using this service for 2 years and suddently it stopped working some weeks ago. It could be the reason. :(

Maybe you can try using https://github.com/WsdlToPhp/PackageEws365 for which I would be pleased to update :wink:
It's generic and not so hard to implement custom features.

Maybe you can try using https://github.com/WsdlToPhp/PackageEws365 for which I would be pleased to update :wink:
It's generic and not so hard to implement custom features.

Here is one to look at:

https://github.com/Garethp/php-ews
https://packagist.org/packages/garethp/php-ews
https://github.com/Garethp/php-ews/issues/241


Option to pass-through columns in Merge Rows (diff) transform

What would you like to happen?
Currently, merge rows diff only passes a single column-set through, with the selected columns from the 'Compare' or 'Reference' set as appropriate to the diff finding (New, changed...etc).
There are occasions where the diff is used to identify the status and then, knowing that status, you need to perform an operation between the compare and reference values ((e.g. if a revenue amount has changed, perform a calculation on the old and new revenues to get the delta.
Currently, this requires a loop around the transform to carry existing data past it to do the calculation after the diff.
This feature request suggests a checkbox to enable passing all columns through for use in subsequent operations.
Issue Priority
Priority: 3
Issue Component
Component: Transforms

Link to related ticket is Jira: https://issues.apache.org/jira/browse/HOP-1674


v2 Raw().Pluck() is not backward compatible with v1

GORM Playground Link
https://github.com/go-gorm/playground/pull/200
Description
Pluck() seems to have a breaking change from v1 which is not mentioned in the release notes.  When using Raw(...).Pluck() into a slice of primitives, you now (in v2) must also use Model() or Table().  This was not required in v1.  And when using Table(), it doesn't seem to matter what value you use.  You can call Table() with a table name that doesn't exist, but it will still make the Pluck() work.
It would be good to either mention the breaking change in the release notes, or relax the requirements on Pluck() to work more like v1 (since it seems the table name isn't actually used in this case).

You can write it like DB.Raw(select name from users).Scan(&names) in v2, and honestly I don't expected user use Raw with Pluck in V1 ;(

You can write it like DB.Raw(select name from users).Scan(&names) in v2, and honestly I don't expected user use Raw with Pluck in V1 ;(

Probably it could be fixed by always setting clause.Column.Raw to true in Pluck().
Note it is very annoying and strange to write Pluck("1 AS 1", ...) instead of Pluck("1", ...) everywhere, especially when there are db mocks for each query... It's not obvious what was the idea, because "1 AS 1" stays unquoted while "1" becomes "1" :/

@jinzhu

Another possibility of fixing this would be accepting clause.Expr as the column name in Pluck()

Also, it looks like the column name given to Pluck() is ignored if Select() is used in the chain.


False positive for 'variable is mutated but never accesed'

Relates to https://github.com/mpeterv/luacheck/issues/72
Was fixed: 1e62378af7d4f734dd262b77bbdd7329d75ac8ad
But still false-positive for this case:
local test_table = {}

test_table["some_sting_key_or_var_with_key_name"] = "some_value"

Additional info:
$ luacheck --version
Luacheck: 1.1.2
Lua: PUC-Rio Lua 5.1
Argparse: 0.7.1
LuaFileSystem: 1.8.0
LuaLanes: Not found

I don't see how this is a false positive. It looks like a true positive to me. The case that was fixed is completely different because of the scope. Your example creates a local variable and then never uses it. Since Luacheck can confirm there are no references to it in the given scope it correctly throws a lint warning.
Any use of the table should clear this, e.g.:
local test_table = {}

test_table["some_sting_key_or_var_with_key_name"] = "some_value"

print(test_table)

sorry, my bad.
anyway thanks for your time


Stahl driver fixes and improvements

extend regular expression to cover exponential notation in floating point response observed in real device
allow TCP connection to socat'd serial port

@hp-peti Thanks for the contribution. Could you add a changelog entry to docs/changes/newsfragments/5888.improved_driver describing the change.

https://github.com/microsoft/Qcodes/actions/runs/8542018053/job/23424803154?pr=5888 job failed but i doubt it's because of PR content. please advise on re-triggering

branch updated please approve 6 workflows


Encoding JSON requests to bytes for urllib3 to handle

Implements #3177.

@haikuginger Thanks for this! I've left some notes inline.

Bump! 🙂

Sorry @haikuginger! GitHub doesn't ping me when you push new changes. :(

I'm :+1: on this if @Lukasa is =D

Let's do it! Thanks @haikuginger, you're doing awesome work! :sparkles: :cake: :sparkles:


Add --link option to help output

I know link is in alpha, but it's featured in the readme, so might be worthwhile to stick it in the help output.

This should be fixed in my pr, #2405. 😄

Looks like @JammSpread took care of this with https://github.com/cdr/code-server/pull/2405


Add ChatGPT Chat Mode Functionality

This merge introduces the integration of ChatGPT API, enhancing our project with advanced chat capabilities. This addition is optional and allows users to enable ChatGPT chat mode by obtaining and configuring a ChatGPT API key. A new file, .openai_api_key.txt, is now recognized in the root directory for users who opt to activate this feature. This update aligns with our commitment to offering cutting-edge conversational AI experiences.

This is a great feature.
Can this issue be supported?
https://github.com/coding-pot/Zero2Story/issues/68


It would be great if Traefik supported wasm plugins

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
Envoy WASM plugins：
https://github.com/envoyproxy/envoy/tree/master/examples/wasm-cc

Hiya! Thanks for your suggestion.  We are interested in this issue but are unsure about the use case and the traction it will receive, so we are going to leave the status as "needs triage" to give the community time to let us know that they would like this.
We will reevaluate as people respond.
If you or another community member would like to build it before that happens, let us know and we will work with you to make sure you have all the information needed.
Let us know here before you start. We prefer to work with our community members at the beginning of the design process to ensure that we are aligned and can move quickly with the review and merge process.

If possible, it is best to refer to the interface of the wasm-nginx-module project

I'd be really interested about this feature too. Right now creating plugins for multiple reverse proxies is a pain because of all the different API each reverse proxy propose.
WasmProxy seems to be a very well fit usage.

I am glad this issue already exists on this repository. I have been working with Wasm, proxy-wasm and proxies' features for a long time and I really like to see a way to extend traefik through Wasm soon.
There are a few reasons why Wasm is a good match for this use case, the first one is the fact that currently using yaegi is the only way to extend Traefik with custom functionality, however it comes with some limitations:

it needs to catch up with Go language syntax on every release
is limited to Go
Panics
Libraries incompatibility
Lack of profiling tooling

As opposed Wasm present several advantages on these matters:

Polyglot
Sandboxed (hence no panics)
More mature compatibility matrix for different libraries
Profiling tooling
More mature ecosystem, broader community

that said, we have three alternatives to pursue this goal:

proxy-wasm: dead standard used in envoy, focused on envoy and with unexisting community. Still there are some cool projects built on top of it, although since the standard is mainly based in Envoy, some of the features won't be portable. (Spoiler alert, I worked a lot with proxy-wasm)
http-wasm: new alternative with a host available in Go that bring several improvements from the main issues with proxy-wasm (less envoy focused request/response lifecycle, works as middleware and proxy feature, more performant, etc).
custom ABI: this is an alternative but very laborous to implement as it would require us to write an own host, define an ABI and write a TCK for host and guests SDK. While this is possible I would rather not reinvent the wheel.

I am happy to contribute with a PR supporting http-wasm. Any thoughts on this?

Thanks for your feedback @jcchavezs, very much appreciated.
http-wasm looks promising, but young, and from the author, not production ready:

The current maturity phase is early draft

But it would make things a lot easier to integrate.
@jcchavezs how far have you been experimenting with http-wasm?
Any other known alternative?

Some time ago, I attempted to integrate Proxy-WASM, and my experience left me somewhat dissatisfied. Regrettably, I couldn't achieve the seamless functionality of a proper Envoy plugin. It seemed like a substantial amount of effort would be necessary to address the missing components.
While I haven't explored HTTP-WASM, it appears to be a more attractive alternative. It seems relatively straightforward to integrate with Traefik.
If someone has already developed a plugin for Envoy, such as CorazaWaf, they might need to create another plugin, but I'm not sure it's a real problem.
With the Yaegi plugin mechanism, you gain extensive access to the underlying Go objects, including the complete ResponseWriter.
In theory, you could even hijack the connection, among other possibilities.
I'm curious if the HTTP-WASM "interface" will provide the required functionality for various middleware plugins. What kinds of middleware can be implemented with it? Perhaps we should consider implementing real middleware, similar to some of the existing Yaegi plugins, or even adapting the CorazaWaf middleware.

Hello,
I recently conducted some tests using proxy-wasm, but unfortunately, I encountered challenges in getting it to work effectively. I share the sentiment with you, @jcchavezs, that proxy-wasm is mainly based on Envoy. I'm not sure we will be able to have current Envoy Wasm filters working with Traefik. It
On a more positive note, I found http-wasm to be a much simpler and more straightforward option, particularly when it comes to integration with Traefik. In fact, I even worked on a small project to explore its capabilities, which you can find here.
I'm in agreement with @juliens about implementing a real middleware with http-wasm. While it may not cover all the use cases that Yaegi currently handles, I view it as a promising initial step. Moreover, it can seamlessly coexist with plugin middleware.

@mmatur nice work! the actual change does not look even big! of course that is missing configurable parameters and kubernetes part etc. Anyway looks promising

Really nice work @mmatur. I wonder if we could start a PR on this repo attempting to add http-wasm for traefik. There are a few things I want to discuss on this, for starting I would also suggest we look at existing impl. in dapr which also supports http-wasm (see https://github.com/dapr/docs/blob/v1.11/daprdocs/content/en/reference/components-reference/supported-middleware/middleware-wasm.md).
Some of the questions are:

Do we support only local wasm files or also remote
How do we pass config to the middlewares

@jcchavezs I'm curious if attempting to incorporate it into the existing plugin system might provide a solution. We've already established a mechanism for handling configuration, and for addressing the remote or local issue, this could potentially be a viable option. Although I'm uncertain about how straightforward it would be to integrate it into the current catalog system. Perhaps @ldez could share their perspective on this matter.

I can see solutions to integrate WASM plugins inside the catalog and Traefik (even if I still think that the best use of WASM is not for plugins).
It is useless to talk about that now, this is a detail that we will talk about when something will work locally inside Traefik (during the PR).

@jcchavezs,
I believe Traefik should support both local and remote Wasm files. Perhaps this support could be integrated into https://plugins.traefik.io for better accessibility.
Regarding the middleware configuration, I conducted some research and found that http-wasm-host-go offers a guestConfig option, which appears suitable for passing the config to the middleware.
https://github.com/http-wasm/http-wasm-host-go/blob/4171a60674e821aa956c985fede9beb295d026c9/handler/options.go#L25-L30.
@ldez, could you please provide more details about your vision for the Wasm integration in Traefik?

(even if I still think that the best use of WASM is not for plugins)

What are your ideas for utilizing Wasm in Traefik?

What are your ideas for utilizing Wasm in Traefik?

This is off-topic: this topic is about WASM and plugins, we can talk about it somewhere else.

Maybe I was not clear: it's easy to integrate a different type of plugin if the repository follows the same convention as the existing plugins.
Some changes will be needed inside the remote plugin services and Traefik but, for now, based on the current information, I don't see any blockers.

@ldez, You started this conversation with:

even if I still think that the best use of WASM is not for plugins

An suddently, you declare this is off-topic.

This is off-topic: this topic is about WASM and plugins, we can talk about it somewhere else.

There is no need to lock this conversation down, it's unnecessarily protective.
Please keep this conversation positive & constructive.

This sentence is in parenthesis because it was just an off-topic remark only to contextualize my opinion about WASM plugins.
I answered the interrogations and provided information related to WASM plugin integration despite this opinion, and I will help with the incoming work as suggested by my previous comments. I considered that as positive and constructive.

I considered that as positive and constructive.

That was clearly not perceived this way, you should hear my feedback.
Let's get back to the main topic. Thanks.

All in all, here are important questions that still needs to be answered regarding the WASM plugin implementation:

can we reuse the same plugin middleware contract?
can we reuse exsiting plugins?
Even if that's not the case, I think it's worth exploring this WASM plugin implementation, but this would definitely make things easier.

Thanks for the feedback.
http-wasm plugins are agnostic so ideally you could use any http-wasm binary into traefik which in the end is beneficial for everyone and they can be hosted in traefik plugin system (if they allow to download a file) or any other artifact published somewhere.
I was thinking of something like this for syntax for using http-wasm middleware with custom binaries
# example for https://plugins.traefik.io/plugins/628c9f11108ecc83915d7772/traefik-token-middleware
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: http-wasm
spec:
    file: https://plugins.traefik.io/plugins/628c9f11108ecc83915d7772/traefik-token-middleware-wasm
    config:
        queryParam: token
        secret: secret

can we reuse the same plugin middleware contract?
I think so.
command:
  - --experimental.plugins.traefik-token-middleware.modulename=url-for-wasm-plugin
  - --experimental.plugins.traefik-token-middleware.version=v0.1.4

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: my-jwtauth
spec:
  plugin:
    traefik-token-middleware:
      queryParam: token
      secret: secret

and the traefik.yml:
displayName: Traefik Token Middleware
type: http-wasm-middleware
binary: https://github.com/corazawaf/coraza-proxy-wasm/releases/download/{version}/coraza-proxy-wasm-{version}.zip
summary: 'Verify JWT Token from query Param'

testData:
  encodedHeader:
    - "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImp0aSI6ImY1NzVlNDZlLTU2ZDQtNGU0Zi04MDQ1LTcwMWJmYjViM2RmNCIsImlhdCI6MTYwODE1MDg1MSwiZXhwIjoxNjA4MTU0NDUxfQ.g_XGqgyR-vo1DZzHiw-HwPQJpJYSsYMvI9rdeMRJEg8"

can we reuse exsiting plugins?
Some work needs to happen to recompile them in wasm (using tinygo)

There are 4 plugin contracts:

the repository convention
the programmatic "interface":

A type type Config struct { ... }.
A function func CreateConfig() *Config.
A function func New(ctx context.Context, next http.Handler, config *Config, name string) (http. Handler, error).

the static configuration

experimental:
  plugins:
    example:
      moduleName: github.com/traefik/plugindemo
      version: v0.2.1
# OR
experimental:
  localPlugins:
    example:
      moduleName: github.com/traefik/plugindemo

the dynamic configuration

  middlewares:
    my-plugin:
      plugin:
        example:
          headers:
            Foo: Bar

The repository convention should be kept to ease the integration inside the catalog.
The programmatic "interface" could be only partially different because it should follow the middleware signature.
The static configuration should be changed to use another field than moduleName to avoid confusion and ease the handling of the current plugins.
The dynamic configuration will stay the same.

The 2 plugin systems can live together: we don't control the code of the current plugins so we cannot really compile for them, a compilation of plugins inside the infrastructure will lead to security issues, and the 2 systems can be handled without major difficulties.

we don't control the code of the current plugins so we cannot really compile for them, a compilation of plugins inside the infrastructure will lead to security issues, and the 2 systems can be handled without major difficulties.

Wouldn't it possible to provide a cli to compile yaegi plugins to wasm binaries?

Hey there,
Before we dig deeper and spend time finding proper implementation, I'd like to do a quick poll to understand who supports integrating WASM as a plugin engine and who is against
Please 👍  (in favor) 👎  (against) in the reaction! (I'm pinging other maintainers, making sure they see this poll as well, but anyone, feel free to add weight)

I did some tests, it looks like its possible to support yaegi and wasm plugins by using same "ecosystem".
https://github.com/zetaab/traefik/commit/ce47cf1b107c0ae061b0d75f1728b00ed77375b3
So what I did? I used yaegi "demoexample" plugin and basically little bit modified @mmatur http-wasm example.
the response
% curl -H "Host: powpow.demo.traefiklabs.tech" <IP_ADDRESS>:8000
Hostname: 28cf73dc0e09
IP: <IP_ADDRESS>
IP: <IP_ADDRESS>
RemoteAddr: <IP_ADDRESS>:37502
GET / HTTP/1.1
Host: powpow.demo.traefiklabs.tech
User-Agent: curl/8.1.2
Accept: */*
Accept-Encoding: gzip
Foo: Bar
X-Powpow: hello
X-Forwarded-For: <IP_ADDRESS>
X-Forwarded-Host: powpow.demo.traefiklabs.tech
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: xxxx
X-Real-Ip: <IP_ADDRESS>

like we can see, both plugins are working (foo:bar from demoexample and x-powpow:hello from wasm plugin). However, there are still some questions:

how we could correctly insert configuration to wasm (as guestconfig or ModuleConfig?)
how we could correctly insert logger to wasm (https://github.com/http-wasm/http-wasm-host-go/blob/main/handler/options.go#L41 ?)
Example made by @mmatur contains only request middleware, we need better example which contains also example for response

requirements for yasm plugin repo: .traefik.yml file (which contains the manifest) and then path to compiled yasm file. Or should we hardcode that to like plugin.wasm?

Update:
traefik code https://github.com/traefik/traefik/compare/v3.0...zetaab:traefik:feature/httpwasm
plugin code https://github.com/zetaab/traefik-wasm-demo
logs from traefik:
hello from handleRequest
2023-10-22T15:01:11+03:00 DBG pkg/server/service/loadbalancer/wrr/wrr.go:188 > Service selected by WRR: 75327ea3b04bcda5
hello from handleResponse

the response
% curl -H "Host: powpow.demo.traefiklabs.tech" <IP_ADDRESS>:8000
Hostname: 28cf73dc0e09
IP: <IP_ADDRESS>
IP: <IP_ADDRESS>
RemoteAddr: <IP_ADDRESS>:48202
GET / HTTP/1.1
Host: powpow.demo.traefiklabs.tech
User-Agent: curl/8.1.2
Accept: */*
Accept-Encoding: gzip
Foo: Bar
Heh: hah
Huh: foobar
X-Forwarded-For: <IP_ADDRESS>
X-Forwarded-Host: powpow.demo.traefiklabs.tech
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: xx
X-Real-Ip: <IP_ADDRESS>

So what is solved here:

Configurations can be passed as guestconfig
there is logger (see logs from traefik and code from plugin). However, the problem is that we cannot just pass zerolog https://github.com/zetaab/traefik/blob/feature/httpwasm/pkg/plugins/middlewares.go#L79 because it does not implement https://github.com/http-wasm/http-wasm-host-go/blob/main/api/api.go#L59 function. I am just thinking why this logger is done like people cannot use existing logger solutions in golang?

One possible problem that I see in this format, that before this people could write http.Handler by themselves either in yaegi or in traefik middleware. However, using http-wasm this is divided to two different functions. It makes it little bit different to implement existing middlewares to it. For instance, for coraza there is http.handlers or http.handlerwrappers ready, but these cannot be used for http-wasm as-is.
Example using http-wasm:
// handleRequest implements a simple request middleware.
func (mw *Middleware) handleRequest(req api.Request, resp api.Response) (next bool, reqCtx uint32) {
	handler.Host.Log(api.LogLevelInfo, "hello from handleRequest")
	mw.Start = time.Now()
	for k, v := range mw.Config.Headers {
		req.Headers().Add(k, v)
	}
	// proceed to the next handler on the host.
	next = true
	return
}

// handleResponse implements a simple response middleware.
func (mw *Middleware) handleResponse(reqCtx uint32, req api.Request, resp api.Response, _ bool) {
	handler.Host.Log(api.LogLevelInfo, fmt.Sprintf("request took %v %v [%s] %s", time.Since(mw.Start), req.Headers().GetAll("host"), req.GetMethod(), req.GetURI()))
}

vs
func (mw *Middleware) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
	handler.Host.Log(api.LogLevelInfo, "hello from handleRequest")
	mw.Start = time.Now()
	for k, v := range mw.Config.Headers {
		req.Headers().Add(k, v)
	}

	mw.next.ServeHTTP(rw, req)

	handler.Host.Log(api.LogLevelInfo, fmt.Sprintf("request took %v %v [%s] %s", time.Since(mw.Start), req.Headers().GetAll("host"), req.GetMethod(), req.GetURI()))
}

@jcchavezs I am just thinking could there be a way to override https://github.com/http-wasm/http-wasm-host-go/blob/main/handler/nethttp/middleware.go#L111? It would be really nice to use standard http.Handler to write middlewares. It would make things much easier and people could basically copy paste things.

Many thanks @zetaab

how we could correctly insert configuration to wasm (as guestconfig or ModuleConfig?)

yes, guestconfig it is.

how we could correctly insert logger to wasm (https://github.com/http-wasm/http-wasm-host-go/blob/main/handler/options.go#L41 ?)

Mainly adapters. Logging is a sensitive piece as it can lead to several allocations if not done carefully (see https://networkbuilders.intel.com/blog/coraza-performance-optimization).

Example made by @mmatur contains only request middleware, we need better example which contains also example for response. Example should contain: request, response, return access denied back to user, using logger, use some basic configuration (like in traefik demo example). Error handling in general

in this module we exercise most of the features: request, response access denial and mutation https://github.com/jcchavezs/coraza-http-wasm.

is https://github.com/http-wasm/http-wasm-host-go way to go? it says its in "early draft".

Yes, that is the way to go. We came up with a minimal host implementation that cover the use cases we wanted to support but projects like dapr used it and helped to improve it (see https://github.com/dapr/components-contrib/blob/master/go.mod#L71)

I am just thinking why this logger is done like people cannot use existing logger solutions in golang?

Yes, as pointed out before logging is very sensitive. Ideally we should provide a traefik implementation that implements the http-wasm logger so library maintainers can consume it.

Also there is no way to panic currently https://github.com/zetaab/traefik-wasm-demo/blob/main/header.go#L25 (or exit?). If I use panic() the code will not work at all.

What is the use case for panic? Do we want to crash traefik? I think logging and initializing nops on the interceptors is enough.

@jcchavezs I am just thinking could there be a way to override https://github.com/http-wasm/http-wasm-host-go/blob/main/handler/nethttp/middleware.go#L111? It would be really nice to use standard http.Handler to write middlewares. It would make things much easier and people could basically copy paste things.

This is by design. Notice ABI is language/platform agnostic so designing the ABI targeting standard http.Handler isn't a goal for http-wasm. Also technically talking no wasm implementation (targeting WASI) can support net/http package so that is also a technical reason to not to do this.

What is the use case for panic? Do we want to crash traefik? I think logging and initializing nops on the interceptors is enough.

I am just thinking if for instance parsing config fails here https://github.com/zetaab/traefik-wasm-demo/blob/main/header.go#L27 basically it should mean that whole plugin should not work.

I am just thinking if for instance parsing config fails here https://github.com/zetaab/traefik-wasm-demo/blob/main/header.go#L27 basically it should mean that whole plugin should not work. Now it will just print error to logs and continue running the plugin

I get that but in practice what does that mean for traefik? crashing or logging and becoming a noop?.
HEADS UP: I am not saying we shouldn't support panic, we can. I am just asking what is the use case.

In my opinion from Traefik point of view: it should not crash Traefik, but it could for instance make the route not working? It is little bit scary if people assumes that "yeah we do have WAF in place" but they forgot to check error logs and they have live route in production without WAF?

We should design the behaviour here but still you can achieve the same without panic by passing a always deny hook onRequest if bootstrapping fails. I mean, ideally a wasm plugin being sandboxed (one of major benefits of Wasm runtimes) does not need to crash because that crash signal will never be bubbled up to the host so I don't see a real need for panic.

In my opinion from Traefik point of view: it should not crash Traefik, but it could for instance make the route not working? It is little bit scary if people assumes that "yeah we do have WAF in place" but they forgot to check error logs and they have live route in production without WAF?

The philosophy we've been following until now is that when anything middleware that a router uses is malfunctionning, the whole route goes down, but the rest is unaffected.
Indeed, as you mentioned, the idea is to avoid the user thinking they're all set and secure ... when they are not (that's the same idea with authentication middleware)

Awesome. Then we have feature definition for this.
On Sun, 22 Oct 2023, 19:29 Gérald Croës, @.***> wrote:

In my opinion from Traefik point of view: it should not crash Traefik, but
it could for instance make the route not working? It is little bit scary if
people assumes that "yeah we do have WAF in place" but they forgot to check
error logs and they have live route in production without WAF?
The philosophy we've been following until now is that when anything
middleware that a router uses is malfunctionning, the whole route goes
down, but the rest is unaffected.
Indeed, as you mentioned, the idea is to avoid the user thinking they're
all set and secure ... when they are not (that's the same idea with
authentication middleware)
—
Reply to this email directly, view it on GitHub
https://github.com/traefik/traefik/issues/9552#issuecomment-1774152060,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXOYAWEKDVANSNX6OH7W6TYAVJV7AVCNFSM6AAAAAASL3LEFWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZUGE2TEMBWGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

seems that os.Exit(1) handles that case https://github.com/zetaab/traefik-wasm-demo/blob/main/header.go#L29 it will print the error to logs and make the route unavailable because of broken middleware.
from traefik log
2023-10-22T23:14:09+03:00 ERR pkg/server/router/router.go:129 > error="wasm: error instantiating guest: module closed with exit_code(1)" entryPointName=web routerName=customer1@file

@geraldcroes I think at least I have quite good picture how this could work. However, I would like to see that someone from Traefik side will implement this as PR, because you will define how you want to plugin system really work. I mean that you have catalog ecosystem etc, you will define the rules where the files can be stored and what is the structure for that.
Feel free to use my code that I did. It works, but its not the most beautiful yet!

Hey @zetaab ! We discussed this with other maintainers during the triage process yesterday, and we would very much rather help you finish the PR than writing it ourselves (based on your work and effort).
For the integration within the rest of the plugin system (the catalog for example), we're looking into opening it to the community so that everyone can contribute as well.
If finishing the PR sounds appealing to you, please open one, and one maintainer will take the time to ramp you up and get it to the project's standards (if need be).


when .bashrc does not exist, there's an error with shell integration

remove your .bashrc file so it doesn't exist
set your bash profile's args in your terminal.integrated.profiles.osx to []
🐛 see the error described here https://github.com/microsoft/vscode/issues/170868#issue-1525776590

/closedWith 408fc00


[BUG] JOIN fails, using PyArrow .join()

Error says
Data type null is not supported in join non-key field

This appears to be a problem when performing a join on a column which can contain null values.

#137 implemented type coercion on joins, this may affect this bug (but it can't be reliably replicated to test)

Believe this is because columns in the dataset are of type 'null', this should be resolved by casting any nulls to an appropriate type - or removing them before the join, and putting them back afterwards.

Confirmed by modifying the FAKE function to create a column of Nulls. I think this can be solved by removing null columns before the join and recreating them after the join.


断线重连怎么做？

from ws4py.client.threadedclient import WebSocketClient
from ws4py.exc import HandshakeError
class DummyClient(WebSocketClient):
def opened(self):
self.send(input('请输入你想说的话:'))
def closed(self, code, reason=None):
    #print("Closed down", code, reason)
    print("Closed down")

def received_message(self, m):
    print (m)

if name == 'main':
try:
ws = DummyClient('ws://'+input('请输入ws地址连接：'), protocols=['chat'])
ws.connect()
ws.run_forever()
except KeyboardInterrupt:
ws.close()

同求，我在配合爬虫使用的时候，运行几个小时后，会报1006going away的错误，然后关闭了

@54huige @jeffcumt
if name == 'main':
while True:
try:
ws = WSClient('xxx')
print("Start contenting...")
ws.connect()
ws.run_forever()
except KeyboardInterrupt:
ws.close()
break
except Exception as e:
count += 1
print(e, "Try again %s times..." % count)
continue

@54huige @jeffcumt
if name == 'main': while True: try: ws = WSClient('xxx') print("Start contenting...") ws.connect() ws.run_forever() except KeyboardInterrupt: ws.close() break except Exception as e: count += 1 print(e, "Try again %s times..." % count) continue

    count = 0
    while True:
    try:
        ws = WSClient('xxx')
        print("Start contenting...")
        ws.connect()
        ws.run_forever()
    except KeyboardInterrupt:
        ws.close()
        break
    except Exception as e:
        count += 1
        print(e, "Try again %s times..." % count)
        continue

I hope it helps you


Visual studio code extension for syntax highlighting

otherwise it is impossible to distinguish stuff

#81

Use any editor and apply the settings of any of these languages C/C++, C# or JS.
Duplicate of #81

An third-party extension can be found here https://marketplace.visualstudio.com/items?itemName=code-nature.nilesoft-shell-file-formatter
Source https://github.com/moudey/Shell/discussions/81#discussioncomment-6075891


BCP import - open and close indices for every batch (#2487)

Description
Cherry picked from https://github.com/babelfish-for-postgresql/babelfish_extensions/pull/2487
Issues Resolved
https://github.com/babelfish-for-postgresql/babelfish_extensions/issues/2486
[BABEL-5109]
Author: Alex Kasko<EMAIL_ADDRESS>Signed-off-by: Tanzeel Khan<EMAIL_ADDRESS>Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.007%) to 73.439%

Totals

Change from base Build<PHONE_NUMBER>9:
0.007%

Covered Lines:
42189

Relevant Lines:
57448

💛  - Coveralls


Rancher SSL

Hello,
I hope you can help me.
I have a Rancher v1.6.29 server with 3 client hosts (Docker version 18.06.1-ce),
The hosts appear disconnected on the server rancher. On Rancher when I want to add a host the following message is displayed on the 3 client servers: "https://rancher.example.fr/v1 is not accessible (server certificate verification failed. CAfile: / etc / ssl / certs / ca-certificates.crt CRLfile: none) "
FYI I looked for this error, they say to add the certificate of Rancher /etc/ssl/certs/ca-certificates.crt
On chrome the certificate is valid
I thank you in advance

Can you update Rancher to 2.3.x or is that out of the question? What version cert-manager are you using? Not .12?


View services

based on https://github.com/CodinGame/monaco-vscode-api/pull/109
it includes:

a way to run the extension code (required for the references-view default extension)
file explorer
debug components
TypeHierarchy/CallHierarchy/References
a way to register a custom View

@CGNonofr FYI build breaks locally with the same error you see in the GHA build.

@CGNonofr FYI build breaks locally with the same error you see in the GHA build.

fixed in 65fd3df4b1d4f958818e9316ff8f36ea6e2a40a5

fixed in https://github.com/CodinGame/monaco-vscode-api/commit/65fd3df4b1d4f958818e9316ff8f36ea6e2a40a5

Testing this now....

I have tested the changes and the expanded demo is nice. I will look more closely at the changes next week.

@CGNonofr can you release a preview / next version of this for playing around?

Done!

@CGNonofr have you seen this error during npm install before`?

@CGNonofr have you seen this error during npm install before? It continues...

Never in my life! I don't even know why git is involved here

I reset the repo before starting. Happens during long running yarn install --ignore-engines

Never in my life! I don't even know why git is involved here

Happens in the pipeline, too:
https://github.com/CodinGame/monaco-vscode-api/actions/runs/5121351480/jobs/9209003566

Never in my life! I don't even know why git is involved here

Happens in the pipeline, too: https://github.com/CodinGame/monaco-vscode-api/actions/runs/5121351480/jobs/9209003566

Oh right, it's not blocking! we're building vscode extensions here, maybe some of those we don't use don't build properly


Attachment download link fix

Fixes attachment's links, opening a save dialog to allow the user to
save the file. Once the file has been saved, the explorer is opened
selecting the file.

It does fix the files download from the main window.
Still broken in the "Files list" right panel.

This should solve it. It includes some minor improvements to the code.

all good. thanks

Hey guys, thanks by this PR.
Can you explain why we need this since we already added a button to start download of attachments correctly as you can see below?

Hello @rodrigok,
The PR is about the issue https://github.com/RocketChat/Rocket.Chat.Electron/issues/158
It is not a feature request but a bug fix.

Ok, so, the issue is, we don't have the "download" button inside the attachment list, right?
It's better to add the button there instead of create a script to start download of every single external link, don't you think?

Hello @rodrigok
I find that when people sees a link they click it. If the link goes nowhere or it doesn't respond, as is the case, people trend to get confused.
Is this a sever's feature or a client's feature? If it's a server's feature, I'm not in control of the servers and thus can't help it, the problem is still present in my case. If it's a client's feature, I wonder if the link to the left of the button does something, and what is the behavior inside the client (does it open a new browser window?, does it launch a download manager?...).
Could you please refer me to the comit of this improvement?

no, the issue was: "clicking the download link did nothing at all"
yes, I think you are right: a real "download" link or button would be best but when I first posted this issue, there were absolutely no way of downloading attachments.

I may be wrong but on the Web client, clicking the attachment link starts the download.
That is why @gwelchc did reproduce the same behavior on the desktop client.
In the futur, the attachment link should may be open the right panel with the attachment details and the download button.
Slack offer a download link in the main window. See screenshot:

@gwelchc and @axeloz this is the PR that adds the download button https://github.com/RocketChat/Rocket.Chat/pull/2594/files
It's on the server code, so you need to update your rocket.chat server. That code allows electron to open a save dialog to save the file using target="_blank" download="".
But, if you click on the file's link nothing happens, maybe you can change this PR to open the external links without download="" in external browsers.
In web version the download starts if click on a uploaded file link because our server responds the access to the file forcing the download, so you can't see the file in your browser without download it, that was a security fix.

The download attribute solution works, but still leaves a clickable link that reacts to the user cursor and that does nothing. Thus the error occurs only when an internal link loads to a downloadable file. Maybe the PR could check when the internal attachment link is missing the download attribute, add it, and allow the normal execution of the chromium base.
I believe that since this is a client issue, and not a server issue, the fix should only occur in the client (this fix leaves web browsers with two download buttons and electron clients with only one).

@gwelchc The link should open the browser window, the button should download the file.
The link is opening the browser window that has been forcing the download when you are trying to access some uploaded file, but this will not happen if you are using S3 as upload storage.

@RocketChat/core what needs done on this one?
It does seem if we have a link and that link doesn't do anything... we should fix that, even if we have a download button.

+1, my coworkers noticed the same. Downloading attachments via clicking the link doesn't work.

I just downloaded the Rocket.Chat+ app from the App Store and I had the same problem, that I couldn't either download any attachments nor see or download video clips from other channel members. If I use the web browser, everything is alright.
I solved the problem by restarting the app. So it is possible, that the bug was not completely fixed.

The Apple App Store version is extremely out of date last time I checked.


Windows support

Hi,
does this plugin support Windows?
Its tagged with windows but there is nothing about windows in the readme/description at pub.dev
It would be nice if it does because its pain to handle it :)

Hi, yes, Windows is somehow supported (see the example implementation for reference).
However, I do not like the way it works right now.
For more information on this, see other issues in this very repo here (some are already closed) :)


unavailable on npm

Hello there!
Your package can't be found on npm...
Have a nice day!

Hi,
Sorry, I didn't have time to push it there.

still(


Visibility on workflows that are not able to start (usually due to failed lint)

Summary / Motivation
Most common scenario is workflows generated from Sensors:
If the manifest YAML somehow does not compute but k8s still accepts it as a valid CRD, the sensor can be triggered but the workflow might not show at all on the UI. When that happens, the only way of troubleshooting is looking at the controller logs (sensor and workflow controllers) to see what happened, even then the error messages are garbled Go errors that are usually confusing.
Proposal
A way of showing these errors of workflows that failed to start in the UI, as they currently do not show at all.
A section of "Argo Errors" dedicated to controller errors such as this?
There are several behaviours I've noticed:

Workflow doesn't show at all
Shows but there are no steps shown at all, if Retry is pressed then it starts and might even succeed
Shows but the first step automatically fails before it even starts

Generally, a more unified way of creating source->gateway->sensor->workflow and validating them, it's a very common scenario.

Message from the maintainers:
If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

Is this an Argo Events issue? If you submit a Workflow from an Argo Workflows method (CLI, API, UI), you'll get a validation error. Furthermore, if you do submit an invalid Workflow that somehow passes validation, the Workflow object will remain accessible in an Errored state


feat: telem uptime and rename

closes: https://github.com/influxdata/influxdb/issues/25679
closes: https://github.com/influxdata/influxdb/issues/25681
refactor: rename stats fields for telemetry
feat: add uptime to telemetry

Aren't all the things labeled _hourly actually kept in one or five minute intervals? I can't quite rememeber what we settled on, but I thought each of these stats was tracked either on 1 or 5 minute intervals. And it would keep track of the average and the min/max of that period of time?
If so, all the fields that have _hourly should have _5m or _1m. If it is hourly, I think labeling it _1h or _60m would be better.

Aren't all the things labeled _hourly actually kept in one or five minute intervals? I can't quite rememeber what we settled on, but I thought each of these stats was tracked either on 1 or 5 minute intervals. And it would keep track of the average and the min/max of that period of time?

We sample cpu/mem every minute but the stats avg/min/max are for the 1 hour period. We take 60 samples and then we do the avg/min/max for those 60 samples. The writes and reads are based on when they happen, but again we collect them and sample every minute. So, all metrics are sampled at 1 minute intervals, but sent hourly. If it's the sampling interval that was necessary I'll add the _1m instead. I thought it was the sender interval @mona-influx was after (_1h).

The sampling interval is what's important so that we can make sense of the data points in the dashboards. So if we have write requests value of 60, we need to know what the interval is so we can get a sense for how many per second, or per hour, or per day are happening. So the _1m is what we want here. Thus we'd know that we're doing about 1 write/sec or 60 * 1440 writes per day, etc.

The sampling interval is what's important so that we can make sense of the data points in the dashboards. So if we have write requests value of 60, we need to know what the interval is so we can get a sense for how many per second, or per hour, or per day are happening. So the _1m is what we want here. Thus we'd know that we're doing about 1 write/sec or 60 * 1440 writes per day, etc.

Got you - thanks, I'll update the PR

@pauldix - addressed it d6fa9e4.


Using a new Instagram endpoint to get hashtag posts - Potentially a feature suggestion

I am looking to implement a new Hashtag.get_posts() function which may be useful to the community as a new feature, but first i have a question.
I am unable to get Hashtag.get_posts() to work with my authenticated session as mentioned in my other question, because using get_hashtag_posts doesn't return new posts when max_id is set for page 2, 3 and 4 etc. The new endpoint i want to use is:
POST https://i.instagram.com/api/v1/tags/hashtag_name/sections/
From the instagram webpage, i can see it can obtain posts from a hashtag list. Here is my sample code:
`    def get_hashtag_sections(self, next_max_id):
import http.client
# pylint:disable=protected-access
http.client._MAXHEADERS = 200
session = self._session
session.get('https://www.instagram.com/web/__mid/')
cookies = session.cookies.get_dict()
csrf_token = cookies['csrftoken']
session.headers.update({'X-CSRFToken': csrf_token})
session.headers.update({'x-instagram-ajax': "238ee7baa9c1"})
session.headers.update({"x-ig-www-claim": "hmac.AR2nh9sxfnOaFqar3sYyhAM59aLB6hcF7WoqNJe2MJvmHiWi"})
session.headers.update({"x-ig-app-id": "936619743392459"})
session.headers.update({"content-type": "application/x-www-form-urlencoded"})
session.headers.update({"authority": "i.instagram.com"})
    data = {'include_persistent': 0, 'max_id': next_max_id, 'page': 1, 'surface': 'grid', 'tab': 'recent'}

    posts = session.post('https://i.instagram.com/api/v1/tags/%s/sections/?__a=1' % "arcadeofblackandwhite",
                         data=data, allow_redirects=False)
    try:
        resp_json = posts.json()
    except json.decoder.JSONDecodeError:
        raise ConnectionException("Error: JSON decode fail")
    except Exception as e:
        raise ConnectionException("Error: %s" % str(e))

`
When i run the code above, the posts response is 302, a redirect. I have pasted a view of the posts variable data below:

I see in Chrome network inspector, that the Insta webpage can make this POST call and get the following stats/response:

What am i doing wrong with my POST request to obtain my 302 response? Thanks in advance!

hello, any updates on this? any planned new release? many thanks!

no, the issue seems to not be fixed and no solution in sight

I am falling into the problem. who can help me

I am solved it out, you can try this.
add the following key to request headers.
{"x-csrftoken": "",
"x-asbd-id": "",
"x-ig-app-id": "",
"x-ig-www-claim": "hmac.",
"x-instagram-ajax":""}


A proposed API to interact with fields inside instances

While respecting that by default, fields of classes are in some sense "private" to that particular class, it is nevertheless inevitable that special-purpose pieces of perl code will want to "gut-wrench", and reach inside of instances to inspect or manipulate the data in the fields contained therein. In particular, see #62.
The moment we add some sort of MOP API (e.g. see the API shape suggested by Object::Pad::MOP::Class et.al.) it becomes possible to write functions to do justabout all of this. Therefore it makes sense to think about a standard set to be provided upfront.
Here is my suggestion:
A symmetric pair of functions that explode a given object instance into some lower-level representation of its fields, and one that reconstructs a new object based on that representation:
@repr = builtin::explode_object($obj);

$obj = builtin::make_object(@repr);

Here, $obj contains an object instance, and the @repr list contains some representation of the fields and the values they contain. I don't yet have a firm feel for exactly what shape that should be, but it should primarily be composed of plain strings, and plain scalars directly taken from fields. It might additionally contain extra structure in terms of hash or array references.
I have various thoughts on how that ought to look, but I'll expand on that in later messages. Point being: it should be possible to recuse down that to find more simple things.

Thinking ahead for having multiple component classes, roles, etc... I suspect a two-level structure for @repr probably makes sense. It wants to be a key/value list, pairing up names of component classes with a structure (hash? array?) containing the names/values of the fields of that component. For example in a simple flat case:
class Point {
  field $x :param;
  field $y :param;
}

explode_object(Point->new( x => 10, y => 20 ))

might yield the values:
"Point" => { '$x' => 10, '$y' => 20 }

A more complex nested one might be more like:
role Displayable {
  field $display; ...
}
class Point3D :isa(Point) :does(Displayable) {
  field $z;
}

explode_object(Point3D->new( ... ))

"Point3D" => { '$z' => 30 }, "Displayable" => { '$display' => ... }, "Point" => { '$x' => 10, '$y' => 20 }

This puts the actual class as the first item, with its roles following it, then the parent class (recursively) at the end. Putting the actual class first in the list makes it easy for make_object() to find it when reconstructing the object.
The fields of each component class / role are separated by being in sub-hashes, so that duplicated names between them don't matter - it's fine for roles to have duplicate field names as the classes they're mixed into, and for classes to duplicate field names of their parents.
In the case of non-scalar fields, the value stored in the hash would be a reference:
class List {
  field @items;
}

"List", { '@items' => [1, 2, 3, 4, ...] }

Alternatives
Possible alternative ideas could be to keep all the fields in one large flat list, with some sort of prefix giving the partial class name to account for duplicates:
'Point3D/$z' => 30, 'Displayable/$display' => ..., 'Point/$x' => 10, 'Point/$y' => 20

This might make it nicer to work with, because it's just a flat kvlist suitable for assigning into a single hash, but it does then need some thought about what sort of separator character is used; for example, a / in this example.

Further API
The following become possible to think about as well:
getfield
Based on explode_object, it's tempting to consider a function that can retrieve the value of an individual field out of an instance:
$value = getfield($obj, $fieldname);

# e.g.
say "The point is at X coördinate ", getfield($point, '$x');

Where $fieldname is just a string literal giving the name of the field. Though again, for accessing fields of parent classes/roles, it might be helpful to have the class name as well, or consider the joined up string form given in "alternatives", though again it needs thought about the separator character in that case.
getfield($point3d, Point => '$x');
getfield($point3d, 'Point/$x');

What should it do for non-scalar fields though? Perhaps in list context, return all the values individually. In scalar? I'd vote best to behave like a lexical would in that same scalar context - arrays yield their element count, hashes yield their key count.
setfield
Once you have a get function, it becomes even more tempting to consider a set one, at least for scalar fields.
setfield($obj, $fieldname, $new_value);

(but now how do we handle the class name? Still to be thought up)
This isn't going to be very nice for array/hash fields, but I think something else might:
reffield
A function to obtain a reference to an instance field, as if returned by code like return \%hashfield:
$ref = reffield($obj, $fieldname)

With arguments the same as getfield. In fact, getfield and setfield can both be implemented in these terms, at least for scalar fields:
sub getfield($obj, $classname, $fieldname) { return ${ reffield($obj, $classname, $fieldname ) }; }
sub setfield($obj, $classname, $fieldname, $newval ) { ${ reffield($obj, $classname, $fieldname } = $newval; }

It has been suggested that "explode" is probably not a good name here. Aside from the allusions to violence, it also suggests a fully-recursive breaking apart of the object right down to its scalar pieces; which isn't what happens here. It only picks apart one layer - if there are further object refs or other containers within that, those are preserved.
A better naming idea likely exists. Ideally something that can pair nicely with the object reconstruction function, to really hammer home the "symmetric pair" nature of them.

@repr = deconstruct_object $obj;
$obj = construct_object @repr

I like that.

Also:

Though again, for accessing fields of parent classes/roles, it might be helpful to have the class name as well ...

If builtin::reftype $some_instance return OBJECT, would it make sense to provide my $class_name = isa $some_instance? (That would make it a prefix operator with the instance on the RHS instead of the left, so I admit it feels weird).

@Ovid

Why would we need construct_object? Is this for freezing/thawing?

Yeah, basically just for weird cases like Storable, Sereal, etc... It probably shouldn't be used much besides those.
Though it is handy to at least have such a function available, so that Data::Dumper can rely on it for printing.
class WithHiddenFields {
   field $x = 123;
   field $y = 456;
}
say Dumper(WithHiddenFields->new());

could print
$VAR1 = builtin::construct_object(WithHiddenFields => {'$x' => 123, '$y' => 456});

As metioned here, I would much prefer if deconstruct_object either mark the data read-only or clone it (or COW) to avoid inevitable bugs when the internal state of the object is changed in an unexpected way.

@Ovid

As metioned here, I would much prefer if deconstruct_object either mark the data read-only or clone it (or COW)

A useful-sounding idea, but a bit tricky to arrange in practice. It can't mark the data read-only because that would make the field itself inside the object read-only. We don't (yet) have COW arrays or hashes in Perl.
We could clone the values, but that would make it run somewhat slowly. Perhaps not too bad for human-readable debug printing, but things like fast network/disk access serialisers might get upset by that. Maybe we'd give them another function to say "hey we'll give you a reference to the real data so you'd best promise not to edit it".
Another thought would be to add COW arrays/hashes into Perl. I'm sure this isn't the first situation where this problem has come up; and such a mechanism might be a handy way forward for all of them.
Safest I think would be to make copies at first, and if someone finds it to be too slow for serialisation purposes, we can revisit the idea and either provide another function, or look into COW arrays/hashes.

@repr = deconstruct_object $obj;
$obj = construct_object @repr;

I like that.

I feel that it would be best to be more descriptive, that these function pairs specify in their names WHAT format they are mapping objects to/from.  There should be some kind of formal specification that names and describes the format.  For example, Data::Dumper and other similar tools each have a defined format presumably.
As it happens, with https://github.com/muldis/Muldis_Object_Notation/blob/master/spec/Muldis_Object_Notation.md I am in the process of formally defining a format, "Muldis Object Notation Syntax Perl", which is expressly designed for the use case you are talking about.  In the general case, an object of a Perl class corresponds to an "Article" which is formally defined in terms of plain Perl arrays/hashes/scalars/etc.  (While I haven't yet fully defined the Perl-specific representation, the above url has a placeholder for it and does define other abstract and concrete representations it would map with.)

Just a small linguistic point...
I'd much prefer:
    @rep = deconstruct_object($obj);
    $obj = reconstruct_object(@rep);

Apart from the greater symmetry of "deconstruct..." vs "reconstruct...",
I think it would be better not to use a bare "construct...", so as to avoid confusion
with the actual construction process automagically provided by Corinna classes.
Specifically, I assume that construct_object() isn't actually constructing an object
in the same way Classname->new(...) does. For example, it's presumably not going to
run any ADJUST phasers, or any default field-value blocks, on the object it's rebuilding.
It's just going to blindly reconstruct the internal state of an object from a previously
deconstructed representation, right?
Assuming that's correct, I think reconstruct_object(...) is clearer in intent and effect
than construct_object(...).


Decode byte 12 of the battery data

0xFF no charge
0x00 = charging

See https://github.com/syssi/esphome-votronic/discussions/1#discussioncomment-4851143

I assume byte 12 is the 3rd byte of the charging current.


[v1.8] Delete Cilium Endpoints for no longer running Pods

Since the backport https://github.com/cilium/cilium/pull/13263 was not enough, we need to backport a couple more commits from the original PR https://github.com/cilium/cilium/pull/13220
These commits are also required since a leftover Pod might no longer have a local cilium endpoint available. This means, on restore, the leftover Cilium endpoint will never be removed by the Cilium agent. Thus, the job of garbage collecting these Cilium Endpoints needs to be done by the Cilium Operator.
Delete Cilium Endpoints for no longer running Pods

Fixes https://github.com/cilium/cilium/issues/13240

test-backport-1.8

retest-net-next

test-backport-1.8

test-missed-k8s


Contradiction In OpenGLShader::PreProcess

In PreProcess function, inside the while loop on the last substr. The second parameter checks to see if nextLinePos == std::string::npos and returns source.size() - 1. I'm not sure how this makes sense, furthermore we are passing nextLinePos as the first parameter; It seems if you pass std::string::npos as the first parameter of substr the program crashes, the second parameter checking for nextLinePos == std::string::npos doesn't make sense. but I've not hard anyone complaining about this so maybe I don't understand what is really going on here?
std::unordered_map<GLenum, std::string> OpenGLShader::PreProcess(const std::string& source)
{
    std::unordered_map<GLenum, std::string> shaderSources;

    const char* typeToken = "#type";
    size_t typeTokenLength = strlen(typeToken);
    size_t pos = source.find(typeToken, 0);
    while (pos != std::string::npos)
    {
        size_t eol = source.find_first_of("\r\n", pos);
        HZ_CORE_ASSERT(eol != std::string::npos, "Syntax error");
        size_t begin = pos + typeTokenLength + 1;
        std::string type = source.substr(begin, eol - begin);
        HZ_CORE_ASSERT(ShaderTypeFromString(type), "Invalid shader type specified");

        size_t nextLinePos = source.find_first_not_of("\r\n", eol);
        pos = source.find(typeToken, nextLinePos);
        shaderSources[ShaderTypeFromString(type)] = source.substr(nextLinePos, pos - (nextLinePos == std::string::npos ? source.size() - 1 : nextLinePos));
    }

    return shaderSources;
}

If you create a shader that specifies a tokenType like #vertex and the file ends on that line I think the program would crash. I would ASSERT this and throw a syntax error message for this as well.

You should make a PR which implements this.

In PreProcess function, inside the while loop on the last substr. The second parameter checks to see if nextLinePos == std::string::npos and returns source.size() - 1. I'm not sure how this makes sense, furthermore we are passing nextLinePos as the first parameter;

Inside the while loop:

pos contains the start of the shader, at the start of the #type shader line
we look for eol, the end of the line, at the end of the #type shader line, if that is npos, we should've gone outside of the loop as we've reached the end... (hence the assert)
we extract the type (and assert it) that we found using the line inbetween pos and eol that we found in step 1 and 2.
nextLinePos contains the position at the start of the first line of the actual shader, and is the start to search. Note: this will NEVER be npos, as that would mean we are at the end of the string, which was asserted in step 2.
we search pos to be the end of the shader code (aka the start of the next #type shader line or npos if the shader code goes to the end of the string).
If step 5 found npos, we change this to the end of the string, otherwise we just return the position we found.

It seems if you pass std::string::npos as the first parameter of substr the program crashes, the second parameter checking for nextLinePos == std::string::npos doesn't make sense. but I've not hard anyone complaining about this so maybe I don't understand what is really going on here?

See my explanation above (number 4), it can never be npos as it would've been asserted before.

If you create a shader that specifies a tokenType like #vertex and the file ends on that line I think the program would crash. I would ASSERT this and throw a syntax error message for this as well.

If the file would end with the #type shader at the end, the eol would have the value npos (regardless if it had the \r\n at that last line).
If there was some character on the next line, the shader would be at least the size of 1 character long, which would just create a compile error on the shader and not an error in the PreProcess function.
Am I missing something here (as in, is there an actual bug), or did I clearify the inner workings a bit more in depth? Since I won't take a conclusion now, I won't mark this as a bug (for now).
Kind regards
lovely_santa

@LovelySanta Ok, so thank you for trying to explain this to me.

See my explanation above (number 4), it can never be npos as it would've been asserted before

The initial reason for me creating this issue was rooted in the nextLinePos variable. Your reply Is explaining how the PreProcess(which to be fair I also wanted clarification on) but the glaring issue for me is this specific ternary statement nextLinePos==std::string::npos in the parameter of substr.
I said It seems you can't pass std::string::npos to the substr function (the program crashes) and we should assert nextLinePos to ensure it is not std::string::npos but you've told me I shouldn't do that because nextLinePos can never be std::string::npos; so if that is the case why is the function still checking if nextLinePos is equal to std::string::npos. Do you see what I mean. To me that is, if not a bug, a contradiction at least.Furthermore the idea that doing pos - std::string::npos gives something sensible, I just don't believe.
Secondly. I do believe that nextLinePos can in fact be std::string::npos without an ASSERT being fired. we don't ever assert that it is not std::string::npos so if we don't find a next position in the string that is not "\r\n", nextLinePos will be std::string::npos. You see what I'm saying.
Just for reference this is how it would be written for me.
size_t nextLinePos = source.find_first_not_of("\r\n", eol);
HZ_ASSERT(nextLinePos != std::string::npos, "Syntax Error");

pos = source.find(typeToken, nextLinePos);
shaderSources[ShaderTypeFromString(type)] = source.substr(nextLinePos, (pos == std::string::npos ? source.size() - nextLinePos : pos - nextLinePos));

Two things:

You're right, I didn't notice it, but we have to check if pos equals npos instead of nextLinePos!

pos = source.find(typeToken, nextLinePos);
shaderSources[ShaderTypeFromString(type)] = source.substr(nextLinePos, (pos == std::string::npos ? source.size() - 1 : pos) - nextLinePos);

Yes, it might not be a bad idea to assert the nextLinePos to be different of npos.

The first is an issue for sure, the 2nd is more a suggestion. I'll mark this as a bug, and feel free to make a PR to implement both.


Events vs Messages?

Hello! I'm a bit confused about the difference between an event and a message. The documentation, such as this page, mostly use the term "event", but in the Portal and even in a couple places on this page, I see "message" everywhere and not event. I'd expect the "Terminology" page to explain the difference, but it doesn't. Would be nice for it to explain that, or if they're the same to be consistent in always using "event" or always using "message".
Main area where it could be different (in my head) is in batches: does a batch of 10 events count as a single message, or is it 10 messages (event == message)?
Thanks!

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

ID: 71adf8e4-a51b-d20d-39e1-fd7551bc94b9
Version Independent ID: 3d26fbc0-b6ae-e0ca-089f-e4966c19ef22
Content: Overview of features - Azure Event Hubs - Azure Event Hubs
Content Source: articles/event-hubs/event-hubs-features.md
Service: event-hubs
GitHub Login: @spelluru
Microsoft Alias: spelluru

Thanks for the feedback! We have assigned the issue to the content author to further review this provide an update as appropriate.

Event == message in this case. We will add clarification to the article.
Events are grouped by using batches. Please see https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-programming-guide#batch-event-send-operations and https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-send#write-code-to-send-events-to-the-event-hub (step #4).

#please-close


strict-type-predicates: Anything with a construct signature is a function

PR checklist

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

[X] Includes tests

[ ] Documentation update

Overview of change:
Check for construct signatures in isFunction.
CHANGELOG.md entry:
[bugfix] strict-type-predicates: Check for construct signatures in isFunction.

are you sure this fixes #2472? we should consider adding a test using union types like in #2472.


[stable/traefik] Set [tracing] config values

Is this a request for help?:
No
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
FEATURE REQUEST

Version of Helm and Kubernetes:
helm: 2.8.2
kubernetes: 1.8.7
Which chart:
traefik
What happened:
There is no way to set the [tracing] part of traefik config.
What you expected to happen:
Be able to specify the tracing config for [tracing] as per documentation https://docs.traefik.io/v1.6/configuration/tracing/ by setting values.yaml.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:

/remove-lifecycle stale this is still an issue

/remove-lifecycle stale this is still an issue


feat(in-app swaps): add swap screen

Description
In this PR:

add swap screen that is not yet hooked up to a backend
the exchange rates are currently hard coded
add UI to allow adding swap amount/swap token

https://user-images.githubusercontent.com/20150449/179528937-f6784188-b5db-4baf-9b0c-bdcaa272f395.mp4
Other changes
N/A
Tested
Manually and unit tests
How others should test
N/A (wait till the next PR to test the integrated version of this screen)
Related issues

Relates to RET-269

Backwards compatibility
Yes

Hey @MuckT since NA is mentioned in how others should test section, we are skipping this PR


Device Owner Silent App Install

Description:
Almost all my device owner operations are working. However, the user is asking if I want to install the application silently. In other words, the backplane can not perform the application installation. He wants user permission. It is not throwing in any error. Could this be a bug?
Affected Product Version:
Wso2 3.2.0 & Agent 3.1.30

This is not a bug, it is currently not implemented in the agent. I've created a pull request in order to allow silent app installation/uninstallation if the agent is device owner:
https://github.com/wso2/cdmf-agent-android/pull/165

This has been implemented with PR https://github.com/wso2/cdmf-agent-android/pull/165

Ub
Uuub7w7ttuuuuuuuuuUuub7w7ttuuuuuuuuuutttttb5it
17 Nis 2018 Sal 11:01 tarihinde Charitha Goonetilleke <
<EMAIL_ADDRESS>şunu yazdı:

Closed #1705 https://github.com/wso2/product-iots/issues/1705.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/wso2/product-iots/issues/1705#event-1578129318, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AhJfC8UL7qsCmpyUIOn8FJUhMx_I_V_6ks5tpaFUgaJpZM4SOyOi
.


[Mod Compat] Thermoo

Love the mod and I was wondering, would a possible compatibility for Thermoo be possible?
The mod adds a temperature bar which is shown by a fire/freeze border around your heart bar.
I can think of two ways to execute this:

A orange/cyan border around the health bar.
A separate bar for temperature

I'd appreciate if you add this compat, but I will not be disappointed if it cannot be done at the moment.
The bars appear if you have Scorchful and Frostiful enabled, but Thermoo is the main library for the temperature system.

Scheduled, while the next develop period should be in late June for I have much more other development and school tasks.

Also I forgot to mention. Scorchful has a wetness bar which is symbolised as a blue checkerboard behind the hearts
It is displayed by going into water, so i felt like that if you start developing it could be useful to know this

Thank you providing the useful information.


🔌 Plugin: Break out a @backstage/plugin-home-react

🔖 Summary
The @backstage/plugin-home package exports some symbols, in particular createCardExtension and the types that come out of it, which other plugins might be interested in importing. That function and its types should be exported instead from a new @backstage/plugin-home-react package, and deprecated in their old place, so that plugins don't need to import plugins (which isn't normally allowed).
🌐 Project website (if applicable)
https://github.com/backstage/backstage/tree/master/plugins/home
✌ Context
See for example #17692, in which the pagerduty plugin ends up importing the entire home plugin instead of a -react package, because it wants to expose home page features.
👀 Have you spent some time to check if this plugin request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

Hello!
I'd like to work on this but want to clarify the requirements.

[ ] Create a new @backstage/plugin-home-react package
[ ] Move following functions to the new package createCardExtension, CardExtensionProps, ComponentParts, ComponentRenderer, RendererProps, CardLayout,  CardSettings
[ ] Update imports to refer to the new package

Let me know if this is what is expected here.

@freben @kmarkow
Agreed changes have been added to Pull request


Add support for automatic testing

It should be possible to configure OONI Probe on desktop to automatically run all the tests.
On macOS this should not be too hard, we can write a launchd service config file with to run at regular intervals see: https://www.launchd.info/.
We can even use NetworkState to only run when there is network connectivity.
<key>KeepAlive</key>
<dict>
	<key>NetworkState</key>
	<true/>
</dict>

We should learn from the issues and feature requests from probe-legacy when designing the new version of this.
See:
https://github.com/ooni/probe-legacy/issues/25


Which is CSS property/styles which automatically adjusts the height of tooltip if the content goes beyond 'max-width'

So I am applying max-width property on tooltip so that if the content message is too long... it automatically goes to next line (as shown below) -

But sometimes what is happening is that the height of the tooltip is not adjusted and the content flows out of the tooltip (as shown in below img). I feel this is due to some style property overriden by the FullCalendar I am using in the background (in 'month view' of the calendar I am getting this issue. But in 'week view'... tooltip is coming fine)

So I wanted to know which is the CSS property/styles which was enabling the text to go in nextLine by automatically adjusting the height of tooltip... so that I can explicitly specify in my custom CSS (applied to the tooltip) to make the Content come in next line in 'month view' also

It's hard to give any suggestions without seing the project firsthand.
But going by what you said, that the tooltip works fine in one mode, and breaks in another one, you can try moving the tooltip component outside whatever component might be overriding the styling, so only your tooltip-specific styling is applied to it.

@gabrieljablonski thanks for the instant reply. Actually I can't do it coz... the calendar is not in my hand (the library decides when and where to render the Item). Any other solution coming to your mind? I though of explicitly providing the same style on my tooltip instance... which is used in the your library to get the text come in next line

Can you provide a summary of how your project looks when it comes to the DOM structure?
I'm guess you have a custom view that you pass to the <FullCalendar /> component, and you're placing the <Tooltip /> component inside the custom view render.
If that's the case, try placing the <Tooltip /> alongside <FullCalendar /> and see if that works. Like so:
<div>
  <FullCalendar
    {...}
  />
  <Tooltip />
</div>

If that's not the case, or it doesn't work, you would have to provide a sample project reproducing it. Without that, it's really hard to give any suggestions.

I tried the above but in that case tooltip goes under the calendar and doesn’t appear as intended.
But I got the problematic CSS style. It was white-space. The 'month view' was applying white-space: nowrap. Adding white-space: normal in the styles of the tooltip instance worked. @gabrieljablonski thanks a lot for taking time to help me out. I really appreciate it!

No problem. If you run into similar issues in the future, try my suggestion again, and set the z-index so the tooltip shows up properly, either with css, or with inline styling:
<Tooltip style={{ zIndex: 99 }} />

Yes I tried the above and can confirm that it also works. And I think is a bit more efficient as the <Tooltip> instance is not created for each event in the calendar (as mentioned here)

@gabrieljablonski related to performance... it is mentioned here that we should try and keep <Tooltip> in the App.tsx. In that case how do we target this Global <Tooltip /> instance to show some content in it?

we should try and keep <Tooltip> in the App.tsx

That is mostly a suggestion if you're running into weird issues when using the tooltip, it's not a hard rule.

In that case how do we target this Global <Tooltip /> instance to show some content in it?

See the data attributes section.

Got it! Thanks for your time!


chore(deps): update tubenhirn/semantic-release-github docker tag to v4.0.5

This PR contains the following updates:

Package
Update
Change

tubenhirn/semantic-release-github
patch
v4.0.4 -> v4.0.5

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

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


[tracer error] thread XXX delivers a non-SIGSTOP signal

I modified the MySQL part of this project into MongoDB, including files such as config, src/utils.cpp, src/infrastructure.cpp and src/tracer.cpp, and used YCSB to drive MongoDB for testing. The following error occurs when executing the  ./tracer   command:
[tracer][error] thread 2129 delivers a non-SIGSTOP signal
[tracer][error] tracee exits normally, exit num = 1
The full console output is as follows:
error.txt
Hope to get your help, thank you!

After BOLT finished, I found that the mongod in the background was gone, and the ps aux command was also gone.

An issue was also found, in the BOLT command section, there is this prompt:
BOLT-WARNING:  3016 (90.1% of all profiled) functions have invalid (possibly stale) profile. Use-report -stale to see the list.
BOLT-WARNING:  81739538 out of 82070786 samples in the binary (99.6%) belong to functions with invalid (possibly stale) profile.
What is the reason for this? Does it affect the experiment? Thank you very much if you can help me.

i switched to the redis,occur the same problem, after BOLT finished, i use ps aux command, and find that the redis-server process displays a defunct status. wish your help, thanks! @zyuxuan0115

i switched to the redis,occur the same problem, after BOLT finished, i use ps aux command, and find that the redis-server process displays a defunct status. wish your help, thanks! @zyuxuan0115

the last few lines of machine_code.txt :
------------------------ call sites ------------------------
------------------------ vtable ------------------------
------------------------ unmoved func ------------------------
[tracee (lib)] mprotect failed
[tracee (lib)] error: Cannot allocate memory
[tracee (lib)] target addr = 0x0, len=0, page_aligned=0


Enhancements

Add new export image style (SSRSpeed v2.5+ result table).
Add total used time show for new export style.
Add export image color customization.
Add more log detail.
Add more preference items.
Add client availability check.
Add warning log type.
Fix export picture text align error.
Fix a potential compiler warning.
Fix a segmentation fault when trying to get system proxy on non-Windows platforms.
Fix Shadowsocks plugin detect in Clash and Surge parser.
Fix broken test duration calculator.
Fix some speed color background not properly rendered.
Fix a critical bug which leads to slow image exporting when there are a lot of nodes.
Fix other bugs.
Update clients to static build.
Clean up unused files.
Optimize codes.

it did not fix the segmentation fault
Welcome to Stair Speedtest v0.7.1!
Which stair do you want to test today? (Supports single Shadowsocks/ShadowsocksD/ShadowsocksR/V2Ray link and their subscribe links)
If you want to test more than one link, separate them with '|'.
Link: Provided from argument.

Found subscribe link.
Downloading subscription data...
zsh: segmentation fault  ./stairspeedtest /u

using on MacOS 13.3.1 on M1 CPU


[docker] Added Dockerfile for the Move CLI

Added Dockerfile for Move command-line interface for getting started
easier. This Dockerfile is based on the CI image found in docker/.
Also added building instructions to README.
Motivation
Providing an easier way to get started with Move.
This Dockerfile can later be used with automated packaging solutions, such as Docker Hub.
Have you read the Contributing Guidelines on pull requests?
Yes (going to fix the link anchor :laughing: ).
Test Plan
docker build -t move/cli -f docker/move-cli/Dockerfile .
cd ./language/documentation/tutorial/step_1/BasicCoin
docker run -v `pwd`:/project move/cli package build

I wonder if we should add a CI test for this?


Sorting of solution file?

We have lots of problems with conflict in the sln file. Any reason for not sorting the solution file?

I don't think that was a pain point for us - the churn seemed to be mainly in the csproj files.
Although migrating to the new Visual Studio Common Project System has solved the majority of our git related issues.


Generated CSV file always start at A2

Prerequisites

[X] Checked if your Laravel Excel version is still supported: https://docs.laravel-excel.com/3.1/getting-started/support.html#supported-versions
[X] Able to reproduce the behaviour outside of your code, the problem is isolated to Laravel Excel.
[X] Checked that your issue isn't already filed.
[X] Checked if no PR was submitted that fixes this problem.
[X] Filled in the entire issue template

Versions

PHP version: PHP 7.2.18 (cli) (built: Apr 30 2019 23:32:39) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Laravel version: 5.8.36
Package version: 3.1.19

Description
CSV file always start at A2 cell
Steps to Reproduce
`<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Events\AfterSheet;
class DataExport implements FromCollection, WithHeadings, ShouldAutoSize
{
protected $data;

public function __construct(array $data)
{
    $this->data = $data;
}

public function headings(): array {
    return [
        'Name',
        'Quanity'
    ];
}

/**
 * @return \Illuminate\Support\Collection
*/
public function collection() {
    return collect([
        [
            'name' => 'Apple',
            'quantity' => '56'
        ],
        [
            'name' => 'Strawberry',
            'quantity' => '213'
        ],
        [
            'name' => 'Orange',
            'quantity' => '129'
        ]
    ]);
}

}
`
Expected behavior:

Actual behavior:

Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Hi, I fixed this issue by putting ob_clean() at the top of my controller