Very slow source.fixAll after making multiple quick changes to file

I've noticed that the source.fixAll linting is extremely slow after you make multiple quick changes to a file (e.g. by mashing the keyboard) and then finally save. Here's an example log from editing one small file:
Mashing the keys quickly, triggering tons of textDocument/didChange notifications, and pressing save:
2024-11-11 13:55:01.032 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.054 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.166 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.375 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.391 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.395 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.511 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.522 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.526 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.672 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.686 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.751 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.873 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.880 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:01.952 [info] [Trace - 13:55:01] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.038 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.049 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.111 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.190 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.199 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.279 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.470 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.472 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.645 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.766 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.861 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:02.966 [info] [Trace - 13:55:02] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.070 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.198 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.207 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.216 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.294 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.385 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.410 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.494 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.535 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.550 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.638 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.670 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.712 [info] [Trace - 13:55:03] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:03.791 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.810 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.819 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.950 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.968 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:03.984 [info] [Trace - 13:55:03] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.096 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.118 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.124 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.247 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.252 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.259 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.392 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.408 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.421 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.535 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.553 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.557 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.673 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.682 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.696 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.807 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.832 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.836 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.958 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.967 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:04.970 [info] [Trace - 13:55:04] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:05.113 [info] [Trace - 13:55:05] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:05.130 [info] [Trace - 13:55:05] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:05.132 [info] [Trace - 13:55:05] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:05.137 [info] [Trace - 13:55:05] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:05.263 [info] [Trace - 13:55:05] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:05.275 [info] [Trace - 13:55:05] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:05.279 [info] [Trace - 13:55:05] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:06.110 [info] [Trace - 13:55:06] Sending request 'textDocument/codeAction - (429)'.
2024-11-11 13:55:06.253 [info] [Trace - 13:55:06] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:06.296 [info] [Trace - 13:55:06] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:06.296 [info] [Trace - 13:55:06] Sending notification '$/cancelRequest'.
2024-11-11 13:55:06.503 [info] [Trace - 13:55:06] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:06.755 [info] [Trace - 13:55:06] Sending request 'textDocument/codeAction - (430)'.
2024-11-11 13:55:07.293 [info] [Trace - 13:55:07] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:07.447 [info] [Trace - 13:55:07] Sending notification 'textDocument/didChange'.
2024-11-11 13:55:07.448 [info] [Trace - 13:55:07] Sending notification '$/cancelRequest'.
2024-11-11 13:55:08.270 [info] [Trace - 13:55:08] Sending request 'textDocument/codeAction - (431)'.
2024-11-11 13:55:08.323 [info] [Trace - 13:55:08] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:09.344 [info] [Trace - 13:55:09] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:10.337 [info] [Trace - 13:55:10] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:11.296 [info] [Trace - 13:55:11] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:12.456 [info] [Trace - 13:55:12] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:13.555 [info] [Trace - 13:55:13] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:14.637 [info] [Trace - 13:55:14] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:15.649 [info] [Trace - 13:55:15] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:16.655 [info] [Trace - 13:55:16] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:17.678 [info] [Trace - 13:55:17] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:18.797 [info] [Trace - 13:55:18] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:19.904 [info] [Trace - 13:55:19] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:20.935 [info] [Trace - 13:55:20] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:21.992 [info] [Trace - 13:55:21] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:22.991 [info] [Trace - 13:55:22] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:23.944 [info] [Trace - 13:55:23] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:24.938 [info] [Trace - 13:55:24] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:26.005 [info] [Trace - 13:55:26] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:26.964 [info] [Trace - 13:55:26] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:27.925 [info] [Trace - 13:55:27] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:28.883 [info] [Trace - 13:55:28] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:29.856 [info] [Trace - 13:55:29] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:30.813 [info] [Trace - 13:55:30] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:31.772 [info] [Trace - 13:55:31] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:32.768 [info] [Trace - 13:55:32] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:33.730 [info] [Trace - 13:55:33] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:34.698 [info] [Trace - 13:55:34] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:35.673 [info] [Trace - 13:55:35] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:36.768 [info] [Trace - 13:55:36] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:37.734 [info] [Trace - 13:55:37] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:38.699 [info] [Trace - 13:55:38] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:39.663 [info] [Trace - 13:55:39] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:40.615 [info] [Trace - 13:55:40] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:41.584 [info] [Trace - 13:55:41] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:42.636 [info] [Trace - 13:55:42] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:43.590 [info] [Trace - 13:55:43] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:44.541 [info] [Trace - 13:55:44] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:45.494 [info] [Trace - 13:55:45] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:46.445 [info] [Trace - 13:55:46] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:47.397 [info] [Trace - 13:55:47] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:48.361 [info] [Trace - 13:55:48] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:49.318 [info] [Trace - 13:55:49] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:50.272 [info] [Trace - 13:55:50] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:51.225 [info] [Trace - 13:55:51] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:52.181 [info] [Trace - 13:55:52] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:53.137 [info] [Trace - 13:55:53] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:54.088 [info] [Trace - 13:55:54] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:55.047 [info] [Trace - 13:55:55] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:55.998 [info] [Trace - 13:55:55] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:56.973 [info] [Trace - 13:55:56] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:57.976 [info] [Trace - 13:55:57] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:58.932 [info] [Trace - 13:55:58] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:55:59.918 [info] [Trace - 13:55:59] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:00.914 [info] [Trace - 13:56:00] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:01.976 [info] [Trace - 13:56:01] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:02.981 [info] [Trace - 13:56:02] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:03.949 [info] [Trace - 13:56:03] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:04.909 [info] [Trace - 13:56:04] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:06.088 [info] [Trace - 13:56:06] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:07.080 [info] [Trace - 13:56:07] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:08.297 [info] [Trace - 13:56:08] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:09.272 [info] [Trace - 13:56:09] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:10.278 [info] [Trace - 13:56:10] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:11.272 [info] [Trace - 13:56:11] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:12.270 [info] [Trace - 13:56:12] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:13.369 [info] [Trace - 13:56:13] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:14.344 [info] [Trace - 13:56:14] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:15.297 [info] [Trace - 13:56:15] Received notification 'textDocument/publishDiagnostics'.

Over a minute later, it eventually catches up and finishes linting:
2024-11-11 13:56:15.297 [info] [Trace - 13:56:15] Received response 'textDocument/codeAction - (429)' in 69187ms. Request failed: Request got cancelled (-32800).
2024-11-11 13:56:16.459 [info] [Trace - 13:56:16] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:17.465 [info] [Trace - 13:56:17] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:17.466 [info] [Trace - 13:56:17] Received response 'textDocument/codeAction - (430)' in 70711ms.
2024-11-11 13:56:18.450 [info] [Trace - 13:56:18] Received notification 'textDocument/publishDiagnostics'.
2024-11-11 13:56:18.450 [info] [Trace - 13:56:18] Received response 'textDocument/codeAction - (431)' in 70180ms.
2024-11-11 13:56:18.484 [info] [Trace - 13:56:18] Sending notification 'textDocument/didChange'.
2024-11-11 13:56:19.573 [info] [Trace - 13:56:19] Received notification 'textDocument/publishDiagnostics'.

I am using the xo.debounce option (set to 350) but it doesn't seem to be helping.
Any ideas?

Hi there, thanks for the report.

Note that the extension simply passes these changes to xo itself, so any "slowness" is not from the extension but the xo library. When using TS, xo under the hood uses eslint, and typescript-eslint which has to analyze the TS program.
I've noticed that some default imports can choke up the TS compiler.
for instance,
- import prettier from 'prettier' // Very slow
+ import {default as prettier} from 'prettier' // fast again

There are TS diagnostics you can run to see what type is causing the problems.
Unfortunately this guess is the best answer I can come up with. I regularly work on largeish TS programs with no performance issues, but occasionally this does come up due to TS.

If my guess about TS is wrong, see if you can come up with a small example repo that does this so I can debug further.

Hi @spence-s , thanks for the quick reply. I did some more testing and the performance issue is specific to one of my computers (an iMac), but doesn't happen on two others (Windows with WSL, Macbook). It's strange - I've tried to make the config identical, e.g. uninstalled all extensions except xo, same node version, same VSCode version, etc. but it keeps happening. I'll keep digging and if I figure out why it's happening I'll share here.

