Moving Docker

Let me start by saying, I recognize that this isn't a DDEV issue, and I apologize for taking people's time, putting this here; but I have asked this on the Docker Github page, and haven't gotten any responses, several days later.
I have a 2012 Mac Mini, MacOS Mojave, 16gb RAM, the HDD is showing signs of dying, so before it does so, I have replaced it with an SSD. I have the HDD connected via USB, in an external case, so I still have access to that drive. I need to get my Docker Desktop moved to the SSD, so that I can get DDEV back in place, and get back to work. Can someone help me with what I need to do to move Docker? I believe I just need to set up a fresh install of Docker, and move the containers, but I'm still fairly new to dealing with Docker, so I'm not at all certain. I have been searching Google and YouTube, trying to find the answer to this on my own, and come up dry. The answers I've found all seem to be if you're on a Windows system, calling for using WSL.
I appreciate the help.

For each project, just ddev snapshot --name=before-move
Then move your files.
Then for each project ddev snapshot restore before-move
That's it. Don't worry about "moving docker"
Congrats on getting a new machine.

Many thanks! Is there any way of doing the snapshots of all projects at once, or do I need to do them one by one? Either way, it's a great help. I thought I'd have to move docker containers and a lot of other hassles. I've said before, I'll say again, Randy Fay, You the man! Thank you.

If all of your projects show in ddev list then you can do a ddev snapshot -a

Thank you, Randy. If you're ever in New England, let me know, I'll buy you lunch.


Bugfixes and image aliases

The only failure is our favorite rsync issue, so I guess my last tweak to the error handling in the rsync code didn't help...


fix: adjust types for Fontsource config

Hello 👋🏼 ,
Currently it's required to provide weights field to Fontsource family config. However, when using variable fonts providing variables field is enough and you even get a warning if you provide both of them. I've adjusted the types so it reflect the behavior better.

Hi @pawelblaszczyk5 thanks for your contribution!


mots_common/io.py does not support folder structure for MOTS dataset?

If one downloads the MOTS dataset from https://motchallenge.net/data/MOTS/, you get a folder structure for the training set, where ground truth files are all called gt.txt and placed in different folders for each sequence. io.py does not expect this, so load_sequences fails unless you manually move and rename these files, which seems to work as a workaround...

Hi,
there is a slight inconsistency, we first created a version of the MOTSchallenge data in the same format as KITTI and put it on https://www.vision.rwth-aachen.de/page/mots (where you still find it). Then we also put the MOTSChallene data under https://motchallenge.net/data/MOTS/ and changed the format slightly for consistency with MOT17. Probably we should modify the tools to support both formats, but I'll currently not get to this. Pull requests very welcome :)
Soon also a separate repository with tools for all datasets of motchallenge.net will be released which will handle the new format (but will then not work with KITTI).

Hi,
there is a slight inconsistency, we first created a version of the MOTSchallenge data in the same format as KITTI and put it on https://www.vision.rwth-aachen.de/page/mots (where you still find it). Then we also put the MOTSChallene data under https://motchallenge.net/data/MOTS/ and changed the format slightly for consistency with MOT17. Probably we should modify the tools to support both formats, but I'll currently not get to this. Pull requests very welcome :)
Soon also a separate repository with tools for all datasets of motchallenge.net will be released which will handle the new format (but will then not work with KITTI).

Can you show the full tree list of the project? Thank you very much.

See issue #12


Update required and add gem & science command for DG

Updated required command section in DG

Added relevant Sequence Diagram

Added gem and science command sections in SG

Added relevant Sequence Diagrams for the commands.

Might have to revise the UML diagrams as some of the methods are quite long, so to make it compact, I did not include all method calls inside the UMLs. Will have to re-visit this after discussion.
Link to DG: https://github.com/yan-soon/tp/blob/update-dg/v.1.4/docs/DeveloperGuide.md

Codecov Report

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

@@            Coverage Diff            @@
##             master     #180   +/-   ##
=========================================
  Coverage     75.48%   75.48%
  Complexity      579      579
=========================================
  Files            96       96
  Lines          1750     1750
  Branches        179      179
=========================================
  Hits           1321     1321
  Misses          345      345
  Partials         84       84

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 882a006...4a846a6. Read the comment docs.


Documentation cleanup

This PR edits the docs around some of the nodes, changes Node --> Parent if the node has children, and changes the rendering of the MyST docs as dd/dl/dt lists instead of bullet points (better styling).

This is now just pure documentation changes, going to hit merge.


fix refresh options from ajax data

this pull request fix issue #97

@bmsdave Anyway you can update this PR so conflicts are resolved?

Any possibility to resolve this PR any time soon ? It would be great to allow async loading of items.


[TS-Automute] Connection to TeamSpeak could not be established!

Heya,
I have a problem establishing your TTT-Mutebot.
I'm able to connect via telnet to my TeamSpeak server, but when im trying to start my server there is a message that says "[TS-Automute] Connection to TeamSpeak could not be established!" in errorlog.

I fixed it by myself, the problem was that my external TeamSpeak Server wasn't supportingTCP-Sockets.

Sorry, I was at work and didnt have time to answer, but im glad you resolved this issue yourself.


#30 add templates to generated files

What Does This PR Do?
This PR maps the created template files to actual generated files
Description Of Task To Be Completed
Read file from templates and write to the corresponding auto generated file.
Any Background Context You Want To Provide?
N/A
How can this be manually tested?

clone this repo git clone https://github.com/andela-iamao/react-raise.git
navigate to cloned repo cd react-raise
install dependencies npm install
Run tests npm test
Start command node index.js
look in the example folder

Screenshot(s)
N/A
What are the relevant github issues?
#30

Coverage increased (+0.3%) to 99.327% when pulling 21ece62afda6aeae86a7e367e1eb3bd1738bdf5d on feat-map-sample-to-actual-files-30 into e221996f103dec0dba401c93403eef6ca769f512 on develop.


Add line number references to extracted file header data

This is something I noticed while working on #61 / #64.
When printing warnings for missing / invalid strings I want to print the warning together with the location of where that string is.
For file headers that's currently not possible because they're being extracted using regex. This is mainly because I borrowed that code from https://develop.svn.wordpress.org/trunk/tools/i18n/makepot.php, which has been doing that for years.
However, since we already leverage a powerful gettext extraction library, I wonder if we could add a new extractor just for these file headers.
retrieve_main_file_data(), get_file_data() get_file_headers(), get_file_data_from_string(), and _cleanup_header_comment() would be affected/obsoleted by such a change.
I'm not sure how feasible it is, but it would make for a more robust solution that is more similar to the other extractors and easier to test than some old regex from WordPress core.
Also, we could make sure to get the filename / line references that way.
I guess it's the same argument as regex vs. using a DOM parser to parse some HTML in PHP.

I just saw that the Template Name: extraction already resides in \WP_CLI\I18n\IterableCodeExtractor.
We should probably consolidate this somehow.

Another benefit:
For WordPress core we wouldn't need to extract Hello Dolly separately, but simultaneously and with the correct location info.
We'd still need some way to detect whether the project is a plugin, theme, core, or something else.

Follow-up: #376

See https://github.com/wp-cli/i18n-command/pull/377#issuecomment-1861060828 for how this could maybe be achieved with regex.


Adds Mark Join Type, Delim Get and Delim Join Relations

Thanks for the quick feedback, @EpsilonPrime , It is much appreciated!! :-)

I have the same problem.  It should have been DElim or DupElim for clarity.

@EpsilonPrime
I've updated the site/docs/relations/physical_relations.md to contain a description of delim join/get.
Let me know if you have any comments :-)!


refactor(tests): deprecate test-renderer in favor of testing-library

The type of this PR is: Enhancement

This PR resolves []
Description

After a great suggestion from @gkartalis to officially deprecate test-renderer, same as enzyme, we made this PR. It can still be used, but danger will nudge us when new files use it, same as enzyme.
PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have tested my changes on iOS and Android.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a changelog entry below or my changes do not require one.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

deprecate test-renderer for tests, in favor of testing-library - george, pavlos

This PR contains the following changes:

Dev changes (deprecate test-renderer for tests, in favor of testing-library - george, pavlos)

  Generated by :no_entry_sign: dangerJS against 5c17cbe6d0b83a76465eae2ba3c144925ed57a66


Stale-while-revalidate style cache strategy

