Prevent unnecessary scrolling to bottom while streaming a response

When Prompta is streaming a long response, it is currently necessary to wait until the whole response has been streamed before one can begin reading from the top as, despite manually scrolling to the top, the client repeatedly scrolls back down to the bottom with each additional piece of response added.
This is not a show-stopper at all, but it is mildly frustrating as one has to wait until the response is finished before one can start reading (and knowing that one's reading speed is much slower than the speed at which the response is being written, this shouldn't be a problem.
Please arrange that, once the user has manually scrolled up from the bottom, the client will not reset the scroll position as the response is being streamed. This behaviour would be consistent with e.g. Mac OS Terminal.

Must be a bug. I added this when first creating prompta but haven't revisited in a while. it also never worked very well (at all?) on mobile safari if I remember correctly. The code in question uses this function: https://github.com/iansinnott/prompta/blob/59a7982c3b7fa376a45a18115fd780eb3c2da12a/src/lib/components/ChatMessageList.svelte#L18

Sorry, should have made clear I'm experiencing this on iOS PWA.

There's definitely a bug. Seeing jumps up and down when code is written.

@jacksongoode what platform / os are you on?

macOS 14

reproducible on Fennec:
128.0.3 (Build #1280320), hg-38b9888273f8+
GV: 128.0.3-20240728213019
AS: 128.0.1


Add hints to some exercises

@abo64 added this issue to the Scala track, which I thought was a brilliant plan. I'm just gonna literally copy-and-paste that issue's text:

Most exercises have their own favorable solutions and characteristic pitfalls.
To give people some guidance and avoid writing repetitive or similar code comments again and again
we should add a HINTS.md file to any exercise where it makes sense.

Especially the first couple of exercises should have such a file to assist beginners.
Another case is exercises dealing with special features of the language like option or async.

We should make a list of exercises for which some hints can be added. Of course, the first exercises should be more hint-heavy than the latter, although even for advanced exercises hints can be very useful. One example of this are the text parsing exercises, where we could guide people to using Sprache.

RESERVED: will contain the list of exercises to add hints to

Hi @ErikSchierboom, I would like to work on this ticket. As I understood correctly, we just need to create for each of the above exercises HINTS. md files, right?

Correct! You can check some of the existing Hints.md files to see how they are structured. It is probably best to send one PR per Hints.md file. If you have any questions, just ask.

@ErikSchierboom Sounds Good!

Thanks for pulling this together @ErikSchierboom!

Hi @ErikSchierboom, is it something what you are looking for:
https://github.com/GalaDe/gklikh-hmwk2/blob/master/Hints.md

@GalaDe Yeah, that's what I mean! I have two small nits.

Perhaps rephrase "This exercise requires you to perform operation with collection of data." a little bit, e.g. to "This exercise requires you to process a collection of data."
A space is missing between "LINQ" and "(Language Integrated Query)"

Other than that, this is great! You could add this hint to both the difference-of-squares and sum-of-multiples docs and send it as a PR. By the way, the accumulate exercise also had the LINQ hint listed, but that should actually be a link to a page about extension methods.

@ErikSchierboom, you want me to use this link instead the link which was used in my example:
https://msdn.microsoft.com/en-us//library/bb383977.aspx

@GalaDe Just for accumulate please.

@ErikSchierboom Ok, most of them will be done today. I will upload them to the right repository this time:)

@GalaDe I was also thinking of picking some of these up - which ones are candidates for me to work on (if any?)  Not sure if you have done all of them or just a subset.

@ErikSchierboom, all of them are completed:
accumulate (extension method docs)
allergies (bitwise operations)
alphametics (hint to non brute-force algorithm (see example); link to Sprache text parsing library
bank-account (link to how to deal with concurrency)
beer-song (hint to not encoding the structure (see example)
clock (link to IEquatable docs)
custom-set (link to IEquatable docs)
difference-of-squares (link to LINQ docs)
diffie-hellman (link to BigInteger docs)
food-chain (hint to not encoding the structure (see example)
forth (link to Sprache text parsing library)
hangman (link to events docs)
sgf-parsing (link to Sprache text parsing library)
simple-linked-list (link to IEnumerable docs)
sublist (link to IComparable docs)
sum-of-multiples (LINQ docs)
twelve-days (hint to non encoding the structure (see example)
variable-length-quantity (link to bitwise operators)
wordy (link to Sprache text parsing library)

@ErikSchierboom pull request created. By the way, why I can't mark checkboxes with the complete exercises in your post?

@GalaDe You can't check the checkboxes as you are not a maintainer of this repository, hence you don't have the rights.

Here is the list which has to be done:
list-ops (link to Func docs)
nth-prime (link to lazy sequences (see example)
nucleotide-count (link to IDictionary<TKey, TValue> documentation)
palindrome-products (link to tuple documentation)
proverb (hint to non encoding the structure (see example)
saddle-points (link to tuple documentation)
word-search (link to tuple documentation)
zebra-puzzle (link to how to use lazy sequences, to improve performance)
zipper (link to how to deal with custom equality)
Unfortunately, I will not be able to complete them until March 28th.  @jmbradnan, do you wanna work on them?

@GalaDe I've updated the list and added "(in progress)" for the HINTS you have submitted in your PR. Once that PR is merged, I'll check them in the list. Thanks for the great work!

yes I will take a look at these.

I am using other examples to hopefully get the formatting right, if there is a guideline for how to mark up the text for proper rendering let me know.

It looks like the hint for the proverb exercise is for the beer-song exercise.   I checked the HINTS file in the xfsharp/exercizes and it also contains the beer-song hint, is this an error?    Doesn't seem like it is the right hint for that exercise

@jmbradnan No that is not an error, the hints are actually the same, as the exercises are very similar.

Hi @ErikSchierboom! I'm back:) Do you still need help with this ticket?

I'd love some help 😀

Hey folks, getting back online after spring break, I think the ones that still remain are:
list-ops (link to Func docs)
nucleotide-count (link to IDictionary<TKey, TValue> documentation)
palindrome-products (link to tuple documentation)
saddle-points (link to tuple documentation)
zebra-puzzle (link to how to use lazy sequences, to improve performance)
zipper (link to how to deal with custom equality)
Does that look right?   Happy to help as well.

@jmbradnan sounds good. Perhaps you and @GalaDe can divide them amongst yourselves?

sounds good to me @ErikSchierboom     @GalaDe I am going to look at list-ops problem next.

scratch that, it looks like list-ops already has a HINTS.md file.   All of the others I list above do need HINTS, so I will look at next one in list ->nucleotide-count

btw, @ErikSchierboom there is a small typo in the HINTS for list-ops, I am going to just fix this and submit

Hi @jmbradnan, I will work on these three today:
word-search (link to tuple documentation)
zebra-puzzle (link to how to use lazy sequences, to improve performance)
zipper (link to how to deal with custom equality)

Hi @ErikSchierboom, could you please mark nucleotide-count exercise and word-search as completed.

@GalaDe Sure, forgot about that. I've just updated the list.

@ErikSchierboom, Thank you!

ok @GalaDe, I think that means these remain:
palindrome-products (link to tuple documentation)
saddle-points (link to tuple documentation)
will take a look later today.

@jmbradnan If you haven't started working on the house and saddle-points hints I can take them.

@GalaDe yes please do - school just starting for me so busy for next few days.

@jmbradnan Sounds good! Good luck with school!

@ErikSchierboom, I guess we can close this ticket:)

With huge thanks to @jmbradnan and @GalaDe, this issue can now be closed! Thanks a lot!

Ehyyyyy!!!!!


test runner process ran out of memory

Summary
I found the way I implemented a string concatenation function causes stryker to run out of memory.
function causing the problem:
function printBoard( board) {
	console.log('\n' +
	' ' + board[1] + ' | ' + board[2] + ' | ' + board[3] + '\n' +
	' ---------\n' +
	' ' + board[4] + ' | ' + board[5] + ' | ' + board[6] + '\n' +
	' ---------\n' +
	' ' + board[7] + ' | ' + board[8] + ' | ' + board[9] + '\n');
}

error produced:
$ stryker run
15:23:20 (112662) INFO ConfigReader Using stryker.conf.json
15:23:20 (112662) INFO InputFileResolver Found 1 of 13 file(s) to be mutated.
15:23:23 (112662) INFO Instrumenter Instrumented 1 source file(s) with 134 mutant(s)
15:23:23 (112662) INFO ConcurrencyTokenProvider Creating 4 test runner process(es).
15:23:23 (112662) INFO DryRunExecutor Starting initial test run. This may take a while.
15:27:10 (112662) WARN ChildProcessProxy Child process [pid 112682] ran out of memory. Stdout and stderr are logged on debug level.
15:27:10 (112662) INFO RetryDecorator Test runner process [112682] ran out of memory. You probably have a memory leak in your tests. Don't worry, Stryker will restart the process, but you might want to investigate this later, because this decreases performance.
15:30:26 (112662) WARN ChildProcessProxy Child process [pid 112891] ran out of memory. Stdout and stderr are logged on debug level.
15:30:26 (112662) INFO RetryDecorator Test runner process [112891] ran out of memory. You probably have a memory leak in your tests. Don't worry, Stryker will restart the process, but you might want to investigate this later, because this decreases performance.
15:30:27 (112662) ERROR DryRunExecutor One or more tests resulted in an error:
Test runner crashed. Tried twice to restart it without any luck. Last time the error message was: Error: Process
Error: Process
at ChildProcessProxy.handleUnexpectedExit (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/child-proxy/child-process-proxy.js:27:37)
at ChildProcess.emit (events.js:209:13)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
15:30:27 (112662) ERROR Stryker Error: Something went wrong in the initial test run
at DryRunExecutor.validateResultCompleted (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:64:15)
at DryRunExecutor.timeDryRun (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:72:14)
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async DryRunExecutor.execute (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:37:42)
at async Stryker.runMutationTest (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/stryker.js:36:53)
15:30:27 (112662) INFO Stryker Trouble figuring out what went wrong? Try `npx stryker run --fileLogLevel trace --logLevel debug` to get some more info.
error Command failed with exit code 1.

changing the function to this fixes the problem:
function printBoard( board) {
	console.log(['\n' ,
	' ' , board[1] , ' | ' , board[2] , ' | ' , board[3] , '\n' ,
	' ---------\n' ,
	' ' , board[4] , ' | ' , board[5] , ' | ' , board[6] , '\n' ,
	' ---------\n' ,
	' ' , board[7] , ' | ' , board[8] , ' | ' , board[9] , '\n'].join(''));
}

but since it is undesirable to have to do those kinds of refactorings I wanted to file a bug report.
Stryker config

{
  "$schema"<EMAIL_ADDRESS>  "packageManager": "yarn",
  "mutate": [
    "src/**/*.js",
    "!src/index.js"
  ],
  "reporters": [
    "clear-text",
    "progress"
  ],
  "testRunner": "jest",
  "coverageAnalysis": "off"
}

Test runner config

default
Stryker environment

"@stryker-mutator/core": "^4.1.2",
"@stryker-mutator/jest-runner": "^4.1.2",
"jest": "^26.6.3"

Test runner environment

# Test command
stryker run

Your Environment

software
version(s)

node
v12.9.1

npm
6.14.8

Operating System
Arch linux

Add stryker.log
11:14:42 (292912) INFO ConfigReader Using stryker.conf.json
11:14:42 (292912) DEBUG BroadcastReporter Broadcasting to reporters ["clear-text","progress"]
11:14:42 (292912) DEBUG ConfigReader Loading config /home/jo/uibk/sq/stryker.conf.json
11:14:42 (292912) DEBUG ConfigReader Loaded config: {
  "$schema"<EMAIL_ADDRESS>  "packageManager": "yarn",
  "mutate": [
    "src/**/*.js",
    "!src/index.js"
  ],
  "reporters": [
    "clear-text",
    "progress"
  ],
  "testRunner": "jest",
  "coverageAnalysis": "off",
  "allowConsoleColors": true,
  "checkers": [],
  "maxTestRunnerReuse": 0,
  "commandRunner": {
    "command": "npm test"
  },
  "clearTextReporter": {
    "allowColor": true,
    "logTests": true,
    "maxTestsToLog": 3
  },
  "dashboard": {
    "baseUrl": "https://dashboard.stryker-mutator.io/api/reports",
    "reportType": "full"
  },
  "eventReporter": {
    "baseDir": "reports/mutation/events"
  },
  "fileLogLevel": "trace",
  "logLevel": "info",
  "maxConcurrentTestRunners":<PHONE_NUMBER>740991,
  "mutator": {
    "plugins": null,
    "excludedMutations": []
  },
  "plugins": [
    "@stryker-mutator/*"
  ],
  "appendPlugins": [],
  "disableTypeChecks": "{test,src,lib}/**/*.{js,ts,jsx,tsx,html,vue}",
  "symlinkNodeModules": true,
  "tempDirName": ".stryker-tmp",
  "cleanTempDir": true,
  "thresholds": {
    "high": 80,
    "low": 60,
    "break": null
  },
  "timeoutFactor": 1.5,
  "timeoutMS": 5000,
  "tsconfigFile": "tsconfig.json",
  "warnings": true,
  "configFile": "/home/jo/uibk/sq/stryker.conf.json"
}
11:14:42 (292912) DEBUG PluginLoader Loading @stryker-mutator/* from /home/jo/uibk/sq/node_modules/@stryker-mutator
11:14:42 (292912) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter" (matched with expression @stryker-mutator/*)
11:14:42 (292912) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner" (matched with expression @stryker-mutator/*)
11:14:42 (292912) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter
11:14:42 (292912) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner
11:14:42 (292912) DEBUG PluginLoader Loading plugins<EMAIL_ADDRESS>11:14:42 (292912) DEBUG buildSchemaWithPluginContributions Contributing 1 schemas from plugins to options validation.
11:14:42 (292912) INFO InputFileResolver Found 1 of 14 file(s) to be mutated.
11:14:42 (292912) DEBUG InputFileResolver All input files: [
  "/home/jo/uibk/sq/.gitignore",
  "/home/jo/uibk/sq/ASQ_ExamProjectDescription.pdf",
  "/home/jo/uibk/sq/Perceived+Usefulness_+Perceived+Ease+of+Use_+and+User+Acceptance+of+Information+Technology.pdf",
  "/home/jo/uibk/sq/__test__/ttt.test.js",
  "/home/jo/uibk/sq/package.json",
  "/home/jo/uibk/sq/seminar_report/img/uni-innsbruck.pdf",
  "/home/jo/uibk/sq/seminar_report/img/uni-watermark.pdf",
  "/home/jo/uibk/sq/seminar_report/references.bib",
  "/home/jo/uibk/sq/seminar_report/seminarpaper.tex",
  "/home/jo/uibk/sq/seminar_report/titlepage.tex",
  "/home/jo/uibk/sq/src/index.js",
  "/home/jo/uibk/sq/src/ttt.js",
  "/home/jo/uibk/sq/stryker.conf.json",
  "/home/jo/uibk/sq/yarn.lock"
]
11:14:42 (292912) DEBUG InputFileResolver Files to mutate: [
  "/home/jo/uibk/sq/src/ttt.js"
]
11:14:42 (292912) DEBUG TemporaryDirectory Using temp directory "/home/jo/uibk/sq/.stryker-tmp"
11:14:42 (292912) DEBUG Instrumenter Instrumenting 1 source files with mutants
11:14:45 (292912) DEBUG Instrumenter Instrumented src/ttt.js (134 mutant(s))
11:14:45 (292912) INFO Instrumenter Instrumented 1 source file(s) with 134 mutant(s)
11:14:45 (292912) INFO ConcurrencyTokenProvider Creating 4 test runner process(es).
11:14:45 (292912) DEBUG Sandbox Creating a sandbox for files in /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292912) DEBUG ChildProcessProxy Starting<EMAIL_ADDRESS>in child process 292934
11:14:45 (292912) DEBUG ChildProcessProxy Starting<EMAIL_ADDRESS>in child process 292941
11:14:45 (292941) DEBUG ChildProcessProxyWorker Changing current working directory for this process to /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292941) DEBUG PluginLoader Loading @stryker-mutator/* from /home/jo/uibk/sq/node_modules/@stryker-mutator
11:14:45 (292941) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter" (matched with expression @stryker-mutator/*)
11:14:45 (292941) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner" (matched with expression @stryker-mutator/*)
11:14:45 (292941) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter
11:14:45 (292941) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner
11:14:45 (292941) DEBUG PluginLoader Loading plugins<EMAIL_ADDRESS>11:14:45 (292941) DEBUG CustomJestConfigLoader Read Jest config from /home/jo/uibk/sq/.stryker-tmp/sandbox2470268/package.json
11:14:45 (292912) DEBUG ChildProcessProxy Starting<EMAIL_ADDRESS>in child process 292956
11:14:45 (292912) INFO DryRunExecutor Starting initial test run. This may take a while.
11:14:45 (292912) DEBUG TimeoutDecorator Starting timeout timer (300000 ms) for a test run
11:14:45 (292941) DEBUG JestTestRunner Merging file-based config {}
      with custom config {}
      and default (internal) stryker config [object Object]
11:14:45 (292941) DEBUG JestTestRunner Running jest with --findRelatedTests flag. Set jest.enableFindRelatedTests to false to run all tests on every mutant.
11:14:45 (292941) DEBUG JestTestRunner Project root is /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292912) DEBUG ChildProcessProxy Starting<EMAIL_ADDRESS>in child process 292963
11:14:45 (292934) DEBUG ChildProcessProxyWorker Changing current working directory for this process to /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292934) DEBUG PluginLoader Loading @stryker-mutator/* from /home/jo/uibk/sq/node_modules/@stryker-mutator
11:14:45 (292934) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter" (matched with expression @stryker-mutator/*)
11:14:45 (292934) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner" (matched with expression @stryker-mutator/*)
11:14:45 (292934) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter
11:14:45 (292934) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner
11:14:45 (292934) DEBUG PluginLoader Loading plugins<EMAIL_ADDRESS>11:14:45 (292934) DEBUG CustomJestConfigLoader Read Jest config from /home/jo/uibk/sq/.stryker-tmp/sandbox2470268/package.json
11:14:45 (292934) DEBUG JestTestRunner Merging file-based config {}
      with custom config {}
      and default (internal) stryker config [object Object]
11:14:45 (292934) DEBUG JestTestRunner Running jest with --findRelatedTests flag. Set jest.enableFindRelatedTests to false to run all tests on every mutant.
11:14:45 (292934) DEBUG JestTestRunner Project root is /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292934) TRACE JestGreaterThan25Adapter Invoking Jest with config {"collectCoverage":false,"verbose":false,"bail":false,"notify":false,"rootDir":"/home/jo/uibk/sq/.stryker-tmp/sandbox2470268","reporters":[]}
11:14:45 (292956) DEBUG ChildProcessProxyWorker Changing current working directory for this process to /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292956) DEBUG PluginLoader Loading @stryker-mutator/* from /home/jo/uibk/sq/node_modules/@stryker-mutator
11:14:45 (292956) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter" (matched with expression @stryker-mutator/*)
11:14:45 (292956) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner" (matched with expression @stryker-mutator/*)
11:14:45 (292956) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter
11:14:46 (292956) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner
11:14:46 (292956) DEBUG PluginLoader Loading plugins<EMAIL_ADDRESS>11:14:46 (292956) DEBUG CustomJestConfigLoader Read Jest config from /home/jo/uibk/sq/.stryker-tmp/sandbox2470268/package.json
11:14:46 (292956) DEBUG JestTestRunner Merging file-based config {}
      with custom config {}
      and default (internal) stryker config [object Object]
11:14:46 (292956) DEBUG JestTestRunner Running jest with --findRelatedTests flag. Set jest.enableFindRelatedTests to false to run all tests on every mutant.
11:14:46 (292956) DEBUG JestTestRunner Project root is /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292963) DEBUG ChildProcessProxyWorker Changing current working directory for this process to /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:14:45 (292963) DEBUG PluginLoader Loading @stryker-mutator/* from /home/jo/uibk/sq/node_modules/@stryker-mutator
11:14:45 (292963) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter" (matched with expression @stryker-mutator/*)
11:14:45 (292963) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner" (matched with expression @stryker-mutator/*)
11:14:45 (292963) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter
11:14:46 (292963) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner
11:14:46 (292963) DEBUG PluginLoader Loading plugins<EMAIL_ADDRESS>11:14:46 (292963) DEBUG CustomJestConfigLoader Read Jest config from /home/jo/uibk/sq/.stryker-tmp/sandbox2470268/package.json
11:14:46 (292963) DEBUG JestTestRunner Merging file-based config {}
      with custom config {}
      and default (internal) stryker config [object Object]
11:14:46 (292963) DEBUG JestTestRunner Running jest with --findRelatedTests flag. Set jest.enableFindRelatedTests to false to run all tests on every mutant.
11:14:46 (292963) DEBUG JestTestRunner Project root is /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:19:45 (292912) DEBUG TimeoutDecorator Timeout expired, restarting the process and reporting timeout
11:19:48 (292912) DEBUG ChildProcessProxy Disposing of worker process 292934
11:19:50 (292912) DEBUG ChildProcessProxy Kill 292934
11:19:54 (292912) DEBUG ChildProcessProxy Starting<EMAIL_ADDRESS>in child process 293261
11:19:55 (292912) ERROR DryRunExecutor Initial test run timed out!
11:19:55 (292912) DEBUG Stryker Not removing the temp dir because an error occurred
11:19:55 (292912) ERROR Stryker Error: Something went wrong in the initial test run
    at DryRunExecutor.validateResultCompleted (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:64:15)
    at DryRunExecutor.timeDryRun (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:72:14)
    at processTicksAndRejections (internal/process/task_queues.js:85:5)
    at async DryRunExecutor.execute (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:37:42)
    at async Stryker.runMutationTest (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/stryker.js:36:53)
11:19:55 (292912) DEBUG ChildProcessProxy Disposing of worker process 293261
11:19:54 (293261) DEBUG ChildProcessProxyWorker Changing current working directory for this process to /home/jo/uibk/sq/.stryker-tmp/sandbox2470268
11:19:54 (293261) DEBUG PluginLoader Loading @stryker-mutator/* from /home/jo/uibk/sq/node_modules/@stryker-mutator
11:19:54 (293261) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter" (matched with expression @stryker-mutator/*)
11:19:54 (293261) DEBUG PluginLoader Loading plugin "/home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner" (matched with expression @stryker-mutator/*)
11:19:54 (293261) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/instrumenter
11:19:55 (293261) DEBUG PluginLoader Loading plugins /home/jo/uibk/sq/node_modules/@stryker-mutator/jest-runner
11:19:55 (293261) DEBUG PluginLoader Loading plugins<EMAIL_ADDRESS>11:19:55 (293261) DEBUG CustomJestConfigLoader Read Jest config from /home/jo/uibk/sq/.stryker-tmp/sandbox2470268/package.json
11:19:55 (292912) DEBUG ChildProcessProxy Disposing of worker process 292956
11:19:55 (292912) DEBUG ChildProcessProxy Disposing of worker process 292941
11:19:55 (292912) DEBUG ChildProcessProxy Disposing of worker process 292963
11:19:55 (292912) DEBUG ChildProcessProxy Kill 293261
11:19:55 (293261) DEBUG JestTestRunner Merging file-based config {}
      with custom config {}
      and default (internal) stryker config [object Object]
11:19:55 (293261) DEBUG JestTestRunner Running jest with --findRelatedTests flag.  Why did you conclude it is an out-of-memory (OOM) error? I don't see this explicitly.

because it said so here:
$ stryker run
15:23:20 (112662) INFO ConfigReader Using stryker.conf.json
15:23:20 (112662) INFO InputFileResolver Found 1 of 13 file(s) to be mutated.
15:23:23 (112662) INFO Instrumenter Instrumented 1 source file(s) with 134 mutant(s)
15:23:23 (112662) INFO ConcurrencyTokenProvider Creating 4 test runner process(es).
15:23:23 (112662) INFO DryRunExecutor Starting initial test run. This may take a while.
15:27:10 (112662) WARN ChildProcessProxy Child process [pid 112682] ran out of memory. Stdout and stderr are logged on debug level.
15:27:10 (112662) INFO RetryDecorator Test runner process [112682] ran out of memory. You probably have a memory leak in your tests. Don't worry, Stryker will restart the process, but you might want to investigate this later, because this decreases performance.
15:30:26 (112662) WARN ChildProcessProxy Child process [pid 112891] ran out of memory. Stdout and stderr are logged on debug level.
15:30:26 (112662) INFO RetryDecorator Test runner process [112891] ran out of memory. You probably have a memory leak in your tests. Don't worry, Stryker will restart the process, but you might want to investigate this later, because this decreases performance.
15:30:27 (112662) ERROR DryRunExecutor One or more tests resulted in an error:
Test runner crashed. Tried twice to restart it without any luck. Last time the error message was: Error: Process
Error: Process
at ChildProcessProxy.handleUnexpectedExit (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/child-proxy/child-process-proxy.js:27:37)
at ChildProcess.emit (events.js:209:13)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
15:30:27 (112662) ERROR Stryker Error: Something went wrong in the initial test run
at DryRunExecutor.validateResultCompleted (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:64:15)
at DryRunExecutor.timeDryRun (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:72:14)
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async DryRunExecutor.execute (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/process/3-dry-run-executor.js:37:42)
at async Stryker.runMutationTest (/home/jo/uibk/sq/node_modules/@stryker-mutator/core/src/stryker.js:36:53)
15:30:27 (112662) INFO Stryker Trouble figuring out what went wrong? Try `npx stryker run --fileLogLevel trace --logLevel debug` to get some more info.
error Command failed with exit code 1.

Ah yes, sorry, didn't read the log properly 😅
Interesting will take a look.

From quick testing, it looks like the way the instrumentor takes care of string concatenation is by recognizing the concat operator (+) as a binary arithmetic operator and tries to add mutants by swapping it out for -. This means that the mutated code gets exponentially larger when you have multiple strings being concatenated. The example function of printBoard outputs a 25MB file that causes out of memory issues when trying to parse the syntax.
I believe that we should be able to solve this by trying to detect when a binary expression is a string concatenation rather than an arithmetic operation. We can do this by walking through the entire left tree of a BinaryExpression looking at both right and left nodes, and once we detect that any of them are strings we can decide not to do any arithmetic operations on it. Ticket #2646 should solve this, and hopefully that will solve the out of memory error

From quick testing, it looks like the way the instrumentor takes care of string concatenation is by recognizing the concat operator (+) as a binary arithmetic operator and tries to add mutants by swapping it out for -. This means that the mutated code gets exponentially larger when you have multiple strings being concatenated. The example function of printBoard outputs a 25MB file that causes out of memory issues when trying to parse the syntax.
I believe that we should be able to solve this by trying to detect when a binary expression is a string concatenation rather than an arithmetic operation. We can do this by walking through the entire left tree of a BinaryExpression looking at both right and left nodes, and once we detect that any of them are strings we can decide not to do any arithmetic operations on it. Ticket #2646 should solve this, and hopefully that will solve the out of memory error

I was expecting that to happen internally. Good to hear that you are already working on it.

Ticket #2646 should solve this, and hopefully, that will solve the out of memory error

I would say solving the OOM error for this particular case can be a side effect of #2646. The root cause of the OOM error can hopefully be found and solved at https://github.com/stryker-mutator/stryker/blob/f3a177df401ed252401643ddc87d45f21ab071ee/packages/instrumenter/src/mutant-placers/expression-mutant-placer.ts#L53

@jonathan-dev quite a lot has changed since December. Notably, since 5.2 we've improved our mutant placing algorithm. Are you still experiencing OOM errors?

I see, the ticket is still opened but the concatenation probably was fixed in https://github.com/stryker-mutator/stryker-js/pull/2648
Am I right or you guys still working on that?

Yes definitely. We've also since fixed the root cause in #2964
@DanielLepszy thanks for pointing that out 🙏


Some test consolidation

fixed possibility to run single tests
use full standard instead of fixture files for most tests
download and cache standard in the CI
fix to handle empty tag with type 1C as an error
use lxml used instead of xml for xml parsing

We're currently processing your upload.  This comment will be updated when the results are available.


Add Pages (Blank) open specific page or pages

Description
I can't add a page, it's blank

Steps To Reproduce
Go to Settings/Preferences/Startup settings
Choose Open a specific pages
Add one or two pages.
Add button
Blank

Steps to fix

eg. Fix crash that occurs when...
eg. Correct action happens when clicking...

Files Version
<IP_ADDRESS>
Windows Version
Windows 10 Professionnel 21H2
Relevant Assets/Logs
debug.log

I can reproduce this

This is due to one-time binding, it's not consistent because it relies on how fast recent folders updates
I was actually looking into improving the performance of recent folder enumeration; I'll fix the binding along side


draft of Cellranger bam

This is a draft of a program that does scSTARR-seq data analysis. There is nothing conceptually crazy here, but it automates the process nicely in my opinion. The input it needs is a bam file from the cellranger count pipeline. Note that you will need to run something like samtools view -hb {whole genome cellranger bam} chrSS > starrSeqReadsOnly.bam to pull out only STARR-seq reads.  It parses this file and pulls out the read that cellranger has selected as "best" for that UMI. By default it will sum raw read counts per construct to create a psuedobulk count matrix. There is also an option where the program will do cell-type analysis as well if provided a table with cell barcode and cell type for that barcode. The output for this option is a table that has raw read counts for every construct in every cell type. There is an additional normalization option that works for both pseudobulk and cell-type specific mode that will do input normalization for you if you provide it with a table that has construct \t normalization factor.
There are two more niche options if you want to grab some intermediate data in the pipeline for whatever reason. You can either have the output be the sam file that is only the "best" UMI read or you can get out a list of the construct the "valid" UMI read belongs to and what cell (the cell barcode) it is found in.
I am planning on changing the name of the function to something like analyseScStarrSeq or something similar.
Known issues currently. The testing input bam stores the extra flag values as uint8 (because I created the source sam file in vim) but actual bam files store the extra flag values as int32. Tests will fail unless you manually edit the bit variable declaration to uint8, however it works with real data as is. The other test that is currently failing is the sam out. The correct reads are being kept but for some reason one of the extra tags is missing. Not sure whats going on but I am looking into it.  EDIT I looked into the missing tag issue. I think the particular tag that is missing has an incompatibility with the tag.go code. Hard to explain to here but I'm happy to chat more about it.
Last thing: like I said there is nothing crazy conceptual but I was worried that the program looks confusing and convoluted especially the single-cell function. I tried to extensively use comments to let y'all know what is going on, but let me know if anything is unclear or if there is anything I can do to make my code more clear.
The other important thing to note, which is maybe relevant context for this PR, is that this analysis method I believe work well for STARR-seq libraries where all constructs are dissimilar in sequence (ie: NOT different GWAS alleles or different species versions of the same sequence). Basically, only use this for constructs were you don't have to use barcodes. Cellranger count won't incorrectly map reads between similar constructs, but if there are  ambiguously mapping reads they won't be counted. Therefore, constructs with more segregating SNPs, it will be easier to map reads to that construct, inflating their values. For these type libraries, it is probably best to use samFilter.go to filter the bam and collapse UMI, then use scCount.go with a custom gtf targeting barcodes.
A useful resource is the cellranger barcoded BAM tags manual page which explains some of the tags that I am using in the program: [https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/output/bam]

latest commit on binning cells has a weird bug where the first bin is much more likely to be selected, especially at higher bin numbers. Not working on bug fixes tonight

open question for those reviewing. There are a lot of print statements while the program is running. Are those helpful? or should I take those out. A lot of them started as sanity checks/debugging but ive left some of them in because I thought they may be useful

open question for those reviewing. There are a lot of print statements while the program is running. Are those helpful? or should I take those out. A lot of them started as sanity checks/debugging but ive left some of them in because I thought they may be useful

Usually we do use print statements for debugging and then remove them when they are ready to be merged. But I can imagine situations where it's good to keep fatal prints for failures (as opposed to having prints for successes)

note to current reviewers: I am preparing a fairly large PR that introduces multiple custom structs and the starr-seq package


Weird error breaks facebook integration via the currency module

Build version: 4.0.0-alpha.4.2
Impact: Critical error log. Concierge continues running unaffected
Steps to Reproduce:

Install the currency module via kpm
Send any query to the module with the currencies capitalized. For e,g. /currency 20 NZD in USD

Error Log:

CRITICAL ERROR WAS UNHANDLED:
Error: A thread ID must be specified.
at _class.sendMessage (/root/Dev/concierge/core/core_integrations/facebook.js:77:27)
at /root/Dev/concierge/modules/kpm_currency/currency.js:30:13
at Request._callback (/root/Dev/concierge/modules/kpm_currency/currency.js:59:13)
at Request.self.callback (/root/Dev/concierge/node_modules/request/request.js:187:22)
at emitTwo (events.js:100:13)
at Request.emit (events.js:185:7)
at Request. (/root/Dev/concierge/node_modules/request/request.js:1048:10)
at emitOne (events.js:90:13)
at Request.emit (events.js:182:7)
at IncomingMessage. (/root/Dev/concierge/node_modules/request/request.js:969:12)
at emitNone (events.js:85:20)
at IncomingMessage.emit (events.js:179:7)
at endReadableNT (_stream_readable.js:913:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)

😪 Alright I Fixed it in this commit

I had wondered why currency was broken, now I know


getTasks passing a filter with the NOT(!) operator throws a ValidationError

Bug description
After calling getTasks and passing a filter with the ! operator, the API response does not include the duration property causing the SDK to throw a ValidationError.
I tested doing the request manually on Postman and indeed the duration field was missing.  I also tried with a brand new account and the problem persisted.
It looks like it only happens when using the !, but I could be wrong.
If it is the expected behavior for the API, the duration field on the Task entity should be optional to stop the error.
Expected behaviour
The request should not throw an error and it should include duration in the response.

Is reproducible
Yes
To reproduce
const excludePriorityOne = async () => {
	const res = await api.getTasks({ filter: `!p1` })
	console.log(res)
}

excludePriorityOne()

Version information:

Package version: 3.0.0
Node: 18.18.0

I got a similar issue when calling getTasks with:
{
     filter: 'overdue | today'
}

Thank you for the report @thales-fukuda and @scottwittrock. I can reproduce this and forwarded it to our API team internally. I will let you know here once I have more information 👍

Unfortunately, we'll have to (temporarily) mark the duration field as optional on the SDK side. The filter API is different from the sync API (long story), and hence, there are some type inconsistencies. There are plans in motion to unify all this during next year, and by then we can start relying on the duration property. For now, it won't be returned.
@thales-fukuda are you up for another PR? 🙌

Unfortunately, we'll have to (temporarily) mark the duration field as optional on the SDK side. The filter API is different from the sync API (long story), and hence, there are some type inconsistencies. There are plans in motion to unify all this during next year, and by then we can start relying on the duration property. For now, it won't be returned.

Got it! Great to hear that are plans to unify the APIs. Thanks for the update!

@thales-fukuda are you up for another PR? 🙌

Yes, absolutely!


【reduce】steep check で NG が大量に

~/me/Ruby/4CT_Ruby$ steep check
[Steep 0.39.0] [target=lib] [target#type_check(target_sources: [program/app/reduce.rb, program/lib/c_const.rb, program/lib/c_read_file.rb, program/lib/r_strip.rb, program/lib/r_angles.rb, program/lib/r_findlive.rb], validate_signatures: true)] [path=program/lib/r_findlive.rb] [synthesize:(3:1)] [synthesize:(6:1)] [synthesize:(8:3)] [synthesize:(9:5)] [synthesize:(26:5)] [synthesize:(30:7)] [synthesize:(37:7)] Unsupported masgn rhs type: array or tuple is supported (void)
program/app/reduce.rb:33:10: NoMethodError: type=(::Array[::Array[::Array[::Integer]]] | nil), method=each_with_index (g_confs.data[0..4].each_with_index)
program/app/reduce.rb:33:10: NoMethodError: type=(::Array[::Array[::Array[::Integer]]] | nil), method=each_with_index (g_confs.data[0..4].each_with_index)
program/app/reduce.rb:51:12: NoMethodError: type=singleton(::Strip), method=new (Strip.new g_conf)
program/app/reduce.rb:61:13: NoMethodError: type=singleton(::Angles), method=new (Angles.new g_conf, strip.edgeno)
program/app/reduce.rb:65:15: NoMethodError: type=singleton(::Findlive), method=new (Findlive.new g_conf, angles.angle)
program/lib/c_const.rb:20:4: UnknownConstantAssigned: type=::Integer (MAXRING    = 14)
program/lib/c_const.rb:21:4: UnknownConstantAssigned: type=::Array[::Integer] (POWER =)
program/lib/c_const.rb:24:4: UnknownConstantAssigned: type=::Array[::Integer] (SIMATCHNUMBER =)
program/lib/c_read_file.rb:50:6: NoMethodError: type=singleton(::File), method=foreach (File.foreach(format('../4ct_data/d_tactics%02d.txt', num: deg)) do |line|)
program/lib/r_angles.rb:112:10: UnresolvedOverloading: receiver=::Array[(true | false)], method_name=[]=, method_types=(::int, (true | false)) -> (true | false) | (::int, ::int, (true | false)) -> (true | false) | (::int, ::int, ::Array[(true | false)]) -> ::Array[(true | false)] | (::int, ::int, nil) -> nil | (::Range[::Integer], (true | false)) -> (true | false) | (::Range[::Integer], ::Array[(true | false)]) -> ::Array[(true | false)] | (::Range[::Integer], nil) -> nil (neighbour[u] = false)
program/lib/r_findlive.rb:37:84: ArgumentTypeMismatch: receiver=::Findlive::Findlive, expected=::Integer, actual=::Array[::Integer] (c)
program/lib/r_findlive.rb:44:10: NoMethodError: type=::Integer, method=[]= (ccc[jjj])
program/lib/r_findlive.rb:50:12: NoMethodError: type=::Integer, method=[]= (ccc[jjj])
program/lib/r_findlive.rb:54:26: ArgumentTypeMismatch: receiver=::Findlive::Findlive, expected=::Array[::Integer], actual=::Integer (ccc)
program/lib/r_findlive.rb:55:10: NoMethodError: type=::Integer, method=[]= (ccc[jjj])
program/lib/r_findlive.rb:62:12: NoMethodError: type=::Integer, method=[]= (ccc[jjj])
program/lib/r_findlive.rb:67:10: NoMethodError: type=::Integer, method=[]= (ccc[jjj] = 1)
program/lib/r_findlive.rb:71:12: BreakTypeMismatch: expected=::Integer, actual=nil (break)
nil <: ::Integer
==> nil <: ::Integer does not hold

現状
~/me/Ruby/4CT_Ruby$ steep check
Type checking files:
.........................................................FF[Steep 0.44.1] [typecheck:typecheck@4] [background] [#typecheck_source(path=program/lib/r_findlive.rb)] [#type_check_file(program/lib/r_findlive.rb@lib)] [synthesize:(3:1)] [synthesize:(6:1)] [synthesize:(8:3)] [synthesize:(9:5)] [synthesize:(26:5)] [synthesize:(30:7)] [synthesize:(37:7)] Unsupported masgn rhs type: array or tuple is supported (void)
F.F.
program/lib/c_const.rb:20:4: [error] Cannot find the declaration of constant MAXRING
│ Diagnostic ID: Ruby::UnknownConstantAssigned
│
└     MAXRING    = 14             # max ring-size # 3^(i-1)
~~~~~~~
program/lib/c_const.rb:21:4: [error] Cannot find the declaration of constant POWER
│ Diagnostic ID: Ruby::UnknownConstantAssigned
│
└     POWER =
~~~~~
program/lib/c_const.rb:24:4: [error] Cannot find the declaration of constant SIMATCHNUMBER
│ Diagnostic ID: Ruby::UnknownConstantAssigned
│
└     SIMATCHNUMBER =
~~~~~~~~~~~~~
program/lib/c_read_file.rb:50:11: [error] Type singleton(::File) does not have method foreach
│ Diagnostic ID: Ruby::NoMethod
│
└       File.foreach(format('../4ct_data/d_tactics%02d.txt', num: deg)) do |line|
~~~~~~~
program/app/reduce.rb:33:29: [error] Type (::Array[::Array[::Array[::Integer]]] | nil) does not have method each_with_index
│ Diagnostic ID: Ruby::NoMethod
│
└     ret = g_confs.data[0..4].each_with_index.all? do |g_conf, i|
~~~~~~~~~~~~~~~
program/app/reduce.rb:51:18: [error] Type singleton(::Strip) does not have method new
│ Diagnostic ID: Ruby::NoMethod
│
└     strip = Strip.new g_conf
~~~
program/app/reduce.rb:61:20: [error] Type singleton(::Angles) does not have method new
│ Diagnostic ID: Ruby::NoMethod
│
└     angles = Angles.new g_conf, strip.edgeno
~~~
program/app/reduce.rb:65:24: [error] Type singleton(::Findlive) does not have method new
│ Diagnostic ID: Ruby::NoMethod
│
└     findlive = Findlive.new g_conf, angles.angle
~~~
program/lib/r_angles.rb:112:10: [error] Cannot find compatible overloading of method []= of type ::Array[(true | false)]
│ Method types:
│   def []=: (::int, (true | false)) -> (true | false)
│          | (::int, ::int, (true | false)) -> (true | false)
│          | (::int, ::int, ::Array[(true | false)]) -> ::Array[(true | false)]
│          | (::int, ::int, nil) -> nil
│          | (::Range[::Integer], (true | false)) -> (true | false)
│          | (::Range[::Integer], ::Array[(true | false)]) -> ::Array[(true | false)]
│          | (::Range[::Integer], nil) -> nil
│
│ Diagnostic ID: Ruby::UnresolvedOverloading
│
└           neighbour[u] = false
~~~~~~~~~~~~~~~~~~~~
Detected 9 problems from 4 files

does not have method new => モジュール名とクラス名を異なるものに
neighbour[u] = false => u.to_i で対応

現状
~/me/Ruby/4CT_Ruby$ steep check
Type checking files:
..........................................................F[Steep 0.44.1] [typecheck:typecheck@4] [background] [#typecheck_source(path=program/lib/r_findlive.rb)] [#type_check_file(program/lib/r_findlive.rb@lib)] [synthesize:(3:1)] [synthesize:(6:1)] [synthesize:(8:3)] [synthesize:(9:5)] [synthesize:(26:5)] [synthesize:(30:7)] [synthesize:(37:7)] Unsupported masgn rhs type: array or tuple is supported (void)
F...
program/lib/c_read_file.rb:50:11: [error] Type singleton(::File) does not have method foreach
│ Diagnostic ID: Ruby::NoMethod
│
└       File.foreach(format('../4ct_data/d_tactics%02d.txt', num: deg)) do |line|
~~~~~~~
program/app/reduce.rb:33:29: [error] Type (::Array[::Array[::Array[::Integer]]] | nil) does not have method each_with_index
│ Diagnostic ID: Ruby::NoMethod
│
└     ret = g_confs.data[0..4].each_with_index.all? do |g_conf, i|
~~~~~~~~~~~~~~~
Detected 2 problems from 2 files

foreach => each_line を使う
(::Array[::Array[::Array[::Integer]]] | nil) => nil をはじく
完了


Error: Cannot find module 'cssnano'

hi!
I've followed the installation steps but when I try to load the demo it raise this error in the browser
Can you help, please?

Run npm install, yarn, or pnpm install to install dependencies

I've run it after installing sveltekit and after installing tailwind
In fact, svelte-add tailwindcss will fail without the 1st run


pybind11_json_vendor: 0.4.2-1 in 'jazzy/distribution.yaml' [bloom]

Increasing version of package(s) in repository pybind11_json_vendor to 0.4.2-1:

upstream repository: https://github.com/open-rmf/pybind11_json_vendor
release repository: https://github.com/ros2-gbp/pybind11_json_vendor-release.git
distro file: jazzy/distribution.yaml
bloom version: 0.12.0
previous version for package: 0.4.1-3

pybind11_json_vendor

No changes

Holding for Jazzy sync


Initial chars in readme misinterpreted as audio file

Gitea Version
1.15.2 built with GNU Make 4.1, go1.16.7
Git Version
not relevant
Operating System
Debian 10/x64
How are you running Gitea?
apt install / locally
Database
SQLite
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Description
When uploading a readme.md file starting with ID3 the file is mistaken for an MP3 audio file. Example content
ID3Toy
======

Read and write ID3 tags (v1.0, v1.1, v2.0, v2.3, v2.4), APE (v1, v2) and LYRICS 3 tags (v1, v2) in MP3 files.
...

(MP3 files may start with ID3 tag but shouldn't be used to identify such files to begin with, but that's another issue :) )
So my README.md files shows up as raw file:

and clicking on the file line itself shows me the audio player:

The content of the readme file is correct, verified and is just text (the example above is a direct copy from it). :)
Screenshots
Network activity snapshot

Adding a new-line at the top of the file acts as a workaround and Gitea accepts the file properly as text/md file:

If the mime type is detected automatically, every file starts with ID3 will be reported as audio file.

this is http.DetectContentType in renderFile() function

Yep, typesniffer.DetectContentType and http.DetectContentType work like file command, it only checks some bytes of the file. To fix the "bug", the filenames should also be considered, some well-known filenames should have explicit mime-types, but it might need a refactor. Not sure if it's worthy to do so.

Seems like a bug in http.DetectContentType, I would report it to golang.

To be honest, I do not treat it as a bug. Because the mime auto-detectors just work as this behavior. You can not always correctly guess a file type by its content or extension name.

The problem is:
As @wxiaoguang mentioned, even the Linux command file produces in that circumstance an audio file. For me as well.
So, if both commonly used type detection systems (file and go-http.DetectContentType) behave the same here, I think it is not a bug and instead intended. This particular char sequence does not seem to be a good choice for the start of a file.
As remediation, try to prepend a   before the leading chars. On my machine, file then shows ASCII text instead of an audio file.

Will be fixed by: Fix ID3 content detection #23355


Digest item must match that calculated - Probably cache issue

Happening on Parachain, probably related to cumulus.
Observed in Moonbeam networks (I haven't checked other parachains), currently based on polkadot 9.8 but this happened at least back to polkadot 9.0
So summary:
This bug initiated last year. Collators were panicking because of "Digest item must match that calculated".
The original bug was in the state cache, reported in https://github.com/paritytech/substrate/issues/7964 and fixed in https://github.com/paritytech/substrate/pull/7990
However we found some very infrequent "Digest item must match that calculated" still happening in our community collators.
We have run our company nodes with --state-cache-size 4 for at least 6 month and haven't observed this message so I still suspect there are "rare" use cases where the state cache is broken.
I won't have the time to monitor the database hoping for it to happen again (which seems to be not even once a month per node), so I don't expect this to be fixed soon.
I'll keep this ticket to add more information if I find some.

Same happens on Phala's testnet. However the collators are not affected. Usually it can happen once per week or two.

Maybe relevant: https://github.com/paritytech/cumulus/issues/573

It happens frequently on Moonriver. Mostly when syncing, but also when importing blocks during normal operations (fully synced).
I'll verify again if the --state-cache-size 4 is impacting

Other collators have reported that using the --state-cache-size=4 is not preventing this bug from happening.
It mostly happen when syncing the node. I'm going to see if I can easily reproduce

Maybe caused by same problem: Error: Storage root must match that calculated https://github.com/airalab/robonomics/issues/184

I grabbed 200Gb of state data when triggering this error but I delete it by mistake when trying to manipulate it :(
However I can confirm:

It happens on polkadot v0.9.9 based parachain
it happens when there is no --state-cache-size 1 (I can't guarantee if it happens when the flag is there but it doesn't seem so)

we see this on calamari parachain on kusama. collators run manta version 3.1.0-1 which uses polkadot-v0.9.12 dependencies.
i would like to understand what --state-cache-size 1 does before applying it to running collators. if anyone can shed some light on what causes this error and what the state cache size parameter does to work around it, it would help us to make a decision about how to handle this error moving forward. currently we have to restart any collator that exhibits this error in order to get it working again.
2021-11-29 20:13:33 [Parachain] panicked at 'Transaction will be valid in the future', /cargo-home/git/checkouts/substrate-7e08433d4c370a21/d76f399/frame/executive/src/lib.rs:393:17
2021-11-29 20:13:33 [Parachain] Block prepare storage changes error:
RuntimeApiError(Application(Execution(Other("Wasm execution trapped: wasm trap: unreachable\nwasm backtrace:\n    0: 0x25fabd - <unknown>!rust_begin_unwind\n    1: 0x1fee - <unknown>!core::panicking::panic_fmt::hf69c8b08bc9d2ee5\n    2: 0xae533 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPallets,COnRuntimeUpgrade>::execute_block::hd256b0687bba04ef\n    3: 0xad252 - <unknown>!Core_execute_block\n"))))
2021-11-29 20:13:33 [Parachain] 💔 Error importing block 0xf53d338405cb4d3d0b93ff0f53485c5df74b6164c0f37ec0153e90fa0c299809: Err(Other(ClientImport("Error at calling runtime api: Execution failed: Other(\"Wasm execution trapped: wasm trap: unreachable\\nwasm backtrace:\\n    0: 0x25fabd - <unknown>!rust_begin_unwind\\n    1: 0x1fee - <unknown>!core::panicking::panic_fmt::hf69c8b08bc9d2ee5\\n    2: 0xae533 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPallets,COnRuntimeUpgrade>::execute_block::hd256b0687bba04ef\\n    3: 0xad252 - <unknown>!Core_execute_block\\n\")")))
2021-11-29 20:13:35 [Relaychain] 🔍 Discovered new external address for our node: /ip4/<IP_ADDRESS>/tcp/30334/ws/p2p/12D3KooWFDKx5Y1zpS3iEjgboqBPR9e9XZncG4tdm6vb7fYvd7gQ
2021-11-29 20:13:35 [Parachain] panicked at 'Transaction will be valid in the future', /cargo-home/git/checkouts/substrate-7e08433d4c370a21/d76f399/frame/executive/src/lib.rs:393:17
2021-11-29 20:13:35 [Parachain] Block prepare storage changes error:
RuntimeApiError(Application(Execution(Other("Wasm execution trapped: wasm trap: unreachable\nwasm backtrace:\n    0: 0x25fabd - <unknown>!rust_begin_unwind\n    1: 0x1fee - <unknown>!core::panicking::panic_fmt::hf69c8b08bc9d2ee5\n    2: 0xae533 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPallets,COnRuntimeUpgrade>::execute_block::hd256b0687bba04ef\n    3: 0xad252 - <unknown>!Core_execute_block\n"))))
2021-11-29 20:13:35 [Parachain] 💔 Error importing block 0xf53d338405cb4d3d0b93ff0f53485c5df74b6164c0f37ec0153e90fa0c299809: Err(Other(ClientImport("Error at calling runtime api: Execution failed: Other(\"Wasm execution trapped: wasm trap: unreachable\\nwasm backtrace:\\n    0: 0x25fabd - <unknown>!rust_begin_unwind\\n    1: 0x1fee - <unknown>!core::panicking::panic_fmt::hf69c8b08bc9d2ee5\\n    2: 0xae533 - <unknown>!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPallets,COnRuntimeUpgrade>::execute_block::hd256b0687bba04ef\\n    3: 0xad252 - <unknown>!Core_execute_block\\n\")")))

As the name suggests, it sets the size of the state cache. There are bugs in it. Just run with --state-cache-size 0 for now. Nodes will just be a little bit slower on import.

I found a way to consistently reproduce this;

Start a partial client setup with new_chain_ops
Load the last block with client.block(BlockId::Number(client.info().best_number))
Re-execute that block with client.runtime_api().execute_block

Unfortunately this coincides with what I'm trying to do and state-cache-size does not affect this.

@ggwpez your problem is not related to this issue here. Your problem is that you pass the block to execute_block with the seal digest of the consensus engine. You first need to remove the seal digest before executing the block. This is normally done by the consensus engine (Babe for example) before we execute a block.


change shell to console to fix highlighting

See the first code block under https://www.cockroachlabs.com/docs/stable/deploy-cockroachdb-on-premises.html#step-1-synchronize-clocks. The word set is blue there and everything else is black. I think this is because we should be using the console highlight type instead of shell.

Thanks, @mjibson. I'm not sure console will be better in all cases where we're using shell. We should test this further. Also, I wonder how this will change when on Hugo...

We have closed this issue because it is more than 3 years
old. If this issue is still relevant, please add a comment and re-open
the issue. Thank you for your contribution to CockroachDB docs!


Return 404 upstream when using Eureka and RestTemplate

Fixes #2861

Codecov Report

Merging #3023 into 1.4.x will increase coverage by 0.02%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##              1.4.x    #3023      +/-   ##
============================================
+ Coverage     69.38%   69.41%   +0.02%
- Complexity     1928     1929       +1
============================================
  Files           240      240
  Lines          8499     8504       +5
  Branches       1055     1056       +1
============================================
+ Hits           5897     5903       +6
  Misses         2198     2198
+ Partials        404      403       -1

Impacted Files
Coverage Δ
Complexity Δ

...ureka/http/RestTemplateTransportClientFactory.java
97.05% <100%> (+0.5%)
8 <0> (ø)
:arrow_down:

...oud/netflix/zuul/filters/post/SendErrorFilter.java
76.47% <0%> (-5.89%)
12% <0%> (-1%)

...flix/eureka/http/RestTemplateEurekaHttpClient.java
82.66% <0%> (+1.33%)
19% <0%> (+1%)
:arrow_up:

...etflix/turbine/stream/HystrixStreamAggregator.java
82.85% <0%> (+5.71%)
9% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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


luci-app-spoofer: add package

Signed-off-by: Ken Keys<EMAIL_ADDRESS>And just to be clear, I do have a copyright assignment on file with UC.

Hi, thanks for your contribution! Please see https://github.com/openwrt/luci/issues/3378. We try to get rid of Lua dependencies, would you mind rewriting the views in JavaScript? The framework offers a often 1to1 translation from Lua to JavaScript.

Also please switch from <space> to <tab> alignment

Hi, thanks for your contribution! Please see #3378. We try to get rid of Lua dependencies, would you mind rewriting the views in JavaScript? The framework offers a often 1to1 translation from Lua to JavaScript.

Do you mean just luasrc/view, or all of luasrc?  Whichever it is, where is the documentation for doing this?

The JS documentation is https://openwrt.github.io/luci/jsapi/index.html
If you look trough previous pull requests multiple convert Lua server side rendering to JS client side rendering.

You didn't answer:  Do you mean just luasrc/view, or all of luasrc?

Ideally all so you loose the luci-compat dependency.

If so, please submit a new PR


Update Code - Proof_Of_ContributionSnapshot4.md

https://github.com/MorpheusAIs/DashBoard/pull/42 - Improve ux of deposit stEth button. Previously Website was showing disabled button when user had no sthEth which was very ambigious and could result in user churn due to misunderstanding.

Thanks. I'll review.

Thanks! :)


Why gym build the ipa file with SwiftSupport folder in it but my app does not using any swift code?

Issue Description
I am using gym (version is 1.6.2) to build my app, my app is using only objective c code, not using any swift code, but gym build an ipa file with an empty “SwiftSupport” folder on the same level of folder “Payload”.
I think the “SwiftSupport” folder is not necessary, but I can not find an option to specify my app is an objective c app.
And when I use another command to build debug ad-hoc app, the ipa file does not contain the empty  "SwiftSupport" folder.
At last , I want to know how gym check my app is a swift app or not ?
Unzip ipa file content:
NIESpider.ipa
|---Payload
|---SwiftSupport
Configuration Files
Fastfile with Release config:
 lane :build_release_ipa do
   config = "Release"
   ipafilename = 'NIESpider.ipa'
   gym({
     workspace: 'NIESpider',
     scheme: 'NIESpider',
     configuration: config,
     clean: true,
     export_method: 'app-store'
     use_legacy_build_api: true,
     output_name: ipafilename
   })
   notify "build Release #{ipafilename} successfully, have fun!"

 end

Fastfile with Debug config:
 lane :build_release_ipa do
   config = "Debug"
   ipafilename = 'NIESpider.ipa'
   gym({
     workspace: 'NIESpider',
     scheme: 'NIESpider',
     configuration: config,
     clean: true,
     export_method: 'ad-hoc'
     output_name: ipafilename
   })
   notify "build Release #{ipafilename} successfully, have fun!"

 end

Environment

fastlane version is :1.81.0
gym version is :1.6.2

@jianpx Thanks for reaching out. We are going to look into this over here, however it'd be helpful to know if there are any contents to the SwiftSupport folder.
Thanks!

@TKBurner the SwiftSupport folder is empty.

Hi @jianpx! Thanks for following up. Right now this is expected behavior. I'm going to mark this as a feature request and we'll review it. Thanks!

hi， @TKBurner , I am wondering if the empty SwiftSupport folder has side effect on the submit to App Store .

@jianpx Thanks for following up. Since it's an artifact of using the Xcode APIs it's unlikely it'd affect your app review. Let me know if you find out otherwise! Thanks 👍


Add dotnet meetup banner and logo

This adds a customisable (xcf) banner and logo file for .NET meetups - and examples of the exported files we use for the Brisbane .NET meetup

Not sure if this is the right place to share, but figured they might be useful for other meetup groups!

Unfortunately the first image does not meet .NET branding guidelines so we need to remove that. The second image is totally fine. We're very close to getting Microsoft brand approval to release the branding guidelines to the community (hopefully by early next week) so that we can have a good reference for the community.

sorry, will remove.


WFS- xml to object conversion is None, with valid url

I am having a very similar issue as in #636 but with WebFeatureService() instead: owslib\feature\wfs100.py I get the same error because a tag with the name 'Service' was not found on line 152 and it is sending None to method 'ServiceIdentification' line 153, which does not have the method 'find ()' since it is a None.
The URL i'm using is: https://services.datafordeler.dk/FIKSPUNKT/FIKSPUNKTER_HIST_GML3SFP/1.0.0/WFS?username=KLHOXFAHAD&password=-7-nvuVaajAWGhS
The Username/password has specifically been created for the purpose of finding a solution for this problem.
To reproduce:
from owslib.wfs import WebFeatureService
url = "https://services.datafordeler.dk/FIKSPUNKT/FIKSPUNKTER_HIST_GML3SFP/1.0.0/WFS?username=KLHOXFAHAD&password=-7-nvuVaajAWGhS"
wfs = WebFeatureService(url=url)

Error:

I may have found the issue, I didn't add the WFS version, so I tried to use it with version 2.0.0 and then things seemed to work. The website states it is version 2.0.0. So that seems a little strange though.
To reproduce:
from owslib.wfs import WebFeatureService
url = "https://services.datafordeler.dk/FIKSPUNKT/FIKSPUNKTER_HIST_GML3SFP/1.0.0/WFS?username=KLHOXFAHAD&password=-7-nvuVaajAWGhS"
wfs = WebFeatureService(url=url, version='2.0.0')


Vertical Navigation - 2 clicks required

I am using the UVerticalNavigation component.  All my route changes require 2 clicks.  The first one changes the address bar, and the second changes my page.
What am I missing?
My inputs all look like this:
    {
      label: 'Address Book',
      icon: 'i-heroicons-book-open',
      to: '/address-book'
    },

This seems to happen intermittently, and I cannot find the reason.

Could you please provide a reproduction link?

I think it happens when another unrelated library has an error on loading a page first time - i will try and isolate and give you a repository soon if i can

This is no longer happening for me.  The error I referenced above was removed.  I have not noticed the behavior.
Closing since can't reproduce reliably.


Bot Crashes Daily

Ever since I updated from 1.8.4 to 2.3.0 the bot has been crashing at least once a day. The bot goes offline and there are no errors shown in the console. I'm thinking the problem might be ram usage because Digital Ocean only gives 512mb and I am also running a music bot at the same time. I would use 1.8.4 but I read it would stop working because of channel categories.

That could very well be the case. Specifically, 1.9 introduced Redis for the Xp / Clubs features among other things like Shard management. Redis requires pure memory as it’s a key-value memory store. It uses RAM for speed, but that’s likely why you’re experiencing the crashes. 512 is enough for Nadeko easily, but your other music bot is likely taking up a lot of that, especially if it’s a Java powered bot.

I think it's working now. I deleted the old droplet and started fresh. There might've been other things running in the background.


Test Case
tests/unit/llms/AnthropicToolModel_unit_test.py
Pytest Logs
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_predict[claude-3-haiku-20240307] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_predict[claude-3-opus-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_predict[claude-3-5-sonnet-20240620] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_predict[claude-3-sonnet-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_stream[claude-3-haiku-20240307] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_stream[claude-3-opus-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_stream[claude-3-5-sonnet-20240620] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_stream[claude-3-sonnet-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_apredict[claude-3-haiku-20240307] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_apredict[claude-3-opus-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_apredict[claude-3-5-sonnet-20240620] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_apredict[claude-3-sonnet-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_astream[claude-3-haiku-20240307] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_astream[claude-3-opus-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_astream[claude-3-5-sonnet-20240620] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_astream[claude-3-sonnet-20240229] - anthropic.BadRequestError: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your API request included an `assistant` message in the final position, which would pre-fill the `assistant` response. When using tools, pre-filling the `assistant` response is not supported.'}}
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_abatch[claude-3-haiku-20240307] - TypeError: object Message can't be used in 'await' expression
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_abatch[claude-3-opus-20240229] - TypeError: object Message can't be used in 'await' expression
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_abatch[claude-3-5-sonnet-20240620] - TypeError: object Message can't be used in 'await' expression
FAILED tests/unit/llms/AnthropicToolModel_unit_test.py::test_abatch[claude-3-sonnet-20240229] - TypeError: object Message can't be used in 'await' expression

Root Cause
Badrequest and Type error
Potential Solutions
No response
Additional Context (optional)
No response
Type of Test Case
Unit

Was it solved ??? Please let me know, I am facing the same issue

Was it solved ??? Please let me know, I am facing the same issue

Yes, it has been solved.
The next release will have the update

Can you let me know what was the exact issue ??

Are you getting the error while using swarmauri package or?

Also can you explain how can we pass tools calling history in the chat history of AnthropicVertex with some claude model


WaferMap test expectations are not executing

🧹 Tech Debt
Several wafer map tests are resulting in warns on nimble builds such as the following: https://github.com/ni/nimble/actions/runs/7475603903/job/20344086522#step:17:262

'Spec 'Wafermap Prerendering module with undefined values should have empty color fill style' has no expectations.'

The warning states that no expect statements are running for the test. However the source of the test shows expect statements:
https://github.com/ni/nimble/blob/e78cd3773cf97604aabb5b4750b349b1c34b39d2/packages/nimble-components/src/wafer-map/tests/prerendering.coloring.spec.ts#L327-L331
Seems like the tests are incorrectly written / not validating behaviors as expected.
The pattern that likely let this issue through is that the tests have conditionally executing expect statements which is an issue discussed here: https://github.com/ni/javascript-styleguide/issues/125#issuecomment-1631721812
To address this tech debt the wafer map tests should be hardened to avoid conditionally executing expect statements as discussed in the above style guide issue.

@munteannatan Just a heads up.


chore(tests): re-increase test coverage thresholds

Closes #621
Summary

Reimplements test coverage thresholds we had set before the dashboard component migration from 1.x to 2.x. Branches increases, but will remain below 80% until PageWizard stabilizes and is covered in tests.

Acceptance Test (how to verify the PR)

Validate the Travis CI checks take into account the new thresholds. The current coverage amounts in master meet these thresholds.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[GSSoC'23] Chrome Dinosaur Game

Describe the project you want to add with tech stack

This Project creates a Dinosaur game ( similar to the Chrome Dinosaur game )
This project will be made using HTML5 , CSS3 and JavaScript ES6.

Expected behavior
This Project will have the following functionalities :

Continuous gameplay.
Scoreboard.
Character hitboxes.
Background music and sound effects.

Screenshots (optional)

Additional context (optional )
Can you please assign this issue to me @Atharvashirsh under GSSoC'23 label ?

Can you please assign this issue to me under GSSoC'23 label ?

Project already present


Inconsistent timing results (possibly delta related)

Godot version
4.0.dev
System information
WINDOWS 10, RTX 2060 ,VULCAN
Issue description
I've been testing a firearm scene prototype and messing with the fire rates. I've been noticing that the fire rate is not very consistent. I've been testing the time it takes to empty a mag and it varies a bit. If a mag of 30rds at 600RPM gets emptied within the first couple of seconds of starting the scene, it will results in ~3.2s to empty. After that, it will take about ~2.889s consistently. The problem is that while most of the runs after the first mag are going to be ~2.889s, it will randomly result in ~3.2s again and in my main project I can audibly hear the difference as well.
Sometimes the 3.2s run happens only once every now and then, but other times it stays for a couple of runs before it goes back to 2.889s.
I've recreated this prototype in Godot 3.5 where the problem is non-existent. I've ran the Godot 3.5 project for a long time and not even randomly did the deviation happen.
Steps to reproduce
CONTROLS:

FIRE (LEFT MOUSE)
RELOAD (R)

NOTE: Weapon may or may not have full-auto enabled. This can be checked in the inspector as a boolean variable. Enable to run tests.

I would run the Godot 4 version first. Run minimum 3 trials where the result will look something like: [~3.22, 2.889, 2.889]
Leave that running in the background
Test Godot 3.5 version of the prototype and run that a few times as well. Results should be consistent: ~[2.883, 2.883, 2.883]
Go back to the Godot 4 project and now that it's had some time to sit, run them again. Issue might happen straight away or it might need more time to bring the issue to light again.
Can go back to Godot 3.5 and test that project again, but should be consistent

Minimal reproduction project
firearm-testing-recreation.zip

Are both 4.x and 3.x projects running at the exact same framerate? Different framerates will cause fluctuations here, especially if using _process() instead of _physics_process().
In general, Timer is not designed to handle very low wait times (as mentioned in its class reference).

Yes, but this has nothing to do with the framerate necessarily. The firearm code is not framerate dependent. I mention both because the problem happens in Godot 4, but not in Godot 3. Godot 3 provides consistent results. Godot 4 on the other hand has inconsistencies. I'm not really 100% sure what the problem is here, but I would assuming having it recreated in both and one having the correct results would help narrow things down a bit.
I'm also not using the timer node. I've increase the physics max fps previously as well and no change.

The firearm code is not framerate dependent

This is not true. For example increase the firerate to 1'000'000 and observe how it take half a second to empty the mag, instead of the expected 2 ms.

The code cannot fire more than one bullet per frame.
The code looses the time between when the bullet should have been fired and the next frame, when it actually gets fired.
The way you keep track of of time by accumulating deltas in a floating point variable is extremely susceptible to floating-point precision issues, esp given that the fire delay is an integer multiple of the expected frame time.

If you increase or decrease the rpm a bit (+- <10) the actual fire rate should pretty consistently land in either bucket for both the 3.x and 4.x version.

This is not true. For example increase the firerate to 1'000'000 and observe how it take half a second to empty the mag, instead of the expected 2

I get your point in the extreme case, and you're right it is somewhat frame dependent, but unrealistic. The limit is around 2000 before it stops "accurately" emptying the mag in about the right time. This covers most firearms and the RPM will be consistent across different frame rates, which is important, but not the point of the post.
The difference in completion times isn't really the issue I'm getting at. I'm trying to shine some light on how you can consistently get the same result on Godot 3, while on Godot 4 it can randomly result in ~3.2s instead of ~2.889 (@600rpm). During game play I would consider that a big deal since the player is randomly emptying a mag at different rates randomly. The small difference between the results in Godot 3/4 are not the issue.
The Godot 4 version will get ~3.2s if you empty the mag within a few seconds of starting the scene and will produce ~2.889 for a consistent amount of time. The problem is that it will begin to generate ~3.2s at random during runtime and will go back to 2.889 at some point. You will never get ~3.2s, let alone anything over 3s at 600rpm, in the Godot 3 project.

The way you keep track of of time by accumulating deltas in a floating point variable is extremely susceptible to floating-point precision issues, esp given that the fire delay is an integer multiple of the expected frame time.

Agreed and could this possibly be why I'm randomly getting these inconsistencies? iirc GD4 uses 64bit and GD3 uses 32bit floats?
I can upload a video later of this issue if it will help clear things up. I've got some recordings of this happening.

Gotcha, that makes sense.

Agreed and could this possibly be why I'm randomly getting these inconsistencies? iirc GD4 uses 64bit and GD3 uses 32bit floats?

Both use 64-bit scalar float in GDScript, but floats in Vectors and packed arrays are 32-bit by default in Godot 4 (and always in Godot 3).


Update walkthroughs for 2.1

We are recommending to set DotNetCliToolReference and referring to the 2.0 SDK.

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

ID: adb04585-f54b-70c0-e847-b044b388a4d5
Version Independent ID: 5e37f568-0621-a082-c75a-d2adf94dce8d
Content: Getting Started on .NET Core - New database - EF Core
Content Source: entity-framework/core/get-started/netcore/new-db-sqlite.md
Service: unspecified
Product: entity-framework
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@divega This article was fixed by #806 but the title refers to multiple walkthroughs, which is a dup of #748
Should we go ahead and close this one?

Yes. I agree. Closing in favor of  #748.


Add support for builtin WireGuard module

in which case there is no dedicated file in /lib/modules. A rare case but possible.
Additionally the recursive globbing has been replaced by dpkg-query's internal recursive asterisk matching, which performs better/faster. This does now also match on "wireguard.kosomething", but I think "wireguard" is specific enough and dots in kernel modules names uncommon, to no be an issue.

I didn't to a test install, so would be good to so, here or on test branch, just in case I made a typo or something 😅.

well hopefully CI pipelines  will catch if there is any typo :p

Merging.
unfortunately 22.04 is not yet available on TravisCI: https://docs.travis-ci.com/user/reference/linux/ :(
yet to find a (free) CI environment that supports all PiVPN needs, kinda tricky.

been growing quite fund of GH Actions to be honest! might give it a shot when i have some more time.

Jep, quite valuable/mighty. But an argument against it might be to not depend too much on a single platform owned by Microsoft.

well that is true, but I stopped worrying to much about those things. also don't think we (pivpn) are going anywhere else anyway unless something really major happens with GitHub.

Jep, same here, until now I couldn't find any real reason to worry or switch, no MS service integration and MS +GitHub account merge or such things, people were worrying about.


fix duplicate dir name when saving image in examples/cifar10_msra/data.py

Closes issuse #379

Thanks Peter for your PR. We will get your PR validated, reviewed, and merged. It will show up in our next push of commits to public neon. Thanks for your contribution!

Our new neon2.2 release seems to have fixed this issue while upgrading the cifar10_msra example to use new aeon1.0 version.
Thanks Peter @chengchingwen for reporting and creating the PR for fixing the issue.
Similar issues with other examples seem to still exist, will take a separate look.
For cifar10_msra, if the errors still are not gone. Please let us know.

Please re-create if latest neon still has this issue. Thanks!


errorUnknown: true with static Model.create doesn't throw an Error when unknown attributes

Summary:
When trying to save a new model with the Model.create function and errorUnknown set to true on the Schema, no error is thrown.
I've read the code and as create is calling put and put is calling parseDynamo I'm expecting an error but maybe my comprehension of the code base is not good enough. If no error is thrown is there any way to make dynamoose throw when trying to create a new model with attributes not declared in the schema?
Model:
module.exports = (dynamoose) => {
  const schema = new dynamoose.Schema({
    login: {
      type: String,
      validate: function (login) {
        return isEmail.validate(login);
      },
      hashKey: true,
    },
  }, {timestamps: true, errorUnknown: true});

  const User = dynamoose.model('User', schema);

  return {User};
};

Type (select 1):

[ ] Bug report
[ ] Feature suggestion
[x] Question
[ ] Other suggestion
[ ] Something not listed here

Other:

[x] I have read through the Dynamoose documentation before posting this issue
[x] I have searched through the GitHub issues (including closed issues) and pull requests to ensure this issue has not already been raised before
[ ] I have searched the internet and Stack Overflow to ensure this issue hasn't been raised or answered before
[ ] I have tested the code provided and am confident it doesn't work as intended
[ ] I have ensured that all of my plugins that I'm using with Dynamoose are listed above
[x] I have filled out all fields above
[x] I am running the latest version of Dynamoose

@Tirke I can't seem to reproduce this anymore. Mind creating a PR with a failing test case and I can look into it some more?

Closing this due to no recent activity. If this is still a problem or you have questions please feel free to comment again and we can try to help further.


Token Management

manage tokens generated in the system so that you can control the lifetime of these tokens.
we could store the following
Devices/ Keys/ Reset password key/ Account confirmation/ 2FA
we could also store access tokens and refresh keys

What work is this actually tracking?  Can we turn this into something actionable or close?

Closing


UI extension: workspace.openTextDocument() returns untitled file for file URI

In a UI extension (resolver phase):
workspace.openTextDocument(URI.file('/headless/wm.log'))

returns an untitled file when:
workspace.openTextDocument('/headless/wm.log')

returns the actually existing file.

@chrmarti please consider that I am not sure what kind of setup you have and as such to speed things up, provide a reproducible case (ideally even a test that fails) for this so that we can jump on it. I appreciate that 👍

I only see this within the resolver, it does not reproduce with a UI extension. Using this as a workaround:
vscode.workspace.openTextDocument(uri.scheme === 'file' ? uri.fsPath as any : uri);

https://github.com/microsoft/vscode/blob/5c3ac79b0100c8c05c53f11b0039bb35ddc90d49/src/vs/workbench/api/common/extHost.api.impl.ts#L631-L635
That is super weird. When calling openTextDocument with a string we actually call URI.file with that string. It just be exactly the same thing. @chrmarti Do you have a sample extension?

@jrieken Good point... I just found that I was passing a vscode-uri URI in. Fixing with:
vscode.workspace.openTextDocument(vscode.Uri.parse(uri.toString()));

Thanks.

Hm, I am not sure if Uri.parse(uri.toString()) has an effect...

uri is URI from the vscode-uri package and that is not an instanceof vscode.Uri. vscode.Uri.parse(uri.toString()) converts it.

Hm, we should maybe use Uri.isUri instead since maybe other extension use this package...


[Rust] Minor SIMD benchmark fix set minimal CPU target for AVX2

Set default CPU target to haswell to enable AVX2 routine. Haswell is the oldest CPU still available on AWS and GCP now.  One generation newer (Broadwell) does not bring statistically significant improvement during benchmark.
Fix pprof build on linux.
Update the benchmark code to reduce the calls to Float32Array to make the benchmark more fair.

Haswell was released in 2013, which is really, really old.
We could probably be a bit more aggressive, tho, like supporting up to 2016/2017 year CPUs tho, which is likely to be mid-ter of AWS/GCP offering, and 2017/2018 MacBooks.
For example, macOS Ventura does not support pre-2017 machines


Dynamically switching to mobile layout removes some UI affordances needed for desktop

Hi,
After the recent change to switch to mobile at small screen sizes, a user who opens excalidraw in a small window will be missing zoom controls that are a big part of the desktop layout. I agree that the zoom buttons aren't needed on mobile, but is there a way users on desktop can still zoom without remembering the keyboard shortcuts?
Maybe instead of switching to mobile we could put the canvas action UI behind a hamburger on desktop like we do for mobile, but keep everything else consistent?

yep that's definitely a workaround, but I feel like the lib chooses to show zoom on desktop and forward backward on mobile because of the device type, not the screen size. Forward and backward don't do much good since ctrl + z is intuitive, but zooming is less so, which is why there are buttons!

On mobile there's not much space and we're struggling to fit even that which we must. Sure, you can make the argument that larger screens can fit more, but then we'd be having to decide at which breakpoints we need to disable which tools.

On mobile there's not much space and we're struggling to fit even that which we must. Sure, you can make the argument that larger screens can fit more, but then we'd be having to decide at which breakpoints we need to disable which tools.

Agreed, I wonder if a better option (but much more work) would be a compact desktop layout based on a breakpoint instead of switching to mobile.

We'd have to change how we do break to mobile.


net: Remove IFF_DOWN flag to compatible with Linux/*BSD

Summary
turn off interface by checking IFF_UP flag isn't set: https://github.com/apache/nuttx/issues/1838
depends on https://github.com/apache/nuttx/pull/13842
Impact
improve the combability
Testing
internal test

[Experimental Bot, please feedback here]
No, the provided PR summary does not meet the NuttX Requirements.
Here's why and how to improve it:
Missing Information in Summary:

What functional part is changed?  Be specific. Which network driver? Which part of the networking stack?
How does it work?  Explain the logic of checking IFF_UP to turn off an interface.  Don't assume reviewers understand the context from just the issue number.
NuttX Apps Issue/PR:  If this change affects any NuttX applications, provide those references.

Impact:

Improve Compatibility:  This is too vague.  How does it improve compatibility? With what? Be specific.
Other Impact sections:  Many are likely relevant:

Existing Feature Changed?  Turning off an interface is likely an existing feature, so "YES" and describe how the behavior is modified.
Impact on User?  Will users need to change configurations or how they interact with the network stack due to this change?
Impact on Hardware?  Does this affect specific architectures or network hardware?
Documentation?  If the behavior changed, documentation likely needs updating.

Testing:

"Internal test" is not sufficient. Provide details:

Host OS and Compiler:  (e.g., Linux, GCC 12.2.1)
Target Architecture and Board: (e.g., ARM, STM32F4 Discovery)
Relevant Log Snippets:  Show the problem before the change and the improvement after. Highlight the key differences.

Example of an Improved Summary Section:
## Summary

This PR addresses a compatibility issue where network interfaces were not being correctly disabled, as reported in issue #1838.

The change modifies the `[driver_name]` network driver's `[function_name]` function (which handles disabling the interface) to check the `IFF_UP` flag. If the flag is not set, indicating the interface is already down, the driver will now skip the steps to bring it down, preventing potential errors or unexpected behavior.

This PR depends on the changes introduced in #13842, which ensures the `IFF_UP` flag is correctly managed.

Remember: A good PR description saves everyone time and increases the chances of your contribution being accepted quickly.

@xiaoxiang781216 could you please check for issues on ifconfig? Seems it is not properly changing the information regarding UP, DOWN, RUNNING.
I'm trying to ifdown and ifconfig shows it is still up.
Here's what I had before this change:
nsh> ifup wlan0
ifup wlan0...OK
nsh> ifconfig
wlan0	Link encap:Ethernet HWaddr 60:55:f9:f6:06:04 at UP mtu 576
	inet addr:<IP_ADDRESS> DRaddr:<IP_ADDRESS> Mask:<IP_ADDRESS>

nsh> ifdown wlan0
ifdown wlan0...OK
nsh> ifconfig wlan0
wlan0	Link encap:Ethernet HWaddr 60:55:f9:f6:06:04 at DOWN mtu 576
	inet addr:<IP_ADDRESS> DRaddr:<IP_ADDRESS> Mask:<IP_ADDRESS>

nsh>

Here's what I have now, seems to be stuck:
nsh> ifconfig
wlan0	Link encap:Ethernet HWaddr 60:55:f9:f6:06:04 at UP mtu 576
	inet addr:<IP_ADDRESS> DRaddr:<IP_ADDRESS> Mask:<IP_ADDRESS>

nsh> ifdown wlan0
ifdown wlan0...OK
nsh> ifconfig
wlan0	Link encap:Ethernet HWaddr 60:55:f9:f6:06:04 at UP mtu 576
	inet addr:<IP_ADDRESS> DRaddr:<IP_ADDRESS> Mask:<IP_ADDRESS>

Thanks for reporting, I am looking into it.

@fdcavalcanti Whether your local environment contains the patch https://github.com/apache/nuttx/pull/13842 ?

Yes, just checked test reports and it's ok. Thanks.


FreeBSD 12 binary for .NET 7

Hello,
Thanks a lot for this work!! I have just seen that you have been able to publish dotnet7 binaries for FreeBSD 13, would you be able to do the same for FreeBSD 12 since it is supported through 2024
Best

Crossbuilds use FreeBSD 12 docker images.
Servarr team: https://github.com/Servarr/dotnet-bsd
Mine: https://github.com/Thefrank/dotnet-freebsd-crossbuild/

@Thefrank thanks for reply. @nkosi23 please use Frank's build (I did quick check under 12.3 and it works fine at first glance).
If you want, you can compile it yourself:

bootstrap SDK needed to compile v7 using Linux crossbuild (you can use Frank's build for that)
compile v7 under your FreeBSD 12 box using my scripts/patches
if you really need native build, let me know I will try to make one in spare moment of time

btw. crossbuild from 12 seems to work fine under 13 also.


How to get landsea.zarr file?

Thanks for the code.
I have tried to execute train/run.py,  but the landsea.zarr is missed? How I get this file?
self.landsea = xr.open_zarr("/home/bieker/Downloads/landsea.zarr", consolidated=True).load()
(If it's because I'm blind, please don't mind -.-)
Thanks.

Its available here: https://huggingface.co/datasets/openclimatefix/gfs-reforecast/blob/main/data/invariant/landsea.zarr.zip, it is just the ERA5 land/sea mask, so its also available from CDS and ECMWF websites too.

Its available here: https://huggingface.co/datasets/openclimatefix/gfs-reforecast/blob/main/data/invariant/landsea.zarr.zip, it is just the ERA5 land/sea mask, so its also available from CDS and ECMWF websites too.

Thanks.
I'm a freshman in weather forecast. Thanks for the patient answer, and I am trying to reproduce Graphcast based on your code.
Now, I try to execute the train/run.py. However, I have found some issues in the code.
At present:

the default value of resulution for XrDataset  should be "2deg", not "2.0deg", which may leads to errors about data shape.
I find that there are nan values in inputs, which cause that the output of model contains nan. Then, the programs raise assertion. (because the variance of "sr" = 0.0 which is used to normalize landsea data). However, I remove "sr", still crash.

[1,     1] loss: 0.144 Time: 2.1553783416748047 sec
[1,     2] loss: 0.145 Time: 1.466963529586792 sec
[1,     3] loss: 0.153 Time: 1.4628980159759521 sec
Traceback (most recent call last):
File "run.py", line 497, in
loss = criterion(outputs, labels)
File "/home/work/dongzhe05/anaconda3/envs/torch/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
return forward_call(*input, **kwargs)
File "/ssd3/dongzhe05/projects/graph_weather/graph_weather/models/losses.py", line 57, in forward
assert not torch.isnan(out).any()
AssertionError

Thanks again.

 Yeah, I'm not sure for sure why that's the case.

Hello. The static geographic data was normalized by subtracting the mean and dividing by the standard deviation in the code. However, in const.py, LANDSEA_STD = {“sr”: 0.0,”} has a zero standard deviation for the variable sr, which causes it to approach infinity after normalization. This may result in nan values in the model prediction data. After commenting out the corresponding code, the code can run normally.


Support attribute 'required' in composedModel

This PR adds support for the 'required' attribute in ComposedModel, allowing to specify fields defined in referenced definitions as mandatory for this definition.
It requires https://github.com/swagger-api/swagger-core/pull/3068

please build

please build

Please build?

@Tiller - that is the phrase you can use to trigger the pull request job in Jenkins.


Skip some browser history entries

Skip some browser history entries

ping @nkbt, @halhenke

Overall, looks pretty good to me, can you please check why e2e tests are failing?

Published as<EMAIL_ADDRESS>


Should Style/LambdaCall be disabled for Jbuilder files?

Idiomatic Jbuilder usage looks like json.(@object, :method_a, :method_b) (see JBuilder readme). With default RuboCop settings this code will trigger the Style/LambdaCall cop. So maybe this cop should be disabled by default for Jbuilder files?

I believe that what you really want to do is to configure the cop to enforce that lambda call style in JBuilder files, rather than ignoring them. We don't have support for per-file configuration in RuboCOp, but we do have per-directory configuration. You achieve it with a local .rubocop.yml file like so:
 /tmp/3402$ find . -type f | xargs head
==> ./app/views/messages/show.json.jbuilder <==
# app/views/messages/show.json.jbuilder

json.content<EMAIL_ADDRESS>json.(@message, :created_at, :updated_at)

json.author do
  json.name @message.creator.name.familiar
  json.email_address @message.creator.email_address_with_name
  json.url<EMAIL_ADDRESS>format: :json)
end

==> ./app/views/messages/.rubocop.yml <==
inherit_from: ../../../.rubocop.yml

Style/LambdaCall:
  EnforcedStyle: braces

==> ./.rubocop.yml <==
inherit_from: .rubocop_todo.yml

==> ./.rubocop_todo.yml <==
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2016-09-18 15:47:26 +0200 using RuboCop version 0.42.0.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.

# Offense count: 1
# Cop supports --auto-correct.

Can this be closed, @noniq, @jonas054? 🙂


Create Python_Interview_question

Short Description

Acceptance Criteria

Thanks @abhisek247767  for your contribution. :tada:  Please star :star: the repo, then I will merge your PR.

Done 👍


qtumd does not use backed up data

After restarting a crashed node using the same volume, the node starts syncing the chain again. Is this expected? It will be good if the stored data can be reused because it takes a long time to download the data and sync with the chain again

Adding memory to the machine seems to have fixed this