Okay I figured it out. The problem was caused by xo's .gitignore handling being way too slow. Our solution has a very deeply nested directory structure which we ignore via xo's ignore config. Unfortunately the ignore config does not apply any limits to how deep xo will search to find .gitignores.
This is the patch we're applying to xo locally (via patch-package). We only have one root .gitignore file so this works for us. I was thinking of making a MR for xo to improve this in a more general/configurable way, but don't have time at the moment.
diff --git a/node_modules/xo/index.js b/node_modules/xo/index.js
index 3ebb91f..92894b2 100644
--- a/node_modules/xo/index.js
+++ b/node_modules/xo/index.js
@@ -55,7 +55,7 @@ const lintText = async (string, options) => {
 		filePath
 		&& (
 			micromatch.isMatch(path.relative(cwd, filePath), ignorePatterns)
-			|| isGitIgnoredSync({cwd})(filePath)
+			|| isGitIgnoredSync({cwd,deep:1})(filePath)
 		)
 	) {
 		return getIgnoredReport(filePath);

Closing!


ci: add a way to supply CONTAINER_CMD of choice

Describe what this PR does
Add a way to supply local CONTAINER_CMD option of choice via
env variable to minikube.sh
Is there anything that requires special attention
Note: we still use docker daemon env at minikube box, in the future
we can switch to podman service env '# minikube podman-env' if needed
Signed-off-by: Prasanna Kumar Kalever<EMAIL_ADDRESS>

@mergifyio backport release-v3.1


Distributing build to testers failed with error: You must provide an answer for this question

          Original issue by @Pr0Ger - Imported from fastlane/pilot#156

When submiting beta build for internal testing I receive following error. When I tried to distribute this build manually iTunes Connect requsted answering to questions about used encryption, so this is probably a reason for this exception.
/usr/local/lib/ruby/gems/2.3.0/gems/spaceship-0.21.1/lib/spaceship/tunes/tunes_client.rb:219:in `handle_itc_response': [!] You must provide an answer for this question. (Spaceship::TunesClient::ITunesConnectError)
	from /usr/local/lib/ruby/gems/2.3.0/gems/spaceship-0.21.1/lib/spaceship/tunes/tunes_client.rb:538:in `update_build_trains!'
	from /usr/local/lib/ruby/gems/2.3.0/gems/spaceship-0.21.1/lib/spaceship/tunes/build_train.rb:118:in `update_testing_status!'
	from /usr/local/lib/ruby/gems/2.3.0/gems/pilot-1.4.1/lib/pilot/build_manager.rb:124:in `distribute_build'
	from /usr/local/lib/ruby/gems/2.3.0/gems/pilot-1.4.1/lib/pilot/build_manager.rb:26:in `upload'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/actions/pilot.rb:18:in `run'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/actions/testflight.rb:5:in `run'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:143:in `block (2 levels) in execute_action'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/actions/actions_helper.rb:35:in `execute_action'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:129:in `block in execute_action'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:128:in `chdir'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:128:in `execute_action'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/fast_file.rb:149:in `method_missing'
	from Fastfile:63:in `block (2 levels) in parsing_binding'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/lane.rb:36:in `call'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:52:in `block in execute'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:46:in `chdir'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/runner.rb:46:in `execute'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/lane_manager.rb:46:in `cruise_lane'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/lib/fastlane/command_line_handler.rb:30:in `handle'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/bin/fastlane:38:in `block (2 levels) in run'
	from /usr/local/lib/ruby/gems/2.3.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
	from /usr/local/lib/ruby/gems/2.3.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
	from /usr/local/lib/ruby/gems/2.3.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane_core-0.36.9/lib/fastlane_core/ui/fastlane_runner.rb:23:in `run!'
	from /usr/local/lib/ruby/gems/2.3.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/bin/fastlane:156:in `run'
	from /usr/local/lib/ruby/gems/2.3.0/gems/fastlane-1.63.1/bin/fastlane:162:in `<top (required)>'
	from /usr/local/bin/fastlane:23:in `load'
	from /usr/local/bin/fastlane:23:in `<main>'

Thank you @gpbl , it solve my problem


Update cargo dependencies

See https://github.com/serlo/database-layer/pull/352

clippy errors were fixed in 7c7eb17

Done in the meanwhile


msp_lib.bundle 2.7 MacOS

I have MSPhysics working on all version except the Apple Silicon Macs as msp_lib is not compiled for 2.7 version for Mac. If anyone could help that would be great.

The higher version of SU has bugs


See #1607. Add support for PHP-CS-Fixer 1, along with version 2.

What does this implement/fix? Explain your changes.
...
Does this close any currently open issues?
Closes https://github.com/Glavin001/atom-beautify/issues/1607
Any other comments?
...
Checklist
Check all those that are applicable and complete.

[x] Merged with latest master branch
[ ] Added examples for testing to examples/ directory
[ ] Travis CI passes (Mac support)
[ ] AppVeyor passes (Windows support)

Published to v0.29.23


pulldown pre scroll issue in MaterialUpConceptActivity

In MaterialUpConceptActivity，the scroll flag of Toolbar is "scroll|enterAlways|snap"，so it should be pulled down before RecyclerView scroll, but there is a layout_marginTop in Toolbar,it make Toolbar only be pulled partly.I think we should remove the layout_marginTop in Toolbar.Instead we can add "android:layout_marginBottom="-48dp""  in CircleImageView

Yep, you were true, I removed that useless margin from the toolbar and anchored the ImageView to the top of the linear layout with the texts.
Thank you!


Add options for disabling less useful tests

Add options for disabling:

buffer tests
out of place tests, where we have equivalent in-place tests

This is intended for faster local development. Disabling both reduces the number float tests from ~1300 to ~400.
Checklist
Tick if relevant:

[N/A ] New files have a copyright
[N/A ] New headers have an include guards
[x] API is documented with Doxygen
[N/A ] New functionalities are tested
[x] Tests pass locally
[x] Files are clang-formatted

I think we don't even rebuild kernels for USM and buffers after all. From the times I have seen in ctest the buffers tests never seem to JIT compile kernels. This may be thanks to the way we always get a pointer from the accessor so the parallel_for captures the same types.
I wonder how much time we gain by disabling the 2 options when we use SYCL_CACHE_PERSISTENT=1 though.

The kernel does not get jit compiled because USM tests are run first, and that's when all the kernels will be built, USM/Buffer/Layouts etc.. and then the runtime will cache it.
With this PR, even though the tests are disabled, we would still be building the kernels for type BUFFER (see here). If we disable building the Buffer kernels, we would be building 8 less kernels per test size.
But its possible I have misunderstood the scope of this PR.

Oh yes you're right, I forgot we were buffer and USM kernels there. I agree that we should disable building the buffer kernel in that case!

Disabled JITing of buffers kernels when the option is disabled.


Remove eventLoop property from Task

Currently, Task has an eventLoop stored property, and its channel must be on this same event loop.
In practice, eventLoop can be used by the http client delegate in the following ways:

Return an immediately succeeded future in the appropriate methods when they don’t want to apply back pressure.
Schedule backpressure related work on this event loop and return the backpressure control future.
In case backpressure work is done on another event loop (which might be more often the case than #2), hop the resulting backpressure future to eventLoop.

In these three cases, the goal to guarantee to the http client that it can assume all futures it gets from its delegate are already on the right event loop.
Potential shortcomings
Errors on user side
When applying back pressure, users getting futures from different event loops might forget to hop them back to the right event loop. On the other hand, if the client stopped relying on the assumption that futures returned from the delegate are already on the right event loop, and instead always took care of hopping them, this source of bugs would disappear entirely for a minimal performance cost (hopTo isn’t too heavy, and in many cases the user will need to use it either way, so why force them to do it when we could do this on the library side?).
Hard to compose with future evolutions
The eventLoop property might not compose very well with future evolutions of the client such as pooling (tldr: the associated event loop is hard to determine synchronously like Task needs, and Task might change of event loop during its lifetime):

It complicates the connection generation logic on the pool side. For instance a connection pool would likely contain a method such as getConnection(for request: HTTPClient.Request -> EventLoopFuture<Connection>, this is logical for it to return a future because a connection might not be instantly available, but it couldn’t be used as such with the current AsyncClient public API: execute() synchronously returns Task, but Task needs an eventLoop on initialization, which couldn’t be instantaneously determined due to getConnection being an async method. There would of be workarounds for this, but they would complicate the connection pool logic (maybe not a really good sign when two isolated components start to interact this way) and may also force creating new connections (instead of using released ones) just to satisfy the event loop identity constraint.
Pooling will also need a retry logic for when a connection dies too soon, this means associating the Task with a new channel that will probably not be on the same event loop as before except if we always made a new connection for retries, but it would be a ressource waste.

Proposed solution
Remove eventLoop property entirely, always hop futures provided by the delegate, additionally, update HTTPClientResponseDelegate backpressure controlling methods to make them return EventLoopFuture<Void>? instead of a non-optional EventLoopFuture<Void>.
This change would enable the following:

Reduces the risk of threading issue in delegate implementations
Makes Task less dependent on a specific event loop, making it easier to evolve in the future.
Delegate implementations that want to schedule work on the same event loop as channel can still make use of task.channel.eventLoop knowing it might evolve during the Task lifetime.
Delegate implementations that don't wish to exerce backpressure can express it more clearly/easily by returning nil instead of having to reference eventLoop just to return an immediately completed void future.

What do you think about this? Am I missing some important part?
Thank you

One problem I see is that channel property in Task is optional, so in case we want to return a future and don't have our own we cannot guarantee (compile-time wise) that we have a channel. Also, first iteration of back pressure did return optional EventLoopFuture, but it was decided to opt for non-optional variant: https://github.com/swift-server/async-http-client/pull/37#issuecomment-497724599
On the topic of connection generation code, why not add eventLoop property to connection? That way we can create Task on the same eventLoop as connection.

@artemredkin About channel being optional I would see two options:

Make eventLoop a public internal(set) var and update it as needed (ie: when the Task changes of event loop)
Remove eventLoop, pass a Channel to delegate methods (IIRC someone had already proposed it), this shouldn't require to unwrap optionals either.

I have a preference for the second approach because it makes it a little clearer the Channel can change, whereas users might be more tempted to keep long lived references to properties of a Task object, which could lead to bugs due to having a reference to an outdated event loop / channel.
Ok, makes sense for not returning an optional.
About the connection pool, you did mean adding it to the Connection type, right? Actually, the problem isn't to retrieve the event loop associated with a connection, but more to retrieve the connection itself: getConnection(...) would return an EventLoopFuture<Connection>, but since the client execute(...) method synchronously returns a Task, it means we can't init Task with an argument that requires a call to the async getConnection(...).
We could return a EventLoopFuture<Task>, but it seems suboptimal since some of its properties are themselves futures. Returning a non-async connection isn't possible either except if we set excessive constraints on the event loop future it can belong to: if we already have active connections to server A, we have no way to know in advance the event loop the next released connection will belong to, so there is no way to synchronously return a Connection that would already contain an event loop, except if we specified we only accepted connections from a certain event loop, but it would waste ressources because some available connections couldn't be reused.

I gave my second idea a shot, here is the diff.

also this discussion here because it's related: https://github.com/swift-server/async-http-client/pull/79

@weissi Indeed, I realise its not a good solution to add Channel to delegates. Do you think the base issue is valid though? TBH I'm not entirely sure myself, but I don't see how to write something clean when Task needs to be returned immediately and needs an event loop to be initialised.

Ok, we need to definitely think about this some more before 1.0.0. I don't have time right this second but will think about it soon. Adding other relevant folks @ianpartridge @tanner0101 @Lukasa to help the discussion.

Some comments

When applying back pressure, users getting futures from different event loops might forget to hop them back to the right event loop. On the other hand, if the client stopped relying on the assumption that futures returned from the delegate are already on the right event loop, and instead always took care of hopping them, this source of bugs would disappear entirely for a minimal performance cost (hopTo isn’t too heavy, and in many cases the user will need to use it either way, so why force them to do it when we could do this on the library side?)

The client should definitely be robust against that, this assumption is flawed. Back-pressure most of the time is exerted from another Channel which might be on a totally different EL.
From what I can tell, having .eventloop on the Task is mostly for convenience. Here's my proposal: We leave eventLoop on Task but we document clearly that it may change. Possibly we could even name it currentEventLoop. And we leave it non-optional as it's useless as a convenience if it's optional.
Because now it can change, we simply do this:

if we already have a Channel, we return channel.eventLoop from task.eventLoop
if we do not have a Channel yet, we return group.next() from the HTTPClient's task.

The HTTP client (I'll file a bug about this in a second) anyway needs to tolerate back-pressure futures from random ELs so there's no more room for user error. But in almost all cases, the user would use task.currentEventLoop to make new futures and those would happen to be on the right EventLoop so hop(to:) is pretty much free anyway. If the user really took the future before a Channel got available, sure, then it's from a different EL and hop(to:)  will solve this issue.
So tl;dr: Rename eventLoop to currentEventLoop and document very clearly that it may change during the lifetime.

Thank you! I like this solution, it provides the right mix between correctness and usability in my opinion. Having the freedom of using any event loop (from group.next()) when the connection pool isn't able to synchronously provide this information solves the issue entirely, especially with good documentation.
On the same subject, I realise that Task has a public init(eventLoop: EventLoop), do we actually want to make it public? Even with the current version of the package I don't know what the use case would be?

On the same subject, I realise that Task has a public init(eventLoop: EventLoop), do we actually want to make it public?

Thanks for catching that. I think it's a bug that Task can even be instantiated from outside the package (but obvs I might be wrong ;) ).

CC @artemredkin do you know why the constructor is public?

The main issues that were presented in this thread have been fixed by #96 and additional discussion is also present in #100.


Todo: /cdn fixes

/cdn upload doesn't handle extensions well—if you provide an extension in the name argument (like name:myfile.png), the resultant file will have double extensions (myfile.png.png)
Files should not be allowed to contain spaces or other inappropriate characters

Done in https://github.com/FloatingMilkshake/MechanicalMilkshake/commit/79553b53e68b6b08adb21c6f630e26c2b689a9f3

Files should not be allowed to contain spaces or other inappropriate characters

I chose to disallow spaces but allow other characters as they seem to be URL-encoded—at least, when being displayed in responses, which is fine


Localtunnel down again!

Localtunnel is again down... I can't believe...

It’s been down since noon yesterday. I don’t know what’s going on and why it keeps going out every 2 days!

It’s been down since noon yesterday. I don’t know what’s going on and why it keeps going out every 2 days!

I started a project last night and the tunnel shut down. It hasn't shown any signs of life since then, and I really like this option. If this continues I will have to get a static ip address and make my own host. It's not worth it like this anymore. I already have a website that is functional and doing my job, clients are waiting for me and I can't explain to them that the problem is not my fault.

I have a project called Simple-Mailer that I finished last year. It used to work all the time and there were problems here and there, but not as many as now. My website barely runs anymore and it's annoying because I even use my own project on some other projects.

I may have to unstar this project. It basically doesn't even work anymore

Localtunnel is not reliable for me these days. Does anyone know any better alternatives?

Upon ny research localtunnel is the best. Ngrok is insecure and you have to pay for it, and I don’t know of any other services. If you don’t need to use server side code, you can use github pages to host your website. I even have multiple free domains from freenom.com that are really easy to remember.

Who maintains localtunnel, anyway?

Sigh sorry guys. The datacenter I'm hosting this in is having network issues again so things aren't working atm. Unfortunately I can't switch to another host due to the huge amount of abuse notices that i get.
Should be up in a couple hours 😅

Sorry to hear that. Can you tell me whats going on in Serbian language? I think you're Serbian guy.

Hi @TheBoroer , thank you for the info! Sorry to bother you. Congrats for this work.

Ok, thanks for the update. Now I know my website won’t have any more problems

Sigh sorry guys. The datacenter I'm hosting this in is having network issues again so things aren't working atm. Unfortunately I can't switch to another host due to the huge amount of abuse notices that i get.
Should be up in a couple hours 😅

Are those abuse notices from disgruntled developers that are tired of the unreliability of localtunnel?

Are those abuse notices from disgruntled developers that are tired of the unreliability of localtunnel?

Most definitely not 😂 if you're unhappy feel free to check out ngrok or self host your own private instance of localtunnel.
The flood of abuse notices are because bad people use localtunnel to host phishing or malware portals

Localtunnel is amazing. Even know it’s free, and very unreliable, it still works pretty good. Thank you for making this free @TheBoroer

Could you please let us know when the service backonline? As we done a deep integration inside Nodejs Server so can not switch over :((

Hello, 07:39GMT 06/02 and still down. Please please restore service.  Thanks.

still down

No pressure! Thank you for this service!

Guys :) As @TheBoroer said, they are having networking issues in their data center. Boro can't do anything, he's waiting for the technicians ( ISP technicians ) to solve the problem.

If reliability is an issue for you, you can set up your own server:
https://github.com/localtunnel/server
It takes a bit of tinkering, but I figured it out in a few hours.
If you've got a server with docker installed somewhere handy (I have a Synology NAS with docker on it), you set up the container using a config such as host dev.xxx.ddns.etc, port 3000. Then use Synology's built in Reverse Proxy to point your domain dev.xxx.synology.me:443 to localhost:3000.
You will also need to open ports 443:80 to your NAS (could already be done if you access your NAS externally), then ports 30,000-50,000,3000 also to your NAS for Local Tunnel.
I'm now able to access my local development server via https://dev.xxx.ddns.etc/ without any extra port info (thanks to the reverse proxy).
Ps. I'm no security expert, so take this post with a grain of salt. Exposing ports to internal network computers can/will be dangerous.

Thanks guys for these service, we are very waiting when this comes back!

It should be back up around 2:00-4:00 P.M. today.

It should be back up around 2:00-4:00 P.M. today.

How do you know?

My OCD is on overdrive right now because of a zillion failed stripe webhook events on my local development server ...

@acke1337 He said a few hours it should be up. He has the same time zone as me and I'm sure he's not staying up all night to fix this. I feel like localtunnel usually comes back in the afternoon too when it's down. I'm just estimating the time, I don't actually know but we'll see.

I really depend on localtunnel to be up. One of my projects/games I'm currently in development with uses a project I made last year to send emails. One of the pages won't load on my game, and I figured out it's from localtunnel being down. The page on my website hasn't loaded since 2 days ago

I last used it 2 hours ago, it was down

Sigh sorry guys. The datacenter I'm hosting this in is having network issues again so things aren't working atm. Unfortunately I can't switch to another host due to the huge amount of abuse notices that i get.
Should be up in a couple hours 😅

Hey, maybe I can help with more reliable hosting, depending on resource usage/costs. feel free to reach out to me on reddit user @sirp1nky or twitter @shaibs

i think everyone here needs to treat localtunnel as a dev tool and realize they can't rely on a free service for production level reliability.   i use localtunnel to regularly debug my mobile apps and rest api's because it easily let's me share a domain without having to setup too much crazy network wizardry.  it's an awesome tool and as others have pointed out it's more secure the ngrok.  localtunnel should be used (as the name implies) to host your localtunnel.  not a production-capable application.

I use it as a temporary server for a friend, or for testing. Relying on a 3rd party like this is a terrible idea for anything important

Guess I was wrong. This is ridiculous, it’s been down for exactly 3 days now. Please come back

Guess I was wrong. This is ridiculous, it’s been down for exactly 3 days now. Please come back

they cannot do anything. this is an issue with the service provider local tunnel uses as host. its beyond the creator,s control.

Guess I was wrong. This is ridiculous, it’s been down for exactly 3 days now. Please come back

Have you got a plan when they decide this free service is too much hassle and they close it down?
Keep in mind that LocalTunnel and its server are both open source. You can run you own server.
I'm not sure who pays to keep this server up, but I'm thankful it's been a pretty solid service for the couple of years I've used it.

It’s fine if it’s down, I don’t need it that bad. But I mean, what happened that made it go down for more than 3 days?

It’s fine if it’s down, I don’t need it that bad. But I mean, what happened that made it go down for more than 3 days?

If you scroll up, i left a note saying why it's down 😅 sorry guys but it's kinda out of my control atm.
https://github.com/localtunnel/localtunnel/issues/560#issuecomment-1418269714

@TheBoroer Do you know of anyone’s fixing the servers? How long it’s going to take and how bad it is?

Yep! They're working on it. It's not the server that's busted its the networking routes to the server 😞
Unfortunately no ETA, they said they might have it going tonight or early tomorrow

Ok, thank you

Still down

Thanks for working on this @TheBoroer, Localtunnel has been very convenient dev tool
It's not going to go faster or slower by commenting if it's still "down", you can easily check it with:
https://www.isitdownrightnow.com/

you can easily check it with:
https://www.isitdownrightnow.com/

lol, I’ve just been going to loca.lt myself and seeing if it loads. Either way works

Another day goes and it is still down, my hopes go out to everyone that it will be back up tomorrow.

Sigh... I very sorry for the downtime everyone.
I got an update that things should be up tomorrow...so I'm hopeful. For those who know what BGP is, there's some bgp issues at the datacenter. I'm trying to figure out some alternatives to get stuff back up and running asap

Thank you @TheBoroer, very appriciate for your support to the community!

@TheBoroer thanks for the update and great product!

Appreciate your support and the work you've done for the community @TheBoroer.

Yes! It’s back up! Thanks to the people who worked all of that time fixing it.

Thankyou.

Thanks for your hard work getting this service back online.  Your effort is greatly appreciated!

back up but down again or is it just me?

Lol down again

It can't even stay up for more than a day now

It seems ok for me...

Ok, it’s back up now. Hopefully it will still be back up tomorrow lol. You can close this issue now

is it back down?

@carelesswhisp no, it’s working fine. It hasn’t been down for a week.

Looks like it’s working fine


User facing API breaking changes

Backstory
In the beginning of this project I wanted to build framework, that is super fast (to skip virtual dom and implement listeners as re-rendering engine) and to use it for my own development purposes. So in the beginning I wanted it to be functional...
Then the unexpected popularity and refactor came, when it kinda fell into OOP all the way. With that came somewhat unexpected bumps and listeners became kinda hard to work with. In my head I always tried to figure out what is the way I want v1 to be and I think I finally figured it out.
Functional all the way
This means different user facing API and different way of thinking about writing components. Code got even smaller and faster this way too.
So the idea is that, components no longer have their own state, instead we now got Store. We can create as many stores as we want, even for every component, if so pleased. And only one way of rendering DOM with functional stateless components.
Example
1. just rendering dom
const { h, mount } = Radi

function Hello() {
  return (

Hello World !

  )
}

mount(<Hello/>, document.body)

2. rendering dom with variable data
const { h, mount, Store } = RadiExperiment

/* Firstly we define state */
const state = new Store({
  count: 0
})

/* Then we define some actions that will change state */
const up = ({count}, by) => ({count: count + by})
const down = ({count}, by) => ({count: count - by})

/* Then comes pure function component */
function Counter() {
  return (

{ state.out(s => s.count) }

      <button onclick={ () => state.dispatch(up, 1) }>Up</button>
      <button onclick={ () => state.dispatch(down, 1) }>Down</button>

  )
}

/* Finally we mount it */
mount(<Counter/>, document.body)

None of the lifecycles suffer either.
function App() {
  this.onMount = () => {}
  this.onDestroy = () => {}

  return <Person/>
}
// or we can set prototypes too
App.onMount = () => {}
App.onDestroy = () => {}

More about Store
With new Store we can do some interesting things. Like getting data from API by just defining schema of response data. So we can introduce Fetch that gathers data from api and directly injects them in Store.
Also why not inject one Store into another one (sync them both or lock injected).
// First we define Schema for our data from API
const User = new Fetch.get(
  '/users/:id',
  (data) => ({
    id: data._key,
    firstname: data.firstname,
    lastname: data.lastname,
  })
)

// Then we create store where we include our User Schema
const userStore = new Store({
  foo: 'bar',
  user: User({id: 10}),
})

// This part is not necessary, but for demo purpose it's here
// Here we inject `userStore` store into another store
const appStore = new Store({
  person: {
    fakeAge: 21,
    data: userStore.inject,
  }
})

// Finally we can use our data. API will gather data automatically
function App() {
  return (

      {appState.out(({person}) => (
        person.data.firstname + ' ' + person.data.lastname
      ))}

  )
}

This is what v1 will eventually look like. There is some work in progress already in huskey branch if you want to check it out.

Here are some live examples:

Counter example
Sinwave example

I actually really like this. This is a significant improvement :smile:

Looking good, honestly.
Feels very react + store (redux/whatever) like, honestly. So I've got a couple of questions:

with the Listeners gone, where's the difference with a component framework like react/preact/.. ?
how does the app component in your last example know it needs to re-render when appState changes? What are you using under the hood, and how does App know about it? (or will it never, and is it again just the value updating? In that case, how are you doing this without Listener ?

I lost interest a little bit in radi with all the OOP stuff going on all of a sudden, but if you're going functional all the way, I'd love to contribute again! Any work that needs to be done?

@ambewas Good questions!

Listeners are not gone. Concept is still there, but moved from components to Store.
Components do not re-render them selves, instead listeners (same as before) from Store does.

There are still bunch of features that needs to be moved from current Radi to this and tests have yet to be written.
Features still missing:

Unit tests
customAttribute
customTag
Need to figure out neat way to inject data from Events.
For example just like Fetch wich isn't yet finished either.

const { subscribe, Store } = Radi

const mousePosition = subscribe(document.onmousemove, e => ({x: e.x, y: e.y}))

new Store({
  mousePosition
})

or if anyone have better solution.

Custom attribute model on input fields for two way data binding with store
And most of custom tags and attributes that were written for Radi

If some points feels interesting to you than PR's would be welcome :)

Reminds me of Rx's Observable a lot...Might want to use that with the store?

@rafaelklaessen I don't intend Radi to rely on any 3rd party dependency.
Observables can be used separately, if so desired.

@Marcisbee Alright, I get that. But you could take inspiration from its API :smile:


Fix a false positive for RSpec/VariableName and RSpec/VariableDefinition when inside non-spec code

Fix: https://github.com/rubocop/rubocop-rspec/issues/1149

Before submitting the PR make sure the following are checked:

[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[-] Updated documentation.
[x] Added an entry to the CHANGELOG.md if the new code introduces user-observable changes.
[x] The build (bundle exec rake) passes (be sure to run this locally, since it may produce updated documentation that you will need to commit).

I manually resolved the Changelog conflict, which apparently happens by merging master into this branch.


pull request for e2e test at 01/06/2017 19:45:11

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Should star expand extra dice also?

Arguments for yes:

Uniform handling for all sub, apply args.

Arguments for no:

Using the same value of star might not be right for all of the args.
Doesn't play well with args not intended to be dice, especially if they are not convertible to dice, e.g. lists.

Extra question: should apply_sorted support multiple pools?

Decision: star won't expand extra dice, and apply_sorted will only support a single pool since this is symmetric to apply and allows for the nice count-list syntax. I might consider a multi-pool version of apply_sorted at some point but not now.

I decided to remove extra_dice. It's not particularly consistent with *star and **kwargs, and using an internal sub to handle any extra dice is probably clearer. There may be remaining issues with Again though.

Recommended against excessive use of Again. I'm not sure what else can be done short of removing Again entirely.


Internal prometheus URL doesn't support routePrefix

The kube-prometheus-stack helm chart supports the routePrefix for prometheusSpec.
This means that prometheus endpoint can have a route prefix.
Current code does not support this, but assuming that the internal endpoint always listens on the root path.
https://github.com/opencost/opencost-helm-chart/blob/6ed2eb42ab99d2bc2f699e949a72226a56c6068e/charts/opencost/templates/_helpers.tpl#L78

I believe you can leverage the "external" prometheus option to set a more customized url:
opencost:
  prometheus:
    external:
      enabled: true
      url: 'http://prometheus.monitoring.svc:9090/custom-path'

@usulkies do you want to provide a PR or should we close the issue since there's a work-around?

@usulkies do you want to provide a PR or should we close the issue since there's a work-around?

It's a good question.
There is a simple workaround which I used indeed. But before using it I had to make sure that there are no other consequences for using "external" URL. Only after I verified that it doesn't really matter using internal/external URL - then I felt sure enough working around.
But as for now I think that it doesn't worth the time. So I'll close it, thank you.


Access violation getting the stack trace

Hi All,
I was investigating recently a heap corruption situation, which would crash the app suddenly.
I was able to catch this with adplus, I can't share the dump but I can query things.
(1a58.2518): Access violation - code c0000005 (first/second chance not available)
mscordacwks!StackFrameIterator::CheckForSkippedFrames+0x7d:
00007ffd`71f95635 488b08          mov     rcx,qword ptr [rax] ds:00000000`00000000=????????????????
0:015> !clrstack
OS Thread Id: 0x2518 (15)
        Child SP               IP Call Site
00000000517ce108 00007ffd71f95635 [InlinedCallFrame:<PHONE_NUMBER>7ce108]
00000000517ce108 00007ffd06a01f89 [InlinedCallFrame:<PHONE_NUMBER>7ce108]
00000000517ce0e0 00007ffd06a01f89 DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr)
00000000517ce190 00007ffd13846f97 Microsoft.Diagnostics.Runtime.DacInterface.ClrStackWalk.Next()
00000000517ce1c0 00007ffd138446bb Microsoft.Diagnostics.Runtime.Desktop.DesktopRuntimeBase+d__82.MoveNext()
00000000517ce250 00007ffd13843e5c Microsoft.Diagnostics.Runtime.Desktop.DesktopThread.get_StackTrace()
...

I've tried also with application verifier active and Windbg attached as a debugger, after several access violations it finally broke with
VERIFIER STOP<PHONE_NUMBER>000010: pid 0x20D8: Corrupted start stamp for heap block.

<PHONE_NUMBER>301000 : Heap handle used in the call.
	00007FFD646F0800 : Heap block involved in the operation.
<PHONE_NUMBER>000000 : Size of the heap block.
<PHONE_NUMBER>000000 : Corrupted stamp value.

=======================================
This verifier stop is not continuable. Process will be terminated
when you use the `go' debugger command.

=======================================

(20d8.1460): Break instruction exception - code 80000003 (first chance)
ntdll!DbgBreakPoint:
00007ffd`9ae68ce0 cc              int     3
0:021> !clrstack
OS Thread Id: 0x1460 (21)
        Child SP               IP Call Site
000000005f2de258 00007ffd9ae68ce0 [InlinedCallFrame: 000000005f2de258]
000000005f2de258 00007ffd069d21b9 [InlinedCallFrame: 000000005f2de258]
000000005f2de230 00007ffd069d21b9 DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr)
000000005f2de2e0 00007ffd09d056ab Microsoft.Diagnostics.Runtime.Desktop.DesktopRuntimeBase.Flush()
...

Unfortunately this looks more like a runtime issue and not a clrmd issue.  There's nothing we can really do if the dac hits an access violation.  If this is a major problem for you I would recommend opening an issue in the .Net Core repo with repro steps so we can track it down.


Installing docker-compose to boot2docker

Was using boot2docker shell to install docker-compose cross-platformly to windows and mac with this command:
tce-load -wi python && curl https://bootstrap.pypa.io/get-pip.py  | sudo python - && sudo pip install -U docker-compose

After recent python.tcz repository update, can't install pip anymore. I'm using this command line
Getting this error
Traceback (most recent call last):
  File "<stdin>", line 17759, in <module>
  File "<stdin>", line 162, in main
  File "<stdin>", line 82, in bootstrap
  File "/tmp/tmpbuE2Di/pip.zip/pip/__init__.py", line 15, in <module>
  File "/tmp/tmpbuE2Di/pip.zip/pip/vcs/subversion.py", line 9, in <module>
  File "/tmp/tmpbuE2Di/pip.zip/pip/index.py", line 30, in <module>
  File "/tmp/tmpbuE2Di/pip.zip/pip/wheel.py", line 35, in <module>
  File "/tmp/tmpbuE2Di/pip.zip/pip/_vendor/distlib/scripts.py", line 14, in <module>
  File "/tmp/tmpbuE2Di/pip.zip/pip/_vendor/distlib/compat.py", line 31, in <module>
ImportError: cannot import name HTTPSHandler

Will appreciate for any help. Also would be good if you point me, where i can download old version of python.tcz
I've seen this changes in tcz repository changelog, so i think it is related.
python.tcz
Description:    Python programming language
Current:        2015/09/04 recompiled for updated openssl (juanito)
Uploaded on Sat Sep 05 10:37

####################################################

Hi @michbil, Just yesterday got the same error as you.
This is a probably a bug with recent Tiny Core repository latest updates (2 days ago it was working :))
Could anybody of the boot2docker team test this:

Launch new docker-machine
Run tce-load -w -i python.tcz gmp-dev.tcz python-dev.tcz compiletc.tcz
Run
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

You will get the ImportError: cannot import name HTTPSHandler
I was speaking with TinyCore maintainer in #tinycorelinux irc channel yesterday but he tells that this is problem of boot2docker.

I've asked TinyCore guys, they said that they don't offer any support TinyCore respins.
After that i've downloaded and installed vanilla tinycorex64 on VirtualBox. Install succeed.
So problem after recent changes only on boot2docker OS.

I don't use compose as much as i should, but I really do wonder why you'd install it into the vm.
I pretty much always reach for my svendowideit/compse image: https://hub.docker.com/r/svendowideit/compose/

@SvenDowideit this method was taken from http://stackoverflow.com/questions/29289785/how-to-install-docker-compose-on-windows and it worked quite well before recent changes.

@SvenDowideit , your solution with docker-compose is really smart (by mapping docker.sock as a volume inside the container), but what about the actual issue from @michbil ?
It's not about docker-compose in particular but some bug with installing pip on boot2docker. Do you know how this may be solved?

This is an issue for me and my colleagues as well.  Same symptoms.

It appears that python.tcz requires openssl.tcz, but that package conflicts with the already installed openssl-1.0.0.tcz because they both try to supply /usr/local/lib/libssl.so.1.0.0.
It might be worth rebuilding the ISO with the openssl-1.0.0 on this line changed to openssl: https://github.com/boot2docker/boot2docker/blob/eb5571f185ef46ccbb14b74ce969eff0327f8dfd/Dockerfile#L68

I had a chance to test out replacing openssl-1.0.0 in the build with openssl and it looks like it works fine.
Here's a list of executables that depend on libssl.so.1.0.0:
$ find 2>/dev/null / -xdev -perm -0111 -type f -print -exec ldd {} \; | grep -e ^/ -e libssl | grep -B1 libssl
/usr/local/bin/openssl
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f0cc58af000)
--
/usr/local/bin/curl
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f14d493c000)
--
/usr/local/lib/git-core/git-http-push
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f4bc9211000)
--
/usr/local/lib/git-core/git-imap-send
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f5a6b7a5000)
/usr/local/lib/git-core/git-http-fetch
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f5e944db000)
--
/usr/local/lib/git-core/git-remote-ftps
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007fe7900d3000)
/usr/local/lib/git-core/git-remote-http
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007ff9fd9f7000)
/usr/local/lib/git-core/git-remote-https
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007fa0b7aed000)
/usr/local/lib/git-core/git-remote-ftp
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f20f5c5e000)
--
/usr/local/lib/libcurl.so.4.3.0
	libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007ff15a53c000)
/usr/local/lib/libssl.so.1.0.0

Based on that list, I tested curl with an HTTPS URL, git with an https remote, and openssl req to make sure they actually worked.
I then ran @michbil's original command and it succeeded, finishing with this:
Successfully built docker-compose docopt PyYAML texttable websocket-client docker-py dockerpty
Installing collected packages: docopt, PyYAML, requests, texttable, six, websocket-client, docker-py, dockerpty, docker-compose
Successfully installed PyYAML-3.11 docker-compose-1.4.0 docker-py-1.3.1 dockerpty-0.3.4 docopt-0.6.2 requests-2.6.2 six-1.9.0 texttable-0.8.3 websocket-client-0.32.0

I've opened https://github.com/boot2docker/boot2docker/pull/1056 with the change.

Updated to 1.8.2, problem gone. Thank you @md5 for fast solution.

@michbil :+1:


Chapter 20 api metric script name differs from book in AWS

Chapter 20 has the command /opt/api-server-metrics.sh to execute the script. In the AWS Environment the file is named api-metrics.sh.

Thanks for the find! I've updated the examples so that either name works for now and we'll get it fixed in any future print copies. (If you have an existing environment, just re-run the Ansible playbook.yaml after pulling the latest code.)
If you're curious, the reason for the error is that I needed a shorter script name so the name would fit into the margin, but I forgot to fix the copy / pasted example 😖


reload page when current tab changed

Expected behaviour
I want to run a function when page focued and for that i am using navigation listener "focus" but with this tab-view listener these listeners doesnt trigger. how can i trigger a function or trigger listener when it is focused?
What have you tried
I tried lazy param but its only trigger tab first time. second or more renders doesnt work as it shold be.
Your Environment

software
version

ios or android
andoid

react-native
expo

react-native-tab-view
2.15.1

react-native-gesture-handler
1.6.0

react-native-reanimated
1.7.0

npm or yarn
npm

I'm trying to figure out a solution to this as well. Wanting to fetch data only when the tab comes into focus.

@mtalhagaoglu Just pass lazy to your react-native-tab-view component, and you can use useEffect as normal after that.

hi. thanks for you comment. i tried and it works but it works everytime it switches tab. for i example i have a,b and c tabs. whenever i navigate between tabs, 3 useEffects functions triggers at the same time.

Facing same issue. Want to trigger useEffect hook only for the currently focused tab. Any leads?

Facing same issue. Want to trigger useEffect hook only for the currently focused tab. Any leads?

any solution?

i ended with creating my own tab system (basicly switch case) . its easy actually you can do it also. i won't close the issue because it still exist in this lib


Update to font-awesome v6 (more icons)

Summary
Update to font-awesome v6 (more icons)
Context
I saw that in the past you've used kit.fontawesome.com (issue #2184) but then have reverted to the hard-coded version. Not sure if this should instead use the kit feature again, but in the mean time - updating to v6 allows using all the free icons documented on fontawesome's website. These are available on the linked CDN and @fortawesome.

Could you maybe implement it in a way the source is customizable? Loading fonts is not compatible with GDPR which makes the template unusable in all Europe.

Nice one @kangsterizer. I added your change to my custom head file and am finally able to display the fa-x-twitter icon.

I consider this one superseded by #3765

Closing, #3649 was merged which loads in the latest FA.


Issue/1951 service instance enum (#2117)

Pull request opened by the merge tool on behalf of #2117

Merged in 125fed14a261f3fb6e503490abdd2d7b5ca16dfe


feat(manifests): Update to v0.0.6

Need to merge this after https://github.com/dragonflydb/dragonfly-operator/actions/runs/5665178544/job/15349583967 completes!


zsh: bad math expression: operand expected at `%F{135}%n%...'

I guess it may caused by I ran "rm -rf ~yadr/vim/bundle/youcompleteme", because it happens after this. Can anyone help?
Thanks in advance!

I fixed it by running this comment in the parent folder of .yadr
git clone --recursive https://github.com/sorin-ionescu/prezto.git ".zprezto"


fixed dragon age origins failed to detect a supported video card

when i try and play dragon age origins with remix it gives me dragon age origins failed to detect a supported video card

and it gives me no log file i have tried all the different shader models
why would the game think its not supported is there a way to fix this
(( i fixed it move the bridge.conf into the .trex and set it to 3.0 or 2.0 what one works for you ))
then we just need to fix the next step haha

Do you mind explaining how?

Do you mind explaining how?

Drop the remix config file inside the remix folder then it runs and rip again lol

Okay, I don't have a remix folder as the instructions say to park the remix files next to the .exe files.  I have a .trex folder.

Okay, I don't have a remix folder as the instructions say to park the remix files next to the .exe files. I have a .trex folder. I also do not have a remix config file.

move the bridge.conf into the .trex  is what i am on about

I've the same issue, in my case it does leave a log (d3d9.log):

[21:41:59.098] info:  No default config found for: D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship\DAOrigins.exe
[21:41:59.098] info:  Trying to open config file: D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship.trex\bridge.conf
[21:41:59.098] info:  Found user config file: D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship.trex\bridge.conf
[21:41:59.098] info:  Effective configuration:
[21:41:59.098] info:    logLevel = Trace
[21:41:59.098] info:  Using shared heap for textures.
[21:41:59.099] info:  Using shared heap for static buffers.
[21:41:59.099] info:  Using shared heap for dynamic buffers.
[21:41:59.099] info:  ==================
[21:41:59.099] info:  NVIDIA RTX Remix Bridge Client
[21:41:59.099] info:  ==================
[21:41:59.099] info:  Version: remix-0.1.1-2-gdc825b6
[21:41:59.099] info:  Loaded d3d9.dll from D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship\DAOrigins.exe
[21:41:59.107] info:  DirectInput8 hook attached.
[21:41:59.113] info:  DirectInput hook attached.
[21:41:59.113] info:  Initializing new shared memory object.
[21:41:59.142] info:  Shared memory: [ClientChannel_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.142] info:  Initializing new shared memory object.
[21:41:59.152] info:  Shared memory: [ServerChannel_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.166] info:  Initializing new shared memory object.
[21:41:59.166] info:  Shared memory: [SharedDataHeap_meta_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.166] info:  Initializing new shared memory object.
[21:41:59.246] info:  Shared memory: [SharedDataHeap_data_0_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.247] info:  Initializing new shared memory object.
[21:41:59.331] info:  Shared memory: [SharedDataHeap_data_1_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:42:01.707] info:  Launching server with GUID 146d128d-bff1-4070-9675-b739eaeaa115
[21:42:01.710] info:  Sending SYN command, waiting for ACK from server...
[21:42:01.817] trace: Peek timeout while waiting for command: Ack.
[21:42:01.894] info:  Ack received! Handshake completed! Telling server to continue waiting for commands...
[21:42:01.894] info:  Server crash recovery enabled
[21:42:01.895] trace: Peek timeout while waiting for command: Unknown Command.

And after clicking 'OK':

[21:45:00.286] info:  About to unload bridge client.
[21:45:00.286] info:  Sending Terminate command to server...
[21:45:00.411] info:  Shutdown cleanup successful, exiting now!
[21:45:00.412] info:  DirectInput8 hook detached.
[21:45:00.412] info:  DirectInput hook detached.
[21:45:00.412] info:  [Uptime]: 181s

is this to do with video card thing as i have fixed that if you look at updated post

I've the same issue, in my case it does leave a log (d3d9.log):

[21:41:59.098] info:  No default config found for: D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship\DAOrigins.exe
[21:41:59.098] info:  Trying to open config file: D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship.trex\bridge.conf
[21:41:59.098] info:  Found user config file: D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship.trex\bridge.conf
[21:41:59.098] info:  Effective configuration:
[21:41:59.098] info:    logLevel = Trace
[21:41:59.098] info:  Using shared heap for textures.
[21:41:59.099] info:  Using shared heap for static buffers.
[21:41:59.099] info:  Using shared heap for dynamic buffers.
[21:41:59.099] info:  ==================
[21:41:59.099] info:  NVIDIA RTX Remix Bridge Client
[21:41:59.099] info:  ==================
[21:41:59.099] info:  Version: remix-0.1.1-2-gdc825b6
[21:41:59.099] info:  Loaded d3d9.dll from D:\Games\GOG Galaxy\Games\Dragon Age Origins\bin_ship\DAOrigins.exe
[21:41:59.107] info:  DirectInput8 hook attached.
[21:41:59.113] info:  DirectInput hook attached.
[21:41:59.113] info:  Initializing new shared memory object.
[21:41:59.142] info:  Shared memory: [ClientChannel_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.142] info:  Initializing new shared memory object.
[21:41:59.152] info:  Shared memory: [ServerChannel_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.166] info:  Initializing new shared memory object.
[21:41:59.166] info:  Shared memory: [SharedDataHeap_meta_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.166] info:  Initializing new shared memory object.
[21:41:59.246] info:  Shared memory: [SharedDataHeap_data_0_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:41:59.247] info:  Initializing new shared memory object.
[21:41:59.331] info:  Shared memory: [SharedDataHeap_data_1_146d128d-bff1-4070-9675-b739eaeaa115] created and initialized successfully!
[21:42:01.707] info:  Launching server with GUID 146d128d-bff1-4070-9675-b739eaeaa115
[21:42:01.710] info:  Sending SYN command, waiting for ACK from server...
[21:42:01.817] trace: Peek timeout while waiting for command: Ack.
[21:42:01.894] info:  Ack received! Handshake completed! Telling server to continue waiting for commands...
[21:42:01.894] info:  Server crash recovery enabled
[21:42:01.895] trace: Peek timeout while waiting for command: Unknown Command.

And after clicking 'OK':

[21:45:00.286] info:  About to unload bridge client.
[21:45:00.286] info:  Sending Terminate command to server...
[21:45:00.411] info:  Shutdown cleanup successful, exiting now!
[21:45:00.412] info:  DirectInput8 hook detached.
[21:45:00.412] info:  DirectInput hook detached.
[21:45:00.412] info:  [Uptime]: 181s

is this to do with video card thing as i have fixed that if you look at updated post


Setting model permission for a role using scripting

Hi,
I'm trying to create a new role using a script, setting the model permission for the role, and add a windows user. So far, I've been able to create the role, and add the user, but I haven't succeeded in setting the model permission. I've tried the following:
var newRole = Model.AddRole("Admin_");
newRole.ModelPermission = "Administrator";
newRole.AddWindowsMember("Admin");

I think the newRole.ModelPermission is the correct attribute, since the following
foreach(var role in Selected.Roles) {
    Output(role.ModelPermission);
}

returns the correct permission that I set manually.
How can I set this property? With other objects, setting a property is usually done the way I tried (object.Property = ).
Does an overview of possible attributes and how to set them, functions, etc. exist, apart from https://docs.microsoft.com/en-us/dotnet/api/microsoft.analysisservices.tabular.modelrole?view=analysisservices-dotnet?
Many thanks!
Best regards,
Eva

Hi Eva,
Try this:
var newRole = Model.AddRole("Admin_");
newRole.ModelPermission = ModelPermission.Administrator;
newRole.AddWindowsMember("Admin");

The ModelRole.ModelPermission property is an enum type.

Hi Daniel,
Thanks, that works like a charm! I didn't realise it was an enum type, I only found the first page you referenced, which doesn't make a note of it being an enum type.
Best,
Eva


Resource labels selector in resource definition doesn't work

Describe the bug

Steps to reproduce

Create a resource definition and add a resource labels selector as follows,

Create a resource using the resource type created in step 1.

Result

Returned failed to apply resource: resource definition does not match resource.

Expected behavior

Create resource successfully.
Environment

Walrus version: v0.4.0-rc1  a3e5c0343d3e831ca30e4fd76a160212bc5bba7f
UI version: dev-6b82ce8

Additional context
Add any other context about the problem here.

Environment

Walrus version: 4465aa8deb63ff1ceb270b6cbc1c5ae2852d8242
UI version: dev-d246b6d

Test Result: pass


mssing national aquifer

NWIS groundwater sites from https://www.sciencebase.gov/catalog/file/get/60c7b895d34e86b9389b2a6c?name=nwis_wells.geojson reference https://geoconnex.us/ref/nat_aq/N100AKUNCD which does not exist in the reference feature set

Is this a duplicate of #3 ?

Yep


Addapt Trustline's getRequests with cancelled requests

Mark getRequests as obsolete.
Add getAllRequests that does what getRequests do.
Add getPendingRequests that gives not cancelled requests.
Add getCancelledRequests that gives cancelled requests events.

I did not implement a function to get not cancelled update events as it requires quite a bit of processing of events that the clientlib should not do and it is not really useful. The important information one wants to get out of the clientlib would be a list of pending trustline updates and the getRequests() function was not providing this information.
See https://github.com/trustlines-protocol/clientlib/pull/285


Implement Split Transactions

See https://github.com/ledgerwatch/erigon/pull/2312

Just talked with @AlexeyAkhunov and Erigon's PR is closed.
(Maybe some bits will be implemented in the future).
Closing this tracking issue


Update setup.cfg

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.42%. Comparing base (941237c) to head (e7d29bd).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #678   +/-   ##
=======================================
  Coverage   93.42%   93.42%
=======================================
  Files          20       20
  Lines        2128     2128
=======================================
  Hits         1988     1988
  Misses        140      140

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Restic still ask for password when is set to .bashrc

Output of restic version
restic 0.9.6 compiled with go1.13.4 on linux/amd64
How did you run restic exactly?
restic -r backups/ snapshots

What backend/server/service did you use to store the repository?
I store the backups in local machine, in backups directory
Expected behavior
-----------------
restic -r backups/ snapshots
repository a59cec13 opened successfully, password is correct
ID        Time                 Host        Tags        Paths
-----------------------------------------------------------------------------------------------------
94b78cGh  2020-03-05 13:24:10  osw                     /var/www/standard
-----------------------------------------------------------------------------------------------------
1 snapshots

I want that restic reads the RESTIC_PASSWORD properly
I have set the RESTIC_PASSWORD in .bashrc file in order to let cron do backups automatly, but always ask for a password if I do not do RESTIC_PASSWORD=$RESTIC_PASSWORD
Actual behavior
Restic ask for a passwod
Steps to reproduce the behavior
Set restic password in .bashrc and then run source ~/.basrc and run restic -r /foo snapshots

Do you have any idea what may have caused this?
No
Do you have an idea how to solve the issue?
I have solved with this workaround export RESTIC_PASSWORD=$RESTIC && restic -r ....

I've just tried it out and it's working for me. Maybe you have a typo in your .bashrc?

@RafaelAybar You also need to export RESTIC_PASSWORD in your bashrc. Otherwise bash won't pass on the environment variable to restic.

I've just tried it out and it's working for me. Maybe you have a typo in your .bashrc?

No, but i need to export RESTIC_PASSWORD=$RESTIC_PASSWORD when I log out


[question] Combined continuous and discrete action space

I am currently using a continuous action space to solve a custom environment, but I would like to change it a bit and add one discrete variable on top of the continuous action space. My current action space is the following:
self.action_space = spaces.Box(low = -1, high = 1, shape = (self.n_actions,), dtype = np.float32)

My question is whether is it possible to do something like that or not and if yes how.

Related: #107 #133 #894
No, there is no support for Tuple/Dict action spaces (which is a combination of the other action spaces). You need to apply bit of trickery to represent your discrete action as a continuous action, but there is no guarantee that this will work out well. We have had some discussion about adding this to stable-baselines3 after the initial release.


Implement Video Modal, Landing Page Image, 404 page, Copy Link in Cryptobot single

What does this PR do?
Implements Video Modal, Landing Page Image, 404 page, Copy Link in Cryptobot single, Sharable Link in '\transaction' & '\claim-transaction'

@bhaskarSingh  please review this PR.


Add features package

This PR creates the features package and the necessary plumbing for flags to be enabled at the command line and in the configuration file.

Looking at how this is currently written, how one might consume it, and based on the design proposal, I think it might make more sense to do an API like this within the features package:

var flags sets.String{}

func Enabled(name string) bool {
  flags.Has(name)
}

func Enable(names ...string) {
  flags.Insert(names....)
}

func All() []string {
  return flags.List()
}

This then skips requiring initializing our own flag set struct, and callers can simply use features.Enable("myfeature") and features.Enabled("myfeature").
I can simplify the enabling code by just doing features.Enable(config.Features()...) and features.Enable(cmdFeatures...).
What do others think of that?

I'm asking about this slightly different design because passing around a flag set on the client's factory seems a bit unwieldy for something that should be accessible ~anywhere in the code base easily.
I guess the last question I would have is if we're terribly concerned with concurrent access to the flag list, but I'm assuming that is something we don't have to address until later.

@skriss @prydonius Curious about your thoughts on this approach before I proceed further.

because passing around a flag set on the client's factory seems a bit unwieldy for something that should be accessible ~anywhere in the code base easily.

I would agree, seems like a global here would be a lot easier. As far as concurrent access, seems like we'll only need to set the flags once at the start of the server, so not sure that we really need the mutexes?

I believe I've addressed all the feedback now. Mutexes were removed since I don't think they provided much value.
I'm thinking it may be useful to add feature information to the ServerStatusRequest struct so that the client may request them along with the server's version; what do others think? If that's acceptable, I think I'd rather open a new issue/PR to add it versus continuing with this PR.

I'm thinking it may be useful to add feature information to the ServerStatusRequest struct so that the client may request them along with the server's version; what do others think? If that's acceptable, I think I'd rather open a new issue/PR to add it versus continuing with this PR.

It does seem useful though the only CLI command that exposes the ServerStatusRequest right now is velero version, which wouldn't really make sense for displaying this information. #1094 would probably be the more sensible path.

The velero plugins get command uses it, too, but I agree, it's not quite a good fit for velero version. That's part of the reason I'd like to move that to a different issue.

The velero plugins get command uses it, too, but I agree, it's not quite a good fit for velero version. That's part of the reason I'd like to move that to a different issue.

Yep - makes sense to me.

Yeah, I've tested this with backup commands using the CLI option, CLI option + config file, and both. I've also done the same with the server command. I can see the feature getting passed down to plugins too.
There's one thing that may be an issue - now that we have the root velero command reading in the config, it can be used by velero server. This could lead to a feature being read in unintentionally during local development, though the file won't be present on actual server installs.
It could also be a local development convenience, so I'm unsure if I want to add any sort of conditional loading logic.

There's one thing that may be an issue - now that we have the root velero command reading in the config, it can be used by velero server. This could lead to a feature being read in unintentionally during local development, though the file won't be present on actual server installs.

I'm not too worried about this atm, guessing it'll be pretty obvious if that's happening.
Ready to merge once adnan's comment is addressed!


clangparser: add support for parents

clangparser: add support for parents
TODO: Check the assumption that a "base" always has a Type that can be cast to
RecordType.
TODO: Check the assumption that a "base" always has a Decl that can be cast to
CXXRecordDecl.
Add basic support for class parents. Focus purely on bases for now and ignore
vbases.
Test Plan:

Tested with a simple example. Base containing a long and a class containing a
float. Both fields appear in the final flattened code.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (beb404e) 44.63% compared to head (460799b) 44.63%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #444   +/-   ##
=======================================
  Coverage   44.63%   44.63%
=======================================
  Files         121      121
  Lines       11905    11905
  Branches     1947     1947
=======================================
  Hits         5314     5314
  Misses       5738     5738
  Partials      853      853

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat(@angular/cli): add in-browser development error overlay

Implements the feature described in #3502 by leveraging the new capability in webpack-dev-server 2.3.0.
Closes #3502

Please rebase, I'm willing to consider it.

Done.

Looks like this, for reference:

I'd like to be able to configure this off. Webpack is giving me warnings about missing classes that are not missing. The app runs fine. However, the overlay warning now means I can't use my app. Until now the warnings just appeared in the developer tools console.
I don't know what's causing these wrong Webpack warnings. I'd rather just live with them than spend a lot of time on it when an update is bound to eventually fix the problem.

Unfortunately updating angular-cli didn't fix the problem. It did however start displaying these incorrect warnings as an overlay on the page so you can't use the app.
To turn off this new overlay, you need to change line 140 of<EMAIL_ADDRESS>from
      overlay: serveTaskOptions.target === 'development'

to
      overlay: false // serveTaskOptions.target === 'development'


Upcoming items

[x] [OpenMM] Test multiple restraints
[x] [AMBER] Test AMBER simulations
[x] [AMBER] Add positional restraints
[ ] [OpenMM] Add positional restraints
[x] [OpenMM] Report restraint energy and restraint values
[x] Analysis module

Completed restraint energy, need to return restraint values.

Is calling
        state = result.context.getState(getEnergy=True)
        energy = state.getPotentialEnergy() / unit.kilocalories_per_mole

the most efficient way to keep track of the restraints? It seems like this could be slow if we want to do it every timestep.

This is now outdated.


It is possible to adjust the style of the chromecast subtitles (CC) based on the subtitle(CC) menu of videojs.

Hello, as the title says It is possible to adjust the style of the chromecast subtitles (CC) based on the subtitle(CC) menu of videojs seen in some applications of android that allows to adjust the design of the subitutles but I do not know if that function could be added.
I leave an example of HLS video with subtitles in case someone tries it.
https://codepen.io/raestrada/pen/rbZqQG
Thanks for taking the time.

It appears that you may be able to: https://developers.google.com/cast/docs/chrome_sender/advanced


Execution fails with other user than pi

Hi! I am trying to run MagicMirror with other user than pi or the superuser created on the first configuration of a Raspbian SD (as for the new releases the default user pi does not exist).
Steps to reproduce

Clone MagicMirror and install it.git clone --branch v2.18.0 https://github.com/MichMich/MagicMirror magicmirror
cd magicmirror
npm install --only=prod --omit=dev
npm audit fix
cd ..

Create user and group. Btw I have also tried the --system option for the adduser command.$ addgroup magicmirror
$ adduser --home $(realpath magicmirror) --no-create-home \
    --disabled-password --shell /bin/bash --ingroup magicmirror \
    --gecos "MagicMirror user" magicmirror

Set ownership of magicmirror to magicmirror user.sudo chown -R magicmirror:magicmirror magicmirror/

Log into the user with sudo su - magicmirror (it has no password set).
Set sample config with cp config/config.js.sample config/config.js.
Execute npm run start.

With this, I expect a normal execution of the MagicMirror.
Actual results
Console output:
magicmirror@raspberry:~$ npm run start

><EMAIL_ADDRESS>start
> DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js

[19.07.2022 11:35.59.810] [LOG]   Starting MagicMirror: v2.18.0
[19.07.2022 11:35.59.818] [LOG]   Loading config ...
[19.07.2022 11:35.59.824] [LOG]   Loading module helpers ...
[19.07.2022 11:35.59.828] [LOG]   No helper found for module: alert.
[19.07.2022 11:35.59.846] [LOG]   Initializing new module helper ...
[19.07.2022 11:35.59.849] [LOG]   Module helper loaded: updatenotification
[19.07.2022 11:35.59.851] [LOG]   No helper found for module: clock.
[19.07.2022 11:36.00.004] [LOG]   Initializing new module helper ...
[19.07.2022 11:36.00.006] [LOG]   Module helper loaded: calendar
[19.07.2022 11:36.00.009] [LOG]   No helper found for module: compliments.
[19.07.2022 11:36.00.012] [LOG]   No helper found for module: weather.
[19.07.2022 11:36.00.038] [LOG]   Initializing new module helper ...
[19.07.2022 11:36.00.040] [LOG]   Module helper loaded: newsfeed
[19.07.2022 11:36.00.042] [LOG]   All module helpers loaded.
[19.07.2022 11:36.00.145] [LOG]   Starting server on port 8080 ...
[19.07.2022 11:36.00.161] [LOG]   Server started ...
[19.07.2022 11:36.00.162] [LOG]   Connecting socket for: updatenotification
[19.07.2022 11:36.00.164] [LOG]   Starting module helper: updatenotification
[19.07.2022 11:36.00.164] [LOG]   Connecting socket for: calendar
[19.07.2022 11:36.00.166] [LOG]   Starting node helper for: calendar
[19.07.2022 11:36.00.167] [LOG]   Connecting socket for: newsfeed
[19.07.2022 11:36.00.168] [LOG]   Starting node helper for: newsfeed
[19.07.2022 11:36.00.169] [LOG]   Sockets connected & modules started ...
No protocol specified
/home/pi/magicmirror/node_modules/electron/dist/electron exited with signal SIGTRAP
npm ERR! code 1
npm ERR! path /home/pi/magicmirror
npm ERR! command failed
npm ERR! command sh -c DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/magicmirror/.npm/_logs/2022-07-19T09_36_00_248Z-debug.log
magicmirror@raspberry:~$

And the log:
0 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'start' ]
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing config:load:defaults Completed in 6ms
4 timing config:load:file:/usr/share/nodejs/npm/npmrc Completed in 15ms
5 timing config:load:builtin Completed in 16ms
6 timing config:load:cli Completed in 6ms
7 timing config:load:env Completed in 1ms
8 timing config:load:project Completed in 2ms
9 timing config:load:file:/home/pi/magicmirror/.npmrc Completed in 1ms
10 timing config:load:user Completed in 1ms
11 timing config:load:file:/etc/npmrc Completed in 0ms
12 timing config:load:global Completed in 1ms
13 timing config:load:cafile Completed in 1ms
14 timing config:load:validate Completed in 1ms
15 timing config:load:setUserAgent Completed in 3ms
16 timing config:load:setEnvs Completed in 4ms
17 timing config:load Completed in 43ms
18 verbose npm-session 5308ddf2bb99a241
19 timing npm:load Completed in 82ms
20 timing command:run-script Completed in 1615ms
21 verbose stack Error: command failed
21 verbose stack     at ChildProcess.<anonymous> (/usr/share/nodejs/@npmcli/promise-spawn/index.js:64:27)
21 verbose stack     at ChildProcess.emit (events.js:314:20)
21 verbose stack     at maybeClose (internal/child_process.js:1022:16)
21 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)
22 verbose pkgid<EMAIL_ADDRESS>23 verbose cwd /home/pi/magicmirror
24 verbose Linux 5.15.32-v7l+
25 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "start"
26 verbose node v12.22.12
27 verbose npm  v7.5.2
28 error code 1
29 error path /home/pi/magicmirror
30 error command failed
31 error command sh -c DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
32 verbose exit 1