For some use cases where we don't necessarily need the latest data as soon as ttl is passed, it can be useful to be able to specify a separate interval for staleness so we can continue serving data that's considered stale while we trigger a refetch in the background.
This feature is similar in principle to #14, and can possibly share some implementation details.
Proposal:
Accept a new staleWhileRevalidate: number argument (or maybe staleWhileRefetch? since we're not necessarily going to be doing any revalidation here), specifying the staleness interval.
Between the ttl and the staleness interval, data is considered stale, and any requests for it will resolve immediately with stale data while triggering a deduped refetch of the data in the background. After the interval, stale data must not be used and requests for the data must await on the refetch of the new data before being served.
Defaulting to 0 should preserve existing behavior where no stale data is ever served.
Thoughts?
I have a bunch of higher priority customer-facing stuff I have to work on over the next few weeks before I'm going to be able to work on an optimization making use of this, but I'd be happy to take a crack at a PR if nobody has tackled it by then!

Go for it, it would be amazing!

done at https://github.com/mcollina/async-cache-dedupe/pull/45


Inconsistency in generic function type equality between Dart VM and webdev

Dart 2.0.0-dev.69.0 (Unknown timestamp) on "linux_x64"
https://github.com/vincentvanpeer/dartfunctiongenericbug contains a method that prints the equality between a type def and a generic type, which in the implementation of both the test and the webapp, contains the same type def.
When running the unit test, both in the VM and in Chrome, I get the same expected result.
$ pub run test
00:01 +0: loading test/lib_test.dart
T == MyFunction: true
No tests ran.
$ pub run test -p chrome
00:07 +0: compiling test/lib_test.dart
Compiled 8,664,184 characters Dart to 939,849 characters JavaScript in 7.07 seconds
Dart file (/tmp/dart_test_IEORVD/runInBrowser.dart) compiled to JavaScript: /tmp/dart_test_CIQGJI/test_ECSRIO/lib_test.dart.browser_test.dart.js

T == MyFunction: true
No tests ran.

However if I run the web code in Chrome, as shown below, the console prints T == MyFunction: false
$ pub global run webdev serve
[INFO] Setting up file watchers completed, took 31ms
[INFO] Waiting for all file watchers to be ready completed, took 49ms
[INFO] Building new asset graph completed, took 880ms
[INFO] Checking for unexpected pre-existing outputs. completed, took 1ms
[INFO] Running build completed, took 3.9s
[INFO] Caching finalized dependency graph completed, took 161ms
[INFO] Succeeded after 4.1s with 14 outputs (1503 actions)
Serving `web` on http://localhost:8080
Serving `test` on http://localhost:8081

This is inconsistent. I would expect the condition to return true in Chrome as well.

dart2js, vm, and ddc all agree on this now. Equality is based on the function type, not the typedef name.

Note that the test mentioned here is a less comprehensive version of the one mentioned in #32782, which is still open (and tests/language_2/type_alias_equality_test.dart incurs a run-time error where it shouldn't, for at least several configurations of the vm).


[SPARK-29159][BUILD] Increase ReservedCodeCacheSize to 1G

What changes were proposed in this pull request?
This PR aims to increase the JVM CodeCacheSize from 0.5G to 1G.
Why are the changes needed?
After upgrading to Scala 2.12.10, the following is observed during building.
2019-09-18T20:49:23.5030586Z OpenJDK 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
2019-09-18T20:49:23.5032920Z OpenJDK 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
2019-09-18T20:49:23.5034959Z CodeCache: size=524288Kb used=521399Kb max_used=521423Kb free=2888Kb
2019-09-18T20:49:23.5035472Z  bounds [0x00007fa62c000000, 0x00007fa64c000000, 0x00007fa64c000000]
2019-09-18T20:49:23.5035781Z  total_blobs=156549 nmethods=155863 adapters=592
2019-09-18T20:49:23.5036090Z  compilation: disabled (not enough contiguous free space left)

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Manually check the Jenkins or GitHub Action build log (which should not have the above).

Test build #110939 has started for PR 25836 at commit 0b11de3.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/16050/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/16051/
Test PASSed.

Test build #110941 has started for PR 25836 at commit 04d2b61.

How do you think about this, @srowen ?

We might consider UseCodeCacheFlushing instead? or in addition?
I think it's fine to increase this too, though that's getting really large. I get that the Scala compiler may need a much bigger one than usual, but what I don't know is whether it's really just stale stuff in the cache anyway.

Test build #110939 has finished for PR 25836 at commit 0b11de3.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/110939/
Test FAILed.

Test build #110941 has finished for PR 25836 at commit 04d2b61.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/110941/
Test FAILed.

Thank you for the opinion, @srowen . I'll take a look more.
BTW, the Jenkins failed with the following. It looks irrelevant.

Fist run: org.apache.spark.sql.kafka010.KafkaSourceStressForDontFailOnDataLossSuite.stress test for failOnDataLoss=false
Second run: org.apache.spark.sql.kafka010.KafkaRelationSuiteV2.default starting and ending offsets with headers.

retest this please

Test build #110957 has started for PR 25836 at commit 04d2b61.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/16062/
Test PASSed.

Test build #110957 has finished for PR 25836 at commit 04d2b61.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/110957/
Test PASSed.

@srowen . I took a look. UseCodeCacheFlushing was introduced at JDK6 by default false, but was changed at JDK7 by default true. We are already true. I checked with the following.
$ java -XX:+PrintFlagsFinal -version | grep UseCodeCacheFlushing
     bool UseCodeCacheFlushing                      = true                                {product}
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode)

Thank you, @srowen and @HyukjinKwon . Since there is no other option, we had better merge this PR~

Thank you, @srowen and @HyukjinKwon . This PR also includes a document update. Users had better increase the value in Scala 2.12.10 from now. I'll merge this PR .
Merged to master.

Oh, thank you, @wangyum !

Got it yeah looks like it's already on. This looks good. It may be why the PR builder is slower recently.

Thank you, @srowen . Sorry for rushing this.

I compile the master, and still see the warning:
[WARNING] [Warn] /Users/maxim/proj/eliminate-warning/sql/core/src/main/scala/org/apache/spark/sql/execution/streaming/sources/WriteToMicroBatchDataSource.scala:37: class WriteToDataSourceV2 in package v2 is deprecated (since 2.4.0): Use specific logical plans like AppendData instead
Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
CodeCache: size=524288Kb used=520832Kb max_used=520858Kb free=3455Kb
 bounds [0x000000011574a000, 0x000000013574a000, 0x000000013574a000]
 total_blobs=130198 nmethods=129545 adapters=560
 compilation: disabled (not enough contiguous free space left)

Then, could you investigate the missed part, @MaxGekk ?


Enable zstd in tests

Enables zstd compression in the testsuite. Builds on #8281.
Part of #5431

I'm really curious about why this all passes without https://github.com/neondatabase/neon/pull/8302 -- maybe we have a configuration issue where tests are running without vectored reads.  Let's figure this out before proceeding.

I'm really curious about why this all passes without https://github.com/neondatabase/neon/pull/8302

Yeah it's really strange. For shining more light on the issue, I've

filed #8324 for trying out completely broken vectored reads (the reads have the correct sizes but it's all just garbage data)
added a commit to this PR to break zstd decompression in non-vectored reads, to see how many of the current tests depend on compressed data with pre-vectored reads

maybe we have a configuration issue where tests are running without vectored reads. Let's figure this out before proceeding.

CI tests and benchmarks use vectored read by default. We even print out the read path config at startup (example from a random recent ci run):
2024-07-04T18:02:19.009463Z  INFO starting with get page implementation conf.get_impl=Vectored
2024-07-04T18:02:19.009471Z  INFO starting with vectored get page implementation conf.get_vectored_impl=Vectored

So after artificially introducing a corruption in this PR during reading of compressed fullpage images (just setting all returned data to the same byte), I don't see any pytest failures. On the other hand, when making vectored return 0'd out data #8324, there is a lot of failures.
As a conclusion, this means that we didn't notice the missing vectored read implementation not because there is no vectored read testing, but because there isn't any tests that cause us to compress data. This might be due to a gap in test coverage, where there is no well compressible full page images in image layers, or maybe also due to the method I chose in this PR to enable zstd: maybe it simply doesn't work?

Found the culprit: it was put_image not calling write_blob_maybe_compressed but instead write_blob. I've filed #8363 to address this oversight.

This is the newest CI run. Sadly no allure report available because of timeouts.

    Starting postgres node at 'postgresql://cloud_admin@<IP_ADDRESS>:15009/postgres'
    SIGKILL & wait the started process
  stderr:
    command failed: compute startup failed: failed to get basebackup@0/0 from pageserver postgresql://no_user@localhost:15004

    Caused by:
        0: failed to iterate over archive
        1: db error: ERROR: invalid SlruKind::Clog record: block.len()=23
        2: ERROR: invalid SlruKind::Clog record: block.len()=23

closing this, will open a new branch for further experiments.


Reverted NSC format, decoded data is always BGRA!

Please merge this one together with #3545

Integrated in #3545


Streams

They're coming.

I think @domenic has the pieces of a Stream polyfill around somewhere. We'll have to decide if we should make that an external dependency or just bundle the minimal stream implementation we need here. I think we mainly need the readable stream stuff, so maybe its not too much code. I dunno.
Also, all test coverage around this. This will probably help the FF folks check there upcoming implementation as well.
/cc @dgraham @jakearchibald @domenic

Unsure why this was closed, would love to see this feature added to the polyfill :)


broken on 30.0.2

So I installed the theme and it broke some parts of it

the mute button and menu button isnt visible

same as the checkboxes, they also dont appear when I try to tick them

Hey, seems like you are missing the icons' folder. Have you installed the theme manually?
Judging by the font looks like you are using windows, try to check if the "Catppuccin" folder in the %appdata%\Roaming\obs-studio\themes\ directory

oh yea, sorry forgot to mention the infos...
I installed there the themes asyou mentioned the Directory

here the proof though

You are missing a folder called "Catppuccin" which contains 2 subdirectories called "Dark" and "Light" that contain all the icons

Oh, that was it, thank you so much


Zero values from CPU usageNanoCores stats

Description
Upstream kubelet test that checks /stats/summary endpoint is flaky, returning a 0 value for usageNanoCores in a non deterministic way.
https://github.com/kubernetes/kubernetes/issues/122092
Steps to reproduce the issue

