SCSS variable autocomplete gets two $$ instead of one

In a SCSS file, if I autocomplete a variable name, then change the variable, autocomplete work correctly.

In a Vue file, if I autocomplete a variable name, then change the variable, the autocomplete will add the $ prefix even if it's already present leading to a double $$ before the variable name.

This seems to be a conflict betweent SCSS IntelliSense (vscode-scss) and Volar.
Let me know if I should open this in vscode-scss repo instead.

Please check if this issue has been resolved in version 2.x. If not, feel free to create a new one.


[Refactor] Add error messages in cross-cluster replication

Why I'm doing:
Some detail error messages are only in be.
What I'm doing:
Add error messages in cross-cluster replication.
Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[ ] Enhancement
[x] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.4
[x] 3.3
[x] 3.2
[ ] 3.1
[ ] 3.0

@Mergify backport branch-3.4 branch-3.3 branch-3.2


Changing and Testing howdy certainty

In the installation, it says:
Starting certainty auto config...

After detection, Howdy knows how certain it is that the match is correct.
How certain Howdy needs to be before authenticating you can be customized.

F: Fast.
Allows more fuzzy matches, but speeds up the scanning process greatly.

B: Balanced.
Still relatively quick detection, but might not log you in when further away.

S: Secure.
The safest option, but will take much longer to authenticate you.

You can always change this setting in the config.
What profile would you like to use? [f/b/s]: b

However, I don't find exactly that option on the config.
Maybe it means certainty = 2.8. However, as a user, I don't know what are the fast/balanced/secure options 😅

On a related tangent, does sudo howdy test "show somehow" if it done a successful auth?
I don't see the window changing "significantly", apart from a red circle when my face is detected

I guess what I'm asking is https://github.com/boltgolt/howdy/pull/504.
"Would've been nice" to have landed on a release, but I guess that won't happen anytime soon :confused:


使用 AntDesign Blazor 作为后台UI怎么样？

好主意，后面另外一个系统采用此框架与antdesign blazor结合开发，毕竟当前项目只是开发框架并不是系统

很好。大家都比较期待一个社区贡献的后台Web模板 😊

I am planning to combine NetPro and TdesignStarter

@Dishone Nice, how about blazor?

@Dishone Nice, how about blazor?

Blazor is more friendly to C# developers. We have Vue development and C# development in our team, so this is not the preferred technology.

So we still need someone to help with the Blazor UI.


ARROW-13940: [R] Turn on multithreading with Arrow engine queries

@ursabot please benchmark lang=R


No support for slim?

I have a file called something like:
app/views/things/partials/_view_thing_stuff.html.slim
It was returned as "unused", though doing a code search, I found instances where it was being rendered with this syntax:
<%= render partial: 'things/partials/view_thing_stuff' %>
I did notice a typo on this line of discover-unused-partials.rb:
EXT = %w(.html.erb .text.erb .erb .html.haml .text.haml .haml .rhtml .html.slim slim)
There's no period before "slim". I'm not 100% sure this is the cause. This is the only place in the gem that HAML is explicitly mentioned though, so if it works for one, it should probably work for the other.
If this is the root cause, that would mean that it's not matching on .html.slim, it's only matching on .slim even though the file ends in .html.slim, and the same thing probably happens with .haml without anyone noticing.

This issue is nearly a year old, but I found myself in the same situation. Are there any updates on this?

There was a PR for that some time ago but looks like it didn't solve the problem entirely. Please provide a PR for it. :)


Add license headers (fix #276)

This adds license headers to all source and header files (*.cpp, *.h).
I've acknowledged the three main contributors in the copyright statements where appropriate: @ThomasTimm, @Zagitta and @potiuk for the original version of the driver, the refactor and the low bandwidth traj follower respectively.
The .yaml, .launch and other text based files do not get license headers as I don't believe those can actually be put under software licenses.
e68a4d5 is an additional commit that updates the manifest with two additional license tags: those licenses are the ones of the files in the queue sub dir (already acknowledged there, but the manifest should state them clearly as well).

@ThomasTimm @Zagitta @potiuk: not required, but if you feel like commenting, let us know whether this is OK with you.

Completely fine with me, I appreciate the mention!

Thanks @miguelprada for the review :+1:


Add converter from swagger_2 to openapi_3

Refs #112
First pass for comments. Conversion from swagger_2 to openapi_3 format. Automatic conversions of other formats through swagger_2 has not been implemented (i,e. it is currently a manual two-stage process).
Doesn't support the recently added --order option.

Sorry, just saw the "first pass for comments" line. Hopefully the merge/revert didn't screw up the commit history too much - not sure if there's a way to re-open this PR

Erased the merge/revert from commit history, so you should be able to re-open the PR without a rebase.

Well, it of course it's ok to merge if there are no comments :smile: but seriously, please let me know if there are any problems with the approach or implementation...

Looks good to me :) re-merged in #129 and published as 2.5.0


Fix/grouped bar labels while pairing

:tada: This PR is included in version 1.3.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Roll engine 859cd982a170..424940f1711e (1 commits)