Additional information
The error ChildProcess does not help me much tough. I thought it could be a 'privilege' problem, so I tried giving sudo privileges to magicmirror user and disabling the password, just as the pi user, with no luck. Maybe the problem is related to the line No protocol specified?
Also, I know I am using older versions of npm and MagicMirror, because I am using the repository version of npm (12.22.5 as you can see in the log). But the thing is that this works. If I execute npm run start with the pi user, without changing the ownership of the files, it works perfectly!
P.S. I need that user for my project, so "just run it as pi" will not work for me :(

well, first, I would wait til I created the user before doing the git clone (which needs to be under their permission level)
never run audit fix... causes more problems than it solves..
the real issue is
23 verbose cwd /home/pi/magicmirror
somewhere there is a hard coded /home/pi
but this is 2 releases back (2.18) ... 2.20 is current
will look some more.

I have tested with the latest raspios full, creating the user first (on 1st boot), all works as expected

But you are creating the user when configuring Raspbian for the first time right? Like you say, first boot. I need to create a second user, which will be the one running MagicMirror. I don't know the exact difference in privileges between the two users, I mentioned giving sudo privileges does not work...
I am running this on a Raspberry Pi 4 following the tutorials, with graphical desktop. A normal installation I guess, except the new user part. I will try with the new version 2.20, but I suspect this is not a upgrade problem, but a privileges one. I will keep you updated! And thanks for the fast answer :)

