MacOS 15 and iOS 18 Compatibility

Hello @AugustDev,
I am testing the MacOS 15 & iOS 18 Betas and it seems that some things have changed which are causing a crash on launch.
Do you want me to send you crash logs anywhere?

If Ollama is not running yet, the crash does not happen. As soon as you start Ollama and start a new chat, the App crashes.
If Ollama is already running when launching the App, it crashes immediately.
Before building Ollama you have to update the dependencies to the latest main/master branches, as some packages have issues building with latest Xcode beta.

If Ollama is not running yet, the crash does not happen. As soon as you start Ollama and start a new chat, the App crashes. If Ollama is already running when launching the App, it crashes immediately.
Before building Ollama you have to update the dependencies to the latest main/master branches, as some packages have issues building with latest Xcode beta.
Hows is Ollama relevent to the issues? Ollama runs on container on a remote server in my case

If Ollama is not running yet, the crash does not happen. As soon as you start Ollama and start a new chat, the App crashes. If Ollama is already running when launching the App, it crashes immediately.
Before building Ollama you have to update the dependencies to the latest main/master branches, as some packages have issues building with latest Xcode beta.

Hows is Ollama relevent to the issues? Ollama runs on container on a remote server in my case

It seems like as long as Enchanted is not connected to Ollama, everything is fine.
As soon as a connection to Ollama is established, Enchanted tries to get the installed models. Something in this logic seems to be wrong, or maybe an update in SwiftData from Apple causes the crash.
I think @AugustDev has to check this to make Enchanted compatible with upcoming major releases of Apple's operating systems.

Investigating and fixing Asap!

Mhm, I'm not able to reproduce. I downloaded XCode 16 Beta to be able to run on iOS 18.
Can you share more details of how to reproduce?

Are you running on iOS 18 simulator or macOS 15?
Does the issue happen when you build the app yourself or also using official App Store version?

Mhm, I'm not able to reproduce. I downloaded XCode 16 Beta to be able to run on iOS 18.
Can you share more details of how to reproduce?
* Are you running on iOS 18 simulator or macOS 15?

* Does the issue happen when you build the app yourself or also using official App Store version?

I am running Version 15.0 Beta (24A5264n)
Here is an example of it crashing:
https://github.com/AugustDev/enchanted/assets/93997957/776bac09-c780-4b71-a90b-c1f630488ba0
This is an AI generated summary of that error log we saw:

The crash log indicates that process Enchanted (PID 6481) experienced a SIGTRAP exception and EXC_BREAKPOINT with codes (0x0000000000000001, 0x00000001ab2c98b4) at thread ID 0. This is most likely caused by an invalid memory access or a breakpoint set in the code.
To further diagnose the issue:
Binary Image Inspection: The crash appears to be within libswiftCore.dylib and libdispatch.dylib, suggesting that it's related to Swift runtime or threading. The call stack points to internal Swift functions like _assertionFailure and methods from NSManagedObjectContext.

VM Region Summary: The log shows significant memory regions being used by libraries and other processes, with some unallocated memory at 1.8GB. This doesn't directly point to the cause but could indicate potential issues related to memory management or fragmentation.

External Modification Summary: No external modifications are made suggesting that no process is attempting to modify the target process's state during the crash.

Crash Location:
The crash happens in libswiftCore.dylib's _KeyedEncodingContainerBox.encodeNil<A>(forKey:) function, indicating a potential issue with encoding objects into a key-value encoding container (like NSJSONSerialization or another Swift serialization mechanism).

To resolve the issue:
Review Swift Code: Check for any modifications made in Enchanted codebase related to the use of _assertionFailure and the serialization paths through libswiftCore.dylib.

Check Core Data Usage: Since NSManagedObjectContext is involved, verify that operations are correctly handling nulls or invalid states within a context.

Review Memory Management: Ensure proper memory management (allocation, deallocation) to prevent out-of-bound accesses. Swift automatically manages memory with ARC but manual errors can still occur.

Given the complexity and detail of the crash report and binary images, it would be beneficial for an engineer familiar with Swift or macOS application development to review this log further and potentially reproduce the issue in a test environment to isolate the root cause.

Mhm, I'm not able to reproduce. I downloaded XCode 16 Beta to be able to run on iOS 18.
Can you share more details of how to reproduce?

Are you running on iOS 18 simulator or macOS 15?
Does the issue happen when you build the app yourself or also using official App Store version?

I was using latest macOS Developer Beta with latest Xcode Developer Beta. I downloaded the source code of Enchanted to my macOS and compiled it work usage on my local machine.
At first it didn't compile, as a required markdown library could not be compiled. Changing the markdown library to "main" branch worked.
Crashes happend for:

latest version from App store
compiled from source using latest Xcode

It works as long as Ollama is not running on start up. As soon as Ollama is started, it seems like Enchanted connects to Ollama (which is running on my localhost) and then always crashes immediately and reproducibly.
If Ollama is already running before starting Enchanted, it is crashing immediately on startup.
The crash happens at the code line above as seen in screenshot in my previous post.