https://github.com/flutter/engine/compare/859cd982a170...424940f1711e
git log 859cd982a170ca22b14133a030b843b88756b8f1..424940f1711e2864cadbf2a900d2bfd9dc2209a6 --no-merges --oneline
424940f17 Add support for the Fontconfig-based Skia font manager (flutter/engine#8977)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (jsimmons@google.com), and stop
the roller if necessary.

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/4779268261806080

Commit queue failed; closing this roll.


Update CODEOWNERS

Adding Manjie Fu (@fumanjie) and Heidi Bryan (@hls0231) from the IBM team as code owners.
What is this and why are we doing it?
Need to add members of the IBM team to the list of code owners
Manjie Fu (@fumanjie) and Heidi Bryan (@hls0231)

Link to the Jira ticket for this change: https://jiraent.cms.gov/browse/DBDAART-####
not applicable

What are the security implications from this change?
none
How did I test this?
not applicable
Should there be new or updated documentation for this change? (Be specific.)
no
PR Checklist

[ ] The JIRA ticket number and a short description is in the subject line
[ ] My code follows any applicable style guides
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

There is an error in this CODEOWNERS change

Update: the "error" in this change is related to the users not belonging to this org/repo. The process is underway to get them added. Will await the outcome of that process for now.

@a-pfeiffer , Manjie & Heidi now show up as reviewers on the repo, but the edit to the CODEOWNERS file still shows an error. Can you help to figure this out? Thanks,

@alihashmi-wh I am not fully sure what is happening but I think the credentialing/access process may not be fully done, I'm a watcher on the ticket and just this morning they asked Heidi to proceed with Step 2.   MACFC-674.

@a-pfeiffer, @XiaoBarry It appears that several administrative steps were required but are now completed. The pending change to the CODEOWNERS no longer indicates any errors. I believe this PR is now ready for review. Please let me know if you feel there is any else needed. Thanks,


BUG - No placeholder value available for timezone field in system console

Summary
No placeholder value available for timezone field in system console.
Steps To Reproduce

Install Standup Raven
Navigate to Standup Raven configuration section in system console.
Notice the value displayed for Time Zone field.

Expected behavior
Time zone field should indicate that no value is currently saved if it is so.
Observed Behavior
Time zone field shows the first time zone as the selected value even when no value is actually saved.
This may cause confusion for a system admin whether that value being displayed is selected or is just a placeholder. Having a dedicated placeholder will solve this issue.

Can I take up this task?

@SezalAgrawal sure, absolutely!

Let me know if you need any assistance.

@harshilsharma I am new to this plugin so I am not sure how do I run the plugin to see this bug. I followed the steps as stated in https://github.com/standup-raven/standup-raven/blob/master/docs/getting_started.md.

@SezalAgrawal so, were you able to get the plugin running? Do you have Mattermost server running locally as well?

@harshilsharma, I did the following steps:

Forked and cloned mattermost-server, set it up, run make run-server. I am getting {"AndroidLatestVersion":"","AndroidMinVersion":"","DesktopLatestVersion":"","DesktopMinVersion":"","IosLatestVersion":"","IosMinVersion":"","status":"OK"} when run curl command.
Forked and cloned standup-raven, ran make dist
Extracted mattermost-plugin-standup-raven-vx.y.z-darwin-amd64.tar.gz and placed in
mattermost/plugins/standup-raven
Restarted server
Browsed http://localhost:8065/plugins/standup-raven. It tells me plugin is disabled. I can't find config.json file where I can enable the plugin

Can you tell me which step I am missing?
I followed docs as stated in https://developers.mattermost.com/contribute/server/developer-setup/
Do I need to setup mattermost-webapp to access the plugin?

@SezalAgrawal you don't need to extract the plugin tar.gz. There's a detailed guide on this over at Mattermost. I'll post quick steps here for reference.

Navigate to System Console > Plugins (BETA) > Plugin management.
If the Choose File button is disabled, make sure PluginSettings > EnableUploads is set to true in Mattermost config.json.
Click on Choose File and select one of the tar.gz generated by make dist corresponding to your platform.
Once uploaded, add configurations and enable the plugin.

@harshilsharma, I setup the mattermost-ewebapp, created system-admin account, but Choose file button is disabled. Where can I find the config.json file?

@harshilsharma63 I was able to setup standup-raven plugin and ran it successfully. Will work on the bug now.

@SezalAgrawal that's awesome!

@harshilsharma63 I tried this approach: Added an option {"display_name": "Select a timezone", "value": "defaultTimezone"}, in timezones.json and add default="defaultTimezone" in plugin.json. The only thing is it would display "Select a timezone" in the options also. Is it okay?

@SezalAgrawal I'm not sure how much of the plugin features have you explored, but let me share some surrounding functionalities. The timezone value in system console is only a default value. A user can configure standup time on per-channel basis when they configure the standup for a channel. When they configure a channel standup, the value from system console is used as the default selected value in config modal. This behavior effectively makes the system console setting optional.
Based on this behavior, I'd think a better display_name would be "None" or something equivalent.
As for the value attribute, I think an empty value value: "" would make more sense as it can be easily detected and handled in code if required.
And yes, that extra option is fine. Actually, it's cool because it now allows someone to unset the default value as well!

Congrats @SezalAgrawal on your first completed Standup Raven issue!


Thread safety using 2.0

The new version introduces the concept of event loop, and uses a Context class to be able to chain contexts.
There is however a global variable "context_stack" which is accessed when pushing/popping contexts.
I think this will lead to errors if i use for example gevent, or event regular threads, the global variable will get messed up across threads.
Frameworks usually use some kind of threadlocal context stack (such as flask) or explicit stack management to be able to work when using threads.
I think the actual implementation will just break any thread of greenletted application using it?

I haven't had a chance to really troubleshoot it yet, but when I tried to upgrade from promises 1.0 to 2.0 with my graphql-subscriptions implementation, most of the subscription_manager tests fail, specifically when promises are called inside of a greenlet.  Latest tests commit here.  When I debugged with pdb and tried Promise.resolve inside the same greenlet that was failing...I noticed in 1.0.1 they were being fulfulled almost immediately, but in 2.02, they stayed in a "pending" status.

This is now fixed in master.


Swift 5

Please Upgrade to Swift 5~

I may have some time to look at this, this weekend

#52

thinks~


Release confluent-kafka <IP_ADDRESS>-3.3.0e (automated commit)

Release confluent-kafka <IP_ADDRESS>-3.3.0e (automated commit)
Description:
Source URL: https://infinity-artifacts.s3.amazonaws.com/autodelete7d/confluent-kafka/20171109-135347-LukNuU22WKLWKmU5/stub-universe-confluent-kafka.json
Changes since revision 20:
0 files added: []
0 files removed: []
3 files changed:
--- 20/marathon.json.mustache
+++ 21/marathon.json.mustache
@@ -22,6 +22,11 @@
   },
   {{/service.service_account_secret}}
   "env": {
+    "PACKAGE_NAME": "confluent-kafka",
+    "PACKAGE_VERSION": "<IP_ADDRESS>-3.3.0e",
+    "PACKAGE_BUILD_TIME_EPOCH_MS": "1510264429432",
+    "PACKAGE_BUILD_TIME_STR": "Thu Nov 09 2017 21:53:49 +0000",
+
     "SERVICE_NAME": "{{service.name}}",
     "SERVICE_PRINCIPAL": "{{service.service_account}}",
     "SERVICE_USER": "{{service.user}}",
--- 20/package.json
+++ 21/package.json
@@ -7,8 +7,8 @@
     "name": "confluent-kafka",
     "packagingVersion": "4.0",
     "preInstallNotes": "Default configuration requires 3 agent nodes each with: 1.0 CPU | 4096 MB MEM | 1 5000 MB Disk",
-    "postInstallNotes": "Apache Kafka by Confluent is being installed.\n\n\tDocumentation: https://www.confluent.io/whitepaper/deploying-confluent-platform-with-mesosphere\n\tCommunity Support: https://groups.google.com/forum/#!forum/confluent-platform\n\n\tIf you installed from the UI, enter `dcos package install confluent-kafka --cli` from the DC/OS CLI to install the Confluent Kafka CLI subcommands.",
-    "postUninstallNotes": "Apache Kafka by Confluent is being uninstalled.\n\nFor DC/OS versions from 1.10, no further action is required. For older DC/OS versions, follow the instructions at https://docs.mesosphere.com/service-docs/confluent-kafka/2.0.1-3.3.0e/uninstall to remove any persistent state if required.",
+    "postInstallNotes": "Apache Kafka by Confluent is being installed.\n\n\tDocumentation: https://www.confluent.io/whitepaper/deploying-confluent-platform-with-mesosphere\n\tCommunity Support: https://groups.google.com/forum/#!forum/confluent-platform",
+    "postUninstallNotes": "Apache Kafka by Confluent is being uninstalled.\n\nFor DC/OS versions from 1.10 no further action is required. For older DC/OS versions follow the instructions at https://www.confluent.io/whitepaper/deploying-confluent-platform-with-mesosphereuninstall to remove any persistent state if required.",
     "licenses": [
         {
             "name": "Apache License v2",
@@ -22,11 +22,11 @@
         "kafka",
         "confluent"
     ],
-    "version": "2.0.1-3.3.0e",
+    "version": "<IP_ADDRESS>-3.3.0e",
     "upgradesFrom": [
-        "2.0.0-3.3.0e"
+        "2.0.1-3.3.0e"
     ],
     "downgradesTo": [
-        "2.0.0-3.3.0e"
+        "2.0.1-3.3.0e"
     ]
 }
--- 20/resource.json
+++ 21/resource.json
@@ -6,7 +6,7 @@
       "libmesos-bundle-tar-gz": "https://downloads.mesosphere.io/libmesos-bundle/libmesos-bundle-1.10-1.4-63e0814.tar.gz",
       "bootstrap-zip": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.30.1/bootstrap.zip",
       "kafka-tgz": "https://packages.confluent.io/archive/3.3/confluent-3.3.0-2.11.tar.gz",
-      "kafka-scheduler-zip": "https://downloads.mesosphere.com/confluent-kafka/assets/2.0.1-3.3.0e/confluent-kafka-scheduler.zip",
+      "kafka-scheduler-zip": "https://downloads.mesosphere.com/confluent-kafka/assets/<IP_ADDRESS>-3.3.0e/confluent-kafka-scheduler.zip",
       "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.30.1/executor.zip",
       "kafka-statsd-jar": "http://downloads.mesosphere.com/kafka/assets/kafka-statsd-metrics2-0.5.3.jar",
       "statsd-client-jar": "http://downloads.mesosphere.com/kafka/assets/java-dogstatsd-client-2.3.jar"
@@ -24,11 +24,11 @@
           "contentHash": [
             {
               "algo": "sha256",
-              "value": "aab09e9b62e0edcbdc3f5f7a05c0a35d3ad00d7fcee986a322c0517b9d006ed9"
+              "value": "0602361efd4cbdf001cc2285bb1a8a1555c94a96017e2d672593425e201094b0"
             }
           ],
           "kind": "executable",
-          "url": "https://downloads.mesosphere.com/confluent-kafka/assets/2.0.1-3.3.0e/dcos-service-cli-darwin"
+          "url": "https://downloads.mesosphere.com/confluent-kafka/assets/<IP_ADDRESS>-3.3.0e/dcos-service-cli-darwin"
         }
       },
       "linux": {
@@ -36,11 +36,11 @@
           "contentHash": [
             {
               "algo": "sha256",
-              "value": "4d6a975fe62266dbfee0a1988ba6341fe1284af5dd943c9ec3c0b878d14c33b2"
+              "value": "6c1364a2f33a56ce1fa92bb0a9eaccc20d4770e3696deff1b467d2d97f55f08a"
             }
           ],
           "kind": "executable",
-          "url": "https://downloads.mesosphere.com/confluent-kafka/assets/2.0.1-3.3.0e/dcos-service-cli-linux"
+          "url": "https://downloads.mesosphere.com/confluent-kafka/assets/<IP_ADDRESS>-3.3.0e/dcos-service-cli-linux"
         }
       },
       "windows": {
@@ -48,11 +48,11 @@
           "contentHash": [
             {
               "algo": "sha256",
-              "value": "6bb4daabeed15b099f6f3f924f841ea6fd824262be4f1e3f205a92ca8def7319"
+              "value": "d7843561506af7c7404a06999c1d66918797066ca0853b42d1d5ce544a05409e"
             }
           ],
           "kind": "executable",
-          "url": "https://downloads.mesosphere.com/confluent-kafka/assets/2.0.1-3.3.0e/dcos-service-cli.exe"
+          "url": "https://downloads.mesosphere.com/confluent-kafka/assets/<IP_ADDRESS>-3.3.0e/dcos-service-cli.exe"
         }
       }
     }

Note: I hand edited the upgrades and downgrades to but that doesn't show up here.

LGTM


CI for Node

Game › Game › Initializes with two players
expect(received).toBe(expected) // Object.is equality