Install containerd 1.7.6 on Windows
Create a CPU-consuming pod (i.e. https://github.com/kubernetes/kubernetes/blob/master/test/e2e/windows/cpu_limits.go#L139)
Check the crictl stats -o json in loop and observe the fluctuation of values, bringing usageNanoCores=0 in a few requests

Describe the results you received and expected
From RPC call:
https://github.com/kubernetes/kubernetes/blob/0c645922edcc06adff43c70c02fb56751364bbb5/pkg/kubelet/stats/cri_stats_provider.go#L168

resp, err := p.runtimeService.ListContainerStats(ctx, &runtimeapi.ContainerStatsFilter{})
resp object:

[&ContainerStats{Cpu:&CpuUsage{Timestamp:1702432868648795300,UsageCoreNanoSeconds:&UInt64Value{Value:13010906250000,},UsageNanoCores:&UInt64Value{Value:0,},},
&ContainerStats{Cpu:&CpuUsage{Timestamp:1702432868653306800,UsageCoreNanoSeconds:&UInt64Value{Value:3068906250000,},UsageNanoCores:&UInt64Value{Value:0,},}]

powershell> crictl stats with -o yaml..
...
- attributes:
  cpu:
    timestamp: "1702433310289755400"
    usageCoreNanoSeconds:
      value: "3292031250000"
    usageNanoCores:
      value: "0"

What version of containerd are you using?
containerd 1.7.6
Any other relevant information
Windows 2019 - with Kubernetes v1.18.3
Show configuration if it is related to CRI plugin.
No response

fyi @kiashok

@knabben Have you seen this with previous releases of 1.7.* as well or has this started happening only with 1.7.6?

@kiashok I went from 1.6 to 1.7.6 directly

@kiashok I went from 1.6 to 1.7.6 directly

What version of 1.6 were you on?
I can start looking into this early next week (as I will be oof this week) and share an update

@kiashok I went from 1.6 to 1.7.6 directly

What version of 1.6 were you on? I can start looking into this early next week (as I will be oof this week) and share an update

1.6.24

That's curious, from 1.6.26, the usageNanoCores field is null. Kubelet should be filling the value with the correct data.
Using the command: .\crictl.exe stats -o json | ./jq.exe '.stats[] | [ .attributes.metadata.name,.cpu.usageNanoCores.value ] | @csv'
On 1.6.26 running crictl stats directly returns null
"cpulimittest-f157260b-4e6d-4f7c-81ac-57cab09f6fac,"
"cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120,"
...

On - 1.7.0, the getUsageNanoCores was introduced, returning the value.
"cpulimittest-f157260b-4e6d-4f7c-81ac-57cab09f6fac","482723941"
"cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120","495311532"

"cpulimittest-f157260b-4e6d-4f7c-81ac-57cab09f6fac","0"
"cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120","0"

"cpulimittest-f157260b-4e6d-4f7c-81ac-57cab09f6fac","0"
"cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120","0"

"cpulimittest-f157260b-4e6d-4f7c-81ac-57cab09f6fac","474698623"
"cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120","818312098"

The error is on getUsageNanoCores and newUsageNanoCores variable calculation; it's expected that currentUsageCoreNanoSeconds will be lesser than oldStats.UsageCoreNanoSeconds, what is NOT true when >1 operations are updating the containerStats concurrently.
For this test, I have printed the currentUsage ensuring its equal the oldstats usage, and the reason its returning 0 as newNanoCores;
Kubelet/containerd (?) is calling the CRI API by default every 10 seconds and the reason of this inconsistent behavior in the tests.
time="2024-01-01T11:51:04.809688400-08:00" newusagenanocores: 784996914    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:05.167099900-08:00" newusagenanocores: 0            currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:06.005670800-08:00" newusagenanocores: 661992760    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:06.264280600-08:00" newusagenanocores: 173723645    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:07.113866000-08:00" newusagenanocores: 678618410    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:07.363939800-08:00" newusagenanocores: 0            currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:08.361238700-08:00" newusagenanocores: 707081972    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:08.478596300-08:00" newusagenanocores: 0            currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:08.925643000-08:00" newusagenanocores: 420321313    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:09.553239400-08:00" newusagenanocores: 521174744    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:09.614259100-08:00" newusagenanocores: 0            currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:10.789567600-08:00" newusagenanocores: 507066175    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:10.792568100-08:00" newusagenanocores: 0            currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000
time="2024-01-01T11:51:11.924844100-08:00" newusagenanocores: 563803701    currentusage:<PHONE_NUMBER>000   oldusage:<PHONE_NUMBER>000

--
The first loop of curling /stats/summary for this node and filtering only the container
559851131       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
557534273       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
664091996       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120

The second loop running in parallel
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
543254743       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
505895139       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
536849438       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
799156810       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
353953356       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
621161108       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
280610488       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
548034965       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120
0       cpulimittest-b71b81c1-9ffa-4078-9ae4-aecbe4bf9120

@fuweid this seems to occur on Linux as well, could we add that label as well?

This 0 return behavior in the usageNanoCores field can also be observed in the Linux gRPC CRI endpoint.

fyi @bobbypage @haircommander - This doesn't seem to affect Linux today since kubelet replaces the value with cAdvisor value but might be more of an issue once cri-only metrics moves to beta?

The error is on getUsageNanoCores and newUsageNanoCores variable calculation; it's expected that currentUsageCoreNanoSeconds will be lesser than oldStats.UsageCoreNanoSeconds, what is NOT true when >1 operations are updating the containerStats concurrently.

@knabben and I looked into this a bit more and found that since this is calculated value and the value is calculated from last time it stored, and it gets store each time, when two calls come in back to back we get 0 (as would be expected since the value hasn't changed between the two calls as they were run at essentially the same time, this partly due to the granularity of the value recorded as well)
So while I don't think this is necessarily a bug it does lead to an inconsistent value that is being returned for usagenanocores depending on when the cri endpoint is called.  This is handled in kubelet via only one caller being able to update the cache that kubelet use to manage:
https://github.com/kubernetes/kubernetes/blob/7ec1a89a509906dad9fd6a4635d7bfc157b47790/pkg/kubelet/stats/cri_stats_provider.go#L112-L122

// ListPodStatsAndUpdateCPUNanoCoreUsage updates the cpu nano core usage for
// the containers and returns the stats for all the pod-managed containers.
// This is a workaround because CRI runtimes do not supply nano core usages,
// so this function calculate the difference between the current and the last
// (cached) cpu stats to calculate this metrics. The implementation assumes a
// single caller to periodically invoke this function to update the metrics. If
// there exist multiple callers, the period used to compute the cpu usage may
// vary and the usage could be incoherent (e.g., spiky). If no caller calls
// this function, the cpu usage will stay nil. Right now, eviction manager is
// the only caller, and it calls this function every 10s.

Since this is related to come changes from k/k I've also written up explanation from kubelet perspective with a few options to solve it. Please comment on https://github.com/kubernetes/kubernetes/issues/122092#issuecomment-1942699262 to avoid splitting conversation


Use Sequence instead of list[] in parameters to build_primer_pairs()

Fixes #84

I don't see any reason not to implement coderabbit's suggestion here, I never would have caught that

I went the other way - the JetBrains section at the bottom was commented out and not that useful, and I think it's nice to have the ignores for all the IDEs in the same place.

Makes sense to me.
I was more commenting that I never would have noticed the duplication - I'm pretty lenient about additions to the gitignore 😅


Add the ability to change internal resolution of emulated games

I have a 720 display and steam-buddy configures on the fly retroarch cores to render at 1080.
My PC struggles in some games to render at a such high resolution ane changing the resolution to a lower one could improve the experience.
This modification could be made by adding an option in the settings menu or even just moving the configuration files to the home directory

Thanks! I didn't know about that feature!
I think selecting it manually would be better for people with custom resolutions


Add note for when multiple pods are started for the same job index

Add note to clarify what happens when multiple pods are started for the same index. Ref #31719

/lgtm

While I like the wording of this PR, I don't know if this covers the request in #31719.
People want to know what are those "rare" occurrences. But we don't know the answer yet.
So I'm ok merging this PR, but not to close the issue.

/assign @sftim

Change the PR description to say "Ref #31719", instead of "Fixes #31719"

Done. Thanks!

Is this PR ready for approval @sftim? Thanks

@alculquicondor , can you provide an lgtm as a tech review from SIG Apps regarding the change proposed in this PR

After nit, LGTM as job approver

/lgtm
again.

Thanks
/sig apps
/approve


PhotoIndex - jtb136

Use master password, both locally and production

Now using login.php and susers database


Refactor unit tests

Moved tests for building URL.
Replace XCTAssert with XCTAssertEqual (now it supports Optional).

Replace XCTAssert with XCTAssertEqual (now it supports Optional).

:+1:

Seems good to go. :ship:


fuge generate help

I'd like to see fuge generate help which should list the "official repos" which can be pulled from, also - we need an official repo list

also .. other than this (offical repo list)  how is fuge generate superior to git clone?
also .. what if fuge generate with no args cloned a "primary" official repo

also .. do we have any repos atm?

For now fuge generate is gone (aliased to clone) and clone is just a simple pull to make things convenient. This frees Generate up to be a proper (working) solution again.


Which CUDA version is used in LLava 1.5 training?

Describe the issue
Issue:
I have a problem reproducing the GQA result, mine is 58.+(even repeated for 3 times), but the reported is 62.  I use the same data and scripts when doing the visual instruct fine-tuning.  I got transformers=4.31.0, and torch=2.0.1 in my environment. My question is whether the Cuda version (mine is 11.7) affects the results. Which Cuda version were you using in the training?

hi @cathyxl
same question，any update?

also same question，any update?


Caddy wildcard tls issuing certs problem in combination with binding to specific ip

1. What version of Caddy are you running (caddy -version)?
CADDY 0.9.3, built via
go get github.com/mholt/caddy/caddy

2. What are you trying to do?

3. What is your entire Caddyfile?
:443 {

        bind <IP_ADDRESS>
        proxy / http://<IP_ADDRESS>:8080 {
            transparent
            header_upstream Host {host}:443
        }

        tls {
            max_certs 50
        }

        gzip
        errors visible

}

:80 {
	bind <IP_ADDRESS>
        proxy / http://<IP_ADDRESS>:8080 {
        transparent
       header_upstream Host {host}:80
        }
        gzip
}

4.  What did you expect to see?
serving https for all sites that resolve to this host
6. What did you see instead (give full error messages and/or log)?
On start of caddy I can request a url with my browser, e.g. https://test.domain.nz and caddy serves it fine. If I then request https://test2.domain.nz after (without caddy restart), it fails with
2016/12/15 16:05:08 [INFO] Obtaining new certificate for test2.domain.nz
2016/12/15 16:05:08 [INFO][test2.domain.nz] acme: Obtaining bundled SAN certificate
2016/12/15 16:05:08 [INFO][test2.domain.nz] acme: Trying to solve HTTP-01
2016/12/15 16:05:09 http: proxy error: dial tcp <IP_ADDRESS>:5033: getsockopt: connection refused
2016/12/15 16:05:10 http: TLS handshake error from <IP_ADDRESS>:48202: [test2.domain.nz] failed to get certificate: acme: Error 403 - urn:acme:error:unauthorized - Invalid response from http://test2.domain.nz/.well-known/acme-challenge/sbm0Ck1kJo45z8tKnBO89HoQV5eXeyT1isps15D4tEE [<IP_ADDRESS>]: 502
Error Detail:
        Validation for test2.domain.nz:80
        Resolved to:
                <IP_ADDRESS>
        Used: <IP_ADDRESS>

Note the proxy error... - this doesn't always happen straight with the next new domain but it will eventually fail
If I remove the bind in the Caddyfile to make caddy listen to 0:0:0:0:443 (not a specific IP), it works without a problem.
7. How can someone who is starting from scratch reproduce this behavior as minimally as possible?
Build a test server with the following:
cd /usr/local/
wget https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz
tar -xzf go1.7.3.linux-amd64.tar.gz
apt install git

go get github.com/mholt/caddy/caddy

install startup script, use caddyfile as provided (replace IPs to match yours), test via a domain that resolves to that IP.

What's in your hosts file?

What's in your hosts file?

hosts file contains one line with
<IP_ADDRESS> servername.fqdn servername localhost

And what's port 5033 all about?

Looking at the code its this:
DefaultHTTPAlternatePort = "5033"

What's the actual IP you're binding to?

The second public IP address on that server where the main IP is in use with apache and caddy is supposed to bind to the second public IP. Unfortunately in my scenario I can't use the main IP for other system integration reasons, e.g. apache2 configs are in config management control.

You know that redacting the domain names is pointless, right? Because they go into public CT logs anyway

No, I didn't know :) it's general habit of mine to redact as much as possible, hehe

Looking at the code its this:

Oh oops :smile: I forgot about that -- I just wrote my reply as I was headed out the door. Thanks for finding that. ;)
Are you binding to an IP other than the one the hostnames resolve to?

Are you binding to an IP other than the one the hostnames resolve to?

My domains resolve to the IP that caddy binds to, yes. The host name of the server though resolves to the main IP, not caddy's IP :)

I see... I'll try to reproduce this...

@tgmedia-nz  It's a miracle. I am able to reproduce this. Working on a fix.

The fix will go out in the next release, to get it now just build from source. :) Thanks!


