Screen jumps up when writing/pasting towards bottom of screen

When you paste something or write something with a line break towards the bottom of a page, it jumps up or at least does not move along with the new text.
I tested this with another theme and it does not appear to happen there.
Thanks :)

I don't really follow. Could you do a short screen-recording of the issue?

https://user-images.githubusercontent.com/71895400/135880405-5707296b-5884-4389-90a3-f73c60002920.mp4
I paste a paragraph and the screen sort of "jumps" up. It's probably rather that it doesn't follow the text which is what I would expect.

Hmm, that is indeed weird, I am not aware of anything I did with the theme that would create this sort of behavior. Also I tried to reproduce it on my machine, but most of the time, I did not have this issue. However, in very rare cases, it indeed scroll up a bit. 🤔
As I am not really sure how to reproduce this issue / what causes, I am sorry to say that at least for now, I wouldn't know how to fix this. 🙁
When it occurs more often for you, you could try to experiment a bit. If you can narrow down which conditions exactly cause the issue, it might give me a hint what's root of this.
If any other user of the theme also encounters the issue and could post under what conditions this occurs, this would help a lot!

https://user-images.githubusercontent.com/71895400/136004553-19041765-662f-4894-994f-3ef9f64db86c.mp4
In this video it's a little clearer what I mean. I press enter to get to the next line, and then when it should scroll down beyond the current screen it jumps up a little bit and then doesn't catch up to the cursor anymore.
https://user-images.githubusercontent.com/71895400/136004944-5ef8ce42-2d37-45c7-a69b-b0e71a3ff347.mp4
This is with another theme ("Minimal") where it works as intended.

yeah, I remember looking into it at some point, but to be frank, I could not find out what causes it :(

No Problem! Leave it open, I am still learning CSS myself and I might find a solution at some point in the future.
Btw, if you like multi-color-highlighting, you should also check out this plugin, which supports even more color: https://github.com/chetachiezikeuzor/Highlightr-Plugin


mp4 file format always converted to mkv

whenever I download a video from YT the file is converted to mkv, I prefer mp4.
In Settings I have set mp4 as preferred video container.
Selecting mp4 only in "Select formats" dialog did not help.
So my question is: How to get mp4 not mkv files when downloading from YT?
As noticed in the output window the video is downloaded as mp4 but converted in the last step to mkv.

Not knowing if this can help: The same problem had occured when I tried (in 'settings' -> 'path to yt-dlp.exe') the alternative 'ytdl-patched-red.exe'. After switching back to 'yt-dlp.exe' that never happened again for me.

Like altadr said, that can happen if you use ytdl-patched (ytdl-patched-red.exe), which always merges formats into the mkv container for some reason.
But what's likely happening in your case is that yt-dlp is combining the .mp4 video with .webm audio (encoded with the opus codec), because that's the audio format that yt-dlp considers the best by default. And since the .mp4 container can't contain opus audio, the formats are merged into an .mkv file.
In order to fix that, just go to settings and select .m4a as the preferred audio container, since that's compatible with .mp4.

thank you for your replies. I use yt-dlp.exe, changing preferred audio container to m4a did the trick.
@ErrorFlynn maybe you want to make it more obvious, after selecting mp4 as preferred video container as tooltip or similar should be displayed to inform users that the audio container should be m4a. Or if mp4 is the default when starting ytdlp-interface for the first time then m4a should be preselected as audio container...
thanks again.

thanks for adding the container tooltip to make it more clear


Adapt OOMKilling pattern to old and new Linux kernels

Context: https://github.com/kubernetes/node-problem-detector/issues/480.
Tl;dr: kernel commit https://github.com/torvalds/linux/commit/bbbe48029720d2c6b6733f78d02571a281511adb removed logging the Kill process %d (%s) score %u or sacrifice child\n OOM message part we look for when tracing the kernel log in the kernel monitor. Because of that, the change removes that part from the kernel-monitor(-filelog).json regex pattern to handle both old and new kernel versions.
Successfully tested the change using https://github.com/kubernetes/node-problem-detector#try-it-out instruction (appropriate K8s events are emitted for both old and new OOM message formats).
Fixes https://github.com/kubernetes/node-problem-detector/issues/480.

Friendly ping for a review request @andyxning @xueweiz :).
When could one expect a new release of NPD (incorporating this fix)?

/assign @Random-Liu

/lgtm
/approve
Thanks for the fix!

/retest

/retest

/retest

/retest

/retest


[review] Fix warnings

fix a warning in release were parameters were unused
fix a warning in recent compiler about auto_ptr depreciation

[x]   General Comment
<img border=0 src='https://avatars.githubusercontent.com/u/6862950?v=3' height=16 width=16'> :+1: @dawagner @tcahuzax please review

:+1: @dawagner @tcahuzax please review

:+1:

@krocard please also consider cherry-picking https://github.com/dawagner/parameter-framework/commit/fix-unused-variable

@dawagner  done

:shipit:


[FLINK-23262][tests] Check watermark frequency instead of count

What is the purpose of the change
Reintroduce checking watermark frequency instead of count
after recent improvements invalidated count assumption.

Which improvements do you refer to?

Your changes in the MailboxProcessor, @dawidwys :slightly_smiling_face:

I am afraid it does not help :( It failed on azure for this PR.

Sorry, my bad, I should have apply the same change to record the start time.
Now the test passed (also checked locally with 10k runs).

I'll merge it, as the test became really unstable in the past days.

Thanks for reviewing and merging @dawidwys


[Feature] Cdc support new synchronization mode

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
paimon cdc 支持divided和 combined 同步模式，对大量表同步场景，两种模式都有一定局限性。一般业务数据库大表很少，可能top5内，小表比较多，两种模式都不合适。
建议一种新模式，支持为大表设置独立sink，剩余表在一个sink中，可以为每个sink 设置并发度。
Solution
No response
Anything else?
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Hi @melin , please discuss the issue in English so everyone in the world can understand what we're discussing about.
You mentioned that you'd like a new mode for Paimon CDC, such that some specified large tables can have a dedicated sink vertex, while the remaining small tables can be combined and share one sink vertex.
In this case I would suggest you to create multiple Flink jobs. Each large table will occupy one Flink job with the divided CDC mode, while all other small tables will share one Flink job with the combined CDC mode. I don't see it is necessary to introduce a new mode.
What do you think?


feat: update golang-github-jcmturner-dnsutils.v2 to 2.0.0

Golang library of DNS utilities
Issue: https://github.com/deepin-community/sig-deepin-sysdev-team/issues/552
Log: update repo

/lgtm
/approve


Provide alternative way to handle Optional

Provide an alternative way of handle the result from RiskyService without the need of an explicit if in case of Optional.

🌈 & 🦄


Update virtual-machines-disks-encryption-create-key-vault-portal.md

Button name has changed in portal:
"+Add" resources -> "+Create" resources

@wbradmoore : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@wbradmoore Thanks for helping improve our docs, we appreciate it!
This change looks good so:
#sign-off


[Snyk] Security upgrade urllib3 from 2.0.7 to 2.2.2

This PR was automatically created by Snyk using the credentials of a real user.![snyk-top-banner](https://github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123)
Snyk has created this PR to fix 1 vulnerabilities in the pip dependencies of this project.
Snyk changed the following file(s):

requirements_test.txt

⚠ Warning
```
astroid 2.15.8 has requirement typed-ast<2.0,>=1.4.0; implementation_name == "cpython" and python_version < "3.8", but you have typed-ast 1.3.5.
aiohttp 3.8.6 has requirement asynctest==0.13.0; python_version < "3.8", but you have asynctest 0.12.3.
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with your project.
> - Max score is 1000. Note that the real score may have changed since the PR was raised.
> - This PR was automatically created by Snyk using the credentials of a real user.
> - Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

---

**Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._

For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NGIyN2RhOS1hMmVkLTQ4MzYtYmRjNC0wOWE3ZmIwNWRjYWYiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc0YjI3ZGE5LWEyZWQtNDgzNi1iZGM0LTA5YTdmYjA1ZGNhZiJ9fQ==" width="0" height="0"/>
🧐 [View latest project report](https://app.snyk.io/org/omri-demo/project/3482b48c-dbe8-4e99-94e9-47bde70f7627?utm_source=github-enterprise&utm_medium=referral&page=fix-pr)
📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates)
🛠 [Adjust project settings](https://app.snyk.io/org/omri-demo/project/3482b48c-dbe8-4e99-94e9-47bde70f7627?utm_source=github-enterprise&utm_medium=referral&page=fix-pr/settings)
📚 [Read about Snyk's upgrade logic](https://support.snyk.io/hc/en-us/articles/360003891078-Snyk-patches-to-fix-vulnerabilities)

---

**Learn how to fix vulnerabilities with free interactive lessons:**

🦉 [Learn about vulnerability in an interactive lesson of Snyk Learn.](https://learn.snyk.io/?loc=fix-pr)

[//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"urllib3","from":"2.0.7","to":"2.2.2"}],"env":"prod","issuesToFix":[{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","priority_score":101,"priority_score_factors":[{"name":"confidentiality","value":"high"},{"name":"integrity","value":"none"},{"name":"availability","value":"none"},{"name":"scope","value":"unchanged"},{"name":"exploitCodeMaturity"},{"name":"userInteraction","value":"none"},{"name":"privilegesRequired","value":"low"},{"name":"attackComplexity","value":"high"},{"name":"attackVector","value":"network"},{"name":"epss","value":0.00043},{"name":"isTrending","value":false},{"name":"publicationDate","value":"Tue Jun 18 2024 08:23:45 GMT+0000 (Coordinated Universal Time)"},{"name":"isReachable","value":false},{"name":"isTransitive","value":true},{"name":"isMalicious","value":false},{"name":"businessCriticality","value":"high"},{"name":"relativeImportance","value":"medium"},{"name":"relativePopularityRank","value":100},{"name":"impact","value":5.99},{"name":"likelihood","value":1.67},{"name":"scoreVersion","value":"V5"}],"severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"},{"exploit_maturity":"No Known Exploit","id":"SNYK-PYTHON-URLLIB3-7267250","priority_score":101,"priority_score_factors":[{"name":"confidentiality","value":"high"},{"name":"integrity","value":"none"},{"name":"availability","value":"none"},{"name":"scope","value":"unchanged"},{"name":"exploitCodeMaturity"},{"name":"userInteraction","value":"none"},{"name":"privilegesRequired","value":"low"},{"name":"attackComplexity","value":"high"},{"name":"attackVector","value":"network"},{"name":"epss","value":0.00043},{"name":"isTrending","value":false},{"name":"publicationDate","value":"Tue Jun 18 2024 08:23:45 GMT+0000 (Coordinated Universal Time)"},{"name":"isReachable","value":false},{"name":"isTransitive","value":true},{"name":"isMalicious","value":false},{"name":"businessCriticality","value":"high"},{"name":"relativeImportance","value":"medium"},{"name":"relativePopularityRank","value":100},{"name":"impact","value":5.99},{"name":"likelihood","value":1.67},{"name":"scoreVersion","value":"V5"}],"severity":"medium","title":"Improper Removal of Sensitive Information Before Storage or Transfer"}],"prId":"74b27da9-a2ed-4836-bdc4-09a7fb05dcaf","prPublicId":"74b27da9-a2ed-4836-bdc4-09a7fb05dcaf","packageManager":"pip","priorityScoreList":[101],"projectPublicId":"3482b48c-dbe8-4e99-94e9-47bde70f7627","projectUrl":"https://app.snyk.io/org/omri-demo/project/3482b48c-dbe8-4e99-94e9-47bde70f7627?utm_source=github-enterprise&utm_medium=referral&page=fix-pr","prType":"fix","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":["updated-fix-title","pr-warning-shown","priorityScore"],"type":"auto","upgrade":[],"vulns":["SNYK-PYTHON-URLLIB3-7267250"],"patch":[],"isBreakingChange":false,"remediationStrategy":"vuln"}'

🎉 Snyk hasn't found any issues so far.
✅ code/snyk check is completed. No issues were found. (View Details)


WIP: major rewrite

This PR is a major rewrite of most of the internal logic. It also introduces some breaking changes to public APIs, e.g. the config file format changed completely. These things need to be documented before merging.
Still WIP.

Codecov Report

Merging #19 into master will increase coverage by 6.06%.
The diff coverage is 80.18%.

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
+ Coverage   68.29%   74.36%   +6.06%
==========================================
  Files          24       21       -3
  Lines         634      706      +72
==========================================
+ Hits          433      525      +92
+ Misses        187      154      -33
- Partials       14       27      +13

Impacted Files
Coverage Δ

internal/schedule/day_time.go
100.00% <ø> (ø)

internal/schedule/interval.go
100.00% <ø> (ø)

internal/schedule/schedule.go
76.36% <33.33%> (-5.64%)
:arrow_down:

internal/timeswitch/timeswitch.go
64.28% <64.28%> (ø)

internal/controller/commands/commands.go
68.00% <68.00%> (ø)

internal/websocket/command.go
71.42% <71.42%> (ø)

internal/websocket/handler.go
76.92% <76.92%> (ø)

internal/websocket/client.go
78.33% <78.33%> (ø)

internal/config/config.go
84.31% <80.48%> (-15.69%)
:arrow_down:

internal/websocket/hub.go
82.92% <82.92%> (ø)

... and 19 more

Continue to review full report at Codecov.

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


additional fields for tlog config

These fields are needed for 0-stor integration

itsyou.online organization (string)
itsyou.online namespace (string)
itsyou.online client ID (string)
itsyou.online secret (string)
0-stor server addresses ([]string)
Metadata server addresses([]string)

More info about organization & namespace can be found on https://github.com/zero-os/0-stor/blob/master/specs/concept.md#namespaces-concept

This issue is blocked and has to wait until PR #330 is finished and merged.
@iwanbk aren't you also missing the actual storage endpoints, or is that something 0-stor figures out based on that information only?
And I assume this information is replacing the TlogStorageCluster (ARDB) sub config?

This issue is blocked and has to wait until PR #330 is finished and merged.

Do you have ETA for this?

@iwanbk aren't you also missing the actual storage endpoints, or is that something 0-stor figures out based on that information only?

Ah yeah. Issue description updated

And I assume this information is replacing the TlogStorageCluster (ARDB) sub config?

yeah, but can we keep this sub config until 0-stor integration fully finished.

Do you have ETA for this?

Hopefully in about 6 hours, worst case tomorrow (23:00, 2/07, GMT+1).

Metadata server addresses

Which metadata server addresses are this? ARDB? Or 0-Stor as well?

Which metadata server addresses are this? ARDB? Or 0-Stor as well?

etcd

@chrisvdg these fields can be added to the VdiskTlogConfig struct. Make sure to validate these fields as is appropriate, and add the unit tests to help validate your implementation.

@iwanbk , any specs for the validation?

any specs for the validation?

Non empty value is fine for now

any specs for the validation?

0-stor server addresses ([]string)
Metadata server addresses([]string)

Besides the non-empty, also validate these server addresses using the valid.IsDialString method. It doesn't tell us if the servers are reachable, but at least it gives us some validation.

Fixed in ready-for-merging PR #365.


feature: configurable notificationChannel importance

It would be nice if we could specify the importance of the notification channel. This would allow a silent notification (one that doesn't appear continuously)
NotificationChannel chan1 = new NotificationChannel("default", "default", NotificationManager.IMPORTANCE_LOW);

Its already implemented

or do you mean to somthing else?

Its already implemented

or do you mean to somthing else?

@SayWut wow that's exactly what I meant! How did I miss that... :) my bad!

@SayWut wow that's exactly what I meant! How did I miss that... :) my bad!

It didn't work as expected. How can I have it the same as the "Android System" notification. That one is collapsed from the beginning :)

It didn't work as expected. How can I have it the same as the "Android System" notification. That one is collapsed from the beginning :)

When I implemented this I checked if this works
The single line notification it depends on the OS and every android OS works differently, on some you need to use LOW on other you need to use MIN
I am not in front of my PC but you can try this
https://stackoverflow.com/questions/50676819/android-o-single-line-notification-like-the-android-system-usb-charging-t

When I implemented this I checked if this works
The single line notification it depends on the OS and every android OS works differently, on some you need to use LOW on other you need to use MIN
I am not in front of my PC but you can try this
https://stackoverflow.com/questions/50676819/android-o-single-line-notification-like-the-android-system-usb-charging-t

from what I checked and tested there is no way to create a single line foreground service in android 8
when you use importance min the OS change the importance to higher lvl
Min notification importance: only shows in the shade, below the fold. This should not be used with Service#startForeground(int, Notification) since a foreground service is supposed to be something the user cares about so it does not make semantic sense to mark its notification as minimum importance. If you do this as of Android version Build.VERSION_CODES.O, the system will show a higher-priority notification about your app running in the background.
https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_MIN

from what I checked and tested there is no way to create a single line foreground service in android 8
when you use importance min the OS change the importance to higher lvl
Min notification importance: only shows in the shade, below the fold. This should not be used with Service#startForeground(int, Notification) since a foreground service is supposed to be something the user cares about so it does not make semantic sense to mark its notification as minimum importance. If you do this as of Android version Build.VERSION_CODES.O, the system will show a higher-priority notification about your app running in the background.
https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_MIN

I don't know if it makes a difference, but I'm using android 10 in the image above.

I don't know if it makes a difference, but I'm using android 10 in the image above.

I don't know if it makes a difference, but I'm using android 10 in the image above.

🤔 I will check on this

I don't know if it makes a difference, but I'm using android 10 in the image above.

🤔 I will check on this

I tried to play with it and I didn't find any solution that works, if you manage to create single line notification send me the solution I will try to implement it.
From what I tested and searched it is not possible to set the ForegroudService's notification importance lower then medium programmatically which is crucial for single line notification

I tried to play with it and I didn't find any solution that works, if you manage to create single line notification send me the solution I will try to implement it.
From what I tested and searched it is not possible to set the ForegroudService's notification importance lower then medium programmatically which is crucial for single line notification

Alright I'll test around and if I find something I'll let you know.

Alright I'll test around and if I find something I'll let you know.


Add missing GAException message

GAException is in the Avro descriptions, but not in protobuf

@calbach Is this the simplest path to keeping compatibility with the existing API or should we go with the upstream proto equivalent? I'm easy either way.

I guess this seems fine to me. I definitely prefer the upstream proto, but I'm not sure what the best way to include it is.
Refactoring it later should require minimal effort though, so this approach seems fine if it unblocks things. Adding some inline comments.

On further thought, the upstream proto is not 100% compatible anyways.

If the upstream proto isn't 100% compatible I think we should put off refactoring to the standard proto until later (I do agree we should move to it though).

Looks good to me,  +1


Add delegation and targetpath search tests

This is a bit tricky to test but we should ensure that multiple levels of targets delegations work correctly and that target path search never finds incorrect artifacts.
python-tuf has some parametrized tests in https://github.com/theupdateframework/python-tuf/blob/develop/tests/test_updater_delegation_graphs.py: TestDelegationsGraphs for the delegation tests and then TestTargetFileSearch for targetpath searching. They are a bit complicated but I don't really see better ways.

the tests could be far more extensive but a first set is in there


feat: add support for rendering an optional PrometheusOperator ServiceMonitor resource definition

Description
This pull request changes the following:

Adds support for deploying prometheus service monitor for all network nodes
Adds helper scripts to deploy prometheus locally
Update CI/CD pipeline to deploy prometheus-operator
Update dev/Makefile to install prometheus-operator (if it does not exist) before deploying the network locally

Notes:

It was tested using prometheus operator: v0.67.1

Related Issues

Closes #227

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


Debugger doesn't stop at breakpoints with pytest if pytest-cov is used

Environment data
VS Code version:  1.19.3
Python Extension version:  2018.1.0
Python Version:   3.6.2
OS and version:    Windows 10 latest update
Actual behavior
My initial setup has this setup.cfg file:
[tool:pytest]
addopts = --cov=mymodulename

This adds automatically a "--cov" to every "pytest" call, but prevents VSCode to stop at breakpoints. If I remove the file (or at least the --cov), I get back my breakpoints stop.
I changed my setup to put that in my Travis file instead, but I feel like this should work :/
Expected  behavior
I should be able to have this file (and coverage) and debug at the same time.
Steps to reproduce:

Install pytest and pytest-cov
Create a setup.cfg as describe before
Create even a simple test with a breakpoint inside

Note that the test is executed correctly. Even the "run test" button on each test executes correctly this individual test.

@lmazuel apologies for the delay.
Looks like its not possible to debug the code with coverage enabled (http://pytest-cov.readthedocs.io/en/latest/debuggers.html).
I guess we'll have to disable 'coverage' on the fly when debugging.

Hmm, looks like we're not the only ones having trouble with debugging + pytest + coverage (https://www.jetbrains.com/help/pycharm/run-debug-configuration-py-test.html)
I've tried passing in the flag --no-cov, but that causes pytest to fall over of pytest-cov isnt installed.

@lmazuel
Unfortunately we're not going to be able to resolve this easily, hence we're closing this.
My suggestion is to modify the pytest args in the settings.json to manually pass in the --no-cov flag to enable debugging.
I understand this isn't the best solution, as you'll be modifying the settings on and off.

That's ok :). And I like the fact you open a documentation issue ;)

@DonJayamanne I don't really like having to editor my workspace settings any time I want to switch back and forth between generating coverage and debugging.
What about the idea of specifying an extra set of arguments that would be appended to python.unitTest.pyTestArgs when the "debug unit test" feature is used? It'd give users a place to put "--no-cov", if they happen to be using coverage. Maybe call it python.unitTest.pyTestDebugExtraArgs?

Thanks for the --no-cov trick !
I have to edit my configuration anytime I want to switch between coverage and debug, so I hope someone develops the enhancement proposed by @justfalter
Since I don't know how to develop VS Code plugins, I will use the trick for now :-)

I'd like to suggest another scheme for settings.json:
First, I'm assuming that the .unitTest namespace became .testing:
- python.unitTest.*
+ python.testing.*

@justfalter suggested a python.testing.[py|unit|nose]testDebugExtraArgs setting as an extension to the existing python.testing.[py|unit|nose]testArgs. I'd suggest instead implementing python.testing.[py|unit|nose]testDebugArgs, which if specified, is used instead of ...[py|unit|nose]testArgs when in running in debug mode, and falling back to ...[py|unit|nose]testArgs when not specified.
I haven't tested the behaviour to see if unittest and nosetest also skip breakpoints when coverage is enabled, but from their documentation, it seems like they would 1 2, since they also use sys.settrace(). The vscode-python docs only explictly mention pytest though3.
Ref:
1: Coverage.py for unittest
2: Nosetest also using Coverage.py
3. VSCode only notes skipping breakpoints with pytest

I'm seeing this issue with coverage.py and the Django Test Runner.  When I disable coverage, breakpoints are observed by the debugger.  When coverage is enabled, no breakpoints are hit.

I know this is old, but know that since Python 3.7 you can use a built-in breakpoint, and it works fine with cov.
just insert this in your code
breakpoint()

Hi, as there's some time passed since this ticket last updated. Do we have a fix for this other than adding breakpoint()?

@Limonkufu Put simply, there's no fix. Think about it this way:

Coverage is enabled and tests are run in debug mode
A breakpoint is hit and the program is paused
You run a command in the debug terminal that calls parts of your code

There's no straightforward (and maintainable) way that the coverage tracker can know if the parts of your code that the debug terminal invoked should count towards coverage or not. The coverage frameworks disable breakpoints so that they can get accurate coverage reporting. It's for this reason that I suggested a new settings.json namespace above so that we can specify different arguments for test debugging (i.e. with coverage disabled)

@zevisert thanks for explaining it clearly, I didn't understand it before,
if this is beginner friendly to this repo, I would like work on in. I'll
investigate a little bit thanks
On Thu, 18 Mar 2021 at 03:50, Zev Isert @.***> wrote:

@Limonkufu https://github.com/Limonkufu Put simply, there's no fix.
Think about it this way:

Coverage is enabled and tests are run in debug mode
A breakpoint is hit and the program is paused
You run a command in the debug terminal that calls parts of your
code

There's no straightforward (and maintainable) way that the coverage
tracker can know if the parts of your code that the debug terminal invoked
should count towards coverage or not. The coverage frameworks disable
breakpoints so that they can get accurate coverage reporting. It's for this
reason that I suggested a new settings.json namespace above so that we
can specify different arguments for test debugging (i.e. with coverage
disabled)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode-python/issues/693#issuecomment-801599531,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB2LFHAPTYINQU53NEOMDRTTEFZ75ANCNFSM4EO7DNXA
.

for those coming to this thread, i have a solution that may work for some people.  it involves moving your pytest args into pytest.ini within your project, setting up two tasks to sed and un-sed the coverage args, and adding these tasks to your launch.json.
sample pytest.ini (this is for a django project):
[pytest]
addopts = --cov-config=.coveragerc --cov-report html --cov-report xml --cov=. --nomigrations --reuse-db

tasks in tasks.json that use sed to overwrite the pytest.ini:
        {
            "label": "coverage-off",
            "type": "shell",
            "command": "sed -i 's/addopts = --cov-config=.coveragerc --cov-report html --cov-report xml --cov=./addopts =/' pytest.ini",
            "problemMatcher": []
        },
        {
            "label": "coverage-on",
            "type": "shell",
            "command": "sed -i 's/addopts =/addopts = --cov-config=.coveragerc --cov-report html --cov-report xml --cov=./' pytest.ini",
            "problemMatcher": []
        }

launch.json for debug tests:
        {
            "name": "Debug Tests",
            "type": "python",
            "preLaunchTask": "coverage-off",
            "justMyCode": false,
            "postDebugTask": "coverage-on",
            "request": "test",
            "console": "integratedTerminal",
        }

slightly annoying solution as it pops open a task window in the terminal, but hey, it works.  switch in your own pytest args, or if its only coverage, you can use sed to just comment out the line.

I don't suppose there is a way to throw an error when this happens?  Preferably a descriptive one, but any error would be helpful.
The docs are appreciated, but since the debugger failure is silent, I wasn't sure if ignoring breakpoints in tests was the intended behavior or not (much less whether coverage should be something I Google docs on).

I use an alternative to @dferrante 's solution above, which seems to be seamless inside the VSCode IDE for pytest tests:
In setup.cfg I have:
[tool:pytest]
addopts =  --cov=<module name> --cov-report term --cov-report xml:cov.xml  <other arguments here>

And then in launch.json I define a new task:
 {
    "name": "Debug Unit Test",
    "type": "python",
    "request": "launch",
    "justMyCode": false,
    "program": "${file}",
    "purpose": ["debug-test"],
    "console": "integratedTerminal",
    "env": {
        "PYTEST_ADDOPTS": "--no-cov"
    },
}

When you press the "Debug Test" button in the testing panel or by right-clicking on a test itself, VSCode executes this task which just turns off all coverage for that run. No need to switch between configurations or altering config arguments on the fly.
Note this may only work for fairly new versions of VSCode - I'm on 1.60.

This is an excellent case for better integration of run/debug configurations. You can currently already create these in the launch.json, but I can't figure out how to get pytest to use the different configurations.
The "Run and Debug" window dropdown will look like this:

With the launch.json file like this:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Py: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "cwd": "${workspaceRoot}",
      "console": "integratedTerminal",
      "debugOptions": [
        "RedirectOutput"
      ]
    },
    {
      "name": "Py: MD2MAT",
      // OTHER LINES REMOVED
    },
    {
      "name": "PyTest: Normal",
      // OTHER LINES REMOVED
    },
    {
      "name": "PyTest: Coverage",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "cwd": "${workspaceRoot}",
      "console": "integratedTerminal",
      "justMyCode": true,
      "args": ["--cov=aplModel", "./", ],
      "debugOptions": [
        "RedirectOutput"
      ]
    }
  ]
}

I tried moving the --cov=xxx line from the pytest.ini ADDOPTS line to the configuration, and then switching between my "Pytest Coverage" and "Pytest Normal" configurations in the Run/Debug window, but that didn't work.
We just need a way of configuring multiple ways of launching pytest with different arguments. This could be built into pytest, or just into VS Code's way of launching Pytest. It doesn't seem the RUN AND DEBUG dropdown window is being honored when PyTest runs at the moment, unless I'm setting something up wrong?

There's no straightforward (and maintainable) way that the coverage tracker can know if the parts of your code that the debug terminal invoked should count towards coverage or not. The coverage frameworks disable breakpoints so that they can get accurate coverage reporting. It's for this reason that I suggested a new settings.json namespace above so that we can specify different arguments for test debugging (i.e. with coverage disabled)

Wouldn't the cleanest solution be for VSCode to automatically disable code coverage when a test is run in debug mode? User side you would see no code coverage when you run tests in debug but code coverage appear fine if you run without debug. That would be pretty clean and painless for the two scenarios (rather than having to fuss with run settings and env variables).

seams like a good idea to me

Just commenting that this is still a pain in the bum. I want to believe that @AlexanderWells-diamond's answer works because it's the only suggestion with a reasonable level of difficulty/complexity, but it doesn't for me.

For some reason it stops at manually set breakpoints for me, but not if an error is raised. So, a silly workaround (at least for me) has been to let it run until it errors out, track down the relevant line, and set a breakpoint on it. Obviously not a great solution for long-running tests.

Its something in vscode. If you right-click your test in "testing" then select Debug from the menu it works fine and you can hit your breakpoints in "testing".  The debug "button" on the test does not allow the process to stop on a breakpoint.

@ericchansen seems to me that you are specifying launch configuration in settings.json. I ran into the same issue as you. What fixed it is realizing that the docs specify that customized configurations are parsed from the launch.json file in the .vscode folder of the current workspace. I hope moving your configuration out of settings.json into launch.json will fix this issue for you as well!
On a side note, it would be nice if these launch settings could be parsed from settings.json since it is cumbersome to add a launch.json into every Python project individually.

@skilkis could you include an example of a launch.json that resolves the issue for you?

@sgbaird here is the launch.json that resolved the issue for me. I've hidden it from view to not clutter the debug configuration menu 😊
{
  "version": "0.2.0",
  "configurations": [
    {
      // Disable cov to allow breakpoints when launched from VS Code Python
      "name": "Python: Debug Tests",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "purpose": ["debug-test"],
      "console": "internalConsole",
      "justMyCode": false,
      "presentation": {
        "hidden": true
      },
      "env": {
        "PYTEST_ADDOPTS": "--no-cov"
      }
    }
  ]
}

@skilkis I use multi-root workspaces. launch.json isn't part of that workflow. The launch section of the workspace file should be treated the same as a launch.json (and if it's not being treated the same, that's a bug).
I can confirm that debugging in 1.68.0-insider doesn't work with this workspace.
{
    "folders": [
        {
            "path": "../../../repos/repo-a"
        },
        {
            "path": "../../../repos/repo-b"
        }
    ],
    "launch": {
        "compounds": [],
        "configurations": [
            {
                "console": "integratedTerminal",
                "env": {
                    "PYTEST_ADDOPTS": "--no-cov"
                },
                "justMyCode": false,
                "name": "Python: Debug",
                "purpose": [
                    "debug-test"
                ],
                "request": "launch",
                "type": "python"
            },
            {
                "console": "integratedTerminal",
                "env": {
                    "PYTEST_ADDOPTS": "--no-cov"
                },
                "name": "Python: Current File",
                "program": "${file}",
                "request": "launch",
                "type": "python"
            },
            {
                "console": "integratedTerminal",
                "cwd": "${fileWorkspaceFolder}",
                "env": {
                    "PYTEST_ADDOPTS": "--no-cov"
                },
                "name": "Python: Current File in Current Workspace",
                "program": "${file}",
                "request": "launch",
                "type": "python"
            }
        ],
        "version": "0.2.0"
    },
    "settings": {
        "debug.internalConsoleOptions": "openOnFirstSessionStart",
        "files.trimTrailingWhitespace": true,
        "python.defaultInterpreterPath": "~/virtualenvs/dev/bin/python3",
        "python.testing.autoTestDiscoverOnSaveEnabled": true,
        "python.testing.pytestEnabled": true,
        "python.testing.unittestArgs": [
            "-v",
            "-s",
            ".",
            "-p",
            "*test*.py",
            "-f"
        ],
        "python.testing.unittestEnabled": true,
        "terminal.integrated.profiles.linux": {
            "bash": {
                "args": [
                    "-l"
                ],
                "path": "/bin/bash"
            }
        }
    }
}

The only way to make the debugger work is to remove addopts = --cov repo-a ... from your pyproject.toml, setup.cfg, etc.

@ericchansen I've created a minimal reproduction of your configuration and it also does not work for me. The code I used to test it is located at skilkis/vscode_python_pytest_multi_root_breakpoint_issue. Would you mind testing the launch.json file I linked above in a non multi-root workspace? This so that we can confirm that it works fine on your system?
After this I believe we can make a feature request to have support for settings.json and multi-root workspaces!

@skilkis I tested this with launch.json vs. the "launch" setting in settings.json.
# settings.json
// REDACTED
    "launch": {
        "configurations": [
            {
                "name": "Python: Global Debug Tests",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "purpose": ["debug-test"],
                "console": "integratedTerminal",
                "justMyCode": true,
                "env": {"PYTEST_ADDOPTS": "--no-cov"}
            }
        ],
        "compounds": []
    },
// REDACTED

vs.
# launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Debug Tests",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "purpose": ["debug-test"],
            "console": "integratedTerminal",
            "justMyCode": true,
            "env": {"PYTEST_ADDOPTS": "--no-cov"}
        }
    ]
}

Both options show up in the "Run and Debug" sidebar and work as expected if selected. But if I comment out the contents of launch.json or delete the file, the "Python: Global Debug Tests" option will still be there but will not apply the env variable meaning the debugger will not work correctly. This is definitely a bug with the "launch" option vs. launch.json behavior.
You can recreate this with any tests.

This is what I use under settings.json to workaround this globally for the "Testing" feature (not sure about "Run and Debug"):
"python.testing.pytestArgs": [
        // Coverage is not supported by vscode:
        // https://github.com/Microsoft/vscode-python/issues/693
        // Note that this will make pytest fail if pytest-cov is not installed,
        // if that's the case, then this option needs to be be removed (overrides
        // can be set at a workspace level, it's up to you to decide what's the
        // best approach). You might also prefer to only set this option
        // per-workspace (wherever coverage is used).
        "--no-cov"
    ], // END

As mentioned in the comment in the setting, I make sure I have pytest-cov installed in my environment, even if that project is not making use of it. If I don't want or can't install pytest-cov, I can set overrides per workspace.
I don't use "Run and Debug" a lot (but I do use a lot of "Testing") and don't remember having an issue with this there so I don't know if I already had the workaround in place or I just didn't hit it.
PS.: In my settings I also make use of -s, but that's unrelated to this issue.

Closing as we do not plan to implement this work.


Merge develop with main

Added nginx docker volume
Bugfixes for upstream services server port
Small adjustment to deployment script to destroy all docker related images, containers etc.


plugin: add germanium and puffin (asdf plugins)

Have you checked if these can be installed with ubi instead of asdf? If it’s compatible, change this to use ubi.
If ubi is not compatible, and this is something that can be fixed in ubi, then it should be patched there first.

damn you got me there, I didn't know about ubi, I would have to research about it first


balsa: init at 2.5.5

Motivation for this change
Add balsa, an e-mail client highly configurable and incorporating all the features you would expect in a robust mail client.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: balsa
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowBroken = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowBroken = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: balsa
Partial log (click to expand)
Wrapping program /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5/bin/balsa-ab
Wrapping program /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5/bin/balsa
shrinking RPATHs of ELF executables and libraries in /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5
shrinking /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5/bin/.balsa-ab-wrapped
shrinking /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5/bin/.balsa-wrapped
gzipping man pages under /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5/share/man/
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5/bin
patching script interpreter paths in /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5
checking for references to /tmp/nix-build-balsa-2.5.5.drv-0 in /nix/store/q03g20b98acmj45hiry8b45h1ad5rcrk-balsa-2.5.5...

Failure on aarch64-linux (full log)
Attempted: balsa
Partial log (click to expand)
   Compiling rustc_passes v0.0.0 (file:///build/rustc-1.24.0-src/src/librustc_passes)
building of '/nix/store/whsyh46wr0zfkw420xcc8ffgahszsd80-rustc-1.24.0.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/nfjkyviyyy9ly6hq1pj5wzy6qxmd491n-cargo-0.24.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/bbqaq71xj30lggbbbf6calm3g7g56c02-librsvg-2.42.2.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/rpv26h81h6ypjjwg1czrcinj80kbdilx-gst-plugins-bad-1.14.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/0hjhsl89xb2yh8m4w00jk2jg1kbqhjzs-hook.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/dzg18pavbjmd8fw20csmllyamfp25zgn-geoclue-2.4.7.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/rcl6jipziqgbj1qx6sd88p8qlhljpjx3-webkitgtk-2.20.0.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/lmg1k8bkrbx6f7vs1i18bsp2300jj6kc-balsa-2.5.5.drv': 2 dependencies couldn't be built
error: build of '/nix/store/lmg1k8bkrbx6f7vs1i18bsp2300jj6kc-balsa-2.5.5.drv' failed


Manifold connection missing in the getting started docs

Reason for change
I noticed the getting started docs weren't working as expected while writing the blog post. This PR makes sure the marketplace loads correctly.
I'm not sure if this warrants a Changelog update?
Testing
Follow the document's getting started instructions in a sandbox environment.
Checklist

[ ] CHANGELOG: The Unreleased section of CHANGELOG was updated
[x] Prop changes: docs were updated
[ ] Prop changes: E2E tests were updated, testing from the highest level possible
[ ] Platform testing: If this change should be tested against a platform, has it been?

The marketplace should load without the connection; what wasn’t working as expected?

It seems like it was fixed as some point, I'll close this PR. There was an evening marketplace wouldn't load with out a connection when I was working on examples.

The marketplace should load without the connection; what wasn’t working as expected?

I don't think it does @dangodev, as of https://github.com/manifoldco/ui/pull/515


MICROBIT_BLE_UTILITY_SERVICE_PAIRING defaults for MakeCode & MicroPython

For MakeCode:

In a normal project with Radio:

Without the datalogging extension the utility service shouldn't be compiled at all
If datalogging extension is used, it should add the utility service to pairing mode only (not application mode, as BLE is not enabled)

When the BLE extension is added, without user needing to add blocks:

The utility service should always be added to the pairing mode
The utility service should always be added to the application mode

For MicroPython:

The utility service should always be added to the pairing mode

If the data logging storage is empty the utility service should be able to indicate that.

Does this means the Data Logger extension needs to be modified to set both MICROBIT_BLE_UTILITY_SERVICE_PAIRING and MICROBIT_BLE_UTILITY_SERVICE to 1, maybe here:
https://github.com/microsoft/pxt-microbit/blob/master/libs/datalogger/pxt.json#L11
    "microbit": {
        "config": {
            "MICROBIT_BLE_UTILITY_SERVICE": "1",
            "MICROBIT_BLE_UTILITY_SERVICE_PAIRING": "1"
        }
    },

Or should those definitions be added to the flashlog extension?
https://github.com/microsoft/pxt-microbit/blob/master/libs/flashlog/pxt.json#L18
That should work because...
MICROBIT_BLE_UTILITY_SERVICE_PAIRING is checked when
CONFIG_ENABLED(DEVICE_BLE) && CONFIG_ENABLED(MICROBIT_BLE_PAIRING_MODE)
which is usually the case in MakeCode.
MICROBIT_BLE_UTILITY_SERVICE is checked when
CONFIG_ENABLED(DEVICE_BLE) && CONFIG_ENABLED(MICROBIT_BLE_ENABLED)
which is when the Bluetooth extension is included.
If the service should always be present when the Bluetooth extension is added, even if Data Logger is not, then perhaps the Bluetooth extension also needs to be modified to set both MICROBIT_BLE_UTILITY_SERVICE_PAIRING and MICROBIT_BLE_UTILITY_SERVICE to 1.
At the moment the CODAL service code is compiled when DEVICE_BLE is 1, like all other services. Do we need to wrap it in additional conditions, so it's only compiled when it might be used?
https://github.com/lancaster-university/codal-microbit-v2/blob/master/source/bluetooth/MicroBitUtilityService.cpp#L31
https://github.com/lancaster-university/codal-microbit-v2/blob/master/inc/bluetooth/MicroBitUtilityService.h#L30

Right now the MICROBIT_BLE_UTILITY_SERVICE and MICROBIT_BLE_UTILITY_SERVICE_PAIRING flags are disabled in CODAL by default.
For the next pxt release with the current CODAL we are enabling the MICROBIT_BLE_UTILITY_SERVICE and MICROBIT_BLE_UTILITY_SERVICE_PAIRING flags to the build, but only when the datalog extension is added. This is achieved via PR, pushed now to be able to have it out before a specific deadline:

https://github.com/microsoft/pxt-microbit/pull/5346

This is way was done to avoid using the extra resources when datalogging is not used in MakeCode, which can be controlled via the presence of the datalog extension.
However we don't have a way to to determine if a CODAL user programme uses the feature until compile time, at which point it might be late to enable the flags for the rest of CODAL, like the pairing/bluetooth mode.
So the default for CODAL should be to have the features turned on.
For MicroPython builds we can control the flag for the pairing/bluetooth mode in the codal.json file, so either default is fine.

Conclusion:

We need to set the CODAL default to ON, so that CODAL and MicroPython programmes can have it enabled without additional user action (as there issn't a way to automatically enable it if this feature is used by user code)

Change of plans 😓
Basically MakeCode guards agains the pxt core and an extension having different values for the config flags. Rather than request this feature to MakeCode let's change the approach to be able to complete this quickly.
So, we'll need to do the following:

Leave the default off in CODAL

✅ No action

Ensure MicroPython build has this flag enabled

✅ PR https://github.com/microbit-foundation/micropython-microbit-v2/pull/177

Ensure MakeCode has this flag enabled only in the datalog extension

✅ No action

Update the example coda.ble.json file to ensure these options are visible

✅ Done in https://github.com/lancaster-university/microbit-v2-samples/commit/5198bb3649da09bfd6ad22742549bbe05b389224


Remove dependencies of Firebase pod

An implementation of https://github.com/firebase/firebase-ios-sdk/issues/9074 task.

@a-25 Thanks for working on this! I know you signed the CLA for the other repo, but please also sign it for this one.
Also, please run pod deintegrate to avoid bloating the checked in xcodeproj files.
I'll take a more thorough look once CI is green


hasRole not checked

Article https://www.baeldung.com/spring-boot-keycloak
Module https://github.com/eugenp/tutorials/tree/master/spring-boot-modules/spring-boot-keycloak
I attempted to morph this into Kotlin and Spring Boot 3 using org.springframework.boot:spring-boot-gradle-plugin:3.0.6
The oauth2login works like a charm and can even set up a resource server validating JWT tokens, which all works fine, however the security filter does not seem to work as described in the article. Adding the second security filter does not provide additional JWT validation, it seems to be simply ignored once the oauth2login as done its authentication step.
Any user authenticated by the oauth2login gets access top the /customer* endpoint event though they does not have role "USER".
`
@Configuration
@EnableWebSecurity
class WebSecurityConfiguration(private val keycloakLogoutHandler: KeycloakLogoutHandler?) {
@Order(1)
@Bean
fun filterChain(http: HttpSecurity): SecurityFilterChain {
    http.authorizeHttpRequests()
        .requestMatchers("/", "/css/landing/**", "/favicon.png").permitAll()
        .anyRequest().authenticated()

    http.oauth2Login()
        .and()
        .logout()
        .addLogoutHandler(keycloakLogoutHandler)
        .logoutSuccessUrl("/");

    return http.build()
}

@Order(2)
@Bean
fun resourceServerFilterChain(http: HttpSecurity): SecurityFilterChain {
    http.authorizeHttpRequests()
        .requestMatchers("/customer*").hasRole("USER")
        .anyRequest().authenticated()

        .and()
        .oauth2ResourceServer { obj: OAuth2ResourceServerConfigurer<HttpSecurity> -> obj.jwt() }
    return http.build()
}

@Bean
fun authenticationManager(http: HttpSecurity): AuthenticationManager {
    return http.getSharedObject(AuthenticationManagerBuilder::class.java)
        .build()
}

@Bean
fun sessionAuthenticationStrategy(): SessionAuthenticationStrategy? {
    return RegisterSessionAuthenticationStrategy(SessionRegistryImpl())
}

}
`
I would have expected that the second resource server filter would JWT validation as described in the article but it does not seem to be triggered.

Hey, @Hans-MartinHannibalLauridsen.
Unfortunately, we can only help with questions that are specifically and directly related to the article - not with your own, custom modifications.
StackOverflow is a great place to ask more general questions.
That's primarily because we get a large number of questions and - while we do try to go through as much as everything and help wherever we can, we can't really get back to all of them.
Hope that makes sense.


Installation doesn't work (no shortcuts in Steam): SyntaxError: unterminated string literal

I was trying to install Youtube launcher, followed instructions running from the desktop shortcut (steamos is prerelease 3.5.13 at the moment).
The shortcut is not being added.
Looking at the logs I this error:
  File "<string>", line 16
    with open('/home/deck/.steam/root/userdata/111335764/config
              ^
SyntaxError: unterminated string literal (detected at line 16)

And what I think is a relevant part fo the log:
+ export PYTHONPATH=/home/deck/Downloads/NonSteamLaunchersInstallation/lib/python3.11/site-packages/:
+ PYTHONPATH=/home/deck/Downloads/NonSteamLaunchersInstallation/lib/python3.11/site-packages/:
+ steam_dir=/home/deck/.local/share/Steam
+ [[ -f /home/deck/.local/share/Steam/config/config.vdf ]]
++ grep -oP 'SteamID"\s+"\K[0-9]+' /home/deck/.local/share/Steam/config/config.vdf
++ head -n 1
+ steamid=76561198071601492
+ echo 'steamid:<PHONE_NUMBER>1601492'
steamid:<PHONE_NUMBER>1601492
+ steamid3=111335764
+ userdata_folder=
+ most_recent=0
+ for USERDATA_FOLDER in "${logged_in_home}"/.steam/root/userdata/*
+ [[ /home/deck/.steam/root/userdata/111335764 != *\/\0 ]]
+ [[ /home/deck/.steam/root/userdata/111335764 != *\/\a\n\o\n\y\m\o\u\s ]]
++ stat -c %X /home/deck/.steam/root/userdata/111335764
+ access_time=1705150787
++ basename /home/deck/.steam/root/userdata/111335764
+ userdata_steamid3=111335764
+ [[ 111335764 -eq 111335764 ]]
+ [[<PHONE_NUMBER> -gt 0 ]]
+ userdata_folder=/home/deck/.steam/root/userdata/111335764
+ most_recent=1705150787
+ [[ -n /home/deck/.steam/root/userdata/111335764 ]]
+ echo 'Current user'\''s userdata folder found at: /home/deck/.steam/root/userdata/111335764'
Current user's userdata folder found at: /home/deck/.steam/root/userdata/111335764
++ find /home/deck/.steam/root/userdata/111335764 -type f -name shortcuts.vdf
+ shortcuts_vdf_path=
+ [[ -n '' ]]
++ find /home/deck/.steam/root/userdata/111335764 -type d -name config
+ config_dir='/home/deck/.steam/root/userdata/111335764/config
/home/deck/.steam/root/userdata/111335764/241100/ac/GameInstall/111335764/config'
+ [[ -n /home/deck/.steam/root/userdata/111335764/config
/home/deck/.steam/root/userdata/111335764/241100/ac/GameInstall/111335764/config ]]
+ touch '/home/deck/.steam/root/userdata/111335764/config
/home/deck/.steam/root/userdata/111335764/241100/ac/GameInstall/111335764/config/shortcuts.vdf'
touch: cannot touch '/home/deck/.steam/root/userdata/111335764/config'$'\n''/home/deck/.steam/root/userdata/111335764/241100/ac/GameInstall/111335764/config/shortcuts.vdf': No such file or directory
+ shortcuts_vdf_path='/home/deck/.steam/root/userdata/111335764/config
/home/deck/.steam/root/userdata/111335764/241100/ac/GameInstall/111335764/config/shortcuts.vdf'

Note how config_dir= prints two directories with a newline.
I am not sure which one is the right one but my gut feeling is it's the top one (but if it's that one - why even find it?).
After I've changed the script to only return single entry - installation succeeded:
--- NonSteamLaunchers_orig.sh     2024-01-13 17:53:05.621837167 +0200
+++ NonSteamLaunchers.sh        2024-01-13 17:38:51.229186115 +0200
@@ -2858,7 +2858,7 @@
         cp "$shortcuts_vdf_path" "$shortcuts_vdf_path.bak"
     else
         # Find config directory for current user
-        config_dir=$(find "$userdata_folder" -type d -name config)
+        config_dir=$(find "$userdata_folder" -maxdepth 1 -type d -name config)

         # Check if config_dir is not empty
         if [[ -n "$config_dir" ]]; then

I'm having the same issue, the above fix worked for me. I'm using a new Steam Deck OLED with SteamOS 3.5.7 (build 20231122.1).

Having the same issue too. Kept installing using Fresh Start then install Epic Games but it doesn't show in my Steam Library after its restart.

Just to confirm, same issue and same fix worked for me. Happy to provide more info and test where required.

Just to confirm, same issue and same fix worked for me. Happy to provide more info and test where required.

Can you provide the fix you did?

Hey, it was the same fix suggested by OP. Download source code, modify the sh file as OP suggested and then execute the sh file not the desktop file.

@Jmennius @cleavantsarte @saeedlabs @kschat hey thanks for finding this, I'll be fixing in the next update... pretty cool changes!

@Jmennius @cleavantsarte @saeedlabs @kschat hey thanks for finding this, I'll be fixing in the next update... pretty cool changes!

awesome!
Quick question: after an update, do we have to reinstall NonSteamLauncher to it to patch or does it automatically updates?

@cleavantsarte I don't believe you would have to...but I am fixing the SD card path on the script so you may or may not depending if you have your games and launchers on the SD card
.. but I'm trying my best to keep things smooth as possible


Installing Debian fails; RPC cancelled; failure in lxssmanager combase.dll

Environment
Windows build number: Microsoft Windows [Version 10.0.19041.388]
Your Distribution version: Can't install to check ```lsb_release```, but latest Debian version in store (<IP_ADDRESS>)
Whether the issue is on WSL 2 and/or WSL 1: Had previously set default to 2 prior to install attempt

I just upgraded to version 2004 today, and was able to set the default to 2 successfully. This problem has only arisen since then.  As part of the process, I was directed to install the msi from aka.ms/wsl2kernel.
Steps to reproduce
After installing Debian from the Microsoft Store, I try to launch it for the first time to do the distro install.  I see for a moment
Installing, this may take a few minutes...

Then a moment later:
WslRegisterDistribution failed with error 0x8007071a
Error: 0x8007071a The remote procedure call was cancelled.

Logs
I can't run the distro so can't strace, but I've attached the logs requested (as a zip, since Github apparently won't let me attach
lxcore.zip
the etl files directly).  FYI, here's what shows up in the Event Viewer:
Faulting application name: svchost.exe_LxssManager, version: 10.0.19041.1, time stamp: 0x7f0c4c00
Faulting module name: combase.dll, version: 10.0.19041.329, time stamp: 0x2dc62b62
Exception code: 0xc0000005
Fault offset: 0x0000000000062417
Faulting process id: 0xad4
Faulting application start time: 0x01d65fce65448751
Faulting application path: C:\WINDOWS\system32\svchost.exe
Faulting module path: C:\WINDOWS\System32\combase.dll
Report Id: ca3aa88b-a1a2-4aaa-a4fd-71e38b63d581
Faulting package full name:
Faulting package-relative application ID:

This looks similar to #4474 and #4681, but the faulting module is different here (combase.dll, rather than ntdll.dll), so I'm filing a new issue.  I see this event show up when I try to launch the Debian distro for the first time, and any time I run the wsl command (wsl or wsl -l).
Expected behavior
For Debian to install, asking me for a username and password along the way
Actual behavior
I see for a moment
Installing, this may take a few minutes...

Then a moment later:
WslRegisterDistribution failed with error 0x8007071a
Error: 0x8007071a The remote procedure call was cancelled.

Thanks in advance for any help.

Thank-you for the logs; appreciated.

For what it's worth, I tried updating everything again, disabling WSL, doing it over from scratch per the directions here, and still get the exact same results today.

Update: After wiping the machine and re-imaging with 20H2, and following the instructions at https://docs.microsoft.com/en-us/windows/wsl/install-win10, everything works.  I wonder if this was some interaction between the many rounds of upgrades I had done on the prior win10 installation and the wsl install process I tried last July.

For me the problem was Sophos Safeguard 8.10 as suggested here https://github.com/microsoft/WSL/issues/4702#issuecomment-693495945.
It seems to be fixed in Safeguard 8.30 (I just removed the whole thing and it works now).


It is such a pain to set up a page using layouts + bootstrap + less

Tying to debug the generated code in browser is crazy so many useless divs genreated with class names unrelated to what they do, some of them (group class) doing duplicate bootstrap features in places where bootstrap does not expect them.
The process is clumsy:
0) Open the html in your layout clic first to edit the html, click next to edit the source code, replace your html (because as far as you have more then 30 lines, the editor is not adapted, so you create your html code in an html file in VS), click accept. reopen to check that editor has changed nothing, click cancel, then accept. Then your images does not display, no pb: publish your page and open it in front to see if it works. If no crash, start debugger to understand why it is not what you expected. but here you are in a kind of PowerPoint made to fight sadam and it is crazy. Found something, restart to 0.
I would add that I installed alternates and hacked my code directly in layout_xxx.cshtml.
Should I go back to using layout ?: yes because I have some orchard content items to display....

It's not clear what the bug is here. FWIW, I have built a couple of themes using BS and LESS, without any trouble. I overrode the templates for the basic layout elements to get the markup I needed, and that was it. I'm a little lost about why you had to do all that.

I agree it is more several inconveniences than a bug

to many useless level lines generated: headers, groups, content, item, zone, before, after, message, many layout-xxx , some never used because I am in a layout and don't need all the stuff from the .info file.
my images don't display in edit layout because they are in my theme content ? May be my fault ? But they display when page is called in front
css classes with different meanings then in Orchard TMachine and then in pure bootstrap.

Just override the templates. I'll publish a blog post tomorrow with the code for my own overrides. It's BS3.
For images, if you are going to use them in layouts, they should be in media, not the theme.
For those CSS classes, don't use the theme machine, it's not designed for Bootstrap. Use a real BS theme.
Can we close this?

For bs I followed the reco from different meetings and created a dedicated The BootstrapMachine with a less as the following.
In the past I add been using direct duplicated and adapted .cshtml in my theme views. It was easier.
I will look at your blog.
Concerning the layout, I am always puzzled by the fact that it is not totally integrated with the traditional placement.info and orchard native zones. It is more a collision than an integration.
If you need to close do it.
@import "lib/bootstrap/variables.less";
@import "lib/bootstrap/mixins.less";
@import "lib/bootstrap/grid.less";
#layout-wrapper
{
.container-fluid;
}
#layout-main-container
{
.container-fluid;
}
#layout-triple-container
{
.container-fluid;
}
#layout-footer
{
.container-fluid;
}
#layout-triple, #layout-main
{
.make-row;
}
#triple-first, #triple-second, #triple-third
{
.make-md-column(4);
}
#layout-content
{
.make-md-column(12);
}
#aside-12
{
#layout-content
{
.make-md-column(6);
}
}
#aside-1, #aside-2
{
#layout-content
{
.make-md-column(3);
}
}
#footer-quad
{
.make-row;
}
#footer-quad-first, #footer-quad-second, #footer-quad-third, #footer-quad-fourth
{
.make-md-column(3);
}
#footer-sig
{
.make-row;
}

TODO: Document how to customize elements for bootstrap.

OK, here's the post: https://weblogs.asp.net/bleroy/my-element-template-overrides-for-bootstrap-happy-orchard-dynamic-layouts

Personnally I end with this customized layout-url-home.cshtml.
Less levels, beacuse I don't need them, allshould be in layout...
But I have to go back to layout....
@{
/* Global includes for the theme
***************************************************************/
SetMeta(httpEquiv: "X-UA-Compatible", content: "IE=edge,chrome=1");
Style.Include("lib.css");
Style.Include("site.css");
Style.Include("theme.css");
Script.Require("jQuery").AtFoot();
Script.Include("../Scripts/bootstrap.js").AtFoot();

/* Some useful shortcuts or settings
***************************************************************/

Func<dynamic, dynamic> Zone = x => Display(x); // Zone as an alias for Display to help make it obvious when we're displaying zones

/* Inserting some ad hoc shapes
***************************************************************/

//WorkContext.Layout.Header.Add(New.Branding(), "5"); // Site name and link to the home page
WorkContext.Layout.Footer.Add(New.BadgeOfHonor(), "5"); // Powered by Orchard
WorkContext.Layout.Footer.Add(New.User(), "10"); // Login and dashboard links

/* Last bit of code to prep the layout wrapper
***************************************************************/

Model.Id = "layout-wrapper";
var tag = Tag(Model, "div"); // using Tag so the layout div gets the classes, id and other attributes added to the Model

}
@tag.StartElement

        @if (Model.Messages != null) {

                @Zone(Model.Messages)

        }
        @* the model content for the page is in the Content zone @ the default position (nothing, zero, zilch)
            @if (Model.Content != null) {

                @Zone(Model.Content)

        *@

Jingwei scrute en permanencel'actualité de nos inconscientsgrâce à ses agents

Edito

                            Texte Page 1 ici.
                            Texte Page 1 ici.
                            Texte Page 1 ici.
                            Texte Page 1 ici.
                            Texte Page 1 ici.
                            Texte Page 1 ici.
                            Texte Page 1 ici.

News

Première nouvelle
patati patata

Autre nouvelle
patati patata

                Texte Page 5 ici

        }

        @if (Model.Footer != null) {

                @Zone(Model.Footer)

        }

@tag.EndElement


SP4: Scroll with no delta throws exception in WPF

Noted by @szescxz in https://github.com/ScottPlot/ScottPlot/commit/6bb77875007658c71fde98111a1d778a9fd5f6b2#commitcomment-111902269\
@szescxz, do you have a suggestion for what I can do to recreate this issue on my end? Is it as easy as opening open-up an empty plot and scroll-wheel-zooming in and out a lot? Thanks for your input!

Unfortunately I haven't found a snippet that can reproduce this crash yet (otherwise I'd go ahead and create the issue and/or fix my code directly).
Things I know so far:

This is only observed on Windows 7 (.NET Framework 4.8). I cannot reproduce it on my development machine which runs Windows 11.
My project has a very busy UI thread which awaits other threads to update live data, with a relatively short interval (I suspect this is why a simple snippet cannot reproduce the bug), and the PC where this crash is observed has lower hardware specification (4 CPU cores while my development machine is 16, so UI is less responsive). Although the crash wasn't caused by the plot hosting live data (I didn't allow it to zoom to avoid thread issues), but a loaded plot with fixed data.
Based on the points above, the only way to reproduce on my development machine is to run my project in a VMware Windows 7 VM, and let the VM display resolution to resize automatically to fit the host window (default behavior after installing VMware Tools in the guest). I resize the VMware window, then scroll-wheel-zooming the plot immediately and constantly (i.e. during the process of changing display resolution). The crash occurred in the first few seconds after the resolution change is finished (screen returns from black).

At this point this really sounds like an edge case, but I'll try to find a reproducible snippet and put it here if found.

Unfortunately I haven't found a snippet that can reproduce this crash yet (otherwise I'd go ahead and create the issue and/or fix my code directly).
Things I know so far:

This is only observed on Windows 7 (.NET Framework 4.8). I cannot reproduce it on my development machine which runs Windows 11.
My project has a very busy UI thread which awaits other threads to update live data, with a relatively short interval (I suspect this is why a simple snippet cannot reproduce the bug), and the PC where this crash is observed has lower hardware specification (4 CPU cores while my development machine is 16, so UI is less responsive). Although the crash wasn't caused by the plot hosting live data (I didn't allow it to zoom to avoid thread issues), but a loaded plot with fixed data.
Based on the points above, the only way to reproduce on my development machine is to run my project in a VMware Windows 7 VM, and let the VM display resolution to resize automatically to fit the host window (default behavior after installing VMware Tools in the guest). I resize the VMware window, then scroll-wheel-zooming the plot immediately and constantly (i.e. during the process of changing display resolution). The crash occurred in the first few seconds after the resolution change is finished (screen returns from black).

At this point this really sounds like an edge case, but I'll try to find a reproducible snippet and put it here if found.

A rough way to reproduce (not 100% reproducible, and the VMware trick is still needed):
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Loaded="Window_Loaded"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <WpfPlot x:Name="plotControl"/>
        <Label Grid.Row="1" x:Name="label"/>
    </Grid>
</Window>

using System.Windows;
using System.Threading.Tasks;

namespace WpfApp1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // Visualize the crash as a message box
            Dispatcher.UnhandledException += (s, e) =>
            {
                MessageBox.Show(this, e.Exception.ToString());
            };
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            WindowState = WindowState.Maximized;
            Topmost = true;

            // Wait until UI is fully loaded
            Task.Delay(2000).ContinueWith(async delegate
            {
                label.Content = "Make VMware host window smaller, click on the window and scroll on the plot!";
                await Task.Delay(200); // Make sure the label control gets updated before thread sleep

                // Simulates a task which updates the data on the other thread
                await Task.Run(delegate
                {
                    plotControl.Plot.RenderLock();
                    System.Threading.Thread.Sleep(5000); // Updating data (making timeout longer here to expose the bug)
                    plotControl.Plot.RenderUnlock();
                });
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
    }
}

https://github.com/ScottPlot/ScottPlot/assets/49463229/b9fe9692-a923-4041-b0cb-adeef32e518f


[Remix/Vite] Vanilla generated css files doesn't get injected into html after build

Describe the bug
Vanilla css styles  do get injected into html in dev mode, but in production they don't get injected. They do generate in the build/client/assets directory but are not 'used'.
I use bun as package manager
NOTE: To have exactly my setup use my flake.nix with the nix package manager. not a must at all but its nice.
Head tag in devmode
<head>
   ...

  <style>
  /* /app/root.css.ts.vanilla.css */
  body {
    background-color: red;
  }
  <link .... />
  <link .... />
  <link .... />
</head>

Head tag in prod
<head>
   ....

   <!-- No vanilla css files here -->

  <link .... />
  <link .... />
  <link .... />
</head>

Reproduction
https://github.com/vincent-thomas/remix-vanilla-extract-css-repro
System Info
System:
    OS: Linux 6.6 NixOS 24.11 (Vicuna) 24.11 (Vicuna)
    CPU: (16) x64 AMD Ryzen 7 5800X 8-Core Processor
    Memory: 22.59 GB / 31.25 GB
    Container: Yes
    Shell: 5.9 - /run/current-system/sw/bin/zsh
  Binaries:
    Node: 22.8.0 - /nix/store/xsrv93rg8vi05k9ig6v9mcvcyn01n6n2-nodejs-22.8.0/bin/node
    npm: 10.8.2 - /nix/store/xsrv93rg8vi05k9ig6v9mcvcyn01n6n2-nodejs-22.8.0/bin/npm
    bun: 1.1.29 - /nix/store/mqzlk40bnhx54by2m4lyyc02syippzad-bun-1.1.29/bin/bun

Used Package Manager
npm
Logs
No response
Validations

[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible example of the bug.

Thanks for raising an issue. I've reproduced it locally and can confirm that the styles are missing. Specifically, it seem like remix is stripping side-effect imports. If export a style and use it within the app, all styles are present in a stylesheet.
I tested this out in a plain vite app and it is not an issue there, so it's specific to remix.

Okay i'll open an issue on remix instead

@vincent-thomas Sorry if my message sounded dismissive. I'm happy to keep this issue open at least to provide visibility on the VE side, but an issues in Remix would certainly be useful as well.

No problem, i totally understand that issues need to be closed and developer time should be focused on real vanilla extract bugs. Maybe this issue could be referenced under this page (https://vanilla-extract.style/documentation/integrations/remix)?
Btw I really like this library, an issue has been opened remix.

Tracked in remix https://github.com/remix-run/remix/issues/10045


Golang devtools: Iterate on our default ldflags

By default, our ldflags sets some unexported variables in an internal/version package, which means it's not easy to e.g. log it during startup.
We should also reconsider which variables we really want, where we want them places (or how to configure other locations), and if we want to use ldflags at all, instead of -buildvcs=true.

@bendiknesbo can you follow up on this


Correct RayCast.get_collider* docs

I discovered that RayCast.get_collider apparently does consider the length of the ray these days. Maybe this changed with the switch to Bullet?
Also I'm not sure if the description of is_colliding should be changed as well?

Probably best left as an issue on the docs repo
https://github.com/godotengine/godot-docs

@AndreaCatania Can you confirm that the behaviour changed?

The behaviour doesn't changed

I looked a bit more into this and it seems like the method description was simply copy pasted from the RayCast2D documentation, where it is also wrong/incomplete because it was misinterpreted.
In 3D, RayCast.get_collider() will indeed return null all the time if no collider is within range of the vector's length.
In 2D, the behaviour is the same initially, but after the first collision, get_collider() keeps the reference to the last collided object, even if it's no longer in range of the vector. I think that's a bug, but it was documented as if it was normal behaviour, and then copied over to 3D.

RayCasting.zip
The two scenes of this project can be used to test the behaviour I've described above.

I fixed the RayCast2D bug and improved the documentation some more in #21597, so closing. Thanks for the contribution and unexpected bug report :D


Allow dropdowns to be wider to support info density setting

To accommodate the 16px setting, we should allow setting dropdowns to get wider. The one on the bottom of this screenshot is fine (in the organization permissions panel), but the ones above it are not.

@alya can i work?


Providing assistant id to update assistant

I added assistant id to the ModifyAssistant call. this change is based on this PR: https://github.com/skyscrapr/openai-sdk-go/pull/1
Thanks!

merged your PR for the sdk and this one to resolve. Thanks!

functionality now released in v1.3.1


Example PR to show how /test-gmt-master works

Description of proposed changes

Fixes #
Reminders

[ ] Run make format and make check to make sure the code follows the style guide.
[ ] Add tests for new features or tests that would have caught the bug that you're fixing.
[ ] Add new public functions/methods/classes to doc/api/index.rst.
[ ] Write detailed docstrings for all functions/methods.
[ ] If adding new functionality, add an example to docstrings or tutorials.

Notes

You can write /format in the first line of a comment to lint the code automatically

Mark the PR ready for review triggers this CI runs: https://github.com/seisman/pygmt/actions/runs/526861043

/format

/test-gmt-master

/test-gmt-master


2016 release

Are you planning to create a release with support for the latest WPI libraries? I see the commit, are you waiting before you create a release?

GradleRIO 2016 Releases are currently uploaded. GradleRIO 4.0.2 is the current version, and can be updated by running gradlew tasks --refresh-dependencies

I see. You may want to include a "Release" on the github "Releases" system to make this clear.

The releases don't change, but instead is a template for getting started with a gradle project. I may add a repo tag or something, though


⚠ ClamAV has degraded performance

In 04a5441, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 196 ms

Resolved: ClamAV performance has improved in 58fd2f2 after 7 minutes.


Extra settings are not saved

Hello,
Thanks for this great application.
Unfortunatly, extra settings are not saved accross sessions.
If I activate "return focus to window" it works during the current session, but won't be activated if I quit/relaunch the program.
Could you please help me ?
Thanks

My mistake, I was running the program from a folder were it could not write the .ini file.

Closing the issue

closing


Add list for About this app screen

Issue

close #260

Overview (Required)

Add list for About this app screen

Screenshot

👀


RDP-Gateway using websocket transport

Is your feature request related to a problem? Please describe.
Currently, as I see, the FreeRDP and all dependent projects (reminna, xfreerdp) supports RDP-Gateway with HTTP Polling (RDG_IN_DATA, RDG_OUT_DATA), a more modern approach for Gateway transport is using Websocket which both IN and OUT are multiplexed on the same connection.
Describe the solution you'd like
support the client to initiate RDP-Gateway connection with WebSocket.
that way we can use this awesome tool for connecting our RDP-gateway.

AFAICT this kind of transport is not supported by MS servers, or do you have a link to some specs ?

sure,
from [MS-TSGU].pdf
<IP_ADDRESS>.1 Connection Setup and Authentication Phase
The connection setup and authentication phase only involves the exchange of HTTP header information and consists of three operations:

Create OUT channel: An HTTP1.1 connectionisestablished**.If the RDG server and client both support the WebSocket protocol ([RFC6455]), then this connection is used for duplex communication between the RDG client and server;** otherwise, this connection is used only for outbound communication from the RDG server.<5> WebSocket support is negotiated using the Opening Handshake as specified in [RFC6455] section 1.3.

CreateINchannel: A second HTTP 1.1 connection is established for inbound communication to the RDG server if the RDG server and client don't support the WebSocket protocol. In this case, the OUT channel is used only for outbound communication.

@liorlevtov I'd be interested by a capture of this traffic.

tcp.stream eq 7
ms-client-to-rdp-gw-2.pcapng.zip

@liorlevtov no promise, but I may have a look at implementing it.

@liorlevtov no promise, but I may have a look at implementing it.

anyhow much appreciated!

This would definitely be super useful!

If some of you guys want to finance that, I would implement it with pleasure ;)

I have created a implementation of the gateway protocol here: https://github.com/bolkedebruin/rdpgw . It supports both websockets and the legacy protocol.
The websockets protocol is pretty much the same as the HTTP protocol, except that it is obviously bi-directional over one channel.

I have implemented this feature, but since I have only limited servers to try out if all works well it would be nice if someone wants to try it.
its here: https://github.com/akarl10/FreeRDP/tree/websocket
It is based on #6731, so i intend to open a push request after that gets merged. In the mean time it would certainly help if my websocket implementation gets tested by someone.

I have implemented this feature, but since I have only limited servers to try out if all works well it would be nice if someone wants to try it.
its here: https://github.com/akarl10/FreeRDP/tree/websocket
It is based on #6731, so i intend to open a push request after that gets merged. In the mean time it would certainly help if my websocket implementation gets tested by someone.

I can have a look

I can have a look

#6752

#6752

I can have a look

have you already tested if this websocket implementation works with your setup(s)?

@akarl10 sorry, was on vacation, still cleaning up my backlog


[CLI] fix imports

fixes #1469

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.