Expected: "Nate"
Received: "Bananas"

  23 |     it('Initializes with two players', async () => {
  24 |       expect(game.p1).toBe('Salem')
> 25 |       expect(game.p2).toBe('Nate')
     |                       ^
  26 |     })
  27 |
  28 |     it('Initializes with an empty board', async () => {

  at Object.<anonymous> (__test__/game.test.js:25:23)


feat: enhance custom id generation with type support

Adds support for custom Stripe-style IDs in generateId function and moves it to AuthContext.
The function is relocated from adapters to AuthContext to:

Provide a single, adapter-agnostic interface that works across all adapters (including memory)
Enable the possibility for custom ID generation beyond models (e.g., verification tokens)

merged with #595


rustic is stuck when trying to send 1,8To of datas

Hi !
I used rustic (0.9) with success with small storage ( < 100Go) but now I have some trouble with a big storage of 1,8To. After a while, rustic stuck and cannot send datas.
So I relaunch it with level debug :
[05:09:17] backing up... ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 374.11 GiB/1.77 TiB 28.28 MiB/s (ETA 20h) [DEBUG] (1) rustic_core::archiver::tree_archiver: new file: "/PATH/FILE" [DEBUG] (1) rustic_core::archiver::tree_archiver: new file: "/PATH/FILE" [DEBUG] (1) rustic_core::archiver::tree_archiver: new file: "/PATH/FILE" [05:09:18] backing up... ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 374.13 GiB/1.77 TiB 28.31 MiB/s (ETA 20h)
And nothing more. So I used strace to see what happened
in the main thread I see that and nothing else
strace -p 1493743
strace: Process 1493743 attached futex(0x584d715edb40, FUTEX_WAIT_BITSET_PRIVATE,<PHONE_NUMBER>, NULL, FUTEX_BITSET_MATCH_ANY
and in the second thread I see this output in an infinity loop
strace -p 1493776
sched_yield() = 0

Thanks @fredix for opening this issue. This seems to be a bug, but honestly, I currently have no idea how to better track this or what could be root causes...
Maybe the other maintainers have ideas how to get better information on this?


tag preview crashes dwm

Everything works fine on single monitor, but once I enable a second monitor, then switch tags on the secondary monitor, the status bar disappears and all my keybindings stop working. I have tosudo pkill X to get out. This happens even on a fresh clone of the repo without any changes done to the config besides enabling tag preview.

bakkeby/dwm-flexipatch@9728c3a

does it fix your issue?

Yes

add a PR for it if you can :)


OpenCV library in general for usage.

Get OpenCV integrated into CC so we can use it.
Basically figure out a linking process like we did for Tesseract.

https://github.com/PokemonAutomation/Arduino-Source/commit/cf9c92b6c4d72649c7023a04c680acc1fa0a5198
https://github.com/PokemonAutomation/Arduino-Source/commit/a02a65573379a14ac1a58ae01d0bb3c06c19e379
https://github.com/PokemonAutomation/Arduino-Source/commit/4acea4d473ded6211fec2718bdedad6b85b5b6e7
Too early to tell if it's fully working yet.


Discovery: Database metrics for KV store implementations

Currently metrics are collected base on SQL statistics for the Postgres DB implementation. Some of these metrics are not relevant / impossible to obtain on different driver implementation.
As such, we need to define per driver which statistics we want to collect from the database and create an appropriate interface to provider these statistics.
For now, discussed with @ortz and agreed upon the following:

For the meantime, Postrgres KV implementation will continue providing the current statistics as provided by the DB implementation
DynamoDB - disable statistics

We should define the requirements for the stats under this issue and modify the current behavior for the drivers as necessary

After discussion - decided to remove database statistics entirely from lakeFS

#3893


Generating documentation while using webpack 4 and ts-loader.

Search terms
webpack, ts-loader, yarn, workspace
Expected Behavior
I expected that I could document a package in a Yarn workspace that had been bundled using webpack. The command would look something like: typedoc --packages ./packages/
Actual Behavior
The issue is that the detection logic doesn't pick up the original source file of the package.
Entry point "/<snip>/build/webpack:/webpack/universalModuleDefinition" does not appear to be built by the tsconfig found at "/<snip>/tsconfig.json"
Steps to reproduce the bug
Run yarn webpack --mode production.
Output a umd bundle.
With the devtool setting: source-map
Using: typedoc --packages ./packages/<name>.
Types are generated using tsc directly, and output to a lib-types and a d.ts rollup is done using api-extractor.
Webpack:

Entrypoint: "src/index.ts"
Output: "build/index.js"

package.json:

main: "build/index.js"
typings: "build/index.d.ts"

Versions:

webpack: ^4
ts-loader: ^8

Environment

Typedoc version: 0.21.9
TypeScript version: 4.2.4
Node.js version: v12.20.1
OS: OSX

--packages mode needs to be able to determine where your entry point came from. Right now, it does that exclusively through sourcemaps. I think trying to figure out the original entry point from a bundler is out of scope for TypeDoc. There are too many bundlers, and way too many ways to configure them.
It seems reasonable to me to log a warning in this case and fall back to the typings field.

@Gerrit0, I added a PR, I took a slightly different approach, adding an escape hatch at the package.json level to allow a user to point at a tsc generated build structure for documentation.
This way you can always test just with tsc output.

It seems reasonable to me to log a warning in this case and fall back to the typings field.

Related to this, because of the use of api-extractor even falling back to the typings field caused an issue. So, we could script a sed change of the package.json to achieve the same thing that the PR in #1677 does, but I figured it might well be a nice addition for you to push people towards the understanding that typedoc works on tsc output.


Implement hoster node-exporter sub-command

node-exporter command will be responsible for a couple of things:

Supervising 2 node_exporter processes -- general purpose node_exporter and our own implementation called node_exporter_custom
Starting/restarting/stopping the supervised processes using start, stop, reload/restart sub commands
Integrating with hoster init to start the monitoring processes after system reboot or similar

hoster node_exporter has been implemented. There are 3 commands available to control it:

hoster node_exporter start
hoster node_exporter stop
hoster node_exporter status


[Dart Analyze Error] A value of type 'Color (where Color is defined in *sky_engine/lib/ui/painting.dart)' can't be assigned to a variable of type 'Color (where Color is defined in */faker-2.2.0/lib/src/colors.dart)'.

dart analyze failed when use Color class in test。
version: 2.2.0
A value of type 'Color (where Color is defined in *sky_engine/lib/ui/painting.dart)' can't be assigned to a variable of type 'Color (where Color is defined in */faker-2.2.0/lib/src/colors.dart)'.

We ran into this issue as well.
A temporary workaround is to hide Color from this lib.
import 'package:faker/faker.dart' hide Color;

It also happens with Image

Where would this problem be in faker's code? I see nothing from the pub analysis: https://pub.dev/packages/faker/score/log.txt

Where would this problem be in faker's code? I see nothing from the pub analysis: https://pub.dev/packages/faker/score/log.txt

Our test code hade some like this:
import 'flutter/material.dart';
import 'package:faker/faker.dart';

final color = Colors.light_green;


AC: support detection boxes rescaling

added fixing boxes size on model input shape

Jenkins please retry a build


Unclear sphinx pin in pyproject.toml

Describe the bug
The pyproject.toml contains the following pin:
https://github.com/executablebooks/sphinx-book-theme/blob/9ed62f562eec5608ad1478b18d12eff8282fd107/pyproject.toml#L61
From the comment, it is unclear whether this pin to the sphinx 4.X series is intentional or not, since "latest" == 5.X.
If the pin to sphinx 4.X is intentional, an update to the comment would be sufficient. FWIW the pin does seem to be important in that we have projects that build with sphinx 4.X but not 5.X, though I suspect the real problem is transitive dependencies (e.g. docutils). See numpy/numpy-tutorials#136.
Reproduce the bug
N/A
List your environment
N/A

Currently, installing sphinx-book-theme indeed downgrades the version of sphinx to 4.5 if the latest is installed (5.0.2), causing some downstream issues...

@pradyunsg maybe I'm misunderstanding the checkmarks in the linked issue, but it looks like there's a discrepancy between the issue listing and the pin in sphinx-book-theme. sphinx-book-theme is pinned to ~= 4.0 on both master and the latest tagged release v0.3.2. Does this mean the checks in the linked meta-issue indicate that the checked libraries are not pinned to sphinx < 5? If so, the wording in the issue could probably use some clarification.
Note also that my original comment was about the comment in the pyproject.toml - sphinx 4 is no longer the "latest" sphinx, so if the intention is to pin sphinx-book-theme to the sphinx 4 series for now (this seems to be the case) then the comment wording should be updated. It's a very straightforward change but I just want to make sure that I'm understanding everything correctly.

Indeed, those checkmarks are repositories that need to be migrated still. I've updated the issuue title and text to reflect that.
IIUC, the blocker for this theme is indeed docutils -- since Sphinx 5 allows using docutils 18 (and 19?) which has backwards incompatible changes.


solved the issue #6

Footer has been created while maintaining uniformity in the ui

Message me on this -<PHONE_NUMBER>


Add option to skip certain selectors from being prefixed

Hey,
We've added an option to skip certain selectors from being prefixed. Maybe someone else can use it.
This is very useful if you are working with a CSS Reset Library (e.g. https://github.com/filipelinhares/ress) and don't want to add unnecessarily high specificity to certain general selectors like '*' or ':after' etc.
Regards,
Julian

I'm using cleanslate as to reset CSS - this works perfectly to avoid that extra level of specificity on the reset's rules. Thanks @julkuh

I'm sorry, this was made specifically for a project I was working on at the time and definitely took a back burner as I shifted to a new team. I will address this though :)
I honestly didn't expect it to be so useful to other developers ;)

That's just what I needed thanks


Border color of area chart

This is my area spline which renders with a 'light-red' fill and a 'dark-red' border:
http://jsfiddle.net/sctc5yrL/
Is it possible to remove the 'dark-red' border or set the border color of the area? I went through the reference but could not find any explicit option to set this.
Thanks
Rakshith

Hi,
Not sure if you can do this from js, however you can achieve it by changing css a bit.
http://jsfiddle.net/L8kgyLc4/2/
.c3-shapes.c3-shapes-data1.c3-lines.c3-lines-data1 > path {
stroke: rgba(255, 0, 0, 0) !important;
opacity: 0 !important;
}
Only one of above properties is needed, and both will work.

Ah! that works as well. Thanks for the tip! 👍


Update api-management-using-with-internal-vnet.md

I created an issue, #79834, for this and the article was updated but I still think the text isn't correct. Since it is absolutely critical that to know what determines the source IP addresses for runtime traffic from APIM when you are using IP whitelisting I created this PR. The update also aligns with https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-ip-addresses which states:

When a request is sent from API Management to a public-facing (Internet-facing) backend, a public IP address will be visible as the origin of the request.

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


add: Tiensuperman

Add Tiensuperman Profile to public

@Tiensuperman Thank you so much for your contribution! Your efforts are greatly appreciated and will go a long way in improving our project. Please feel free to share it with others and Star the repo to help us grow even further!


exec/customValidator, set error reason?

Is there a way to set the error reason in customValidator or in a exec validation?
From the documentation and #31, I can only set the message with this.report.

Hi @mbt-jeremy-r
Sorry it's not in the documentation but as you can see here: https://github.com/Atinux/schema-inspector/blob/master/lib/schema-inspector.js#L584
You can define a custom error code as the 2nd argument and the reason as 3rd argument of this.report(message [, code] [, reason])


Revert "quilt-tester: Increase wait time after detecting containers s…

…tarting"
This reverts commit 47bbb6e86ded76df21a49386a7a99df7efc3512b and
22b761d653f5ecd6ada8cda5573052f7f321d0cc. Increasing the wait time
didn't actually fix the network test.

I'll wait a bit to merge this so we can differentiate potential network failures from the fixes in quilt/quilt, and this patch.


Area 1 three ball auto speedup

#112 will give us back 1.5 secs in auto. We still need to save a little more time to have a chance at a 3 ball auto. The simplest way to do this is to go directly at Ball 1 after scoring instead of trying to approach it from straight on.

Completed this during tonight’s meeting


JSON Sort Document crashes in certain cases

Type: Bug

Open a new view and paste

{
    "foo": {"a": "b",}
}

Trigger JSON: Sort Document from the Command Pallette

Triggers an error dialog with Request json/sort failed with message: Range#create called with invalid arguments[[object Object], [object Object], undefined, undefined]
The trailing comma seems to be causing this issue. But it doesn't have issues with trailing commas outside of this object like:
{
    "foo": {"a": "b"},
}

VS Code version: Code 1.84.2 (Universal) (1a5daa3a0231a0fbba4f14db7ec463cf99d7768e, 2023-11-09T10:52:33.687Z)
OS version: Darwin arm64 23.1.0

You meant #197902

You meant #197902?
Note that both are closed now. Where is the main issue for it then?

Ah yes apologies, it is a duplicate of https://github.com/microsoft/vscode/issues/178229

As I've mentioned in the duplicate, a trailing comma works fine in another case like:
{
    "foo": {"a": "b"},
}


Could not compile without editing frame_side_data_type.go

Hi. On current master branch (as well as on tag v0.7.3) I was getting the following errors:
body@body-OptiPlex-7050:~/webrtc-body$ cat run.sh
export CGO_LDFLAGS="-L/home/body/webrtc-body/go-astiav/tmp/n4.4.1/lib/"
export CGO_CXXFLAGS="-I/home/body/webrtc-body/go-astiav/tmp/n4.4.1/include/"
export PKG_CONFIG_PATH="/home/body/webrtc-body/go-astiav/tmp/n4.4.1/lib/pkgconfig"
go run .
body@body-OptiPlex-7050:~/webrtc-body$ ./run.sh
# github.com/asticode/go-astiav
go-astiav/frame_side_data_type.go:32:64: could not determine kind of name for C.AV_FRAME_DATA_FILM_GRAIN_PARAMS
go-astiav/frame_side_data_type.go:31:64: could not determine kind of name for C.AV_FRAME_DATA_SEI_UNREGISTERED
go-astiav/frame_side_data_type.go:30:64: could not determine kind of name for C.AV_FRAME_DATA_VIDEO_ENC_PARAMS

I was able to workaround it by commenting those out

I thought it might be related to my exports but I double-checked them just now. It is possible it is loading my system ffmpeg still, I am not really sure how to know if it's using the n4.4.1 which perhaps has those 3 defined whilst my system ffmpeg does not. Just a guess.

This usually indicates an ffmpeg version problem indeed.
You could try uninstalling your system ffmpeg to see whether that fixes the issue 👍

I wrote a small bit of golang that downloads the ffmpeg binaries on demand . Don’t know if this is useful ?
I got sick of the cross platform setup issues for developers on their laptops and this fixed it

I wrote a small bit of golang that downloads the ffmpeg binaries on demand . Don’t know if this is useful ?
I got sick of the cross platform setup issues for developers on their laptops and this fixed it

@gedw99 - Do you mind sharing this? I've been struggling with the same thing across a variety of platforms and cpu architectures and I'd rather use/improve an existing solution rather than rolling our own. Cheers!

@bbetter173
Its wrapped up in some code but this makefile shows it working:

# https://github.com/peolic/videohashes

REPO_NAME=videohashes

REPO_URL=git@github.com:peolic/$(REPO_NAME).git
REPO_VER=main

# Allow downloading of ffmpeg/ffprobe if no acceptable executables on path
# https://github.com/peolic/videohashes/pull/6
# https://github.com/4c0d3r/videohashes
# git@github.com:4c0d3r/videohashes.git
REPO_URL=git@github.com:4c0d3r/$(REPO_NAME).git
REPO_VER=main

BIN_FSPATH_NAME=.bin
BIN_FSPATH=$(PWD)/$(BIN_FSPATH_NAME)

BIN_NAME=videohashes
BIN=$(BIN_FSPATH)/$(BIN_NAME)

print:
	@echo ""
	@echo "REPO_NAME:     $(REPO_NAME)"
	@echo "REPO_URL:      $(REPO_URL)"
	@echo "REPO_VER:      $(REPO_VER)"
	@echo "REPO_PR_ID:    $(REPO_PR_ID)"
	@echo "BIN:           $(BIN)"

dep-git:
	git clone $(REPO_URL) -b $(REPO_VER)
	@echo $(REPO_NAME) >> .gitignore

dep-git-del:
	rm -rf $(REPO_NAME)

dep-tools:
	go install github.com/oligot/go-mod-upgrade@latest

CMD=cd $(REPO_NAME) &&

mod-upgrade: dep-tools mod-tidy
	$(CMD) go-mod-upgrade
	$(MAKE) mod-tidy
mod-tidy:
	$(CMD) go mod tidy

gen:
	$(CMD) go generate ./... -v

build:
	$(CMD) EXTRA_LDFLAGS='-extldflags=-static -s -w' go build -o $(BIN) ./cmd/videohashes
build-del:
	rm -rf $(BIN_FSPATH)

### TEST

# https://samplelib.com/
# https://github.com/ffeast/samplelib
TEST_REPO_NAME=samplelib
TEST_REPO_URL=git@github.com:ffeast/samplelib.git
TEST_REPO_VER=main

TEST_FSPATH=$(PWD)/samplelib/mp4
TEST_NAME=sample-5s.mp4
TEST=$(TEST_FSPATH)/$(TEST_NAME)

test-print:
	@echo ""
	@echo "TEST_NAME:     $(TEST_NAME)"
	@echo "TEST:          $(TEST)"

test-dep-git:
	# this is a repo with test samples
	git clone $(TEST_REPO_URL)
	@echo $(TEST_REPO_NAME) >> .gitignore
test-dep-git-del:
	rm -rf $(TEST_REPO_NAME)
test-run:
	$(BIN) -json -md5 -video $(TEST)

I am integrating this concept at the moment into a plugin for a ML platform, and so hopefully will open source it one day. takes for freaking ever mate !!


fix(eventstore): cleanup org fields on remove

Which Problems Are Solved
When an org is removed, the corresponding fields are not deleted. This creates issues, such as recreating a new org with the same verified domain.
How the Problems Are Solved
Remove the search fields by the org aggregate, instead of just setting the removed state.
Additional Changes

Cleanup migration script that removed current stale fields.

Additional Context

Closes https://github.com/zitadel/zitadel/issues/8943
Related to https://github.com/zitadel/zitadel/pull/8790

depending on which PR gets merged first we need to update the migration step to 40 https://github.com/zitadel/zitadel/pull/8816


ocamlPackages.alcotest: 1.3.0 → 1.4.0

Motivation for this change
#129434
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
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)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

cc maintainer @ericbmerritt

@GrahamcOfBorg build acgtk beluga coqPackages.hierarchy-builder dune-release eff flow framac haxe hxcpp jackline liquidsoap ocaml-crunch ocamlformat ocamlformat_0_11_0 ocamlformat_0_12 ocamlformat_0_13_0 ocamlformat_0_14_0 ocamlformat_0_14_1 ocamlformat_0_14_2 ocamlformat_0_14_3 ocamlformat_0_15_0 ocamlformat_0_15_1 ocamlformat_0_16_0 ocamlformat_0_17_0 ocamlformat_0_18_0 patdiff reason satysfi stog wayland-proxy-virtwl


[New game]: Pangram Checker Game

🎮 Game Request
Game logic and basic description
The Pangram Checker Game is designed to test and improve players' vocabulary and knowledge of the alphabet by challenging them to identify pangrams—sentences that include every letter of the alphabet at least once.
Game Start:
The game begins with a brief tutorial explaining what a pangram is and providing examples.
User Input:
Players will have buttons to select "Pangram" or "Not a Pangram."
There might be a text input option for players to create their own pangrams as a bonus challenge.
Point down the features
Game points
User-Friendly Interface:
Clean, intuitive design.
Visual aids and animations to make learning engaging.
Educational Content:
Fun facts about the English language and the history of pangrams.
Tips and tricks for creating effective pangrams.
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

@Damini2004 Please assign this problem to me and add suitable labels

/assign

@kunjgit  KInldy add level label to it

Hey @Damini2004 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


[FEAT] Remove Start Menu Recommendations / Fix GetToggle Logic

Type of Change

[x] New feature

Description

Removes recommendation setting entirely from Start Menu (pinned list even gets longer and not cut)

Testing

Tested on:

Win11 23H2
Win11 22H2
Win10 21H2

Issue related to PR

Resolves #2215
Resolves #2037

Additional Information

I am Enbling iseducationenvironment for this to work
https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-education#iseducationenvironment

Checklist

[x] My code adheres to the coding and style guidelines of the project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no errors/warnings/merge conflicts.

I was using windhawk for this glad it on here now.


Factories doesn't seem to work if a session hasn't been used yet.

I'm working with SQLAlchemy (with a scoped_session). Here's what I'm getting:
class TestCase(unittest.TestCase):

    def setUp(self):
        self.obj = ObjectFactory()
        print self.obj.id  # None

    def test_scenario(self):
        print self.obj.id  # None; Weird.
        session.query(Object).first()
        print ObjectFactory().id  # 1; Weird.

EDIT:
setUp doesn't seem to be the causing issue. It seems that _setup_next_sequency() doesn't get any primary keys to use if the session hasn't been used yet.

This issue has been fixed in 13d310f, and will be part of the 2.5.0 release.


Fix small run-time error in transformers

Using the example training (but with roberta-base) and example inference, I ran into:

ValueError: Wrong shape for input_ids (shape torch.Size([1, 256])) or attention_mask (shape torch.Size([256]))

I could fix this for my setup by adding .reshape(1,-1) to x and attentiona_mask.

Thanks for the pull request.


Added action for registering iOS devices with the Developer Portal

register_devices(
  devices: {
    'Luka iPhone 6' => '1234567890123456789012345678901234567890',
    'Felix iPad Air 2' => 'abcdefghijklmnopqrstvuwxyzabcdefghijklmn',
  }
)

One thing... it depends on this PR to be merged and released first: https://github.com/nomad/cupertino/pull/192

Looks great, looking forward to merge :+1:

I guess we need to update the cupertino dependency to 1.3.1

Thanks @lmirosevic :rocket:

This action is really cool :+1:


Use relative path, fix missing icon issue

@gursing You need to click on "merge" to accept the changes

@CaledoniaProject - I don't get the option to merge.


Force to use TCP socket when hostname is localhost

It is PR to force to use only TCP socket in Ecto.Adapters.MySQL when hostname is localhost.
https://github.com/elixir-ecto/ecto/issues/1694

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:

Thanks!


build: make default warnings as errors (IDFGH-9945)

The -Werror=all activates error for all warnings in -Wall, however, it does not activate error for other default warnings, such as:

int-conversion (pointer from integer w/o a cast)
incompatible-pointer-types
discarded-qualifiers

Which are IMO even more important that -Wall.
This commit fixes that by activating error for all warnings (i.e. from -Wall and default ones) and removing those from -Wextra, as the culprit commit seemed to address.
Fixes: 60f29236f6 "Build system: Raise warning level" (2016-11-16)

@MarcFinetRtone Thank you for the PR!
I have tried running a test with your changes and found that all of the IDF examples can been built successfully with these changes. (This is expected, since we build them with -Werror in CI.)
Some other internal test applications which are not built with -Werror yet have predictably failed to build...
I think this is in general the right change, but we need to consider whether it can be included in a minor IDF release (v5.1 or v5.2) or not, since it has the potential to introduce breakage in projects based on IDF.

I understand, breakage could hit users, however, I think it's rather for their good.

I totally understand and agree with this!
However another matter we have to regularly deal with is getting customers to upgrade to a newer version of ESP-IDF. Every single breaking change (even a "good" one!) they meet when trying to upgrade from an EoL (end-of-life) version of IDF to a newer one makes it more likely that they will abandon the attempt, and instead try to force Espressif to implement the features or fixes they are missing in an EoL version they are using. This means more unplanned work for ESP-IDF developers, and less time they can spend addressing, for instance, issues reported here on Github.
One compromise we can have is to introduce this change, but add an easy way to get the old behavior. This is something we did recently when upgrading from GCC 11 to GCC 12, which will be part of the upcoming IDF v5.1 release. Along with the upgrade (which, as usual, brings new or stricter GCC warnings) we have added a Kconfig option to disable the new warnings introduced in GCC 12, as well as an idf.py hint to do this (https://github.com/espressif/esp-idf/commit/0da15a7a19c97d38569ddbe3b919045834408c25).
I think we could add a similar Kconfig option in this case: enable more checks by default, but give less technically savvy users an easy way to get the old behavior, without forcing them to learn about CMake, GCC options and such.

In your failing tests, do you have seen sensible "violations" (that requires a -Wno rather than a code fix) ?

I have looked at the build logs briefly, here are some of the failures I found:

"comparison is always true due to limited range of data type [-Werror=type-limits]" — something we should definitely fix. In the particular case, the code still happens to work correctly, but it's a bug waiting to happen.
"-Werror=incompatible-pointer-types" reported in some cases when a callback function is declared with a different signature than expected. For example, a FreeRTOS task function was declared with an int arg argument, instead of a void* arg, and xTaskCreate call was getting an integer value (void*) SOME_INT_CONSTANT. The code worked as expected (SOME_INT_CONSTANT passed to the task function). We would definitely clean it up, though, instead of adding -Wno-incompatible-pointer-types.
error: passing argument 5 of 'getsockopt' from incompatible pointer type [-Werror=incompatible-pointer-types] because the function expects an long unsigned int * argument but we were passing an unsigned int*. In this case it's a bit annoying because unsigned long and unsigned have the same size (4 bytes), so i'd say it's as close to a false positive as it gets. We would still fix it, however, since -Wincompatible-pointer-types is a useful check which can help find more severe issues.

All in all, it's not too bad, for an internal test app we would definitely just go and fix these issues in code instead of disabling the warnings. However in similar cases in the past we had customers complaining that their app worked totally fine and we "broke" it by revealing some warnings which were not actually critical. (This is related to the "upgrading to a newer version of IDF" problem I wrote about above.)
Do you think you could do something along the lines of https://github.com/espressif/esp-idf/commit/0da15a7a19c97d38569ddbe3b919045834408c25 in this PR, and add a migration guide note in docs/en/migration-guides/release-5.x/5.1/build-system.rst? (If no, no problem whatsoever — we can take your commit and add these changes on top ourselves.)

Hi @MarcFinetRtone!
No, you do not need to rebase it. I took it into our internal repo and rebased it. When it is merged this PR will be automatically closed. Thanks.

b1768dcd8e8ed67882cdcb94a6eebc91d809b197


Set Up and Generate a New SAP Fiori App Project

Tutorial URL: https://developers.sap.com/tutorials/fiori-tools-generate-project.html
Please specify the step you are referring to 2.
Sometime we don't see card to select. This is faced by multiple users.
In windows this can be resolved by typing "npm i -g @sap/generator-fiori-elements " in terminal.
This can be added  as troubleshoot.

Hi shubhchamp,
We're sorry you had this issue. I'm currently working with the tutorial developers to see how we can minimize the frequency of this issue. In the meantime, please see FAQ #2 on this page:  https://help.sap.com/viewer/42532dbd1ebb434a80506113970f96e9/Latest/en-US
Thanks and regards,
Conrad (SAP UX Engineering)

Thank you for your feedback. The issue seems to be resolved, so I am closing the issue.
If you still have questions, feel free to reopen the issue.


Websocket example is giving html is not defined error

I am on fasthtml 0.3.4
I was trying out the basic_ws.py example:
from asyncio import sleep
from fasthtml.common import *

app = FastHTML(ws_hdr=True)
rt = app.route

def mk_inp(): return Input(id='msg')
nid = 'notifications'

@rt('/')
async def get():
    cts = Div(
        Div(id=nid),
        Form(mk_inp(), id='form', ws_send=True),
        hx_ext='ws', ws_connect='/ws')
    return Titled('Websocket Test', cts)

async def on_connect(send): await send(Div('Hello, you have connected', id=nid))
async def on_disconnect( ): print('Disconnected!')

@app.ws('/ws', conn=on_connect, disconn=on_disconnect)
async def ws(msg:str, send):
    await send(Div('Hello ' + msg, id=nid))
    await sleep(2)
    return Div('Goodbye ' + msg, id=nid), mk_inp()

serve()

Running it gives the following error in the browser:
Uncaught ReferenceError: htmx is not defined
    at ws.js:11:3
    at ws.js:467:3

Same error when trying the chat bot with ws exxample.

Should the extension be loaded after htmx is? This is what I see now:
<script src="https://unpkg.com/htmx-ext-ws/ws.js"></script>
<script<EMAIL_ADDRESS>

Yeah I fixed that yesterday - update your pip install.


Unicode characters in notebooks not loaded correctly into the editor

Hi @andypetrella,
An issue is the following: when running the notebook inside of the docker container, the UTF-8 characters are malformed when opening the notebook in the editor. Looking at viz/Graph Plots.snb for example:

I believe the issue is that the snb file is not explicitly read as unicode, neither the JSON response is explicitly setting Content-Encoding in the getNotebook response. Any chance to look at this issue?

fixed by https://github.com/andypetrella/spark-notebook/commit/af3e84b071d6c3056fef2ae00aa9b4f5cf91c4a5 thanks to @radekg !!!

:+1:


Custom logger example

This PR takes care of one of the TODOs noted in the release notes, stating we
were missing a custom logger example.
The purpose of this example is to show the users how to customize Ginkgo by
adding a new logger, which is useful and more efficient for application specific
problems. This is also one of the most basic (and simple) ways of customizing
Ginkgo, therefore this is a good entry level example for customization.
This example simply prints a table of the recurrent residual norm against the
real residual norm. This example is documented as much as thesimple-solver
example for the user's convenience.
This PR also fixes all build.sh scripts which were seriously outdated and non
working.

@pratikvn thanks for telling me about the examples file, I added it now. Here are the changes I made in addition, you may want to go over them and check if you are happy with that:

Remove a long and unneeded explanation on building Ginkgo manually (the script
should be used as an example) for that;
Add a customizing Ginkgo example list;
Add the custom_logger example to all relevant caterogies;
Break on 80 characters.

@tcojean, yes, that does look better. Thanks!


Allow getting pointer (address) to Numba's int/float variables

Feature Request

For example I have some cffi or ctypes function that has a pointer int64_t * as one of its argument. I need to call this function passing pointer (address) of single-value np.int64 variable. I found a way how to get and pass a pointer to any element of Numpy array, using .ctypes property. But didn't find any way of passing a pointer to int64 (np.int64 or numba.int64). Example code:
import numba, numpy as np

@numba.njit(cache = True)
def f():
    a = np.zeros((10,), dtype = np.int64)
    aptr = a[1:3].ctypes
    b = np.int64
    bptr = b.ctypes
    c = numba.int64
    cptr = c.ctypes

f()

In code above Numpy array has .ctypes property, returning aptr that can be easily passed as cffi function's int64_t * argument. But single-value variables b and c don't have same .ctypes property to get pointer of type int64_t * (compile error Unknown attribute 'ctypes' of type class(int64)). Neither I found any special function to get such pointer.
Maybe such address-getting special function exists somewhere in Numba's library, can anyone point me please to such function? Otherwise it would be nice to implement such.
As a workaround I was creating single-element Numpy array, copying int value into this element and then passing arr[0:1].ctypes to function. After function completes I copy value from array back to single-value variable. But this workaround is very inefficient especially if to create array every time.

@polkovnikov thank you for asking about this on the Numba issue tracker! I am not sure if such a function exists, so I have labeled this as feature request. If someone can point us to the requested function, then we can close this issue.

I think I recall seeing an example of using an @intrinsic function to get the address of variables - will see if I can find it.

I think I recall seeing an example of using an @intrinsic function to get the address of variables - will see if I can find it.

Unfortunately I was thinking of this example where an int is cast to a pointer value: https://numba.discourse.group/t/passing-array-of-pointers-cfunc/661/2
I think it will be difficult in general in Numba to support taking the address of variables, because we don't have a well-defined concept of storage classes for variables in the frontend of Numba, unlike in C - so we'd need to do a lot of work to catch edge cases where a variable might not necessarily have any storage allocated.

@gmarkall Maybe at least there exists a workaround for this? Something more lighter than I suggested (I suggested using intermediate Numpy array).
For example if regular numba.int64 can't give me its address then at least would be nice to have some special type like numba.Int64WithStorage, then I create a variable with this storaged type, copy numba.int64 value into it, take address of storaged type, pass this pointer to cffi function, function modifies its value by address, and on return I copy back value from storaged variable into regular one.
Current solution that I used is allocating intermediate Numpy array. The problem with this solution is that Numpy array is quite heavy thing, it does heap allocation/deallocation which is slow (probably with malloc()/free()). So having some special lightweight type numba.Int64WithStorage for same purpose would be great!
Right now I'm using this Numpy-array workaround in very tiny C function, as tiny as just doing return a * b;, so doing heavy Numpy array allocation on each tiny function call is to much overhead.

Possibly the StructRef documentation could indicate a route to a more lightweight workaround, if you had a struct with a single integer in it: https://numba.readthedocs.io/en/latest/extending/high-level.html?highlight=structref#implementing-mutable-structures

@polkovnikov
This is an example using double and double*.

@max9111 Thanks, this value<->pointer conversion instrinsic is exactly what I need!
Can you please tell - can I pass any type (including i8/i16/i32/i64/f32/f64) as arguments to functions ptr = cgutils.alloca_once_value(builder,args[0]) and val = builder.load(args[0])? Not just float64?

@polkovnikov
I don't see a reason why the following code should not work for  (i8/i16/i32/i64/f32/f64) , but I haven't tested it thoroughly.
from numba import types
from numba.extending import intrinsic
from numba.core import cgutils

@intrinsic
def val_to_ptr(typingctx, data):
    def impl(context, builder, signature, args):
        ptr = cgutils.alloca_once_value(builder,args[0])
        return ptr
    sig = types.CPointer(nb.typeof(data).instance_type)(nb.typeof(data).instance_type)
    return sig, impl

@intrinsic
def ptr_to_val(typingctx, data):
    def impl(context, builder, signature, args):
        val = builder.load(args[0])
        return val
    sig = data.dtype(types.CPointer(data.dtype))
    return sig, impl

I think it will be difficult in general in Numba to support taking the address of variables, because we don't have a well-defined concept of storage classes for variables in the frontend of Numba, unlike in C - so we'd need to do a lot of work to catch edge cases where a variable might not necessarily have any storage allocated.

@gmarkall Can you give an example, where you expect issues, with the code from above? Isn't cgutils.alloca_once_value() a lightweight workaround (allocating stack memory, copying the provided value to this allocated stack-memory and returning a pointer to that stack memory), or do I get something wrong here?

@max9111 I see you're very familiar with writing intrinsics. Can you please help with offtopic question - if I have any LLVM-IR-assembly function like below:
define dso_local double @Add(double %a, double %b) local_unnamed_addr #0 {
entry:
  %add = fadd double %a, %b
  ret double %add
}

can I wrap this function call inside @intrinsic? Of course I can wrap it using cfunc (through CFUNCTYPE) module. But the idea is to use @intrinsic only because this will allow LLVM to do all optimizations and allow inlining of this function's body into code that calls this intrinsic. Cfunc solution is never inlined and does extra CALL instruction, which is to huge overhead for such function like above (adding two double values).
Main emphasis here is to use LLVM IR assembly text. This function is just a toy example, I don't need IRBuilder-based solution for manual writing function body. I need the ability to use existing LLVM IR text assembly of a function from .ll file and wrap it into intrinsic. Just don't know how to do this.

I think it will be difficult in general in Numba to support taking the address of variables, because we don't have a well-defined concept of storage classes for variables in the frontend of Numba, unlike in C - so we'd need to do a lot of work to catch edge cases where a variable might not necessarily have any storage allocated.

@gmarkall Can you give an example, where you expect issues, with the code from above? Isn't cgutils.alloca_once_value() a lightweight workaround (allocating stack memory, copying the provided value to this allocated stack-memory and returning a pointer to that stack memory), or do I get something wrong here?

I don't expect issues with this. My concern was around more general support for taking the address of variables, where you do something like:
x = 2
addr = get_address_of(x)  # addr = &x
c_function(addr)          # Does *addr = 3
print(x)                  # prints 3

@max9111 I see you're very familiar with writing intrinsics. Can you please help with offtopic question - if I have any LLVM-IR-assembly function like below:
define dso_local double @Add(double %a, double %b) local_unnamed_addr #0 {
entry:
  %add = fadd double %a, %b
  ret double %add
}

I am not very familiar with writing intrinsics, but here is a working example https://github.com/numba/numba/issues/2795#issuecomment-472013539

RE: Numba consuming LLVM IR, there's an example here that invokes clang on some inline C string, it'd be easy to modify this to use parse_assembly instead of parse_bitcode.


Move implementation of load and save into setstate and getstate.

Using the pickle protocol allows us to use pickle on the class instance itself.

Sorry for the slow reply again.
Love it! Is there any way you could add a docstring and/or a test for the save/load interface?
With that I think we can merge pretty immediately.

These are no longer applicable, closing


[WIP] Refactor Domain

This PR is for cleaning and refactoring the module Domain.py so it can accept any number of predefined shapes (Shape.py) with associated boundary conditions (BC.py). This will make it easier to set up a simple domain with an arbitrary number of shapes in a more automatic fashion and should not affect the original way of defining a domain.
WIP on the following 4 files:

[ ] Domain.py

[ ] cleaning of module
[x] refactoring for accepting predefined shapes (only done for PSL and PLC domains so far)
[x] list of all boundary conditions accessed by flags as index in p and n files

[ ] SpatialTools.py - predefined shape classes

[x] predefined shapes
[x] custom shapes (by passing vertices, etc)
[x] add functions for spatial operations (rotation, translation, etc.)
[x] automatic adding of vertices, segments, facets, flags, etc
[x] rigid/floating body calculations (python) as auxiliary variable
[ ]  rigid/floating body calculations using external package (e.g. ChronoEngine) with collision detection

[ ] BC.py - predefined boundary conditions associated to shapes

[ ] modify/improve current BCs
[ ] make initial condition class

[ ] test_domain_shape.py - testing of the new functionality, and checking if nothing is broken

[ ] fully verify that the new way of defining domain is working
[ ] fully verify that the original way of defining domain is still working

A working example of a full case showing the alternative way to define a domain will also be pushed in the  future.

I still don't think I fully understand the new abstractions here. Domain classes represent domains of PDE's, generally bounded sets on R^n, but which require specific approaches to define concretely, such as intervals defining "boxes", planar straight line graphs, piecewise linear complexex, etc.  Is a Shape a Domain, a sub-component of a domain, or rigid body that forms part of a domain?  Boundary conditions are constraints on the solution values and fluxes along the domain boundary, so they need a domain and a PDE to be applied, but they can be defined abstractly based on flags and coordinates.  Can you explain the BoundaryConditions class you added  in terms of it's interface (member data and functions that operate on the data)? I'm not saying the functionality here isn't needed, I just want to make sure it's as simple as possible and maps clearly onto existing concepts.

@cekees A Shape is a sub-component of the domain, it could be a tank and other bodies within the tank, all having their set of vertices, segments, facets, etc. When the domain is built, it iterates through the list of shapes and adds their vertices, BCs, and auxiliaryVariables to itself, if any.
The boundary conditions are accessed through flags that are used directly as indice in the *_p.py files.
Every time a user defines a new shape, boundary conditions are associated with it and can be accessed directly from the Shape.
For example:
boundaryTags = { 'bottom': 1, 'front':2, 'right':3, 'back': 4, 'left':5, 'top':6, 'obstacle':7}
vertices=[[0.,0.,0.],#0
          ....
          [0.,1.,1.]]#7
vertexFlags=[boundaryTags['left'],
             boundaryTags['right'],
             ...
             boundaryTags['left']]
facets=[[[0,1,2,3]],
        ...
        [[4,5,6,7]]]
facetFlags=[boundaryTags['bottom'],
            ...
            boundaryTags['top']]
custom = st.CustomShape(domain=domain,
                        vertices=vertices,
                        vertexFlags=vertexFlags,
                        facets=facets,
                        facetFlags=facetFlags,
                        boundaryTags=boundaryTags)
# after defining the shape, you can access the boundary conditions like this
# (the keys in the boundaryTags dictionary passed to CustomShape must have acceptable variable names for it to work)
custom.BC.left.setNoSlip()
custom.BC.right.u_advective = lambda x, t: 0.0
# or also:
custom.BC_dict['top'].setFreeSlip()
# and even (if the index is known)
custom.BC_list[2].v_advective = lambda x, t: 0.0

Then, after building the domain, the BC is simply called like this in *_p.py files:
dirichletConditions = {0: lambda x, flag: domain.bc[flag].p_dirichlet,
                       1: lambda x, flag: domain.bc[flag].u_dirichlet,
                       2: lambda x, flag: domain.bc[flag].v_dirichlet}

The BC indice are automatically adjusted to global indice (from their local indice within shapes) when the domain is built.
I think it makes things much simpler to set up, as there would be no need to edit all the *_p files individually for BC, and we can keep useful predefined boundary conditions in BC.py (accessed through functions such as setNoSlip())

I think I see where you're headed now. The Shape class is a good idea.  To get this ready to merge I think the following are still  needed. I'll discuss with @adimako today and maybe we can have a phone call tomorrow morning.

[ ] convert tests to either nose-based or standard  python tests  see test_meshtools.py or test_wavetool.py for examples
[ ] move classes that are mprans specific  into the mprans  sub-package (I think of the new ones still  are at the moment. We can eventually make Shape and BC more general but for now we might want to move them)
[ ] remove specific  physical information like porosity and gravity from the Domain module to keep it purely geometric

@cekees SpatialTools and Domain have been cleaned up on commit 8a6f03e204bf28d61853596ca2395905b218c65f
Functions and classes specific to mprans are now in a file also called SpatialTools. super() is now used in the classes so everything can be inherited (including default attributes) from the base proteus.SpatialTools.Shape while overriding or adding specific attributes/functions. I ran a simulation, and it works as expected when doing from proteus.mprans import SpatialTools. Let me know if this could be a solution.

I think you may have already fixed it, but on the Domain functionality, it was just the setGravity function I wanted to remove. The getBoundingBox belongs there, as you said.

@tridelat I  think your use of inheritance is great for SpatialTools and mprans/SpatialTools and should work  for BC as well if there's enough generic functionality in BC to make it useful to  have a proteus.BC module.

I observe that in BC.py file and specifically under the setGenerationFunctions method, I should change the previous definition of he as follows: he=self.domain.MeshOptions.he in order to be in accordance with the latest version of the new class MeshOptions.
I changed the definition of he in my file but I don't have the permission to push this change.

@geomak89 that's right, it should be MeshOptions.  It seems that I cannot give permissions for someone to push on proteus so I pushed the change on the latest commit, and also moved reset() at the beginning in setParallelFlag0().

This looks great!  I think you should go ahead and merge.

This branch depended on adimakoWaveTools/cython branch which has therefore also been merged

An example of SpatialTools, BoundaryConditions and WaveTools being used with proteus for two-phase flow can be found here:
https://github.com/erdc-cm/air-water-vv/tree/tridelat/caisson_oscillation/2d/floating_caisson


youtube av01 video playback no picture

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2022.10.04 (update instructions) or later (specify commit)
[X] I've searched the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
It can be seen that this video does not have an 8k option, but there is an 8k option in the background of the server, and it cannot be played after downloading. Why is this?
https://www.youtube.com/watch?v=1F_k5US20Ks
https://www.youtube.com/watch?v=6_yT1RLXC60
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
C:\Users\yerin>yt-dlp -vU
[debug] Command-line config: ['-vU']
[debug] Encodings: locale cp936, fs utf-8, pref cp936, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.09.01 [5d7c7d6] (win32_exe)
[debug] Python 3.8.10 (CPython 64bit) - Windows-10-10.0.19044-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg N-107627-g8e6759f10c-20220801 (setts), ffprobe N-107627-g8e6759f10c-20220801
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {'http': 'http://<IP_ADDRESS>:10081', 'https': 'https://<IP_ADDRESS>:10081', 'ftp': 'ftp://<IP_ADDRESS>:10081'}
[debug] Loaded 1670 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.10.04, Current version: 2022.09.01
[debug] Downloading _update_spec from https://github.com/yt-dlp/yt-dlp/releases/download/2022.10.04/_update_spec
Current Build Hash fc932a7478e536945895185abe529ad94d2385862df6e1b41fb970568dce7f7a
Updating to version 2022.10.04 ...
[debug] Downloading yt-dlp.exe from https://github.com/yt-dlp/yt-dlp/releases/download/2022.10.04/yt-dlp.exe
[debug] Downloading SHA2-256SUMS from https://github.com/yt-dlp/yt-dlp/releases/download/2022.10.04/SHA2-256SUMS
Updated yt-dlp to version 2022.10.04

--------------------------------------

C:\Users\yerin>yt-dlp https://www.youtube.com/watch?v=1F_k5US20Ks -F
[youtube] 1F_k5US20Ks: Downloading webpage
[youtube] 1F_k5US20Ks: Downloading android player API JSON
[info] Available formats for 1F_k5US20Ks:
ID  EXT   RESOLUTION FPS CH │   FILESIZE    TBR PROTO │ VCODEC           VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb0 mhtml 48x27       14    │                   mhtml │ images                                   storyboard
599 m4a   audio only      2 │   26.96KiB    32k https │ audio only           mp4a.40.5   32k 22k ultralow, m4a_dash
600 webm  audio only      2 │   25.23KiB    31k https │ audio only           opus        31k 48k ultralow, webm_dash
139 m4a   audio only      2 │   41.95KiB    50k https │ audio only           mp4a.40.5   50k 22k low, m4a_dash
249 webm  audio only      2 │   37.31KiB    45k https │ audio only           opus        45k 48k low, webm_dash
250 webm  audio only      2 │   46.89KiB    57k https │ audio only           opus        57k 48k low, webm_dash
140 m4a   audio only      2 │  108.21KiB   130k https │ audio only           mp4a.40.2  130k 44k medium, m4a_dash
251 webm  audio only      2 │   84.65KiB   103k https │ audio only           opus       103k 48k medium, webm_dash
17  3gp   176x144      7  1 │   70.64KiB    85k https │ mp4v.20.3        85k mp4a.40.2    0k 22k 144p
597 mp4   144x256     15    │   37.39KiB    45k https │ avc1.4d400b      45k video only          144p, mp4_dash
598 webm  144x256     15    │   35.63KiB    43k https │ vp9              43k video only          144p, webm_dash
394 mp4   144x256     30    │   61.71KiB    75k https │ av01.0.00M.08    75k video only          144p, mp4_dash
160 mp4   144x256     30    │   97.62KiB   119k https │ avc1.4d400c     119k video only          144p, mp4_dash
278 webm  144x256     30    │   83.44KiB   101k https │ vp9             101k video only          144p, webm_dash
395 mp4   240x426     30    │  124.82KiB   152k https │ av01.0.00M.08   152k video only          240p, mp4_dash
133 mp4   240x426     30    │  211.18KiB   257k https │ avc1.4d4015     257k video only          240p, mp4_dash
242 webm  240x426     30    │  176.51KiB   215k https │ vp9             215k video only          240p, webm_dash
18  mp4   270x480     30  2 │  356.49KiB   430k https │ avc1.42001E     430k mp4a.40.2    0k 48k 240p
396 mp4   360x640     30    │  256.69KiB   312k https │ av01.0.01M.08   312k video only          360p, mp4_dash
134 mp4   360x640     30    │  489.65KiB   595k https │ avc1.4d401e     595k video only          360p, mp4_dash
243 webm  360x640     30    │  274.24KiB   333k https │ vp9             333k video only          360p, webm_dash
397 mp4   480x854     30    │  448.04KiB   545k https │ av01.0.04M.08   545k video only          480p, mp4_dash
135 mp4   480x854     30    │  920.36KiB  1119k https │ avc1.4d401f    1119k video only          480p, mp4_dash
244 webm  480x854     30    │  435.65KiB   529k https │ vp9             529k video only          480p, webm_dash
22  mp4   720x1280    30  2 │ ~  2.01MiB  2348k https │ avc1.64001F    2348k mp4a.40.2    0k 44k 720p
398 mp4   720x1280    30    │  911.30KiB  1108k https │ av01.0.05M.08  1108k video only          720p, mp4_dash
136 mp4   720x1280    30    │    1.78MiB  2219k https │ avc1.64001f    2219k video only          720p, mp4_dash
247 webm  720x1280    30    │  753.31KiB   916k https │ vp9             916k video only          720p, webm_dash
399 mp4   1080x1920   30    │    1.51MiB  1876k https │ av01.0.08M.08  1876k video only          1080p, mp4_dash
137 mp4   1080x1920   30    │    3.51MiB  4367k https │ avc1.640028    4367k video only          1080p, mp4_dash
248 webm  1080x1920   30    │    1.25MiB  1553k https │ vp9            1553k video only          1080p, webm_dash
400 mp4   1440x2560   30    │    4.56MiB  5677k https │ av01.0.12M.08  5677k video only          1440p, mp4_dash
271 webm  1440x2560   30    │    4.88MiB  6079k https │ vp9            6079k video only          1440p, webm_dash
401 mp4   2160x3840   30    │    9.17MiB 11408k https │ av01.0.12M.08 11408k video only          2160p, mp4_dash
313 webm  2160x3840   30    │    8.18MiB 10180k https │ vp9           10180k video only          2160p, webm_dash
571 mp4   4320x7680   30    │   18.07MiB 22493k https │ av01.0.16M.08 22493k video only          4320p, mp4_dash

According to Wikipedia 4320x7680 is 8K. Do you have reason to believe otherwise?

and it cannot be played after downloading

Is format 571 unplayable?
Note for maintainers: I have not triaged this issue

It is indeed 8k, but when you go to the video page, you cannot select 8K stream, but the server background can download to 8k
571 format can't be played after downloading

The browser tries to play the 8k format, and when it fails, it falls back to 4k. Not sure what we can do about this

The browser tries to play the 8k format, and when it fails, it falls back to 4k. Not sure what we can do about this

My program strategy is to choose the highest quality, it is really troublesome to encounter this, and it has to be screened out separately

Do I understand correctly - the issue here is that your player setup does not support 8k video, and therefore you want to download the best video that is not above 4K?
Proposed solution: Add --format "bestvideo*[width<=3840][height<=2160]+bestaudio" to your yt-dlp command line options and it should do just what you want. (If you don't want to add that every time on the command line, you can put it in the yt-dlp config file.)

pukkandan

I can play 8K av1 video, but the 571 in this video can't be played, even pukkandan can't do anything

Do I understand correctly - the issue here is that your player setup does not support 8k video, and therefore you want to download the best video that is not above 4K?

Issue is not with OP's setup. The video that YouTube provides in this case is damaged

I can play 8K av1 video, but the 571 in this video can't be played, even pukkandan can't do anything

I see. That is good for you, and not so good for YouTube then.
I think it is unlikely to expect yt-dlp to know that YouTube serves up a damaged video and that you will have to check manually to catch cases such as these.
Perhaps you could use another tool to check the download afterwards, but since they seem OK also in MediaInfo, I am not sure how to do it.

Issue is not with OP's setup. The video that YouTube provides in this case is damaged

Yes, I agree, after testing properly. I can see other 8K YouTube videos, of 571 as well as other format ids, but not these ones.

I can play 8K av1 video, but the 571 in this video can't be played, even pukkandan can't do anything

I see. That is good for you, and not so good for YouTube then. I think it is unlikely to expect yt-dlp to know that YouTube serves up a damaged video and that you will have to check manually to catch cases such as these. Perhaps you could use another tool to check the download afterwards, but since they seem OK also in MediaInfo, I am not sure how to do it.

Issue is not with OP's setup. The video that YouTube provides in this case is damaged

Yes, I agree, after testing properly. I can see other 8K AV1 YouTube videos, of 571 as well as other format ids, but not these ones.

It's not a good thing for me because I'm collecting videos at the highest quality and it's frustrating to see this

It's not a good thing for me because I'm collecting videos at the highest quality and it's frustrating to see this

Since it is bad from YouTube I guess the only thing you could do is contact the account putting it up and alert them to the problem. Good luck!

If browsers are able to detect that the video is corrupted and yt-dlp can't, couldn't a site like Tiktok soon start intentionally doing this to block/fingerprint yt-dlp? I'm not saying this is a high priority issue, but imo it's still a bug that should be reopened


test_udp_recvmsg_multishot_trunc fails

On my machine, this test fails. I'm running the most recent version of Arch Linux.
If I comment out each assertion one by one, every single assertion gets tripped.
Code is located here.
match i {
    0 => {
        let msg = msg.unwrap();
        assert!(msg.is_payload_truncated());
        assert!(msg.is_name_data_truncated());
        assert_eq!(DATA.len(), msg.incoming_payload_len() as usize);
        assert!(msg.payload_data().is_empty());
        assert!(4 < msg.incoming_name_len());
        assert_eq!(4, msg.name_data().len());
    }

Some potentially helpful error output:
assert_eq!(DATA.len(), msg.incoming_payload_len() as usize);

thread 'main' panicked at io-uring-test/src/tests/net.rs:1551:25:
assertion `left == right` failed
  left: 15
 right: 0

assert!(4 < msg.incoming_name_len(), "Name length: {}", msg.incoming_name_len());

thread 'main' panicked at io-uring-test/src/tests/net.rs:1553:25:
Name length: 0

assert_eq!(4, msg.name_data().len());

thread 'main' panicked at io-uring-test/src/tests/net.rs:1554:25:
assertion `left == right` failed
  left: 4
 right: 0

@SUPERCILEX are you interested in checking this out? It changes in newer kernels.

What kernel version is this on? And do the assert!(msg.is_payload_truncated()) assertions fail too? If not, then maybe the kernel just doesn't return anything anymore on truncation. If literally all the assertions fail, then I think it's time to open an io_uring bug because that would be nonsense: the data doesn't fit so it has day it's truncated.

@SUPERCILEX Sorry for the delay. Here is my linux version:
~
❯ uname -r
6.8.7-arch1-1

~
❯ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

And yes every single one of those assertions failed for me.

Ah sorry one of them does not fail, specifically msg.payload_data().is_empty().
0 => {
    let msg = msg.unwrap();
    if !msg.is_payload_truncated() {
        println!("Payload is not truncated")
    }
    if !msg.is_name_data_truncated() {
        println!("Name is not truncated")
    }
    if !msg.payload_data().is_empty() {
        println!("Payload data is not empty")
    }
    if 4 >= msg.incoming_name_len() {
        println!("Payload name length is >= 4")
    }
    if DATA.len() != msg.incoming_payload_len() as usize {
        println!("Payload len is {}", msg.incoming_payload_len());
    }
    assert_eq!(4, msg.name_data().len());
}

Gives this output:
Payload is not truncated
Name is not truncated
Payload name length is >= 4
Payload len is 0
thread 'main' panicked at io-uring-test/src/tests/net.rs:1564:25:
assertion `left == right` failed
  left: 4
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

That just seems so broken to me. Can you try dbg printing the header here: https://github.com/tokio-rs/io-uring/blob/501ee78049fa785eb4f5888252a0983ba6cf78e0/src/types.rs#L415 Also, remove the match statement with the assertions so we can see each message get parsed.

@SUPERCILEX Output when commenting out the entire match statement + I added a dbg!(i) and dbg!(msg.unwrap()). It seems like the second branch with i = 1 also trips most of the asserts.
test udp_recvmsg_multishot_trunc
[io-uring-test/src/tests/net.rs:1545:17] i = 0
[src/types.rs:416:9] header = io_uring_recvmsg_out {
    namelen: 0,
    controllen: 0,
    payloadlen: 0,
    flags: 0,
}
[io-uring-test/src/tests/net.rs:1547:17] msg.unwrap() = RecvMsgOut {
    header: io_uring_recvmsg_out {
        namelen: 0,
        controllen: 0,
        payloadlen: 0,
        flags: 0,
    },
    msghdr_name_len: 4,
    name_data: [],
    control_data: [],
    payload_data: [],
}
[io-uring-test/src/tests/net.rs:1545:17] i = 1
[src/types.rs:416:9] header = io_uring_recvmsg_out {
    namelen: 16,
    controllen: 0,
    payloadlen: 15,
    flags: 32,
}
[io-uring-test/src/tests/net.rs:1547:17] msg.unwrap() = RecvMsgOut {
    header: io_uring_recvmsg_out {
        namelen: 16,
        controllen: 0,
        payloadlen: 15,
        flags: 32,
    },
    msghdr_name_len: 4,
    name_data: [
        2,
        0,
        217,
        24,
    ],
    control_data: [],
    payload_data: [],
}

Hmmm, that all zero pattern is deeply suspicious. I wonder if we're using the wrong buffer somehow? Can you throw in this for loop below buffer_select?
          for i in 0..3 {
                    let tmp_buf = &buffers[i];
                    dbg!(i);
                    let msg = types::RecvMsgOut::parse(tmp_buf, &msghdr);
                }

My guess is that one of the buffers will be filled in, but buf_id won't be pointing to it.

I added a dbg!(msg.unwrap());
[io-uring-test/src/tests/net.rs:1544:21] i = 0
[io-uring-test/src/tests/net.rs:1547:21] msg.unwrap() = RecvMsgOut {
    header: io_uring_recvmsg_out {
        namelen: 16,
        controllen: 0,
        payloadlen: 15,
        flags: 32,
    },
    msghdr_name_len: 4,
    name_data: [
        2,
        0,
        233,
        242,
    ],
    control_data: [],
    payload_data: [],
}
[io-uring-test/src/tests/net.rs:1544:21] i = 1
[io-uring-test/src/tests/net.rs:1547:21] msg.unwrap() = RecvMsgOut {
    header: io_uring_recvmsg_out {
        namelen: 0,
        controllen: 0,
        payloadlen: 0,
        flags: 0,
    },
    msghdr_name_len: 4,
    name_data: [],
    control_data: [],
    payload_data: [],
}
[io-uring-test/src/tests/net.rs:1544:21] i = 2
[io-uring-test/src/tests/net.rs:1547:21] msg.unwrap() = RecvMsgOut {
    header: io_uring_recvmsg_out {
        namelen: 0,
        controllen: 0,
        payloadlen: 0,
        flags: 0,
    },
    msghdr_name_len: 4,
    name_data: [],
    control_data: [],
    payload_data: [],
}
thread 'main' panicked at io-uring-test/src/tests/net.rs:1555:25:
assertion failed: msg.is_payload_truncated()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I had actually not read what the actual test was doing until just now, so I now have a few questions about this test.
    for (index, buf) in buffers.iter_mut().enumerate() {
        let provide_bufs_e = io_uring::opcode::ProvideBuffers::new(
            (**buf).as_mut_ptr(),
            buf.len() as i32,
            1,
            BUF_GROUP,
            index as u16,
        )
        .build()
        .user_data(11)
        .into();
        unsafe { ring.submission().push(&provide_bufs_e)? };
        ring.submitter().submit_and_wait(1)?;
        let cqes: Vec<io_uring::cqueue::Entry> = ring.completion().map(Into::into).collect();
        assert_eq!(cqes.len(), 1);
        assert_eq!(cqes[0].user_data(), 11);
        assert_eq!(cqes[0].result(), 0);
        assert_eq!(cqes[0].flags(), 0);
    }

Man pages for io_uring_prep_provide_buffers.
The specific thing I have a question about is the BUF_GROUP constant in the ProvideBuffers opcode. Every single time provide buffers is getting called, it is set to the same buffer group. Wouldn't executing the ProvideBuffers on the same buf group replace the ones that were provided in the previous iterations? Or does this test not care about that?

Huh, yeah maybe that's it though I thought it was supposed to be fine. You could try adding the index to the buf group and see if that fixes it.
Also you can print buf_id so see what the kernel is actually picking cuz in your previous message the first buffer had the right data filled in, but it clearly picked something else.

Hey, can you try https://github.com/tokio-rs/io-uring/pull/284 and see if it fixes it for you? If so, I was just being a dumdum and the kernel is returning sendmsg responses out of order which I wasn't expecting.

Sorry for the delay, I've added a comment directly on the PR.

Closed by #284


Releasing 0.3.0

LGTM

Codecov Report

Merging #232 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #232   +/-   ##
=========================================
  Coverage     70.52%   70.52%
  Complexity      492      492
=========================================
  Files            69       69
  Lines          2551     2551
  Branches        269      269
=========================================
  Hits           1799     1799
  Misses          653      653
  Partials         99       99

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 69803a5...f6451a2. Read the comment docs.


[question] planned release time?

how long is it looking like until this is released? just asking, no rush :).

When I finish it, which might be soon now that I'm stuck at home a lot mroe.

ok, looking forward to the release!


LAMP requires NativeMods directory to exist, otherwise deployment fails

Describe the bug
For BG3, if the directory /bin/NativeMods does not exist, then deployment hangs.  On my PC this directory was not automatically created when the game was installed.
Error message
[LAMP:ERROR:4] Cleanup failed! Aborting Deployment
To Reproduce
Steps to reproduce the behaviour:

Rename /bin/NativeMods
Start LAMP
Click [Deploy]
Click [Start]
Error message shown

Expected behaviour
LAMP should automatically create the foloder if it is missing
System Info (please complete the following information):

Linux Flavour: Linux Mint 21.2, Cinnamon edition
Window Manager: Mutter
Lamp Version: 1.0.7

Additional context
A workaround is to manually create the folder.  This is easy, once you know what the issue is.  If automatically creating the directory is undesirable, then maybe include the missing folder name in the error message?

Ah yes I'll add this one to the faq for now, a fix is planned for this in
1.0.8
On Wed, 4 Oct 2023, 09:22 dwm35, @.***> wrote:

Describe the bug
For BG3, if the directory /bin/NativeMods does not exist, then deployment
hangs. On my PC this directory was not automatically created when the game
was installed.
Error message
[LAMP:ERROR:4] Cleanup failed! Aborting Deployment
To Reproduce
Steps to reproduce the behaviour:

Rename /bin/NativeMods
Start LAMP
Click [Deploy]
Click [Start]
Error message shown

Expected behaviour
LAMP should automatically create the foloder if it is missing
System Info (please complete the following information):

Linux Flavour: Linux Mint 21.2, Cinnamon edition
Window Manager: Mutter
Lamp Version: 1.0.7

Additional context
A workaround is to manually create the folder. This is easy, once you know
what the issue is. If automatically creating the directory is undesirable,
then maybe include the missing folder name in the error message?
—
Reply to this email directly, view it on GitHub
https://github.com/CHollingworth/Lamp/issues/39, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARGLQVIVFMNAU2D6QSBBPEDX5UMFJAVCNFSM6AAAAAA5SG44OOVHI2DSMVQWIX3LMV43ASLTON2WKOZRHEZDKNRWGQ2TCOI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


fix: first retry logging

Title:
Handle the case where the first attempt fails and lastAttempt is undefined.

Thank you for the PR, @jpulec! We will review it now


Line endings in repositories

Description
While implementing #214 I stumbled upon an issue best described here. (tldr; every file is modified after clone because of different line endings)  It does not seem very hard to solve, but I would like to discuss the exact approach.

Previous attempt at fixing this was mentioned in this comment

@LostInStatic it seem like this config for templates does the trick.
* eol=lf

*.png text=auto
*.jpg text=auto
*.jpeg text=auto
*.gif text=auto
*.webp text=auto
*.mp4 text=auto

🔍 Note: I haven't pushed this to the actual templates nor the publications yet.

I have added you to this repo as a collaborator. Can you accept the invite, set is as active in the app and see if the commits view will show no changes?

@LostInStatic .gitattributes config has been updated in all PaaW templates and repositories.
For already cloned repositories it is advised to run the following commands after the update.
git rm --cached -r .
git reset --hard

I have run into some issues with font files sometimes not resetting the line endings. Safest way to update is to clone the project via PubLab, which then works 100% of the time by the looks of it. Anyways, a rare case for an actual user of the app to already have a project cloned.
With all that said, I am closing this issue. ✅


Review button gets enabled on adding value even account balance is $0.00

Frequency: 100%
Repro on build version: Android Internal Build V 1.10.1(1004294336), Testflight build 1.10.1(46)
Does not repro version Android Internal Build V 1.10.1(1004294335), Testflight build 1.10.1(45)
Repro on devices: Samsung Galaxy A5(7.0),iPhone XR(14.2), iPhone SE(13.4.1)
Testing Account:<PHONE_NUMBER>/ Backup Key
Pre-condition: Users should have a $0.00 balance in account.
Repro Steps:

Launch the application & login with a test account.
Tap on the Send button on the home screen.
Now search for any user number & select that user.
Now the user is on the Send screen.
Now enter any amount in the amount field.
Observed that,

Current Behavior:  “Review"  button gets enabled even if the user has 0 balance.
Expected Behavior:  “Review” button should not be enabled & proper error message should display.
Impact: Bad user experience.
Attachment: ReviewEnableEvenZeroBalance.mp4

I have verified this issue using latest play store build V1.10.1 & App store build V1.10.1 & observed that issue is still reprodced.
Repro on devices: Samsung Galaxy A5(7.0),iPhone XR(14.2)

Hi @tarikbellamine We have verified this issue using Android internal build V1.15.2 & Appstore build V1.15.2observed that issue is still repro.

Review button gets enabled on adding value even account balance is $0.00
"Need more funds to sent" red banner is shown when user tap on Review button.
Repro on devices: iPhone 6+(12.4.5), Vivo v11 pro (10)


Query compiler gives dangerous advice

When joining associations and trying to specify an on clause the query compiler throws an error and tells the user to move it into a where clause instead.
For example when I want to load the comments of a post that were written in the last 12 hours:
from p in Posts,
  left_join: c in assoc(p, :comments),
    on: c.creation_time > fragment("now() - interval '12 hours'"),
  preload: [comments: c]

The query compiler will tell me:
== Compilation error on file web/controllers/PostsController.ex ==
** (Ecto.Query.CompileError) cannot specify `on` on `left_join` when using association join, add extra clauses with `where` instead
    lib/ecto/query.ex:331: Ecto.Query.from/5
    expanding macro: Ecto.Query.from/2
    web/controllers/PostsController.ex:13: App.PostsController.index/2
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8

An unsuspecting user might follow that advice and rewrite the query like so:
from p in Posts,
  left_join: c in assoc(p, :comments),
  where: c.creation_time > fragment("now() - interval '12 hours'"),
  preload: [comments: c]

This compiles but is not at all equivalent to the original version and intention of the user. Even worse the newly introduced bug will only show when there have been no comments in the last 12 hours. The left join was used to make sure that even if a post doesn't have comments it will show up in the query result. But since the condition has been moved to the where clause (as suggested by the query compiler) posts that had no comments in the last 12 hours will be filtered away.
That's why I suggest to remove this "hint" or at least reword it to make explicit that it only works for specific kinds of joins (like an inner join).

@dthul excellent point. I will just allow both to be supported and measure the clauses with and.