Item refactoring

Plan to refactor Item to work with multiple components, The list of components that need to be adapted is as follows:

Navigation
List
Select
Command
Tabs
???...

Plan to discard the CommandButton, use Item instead.


sqlite

having some issues with plugins giving the error
failed to load native library:sqlite-<IP_ADDRESS>-432cc383-90c2-43a0-997b-d5891410b001-libsqlite jdbc.so. osinfo: Linux/x86_64
updating sqlite on the node doesnt solve it.

These are docker containers and thus the base system has nothing to do with it...

Going to need way more information to begin narrowing down this issue to fix it.

It could also be noted that FlatronEZ was having a problem with a custom Docker image. I believe it contained SQLite libraries and failed to build a container, however when the SQLite libraries were removed by him, it had no issue.
FlatronEZ claims to have been using this: https://hastebin.com/yigohihena.nginx
And received this error:
19:15:25.494Z ERROR wings: (HTTP code 400) unexpected - No command specified
Error: (HTTP code 400) unexpected - No command specified
at /srv/daemon/node_modules/docker-modem/lib/modem.js:239:17
at getCause (/srv/daemon/node_modules/docker-modem/lib/modem.js:269:7)
at Modem.buildPayload (/srv/daemon/node_modules/docker-modem/lib/modem.js:238:5)
at IncomingMessage. (/srv/daemon/node_modules/docker-modem/lib/modem.js:214:14)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)

That literally has nothing to do with the issue above.

Both involve an error through SQLite which may cause them to be related in the future.

No, that is not anything related. One is clearly a daemon configuration error, the other is clearly a container error.

Does the image in question actually have sqlite installed? If not we should add it as it is pretty common for MC server plugins...

@schrej I'm not too good with docker, but taking a quick glance through. I'm not seeing it. This would be something useful to add as a lot of plugins have SQLite as an option.


Add Firefox support for nice radiobuttons and checkboxes

see https://github.com/modilabs/enketo/issues/415
Awaiting Firefox bug fix.

done long time ago


Added test for nova:posts

When trying to import package, import fails because of missing dependency on nova:events
meteor test-packages nova:posts
[[[[[ Tests ]]]]]

=> Started proxy.
=> Started MongoDB.
~/.meteor/packages/meteor-tool/.1.4.2_3.1rd9djy++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
                        throw(ex);
                        ^

Error: Can't find npm module 'meteor/nova:events'. Did you forget to call 'Npm.depends' in package.js within the 'modules-runtime' package?
...snip...
=> Exited with code: 1

Adding<EMAIL_ADDRESS>to Package dependency resolves this issue.
To validate, comment out the import for nova:events.
This will halt the test and fail.

Thanks for the PR!
That's a nice catch, indeed nova:posts depends at the moment on nova:events, because of this Posts.increaseClicks method: https://github.com/TelescopeJS/Telescope/blob/master/packages/nova-posts/lib/server/routes.js#L11-L27
Instead of making nova:posts depending explicitly on nova:events, what about having this dependency optional thanks to a callback?
I mean, something like:
// same file nova-posts/lib/server/routes.js

Picker.route('/out', ({ query}, req, res, next) => {
  if(query.url){ // for some reason, query.url doesn't need to be decoded
    const post = Posts.findOne({url: {$regex: escapeStringRegexp(query.url)}});

    if (post) {
      const ip = req.headers && req.headers['x-forwarded-for'] || req.connection.remoteAddress;
      runCallback('posts.click.async', {post: post, ip}); // here is the modification
      res.writeHead(301, {'Location': query.url});
      res.end();
    } else {
      // don't redirect if we can't find a post for that link
      res.end('Invalid URL');
    }
  } else {
    res.end("Please provide a URL");
  }
});

And we would move the code of Posts.increaseClicks into the nova:events package, in a new file called callbacks.js, and attach it to a posts.click.async callback event.
It would open the gate for a lot of new modular stuff like logging client & server-side actions in the event collection, sending data to google analytics or intercom or whatever service:
➡ collection.new.async/ collection.edit.async / collection.remove.async -> log event in db? 🌮
➡ collection.new.sync/ collection.edit.async / collection.remove.async -> log event to any connected metric service (thanks to segment.io?)?
Would it make sense? cc @sonnygauran @SachaG

Sure @xavcz, touching base with you in Slack on this.

Closing after discussion on Slack \o/
Thanks for the heads up, will implement that this week! 🚀 :octocat:


Feat/recover lost executors

Just curious, will this PR resolve https://github.com/oap-project/raydp/issues/364 ?
Also there are conflict with master, can you rebase @KiranP-d11 ?

@pang-wu Yes, its for the issue https://github.com/oap-project/raydp/issues/364.
Currently this PR has multiple changes i.e fixes for lost executors and dynamic core resizing (inspired from here).
I will separate this into multiple PRs and will update this PR to have only the changes for recovering lost executors.


Add search input title to resolve pa11y finding

This is a bug fix.

Summary
This adds a title attribute to the search bar for the sake of screen-readers, which will reduce an accessibility error that pa11y found (which I first saw on my personal blog).

Context
Resolves #2180.

@SeanKilleen  https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search I see name but I do not see title as a valid attribute of search input.

I don't think this is needed. You don't need to add a title to a search input.
Adding this would mean there would be an annoying unnecessary tooltip to users who don't use screen readers

@inetbiz happy to consider other attributes besides title. If you refer to #2180, the failure message lists some options. Let me know if you have a preference.
@coliff, I hear you on the use of titile, check out #2180 and let me know what it should be.
The point of this PR is that I'm trying to improve the lighthouse score of my site and it's accessibility, so I'm using an automated tool called pa11y. This is one of the errors pa11y finds on all of my pages, and I was able to resolve that error locally by overriding the theme and using this approach. I figured if I fix these things at the theme level, everyone benefits from the increased accessibility and lighthouse score (which also impacts SEO).

As stated by others, I don't think this is needed. Is it possible the pa11y tool you're using is detecting false positives? I've never used it personally.
If you take the MM starter site which has site search enabled and run it through Google's Lighthouse auditing tool it doesn't mention any issues with the search input.

Accessibility is scored a 81 and the issues it's flagged are for some ancillary text in the footer because it thinks the contrast ratio is too low.

And a pagination link that is disabled doesn't have a discernible name for screen readers.
Both of these could likely be improved, but in the grand scheme of things they appear to be minor.

And the SEO score of 99 isn't 100 because of the search input. It's because this chain link icon's tap target is smaller than the recommended 48 x 48px size. Which I suppose could be increased with padding, but likely will mess with the layout.