It does not run on 2.20, but it outputed a different error. I will leave the steps to reproduce and the output. Also, it still works with the pi user (magicmirror ownership).
pi@magicmirror:~$ sudo deluser --remove-home magicmirror
pi@magicmirror:~$ git clone --branch v2.20.0 https://github.com/MichMich/MagicMirror magicmirror
pi@magicmirror:~$ sudo addgroup magicmirror
pi@magicmirror:~$ sudo adduser --home $(realpath magicmirror) --no-create-home --disabled-password --shell /bin/bash --ingroup magicmirror --gecos "MagicMirror user" magicmirror
pi@magicmirror:~$ sudo chown -R magicmirror:magicmirror magicmirror/
pi@magicmirror:~$ sudo su - magicmirror

magicmirror@magicmirror:~$ npm install --only=prod --omit=dev
magicmirror@magicmirror:~$ npm run start

><EMAIL_ADDRESS>start
> DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js

[20.07.2022 12:37.51.969] [LOG]   Starting MagicMirror: v2.20.0
[20.07.2022 12:37.51.977] [LOG]   Loading config ...
[20.07.2022 12:37.51.983] [LOG]   Loading module helpers ...
[20.07.2022 12:37.51.986] [LOG]   No helper found for module: alert.
[20.07.2022 12:37.52.002] [LOG]   Initializing new module helper ...
[20.07.2022 12:37.52.003] [LOG]   Module helper loaded: updatenotification
[20.07.2022 12:37.52.005] [LOG]   No helper found for module: clock.
[20.07.2022 12:37.52.202] [LOG]   Initializing new module helper ...
[20.07.2022 12:37.52.204] [LOG]   Module helper loaded: calendar
[20.07.2022 12:37.52.205] [LOG]   No helper found for module: compliments.
[20.07.2022 12:37.52.206] [LOG]   No helper found for module: weather.
[20.07.2022 12:37.52.228] [LOG]   Initializing new module helper ...
[20.07.2022 12:37.52.228] [LOG]   Module helper loaded: newsfeed
[20.07.2022 12:37.52.229] [LOG]   All module helpers loaded.
[20.07.2022 12:37.52.343] [LOG]   Starting server on port 8080 ...
[20.07.2022 12:37.52.358] [LOG]   Server started ...
[20.07.2022 12:37.52.359] [LOG]   Connecting socket for: updatenotification
[20.07.2022 12:37.52.360] [LOG]   Starting module helper: updatenotification
[20.07.2022 12:37.52.360] [LOG]   Connecting socket for: calendar
[20.07.2022 12:37.52.361] [LOG]   Starting node helper for: calendar
[20.07.2022 12:37.52.362] [LOG]   Connecting socket for: newsfeed
[20.07.2022 12:37.52.362] [LOG]   Starting node helper for: newsfeed
[20.07.2022 12:37.52.363] [LOG]   Sockets connected & modules started ...
No protocol specified
[21242:0720/123752.368153:ERROR:ozone_platform_x11.cc(248)] Missing X server or $DISPLAY
[21242:0720/123752.368268:ERROR:env.cc(226)] The platform failed to initialize.  Exiting.
/home/pi/magicmirror/node_modules/electron/dist/electron exited with signal SIGSEGV