Just wanted to confirm there is indeed a sort of an issue with the latest betas. Unfortunately, I have just downgraded back to Sonoma and cannot provide logs (I should've though of that, obviously), but what was happening is it would work for one request using the shortcut key combo - but then the app was becoming unresponsive and I had to kill it. Every time it would work exactly once, and then would just freeze.
Not sure if this description is helpful in any way, but just in case - here is the setup I used:

MBP Pro M3
MacOS 15 Developer Beta 2
Ollama 0.1.45
Enchanted 1.7.0 (latest from App Store)

macOS 15.0 Developer Beta 2
Xcode Developer Beta 2

Opens fine as long as Ollama is not running.
Start Ollama, still everything fine. No models in dropdown available.
Create a new chat, Enchanted crashes.

Latest version from the App Store, running on an iPhone 15 PM and iOS 18, seems to be running fine so far, however deleting conversations consistently crashes the app. I was able to delete a couple, but now left with the first 2 conversations I'd created, with no way to remove them. Note that they use different models, in case it matters.

I'm on Beta, and I can say that for everything; so far so good.

I'm on Beta, and I can say that for everything; so far so good on both iOS, MacOS, iPadOS.

macOS Version 15.0 Beta (24A5298h)
Enchanted still crashes as soon as it loads the models from Ollama.
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Enchanted [28220]
Path:                  /Applications/Enchanted.app/Contents/MacOS/Enchanted
Identifier:            subj.Enchanted
Version:               1.7.2 (50)
App Item ID:<PHONE_NUMBER>
App External ID:       866907511
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2024-08-02 23:00:50.2634 +0200
OS Version:            macOS 15.0 (24A5298h)
Report Version:        12
Anonymous UUID:        BC118DCC-46B5-C9E2-3DC1-AF5074B262ED

Sleep/Wake UUID:       377C9B95-4CE6-48B3-ADD5-2F4D2213B7D6

Time Awake Since Boot: 140000 seconds
Time Since Wake:       2782 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000001, 0x00000001b1071760

Termination Reason:    Namespace SIGNAL, Code 5 Trace/BPT trap: 5
Terminating Process:   exc handler [28220]

Thread 0 Crashed:
0   libswiftCore.dylib            	       0x1b1071760 _assertionFailure(_:_:file:line:flags:) + 268
1   SwiftData                     	       0x23b1a1dc0 0x23b162000 + 261568
2   SwiftData                     	       0x23b1aa2a4 0x23b162000 + 295588
3   SwiftData                     	       0x23b1ac3b4 0x23b162000 + 304052
4   libswiftCore.dylib            	       0x1b109572c _KeyedEncodingContainerBox.encodeNil<A>(forKey:) + 352
5   libswiftCore.dylib            	       0x1b1088fe0 KeyedEncodingContainer.encodeNil(forKey:) + 64
6   SwiftData                     	       0x23b1b5a24 0x23b162000 + 342564
7   SwiftData                     	       0x23b1ba638 0x23b162000 + 362040
8   libswiftCore.dylib            	       0x1b13cd5a8 dispatch thunk of Encodable.encode(to:) + 32
9   SwiftData                     	       0x23b1e3dc4 0x23b162000 + 531908
10  SwiftData                     	       0x23b1e398c 0x23b162000 + 530828
11  SwiftData                     	       0x23b1f0380 0x23b162000 + 582528
12  SwiftData                     	       0x23b203d18 0x23b162000 + 662808
13  SwiftData                     	       0x23b1ef0bc 0x23b162000 + 577724
14  SwiftData                     	       0x23b2007a0 0x23b162000 + 649120
15  SwiftData                     	       0x23b1ef17c 0x23b162000 + 577916
16  SwiftData                     	       0x23b2048a8 0x23b162000 + 665768
17  Enchanted                     	       0x102733704 0x1026c8000 + 440068
18  Enchanted                     	       0x102708bb8 0x1026c8000 + 265144
19  Enchanted                     	       0x1026f43ed 0x1026c8000 + 181229
20  Enchanted                     	       0x1026f5609 0x1026c8000 + 185865
21  libswift_Concurrency.dylib    	       0x2794ce851 completeTask(swift::AsyncContext*, swift::SwiftError*) + 1

Thread 1:
0   libsystem_kernel.dylib        	       0x19fb1db8c __ulock_wait + 8
1   libdispatch.dylib             	       0x19f9ab048 _dlock_wait + 56
2   libdispatch.dylib             	       0x19f9aadfc _dispatch_thread_event_wait_slow + 56
3   libdispatch.dylib             	       0x19f9b9fc4 __DISPATCH_WAIT_FOR_QUEUE__ + 368
4   libdispatch.dylib             	       0x19f9b9b70 _dispatch_sync_f_slow + 148
5   CoreData                      	       0x1a6adfdd0 -[NSManagedObjectContext performBlockAndWait:] + 320
6   SwiftData                     	       0x23b17dd04 0x23b162000 + 113924
7   libswift_Concurrency.dylib    	       0x27946cfe8 _swift_task_enqueueOnExecutor + 100
8   libswift_Concurrency.dylib    	       0x2794c960c swift::AsyncTask::flagAsAndEnqueueOnExecutor(swift::SerialExecutorRef) + 432
9   libswift_Concurrency.dylib    	       0x2794c7aa4 swift_task_switchImpl(swift::AsyncContext*, void (swift::AsyncContext* swift_async_context) swiftasynccall*, swift::SerialExecutorRef) + 640
10  Enchanted                     	       0x1026f43ed 0x1026c8000 + 181229
11  Enchanted                     	       0x1026f5609 0x1026c8000 + 185865
12  libswift_Concurrency.dylib    	       0x2794ce851 completeTask(swift::AsyncContext*, swift::SwiftError*) + 1

Thread 2:
0   libsystem_pthread.dylib       	       0x19fb580e8 start_wqthread + 0

Thread 3:
0   libsystem_pthread.dylib       	       0x19fb580e8 start_wqthread + 0

Thread 4:
0   libsystem_pthread.dylib       	       0x19fb580e8 start_wqthread + 0

Thread 5:
0   libsystem_pthread.dylib       	       0x19fb580e8 start_wqthread + 0

Thread 6:
0   libsystem_pthread.dylib       	       0x19fb580e8 start_wqthread + 0

Thread 7::  Dispatch queue: com.apple.CFNetwork.CacheDB-write
0   libsystem_kernel.dylib        	       0x19fb1d6e4 pread + 8
1   libsqlite3.dylib              	       0x1a6f55344 seekAndRead + 92
2   libsqlite3.dylib              	       0x1a6ebc2c0 unixRead + 208
3   libsqlite3.dylib              	       0x1a6ed20c4 readDbPage + 216
4   libsqlite3.dylib              	       0x1a6f5ff38 getPageNormal + 544
5   libsqlite3.dylib              	       0x1a6f6ea78 getAndInitPage + 124
6   libsqlite3.dylib              	       0x1a6ef0cc0 moveToRoot + 576
7   libsqlite3.dylib              	       0x1a6f6b474 sqlite3BtreeIndexMoveto + 276
8   libsqlite3.dylib              	       0x1a6f05ee8 sqlite3BtreeInsert + 652
9   libsqlite3.dylib              	       0x1a6ee9c0c sqlite3VdbeExec + 17008
10  libsqlite3.dylib              	       0x1a6ee5064 sqlite3_step + 964
11  CFNetwork                     	       0x1a5557efc -[NSURLStorageURLCacheDB stepSQLStatement:toCompletionWithRetry:] + 36
12  CFNetwork                     	       0x1a54a1234 invocation function for block in __CFURLCache::CreateAndStoreCacheNode(__CFURLCacheNode*, _CFCachedURLResponse const*, __CFString const*, _CFURLRequest const*, void const*, bool, bool&) + 2152
13  libdispatch.dylib             	       0x19f9b9870 _dispatch_block_async_invoke2 + 148
14  libdispatch.dylib             	       0x19f9aa658 _dispatch_client_callout + 20
15  libdispatch.dylib             	       0x19f9b1c60 _dispatch_lane_serial_drain + 744
16  libdispatch.dylib             	       0x19f9b279c _dispatch_lane_invoke + 432
17  libdispatch.dylib             	       0x19f9bd7e8 _dispatch_root_queue_drain_deferred_wlh + 288
18  libdispatch.dylib             	       0x19f9bd034 _dispatch_workloop_worker_thread + 540
19  libsystem_pthread.dylib       	       0x19fb593d8 _pthread_wqthread + 288
20  libsystem_pthread.dylib       	       0x19fb580f0 start_wqthread + 8

Thread 8:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	       0x19fb1be34 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x19fb2e5d0 mach_msg2_internal + 80
2   libsystem_kernel.dylib        	       0x19fb249d8 mach_msg_overwrite + 480
3   libsystem_kernel.dylib        	       0x19fb1c17c mach_msg + 24
4   CoreFoundation                	       0x19fc4673c __CFRunLoopServiceMachPort + 160
5   CoreFoundation                	       0x19fc44fec __CFRunLoopRun + 1212
6   CoreFoundation                	       0x19fc444b4 CFRunLoopRunSpecific + 572
7   AppKit                        	       0x1a38ad4f8 _NSEventThread + 148
8   libsystem_pthread.dylib       	       0x19fb5d2e4 _pthread_start + 136
9   libsystem_pthread.dylib       	       0x19fb580fc thread_start + 8

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000600000c87a88   x1: 0x0000000200000003   x2: 0x0000000000000000   x3: 0x00006000010775c0
    x4: 0x0000600001077600   x5: 0x0000000000000013   x6: 0x0000000000000020   x7: 0x0000000000000000
    x8: 0xfffffffe00000000   x9: 0x0000000200000003  x10: 0x0000000000000003  x11: 0x0000000000003580
   x12: 0x00000000000007fb  x13: 0x00000000000007fd  x14: 0x00000000cd20a06c  x15: 0x00000000cd009ffb
   x16: 0x00000000cd200000  x17: 0x000000000000006c  x18: 0x0000000000000000  x19: 0x000000023b276420
   x20: 0x0000600000c87a80  x21: 0x0000000000000000  x22: 0x000000000000000b  x23: 0x000000000000001b
   x24: 0x00000000000006e2  x25: 0x000000023b2732a0  x26: 0xf000000000000064  x27: 0x0000000000000000
   x28: 0x0000000102bea998   fp: 0x000000016d734ab0   lr: 0x00000001b1071760
    sp: 0x000000016d7349e0   pc: 0x00000001b1071760 cpsr: 0x60001000
   far: 0x0000000000000000  esr: 0xf2000001 (Breakpoint) brk 1

Binary Images:
       0x1026c8000 -        0x102bdffff subj.Enchanted (1.7.2) <9835a3c7-5eb6-38f6-a89c-3c3ae4b08fdc> /Applications/Enchanted.app/Contents/MacOS/Enchanted
       0x104f64000 -        0x104f6ffff libobjc-trampolines.dylib (*) <22d17f68-169f-35d5-8030-5e4cf575b238> /usr/lib/libobjc-trampolines.dylib
       0x10feac000 -        0x1105cffff com.apple.AGXMetalG14G (320.23.2) <60c0c123-25d7-38b0-8832-e5250bcbeef3> /System/Library/Extensions/AGXMetalG14G.bundle/Contents/MacOS/AGXMetalG14G
       0x1b1039000 -        0x1b15e5fff libswiftCore.dylib (*) <bcef2e0b-74ea-364a-b60d-d4fada236186> /usr/lib/swift/libswiftCore.dylib
       0x23b162000 -        0x23b297fff com.apple.SwiftData (1.0) <3ec4437f-4b2b-34cc-b7bd-a9bf93523400> /System/Library/Frameworks/SwiftData.framework/Versions/A/SwiftData
       0x279467000 -        0x2794e6fff libswift_Concurrency.dylib (*) <4282f9f2-abb1-3984-89f8-c153cbc0130b> /usr/lib/swift/libswift_Concurrency.dylib
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
       0x19fb1b000 -        0x19fb55ff7 libsystem_kernel.dylib (*) <2f22b6fb-7929-3452-af97-7b074cf9270f> /usr/lib/system/libsystem_kernel.dylib
       0x19f9a6000 -        0x19f9ecfff libdispatch.dylib (*) <d9eadb96-27d0-3cda-8f71-1947d88a2021> /usr/lib/system/libdispatch.dylib
       0x1a6ab2000 -        0x1a6e9afff com.apple.CoreData (120) <4fdd5c8e-f41e-33ac-916f-4d71d291da71> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
       0x19fb56000 -        0x19fb62fff libsystem_pthread.dylib (*) <59673c9d-4337-3728-8375-fd6cf6cdfbaa> /usr/lib/system/libsystem_pthread.dylib
       0x1a6eb5000 -        0x1a7067ffb libsqlite3.dylib (*) <ddd8462f-ac5e-3d4a-ac36-e16e72cef179> /usr/lib/libsqlite3.dylib
       0x1a5393000 -        0x1a5758fff com.apple.CFNetwork (1.0) <c7221ed2-6d0f-37db-8b1c-b0d1865e8ad3> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
       0x19fbc8000 -        0x1a00bdfff com.apple.CoreFoundation (6.9) <81bf5987-3619-3ded-8c67-353c067ba79a> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x1a374d000 -        0x1a4c70fff com.apple.AppKit (6.9) <ea4dbbf0-9bf4-35a6-b610-d22ca3bfd730> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

I'm on Beta, and I can say that for everything; so far so good on both iOS, MacOS, iPadOS.

macOS Version 15.0 Beta (24A5298h)
Enchanted still crashes as soon as it loads the models from Ollama.

Thanks for confirming. I can no longer test macOS 15 because I restored 14.5.
But on iOS 18 beta 4, I deleted the app and redownloaded from the app store.
This worked. No more crashing.

But on iOS 18 beta 4, I deleted the app and redownloaded from the app store. This worked. No more crashing.

Have never thought about this, but I tried the same. Deleting current installation (including all chat history), and re-installing from App Store. Works on latest beta of macOS.
So the issue might have been related to SwiftData migration to a beta version. A new SwiftData container fixed the issue, at least for now.

But on iOS 18 beta 4, I deleted the app and redownloaded from the app store. This worked. No more crashing.

Have never thought about this, but I tried the same. Deleting current installation (including all chat history), and re-installing from App Store. Works on latest beta of macOS. So the issue might have been related to SwiftData migration to a beta version. A new SwiftData container fixed the issue, at least for now.

I am getting the same error. How do you delete all the chat history, which files need to be deleted exactly? I tried deleting the Enchanted app in Applications, and reinstalling with App store but the problem persists?

Now that iOS 18 is out, I have updated the OS and both my iPad and iPhone apps are crashing immediately upon launch. I have already started Ollama and ngrok when I start the app. If I quit Ollama and start the app, it loads. But as soon as I start Ollama again, it is crashing again when I click on the top right "write" button.

Now that iOS 18 is out, I have updated the OS and both my iPad and iPhone apps are crashing immediately upon launch. I have already started Ollama and ngrok when I start the app. If I quit Ollama and start the app, it loads. But as soon as I start Ollama again, it is crashing again when I click on the top right "write" button.

Just delete the apps and reinstall. Worked for me.


IPv4 error

Short summary about the issue/question:
It will throw this when i use pai (not openpai)
https://github.com/microsoft/nni/blob/e9eaa00dcdfe2b4649016af8506c2ae7858432bd/src/nni_manager/common/utils.ts#L322
I have to fix my IP in code and succeed.
https://github.com/microsoft/nni/blob/e9eaa00dcdfe2b4649016af8506c2ae7858432bd/src/nni_manager/training_service/pai/paiTrainingService.ts#L429
as
        const nniManagerIp: string = '192.168.xxx.xxx';

@janehiii this may be helpful. You could specify IP address in the config file.

@janehiii this FAQ may be helpful. You could specify IP address in the config file.

thank you,solved


ASR evaluation should be done with "cleaned" text

New Feature Summary
Current evaluate.py in the asr_eval subproject is reading the text content from "gold" transcript file directly, but as we've seen, the "gold" files are quite noisy and need some clean-up (https://github.com/clamsproject/clams-utils/issues/2) before being used for asr evaluation.
Since we have a new cleaner implementation (https://github.com/clamsproject/clams-utils/https://github.com/clamsproject/clams-utils/pull/3), it's time to update the eval.py to use the cleaned copies of the transcript files.
Related
No response
Alternatives
No response
Additional context
No response

additionally, we can add more normalization like https://github.com/openai/whisper/tree/main/whisper/normalizers


VEGA-1896 display digital lpa objection count

VEGA-1896 #patch
Checklist

[ ] I have updated the end-to-end tests to work with my changes - N/A
[ ] I have added styling for Dark Mode - N/A
[ ] I have checked that my UI changes meet accessibility standards - N/A

Codecov Report
Patch and project coverage have no change.

Comparison is base (9847d01) 73.00% compared to head (d85c21e) 73.00%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #355   +/-   ##
=======================================
  Coverage   73.00%   73.00%
=======================================
  Files          95       95
  Lines        3719     3719
=======================================
  Hits         2715     2715
  Misses        719      719
  Partials      285      285

Impacted Files
Coverage Δ

internal/sirius/digital_lpa.go
100.00% <ø> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add recomposed status and expand tests

Depends on https://github.com/openprocurement/openregistry.lots.core/pull/20

Coverage increased (+0.1%) to 98.098% when pulling f01aaeb22f6e3611a2779848497cd9a58151e037 on oleksiyVeretiuk:497906256329667_add_recomposed_status into 3117c740d5c2b491975f6d771c5632616e1ef65a on openprocurement:master.

Coverage increased (+0.1%) to 98.1% when pulling 598f60a39871015cb17d20bf4377f321debf9937 on oleksiyVeretiuk:497906256329667_add_recomposed_status into 3117c740d5c2b491975f6d771c5632616e1ef65a on openprocurement:master.


element.querySelector fail with selectors referring to parent elements

If you call the querySelector method on an element with a selector that refers to parents of that element, then the selector fails to find anything. This is not consistent with browsers. See the following example:
var jsdom = require('jsdom');
var assert = require('assert');

var doc = jsdom.jsdom('');

doc.body.innerHTML = '

';

var div = doc.querySelector('div');
var section = doc.querySelector('section');
var span = doc.querySelector('span');

assert.strictEqual(section.querySelector('div section span'), span);

$ node foo.js

assert.js:85
  throw new assert.AssertionError({
  ^
AssertionError: null === HTMLSpanElement {}
...

jsdom v9.8.3

The underlying "nwmatcher" selector engine already accepts both scoped and unscoped queries. The default is to use scoped queries if a context is passed in.
Examples:
scoped query (scope hooked to the passed context as second argument):
NW.Dom.first('div section span', section);

unscoped query (scope hooked to the default document, no need to pass it as second argument):
NW.Dom.first('div section span');

The second example is what you are looking for (to pass your test), however that is currently an implementation detail not covered by "jsdom", probably due to a missing ":scope" pseudo-class in the current "nwmatcher". I don't believe it would be a good idea to change current implementation in "jsdom", at least not until I can provide a working ":scope" pseudo-class in "nwmatcher". This recently changed in the latest browsers and that's the reason they implemented the ":scope" pseudo-class.
Hope this answers to your concerns.


Pipeline support for makes

@kamadorueda Let's consider adding pipeline support to makes so people can run all jobs associated with a pipeline.

Consider parallelism
Consider needs:
Consider artifacts:

https://github.com/NixOS/nixpkgs/blob/master/lib/lists.nix#L432
https://github.com/nix-community/home-manager/blob/master/modules/lib/dag.nix#L35

it's been working very nice so far, though we are missing the documentation and a way to declare dependencies between jobs

Once that's complete, do you plan on implementing a makesd + frontend fully integrated nix based CI?
cheers from bta

@blaggacao from a high-level view Makes is Nix,

Nix builds, basically. And when Nix builds it does so in parallel (but this is not GNU's parallel), parallelization is orchestrated by Nix itself.
At this point results are pushed to a remote binary cache (https://www.cachix.org/), if configured, so future builds in another machines can re-use results

Many tasks end here, we call those calls pure (makeDerivation, makeTemplate derivatives). For example linting stuff, building python/nodeJs packages, etc
Now, some actions/jobs are impure by nature, for instance deploying to a docker container registry or managing secrets. Nix can't do that alone (due to its purity). So what Makes do is cooking a Bash script with Nix that perform the intended action, and then executing such script as a regular OS process

Makes concept is very simple as you can see, (built with nix) + (optionally execute the built artifacts)
The actual job orchestration happens at Gitlab/Github/Jenkins, whatever provider you pick
This issue aims mostly to be able to generate configuration files (gitlab-ci.yml, .github/workflows/xxx.yml, jenkins/jobs/*, etc) for such providers (gitlab/github/jenkins) out of the same configuration you use to configure Makes, so people don't have to maintain two sources of truth. It also makes simple for people to create a CI/CD on the cloud

For the moment, we think this stack choice (Nix -> Makes, Gitlab/Github) is pretty much enough to orchestrate everything a big organization needs (ML, data pipelines, build, test, deploy, infra, k8s clusters, etc) and we are confident of this because we are proof of that (https://gitlab.com/fluidattacks/product)

Once that's complete, do you plan on implementing a makesd + frontend fully integrated nix
based CI?

When the issue closes people will be able to execute a full pipeline/workflow with one single command on their computers, but I'm not sure if it'll be so fancy

Put the evaluation cache on a fuseFS and boom - expensive evaluation cost saved for all devs & scalability! smile /cc @nrdxp

We currently put results on (https://www.cachix.org/) so nobody has to build twice!

It can be easily configured in Makes as explained here: https://github.com/fluidattacks/makes#cache
It's pretty scalable
It's free for open source and cost-effective for private projects

cheers from bta

cheers! :)

Thank you for your extensive response.
When asking about implications for the eval cache, I avtually did not mean the build cache.
The eval cache (at least in flakes) is currently stored in sqlite. One nixpkgs evaluation is reported to take roughly 130MB of RAM.
It probably isnnot first order of business, but something to keep an eye on, since I believe there is a chance to make nix evaluations super responsive, even in bigger projects.

When the issue closes people will be able to execute a full pipeline/workflow with one single command on their computers, but I'm not sure if it'll be so fancy

That's already super useful! I assume the python script will be the "orchestrator"?

That's already super useful! I assume the python script will be the "orchestrator"?

The first prototype for this works like this:

You configure the module system: https://github.com/fluidattacks/makes/blob/939a40963d820ad35a296d00cabe43cdce16eae7/makes.nix#L135-L149

You can try the examples below yourself if you want),
they are part of the current Makes test suite
Then you run it:

From anywhere: $ m github:fluidattacks/makes@main /pipeline/example
or locally as a developer: /path/to/makes $ m . /pipeline/example

Under the hood:

Nix builds the pure jobs (derivations)
Nix performs a topological ordering of jobs to be executed (pending to implement)
The Makes module system creates a main bash script that representes the entire workflow/pipeline  and this main script runs other bash scripts representing the jobs sequentially

$ m . /pipeline/example

Makes v21.10-linux

/nix/store/cxcz6mxw7p0cvp7rygwk39n8vnvxkb1r-pipeline-for-example
[INFO] Running pipeline
[INFO] Running job: /lintNix  # This one is pure, so it's not executed, it was built by nix already
[INFO] Running job: /helloWorld 1 2 3  # This one should be executed, so we do it
[INFO] Hello from Makes! Jane Doe.
[INFO] You called us with CLI arguments: [ 1 2 3 ].

We can do it as fancy as we want, (custom python front-end, makesd, replacing bash with something trailored to do pretty logging, etc)
I'm pending to add docs for this, it's still experimental and under development

This is avery nice idea, indeed! I'd like to expand on the first principles of that in the sense that any job DAG very quickly becomes a congested one and we want to schedule it out across available resources (e.g. lambda functions?).
So I can see easily how the nix evaluated dag is used for creating the scheduling metadata of a single "run", but then passes this on as json to the actual scheduler, such as apache airflow.
The likes of zeebe, I think have a special format to instantiate a pipeline, but I think it would be indeed feasible in principle to map that nix-produced-dag into a boostrapped BPMN model that in turn then can be command&controll-ed by zeebe.

There is also: https://github.com/NixOS/nixpkgs/pull/97392

https://github.com/willmcgugan/textual
https://github.com/willmcgugan/rich


@conda-forge-admin, please update version

Additional comment:
Fixes: #11

Resolved after bot opened the https://github.com/conda-forge/spirv-headers-feedstock/pull/15


[Runtime Feature]: Support for scrolling textures

What is the context of the feature/improvement?
Support for textures that utilise UV scrolling.
Please describe the feature/improvement?
The possibility of choosing UV values for scrolling speed on a chosen texture, with a higher value increasing the speed. However as many textures utilise different speeds, it may be more suited to being a toolkit feature.
What would be your solution? (optional)
No response
Version
remix-0.6.0-rc2+a27aa0ff
Media
No response

Thanks for reaching out! We've opened REMIX-3700 to investigate this feature request internally.


Http4s

Changes Introduced
Introduced a KCLService for constructing KCL applications with an http4s server to indicate if they have started.
Applicable linked issues
#14
Checklist (check all that apply)

[ ] This change maintains backwards compatibility
[x] I have introduced tests for all new features and changes
[x] I have added documentation covering all new features and changes
[x] This pull-request is ready for review

Codecov Report
Base: 74.14% // Head: 73.63% // Decreases project coverage by -0.51% :warning:

Coverage data is based on head (15dfd2b) compared to base (6318c5a).
Patch coverage: 4.34% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #24      +/-   ##
==========================================
- Coverage   74.14%   73.63%   -0.51%
==========================================
  Files          37       39       +2
  Lines        1725     1726       +1
  Branches       49       13      -36
==========================================
- Hits         1279     1271       -8
- Misses        446      455       +9

Impacted Files
Coverage Δ

...ain/scala/kinesis4cats/kcl/http4s/KCLService.scala
0.00% <0.00%> (ø)

...scala/kinesis4cats/kcl/http4s/TestKCLService.scala
0.00% <0.00%> (ø)

...ala/kinesis4cats/localstack/LocalstackConfig.scala
100.00% <100.00%> (ø)

.../main/scala/kinesis4cats/kcl/RecordProcessor.scala
72.22% <0.00%> (-0.31%)
:arrow_down:

.../src/main/scala/kinesis4cats/kpl/KPLProducer.scala
22.58% <0.00%> (-0.07%)
:arrow_down:

.../src/main/scala/kinesis4cats/kcl/KCLConsumer.scala
54.34% <0.00%> (+0.18%)
:arrow_up:

...main/scala/kinesis4cats/client/KinesisClient.scala
67.53% <0.00%> (+0.45%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Refactor runASTAnalysis functions to use class AstAnalyser

The aim of this PR is to make the project more flexible and allow users to add new behaviors more easily.
I've created an AstAnalyser class that implements the logic originally contained in runASTAnalysis and runASTAnalysisOnFile. The class can be extended and has a dependency on any EStree-compatible parser that respects the following abstraction:
interface SourceParser {
  parse(source: string, options: unknown): ESTree.Program;
}

interface AstAnalyser {
  constructor(parser: SourceParser): void;
  analyse: (str: string, options?: Omit<RuntimeOptions, "customParser">) => Report;
  analyzeFile(pathToFile: string, options?: Omit<RuntimeFileOptions, "customParser">): Promise<ReportOnFile>;
}

Example:
const jsAnalyser = new AstAnalyser(new JsSourceParser());
const tsAnalyser = new AstAnalyser(new TsSourceParser());

I removed the  class SourceParser to favor composition over inheritance.
Responsibility for preparing source code (deleting html comments etc.) for analysis can be assigned to the new class AstAnalyser. It removes the need for this class from the workspaces, wich could be problematic to create the TsSourceParser (214).
I kept the functions runASTAnalysis and runASTAnalysisOnFile so my additions extend the possibilities without breaking the existing. Users can pass a custom parser to these functions without having to completely modify their code:
function runASTAnalysis(
  str,
  options = Object.create(null)
) {
  const {
    customParser = new JsSourceParser(),
    ...opts
  } = options;

  const analyser = new AstAnalyser(customParser);

  return analyser.analyse(str, opts);
}

I've moved the tests for these functions to the new AstAnalyser class and replaced them with integration tests verifying that the functions call the AstAnalyser methods with the right arguments.

@allcontributors please add @jean-michelet for code, test, doc


Show resource names instead of IDs

Issue #: #29 (partially)
Description of changes:
Use resource name if available, fall back to ID.
Note: there's no tests, I'm not entirely sure if it works as expected, please check.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @s12v
Thanks for this PR!
This is a feature we would like to add.
We intend to test this feature. We will come back to you with what we find.

So I've looked into this a bit more and unfortunately this won't probably have the effect required, the reason why is that resourceName and resourceId come from AWS Config and for the items we're interested in like VPCs, subnets etc, Config only gives us the resourceId. However, for the other items like Lambda, that actually have a resourceName, it's normally the same as resourceId so it doesn't matter which we use. I'm still inclined to merge your pull request because I don't think it will do any harm but I don't think it will make an appreciable difference in the way we display items on the front end. This will require more thought on our side.

@svozza, it's intended to cover some resources, that have resourceName and it's more descriptive than ID. I had in mind RDS instances and SQS queues.
Right now, looking at DB instances, it's a long list of items like
db-ODVUQ7RJMOX4C3............
db-XXXXXXXXXXXXXX............
db-XXXXXXXXXXXXXX............

For example looking at the Neptune instance used by Perspective, it has these properties in the Config JSON:
"resourceId": "db-ODVUQ7RJMOX4C3............",
"resourceName": "neptunedbinstance-gebrq......",

While neptunedbinstance-gebrq...... is not the most descriptive name, I think it's much better then the ID.

Yep, it's definitely an improvement. I would prefer an implementation that relies on a null check rather than using the in keyward (no need to worry about prototype chains etc. Would you be willing to update the PR to look something like this?
const buildGeneric = ({properties}) => {
    properties.title = R.defaultTo(properties.resourceId, properties.resourceName);
}

Alternatively I can take over the PR (there's a few other changes in the file I'd like to make).

@svozza, updated the PR. Thanks. You can of course take over the PR if you'd like.

Let's merge this actually and I can make changes in a separate PR. Thank you!


Remove .orig and backup files

During conflict resolution, a bunch of .orig and few backups were generated. here is to clean up the repo

@willseeyou they are supposed to be removed ... thanks

/lgtm
/approve


Add animation to homepage

The homepage looks really nice and I was planning to add animations to enhance homepage.

under program name?

I am in both kwoc and codepeak

In which you want this to be considered ?

In which you want this to be considered ?

Codepeak


"printer-app xxx" fires up a server instance even if "xxx" does not exist

A side effect of the PAPPL main loop API is that unknown sub-commands are treated as files to print. But if the file doesn't exist, you end up with an instance of a server started in the background if no server is already running.

[master 87c34a1] Fix mainloop filename checks (Issue #197)
[v1.1.x 9a86bcb] Fix mainloop filename checks (Issue #197)


feat(src/all): New Source: MissAV

closes  #1957
Checklist:

[x] Updated extVersionCode value in build.gradle for individual extensions
[ ] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[x] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[ ] ~Added the isNsfw = true flag in build.gradle when appropriate~
[x] Added the containsNsfw = true flag in build.gradle when appropriate
[x] Have not changed source names
[ ] Have explicitly kept the id if a source's name or language were changed
[x] Have tested the modifications by compiling and running the extension through Android Studio

Another day, another pornographic aniyomi extension.
Some things will always stay the same


Evaluate Chrome extension

A splash ad blocker for desktop is not important as for mobile browser. However, since Chrome for iOS does not support extensions, there is not much we can do.
It might still be useful if we make a Chrome extension for the desktop browsing.
I'm going to ask the user on Facebook page. Please leave your thought here.

Cancel the plan


Restart elasticsearch-logstash systemd units automatically

Module version: 5.4.3
Puppet version: 3+
OS and version: Anything with systemd

Bug description
Elaticsearch is know to crash from time to time.
When this happens the systemd unit enters 'fail state'.
It is not restarted by itself.
Feature Description
The Restart= directive should be added to the systemd Template for elasticsearch instances.
It could be optional to not need a new major version.
It could be configurable, but I think a Restart=always would be sufficient.

This module keeps as close as possible to the upstream systemd unit, and the upstream position on adding Restart= has been to not add it to the service. Like that issue mentions, controlling it through a file like /etc/systemd/service/elasticsearch-es-01.service.d/restart.conf is a way to configure it specifically in a particular environment. Is that a good solution for you?

Still would it optionally.

@func0der you're looking at the actual configuration options for systemd itself; any valid unit options can be overridden by corresponding .d override directories.


jest.restoreAllMocks() for use with afterEach and beforeEach

Do you want to request a feature or report a bug?
Feature
What is the current behavior?
To restore a mock to it's original implementation, you need to add spy.mockRestore() within each test.
What is the desired behavior?
afterEach(() => {
  jest.restoreAllMocks();
});

Expect does this now: https://github.com/mjackson/expect#restorespies
Jasmine's spyOn behavior automatically does this between tests.

Have you tried jest.clearAllMocks?

const video = {
  play: function () {
    return true;
  }
};

describe('video', () => {
  afterEach(() => {
    // jest.clearAllMocks(); // Does not remove mockImplementation between tests

    // jest.restoreAllMocks(); // What I want to do.
  });

  test('plays video', () => {
    const spy = jest.spyOn(video, 'play').mockImplementation(() => {
      return 42;
    });
    const isPlaying = video.play();

    expect(spy).toHaveBeenCalled();
    expect(isPlaying).toBe(42);

    spy.mockRestore(); // What I have to do.
  });

  test('plays video', () => {
    const spy = jest.spyOn(video, 'play')
    const isPlaying = video.play();

    expect(spy).toHaveBeenCalled();
    expect(isPlaying).toBe(true);

    spy.mockRestore(); // What I have to do.
  });
});

I recommend setting up your spy and resetting it in beforeEach every time.

That makes sense for this simple example. But if there are several test with several spies, that would become cumbersome quickly. For now, handling them within each test seems like the best pattern available.

@cpojer is jest.restoreAllMocks() a planned feature?

I've been looking for this as well. Also, I have documented mockRestore which has not been documented in the API docs before. That might have been the source of all confusion although a function that does that with all mocks would be more than welcome.

I just came across this issue and found out that jest.restoreAllMocks() is now implemented. Might help someone in the future :)
For more information, see: https://github.com/facebook/jest/pull/4045


doc/hooks/desktop-file-utils: document hook

Description of changes
Documented the hook included with desktop-file-utils (which removes the mimeinfo.cache file sometimes created when using the aforementioned tools), which was added in https://github.com/NixOS/nixpkgs/pull/55465.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Requesting a review from @worldofpeace, who authored the initial PR.

Tracking: #341479


"0 hours"?

I see from the code that both parse() and output() explicitly return nil if the input/output ends up being 0... out of curiosity, is there a particular reason for this behavior? In other words, is there some reason that it shouldn't just return 0 for the input "0 hours"?
I thought I should check before diving into a fork and adding some configuration options. :-)

Gah. Just noticed that this was a dupe of issue #3.


Saving an entry is very slow when Scout is enabled

We're running a large Craft install with close to 100 multisites and dozens of plugins. However, since we're running it on good hardware, saving is pretty fast and smooth – until we enable the Scout plugin. Is there anything that Scout does when saving an entry that takes such a long time, like indexing the whole page? If so, is it possible to do that with a Cron Job, like refreshing the indexes with php craft scout/index/refresh?

@janhenckens
@timkelty
Any ETA on the PR from your side? The saving process on our Production site is unfortunately very slow because of this, and also leads to slugs not being updated (see https://github.com/craftcms/cms/issues/9888).

@martinhellwagner do you have a dedicated queue listener for Craft, does your Scout config have queue => true?

Yes, we're running the queue with php craft queue/listen.

@janhenckens
@timkelty
Any ETA on a PR for this issue? Even with the parameter queue => true, saving takes quite a long time. We're running our queue with the command php craft queue/listen.

@martinhellwagner would you be able to send over a composer.json/lock and a db dump tp<EMAIL_ADDRESS>so I could try and diagnose locally?

@timkelty
I did that already. I've been talking to Brad Bell about it – my request number is 16592.

Disabling automatic relation-indexing might be worth a try here too ('indexRelations' => false, in the latest version of Scout)

@janhenckens
I've just tried that – unfortunately, saving is still slow. Only disabling Scout makes entry saving fast.

@timkelty
@janhenckens
I'm wondering if Scout update are really pushed into the queue? Even with Scout enabled, I can't see any extra queue jobs being pushed. Or is nothing pushed at all when 'sync' => false is set? In that case however, it doesn't make sense that saving is so much slower when Scout is enabled.

One more thought: we're running our queue in Redis – can that be a problem? When switching to the Craft Queue, saving seems fast even with Scout enabled.

@martinhellwagner Are your other queue jobs running is they should?
When sync is set to false, Scout should not be doing anything on entry save.
Could you maybe send me the composer lock & json + a db dump as well (jan at henckens.be) so I can have a look? Thanks!

@janhenckens
Yes, other queue jobs are running normally. If Scout is not doing anything on entry save, how come saving is still much slower when Scout is enabled? Is there a chance this parameter is not read correctly?
I've sent over the Composer files to @timkelty about a week ago – will you be able to access them, or should I send them anew?

@martinhellwagner Could you send them over again? Then I can have a look right away.

@janhenckens
I'm just in the process of uploading the Database to Google Drive – it's pretty big (5 GB). Will update this message when the upload is finished.
Here's the link to the zipped file containing the composer files as well as the config folder: https://drive.google.com/file/d/1WHZLLFEQk7tXyMoRWeH434vPSjcMttvw/view?usp=sharing

@martinhellwagner can you tell us a bit about your redis instance and connection looks like? I wonder if there is some throttling going on there…

@timkelty
It's really just a simple Redis instance – all the configuration is in the app.php config file:
        'components' => [
            // Cache schema
            'db' => function() {
                $config = craft\helpers\App::dbConfig();
                $config['enableSchemaCache'] = true;
                $config['schemaCacheDuration'] = 60 * 60 * 24; // 1 day
                return Craft::createObject($config);
            },

            // Initialize Redis component
            'redis' => [
                'class' => yii\redis\Connection::class,
                'hostname' => App::env('REDIS_HOSTNAME'),
                'port' => App::env('REDIS_PORT'),
                'database' => App::env('REDIS_DEFAULT_DB'),
                'password' => null,
            ],

            // Use cache with Redis
            'cache' => [
                'class' => yii\redis\Cache::class,
                'keyPrefix' => '_' . App::env('APP_ID'). '_CACHE_' ?: 'CraftCMS',
                'defaultDuration' => 86400,
                'redis' => 'redis',
            ],

            // Use queue with Redis
            'queue' => [
                'class' => yii\queue\redis\Queue::class,
                'redis' => 'redis',
                'channel' => 'queue',
            ],
        ],

@martinhellwagner right – what I'm more interested in is the actual instance itself (where it is hosted, specs, etc).
You could be experiencing some network issues, if the redis host is a remote connection.

Nope, it's on the same server as the MySQL DB and the code. The server has pretty large specs and is not experiencing any CPU/RAM shortages whatsoever.

@martinhellwagner I have the site up & running, could you point me to an entry/site that is having the issue or is it on just about every save/entry?

@janhenckens
It's very random to be honest, and could happen to any entry – mostly to the entries with lots of relations though. The one I was always testing with was /admin/entries/pages/30381-zusammenarbeit?site=default – if you change the slug for example, saving takes a long time, and probably because of that the slug sometimes doesn't get updated.

This line is the culprit (in my testing). The new indexRelations seemed to help. However, if you have maxRevisions set then every save is also a delete and that triggers the same massive query for related elements.
https://github.com/studioespresso/craft-scout/blob/cc68a24e1524fd3f63f5f5e64f615a8c644673a5/src/Scout.php#L166
Is it possible to throw beforeDeleteRelated behind the same indexRelations flag as well for larger datasets?

@markhuot that sounds like a great idea!

The fix @markhuot mentioned is out in 2.6.1.

This is a game-changing fix for us. I was having nightmares trying to figure out why saving was taking so long on our Craft install and throwing ever-more expensive and overpowered hardware at the problem was barely scratching the surface. Just implementing 'indexRelations' => false in our config and updating to 2.6.1 has dropped our save times from over 3 minutes to just a few seconds. Thank you all for getting to the bottom of this!


Potential fix for scapy'ies conditional field mask (for #162)

Closes: #162
Issue:
Some Scapy'ies Packets contain  Conditional Fields, like VXLAN.
The previous mechanism tries to find elements to mask, using a field_desc which represents the entire raw packet with all options, not a specific version of the packet.
All the fields that were taken by the mechanism:
["flags <class 'scapy.fields.FlagsField'>",
"reserved0 <class 'scapy.fields.ConditionalField'>",
"NextProtocol <class 'scapy.fields.ConditionalField'>",
"reserved1 <class 'scapy.fields.ConditionalField'>",
"gpflags <class 'scapy.fields.ConditionalField'>",
"gpid <class 'scapy.fields.ConditionalField'>",
"vni <class 'scapy.fields.X3BytesField'>",
"reserved2 <class 'scapy.fields.XByteField'>"]

when we provide such example:
VXLAN(flags=0x80, gpflags=0x23, gpid=0x1234, vni=0x1337)

Scapy will create a packet with gpflags & gpid. The nextprotocol will be skipped. Old mechanism to mask fields, calculate base on the information from fields_desc not from only available after the build packet process, which causes IndexError and masking the wrong fields.
Valid fields that should be taken into account by the mechanism:
["flags <class 'scapy.fields.FlagsField'>",
"gpflags <class 'scapy.fields.ConditionalField'>",
"gpid <class 'scapy.fields.ConditionalField'>",
"vni <class 'scapy.fields.X3BytesField'>",
"reserved2 <class 'scapy.fields.XByteField'>"]

After this change, we locate the fields based on the finished, built package.

@antoninbas , @saynb & @slicking Can I please you for review?

Are there any automated tests in this repo?  If yes, and if it is straightforward to add a unit test that fails without these changes, and passes with these changes, that would be nice.


Make fields public in ApproachBodyEvent

The fields in on the ApproachBodyEvent type are set to private. This seems like a mistake, so I changed that.

Nice catch! Just merged it and will create a 0.5.1 release which includes this change.


[wasip2] incoming http handler

This PR is first of many to support wasip2 in spin go sdk.

I'll update this branch to use wasm-tools-go from bytecodealliance org as that repo has been moved.

Hi @adamreese @michelleN
I believe this PR is ready for review. 🎉
thank you

Adding an extra line to the response output gives me this error
2024-09-20T18:07:05.502974Z ERROR spin_trigger_http::server: Error processing request: guest invocation failed

Caused by:
    0: error while executing at wasm backtrace:
           0: 0x42c98 -<EMAIL_ADDRESS>           1: 0x17a4b - main!interface:{Write:func:{slice:basic:uint8}{basic:int,named:error}}.Write$invoke
           2: 0x32eaf - main!fmt.Fprintln
           3: 0x34163 -<EMAIL_ADDRESS>    1: write exceeded budget

Adding an extra line to the response output gives me this error
2024-09-20T18:07:05.502974Z ERROR spin_trigger_http::server: Error processing request: guest invocation failed

Caused by:
    0: error while executing at wasm backtrace:
           0: 0x42c98 -<EMAIL_ADDRESS>           1: 0x17a4b - main!interface:{Write:func:{slice:basic:uint8}{basic:int,named:error}}.Write$invoke
           2: 0x32eaf - main!fmt.Fprintln
           3: 0x34163 -<EMAIL_ADDRESS>    1: write exceeded budget

Hi Adam, thanks for pointing this out. I have pushed a fix for it and it seems to be working now.

Could we break out Dagger to a separate conversation from this PR?

yes absolutely. I will push updated PR.

Hi @adamreese
I have pushed the following changes:

removed dagger for now
update wasm-tools-go to latest version (and new url go.bytecodealliance.org
added basic workflow using vanilla GitHub actions

Please let me know if there are other things we should address before merging this.


System Definition Alternatives

We currently provide the SystemBuilder for constructing systems. This API is needed because it is very difficult to manually express the type of a legion system, as it statically encodes an arbitrary number of queries and resource accesses, and queries statically encode into their type all of their data accesses (tag/component types and mutable/immutable) and filter expressions (which can be arbitrary boolean expressions).
However, in many cases the full power of SystemBuilder is not needed; most systems only use one query, and do not request any complex filter logic on that query. There may be scope for providing a higher level simplified API for system construction which would still be sufficient to cover the most common use cases.
System Traits
The first option may be to provide system traits which can be implemented on a unique struct for each system, similar to how specs/amethyst defines its systems:
// basic wrapper for `SystemBuilder`
struct MySystem;
impl IntoSystem for MySystem {
    fn into_system(self) -> Box<dyn Schedulable> {
        SystemBuilder::new("MySystem")
            .with_query(<(Read<Velocity>, Write<Position>)>::query())
            .read_resource::<Time>()
            .build(|_, world, query, time| {
                for (vel, mut pos) in query.iter(&mut world) {
                    *pos = *pos + *vel * time.delta_seconds();
                }
            })
    }
}

// simplified wrapper
struct MySystem;
impl ForEachSystem for MySystem {
    type Resources = Read<Time>;
    type Query = (Read<Velocity>, Write<Position>);

    fn for_each(entity: Entity, (vel: &Velocity, pos: &mut Position), time: &Time) {
        *pos = *pos + *vel + time.delta_seconds();
    }
}

There are a few limitations on ForEachSystem:

There can be only one query.
The query can't have any additional filters.
There is no world access. It could be possible, but only the unsafe APIs would be usable.
You can't run code outside of the loop body.

A ParForEachSystem alternative could be provided which uses par_for_each internally, but it would require the additional restriction that Resources must be ReadOnly.
These system structs can be converted into a System via .into_system().
Macro
Alternatively, we could use a procedural macro to define systems. I do not have experience writing procedural macros, so this is mostly speculative:
#[system(UpdatePositions)]
fn for_each(pos: &mut Position, vel: &Velocity, #[resource] time: &Time) {
    *pos = *pos + *vel * time.delta_seconds();
}

This would create an UpdatePositions system struct and implement IntoSystem. It has many of the restrictions of the ForEachSystem trait, except:

We can use argument position attributes to define #[tag], #[resource] and some filters such as #[on_changed].
The implementation would use either for_each or par_for_each, depending on whether or not all resources are accessed immutably, although the syntax does not make the performance impact obvious.
Requesting the Entity and CommandBuffer would be optional.
Access to PreparedWorld could be allowed, provided we check safety.

The above macro would generate something like:
struct UpdatePositions;

impl UpdatePositions {
    fn for_each(pos: &mut Position, vel: &Velocity, time: &Time) {
        *pos = *pos + *vel * time.delta_seconds();
    }
}

impl IntoSystem for UpdatePositions {
    fn into_system(self) -> Box<dyn Schedulable> {
        SystemBuilder::new(std::any::type_name::<Self>())
            .read_resource::<Time>()
            .with_query(<(Write<Position>, Read<Velocity>)>::query())
            .build(|_, world, query, time| {
                query.for_each(world, |(mut pos, vel)| {
                    Self::for_each(pos, vel, time);
                });
            })
    }
}

With regards to the safety of random access in the for-each trait/macro:

It is never safe to provide access to &mut PreparedWorld, as the query is already borrowing it.
It is safe to provide &PreparedWorld access if (and only if) the query's view is ReadOnly.

The safe APIs are fully usable
The unsafe _unchecked APIs are safe to use provided the entity accessed is not the current loop iteration entity.

If the view is not ReadOnly, then only the _unchecked APIs can be used, with the same caveats as above. There is currently no way to provide access to only the _unchecked functions.

I hacked together a quick system macro here a while back. It only supports resource access and not queries, but you're welcome to look it over for reference.

Using the new system macro in tonks, it's possible to write systems with queries and any resource access:
#[system]
fn system(
    resource1: &Resource1,
    resource2: &mut Resource2,
    mut query: PreparedQuery<(Write<Position>, Read<Velocity>)>,
    world: &mut PreparedWorld) {
     for (mut pos, vel) in query.iter(world) { /* ... */
}

It should be possible to implement something like this in Legion as well.

Iterating a little on the macro design:
#[system]
fn update_positions(
    #[res] time: &Time,
    #[query] entities: (Write<Position>, Read<Velocity>),
    world: &mut PreparedWorld)
{
    for (mut pos, vel) in entities.iter(world) {
        *pos += *vel * time.delta_seconds();
    }
}

#[for_each]
fn update_positions(#[res] time: &Time, #[com] pos: &mut Position, #[com] vel: &Velocity) {
    *pos += *vel * time.delta_seconds();
}

Two macros, system and for_each. system wraps a function into a system, and can inject resources and queries, and a world and command buffer. It can accept multiple queries, but they cannot have any additional filters attached beyond the default ones that come with the view. for_each wraps the inner body of a query into a system.
Both compile into a function which builds a system via the SystemBuilder. The macros have a few options:

fn (not actually sure if you can use a keyword here): names the generated function. Defaults to the ident of the function marked with the macro.
struct: If present, generates a zero-sized struct with the given name, implements the generator function on that struct, and implements Into<Box<dyn Schedulable>>.
name: name of the system. Defaults to the ident of the function.

So the default behaviour is to create a generator function with the same name as the input function.
e.g:
#[for_each(fn = "build_update_positions")]
fn update_positions(
    #[res] time: &Time,
    #[com] pos: &mut Position,
    #[com] vel: &Velocity)
{
    *pos += *vel * time.delta_seconds();
}

#[for_each(struct = UpdatePositions)]
fn update_positions(
    #[res] time: &Time,
    #[com] pos: &mut Position,
    #[com] vel: &Velocity)
{
    *pos += *vel * time.delta_seconds();
}

let mut scheduler = SystemScheduler::new();
scheduler.add_system(Stages::Update, build_update_positions()); // create system via function call
scheduler.add_system(Stages::Update, UpdatePositions); // create system via .into() on struct

#[system] uses helper attributes to annotate the function parameters:

#[res] marks a reference as a resource.
#[query] marks an argument as generating a query.

neither of these are strictly needed. We could make resources implicit if the type isnt a query, world or command buffer. Queries are always tuples and not references, but unlike all the other parameters, their type is re-written by the macro into the proper query type, so there is some magic there.
#[for_each] also uses helper attributes:

#[res] marks a reference as a resource.
#[tag] marks a reference as a tag.
#[com] marks a reference as a component.
#[on_change] adds a changed filter to a component, requires the parameter be marked as #[com].
#[maybe] marks an Option<T> component as a Try[Read/Write]<T>, rather than just a component which happens to be an Option.

We could make one of these implicit, but I am not sure whether or not that is desirable or, if so, which one. Preferably there would be some consistency between #[system] and #[for_each].

I've experimented with alternative system definitions and I think I came up with a pretty good solution, but it obviously still needs refining. I shared code on https://github.com/chemicstry/legion_test but keep in mind it's a test bed mess. It is based on experimental legion and you need to implement Default for Query (similar to IntoQuery) to compile.
Anyway, skipping the implementation details, system syntax looks very similar to specs. Here is an example:
impl System for TestSystem {
    type QueryData = (
        Query<Write<Position>, <Write<Position> as DefaultFilter>::Filter>,
        Query<Read<Velocity>, EntityFilterTuple<ComponentFilter<Position>, Passthrough>>,
    );

    type ResourceData = (
        Read<TestResourceA>,
        Write<TestResourceB>,
    );

    fn run(
        &mut self,
        (res_a, res_b): &mut <Self::ResourceData as ResourceSet>::Result,
        (pos, _vel): &mut Self::QueryData,
        _command_buffer: &mut CommandBuffer,
        world: &mut SubWorld,
    ) {
        println!("TestResourceA: {}", res_a.a);
        println!("TestResourceB: {}", res_b.b);

        for position in pos.iter_mut(world) {
            position.x += 1.0;
            println!("Position x: {}", position.x);
        }
    }
}

Most of the syntax look okay, but I couldn't figure out how to express filters only with a type system. Legion filters are constructed at run time and this does not work with QueryData syntax. Looking for comments and ideas.

Do you think something along the lines of the following is possible?
I'm using a similar syntax with specs and it works so much better than the regular syntax. Making system creation easy encourages users to make smaller system, so its worth taking the time to get to a syntax we are happy with. :)
make_system!(build_my_system, |(res_a: Read<TestResourceA>,),
(query_a: Query<Write<...>,...>::filter(...),),
 _command_buffer: &mut CommandBuffer,
_world: &mut SubWorld| {
do the things;
});

I guess it would be possible, but hard to tell. I'm not that experienced with macros yet. Although it still has the same problem of filters needing to be defined at type level.
Having a low-boilerplate system syntax is nice, but at the same time macros make it really hard to understand what is happening under the hood. I would prefer to have a pure rust way to define them and have such a simplified macro as an alternative. Also, the reason I'm trying to implement systems as structs is because some systems (rendering) in amethyst have to do resource initialization (solved by double wrapping in closures) and deallocation (unsolved). Having a trait with build and dispose functions as in specs solves this really nicely.

I had a little play in the rust playground here a few days ago looking into whether I could work around the lifetime issues that were blocking #134, and while what I had there is very much just hashing stuff out, it looks like it should be entirely possible to have something like:
let system = System::for_each(|a: &A, b: &mut B, c: Option<&C>, d: Option<&mut D>| {
    ...
});

For a basic single-query loop for the query <(Read<A>, Write<B>, TryRead<C>, TryWrite<D>)>::query(). The struct returned could also have a .filter fn which appends extra filters to its query much the same as queries themselves do.
The syntax is still very limited though, as (most notably) it does not allow access to resources. That might perhaps look something like:
let system = System::for_each_with_resources(
    |cmd: &mut CommandBuffer,
    world: &mut SubWorld,
    (a, b, c, d): (&A, &mut B, Option<&C>, Option<&D>),
    (time, renderer): (&Time, &mut Renderer)| {
        ...
    }
);

It might, for consistency, make sense to then also put the SystemBuilder constructor under System::builder().

I really think a struct is needed here. Closures are just not enough to provide multiple hooks as per #164 while still having named variables shared across these. If a macro is needed to make it reasonable to define, I think that should be considered. It's better than having to hack around closure limitations.

@kabergstrom I highly agree with you. I've been trying various alternatives to struct and nothing felt good enough.
The main limitation with struct systems is query filtering. Currently legion queries are implemented to be setup via runtime expression and this makes typed filters really inconvenient to use. Ideally this should be fixed in the filter types, but macro is also possible without much trouble. Maybe @TomGillen can comment on this.
I was also trying to merge QueryData and ResourceData into single SystemData tuple (like in specs), but this inevitably introduces lifetime for System without GATs. And I'm not sure if that's any better.

I have been working on this over the weekend (very nearly done, just need to sort supporting systems with generic arguments), but for handling system state it looks a bit like this:
/// declare a system with mutable counter state
#[system]
fn stateful(#[state] counter: &mut usize) {
    *counter += 1;
    println!("state: {}", counter);
}

fn build_schedule() -> Schedule {
    Schedule::builder()
         // initialize state when you construct the system
        .add_system(stateful_system(5usize))
        .build()
}

Other examples of what you can do:
#[system(for_each)]
fn update_positions(position: &mut Position, velocity: &Velocity, #[resource] time: &Time) {
    *position += *velocity * time.seconds();
}

#[system(par_for_each)]
#[filter(maybe_changed::<Position>())]
fn transform(position: &Position, rotation: Option<&Quaternion>, transform: &mut mat4x4) {
    *transform = Transform::calculate(position, rotation);
}

#[system]
#[read_component(Velocity)]
#[write_component(Position)]
fn custom(world: &mut SubWorld, #[resource] time: &Time) {
    let mut query = <(Write<Position>, Read<Velocity>)>::query();
    for (pos, vel) in query.iter_mut(world) {
        *pos += *vel * time.seconds();
    }
}

The functions that are annotated with the #[system] attribute are left in place as normal functions, so there are no issues with IDE support and auto-complete etc. It generates a new function which constructs a system which will call your function. It supports just about everything you can do with SystemBuilder, although systems with multiple queries are still a little more efficient than using a "basic" system, because SystemBuilder can declare all the queries that will be used ahead of time (which allows caching some data between runs and the scheduler has more flexibility).

Just got generic systems working:
#[system(for_each)]
fn print_component<T: Component + Display>(component: &T) {
    println!("{}", component);
}

fn build_schedule() -> Schedule {
    Schedule::builder()
        .add_system(print_component_system::<Position>())
        .build()
}


Invalid Characters in Token Data

hi
i read hardware token in pkcs11 lib but when display data i see that there is some character in token title

i think that middle ware of token generate zero byte as empty so, i replace some codes to show token label correctly
info = pkcs11Slot.TokenInfo.Label.SafeReplace("\0",string.Empty),
i test with another brand of token and these error does not exist.
i found that token with brand "mToken K3" has this problem, i think better there is way to show only human readable characters, but i do not know howto do this

PKCS#11 v2.20 specification states in chapter 9.2 that label member of CK_TOKEN_INFO structure is:

application-defined label, assigned during token initialization. Must be padded with the blank character
(‘ ‘). Should not be null-terminated.

IMO there are two possible explanations for your problem:

Unmanaged PKCS#11 library you are using is violating the specification by padding the label with '\0' characters instead of spaces; or
application you have used for token initialization incorrectly padded the label with '\0' characters instead of spaces.

I don't think it is a good idea to introduce workarounds for this problem in Pkcs11Interop. It needs to be fixed in unmanaged PKCS#11 library or in application performing token initialization.

yes, your are true, i test and see error was in middle ware of token, report to issuer company


Create a Git document collector

Status
This PR addresses this issue (https://github.com/guacsec/guac/issues/205). Created a Git collector which takes in a URL and clones it to a repo. Contains logic for existing repo already in a directory, as well as error handling.

There will be an update to call the file collector from the git collector.

Added file collector being called from git collector.


Fixed issue where accessing the current cell would fail on an iPhone 11

The currentCenterCell accessor returns nil on an iPhone 11, on debugging it turns out that the bounds check should be >= / <=

The issue is reproducible in the Simulator where on an iPhone 11 (not 11 Pro) the value of ScalingCarouselView.currentCenterCellIndex is nil due to the value of
ScalingCarouselView.currentCenterCell being nil
On other devices I've tried (iPhone 11 Pro, iPhone X, iPhone 6s) this issue doesn't occur


spoofer: 1.4.8 -> 1.4.11

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/spoofer/versions.
meta.description for spoofer is: "Assess and report on deployment of source address validation"
meta.homepage for spoofer is: "https://www.caida.org/projects/spoofer"
meta.changelog for spoofer is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.4.11 with grep in /nix/store/iq4gxqfm0nr2yw7giw1n7zl8hfs9yagy-spoofer-1.4.11
found 1.4.11 in filename of file in /nix/store/iq4gxqfm0nr2yw7giw1n7zl8hfs9yagy-spoofer-1.4.11

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
spoofer
spoofer-gui

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/iq4gxqfm0nr2yw7giw1n7zl8hfs9yagy-spoofer-1.4.11 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A spoofer https://github.com/r-ryantm/nixpkgs/archive/7f00e18ed527df904910ff63874ebec1667a7ab5.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/iq4gxqfm0nr2yw7giw1n7zl8hfs9yagy-spoofer-1.4.11
ls -la /nix/store/iq4gxqfm0nr2yw7giw1n7zl8hfs9yagy-spoofer-1.4.11/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

spoofer
spoofer-gui

Maintainer pings
cc @leenaars for testing.

Result of nixpkgs-review pr 187682 run on x86_64-linux 1

2 packages built:

spoofer
spoofer-gui


link-update

updated links and CTA

Looks good! I simplified the CTA so that only the contact info was highlighted and improved the sizing a bit.


add support for object comparison

Summary
Adds support to compare objects.
Why This Is Needed
An advantage to using troposphere is being able to unit test various iterations of a dynamic template. However, the lack of support for being able to compare objects with one another makes these test cumbersome to write.
Resolves #1821
What Changed
Added

added .to_json() method to base classes
added .__eq__() and .__ne__() methods to base classes

these use the newly added .to_json() method for comparison of same objects created from the same class to ensure properties are sorted in the same order
comparing against a dict (or list for AWSHelperFn to support Tags) uses .to_dict() instead of converting both to a JSON string

added AWSHelperFn.__hash__()

tests/test_tags.py:TestTags.test_Unsortable was failing with TypeError: unhashable type: 'Sub' without it

Thank you for adding this functionality.


Hotfix subgraph queries

Description

Type of change

[ ] Docs change / dependency upgrade
[ ] Configuration / tooling changes
[ ] Refactoring
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Requires changes in customer code

High-level change(s) description - from the user's perspective

Related Issue(s)
Fixes
Related pull request(s)

@preethamr @wanglonghong this seems to work, but there might be a better place to put this check since it's a bit unclear where it is.


Add low-level data structures to be shared with the worker.

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @aaltay

I think the failures were due to slowing down the pvalue gc detection test just enough to cause this to timeout (due to not emitting output for a while?). Pushed a change.

PTAL

Thank you for the explanations! LGTM


404 m0lese link

https://github.com/m0lese

source: https://github.com/App-Choreography/Get-An-Invite/blob/main/README.md#-successful-members-which-contributed-to-this-repo---

Thank you for pointing this out @BaseMax .
As this user is no longer on GitHub, I will remove it. Thank you.

https://github.com/App-Choreography/Get-An-Invite/commit/b82569bfbb5297ffd0a10353a9d99e9427a3dbc9
Completed. Thank you for your help @BaseMax .


Model.predict() subsequent predictions returning nan (tf-nightly TF 2.4.0-dev20201023, NVIDIA-SMI 456.71, CUDA 11.1, cuDNN 8.0.4, RTX 3090)

This seems to be an interesting issue with serial predictions using RTX 3090 with updated version of tf-nightly and CUDA 11.1 (Windows 10, cuDNN 8.0.4). I tried submitting the issue on stackoverflow without any resolution.
I'm passing a single image_array: (IMAGE_DATA TYPE <class 'numpy.ndarray'> IMAGE_DATA.SHAPE (1, 640, 640, 3)) to MODEL.predict(IMAGE_DATA). The first time the model is compiled, the predictions make sense (accurate bounding boxes, class type). However, the second time a new image or a copy of the first image is passed to MODEL.predict() it returns predictions that don't make any sense (see below). This is a YOLOv3 model.
 If I run the same code/images on a different computer with a GTX 1060 and TF 2.3.0, CUDA 10.1 NVIDIA-SMI 441.87 it correctly predicts on all images.
Has anyone else had a similar issue and are there any thoughts on what the problem might be or fixes/workarounds?
Thanks

@fussners
Please share simple stand alone code for us to replicate the issue faced or if possible share a colab gist with error reported.

I have the same configuration as you, But I am stuck in the epoch and there is no error. Have you ever encountered this problem?

Did you get resolution on this? I am facing the same issue, unfortunately!

Did you get resolution on this? I am facing the same issue, unfortunately!

@ajaymaity I had the same error. Did you fix it?

@rafikg @ajaymaity @fussners
Yo guys, anyone got the issue solved? lol
I'm facing this exact same problem, tested on RTX3060, RTX3070 laptop, RTX2080
RTX3000 series can't run with CUDNN 7
On RTX2080 I tried tensorflow 2.3 or below, it is working perfectly. Tensorflow 2.4 & 2.5 is return all NAN except the first prediction


Tabs titles getting erased when you save the page

Description of the bug
When you add a tabs block for the first time and you add couple tabs there and you give those tabs a title, and you press save and close, you can notice that the titles are present and as soon as you press save on the page builder you can see that the tab titles are erased and the blocks titles are there and just the first title is still present. (You can clearly see this behaviour from the video below)
Reproduction steps

Create a new NS
Create a new module
Create a record page
Go on your public page and add a tabs block
Add couple tabs and write titles for each tab
Press save and close on tabs block
Notice that the titles are there
Now press save on the page builder
Notice that the titles are erased except for the first tab

Expected behavior
The tabs titles should not be erased on a page save.
Screenshot/Video
https://user-images.githubusercontent.com/53232926/229772584-bf51e526-c73f-492a-9c45-973aa3fdeacf.webm
Version
Branch: 2023.3.x

Problem appears only when you have not saved a block at all and you tab it then give it a title. If you save the blocks before tabbing them it does not occur.

For today: investigate issue and see what's causing this behaviour

Tested and confirming that this is now fixed. No need for CL here since this is a fix for an unreleased new feature.


fix: Enable directives in result schema

Disable validation for schema so we can load it with directives that are not supplied. There are follow up issues that I will need to resolve later:

Add error code to keycloak lib
Show actual dialog to user that error happened

Verification
Follow the local walkthought for keycloak (add hasRole)

Build was failing due to cache issue. Retriggered build worked. Master build will confirm that things still build


Link to Postgres installation instructions for mac on wiki is dead

The wiki currently links to http://russbrooks.com/2010/11/25/install-postgresql-9-on-os-x for installation of postgres on a mac.  As of Jan 6, 2016 this link appears to be dead.

Fixed by prepending www. to link


Fix package name set error for create project command

Hey @simonjhy I've updated the create project code again (hopefully the last time) can you reapply your changes?  thanks.


GeneralizedTime raises ValueError when dealing with fractional seconds

In short, this is what happens:
Python 3.5.5 (default, Apr 25 2018, 10:05:30)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from pyasn1.type.useful import GeneralizedTime

In [2]: GeneralizedTime('20170904113726.369').asDateTime
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-2-e31a8ea96779> in <module>()
----> 1 GeneralizedTime('20170904113726.369').asDateTime

...venv/lib/python3.5/site-packages/pyasn1/type/useful.py in asDateTime(self)
    124             raise error.PyAsn1Error('malformed datetime format %s' % self)
    125
--> 126         return dt.replace(microsecond=ms, tzinfo=tzinfo)
    127
    128     @classmethod

ValueError: microsecond must be in 0..999999

I believe the problem is a little bit above, line 107:
                ms = int(ms) * 10000

It should be 1000, not 10000

Fixed in 2cfdcffb666c1b8756aa4d345ef4cac608286c45. Thanks! ;)

Fix released in 0.4.3

Same problem seems to exist with UTCTime.


[📚 firebase_messaging] Lacking (missing) documentation on how to handle user interaction with notification on web

Currently the example app and documentations for web only talk about how to show the notiffications.
The most important part about notifications is what happens when the user clicks on them or interacts with their action buttons: this is not documented in any shape or form.
It would also be very useful to add an example in the example app on how to handle data notifications both when web app is in foreground and in background.

You have this documentation: https://firebase.google.com/docs/cloud-messaging/flutter/receive#handling_interaction
Can you specify what is not enough?

That documentation is for Android and iOS. I was wondering how to be able to do something when the notification is clicked on WEB.
Specifically I would like to open a specific page in my web app, based on notification payload. I searched everywhere (and tried the example app) but wasn't able to figure it out.

It would be nice to document if it's possible to prevent the app from opening after the notification is tapped. I am looking for this, but it isn't said anywhere.

It would be nice to document if it's possible to prevent the app from opening after the notification is tapped. I am looking for this, but it isn't written anywhere.

That is not relevant to this issue. Unless you are able to open the app upon notification click on web; in which case it would be awesome if you could share how you are achieving this behavior :)

any news ?

I managed to implement the behavior described in this issue by using awesome_notifications and awesome_notifications_fcm packages for Android and iOS instead of firebase_messaging. For web i integrated with a lot of hard work the Google's JavaScript SDK with Js and dart interop.
It seems that it is firebase_messaging package that intercepts the notificationclick event...

@SeriousMonk I saw both of your posts here, as well as on Stack Overflow, but it looks like there is still no proper solution to this. I would be very interested in seeing your solution.
If it is true that the notificationclick is being consumed by the the firebase_messaging package, then I wonder if it's possible for Web-only users to use the firebase_messaging_web: ^3.5.1 package. If the notificationclick is consumed, it is likely done so when handling Android and iOS functionality. If I can't get this working with the web package, then that's going to be just odd.
If the web-only package works, then that means something can also be done inside this package, such as only registering a listener if the platform isn't web.

It looks like we will have to use JavaScript for the time being. Still no luck here.

I am working on a web-only project, so I can't speak for Android/iOS here. Here's what I found:
Google Chrome, while running on localhost, does not support the "notificationclick" event. This caused me to think that the event was not working for web. I ended up coding it all in javascript to find the same issue (at least I learned interop).
My interop javascript worked perfectly fine on Edge, and on localhost, but still not on Chrome! Knowing this, I reverted back to using this package, and just got done testing.

Google Chrome localhost: The event is NOT supported

Google Chrome in a live: Supported!

Microsoft Edge localhost: Supported!

Microsoft Edge live: Supported!

Mozilla Firefox live mode: Supported!

Opera live mode: Supported!

When testing Mozilla, I noted that clicking the notification brought the window into the foreground, but my console.log(), within the event listener, did not get printed to the terminal. After a few google searches, I found this to be a common problem with Firefox. The point I wanted to make, though, was that the Chrome notification (localhost) did NOTHING when clicked: No log, and the window did not come to the foreground. At any rate, this is a browser issue, not a library issue.
With this knowledge, I would assume that all notificationclick events work. If an event is being consumed my another platform, which I have yet to confirm, then platform separated code would be a good option. I can confirm this in a few weeks or so.
I agree 100% with the OP, that the point of notifications is that the user can click on them. That said, I found a great article on web.dev that supports usage of the notificationclick event. I would say it's worthy of mentioning in the documentation.
https://web.dev/push-notifications-notification-behaviour/
Tagging a few who may benefit from this information:
@SeriousMonk
@Joseph-Nathan
@Lyokone I believe this can be closed. Web is absolutely working as intended (at least it is now, maybe not before?)

My solution works everywhere, even on chrome localhost and has support for notification actions like buttons and text replies.
It is difficult to share since it is made of several files, but I'll work something out and try to share everything before the end of the week.

@SeriousMonk I wonder, were you trying to use Google Chrome from localhost when you were having issues? I wonder if that was just what it was, because that doesn't work. Only live with Chrome works. If that's the case, then don't worry about sharing, unless you really want to. It took me 2 weeks to realize such a small thing, whereas it would have been more difficult for you, since you were on multiple platforms.

Yes, I believe that was indeed the case. However with the solution I'm using now, I'm using 'notificationclick' event on localhost on chrome and it's working. So I wouldn't exclude it being some problem with the package.

Bug report
Describe the bug
Flutter Web notification redirection not working
Steps to reproduce
Steps to reproduce the behavior:

click on notification
it will open same page it will not redirect to another screen.
See video

https://www.veed.io/embed/7ecfe6da-0108-4b9d-80b7-20e99c040b4c
Expected behavior
it should redirect to specific screen, which is mentioned in route
Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.5, on macOS 14.0 23A344 darwin-arm64 (Rosetta), locale en-IN)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.85.1)
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

@mahammad-webelight your issue was fix??
I am also facing this kind of issue,  i provide a specific url, like localhost:3000/invite/:userId, but it redurect to the localhost:3000/undefined.
I am using react js

same problem remains , any update ?

Any updates on the issue??


[scala2] Add test for serializable generated type-class

Adding a unit-test to avoid regression like https://github.com/softwaremill/magnolia/issues/487

Thank you! Great to expand the test suite :)


Make a extention for Firefox

@xmha97 Unfortunately Firefox does not yet support Manifest V3 and I have no plans to adapt the extension for the legacy manifest. When Firefox adds support for Manifest V3, we will be able to remember this issue. In the meantime, you can try it yourself, you will need to rewrite the manifest and change background.js


Bug in Instance ID creation causes multiple device node creation for same device

TL;DR: this is wrong 😛
The device ID is already unique because it contains the remote MAC address, adding another incrementing slot causes the same unique device being recreated into a new unique node causing issues with function drivers.

Fixed in v2.1.153


Remove nullOk parameter from Localizations.localeOf and add maybeLocaleOf

Description
This removes the nullOk parameter from Localizations.localeOf, and createsLocalizations.maybeLocaleOf.  Localizations.localeOfnow returns a non-nullable value, and the Localizations.maybeLocaleOf returns a nullable value.
Related Issues

https://github.com/flutter/flutter/issues/68637

Tests

Updated tests to use maybeOf.

Breaking Change

[X] Yes, this is a breaking change that will require a migration guide.

[X] I wrote a design doc
[ ] I got input from the developer relations team, specifically from: TBD
[ ] I wrote a migration guide: TBD

This one is going to take some migration of the customer tests, since the svg package uses localeOf with nullOk set to true.
I think this will need happen in three parts: one that introduces maybeLocaleOf without changing localeOf, then a change to the svg package to use that instead of localeOf in the cases where it passes nullOk == true, making sure it never calls localeOf with a nullOk argument. Thirdly, we can remove the nullOk argument in a final change.

This change will include the first of those three changes.


Fix when symbol used for validator’s scope

Was complaining about not + method for Symbol

Thank you for fix. Merging.


AEMO_ROOFTOP_BACKFILL currently aggregates by month, require daily

AEMO_ROOFTOP_BACKFILL is a network that contains derived data to populate solar_rooftop data prior to the AEMO source start date.
The data is currently bucketed in months at the beginning of each month, we need to source at a minimum daily data, preferably per-interval data
This issue stands out on the FE when you look at stripes:
https://opennem.org.au/stripes/nsw1/?metric=solarProportion
And see the 'pillars of midnight flashes' in the data:

Tasks:

[ ] Find/investigate original source of data and when / how it was imported
[ ] Temporarily disable AEMO_ROOFTOP_BACKFILL in daily outputs
[ ] What is the interval size of the source
[ ] Correct / import
[ ] Re-run weeklies in archive, daily outputs once in and re-enable

/cc @simonhac

according to @dylanjmcconnell, APVI extends back to may 2013.
let's start by limiting daily data series to:

all APVI from may 2013 to nov 2016
all AEMO rooftop solar from 2016

…but keep the pre-may 2013 monthly backfill data (which dylan estimated) in the monthly series.

On dev with APVI data:
https://dev.opennem.org.au/stripes/nsw1/?metric=solarProportion

…also fix trailing zeros.


Cannot read PDF, .Docx from Internal Storage using cordova.file.externalRootDirectory for Android 11

Bug Report
Problem
Not able to read PDF and .Docx files from location file:///storage/emulated/0/Download/. Also not able to read files recursively inside directories, Returning array length of '0'.
What is expected to happen?
Should return all files under location file:///storage/emulated/0/Download/
What does actually happen?
Able to read only  .jpeg, .gif, .mp3, ,mp4 files.
Information

Command or Code
listFilesinFolder(folderName) {
this.file.listDir(this.file.externalRootDirectory, 'Download'+'/').then((filesList) => {
console.log('filesList-->', filesList);
if (filesList.length !== 0) {
Promise.all(filesList.map(async (file) => {
if (file.isDirectory) {
console.log('Directory', file);
this.listFilesinFolder(file.fullPath.substring(1));
} else if (file.isFile === true) {
console.log('file', file);
}
}
})));
}
Environment, Platform, Device
Android 11
Version information
"@ionic-native/file": "^5.36.0",
"cordova-plugin-file": "^6.0.2",
Included below in config.xml:

Included below in config.xml:
<preference name="AndroidPersistentFileLocation" value="Internal" />
  <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
            <application android:networkSecurityConfig="@xml/network_security_config" />
            <application android:requestLegacyExternalStorage="true" android:usesCleartextTraffic="true" />
        </edit-config>

@ragul02  - i have tried but not working. any other idea

Does anyone have solution for that


Allowlist microsoft/pxt-tilemaps

pre merge TODO:

[x] https://github.com/microsoft/pxt-tilemaps/issues?q=is%3Aissue+is%3Aopen+label%3A"next+release"
[x] all of: https://makecode.com/extensions/approval

post merge TODO:

[ ] document all blocks
[ ] post to forum

for documentation:

Add a image for the extension. Everything else looks great.


Added Support for the new /fim/completions route on Mistral AI API

Support new /fim/completions route on Mistral AI API:
Description:

 /fim/completions endpoint work in the same way as the /chat/completions route. It handles extra  parameters such as suffix, prompt  also.
Implemented fimCompletionsHandler to handle requests to the /fim/completions endpoint.
Updated the API configuration to include the new fimComplete endpoint.
implemented response and stream chunk transformations for the fimComplete function in Mistral AI.
Modified index.ts to register the new route v1//fim/completions with request validation.

Motivation:

To add support in portkey gateway for the new /fim/completions route on Mistral AI API

Related Issues:

#381

Thank you for the contribution @keshavkrishna will review this soon

Yes I will take care of these comments by this weekend. Is that timeline okay?

Hey. Is it not possible to reuse the existing /chat/completions route? We can passthrough all the extra key as it is

Requests to the existing /chat/completions route are redirected to the provider's base URL with the endpoint chat/complete. In this scenario, we need to direct requests to the provider's base URL with the endpoint fim/completions.

We can accept a new header x-portkey-mistral-fim-completion: true and route it conditionally to the the mistral fim completions route. Adding a new router for provider specific routes is not the most feasible solution here because it will increase the number of routers in future.

Sure, I'll implement this

@VisargD
If I am not getting mistralFimCompletion in  providerOptions. following is provider option i am getting
{
  provider: 'mistral-ai',
  apiKey: '  SOME_API_KEY_HERE',
  overrideParams: {},
  retry: {},
  cache: {}
}

so i have passed requestHeaders in getEndpioint, and i am checking by
if (requestHeaders['x-portkey-mistral-fim-completion'] === 'true')
Is that okay??

@VisargD
If I am not getting mistralFimCompletion in providerOptions. following is provider option i am getting
{
  provider: 'mistral-ai',
  apiKey: '  SOME_API_KEY_HERE',
  overrideParams: {},
  retry: {},
  cache: {}
}

so i have passed requestHeaders in getEndpioint, and i am checking by if (requestHeaders['x-portkey-mistral-fim-completion'] === 'true')
Is that okay??

Hey! specific headers checks might not be required. Here is what you can do:

In this function, add one more condition for mistral-ai provider and add the mapping for mistralFimCompletion in it. Check the existing conditions for other providers for reference. Once this is done, you will always get the mistralFimCompletion param in providerOptions.
https://github.com/Portkey-AI/gateway/blob/3bb3a80385258ab2b2262ac28f6e3f2f47e0e3f1/src/handlers/handlerUtils.ts#L969

Please let me know if you want an example

Yes it is. We are using chatComplete transforms as per visarg's comment.

Yes it is. We are using chatComplete transforms as per visarg's comment.

for openai compliant providers, you would need to use the methods from open-ai-base provider to mention transforms
see the code for inference.net and sambanova for reference https://github.com/Portkey-AI/gateway/blob/b12ce10889497be3f3f7c9e2dd07436de0911c34/src/providers/inference-net/index.ts
https://github.com/Portkey-AI/gateway/blob/b12ce10889497be3f3f7c9e2dd07436de0911c34/src/providers/sambanova/index.ts

@keshavkrishna - Can you please run npm run format and also update with main branch? I can merge it now

@VisargD as requested i have updated my branch and also formatted it