Fair points all around. Let me do a little bit more research on this and come back. My understanding is it's tied to the WCAG 2.0 AA level of compliance, which may be stricter than what Google considers (they may only aim for A level compliance).
My understanding is that adding one of these attributes makes it easier for tools that use accessibility APIs, but I'll try to find the backing for it if folks aren't willing to consider this change or similar without it.
I would also suggest that the contrasting colors on links is only minor if you don't have a disability that then prevents you from reading those links, which is important to me as someone who blogs. But that's easy enough to override so I'm not worried about it at a theme level.

The correct way to make the search input more accessible would be to add a label.

    Search
    <input type="search" id="search" aria-placeholder="Enter your search term..." class="search-input" tabindex="-1" placeholder="Enter your search term...">

The screen-reader only class is applied to the text so it's not shown on the front-end, but by using for attribute and pointing it to the id of the search input it now get's a proper label.
Before:

After:

According to the W3 to proper way to label a control form is how I've done above, or if you don't want to use the label element you can add aria-label="Search" directly to the search input.
They also mention adding a title as you have, but it seems as if that approach is frowned upon.

Using the title attribute
The title attribute can also be used to identify form controls. This approach is generally less reliable and not recommended because some screen readers and assistive technologies do not interpret the title attribute as a replacement for the label element, possibly because the title attribute is often used to provide non-essential information. The information of the title attribute is shown to visual users as a tool tip when hovering over the form field with the mouse.
ref: https://www.w3.org/WAI/tutorials/forms/labels/

I'm happy to apply that approach. Would you be ok if I modified the PR as such?

@SeanKilleen

I would also suggest that the contrasting colors on links is only minor if you don't have a disability that then prevents you from reading those links, which is important to me as someone who blogs. But that's easy enough to override so I'm not worried about it at a theme level.

Fair point. I only mentioned it's minor because those links are minor and not something that is important for the content. They're purposely low contrast to diminish their importance on the page e.g. footer copyright and other "byline" text.
This is why I included the "high contrast" skin which pumps up the contrast on all elements.

Oh nice! I wasn't aware of the high contrast skin; great tip.
I'll look around a bit more and either close this or provide more info.

another noteworthy tip is, I saw @mmistakes Lighthouse screenshots, and they were from an older version of Lighthouse. The Lighthouse test built-in to Devtools of shipping Chrome is always an older version. To get the latest version (<IP_ADDRESS> at time of writing - which has new and improved audits - including fixes for accessibility audits) - use the version from the Chrome webstore.
REF: https://github.com/GoogleChrome/lighthouse/blob/master/changelog.md
Chrome Extension: https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk

@coliff great tip, thanks!
Since I honestly don't have enough time to research this right now, I don't want to leave a PR hanging out here. Going to close this. Thanks for the feedback so far! If I find more information on the source, I"ll update and address a little more effectively.


Capture SVG (the title of a chart generated by highcharts.js has been double-drawing)

hi, I have worked with highcharts for generating charts and html2canvas for capturing images.
I have the following problem, the title of a chart generated by highcharts.js has been double-drawing when  capturing images of the chart...
I have refered  to implement inline SVG rendering #267 -set fontFamily, but it does not work with the title,someone else has Happened this?
This is the code hcode

@lihui2015 Try this setting:
...
style: {
  fontFamily: 'Arial, sans-serif'
}
...

It works in my bar Highcharts.js chart.

I had this problem as well. This post on Stack Overflow solved it for me: http://stackoverflow.com/questions/34042440/using-html2canvas-to-render-a-highcharts-chart-to-pdf-doesnt-work-on-ie-and-fir


On Mixing QOpenGLWidget and QWgpuCanvas...

Hello,
I know, I know this sounds bad and it is but I would like to pick your brain and maybe find out what is going on.
So I'm trying to roll some pygfx widgets  into an existing PySide6 application that uses QOpenGLWidget and I noticed that the host application stops refreshing properly when I do that. I was wondering if there was an idea as to what could be going on.
I made a small example that does not reproduce the same behaviour but one that is comparable. Here, if both the QWgpuCanvas and QOpenGLWidget are present in the same windows, the QWgpuCanvas widget does not seem to work at all. However when commenting layout.addWidget(self._gl) and uncommenting # self._gl.show(), the QWgpuCanvas gets back in business:
import random

from PySide6 import QtCore, QtWidgets, QtGui, QtOpenGLWidgets
from wgpu.gui.qt import WgpuCanvas

import pygfx as gfx

class Main(QtWidgets.QWidget):
    def __init__(self):
        super().__init__(None)
        self.resize(640, 480)

        # Creat button and hook it up
        self._button = QtWidgets.QPushButton("Add a line", self)
        self._button.clicked.connect(self._on_button_click)

        # Create canvas, renderer and a scene object
        self._canvas = WgpuCanvas(parent=self)
        self._renderer = gfx.WgpuRenderer(self._canvas)
        self._scene = gfx.Scene()
        self._camera = gfx.OrthographicCamera(110, 110)

        # Hook up the animate callback
        self._canvas.request_draw(self.animate)

        self._gl = QtOpenGLWidgets.QOpenGLWidget()
        # self._gl.show()

        layout = QtWidgets.QVBoxLayout()
        self.setLayout(layout)

        layout.addWidget(self._gl)
        layout.addWidget(self._canvas)
        layout.addWidget(self._button)

    def _on_button_click(self):
        positions = [
            [random.uniform(-50, 50), random.uniform(-50, 50), 0] for i in range(8)
        ]
        line = gfx.Line(
            gfx.Geometry(positions=positions), gfx.LineMaterial(thickness=3)
        )
        self._scene.add(line)
        self._canvas.update()

    def animate(self):
        self._renderer.render(self._scene, self._camera)

if __name__ == "__main__":
    app = QtWidgets.QApplication([])
    m = Main()
    m.show()
    app.exec()

Cheers,
Thomas

I can reproduce this behavior on MacOS, although the self._gl.show() does not seem to matter. I also get this sweet ominous message:
QOpenGLContext::makeCurrent() called with non-opengl surface 0x6000002b9f30
QRhiGles2: Failed to make context current. Expect bad things to happen.

It looks like OpenGL gets confused by the presence of the wgpu surafce, and this somehow also causes it to not be drawn 🤔
Relevant code:

The wgpu Qt widget sets some flags and overrided paintEvent: https://github.com/pygfx/wgpu-py/blob/c5c8b422c8ea73a85dad27479a7a3a71f3eaf015/wgpu/gui/qt.py#L133-L157
Wgpu-native requires a surface id to draw to the widget/window, which is obtained with this (platform dependent) code: https://github.com/pygfx/wgpu-py/blob/main/wgpu/backends/rs_helpers.py#L92

BTW: I'd recommend using from wgpu.gui.qt import WgpuWidget. This represents the widget for embedding, while the WgpuCanvas is intended to create a toplevel window. This does change the example a bit for me: it at least shows a black widget instead of nothing (at one point it also contained all sorts of artifacts).