0 verbose cli /usr/bin/node /usr/bin/npm
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 4ms
5 timing config:load:file:/usr/lib/node_modules/npm/npmrc Completed in 2ms
6 timing config:load:builtin Completed in 2ms
7 timing config:load:cli Completed in 4ms
8 timing config:load:env Completed in 0ms
9 timing config:load:project Completed in 9ms
10 timing config:load:file:/home/pi/magicmirror/.npmrc Completed in 0ms
11 timing config:load:user Completed in 0ms
12 timing config:load:file:/usr/etc/npmrc Completed in 0ms
13 timing config:load:global Completed in 1ms
14 timing config:load:validate Completed in 0ms
15 timing config:load:credentials Completed in 3ms
16 timing config:load:setEnvs Completed in 2ms
17 timing config:load Completed in 29ms
18 timing npm:load:configload Completed in 31ms
19 timing npm:load:mkdirpcache Completed in 2ms
20 timing npm:load:mkdirplogs Completed in 1ms
21 verbose title npm run start
22 verbose argv "run" "start"
23 timing npm:load:setTitle Completed in 3ms
24 timing config:load:flatten Completed in 8ms
25 timing npm:load:display Completed in 14ms
26 verbose logfile logs-max:10 dir:/home/pi/magicmirror/.npm/_logs
27 verbose logfile /home/pi/magicmirror/.npm/_logs/2022-07-20T10_37_50_373Z-debug-0.log
28 timing npm:load:logFile Completed in 13ms
29 timing npm:load:timers Completed in 1ms
30 timing npm:load:configScope Completed in 0ms
31 timing npm:load Completed in 66ms
32 silly logfile done cleaning log files
33 timing command:run Completed in 1976ms
34 verbose exit 1
35 timing npm Completed in 2063ms
36 verbose code 1

sorry  still one question..  what is wrong with the userid created at raspi boot time?


Add rwxrob to list.

rwxrob streams infosec content and ethical hacking content. His in-depth understanding of software engineering, systems engineering and the industry as a whole is very beneficial and could help learners around the world.

#104


I have created an web app to track Corona virus primarily for India

It can be accessed from this link: https://corona-tracker-2020.netlify.com/ and source code of that project is available here: https://github.com/akashrajum7/corona-tracker.
I would love for it to be added to the list.
Thank you.

@akashrajum7 Read the contribution guidelines please.

@soroushchehresa I have created a pull request, thank you.


cannot add user xxx to group "Administrators"

i use "userdata " to create a new user ,the user name is same of  the desktopname.  at  the same time add user to group "Administratos",but the result is the new user is created but not add to group "Administratos";I use the same way create a  new user ,the name of new user is not same of desktopname ,,the user group will be worked. why ?

sudo usermod -aG Administrators xxx