Thanks @almarklein!
I just used WpuWidget and confirming that at least I get the viewport. I'm actually running on macOs (Apple M1 Max - 13.4.1):
(ocioview-py3.11) Eris:ocioview kelsolaar$ python
Python 3.11.4 (main, Jun 20 2023, 17:23:00) [Clang 14.0.3 (clang-14<IP_ADDRESS>.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygfx
>>> pygfx.__version__
'0.1.14'

but I don't get any messages!

I'm on an Apple M1 pro 14.0 with:
Python 3.9.9 (main, Jan 21 2022, 23:56:32)
[Clang 13.0.0 (clang-13<IP_ADDRESS>)] on darwin
>>> import PySide6
>> PySide6.__version__
'6.4.3'

Ah, that's it: I updated to the latest PySide (6.5.3) and now the error messages are gone.

Cool, at least we are on the same line! I will try to dig some more over the weekend.

Hehe, does not solve the problem, but you could consider installing an older PySide to get these messages and know things are bad without having to check the window.

Do you think it is a dead end?

Interestingly enough, when the widgets are separated, it is fine:
import random

from PySide6 import QtWidgets, QtOpenGLWidgets
from wgpu.gui.qt import WgpuWidget

import pygfx as gfx

class Main(QtWidgets.QWidget):
    def __init__(self):
        super().__init__(None)
        self.resize(640, 480)

        # Creat button and hook it up
        self._button = QtWidgets.QPushButton("Add a line", self)
        self._button.clicked.connect(self._on_button_click)

        # Create canvas, renderer and a scene object
        self._canvas = WgpuWidget(parent=self)
        self._renderer = gfx.WgpuRenderer(self._canvas)
        self._scene = gfx.Scene()
        self._camera = gfx.OrthographicCamera(110, 110)

        # Hook up the animate callback
        self._canvas.request_draw(self.animate)

        layout = QtWidgets.QVBoxLayout()
        self.setLayout(layout)

        layout.addWidget(self._canvas)
        layout.addWidget(self._button)

    def _on_button_click(self):
        positions = [
            [random.uniform(-50, 50), random.uniform(-50, 50), 0] for i in range(8)
        ]
        line = gfx.Line(
            gfx.Geometry(positions=positions), gfx.LineMaterial(thickness=3)
        )
        self._scene.add(line)
        self._canvas.update()

    def animate(self):
        self._renderer.render(self._scene, self._camera)

if __name__ == "__main__":
    app = QtWidgets.QApplication([])

    m = Main()
    m.show()

    gl = QtOpenGLWidgets.QOpenGLWidget()
    gl.show()

    app.exec()

It looks having a single GL widget as a children of another widget forces a call to makeCurrent on all the child surfaces of the parent widget which in turns fails: https://github.com/RSATom/Qt/blob/master/qtbase/src/gui/kernel/qopenglcontext.cpp#L988
Gonna dig around Qt source some more...

Hehe, does not solve the problem [...]

Do you think it is a dead end?

No, I meant your comment about being on the same line 😄. Which is a nice step, but does not solve the problem yet. Sorry for the confusion!

It looks having a single GL widget as a children of another widget forces a call to makeCurrent on all the child surfaces of the parent widget which in turns fails:

Interesting ... I wonder if they're open to changing this behavior to better support alternative surfaces ...

Thank you!
I created a ticket on their board here: https://bugreports.qt.io/browse/QTBUG-118119, hopefully we will get there!

I'm seeing the light at the end of the tunnel here somehow! The Trick™ is to render offscreen and then I draw onto a QGraphicsPixmapItem inside a QGraphicsView. If I reimplement QGraphicsView.resizeEvent, I can update the WgpuCanvas resolution so that it always fill the QGraphicsView viewport!
Talk about smelly creativity here... :) I will try to see how to pass the Qt wheelEvent to Wgpu directly now.

Right, that should work! You'd lose a bit of performance for downloading the screenshot and blitting it to screen again, but should be ok for most applications (e.g. very similar to rendering in jupyter via jupyter_rfb).

Have you looked at the wgpu offscreen canvas? There is the manual offscreen canvas, https://github.com/pygfx/wgpu-py/blob/main/wgpu/gui/offscreen.py, but also a base class that may be useful: https://github.com/pygfx/wgpu-py/blob/main/wgpu/gui/_offscreen.py

I'm indeed using the builtin offscreen canvas. I discovered it whilst creating the docs for https://colour-visuals.readthedocs.io/en/latest/. I was wondering how you guys were producing yours so I dug around a bit. Made me wonder about running the generation on GitHub Actions but it is another story! :)

I'm indeed using the builtin offscreen canvas. I discovered it whilst creating the docs for https://colour-visuals.readthedocs.io/en/latest/. I was wondering how you guys were producing yours so I dug around a bit. Made me wonder about running the generation on GitHub Actions but it is another story! :)

Wow! You've got grids and ticks and everything.... Are you open to contributing some portions of the code to pygfx?

I'm planning to rewrite the grid I created, it is right now suboptimal. I will probably go down the shader road, happy to contribute that back when I have something worthy! (It is not right now).


Single Domain but with prefix Database

Description
Is it possible to use this package for single domain but with different or prefix database?

Can you explain? You need to run one tenant that uses a different database?

What I mean is that I want to allow users to use one domain (not any subdomain) and in the back-end this package maintains the data in the single database but with prefix with it.
Think of what Quickbooks is doing.
They have one domain which people use to access and the user can see their own concerned data.

That's very much possible. You would need to disable hostname auto-identification though and then create your own logic to switch between the tenants. The code is there though, you would just have to write it; as 3.x is beta there aren't many helpers yet.
For instance you could use the Connection class to manually set the current tenant connection.
Please let me know if you need more information.

Do you mean is it going to be available with helpers in version 3 in future?
One more question, how can we select the tenant in commands? Let's say I have a command to send email after every 10 minutes then how can we execute the command on every tenant. (Considering we have emails table consisting of all the email store in there).

The helpers will make the process of manual implementation easier, that implementation is already possible though.
Commands can have different implementation depending on the goal you try to achieve. You mention a cronjob (automated recurring) command. I'd suggest looping over all tenants to see whether they have mails listed to be send.

Got it.
Well, how can we loop through the tenants? Do we have any helper function within this package to get the list of tenants which can further select and loop through it?

The helpers will make the process of manual implementation easier, that implementation is already possible though.
Would it be possible to help me out to understand, like how this is possible?
I have looked into the Connection, the functions are very tightly bounded with each other. So, bit confused about the context how this make it easier.

There is actually a recent implementation of switching tenants to set their connection. The custom MigrateCommand does it:
        $this->websites
            ->query()
            ->chunk(10, function (Collection $websites) {
                $websites->each(function ($website) {
                    $this->connection->set($website, $this->connection->migrationName());

                    parent::fire();
                });
            });

Got it.
I am still confused for this.
How and when we gonna use this? :)

You'll have to switch database to access the emails table you mentioned earlier. Once you've switched the database connection of the tenant you can retrieve the rows in that table using your Eloquent models and run your email sending logic.
As an example;
        $this->websites
            ->query()
            ->chunk(10, function (Collection $websites) {
                $websites->each(function ($website) {
                    $this->connection->set($website); // sets the tenant connection

                    $email = \App\Email::first();
                    $this->send($email); // custom code to send mails using your Eloquent Email model
                });
            });

now this becomes more clear.
How and when we need to switch the connections too? The reason I wanted to know this because, the package is completely dependent on the connection.

How and when we need to switch the connections too?

That depends on your implementation. I don't know 😄

The package is completely dependent on the connection.

Yes the tenancy package depends on the tenant connection to be set for the Eloquent models to work.

Got it. :)


Add Volume Claim Template option doesn't go away if I switch workload type of out stateful set

Version - 2.2 master 1/29
Steps to reproduce (least amount of steps as possible):

Create a workload that uses stateful set as workload type.
Click on deploy (note that stateful set is preselected)
Go to Volume Accordion and click on Add Volume (note that Volume Claim option is there)
Change Workload type to Scalable deployment
Go back to Volume Accordion and click on Add Volume

Result:  Volume Claim option is still available.  Should only be available for Stateful sets.

@tfiduccia or @westlywright can you confirm that we expected with fix that ONLY Add a Volume Claim Template option was expected to be removed when we change back to Scalable deployment per steps?
I can confirm when I switch to stateful set the option comes back and when I switch to scalable deployment it goes away.

Correct, the option should be removed but only for this single item.

Version: Master 2.2 (2/7/19)
Confirmed fix. Cannot reproduce after the fix. Follow the steps and when you pick scalable deployment there is no "Add a Volume Claim Template" option. When you pick Stateful Set again the option does come back on the Volume drop down. And again it will go away when you switch back. If you already picked a template it won't be removed from the UI but you cannot continue.


Error in documentation

[Enter feedback here]
I mention in attached file.

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

ID: 1c922021-b12a-83e4-3ee6-eceecd6076d2
Version Independent ID: fdb655a4-cff4-6c67-7244-673760379663
Content: Get started with .NET Core
Content Source: docs/core/get-started.md
Product: dotnet-core
GitHub Login: @adegeo
Microsoft Alias: adegeo

Make sure you didn't "cd" into the project folder.
If you run the exact same commands in the documentation it should work correctly.

Hi 👋 @jainvikram444
Thank you so much for posting this issue. We really appreciate it. Could you please provide me with a bit more information so that I can help dig into this issue with you?
As @Youssef1313 has said, if you change directories you will have to specify the .csproj. However, I'm curious what version of the .NET SDK you're using - could you please run the following .NET CLI command and reply with its output?
dotnet --info

This will help me understand your environment, and installed SDK, etc. Thank you


[735] Move "form" classes to dedicated directory

Context

https://trello.com/c/yk9aisow/735-move-activemodel-classes-into-forms-directory

Changes proposed in this pull request

Moves the following models into a separate forms directory as they're largely UI related. We've decided to keep these UI related models (used for forms etc) separate to table-backed models
Refactor areas of the app/tests where required

Guidance to review

Head to the review app and test everything still works. I have already done this several times but we have pretty good test coverage which helped out a lot! Yay team 🥇

 Move activemodel classes into forms directory


encode Unicode version into namespace

And have the latest Unicode version be imported into the main.

unicode::v13

Or have a way to change the unicode version at runtime (via parameter), for functions?

IIRC we agreed to only support the latest unicode version.


feat(NODE-3333): support 'let' option for CRUD commands

Description
What changed?
Same as #2828.
Are there any files to ignore?
The spec tests here are fake in the sense that no upstream spec tests
for this exist at this point. I’ve put them next to the other tests, more or less
just assuming that somebody would notice their existence when updating
the crud spec suite to upstream and make sure they aren’t deleted.
(They are just a temporary thing here anyway.)

Looks like the aggregate-let tests are failing, there's an update in the spec that I think fixes it. Or you could skip it for now in:
test/functional/crud_spec.test.js:447
change to:
await runUnifiedTest(this, crudSpecTest, test, ['Aggregate with let option']);

Err, sure, I’ll update the tests – it’s unrelated to the rest of the changes here, though – let me know if I should push them to a separate PR?


switching away from region causes transect distance to reset to 5

Switching from region to waypoints and back to region causes the transect distance text box to reset back to default value of 5. Minor annoyance.

Replicated on my setup. The area pattern still maintains the old specified transect distance but the textbox goes back to displaying 5.
Desired behavior is text box displays currently displayed transect distance (or 5 if no area was specified?)

This also has the issue where it always assumes spiral pattern even if lawn mower was used
As for how minor it is, it's sometimes hard to remember which transect was used for a given area if you had worked on getting a good path and had to switch a few times.


Feat spectra

close: #71

For all that is scientific data we will try to be rigorous with units and systematically put it between square brackets
So for for X axis: Wavelength [cm-1]
For Y axis: Transmittance [%]
We will also try to start always with an uppercase the axis labels

For all that is scientific data we will try to be rigorous with units and systematically put it between square brackets
So for for X axis: Wavelength [cm-1]
For Y axis: Transmittance [%]
We will also try to start always with an uppercase the axis labels

We should not use feat:  for storybook changes because it doesn't change the public API.
docs:  or test:  can be used for that.

We should not use feat:  for storybook changes because it doesn't change the public API.
docs:  or test:  can be used for that.


Add docs on script names

We've had two threads on naming scripts. I think we're in consensus on at least the basics of naming scripts. So I'm adding what we agreed upon to the docs.
Fix https://github.com/finale-lua/lua-scripts/issues/313
Fix https://github.com/finale-lua/lua-scripts/issues/270
Looking for a LGTM from both @rpatters1 and @cv-on-hub before merging to ensure we're in agreement. Merging this PR will close the related issues. Feel free to merge without me once both of you LGTM.

I suggest, "A script's name" should become "A script's name as returned by plugindef()", and we seem to agree on Capital Case for script names appearing in Finale menus.
The "Use a consistent file name" section remains solid and agrees with my previous assumption about: "take things from general to specific"


Generics are dropped on keyof application

TypeScript Version:  up to nightly (2.6.0-dev.20170921)
Code
// Given a parameterized type `Delete<T,K>`, which intersects the types of a subset `K` of the
// properties of `T` with `never`:
type Delete<T extends string, K extends T> = {[P in T]: P} & {[P in K]: never};
type Example1 = Delete<'a' | 'b', 'b'>; // type Example = {a: 'a', b: 'b'} & {b: never}

// I would not expect this type `Indirect` to be rewritten to `never`
type Indirect<T extends string, K extends T> = keyof Delete<T, K>;
// type Indirect<.., ...> = never, generics are dropped
type Example2 = Indirect<'a' | 'b', 'b'> // type Example2 = never

// Even if the `keyof` would somehow prematurely eliminate properties with empty types, it would
// still be incorrect, as `T` might contain keys not present in `K`.

// In a non-generic context, using `keyof` on a `Delete<T,..>` type simply returns all keys in `T`:
type Okay = keyof Delete<'a' | 'b', 'b'> // type Okay = "a" | "b"

// And with an alternative definition that doesn't map the keys onto the values, `keyof` on a
// generic type works as expected:
type Delete2<T, K extends keyof T> = T & {[P in K]: never};
type Indirect2<T, K extends keyof T> = keyof Delete2<T, K>;
type Okay2 = Indirect2<{a: string, b : string}, 'b'> // type Okay2 = "a" | "b"

Expected behavior:
No rewriting in inferred type of Indirect<T extends string, K extends T>, so
type Indirect<T extends string, K extends T> = keyof Delete<T, K>
Actual behavior:
Generics are dropped in inferred type:
type Indirect<T extends string, K extends T> = never
Background:
I stumbled upon this when while refactoring type Diff from this comment and trying to create a type RemoveAbsurd<T> = T[keyof T] to remove the properties whose types are intersected with never (e.g. RemoveAbsurd<{a: 'a' & never, b: 'b', c: 'c' & never}> = {b: 'b'}), but this fails when passed a Deleted type. I can get around it by passing the key union in a separate parameter, but given the seemingly inconsistent behavior, I thought this might point toward an issue with inferencer.
On a related note, is there a somewhat high-level description of the inference algorithm somewhere? The language specification has not progressed beyond v1.8, and the 25,000 lines of checker.ts are a little daunting.

This got fixed somewhere along the way. (works as expected in 2.7)


fresh install will not compile basic

When installing Klive as per instructions (v0.8.0) I can compile and run the code.z80asm example, it opens nice in klive shouting "Hello from KLive IDE, (z80 Assembler)", but not the program.bor
The Klive Compiler gives me the following output:
Compiling /code/program.bor
Executing zxbc /code/program.bor --output /.generated/program.bor.z80asm --asm --optimize 2 --org 32768 --heap-size 4096

Invoking the Klive Z80 Assembler
Compilation failed.
Z0004: '(' expected (/code/program.bor:1)
Z0004: '(' expected (/code/program.bor:2)
Z0004: '(' expected (/code/program.bor:3)
Compilation time: 10 ms

no z80asm file is written to .generated though. If I change the zxbc path to a faulty one, the compiler complains that zxbc cannot be found. If I manually run the command from a terminal, the corresponding file is generated, but it will not load using the assembler injector.
If I inspect the manually generated file I fined 5 syntax problems
Z0605: Identifier '__SET_ATTR2' is not defined yet.
Z0605: Identifier 'INVERSE_TMP' is not defined yet.
Z0605: Identifier 'OVER_TMP' is not defined yet.
Z0605: Identifier 'BOLD_TMP' is not defined yet.
Z0605: Identifier 'ITALIC_TMP' is not defined yet.

spread out over the 1692 lines of generated code...
I've  set the program target to zx 48k but have got no clue of what is going on. Am I missing a part?

when compiling the program.bor using zxbc -taB /code/program.bor  I can run the output .tap file in the emulator

when compiling the program.bor using zxbc -taB /code/program.bor  I can run the output .tap file in the emulator

@kaosbeat, thanks for signing this issue! Please send me the ZXBC version you use together with Klive so that I can try the same.
Today I'm on a workshop but try to look after this issue as soon as I can.

@kaosbeat, thanks for signing this issue! Please send me the ZXBC version you use together with Klive so that I can try the same.
Today I'm on a workshop but try to look after this issue as soon as I can.

zxbc.py 1.14.0 (latest stable)
klive v0.8.0 (installed from vsix)

zxbc.py 1.14.0 (latest stable)
klive v0.8.0 (installed from vsix)

@kaosbeat, it seems strange. I'm using Windows, at here the core compiles and runs successfully. Please, check another thing! Look at the generated /.generated/program.bor.z80asm file, and send me its first 10 lines, please.

@kaosbeat, it seems strange. I'm using Windows, at here the core compiles and runs successfully. Please, check another thing! Look at the generated /.generated/program.bor.z80asm file, and send me its first 10 lines, please.

It seems like the /.generated/program.bor.z80asm is not passed into the the assembler but the /code/program.bor file itself is. If I change it the assembler output errors follow along.
rem Sample code
1234 print at 10,5; bright 1; ink 1; "Hello, from Klive IDE!"
5678 print at 11,5; bright 1; ink 2; "   (Boriel's Basic)   "

gives the following error  (explicitely mentioning program.bor as well)
Invoking the Klive Z80 Assembler
Compilation failed.
Z0004: '(' expected (/code/program.bor:1)
Z0002: A line cannot start with this token: 1234 (/code/program.bor:2)
Z0002: A line cannot start with this token: 5678 (/code/program.bor:3)
Compilation time: 13 ms

If I manually generate a file the first 10 lines are as follows:
	org 32768
__START_PROGRAM:
	di
	push ix
	push iy
	exx
	push hl
	exx
	ld hl, 0
	add hl, sp

but like I said, I still cannot assemble this, while the demo code.z80asm will assemble and be injected successfully

It seems like the /.generated/program.bor.z80asm is not passed into the the assembler but the /code/program.bor file itself is. If I change it the assembler output errors follow along.
rem Sample code
1234 print at 10,5; bright 1; ink 1; "Hello, from Klive IDE!"
5678 print at 11,5; bright 1; ink 2; "   (Boriel's Basic)   "

gives the following error  (explicitely mentioning program.bor as well)
Invoking the Klive Z80 Assembler
Compilation failed.
Z0004: '(' expected (/code/program.bor:1)
Z0002: A line cannot start with this token: 1234 (/code/program.bor:2)
Z0002: A line cannot start with this token: 5678 (/code/program.bor:3)
Compilation time: 13 ms

If I manually generate a file the first 10 lines are as follows:
	org 32768
__START_PROGRAM:
	di
	push ix
	push iy
	exx
	push hl
	exx
	ld hl, 0
	add hl, sp

but like I said, I still cannot assemble this, while the demo code.z80asm will assemble and be injected successfully

When you run a Boriel's Basic file, Klive uses two compilation steps. First, it invokes the ZXBC command that creates a .z80asm file (/.generated/program.bor.z80asm), in this case. Next Klive attaches the .zxbasic pragma to the top of the generated file, and than invokes the Z80 Assembler. If you manually add the .zxbasic pragma to the top of the generated asm file, compilation should work. Your file should look like this before compilation:
        .zxbasic
	org 32768
__START_PROGRAM:
	di
	push ix
	push iy
	exx
	push hl
	; ...

The .zxbasic tells the Z80 Assembler that is should use the "Boriel's Basic" dialect of the assembler. Without it, the code won't compile.
It seems so that the ZXBC utility did not run on your machine (surprisingly, did not raise any error, and this is maybe a Klive bug). If ZXBC runs, an output like "ZXBC execution time" would be displayed in the output, but that is missing. Please, check again that you have specified the full path to the ZXBC utility in Klive settings within VS Code!

When you run a Boriel's Basic file, Klive uses two compilation steps. First, it invokes the ZXBC command that creates a .z80asm file (/.generated/program.bor.z80asm), in this case. Next Klive attaches the .zxbasic pragma to the top of the generated file, and than invokes the Z80 Assembler. If you manually add the .zxbasic pragma to the top of the generated asm file, compilation should work. Your file should look like this before compilation:
        .zxbasic
	org 32768
__START_PROGRAM:
	di
	push ix
	push iy
	exx
	push hl
	; ...

The .zxbasic tells the Z80 Assembler that is should use the "Boriel's Basic" dialect of the assembler. Without it, the code won't compile.
It seems so that the ZXBC utility did not run on your machine (surprisingly, did not raise any error, and this is maybe a Klive bug). If ZXBC runs, an output like "ZXBC execution time" would be displayed in the output, but that is missing. Please, check again that you have specified the full path to the ZXBC utility in Klive settings within VS Code!

@kaosbeat, I've just checked, and there's a bug in Klive: if your ZXBC utility does not run, because you have specified a wrong path, it does not display an error message. So, I'm almost sure that the ZXBC path setting is the issue in your case. Please, provide an absolute path to access the ZXBC utility!
Nonetheless, I added to bug to my backlog. When my workshop is over, I fix this bug and send you a private build.

@kaosbeat, I've just checked, and there's a bug in Klive: if your ZXBC utility does not run, because you have specified a wrong path, it does not display an error message. So, I'm almost sure that the ZXBC path setting is the issue in your case. Please, provide an absolute path to access the ZXBC utility!
Nonetheless, I added to bug to my backlog. When my workshop is over, I fix this bug and send you a private build.

If I open a terminal and copy the path, zxbc runs, so I'm using an absolute path.
there is a path problem somewhere though...
I started fiddling with the settings and now I get the path error ( reloaded, restarted, uninstalled, reinstalled, tried a different version, ...)
/bin/sh: zxbc: command not found
the path is still correct though
I then added a symbolic link to /usr/local/bin so zxbc is in my path. I now get a different error
/usr/local/bin/zxbc: line 8: /usr/local/bin/python/bin/python: No such file or directory

If I open a terminal and copy the path, zxbc runs, so I'm using an absolute path.
there is a path problem somewhere though...
I started fiddling with the settings and now I get the path error ( reloaded, restarted, uninstalled, reinstalled, tried a different version, ...)
/bin/sh: zxbc: command not found
the path is still correct though
I then added a symbolic link to /usr/local/bin so zxbc is in my path. I now get a different error
/usr/local/bin/zxbc: line 8: /usr/local/bin/python/bin/python: No such file or directory

FIXED!
I added an
export PATH="/usr/local/opt/zxbasic:$PATH"
to my ~/.bash_profile
and now everything works!

FIXED!
I added an
export PATH="/usr/local/opt/zxbasic:$PATH"
to my ~/.bash_profile
and now everything works!


Flutter web rendering images with alpha channel with some artifacts

Steps to Reproduce
**Option 1 **
You can run this code snippet using DartPad: https://dartpad.dev/?id=a63c15e397943345b952d1c5513117c2
**Option 2 **
Run the following code snippet with the device set to your web browser (I have tested both Chrome and Edge).
import "package:flutter/material.dart";

void main() {
    runApp(const MyApp());
}

class MyApp extends StatelessWidget {
    const MyApp({Key? key}) : super(key: key);

    @override
    Widget build(BuildContext context) {
        return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
                primarySwatch: Colors.blue,
            ),
            home: const Home(),
        );
    }
}

class Home extends StatelessWidget {
    const Home({ Key? key }) : super(key: key);

    final String imageURL = "https://i.postimg.cc/8PjMYGfZ/products-asics-1201a147-002-3e277fa0-a543-47e5-bd72-17403e91675d-700.png";

    @override
    Widget build(BuildContext context) {
        return Scaffold(
            body: Container(
                height: double.infinity,
                width: double.infinity,
                color: Colors.pink,
                child: Center(
                    child: Image.network(imageURL)
                )
            )
        );
    }
}

The versions in which I tested this issue are: 3.0.4 3.0.5 3.1.0-0.0.pre.941
Expected results:
This is a screenshot of the image being rendered in a Windows desktop application. The image is being rendered correctly, which it also does do on android.

Actual results:
When running the application on the Web (which I tested in both Chrome and Edge) the image has some white artifacts surrounding it.

Hi @CustomSeif, it would appear that this issue has been fixed on the latest master channel. See the screenshots below
Can you upgrade to the latest version of master to see if you're still able to reproduce this issue?

screenshots

stable
master

flutter doctor -v
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-arm, locale en-GB)
    • Flutter version 3.0.5 at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (5 days ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/212.5712.43.2112.8609683/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] Android Studio (version 2021.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/212.5712.43.2112.8609683/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.69.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 3.1.0-0.0.pre.1700, on macOS 12.4 21F79 darwin-arm, locale en-GB)
    • Flutter version 3.1.0-0.0.pre.1700 on channel master at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2f0a25257e (2 hours ago), 2022-07-18 02:34:06 -0400
    • Engine revision 7186455dda
    • Dart version 2.19.0 (build 2.19.0-5.0.dev)
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • Java binary at: /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/212.5712.43.2112.8609683/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13F100
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] Android Studio (version 2021.2)
    • Android Studio at /Users/nexus/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/212.5712.43.2112.8609683/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.69.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Hello @danagbemava-nc, I have switched over to the master branch and ran flutter upgrade. I can confirm it has been fixed, the version I ran this on is 3.1.0-0.0.pre.1704
Thanks.


HXN detector

HXN is using Quantum Xspress3 detectors. Here is the related module https://github.com/newville/xspress3/.
But we still need to write our own h5 handler to read it.

Write a handler for filestore to read h5 file from this kind of detector.

@licode This issue should be against filestore I think.


Unit Test Suite for ORM Service

The Test suite which will cover the rest apis of the ORM service.

The test Suite was completed.
Commit ID : Commit id ccbde24


How to make wss instead of ws?

I can't find any example on how to do this anywhere. I already have letsencrypt cert on my server (so I thought I'd use that?). I have files: cert.pem chain.pem fullchain.pem privkey.pem
Now what exactly I need to do to convert my ws server to wss ? I couldn't find any tutorials that deal with my situation :(
Also I was thinking of using only TLSv1.2 protocol if there's not some good reason against it?

Basicly my ws server works normally but when I add this:
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain(certfile="/etc/letsencrypt/live/vanjavk.xyz/cert.pem", keyfile="/etc/letsencrypt/live/vanjavk.xyz/privkey.pem")
start_server = websockets.serve(handler, host=ip,port=port,ssl=context)
and then change client address from ws://<IP_ADDRESS>:13337 to wss://<IP_ADDRESS>:13337
I get no errors on server but when I try to connect with client I get: ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:645)

Actually I just realised that adding ssl=context doesn't make it automatically wss because I can still connect to it through ws :( I'm totally confused

Woops apparently something else stopped me from using wss. It works now so I'll just close this :D

hello i have a similar problem like that.
my chrome returns 'failed: WebSocket opening handshake was canceled' error
can you show me pull source code?
thank you

Well my problem was that I didn't know how to exactly enable SSL, but at the end this is source code of enabling it:
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain(certfile="/etc/letsencrypt/live/vanjavk.xyz/cert.pem", keyfile="/etc/letsencrypt/live/vanjavk.xyz/privkey.pem")
start_server = websockets.serve(handler, host=ip,port=port,ssl=context)

everything else in source code is related to my project and not important

my code is same that.
Is your letsencrypt file is same that your calling client's(web site) certification?
Thank you.

I'm not calling any certs on client (my client isn't actually in python), I just use wss instead of ws in address.
This is source code (javascript) of extension I used in my app:
/**
Client-Side WebSocket Bindings for GameMaker Studio
Author: Dickson Law
(C) GameGeisha Interactive, 2010-2014
*/

var __ws_sockets__ = new Array();

function __ws_connect__(url) {
	return __ws_connect_ext__(url, "");
}

function __ws_connect_ext__(url, protocols) {
	var ws, id;

	//Try to create the WebSocket
	try {
		if (protocols == "") {
			ws = new WebSocket(url);
		}
		else {
			ws = new WebSocket(url, protocols.split('|'));
		}
	}
	catch (e) {
		return -1;
	}

	//Add the WebSocket
	id = __ws_sockets__.push({
		socket: ws,
		inbox: new Array()
	})-1;

	//Tack on events
	ws.onmessage = function(event) {
		__ws_sockets__[id].inbox.push(event.data);
	};

	//Return numeric handle
	return id;
}

function __ws_status__(id) {
	try {
		return __ws_sockets__[id].socket.readyState;
	}
	catch (e) {
		return -1;
	}
}

function __ws_disconnect__(id) {
	return __ws_disconnect_ext__(id, 1000, "");
}

function __ws_disconnect_ext__(id, code, reason) {
	try {
		__ws_sockets__[id].socket.close(code, reason);
	}
	catch (e) {
		return false;
	}
}

function __ws_send_message__(id, msg) {
	try {
		__ws_sockets__[id].socket.send(msg);
		return true;
	}
	catch (e) {
		return false;
	}
}

function __ws_has_message__(id) {
	try {
		return __ws_sockets__[id].inbox.length > 0;
	}
	catch (e) {
		return false;
	}
}

function __ws_get_message__(id) {
	try {
		return (__ws_sockets__[id].inbox.splice(0, 1))[0] || "";
	}
	catch (e) {
		return "";
	}
}


The mark help in application (mark -h) is much more up to date than what is shown in the github readme.md

What happened?
You updated the help menus on the application, but it isn't updated on the github readme.
What did you expect to happen?
Parity.
How can we reproduce the behavior you experienced?
mark -h  and compare to readme.md on github
Update yer readme :) ;)  :)

[PR312]

Thanks, merged your PR


Add PEP 523 frame eval API methods and definitions

I also added a  utility function (Py_DecodeLocale) which I found useful.

Codecov Report

Merging #130 into master will decrease coverage by 0.03%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #130      +/-   ##
==========================================
- Coverage   80.91%   80.88%   -0.04%
==========================================
  Files          81       81
  Lines        4962     4964       +2
==========================================
  Hits         4015     4015
- Misses        947      949       +2

Impacted Files
Coverage Δ

src/ffi3/code.rs
0% <ø> (ø)
:arrow_up:

src/ffi3/pythonrun.rs
0% <ø> (ø)
:arrow_up:

src/ffi3/ceval.rs
0% <ø> (ø)
:arrow_up:

src/ffi3/pystate.rs
0% <0%> (ø)
: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 4585f99...5cc6dc7. Read the comment docs.

thanks!


Sorry to ask this here. Need help in using the mod

Hey,
So I went into stage 2, and then exited the game.
I clicked "end the run" to exit. Is that wrong?
How do I make the mod to save/load?
Thank you,
Nikhil

Save is happening automatically at the start of the stage. You will see a message in chat about game being saved. To load saved game you enter the lobby and click Load button (bottom right corner).

Does the load work even if I clicked "end the run" when exiting?