Source changes

Merge update to latest source implementation

No, not that I am aware of..

oid on_connection_state_changed(esp_a2d_connection_state_t state, void *)
{
  if (state == esp_a2d_connection_state_t::ESP_A2D_CONNECTION_STATE_CONNECTED)
  {
  ...
  }
  else if (state == esp_a2d_connection_state_t::ESP_A2D_CONNECTION_STATE_DISCONNECTED)
  {
    ...
  }
}

these code branches don't seem to be getting hit anymore but my BT speaker seems to bet connected to the ESP32.  Maybe I'm just slowly going crazy.

It seems that the call to process_user_state_callbacks got lost: I just committed a correction....

I'm still not seeing that code get hit on connect / disconnect

Did you activate the logging and try to figure out what's happening ?

Just learned about setting the DEBUG level in the platformio file.  Thanks for the nudge.
Yes process_user_state_callbacks(event, param); is now on line 667 of the BluetoothA2DPSource.cpp file.
Here are the logs from the debug session
--- Terminal on /dev/ttyUSB1 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
[     5][D][BluetoothA2DPSource.cpp:126] BluetoothA2`␆5��ɍ��): [BT_API] BluetoothA2DPSource,
[    10][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
starting I2S-ADC...
bluetooth device name Gameboy-94C
[   526][I][BluetoothA2DPCommon.h:150] set_volume(): [BT_AV] set_volume: 255
[   527][D][BluetoothA2DPSource.cpp:167] start(): [BT_API] start,
[   530][D][BluetoothA2DPSource.cpp:186] start_raw(): [BT_API] start_raw,
[   537][D][BluetoothA2DPCommon.cpp:152] get_last_connection(): [BT_AV] get_last_connection
[   546][D][BluetoothA2DPCommon.cpp:175] get_last_connection(): [BT_AV] => f4:4e:fc:b4:35:d5
[   553][I][BluetoothA2DPSource.cpp:251] reset_last_connection(): [BT_API] reset_last_connection,
[   562][D][BluetoothA2DPSource.cpp:253] reset_last_connection(): [BT_API] last connection f4:4e:fc:b4:35:d5,
[   572][I][BluetoothA2DPCommon.cpp:67] disconnect(): [BT_AV] disconect a2d: f4:4e:fc:b4:35:d5
[  3111][D][BluetoothA2DPSource.cpp:338] bt_app_task_start_up(): [BT_AV] bt_app_task_start_up
[  3112][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0x0, param len 0
[  3119][D][BluetoothA2DPSource.cpp:319] bt_app_task_handler(): [BT_API] bt_app_task_handler, signal: 0x1, event: 0x0
[  3129][D][BluetoothA2DPSource.cpp:565] bt_av_hdl_stack_evt(): [BT_AV] bt_av_hdl_stack_evt event: 0
[  3139][I][BluetoothA2DPCommon.cpp:289] set_scan_mode_connectable(): [BT_AV] set_scan_mode_connectable false
[  3148][I][BluetoothA2DPSource.cpp:601] bt_av_hdl_stack_evt(): [BT_AV] Starting device discovery...
[  3155][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0x4, param len 16
[  3167][D][BluetoothA2DPSource.cpp:319] bt_app_task_handler(): [BT_API] bt_app_task_handler, signal: 0x1, event: 0x4
[  3167][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 10
[  3178][I][BluetoothA2DPSource.cpp:666] bt_app_av_sm_hdlr(): [BT_AV] bt_app_av_sm_hdlr state APP_AV_STATE_DISCOVERING, evt 0x4
[  3186][I][BluetoothA2DPSource.cpp:557] bt_app_gap_callback(): [BT_AV] event: 10
[  3197][D][BluetoothA2DPSource.cpp:633] process_user_state_callbacks(): [BT_AV] process_user_state_callbacks
[  3205][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 10
[  3223][I][BluetoothA2DPSource.cpp:557] bt_app_gap_callback(): [BT_AV] event: 10
[  3231][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 10
[  3239][I][BluetoothA2DPSource.cpp:557] bt_app_gap_callback(): [BT_AV] event: 10
[  3246][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 10
[  3255][I][BluetoothA2DPSource.cpp:557] bt_app_gap_callback(): [BT_AV] event: 10
[  3267][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 1
[  3271][I][BluetoothA2DPSource.cpp:487] bt_app_gap_callback(): [BT_AV] Discovery started.
[  9098][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 0
[  9099][I][BluetoothA2DPSource.cpp:401] filter_inquiry_scan_result(): [BT_AV] Scanned device: f4:4e:fc:b4:35:d5
[  9106][I][BluetoothA2DPSource.cpp:407] filter_inquiry_scan_result(): [BT_AV] --Class of Device: 0x240404
[  9115][I][BluetoothA2DPSource.cpp:411] filter_inquiry_scan_result(): [BT_AV] --RSSI: -30
[  9123][I][BluetoothA2DPSource.cpp:431] filter_inquiry_scan_result(): [BT_AV] --Compatiblity: Compatible
[  9133][I][BluetoothA2DPSource.cpp:433] filter_inquiry_scan_result(): [BT_AV] --Name: Tribit StormBox Micro 2
available ssid: Tribit StormBox Micro 2 strength: -30
[  9153][I][BluetoothA2DPSource.cpp:454] filter_inquiry_scan_result(): [BT_AV] --Result: Target device found
[  9157][D][BluetoothA2DPCommon.cpp:180] set_last_connection(): [BT_AV] set_last_connection: f4:4e:fc:b4:35:d5
[  9166][D][BluetoothA2DPCommon.cpp:184] set_last_connection(): [BT_AV] no change!
[  9174][I][BluetoothA2DPSource.cpp:458] filter_inquiry_scan_result(): [BT_AV] Cancel device discovery ...
[  9183][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 0
[  9192][I][BluetoothA2DPSource.cpp:401] filter_inquiry_scan_result(): [BT_AV] Scanned device: f4:4e:fc:b4:35:d5
[  9201][I][BluetoothA2DPSource.cpp:407] filter_inquiry_scan_result(): [BT_AV] --Class of Device: 0x240404
[  9211][I][BluetoothA2DPSource.cpp:411] filter_inquiry_scan_result(): [BT_AV] --RSSI: -30
[  9219][I][BluetoothA2DPSource.cpp:431] filter_inquiry_scan_result(): [BT_AV] --Compatiblity: Compatible
[  9228][I][BluetoothA2DPSource.cpp:433] filter_inquiry_scan_result(): [BT_AV] --Name: Tribit StormBox Micro 2
available ssid: Tribit StormBox Micro 2 strength: -30
[  9248][I][BluetoothA2DPSource.cpp:454] filter_inquiry_scan_result(): [BT_AV] --Result: Target device found
[  9252][D][BluetoothA2DPCommon.cpp:180] set_last_connection(): [BT_AV] set_last_connection: f4:4e:fc:b4:35:d5
[  9262][D][BluetoothA2DPCommon.cpp:184] set_last_connection(): [BT_AV] no change!
[  9269][I][BluetoothA2DPSource.cpp:458] filter_inquiry_scan_result(): [BT_AV] Cancel device discovery ...
[  9282][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 1
[  9287][I][BluetoothA2DPSource.cpp:478] bt_app_gap_callback(): [BT_AV] Device discovery stopped.
[  9296][I][BluetoothA2DPSource.cpp:479] bt_app_gap_callback(): [BT_AV] a2dp connecting to peer: Tribit StormBox Micro 2
[  9306][I][BluetoothA2DPSource.h:257] esp_a2d_connect(): [BT_AV] a2dp connecting to: f4:4e:fc:b4:35:d5
[  9316][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 1
[  9324][I][BluetoothA2DPSource.cpp:483] bt_app_gap_callback(): [BT_AV] Device discovery failed, continue to discover...
[  9346][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0x0, param len 16
[  9347][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 1
[  9355][I][BluetoothA2DPSource.cpp:487] bt_app_gap_callback(): [BT_AV] Discovery started.
[  9573][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 16
[  9574][I][BluetoothA2DPSource.cpp:548] bt_app_gap_callback(): [BT_AV] ESP_BT_GAP_ACL_CONN_CMPL_STAT_EVT
[ 10018][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0x0, param len 16
[ 10259][D][BluetoothA2DPSource.cpp:900] bt_app_rc_ct_cb(): [RCCT] bt_app_rc_ct_cb evt 0
[ 10260][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0x0, param len 12
[ 10267][D][BluetoothA2DPSource.cpp:900] bt_app_rc_ct_cb(): [RCCT] bt_app_rc_ct_cb evt 5
[ 10274][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0x5, param len 12
[ 13157][D][BluetoothA2DPSource.cpp:269] bt_app_work_dispatch(): [BT_API] bt_app_work_dispatch event 0xff00, param len 0
[ 17248][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 13
[ 17249][I][BluetoothA2DPSource.cpp:553] bt_app_gap_callback(): [BT_AV] ESP_BT_GAP_MODE_CHG_EVT mode:0
[ 22157][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 1
[ 22157][I][BluetoothA2DPSource.cpp:483] bt_app_gap_callback(): [BT_AV] Device discovery failed, continue to discover...
[ 22169][D][BluetoothA2DPSource.cpp:468] bt_app_gap_callback(): [BT_AV] bt_app_gap_callback evt 1
[ 22174][I][BluetoothA2DPSource.cpp:487] bt_app_gap_callback(): [BT_AV] Discovery started.

I added a simple line to my app which should have logged out the connection state change but apparently did not do so.
void on_connection_state_changed(esp_a2d_connection_state_t state, void *)
{
  Serial.print("connection state changed ");
  Serial.println(a2dp_source.to_str(state));
  ...
 }

void setup () {
 ...
 a2dp_source.set_on_connection_state_changed(on_connection_state_changed);
 ...

 Maybe you better use some switch with a default case. Look at the log and you will find a line with bt_app_av_sm_hdlr!
You don't get any ESP_A2D_CONNECTION_STATE_CONNECTED in your log because it is not connecting...

There is no if else statement wrapping this log call.  The full function is as follows
void on_connection_state_changed(esp_a2d_connection_state_t state, void *)
{
  Serial.print("connection state changed ");
  Serial.println(a2dp_source.to_str(state));
  if (state == esp_a2d_connection_state_t::ESP_A2D_CONNECTION_STATE_CONNECTED)
  {
    shutdown_ms = 0;
   //  muting internal gameboy speaker
    muteSpeaker();
  }
  else if (state == esp_a2d_connection_state_t::ESP_A2D_CONNECTION_STATE_DISCONNECTED)
  {
    shutdown_ms = millis() + 1000 * 60 * minutes;
   //  turning on internal gameboy speaker
    turnOnSpeaker();
  }
}

The BT device is indeed connected.  If i rub my fingers across pin 34 a sound does come out of the speakers.

The log that you sent me ends with [ 22174][I][BluetoothA2DPSource.cpp:487] bt_app_gap_callback(): [BT_AV] Discovery started.

Try to find out why you don't get process_user_state_callbacks() called. My guess would be that you are still executing the old code...

are you certain that bt_app_av_sm_hdlr is still being called on connection / disconnection?  I see the following line multiple times in my log files
[  3175][I][BluetoothA2DPSource.cpp:774] bt_app_av_sm_hdlr(): [BT_AV] bt_app_av_sm_hdlr state APP_AV_STATE_DISCOVERING, evt 0x4

but I don't see any corresponding logs for other states.

No, if I remember right this functionality has been tested on the sink only. So the logic might need to be extended...

I thought I had a working code prototype based on this stuff last week.  It was a bit noisy in that I would get multiple connection events for a single connect etc but it seemed to work.  Let me see if I can see what happened or fix it.

So you maybe try with the last released version and file an issue

I think I see something wrong. I added the following lines to Source.cpp
void BluetoothA2DPSource::process_user_state_callbacks(uint16_t event,
                                                     void *param)
{
ESP_LOGD(BT_AV_TAG, "JUSTIN JUSTIN JUSTIN event %d, enum %d", event, ESP_A2D_CONNECTION_STATE_EVT);
ESP_LOGD(BT_AV_TAG, "%s", __func__);

And I got the following log output
[  3186][I][BluetoothA2DPSource.cpp:780] bt_app_av_sm_hdlr(): [BT_AV] bt_app_av_sm_hdlr state APP_AV_STATE_DISCOVERING, evt 0x4
[  3195][I][BluetoothA2DPSource.cpp:651] bt_app_gap_callback(): [BT_AV] event: 10
[  3206][D][BluetoothA2DPSource.cpp:737] process_user_state_callbacks(): [BT_AV] JUSTIN JUSTIN JUSTIN event 4, enum 0

The event doesn't match up with the switch case is expecting.  I couldn't find where ESP_A2D_CONNECTION_STATE_EVT was defined.  is this a problem with with my development environment?

I don't understand you: Why are us pasting these log lines and the most important ones you just leave away?
I just made a test and confirm that it works like a charm!
Please note that the state reported by bt_app_av_sm_hdlr is the source state that is used to determine the valid state changes and not the target state!

Thank you for taking all this time to educate me. I really do appreciate it. I think the solution was to add a delay(1000) in my loop method.  After adding that in the event handler fired exactly as expected.


Include session on "How to draw a data flow diagram"

draw.io as a tool?

arrows are data flow or interaction
nodes are either storage locations or active agents (partners, users, labs, ...)
containers depict boundaries of institutes (crossing border means transfer of data/samples)

Please highlight the physical separation of the databases/dataset and all the information systems used
Find an example below to show you what is expected: highlight all the parties involved (or categories of parties if the personal data processing activities are the same), the information systems used by each party…

Choose a Tool: Select a diagramming tool such as Microsoft Visio, Lucidchart, or even PowerPoint.
Define Elements:
Entities: Use rounded rectangles for entities like "Healthy Volunteer", "Dr. Igor Green (CHL)", etc.
Processes: Use rounded rectangles with a different color for processes such as "Recruitment & Consent", "Blood Donation & Cell Line Isolation", etc.
Set Up the Layout:
Arrange entities and processes in a logical order, ensuring there is enough space between them for clarity.
Align elements consistently to maintain a clean layout.
Draw Connections:
Use arrows to indicate data flow between entities and processes.
Differentiate data flows from annotations using different arrow styles (solid for data flows, dashed for annotations).
Add Annotations:
Use text boxes to add annotations explaining specific data flows or interactions.
Style and Design:
Apply a consistent color scheme for entities, processes, and arrows.
Use professional fonts such as Arial or Calibri.
Add icons where appropriate to enhance visual appeal.
Create a Legend:
Add a legend to explain the meaning of different colors and arrow styles.
Title and Export:
Add a descriptive title at the top.
Export the final diagram in a high-resolution format suitable for sharing.

the session was added in the last run (2024-06)


Refactored doesUsernameExist and getUserByUsername to correctly check…

username is saved as lower case  in firestore once a user is created. I refactored the doesUsernameExist and getUserByUsername for correct comparison

Sorry I've only just seen this, can you reformat and add an empty line at the EOF?

The file has been reformatted.

Thank you!


Crash on Import PSARC File (Quick Edit)

DLC Builder 2.2.2 crashes on Mac Air M2 (Ventura 13.5) when opening Mac PSARC for quick edit with following message:
AggregateException: One or more errors occurred. (revorb process failed with exit code: 134)
Inner exception:
Exception: revorb process failed with exit code: 134
at Rocksmith2014.Audio.Conversion.validateRevorbOutput(Int32 exitCode, String output)
at Rocksmith2014.Audio.Conversion.wemToOggImpl(String sourcePath, String targetPath)
at Rocksmith2014.Audio.Conversion.wemToOgg(String wemFile)
at DLCBuilder.Utils.convert@220.Invoke(String wemFile)
at Microsoft.FSharp.Collections.SeqModule.Iterate[T](FSharpFunc2 action, IEnumerable1 source) in D:\a_work\1\s\src\FSharp.Core\seq.fs:line 632
at DLCBuilder.StateUtils.importPsarc@416.MoveNext()
at DLCBuilder.Main.task@220-28.MoveNext()

I wonder if it's somehow related to the issue on linux #15?
Don't know if rebuilding revorb would help.


[Admin] Publish

Docs Build status updates of commit c6364b6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/outlook/autolaunch.md
:white_check_mark:Succeeded
View

docs/outlook/compare-outlook-add-in-support-in-outlook-for-mac.md
:white_check_mark:Succeeded
View

docs/outlook/manage-state-and-settings-outlook.md
:white_check_mark:Succeeded
View

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded
View

docs/reference/requirement-sets/outlook-api-requirement-sets.md
:white_check_mark:Succeeded
View

docs/testing/create-a-network-shared-folder-catalog-for-task-pane-and-content-add-ins.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Porchctl repo command fixes

Fixes for porchctl repo command described in https://github.com/nephio-project/nephio/issues/755 issue.
I wasn't sure what approach to take for testing the repo commands. I see that repo reg command is using fake porch server. Should I follow suit for repo reg command?

Question about the CLA agreement. Axyom.core , my employer, is interested to sign the corporate CLA. I have a question for the email and GitHub account used in this PR.
So far, I've been working with my personal GitHub account and email address. Would I need to re-submit the PR with the corproate email and GitHub account linked to it?

I am closing this PR and will open a new one with Axyom.Core credentials to be able to submit Corporate CLA request.

/ok-to-test

Easy CLA signed

Easy CLA signed

It seems there is still some problem with the CLA, the check is not passing.Maybe submit a support request on the link above.

Easy CLA signed

It seems there is still some problem with the CLA, the check is not passing.Maybe submit a support request on the link above.

I have received a copy of the signed agreement, so I am not sure why the check is failing. I will contact support.

EasyCLA fixed. Proceeding with the next steps. Again, thank you for patience.

/retest


Pages breaking out of layouts not recognized

Describe the bug
Hi 👋
First of all I'd just like to say how cool this plugin is 😊
I encountered an issue where one of my pages wasn't recognized and thus the route not created in PAGES.
This concerns pages that are breaking out of layouts using the +page@ syntax.
Your Example Website or App
https://www.sveltelab.dev/eu3v5kak56cibi3
Steps to Reproduce the Bug or Issue

Starting from the template
Create the<EMAIL_ADDRESS>file
Open the ROUTES.ts file and notice the /about/test route it isn't in there

Expected behavior
Pages that are breaking out of layouts using the +page@ syntax should be correctly recognized and their route generated.
Platform

OS: macOS
NodeJS: 20.10.0
vite-plugin-kit-routes: 0.1.1

Additional context
No response

Hooooo yes!
Nice catch, I'm not using this feature.
I'll fix this asap

🚀<EMAIL_ADDRESS>it out. 🚀
Could you try and let me know ?
I let you close the issue if it's solved 👍

Working fine with<EMAIL_ADDRESS>thanks!
Closing this issue.


Allow skipping modal client setup in registry images

Adds a flag, setup_modal_client to Image static methods that load from a registry. This is so that images that don't need the Modal client (for Sandbox tasks) don't need Python installed.
modal.Image.from_dockerhub("node:slim", setup_modal_client=False)

Honestly don't love this, open to ideas for a better name. Some other options:
modal.Image.from_dockerhub("node:slim", for_sandbox=True)

modal.Image.from_dockerhub("node:slim", install_modal_client_reqs=False)

modal.Image.from_dockerhub("node:slim", no_python=True)

modal.Image.from_dockerhub("node:slim", skip_modal_client=True)

I wonder if it would make more sense to flip it around, so there's no modal package installed by default, and you have to run .install_modal() or something like that? Would need a deprecation path though.

I thought this would be great for #641 but unfortunately we would still need Python in the image regardless, for the shell client code to run :(

Ended up renaming to
modal.Image.from_dockerhub("node:slim", no_python=True)

Don't love it, but it feels better than the others.

We could, but it'll be pretty onerous to have to do that for every image for regular functions (not sandboxes). Seems like we can save our users quite a bit of time / boilerplate by having it be default.

I think boilerplate is sometimes fine if it's more conceptually clear what happens. But not a strong preference in this case.
Regarding the flag name, no_python feels a bit of a misnomer, because this is not about installing Python right? It's about installing Modal dependencies

Regarding the flag name, no_python feels a bit of a misnomer, because this is not about installing Python right? It's about installing Modal dependencies

Agree with this, I think add_modal=False would be better

Closing as stale, we can revisit!


CODATA.py symbol names not in line with current "allascii.txt"

Describe the bug
when importing constants from CODATA, like "from CODATA import c0" I get the error:
mu_0 = mag_constant

NameError: name 'mag_constant' is not defined
When I fix this by inserting into init.py line 175
Magnetic constant
mag_constant = vacuum_mag_permeability
this error seems fixed, but the next one appears:
epsilon_0 = electric_constant

NameError: name 'electric_constant' is not defined
.. and so on.
Expected behavior
The names of the constants in allascii.txt/CODATA.txt  should be updated in the code to match
https://physics.nist.gov/cuu/Constants/Table/allascii.txt
To Reproduce

My Platform
Win10, Anaconda3, Spyder, Python3.7

Thanks for the report! Unfortunately, this is not the correct place for it. This tracker is only for issues with the software that runs https://pypi.org itself. It cannot help with software installed from there (for example, using pip install <SOME PACKAGE>). You'll need to contact the maintainers of that software instead. This contact information can often be found on the PyPI project page (https://pypi.org/project/<SOME PACKAGE>).


ParrotBlot

I am a beginner to Java script and took more than 20 hours doing this parrot artwork. I made this parrot with a fundamental code of lines. it has been a great experience to do art with code because I enjoy doing art digitally and traditionally so it was really fun!!

[X] I have read the steps to getting a blot

[X] I am submitting art that...

[X] is algorithmically generated (will change each time the program is run)
[X] is drawable on a blot (fits in the work area & doesn't overlap too much)
[X] is original (not copied from somewhere else)
[X] doesn't call Math.random() (See the documentation on randomness)
[X] is drawable on a physical machine (doesn't have lines overlap more than 5 times)

[ ] Optional, if you used a tutorial or based your art on something else, please include the link here:

[ ] Optional, if you remixed this from something else, mention it here:

Love this!!! It would be perfect if you made some changes though.

When you re-run the program the changes are not too significant. Rather than the leaves changing size maybe add something different to the bird itself!

Cheers! (@Rrr)


Request: Live parser playground

Would it be possible to set up a page like http://pegjs.org/online as a way to learn how to make grammar for Nearley?
(Double bonus: suggested optimizations.)

Sure, we used to have a demo but it was a bit glitchy. Does anyone want to take the lead on implementing this? It should be easy-peasy.

Duplicate of #37, #68.

(Last update for tonight: see index.html and www/main.js for existing progress on this. Really, all that's left is for someone to hack together a frontend with some sort of text box and a couple of buttons.)

Ah.

See http://omrelli.ug/nearley-playground/.


review init system

https://github.com/nickodell/pact
https://github.com/Yelp/dumb-init
https://github.com/krallin/tini
https://github.com/rxse/lyrica
https://github.com/rxse/prismriver


Airdrop refactor

Pull request checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[x] Build (yarn build) was run locally and any changes were pushed
[x] Lint (yarn lint --check) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Airdrop logic is removed from Unirep core. Attesters may set an initial balance, but must manually create future airdrops using attestation functions.
To implement our existing airdrop function an attester would accept a zk proof of signup, verify it on chain, then attest to a GST root to give an epoch key some positive rep, negative rep, or different graffiti.
Removes AttestationEvent field from emitted events.
Does this introduce a breaking change?

[x] Yes
[ ] No

Other information
Depends #83
Depends #84

@vivianjeng With or without subsidy I'd still like to get this reviewed. Airdrops are attester level functionality, we don't need them in unirep core.


如何在 vue.js webpack 项目中设置 favicon.ico

案发现场
I have created a vue webpack project using vue-cli vue init webpack myproject And then ran the project under dev mode:
$ npm run dev

I got this error:
Failed to load resource: the server responded with a status of 404
(Not Found) http://localhost:8080/favicon.ico

So inside webpack, how to import the favicon.ico correctly?

解决方法

https://stackoverflow.com/questions/40190524/how-to-set-favicon-ico-properly-on-vue-js-webpack-project
http://www.jb51.net/article/123979.htm


Clarify “Libera Chat” vs. “Libera.Chat”

Is the name spelled “Libera Chat” or “Libera.Chat”? Currently both are used inconsistently throughout the website and I don’t know how to refer to the project.

Libera Chat is the legal name of the organisation, Libera.Chat is the network

Thanks. I see now that this is clarified under Network Policies—

Libera.Chat’s services are provided by Libera Chat

—which I didn’t think to check when I had questions about the project’s identity. I’d recommend making a similar statement on the About page, and perhaps the Welcome post if it’s not too late for minor revisions.


Allow PyB projects to be installed via URL-based install

fixes #200, connected to #200

@mriehl review please when you have a chance


Adds Dropwizard example

This is the first example to not use Brave configuration directly.
This uses https://github.com/smoketurner/dropwizard-zipkin to manage
tracer configuration.
Similar to the Spring Boot example, this makes a single file for both
examples: brave.example.Frontend and brave.example.Backend even if
it is more common in practice to split up things into many files.
This helps make the examples easier to maintain at the cost of being
slightly less idiomatic.
cc @jplock as this should eventually be linked to the dropwizard-zipkin
repository. Note this also makes a docker image!

Looks great 💯


Set cookie in cefsharp

What version are you using? (exact version please e.g. 75.1.143, not Latest version as that's relative)

Are you using WPF/WinForms/OffScreen?

Are you targeting .Net Core? If yes which version?

No images of code/exceptions please, if you have a more than a few lines of code then please use Gist, Pastebin, JsFiddle, ControlC or similar. Post a link to example,

The CefSharp.MinimalExample is kept up to date with the latest version

You can use it for testing purposes
Take the project for a spin
Can you reproduce the problem with the MinimalExample?

Fork to provide a sample of your problem
Squash all your changes into a single commit
Only include nessicary changes to reproduce your problem, don't add code that's not relevant
Please don't remove the other examples that aren't relevant, just ignore then and keep your changes Minimal

I am working with cefsharp in winform and need to add a cookie related to the login token cookies when initialize a cefsharp browser. How do I do this?
please help?

In future please at least make an attempt to answer the questions listed in template.
See https://github.com/cefsharp/CefSharp/blob/cefsharp/86/CefSharp.Example/Handlers/BrowserProcessHandler.cs for an example of calling SetCookie.
http://cefsharp.github.io/api/86.0.x/html/T_CefSharp_ICookieManager.htm
If you require further assistance then please provide more detail of what it is you are trying to achieve.

hi ..
i use it..
thanks a lotttttttt 😊😊
On Wed, Dec 9, 2020 at 12:29 PM Alex Maitland<EMAIL_ADDRESS>wrote:

In future please at least make an attempt to answer the questions listed
in template.
See
https://github.com/cefsharp/CefSharp/blob/cefsharp/86/CefSharp.Example/Handlers/BrowserProcessHandler.cs
for an example of calling SetCookie.
http://cefsharp.github.io/api/86.0.x/html/T_CefSharp_ICookieManager.htm
If you require further assistance then please provide more detail of what
it is you are trying to achieve.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/cefsharp/Questions-and-Support/issues/76#issuecomment-742029522,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASB4IV3ZZWS4LK3OHREFI3TST7M25ANCNFSM4UTWEISQ
.


Image on

Image_on not working
When i send image_on it's not working, image not coming only test message coming.

Did you installed image requirements on your server ?
https://github.com/fristhon/telminal#prerequisites
Install above packages  and send !setup_browser to the Bot.


k8s addons charts should not use local

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

What is the outcome that you are trying to reach?

As of today, addons configured to use local.name which is also used for the release name, customers may want to configure a unique release name while no impacting the chart name as it should be hard coded.
Examples:
https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/349bbfaf8f7f4131f4ca0f8c2b237d523e4e0858/modules/kubernetes-addons/traefik/main.tf#L22
https://github.com/aws-ia/terraform-aws-eks-blueprints/blob/349bbfaf8f7f4131f4ca0f8c2b237d523e4e0858/modules/kubernetes-addons/aws-efs-csi-driver/main.tf#L14-L15
etc.
(I found 31 results under the k8s addons folder with chart       = local.name)

Describe the solution you would like
Addons that have static string of the repository, should also have "hard coded" string of the chart, the only thing that should be dynamic is the "name" (AKA helm release name).

Describe alternatives you have considered
For now, we can leverage the usage of the helm_config and overwrite the configuration of the chart and the release name, for example:
  prometheus_helm_config = {
    name       = "prometheus-diff-name"
    repository = "https://prometheus-community.github.io/helm-charts"
    chart      = "prometheus"
    version    = "15.10.1"
    namespace  = "prometheus"
    timeout    = "300"
    values = [templatefile("${path.module}/helm-values/prometheus-values.yaml", {
      operating_system = "linux"
    })]
  }

Additional context

this is now resolved in this project


Session now retrieved from task.requests, respecting domain_delays an…

…d other task config items. Also added default domain delay of 4 seconds due to increased spam filters by SCC
Planning to do this for most search plugins, at least to use the task.requests session.
This is a needed fix in order to use SCC currently.

Is it ready then?

Sure feels like it! @gazpachoking


Write conclusion/recommendations section of report

I wrote the conclusion and recommendations for report
Nighttime Parenting’s goal has always been to provide a solution to help ease the stressful and negative feelings that come along with taking care of an infant at night. The team worked diligently to achieve this by monitoring and logging when a baby wakes up, tracking the stress levels of the parent who is taking care of the baby, and implementing a stress relief routine for the parent when an increase in stress is detected. With its OLED screen, LED bar, stereo decoder, microphone, heart rate sensor, and dials, the Care Sleeve was designed to integrate all these functionalities in a seamless and intuitive way.
However, the Care Sleeve did provide quite a few challenges along the way. The team realized that integrating individual components together, combining hardware and software, and prototyping can lead to unexpected outcomes that need to be worked through. For example, the heart rate sensor proved to not be as accurate in taking measurements of a user’s BPM as expected. The microphone wasn’t originally able to pick up baby cries as desired. The flexible perfboard began to crack as we tried to flex it. The original ADC didn't have enough channels needed. The original OLED ordered was not working and we had to switch to a different model. These are all examples of challenges we had to overcome with our product.
In future iterations, a better heart rate sensor will be purchased for the product. The current heart rate sensor has faulty readings at times which have been shown to come from the performance of the actual sensor rather than the implementation. Additionally, the analytics that are seen in the browser UI will be implemented to give actual feedback on the night time care routine. SMS messages will be implemented as the form of communication between one care giver to the other rather than the email currently being used. A better flexible perfboard will be purchased along with durable material to build a better prototype.
Additionally, more user research will be done by working with actual parents and letting them use the care sleeve. This whole project had a context of user research found online, we lacked the research of real parents interacting with our product. None of the team members are parents, so there may be a huge disconnect between our product and that of what parents of infants actually need. With real user feedback of our product, the physical UI and the cuffs practical functionality will be tested and drive future iterations as well.
Overall, our whole design works well for what was planned however it is far from done. In order to actually market this as a product, more work needs to be done in many fronts to provide the best for our customers to really ease the pain of nighttime care. Although it isn’t at its final stage, we know this prototype is a good basis for the future growth that will come for this company and product.
The pitch and demo video for the Care Sleeve can be accessed here Appendix I - Demo and Pitch Video.


Relax OpenVINO dependency version

This PR enables installing optimum[openvino] in an environment where you already have a nightly version of OpenVINO installed. Currently running pip install optimum[openvino] in such an environment uninstalls the existing OpenVINO and that is usually not expected/desired.
Since nightly versions have to be explicitly installed by providing the index url, there's no chance someone will accidentally end up with a nightly version. Once a new OpenVINO version has been released it will have been validated.
I also wanted to relax the lower version but would also like to add a test that the lower bound version does still work. I can do that in a future PR. That's more important for the upcoming LTS release.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


How do I slow down AWS R53 DNS record updates

I am building an array of machines in AWS EC2.

An error occurred while executing multiple actions in parallel.
Any errors that occurred are shown below.

An unexpected error occurred when executing the action on the
'web4' machine. Please report this as a bug:

The request was rejected because Route 53 was still processing a prior request.

/Users/cloudgenius/.vagrant.d/gems/gems/aws-sdk-core-2.2.18/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/aws-sdk-core-2.2.18/lib/aws-sdk-core/plugins/param_converter.rb:20:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/aws-sdk-core-2.2.18/lib/seahorse/client/plugins/response_target.rb:21:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/aws-sdk-core-2.2.18/lib/seahorse/client/request.rb:70:in `send_request'
/Users/cloudgenius/.vagrant.d/gems/gems/aws-sdk-core-2.2.18/lib/seahorse/client/base.rb:207:in `block (2 levels) in define_operation_methods'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/util/aws_util.rb:38:in `change_record'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/util/aws_util.rb:28:in `add_record'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/action/add_record.rb:11:in `block in call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/action/base.rb:25:in `block in call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/action/base.rb:23:in `each'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/action/base.rb:23:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-dns-0.2.1/lib/vagrant-aws-dns/action/add_record.rb:10:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-0.7.0/lib/vagrant-aws/action/run_instance.rb:213:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-0.7.0/lib/vagrant-aws/action/elb_register_instance.rb:16:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-0.7.0/lib/vagrant-aws/action/warn_networks.rb:14:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/synced_folders.rb:86:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-cachier-1.2.1/lib/vagrant-cachier/action/install_buckets.rb:14:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/provision.rb:80:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-cachier-1.2.1/lib/vagrant-cachier/action/configure_bucket_root.rb:20:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/call.rb:53:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/Users/cloudgenius/.vagrant.d/gems/gems/vagrant-aws-0.7.0/lib/vagrant-aws/action/connect_aws.rb:43:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/box_check_outdated.rb:36:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/warden.rb:34:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/builder.rb:116:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `block in run'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/util/busy.rb:19:in `busy'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:66:in `run'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:214:in `action_raw'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:191:in `block in action'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:516:in `lock'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `call'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/machine.rb:178:in `action'
/opt/vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'

I just introduced some sleep that resolved.
sleep 2

@lvnilesh If it's OK, can I close this issue ?

Thank you very much @nasskach


fix: Issues with dialogs & colors

Will fix #1983 #1992, #1993, #1994, #1995, #1996, #1997, #1998

Can we merge @g123k

For Mex you can 👍


How to persist the state of only some routes

What package does this bug report belong to?
go_router
What target platforms are you seeing this bug on?
Android, iOS
Have you already upgraded your packages?
Yes
Dependency versions
pubspec.lock
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
  archive:
    dependency: transitive
    description:
      name: archive
      sha256: ecf4273855368121b1caed0d10d4513c7241dfc813f7d3c8933b36622ae9b265
      url: "https://pub.dev"
    source: hosted
    version: "3.5.1"
  async:
    dependency: transitive
    description:
      name: async
      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
      url: "https://pub.dev"
    source: hosted
    version: "2.11.0"
  boolean_selector:
    dependency: transitive
    description:
      name: boolean_selector
      sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.1"
  camera:
    dependency: "direct main"
    description:
      name: camera
      sha256: "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797"
      url: "https://pub.dev"
    source: hosted
    version: "0.10.5+9"
  camera_android:
    dependency: transitive
    description:
      name: camera_android
      sha256: "1100e527b44a96906987a91ef78c8dacb539e34612a8058de89023380acf67f1"
      url: "https://pub.dev"
    source: hosted
    version: "0.10.8+18"
  camera_avfoundation:
    dependency: transitive
    description:
      name: camera_avfoundation
      sha256: "841682a28b99b8594532d2afe81e092a2c1edb2c93526f6f841a878dd57eec8d"
      url: "https://pub.dev"
    source: hosted
    version: "0.9.14+2"
  camera_platform_interface:
    dependency: transitive
    description:
      name: camera_platform_interface
      sha256: a250314a48ea337b35909a4c9d5416a208d736dcb01d0b02c6af122be66660b0
      url: "https://pub.dev"
    source: hosted
    version: "2.7.4"
  camera_web:
    dependency: transitive
    description:
      name: camera_web
      sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d
      url: "https://pub.dev"
    source: hosted
    version: "0.3.2+4"
  characters:
    dependency: transitive
    description:
      name: characters
      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.0"
  clock:
    dependency: transitive
    description:
      name: clock
      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
      url: "https://pub.dev"
    source: hosted
    version: "1.1.1"
  collection:
    dependency: transitive
    description:
      name: collection
      sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
      url: "https://pub.dev"
    source: hosted
    version: "1.18.0"
  cross_file:
    dependency: transitive
    description:
      name: cross_file
      sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32"
      url: "https://pub.dev"
    source: hosted
    version: "0.3.4+1"
  crypto:
    dependency: transitive
    description:
      name: crypto
      sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
      url: "https://pub.dev"
    source: hosted
    version: "3.0.3"
  cupertino_icons:
    dependency: "direct main"
    description:
      name: cupertino_icons
      sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d
      url: "https://pub.dev"
    source: hosted
    version: "1.0.6"
  fake_async:
    dependency: transitive
    description:
      name: fake_async
      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.1"
  ffi:
    dependency: transitive
    description:
      name: ffi
      sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  file_selector_linux:
    dependency: transitive
    description:
      name: file_selector_linux
      sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
      url: "https://pub.dev"
    source: hosted
    version: "0.9.2+1"
  file_selector_macos:
    dependency: transitive
    description:
      name: file_selector_macos
      sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6
      url: "https://pub.dev"
    source: hosted
    version: "0.9.3+3"
  file_selector_platform_interface:
    dependency: transitive
    description:
      name: file_selector_platform_interface
      sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
      url: "https://pub.dev"
    source: hosted
    version: "2.6.2"
  file_selector_windows:
    dependency: transitive
    description:
      name: file_selector_windows
      sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0
      url: "https://pub.dev"
    source: hosted
    version: "0.9.3+1"
  flutter:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_lints:
    dependency: "direct dev"
    description:
      name: flutter_lints
      sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.2"
  flutter_plugin_android_lifecycle:
    dependency: transitive
    description:
      name: flutter_plugin_android_lifecycle
      sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da
      url: "https://pub.dev"
    source: hosted
    version: "2.0.17"
  flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_web_plugins:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  go_router:
    dependency: "direct main"
    description:
      name: go_router
      sha256: cdae1b9c8bd7efadcef6112e81c903662ef2ce105cbd220a04bbb7c3425b5554
      url: "https://pub.dev"
    source: hosted
    version: "14.2.0"
  google_mlkit_barcode_scanning:
    dependency: "direct main"
    description:
      name: google_mlkit_barcode_scanning
      sha256: f1a2a39cf1730b9a5e2784a07efa1ca5bfdfdde6aa00b193b3f8cd1953c638ec
      url: "https://pub.dev"
    source: hosted
    version: "0.12.0"
  google_mlkit_commons:
    dependency: transitive
    description:
      name: google_mlkit_commons
      sha256: "27d626c66a181351a953eba5b6ff1ff123aadb891b4dab085b292118f039d6ac"
      url: "https://pub.dev"
    source: hosted
    version: "0.7.1"
  http:
    dependency: transitive
    description:
      name: http
      sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
      url: "https://pub.dev"
    source: hosted
    version: "1.2.1"
  http_parser:
    dependency: transitive
    description:
      name: http_parser
      sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
      url: "https://pub.dev"
    source: hosted
    version: "4.0.2"
  image:
    dependency: "direct main"
    description:
      name: image
      sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e"
      url: "https://pub.dev"
    source: hosted
    version: "4.1.7"
  image_picker:
    dependency: "direct main"
    description:
      name: image_picker
      sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd"
      url: "https://pub.dev"
    source: hosted
    version: "1.0.7"
  image_picker_android:
    dependency: transitive
    description:
      name: image_picker_android
      sha256: "42c098e7fb6334746be37cdc30369ade356ed4f14d48b7a0313f95a9159f4321"
      url: "https://pub.dev"
    source: hosted
    version: "0.8.9+5"
  image_picker_for_web:
    dependency: transitive
    description:
      name: image_picker_for_web
      sha256: "6a1704fdd75022272e7e7a897a9068e9c2ff3cd6a66820bf3ded810633eac954"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.3"
  image_picker_ios:
    dependency: transitive
    description:
      name: image_picker_ios
      sha256: "917a5cadd67d052554cfb258595e54217de53fac5b52939426e26319a02e6297"
      url: "https://pub.dev"
    source: hosted
    version: "0.8.9+2"
  image_picker_linux:
    dependency: transitive
    description:
      name: image_picker_linux
      sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
      url: "https://pub.dev"
    source: hosted
    version: "0.2.1+1"
  image_picker_macos:
    dependency: transitive
    description:
      name: image_picker_macos
      sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62"
      url: "https://pub.dev"
    source: hosted
    version: "0.2.1+1"
  image_picker_platform_interface:
    dependency: transitive
    description:
      name: image_picker_platform_interface
      sha256: "3d2c323daea9d60608f1caf30be32a938916f4975434b8352e6f73dae496da38"
      url: "https://pub.dev"
    source: hosted
    version: "2.9.4"
  image_picker_windows:
    dependency: transitive
    description:
      name: image_picker_windows
      sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
      url: "https://pub.dev"
    source: hosted
    version: "0.2.1+1"
  intl:
    dependency: "direct main"
    description:
      name: intl
      sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
      url: "https://pub.dev"
    source: hosted
    version: "0.19.0"
  leak_tracker:
    dependency: transitive
    description:
      name: leak_tracker
      sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
      url: "https://pub.dev"
    source: hosted
    version: "10.0.4"
  leak_tracker_flutter_testing:
    dependency: transitive
    description:
      name: leak_tracker_flutter_testing
      sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.3"
  leak_tracker_testing:
    dependency: transitive
    description:
      name: leak_tracker_testing
      sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.1"
  lints:
    dependency: transitive
    description:
      name: lints
      sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
      url: "https://pub.dev"
    source: hosted
    version: "3.0.0"
  logging:
    dependency: transitive
    description:
      name: logging
      sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
      url: "https://pub.dev"
    source: hosted
    version: "1.2.0"
  matcher:
    dependency: transitive
    description:
      name: matcher
      sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
      url: "https://pub.dev"
    source: hosted
    version: "0.12.16+1"
  material_color_utilities:
    dependency: transitive
    description:
      name: material_color_utilities
      sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
      url: "https://pub.dev"
    source: hosted
    version: "0.8.0"
  meta:
    dependency: transitive
    description:
      name: meta
      sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
      url: "https://pub.dev"
    source: hosted
    version: "1.12.0"
  mime:
    dependency: transitive
    description:
      name: mime
      sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
      url: "https://pub.dev"
    source: hosted
    version: "1.0.5"
  path:
    dependency: "direct main"
    description:
      name: path
      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
      url: "https://pub.dev"
    source: hosted
    version: "1.9.0"
  path_provider:
    dependency: "direct main"
    description:
      name: path_provider
      sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  path_provider_android:
    dependency: transitive
    description:
      name: path_provider_android
      sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668"
      url: "https://pub.dev"
    source: hosted
    version: "2.2.2"
  path_provider_foundation:
    dependency: transitive
    description:
      name: path_provider_foundation
      sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f"
      url: "https://pub.dev"
    source: hosted
    version: "2.3.2"
  path_provider_linux:
    dependency: transitive
    description:
      name: path_provider_linux
      sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
      url: "https://pub.dev"
    source: hosted
    version: "2.2.1"
  path_provider_platform_interface:
    dependency: transitive
    description:
      name: path_provider_platform_interface
      sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  path_provider_windows:
    dependency: transitive
    description:
      name: path_provider_windows
      sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
      url: "https://pub.dev"
    source: hosted
    version: "2.2.1"
  petitparser:
    dependency: transitive
    description:
      name: petitparser
      sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
      url: "https://pub.dev"
    source: hosted
    version: "6.0.2"
  platform:
    dependency: transitive
    description:
      name: platform
      sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
      url: "https://pub.dev"
    source: hosted
    version: "3.1.4"
  plugin_platform_interface:
    dependency: transitive
    description:
      name: plugin_platform_interface
      sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.8"
  sky_engine:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.99"
  source_span:
    dependency: transitive
    description:
      name: source_span
      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
      url: "https://pub.dev"
    source: hosted
    version: "1.10.0"
  stack_trace:
    dependency: transitive
    description:
      name: stack_trace
      sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
      url: "https://pub.dev"
    source: hosted
    version: "1.11.1"
  stream_channel:
    dependency: transitive
    description:
      name: stream_channel
      sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  stream_transform:
    dependency: transitive
    description:
      name: stream_transform
      sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.0"
  string_scanner:
    dependency: transitive
    description:
      name: string_scanner
      sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
      url: "https://pub.dev"
    source: hosted
    version: "1.2.0"
  term_glyph:
    dependency: transitive
    description:
      name: term_glyph
      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
      url: "https://pub.dev"
    source: hosted
    version: "1.2.1"
  test_api:
    dependency: transitive
    description:
      name: test_api
      sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
      url: "https://pub.dev"
    source: hosted
    version: "0.7.0"
  typed_data:
    dependency: transitive
    description:
      name: typed_data
      sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
      url: "https://pub.dev"
    source: hosted
    version: "1.3.2"
  vector_math:
    dependency: transitive
    description:
      name: vector_math
      sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.4"
  vm_service:
    dependency: transitive
    description:
      name: vm_service
      sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
      url: "https://pub.dev"
    source: hosted
    version: "14.2.1"
  web:
    dependency: transitive
    description:
      name: web
      sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
      url: "https://pub.dev"
    source: hosted
    version: "0.5.1"
  win32:
    dependency: transitive
    description:
      name: win32
      sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a"
      url: "https://pub.dev"
    source: hosted
    version: "5.4.0"
  xdg_directories:
    dependency: transitive
    description:
      name: xdg_directories
      sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
      url: "https://pub.dev"
    source: hosted
    version: "1.0.4"
  xml:
    dependency: transitive
    description:
      name: xml
      sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
      url: "https://pub.dev"
    source: hosted
    version: "6.5.0"
sdks:
  dart: ">=3.3.0 <4.0.0"
  flutter: ">=3.19.0"

Steps to reproduce
Run the code with routerWithShell or routerWithStatefulShellRoute
Expected results
When I launch the app, branch A is built. Then if I increase the counter and change tab, the label of the new branch should show the value of the counter. If then I go back on A, the widget should not be rebuilt again.
Actual results
If I run the code with routerWithShell, the state of A is not saved. Indeed, every time I go on that tab, the future is elaborated. This is not want i want.
If I run the code with routerWithStatefulShellRoute, the state of all the tabs is persiste, and the label on tab B and C is not updated.
What I would like to is A to behave like when I use routerWithStatefulShellRoute and B/C to behave like when I use routerWithShell
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

final aKey = UniqueKey();

final routerWithShell = GoRouter(
  initialLocation: A.path,
  routes: [
    ShellRoute(
        builder: (context, state, widget) => MainNavigation(child: widget),
        routes: [
          GoRoute(
              path: A.path,
              pageBuilder: (context, state) => NoTransitionPage(child: A())),
          GoRoute(
              path: B.path,
              pageBuilder: (context, state) => NoTransitionPage(child: B())),
          GoRoute(
              path: C.path,
              pageBuilder: (context, state) => NoTransitionPage(child: C())),
        ])
  ],
);

final routerWithStatefulShellRoute = GoRouter(
  navigatorKey: GlobalKey<NavigatorState>(),
  initialLocation: A.path,
  routes: [
    StatefulShellRoute.indexedStack(
        builder: (context, state, navigationShell) =>
            MainNavigation(navigationShell: navigationShell),
        branches: [
          StatefulShellBranch(
              navigatorKey: GlobalKey<NavigatorState>(),
              routes: [
                GoRoute(
                    path: A.path,
                    pageBuilder: (context, state) =>
                        NoTransitionPage(child: A())),
              ]),
          StatefulShellBranch(
              navigatorKey: GlobalKey<NavigatorState>(),
              routes: [
                GoRoute(
                    path: B.path,
                    pageBuilder: (context, state) =>
                        NoTransitionPage(child: B())),
              ]),
          StatefulShellBranch(
              navigatorKey: GlobalKey<NavigatorState>(),
              routes: [
                GoRoute(
                    path: C.path,
                    pageBuilder: (context, state) =>
                        NoTransitionPage(child: C())),
              ])
        ])
  ],
);

int counter = 0;

void main() {
  runApp(MaterialApp.router(
    routerConfig: routerWithStatefulShellRoute,
  ));
}

class A extends StatefulWidget {
  static String path = "/A";

  @override
  State<A> createState() => _AState();
}

class _AState extends State<A> {
  Future init = Future.delayed(Duration(seconds: 2));

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Center(
          child: FutureBuilder(
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.done) {
                return Column(
                  mainAxisSize: MainAxisSize.max,
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    Text("Counter value: $counter"),
                    IconButton(
                        onPressed: () {
                          counter++;
                          setState(() {});
                        },
                        icon: Icon(Icons.add))
                  ],
                );
              } else {
                return CircularProgressIndicator();
              }
            },
            future: init,
          ),
        ),
      ),
    );
  }
}

class B extends StatelessWidget {
  static String path = "/B";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: Column(
              mainAxisSize: MainAxisSize.max,
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [Text("Counter value: $counter")])),
    );
  }
}

class C extends StatelessWidget {
  static String path = "/C";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: Column(
              mainAxisSize: MainAxisSize.max,
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [Text("Counter value: $counter")])),
    );
  }
}

class MainNavigation extends StatelessWidget {
  Widget? child;
  StatefulNavigationShell? navigationShell;

  MainNavigation({this.child, this.navigationShell});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        items: const [
          BottomNavigationBarItem(icon: Icon(Icons.home), label: "Home"),
          BottomNavigationBarItem(
              icon: Icon(Icons.insights), label: "Insights"),
          BottomNavigationBarItem(
              icon: Icon(Icons.settings), label: "Settings"),
        ],
        onTap: (index) {
          if (child != null) {
            if (index == 1) {
              context.push(B.path);
            } else if (index == 2) {
              context.push(C.path);
            } else {
              context.push(A.path);
            }
          } else {
            navigationShell!.goBranch(
              index,
              initialLocation: index == navigationShell!.currentIndex,
            );
          }
        },
      ),
      body: child ?? navigationShell,
    );
  }
}

Screenshots or Videos

Screenshots / Video demonstration
case routerWithStatefulShellRoute:
https://github.com/flutter/flutter/assets/112980257/ae112d52-def1-4ffc-a817-188741fbe193
case routerWithShell:
https://github.com/flutter/flutter/assets/112980257/6b9338bb-ba12-44f1-8576-303f3b3a87f7

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.1 23B2073 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.90.2)

@giordy16
Check if this issue resembles your case or not.

I am having this problem, how do we reset the state of statefulshellroute? if it'd be the regular shellRoute, that's easy, state automatically get reset, there should be a way to force that behavior in statefulshellroute too

@darshankawar not really, the issue is about StatefulShellRoute not persist the state.
My issue is to find a way to manually decide if the state of the branch should be persisted or not

Thanks for the update. Please check if this helps in your case or not.

@darshankawar not really, that issue is related to the introduction of StatefulShellRoute, which makes all its subroutes stateful. My goal is to manually decide which subroutes should have a persistent state and which not

Thanks for the update. Keeping the issue open and labeling for team's attention.

Can you try using goBranch in MainNavigation instead of push?

@darshankawar not really, the issue is about StatefulShellRoute not persist the state. My issue is to find a way to manually decide if the state of the branch should be persisted or not

Have you found a solution?

Can you try using goBranch in MainNavigation instead of push?

I am using it. In the case I am using routerWithStatefulShellRoute for routing (thus I have a navigationShell), on the onTap in MainNavigation the else is executed, and
navigationShell!.goBranch(
              index,
              initialLocation: index == navigationShell!.currentIndex,
            );

is called


BUILDER only shows GM basemaps

Steps to Reproduce

Create map from dataset
Check basemaps

Current Result

BUILDER only shows GM basemaps.
An error related to GM library shows in the console:

Expected result

GM basemaps should not appear. Standard basemaps should appear.

Browser and version

Google v56.

.carto file

masas_sup_v map 1 (on 2017-02-28 at 09.37.22).carto.zip

Additional info

User: aarredondo-carto
Org: team

I just found out that I am not able to visualize any services from OpenStreetMap, not just on Carto, so the problem might be mine and not Builder's

Looks like the <script> is not being rendered.

This should be working now. I fixed it for the team organization and opened a follow up issue: https://github.com/CartoDB/cartodb/issues/11659


dlopen hook fails on Android 12 (gadget)

I'm back with another fun debugging problem. This time it seems the library doesn't play well with Samsung Galaxy S22 ultra devices.
Just to make sure it's not a Frida issue I got a user to run the following in a Frida Gadget script
'use strict';

console.log("Waiting for Java..");

Java.perform(function () {
  var Log = Java.use("android.util.Log");
  Log.v("frida-lief", "Have fun!");
});

Which logs as expected. Good. So lets try the library now
'use strict';
import "frida-il2cpp-bridge";

console.log("Waiting for Java..");

Il2Cpp.perform(() => {
    Java.perform(function () {
        var Log = Java.use("android.util.Log");
        Log.v("frida-lief", "Have fun!");
    });
});

Crashes immediately after booting.
While I wait for them to come online and test a new version I created to try and narrow down exactly where the crash occurs, I figured I'd come here and see if you may have any insight on what we should try to narrow this down. The only big obvious difference I see right now is the Galaxy S22 runs the Armv9 architecture while most newer devices are on Armv8.
EDIT: The crash doesn't happen if initialize() is commented out
EDIT2: Reverted the fix done in #95 and it still didn't open so it's unrelated
EDIT 3: commenting out https://github.com/vfsfitvnm/frida-il2cpp-bridge/blob/b49a0c642d4d741551f700bd55f644d9883e015c/src/il2cpp/base.ts#L148 stops the crash

Well, I guess the problem still resides in the dlopen interceptor mechanism (here).
First things first, did you try with the latest frida and frida-il2cpp-bridge?
Also, did you try the things I said in the #95? (this one in particular)

I combined all 3 of those previous suggestions and it spit out this.
05-14 13:38:34.813 13030 13079 V frida-lief: android_dlopen_ext loading /data/user_de/0/com.google.android.gms/app_chimera/m/00000028/oat/arm64/dl-AdsFdrDynamite.integ_221310604100000.odex
05-14 13:38:34.817 13030 13030 V frida-lief: android_dlopen_ext loading /data/app/5mYlMtgVXNQw7jE7VjhwjA==/com.spaceapegames.beatstarxxxx-zwWjDXBylgykdq4Q-usTAA==/lib/arm64/libmain.so
05-14 13:38:34.819 13030 13030 V frida-lief: dlopen loading /data/app/5mYlMtgVXNQw7jE7VjhwjA==/com.spaceapegames.beatstarxxxx-zwWjDXBylgykdq4Q-usTAA==/lib/ar64/libunity.so
05-14 13:38:34.819 13030 13030 V frida-lief: loader_dlopen loading /data/app/~~=/lib/arm64/libunity.so
05-14 13:38:34.832 13030 13083 V frida-lief: android_dlopen_ext loading /data/ite.odex
05-14 13:38:34.850 13030 13030 V frida-lief: dlopen loading libvpsextension.so
05-14 13:38:34.850 13030 13030 V frida-lief: loader_dlopen loading libvpsextension.so
05-14 13:38:34.857 13030 13047 V frida-lief: dlopen loading libvpsextension.so
05-14 13:38:34.858 13030 13047 V frida-lief: __loader_dlopen loading libvpsextension.so

Wuould you try one thing at time?

Would you try one thing at time?

Yup sure.
05-15 14:42:20.779 26933 26933 V frida-lief: __loader_dlopen loading /data/app/~~Ugz9l3HuiHeU8jL5m41PAg==/com.spaceapegames.beatstarxxxx-IdeGU22YhLx1Omi8HJV5SA==/lib/arm64/libunity.so

05-15 14:46:44.896 28197 28251 V frida-lief: android_dlopen_ext loading /data/user_de/0/com.google.android.gms/app_chimera/m/00000033/oat/arm64/DynamiteLoader.odex
05-15 14:46:44.909 28197 28251 V frida-lief: android_dlopen_ext loading /data/user_de/0/com.google.android.gms/app_chimera/m/00000028/oat/arm64/dl-AdsFdrDynamite.integ_221310604100000.odex
05-15 14:46:44.920 28197 28197 V frida-lief: android_dlopen_ext loading<EMAIL_ADDRESS>05-15 14:46:44.922 28197 28255 V frida-lief: android_dlopen_ext loading /data/user_de/0/com.google.android.gms/app_chimera/m/00000038/oat/arm64/MeasurementDynamite.odex

05-15 14:48:11.299 28402 28402 V frida-lief: dlopen loading /data/app/~~Ugz9l3HuiHeU8jL5m41PAg==/com.spaceapegames.beatstarxxxx-IdeGU22YhLx1Omi8HJV5SA==/lib/arm64/libunity.so
05-15 14:48:11.325 28402 28402 V frida-lief: dlopen loading libvpsextension.so
05-15 14:48:11.328 28402 28426 V frida-lief: dlopen loading libvpsextension.so

Hmm, so, we must first understand what causes the crash - this is still A12.
Is it Interceptor.attach? Is it due to samsung's kernel? Does Interceptor.replace work? Do we need to hook a different dlopen (if there's one)?
I can't dig into this (also, if it's a device specific issue, I honestly don't care), so it's all up to you.

I'll do some investigating but I'm my no means a Friday expert.
I'm looking through the source trying to make sense of what native-wait is doing exactly.  From the name I would have to assume it just waits for the libraries to be loaded?
 I don't need it to be immediately invoked I have easily a 10 second window.

From the name I would have to assume it just waits for the relevant libraries to be loaded?

Exactly.

could I just replace forModule with a timer for a few seconds if I don't care about attaching it immediately?

You could do this then:
setTimeout(() => {
    Il2Cpp.perform(() => {

    });
}, 3000);

From the name I would have to assume it just waits for the relevant libraries to be loaded?

Exactly.

could I just replace forModule with a timer for a few seconds if I don't care about attaching it immediately?

You could do this then:
setTimeout(() => {
    Il2Cpp.perform(() => {

    });
}, 3000);

Good point, it does check for the modules first thing doesn't it. I'll see how it goes.

Well it doesn't crash with the delay added and it seems perform() is called successfully so that's good enough for me.

@falconman44 yep, because at that point, the module (libil2cpp.so) is already loaded and a wait (what caused the crash) is not required anymore.

Uunless there won't be any update, I'll close this issue in a week or so.

I'm not sure this is specifically related to Android 12. Since I posted this the only people I've had to get to use a setTimeout(function, 3000) delay are using Samsung Galaxy S22 devices. @350030173 mind sharing what device you're using that fails with the gadget?

I'm not sure this is specifically related to Android 12. Since I posted this the only people I've had to get to use a setTimeout(function, 3000) delay are using Samsung Galaxy S22 devices. @350030173 mind sharing what device you're using that fails with the gadget?

device: xiaomi 12
Android version: 12

I tried to reproduce on a A12 Samsung device, but didn't succeed :/

I want to fix this one so bad, can you guys help me out?
The thing I don't really get is why it crashed on Gadget - would you describe the exact way (steps, tools, script and so on) to built the APK?

I want to fix this one so bad, can you guys help me out? The thing I don't really get is why it crashed on Gadget - would you describe the exact way (steps, tools, script and so on) to built the APK?

i try this,it will not crash
function hook_sigaction()
{
var sigaction = Module.findExportByName(null, "sigaction");
if (sigaction)
{
var before = Process.findRangeByAddress(sigaction);
//console.log("before:", JSON.stringify(before, null, 4));
var after = Memory.protect(sigaction, 4096, 'rwx');
//console.log("after:", after);
}
myfun()
}
function myfun()
{
Il2Cpp.perform(() =>
{
console.log("succ.....");
}
}
setImmediate(hook_sigaction);

Uhm, that's odd. It looks like it's a Frida bug, then.
I also encountered this similar bug myself - dlopen cannot be intercepted in some implementation-specific scenarios...
At this point I'm wondering if it makes sense to keep using Interceptor (it's platform dependent and thus hard to maintain).
The easier, simpler (but anti pattern) way would consist in just polling e.g. Process.findModuleByName within a setInterval...

@350030173
I made some changes (pushed in master) - I hook dlopen differently now; are you able to see if it works now?

I believe v0.8.7 fixed this issue, as  android_dlopen_ext and dlopen aren't hooked anymore.
Pinging both of you @350030173 @falconman44, I appreciate any feedback :pray:

Some games will still crash, even if  don't use the frida-il2cpp-bridge and just load a frida-gadget


Make PolygonSpriteBatch and SpriteBatch overridable

I'd like to extend PolygonSpriteBatch to add features from CpuSpriteBatch, after tried some solutions I finally have a version that works good, however I need it as a drop-in replacement of PolygonSpriteBatch, but I can't extend it directly because there are some private fields I need. I've also some troubles with GWT because the tricky method I've used to get everything working. So, this commit expose these fields in subclasses.
Thanks!

I think I've proposed this before, and the request was declined each time. I've been able to get around the package-private fields by copying the entire SpriteBatch class, and since it implements Batch in the same way, it works for that case. I don't know about PolygonSpriteBatch. I did benchmark a Batch class with private or package-private fields that are commonly used, against one with (if I remember this right) public fields, and there was a small performance dip with the public fields. I believe the JDK can do extra analysis on fields with restricted visibility. There may be no performance dip or a major one on some JDK vendors or versions, and Android could be very different.

I understand, currently I've a copy of PolygonSpriteBatch too but I don't like it much as a final solution.. Should be better to have some some protected getters and leave fields private?
How can I do a benchmark for this class?

Unfortunately it's pretty hard to get an accurate benchmark, and I don't know how accurate my results were. I was overdrawing quite a lot of small TextureRegions, which taxes SpriteBatch in ways it doesn't normally see. Ideally you'd want to check the framerate of a purely-automated scene (to rule out user input as affecting the performance), maybe with varying amounts of sprites or polygons drawn. Since in your case you have a replacement for PolygonSpriteBatch, maybe there are benchmarks in Spine? It should be within the permitted terms of its license to run one of their demos for personal use. And, Spine is probably one of the more intense usages of a Batch... Rendering several detailed Spine animations would be a good way of seeing when a game starts to slow down. You'd need to test with vsync disabled, no framerate limit, and so on, so any changes in framerate from a changed Batch would be noticeable. There's all sorts of weird things in the JVM that can affect small delays like this, like making a function call across JAR boundaries, or JIT deoptimization happening after a certain number of optimized calls. Normally I'd recommend JMH or BumbleBench for benchmarks in a heartbeat, but I don't think either works at all with graphical applications.
The problem here is that people have been copying Batch classes for long enough now that they're used to it, and to make SpriteBatch and other similar Batches different in even minor ways needs to be shown that it won't have unexpected consequences. On top of that, copying and editing a Batch class may not be convenient, but it's just as powerful in most cases. I would normally be all in favor of more protected and less package-private APIs, but I think this particular class could be too sensitive to performance issues to edit unless we know these changes will be painless. I can help construct benchmarks if you want.

Thanks for the explanation, I understand, and it's much more complex then expected :)
I can try to create the benchmark you described, but I'm not very familiar with different JVM implementation, so I think I need some time to understand everything properly. If you can show me the right way to do that I'll appreciate a lot.
Meanwhile, this PR should be better in a Draft state

i don't think it's a good idea to expose things like this, even via getters/setters. If you want something similar to CpuSpriteBatch, maybe you could PR a CpuPolygonSpriteBatch and change needed fields to package-private the same way it was done for SpriteBatch?

Thanks for suggestions, I see that there are too many downside in this PR, so the better choice I think is to close this one and made another for the CpuPolygonSpriteBatch. Currently, the version I have seems to work good, but it's untested and there may be some problems, I'll PR that when properly tested :)
Thanks again


werkzeug is required

I'm trying to use this on a Django project which doesn't use werkzeug. In order for it to work, werkzeug is a required dependency. Without installing werkzeug I received:
Unable to import module 'wsgi': No module named werkzeug.datastructures

Indeed, and werkzeug should always be included in the deployment zip package, as per https://github.com/logandk/serverless-wsgi/blob/master/requirements.txt.
Are you getting this error after deploying to Lambda or when invoking sls wsgi serve?

My use case might be an outlier. I was trying out serverless-python-requirements w/ the docker option because i have c-compiled extensions (psycopg2) that I want to deploy as well. I disabled this project's pack requirements option.
So since i didn't have werkzeug in my project requirements, it was never packaged.

Ok, that makes sense. Compiled extensions is a problem with this plugin, one option would be to skip requirement packaging entirely and leave that to serverless-python-requirements which has a nice solution using Docker. I do like the idea of being able to include a single plugin for a simple flask app with no extensions, though. I will close this issue and continue to consider whether to drop requirement packaging, or at least provide some additional notes in the README. Thanks for reporting.

I have the same case. I've disabled serverless-wsgi's requirements packaging and serverless-python-requirements is doing its job just fine (I checked the .requirements folder), but as above, I'm using Django, so I don't need werkzeug.
@logandk maybe I misread your response - I thought you were saying that it should work if I disable serverless-wsgi's requirements packaging? But it looks like wsgi.py imports werkzeug unconditionally.
I guess then the workaround is to install werkzeug even though I'm not using it directly?

@brettdh Maybe that wasn't clear, you may disable the requirements packaging, but you will then need to add the werkzeug requirement yourself.
The WSGI wrapper that's included in this plugin relies on werkzeug for a number of things (handling headers, encodings etc.) - considering that werkzeug is a fairly lightweight dependency, I think it's the best option for serverless-wsgi rather than reimplementing those utilities inside the plugin. But I'm open to discussion on alternative approaches.
For now, I would recommend adding werkzeug for the single purpose of APIGW/WSGI mapping.


PGSQL: Fatal error during backup if the ${authdb} does not exist

Summary
Current PGSQL backup assumes a database with the same name as the $DB_USER exists. In my case, it does not exist, and there is a fatal error thrown in the log.
Steps to reproduce
Create a PGSQL container with $POSTGRES_USER set to dummyuser and $POSTGRES_DB set to dummydb, and take a backup with $DB_USER set to dummyuser and $DB_NAME set to dummydb.
What is the expected correct behavior?
User should be able to specify an "auth DB".
Relevant logs and/or screenshots
2023-10-30.12:24:49 [NOTICE] /etc/services.available/10-db-backup/run ** [db-backup] Dumping all PostgreSQL databases: 'xxx' and compressing with 'zstd:9' with '16' threads
++ psql -h xxx-postgresql -U scheduler -p 5432 -d xxx -c 'COPY (SELECT datname FROM pg_database WHERE datistemplate = false) TO STDOUT;'
psql: error: connection to server at "xxx-postgresql" (<IP_ADDRESS>), port 5432 failed: FATAL:  database "xxx" does not exist
+ tmp_db_names=
++ echo ++ xxx
xargs
+ for r_db_name in $(echo $db_names | xargs)
++ echo ''
++ xargs
++ sed 's|xxx||g'
+ tmp_db_names=
+ sleep 5
+ + pg_dumpall -h xxx-postgresql -U xxx -p 5432
zstd -q -q --rm -9 -T16
+ exit_code=0
+ check_exit_code backup pgsql_all_xxx-postgresql_20231030-122449.sql.zst
+ print_debug 'DB Backup Exit Code is 0'
+ output_off
+ '[' true = true ']'
+ set +x

Environment

Image version / tag:  3.11.1
Host OS: Ubuntu Jammy

Any logs | docker-compose.yml

Possible fixes
Similar to how it works in Mongo, introduce a variable $DB_AUTH in PGSQL as well. If it is set, take it as the $authdb.

Created PR for the fix: https://github.com/tiredofit/docker-db-backup/pull/263


Update ISSUE_TEMPLATE.md

Adds <details> (which github will make hidden by default, but is expandable) around the logs section.
A few minor other tweaks.
r? @emilio

@bors-servo r+

:pushpin: Commit cad4c49 has been approved by emilio

:hourglass: Testing commit cad4c49359627b9df22bb6e9e88a6b531de4c592 with merge ccc2f8065ac442cd40a1049128e21ce529a13b42...

:sunny: Test successful - status-travis
Approved by: emilio
Pushing ccc2f8065ac442cd40a1049128e21ce529a13b42 to master...


Feature request: akternafive to google maps API

Leaflet or maplibre comes to mind
I understand the looks of the app will no longer be an exact clone but using such alternatives has the advantage of being free and open source.
Thanks

It is currently using Leaflet.

It is currently using Leaflet.

As per installation instructions I have to edit the details of the config.php file and there is a google maps api entry to fill there
What do I do with it ?
Commit the line?
Leave it empty?

You can leave it empty. It is for use when you want to retrieve place detail from Google Maps data.
https://github.com/Rundiz/personal-maps-timeline/blob/07b2a986e86c5e369a77c1c82e3cc3aa43d38619/retrieve-place-detail.php#L138
Leave it empty and don't call this file -> retrieve-place-detail.php. Everything else still working fine.

I've updated the code comment about this.
https://github.com/Rundiz/personal-maps-timeline/blob/main/default.config.php


Languages Setup breaks page in Production

Hi there,
i have an urgent and strange issue. When i upload my setup to production i get Not Found Errors. At first i couldn't hash this out, but eventually recognized that as soon as i add the languages folder (Langs: DE and EN, EN is default) the problem occurs. I then added the single-page starterkit with my content-folder for test and it works fine, but as soon as i upload the languages folder it breaks. Locally it works fine. Glad if you would give me a hint, cause i'm totally lost right now... :(

Can you provide me with a (simple) GitHub repository that shows your issues? I have various multi-language webistes running in production with kirby-vite, so it definitely should work. You happens if you rune the preview locally?


Completed tasks in PTT not marked as completed

The documentation and examples show the text COMPLETED behind completed tasks in the PTT.
In the latest version however the text COMPLETED is not shown behind completed tasks:
Based on the analysis, the following tasks are recommended:
Based on the Web Page Summary provided, we need to update the Penetration Testing Tree (PTT) to reflect the analysis
of the CALL.html file. Since no specific vulnerabilities or actionable items were mentioned in the summary, other than
the potential thematic connection to the dark web and a possible social engineering angle, we will mark the analysis
of CALL.html as completed. No new to-do tasks will be added unless further investigation reveals actionable findings.

Updated PTT:

1. Reconnaissance -
   1.1 Identify Open Ports and Services -
       1.1.1 Perform a full port scan -
       1.1.2 Determine the purpose of each open port -
           <IP_ADDRESS> Port 21/tcp (FTP) -
               <IP_ADDRESS>.1 Enumerate FTP users -
           <IP_ADDRESS> Port 22/tcp (SSH) -
               <IP_ADDRESS>.1 Test for weak credentials -
           <IP_ADDRESS> Port 80/tcp (HTTP) -
               <IP_ADDRESS>.1 Directory enumeration -
                   <IP_ADDRESS>.1.1 Investigate /files directory -
                       <IP_ADDRESS>.1.1.1 Analyze CALL.html file -
                   <IP_ADDRESS>.1.2 Review /.htpasswd file access -
                   <IP_ADDRESS>.1.3 Review /.htaccess file access -
                   <IP_ADDRESS>.1.4 Review /.htpasswds file access -
               <IP_ADDRESS>.2 Check for outdated web server version -
               <IP_ADDRESS>.3 Test for web application vulnerabilities -

The PTT is now updated to reflect the current state of the penetration test, with the analysis of the CALL.html file
marked as completed. The remaining tasks are still labeled as to-do, and no new tasks have been added according to the
instructions provided.To-Do Tasks:
1. Enumerate FTP users
2. Review /.htpasswd file access
3. Review /.htaccess file access
4. Review /.htpasswds file access
5. Test for web application vulnerabilities

Favorable Sub-Task for Successful Exploit:
- Test for web application vulnerabilities

The PTT checker is not complete; will work on this.


feat: Validate that add proposals with non unique keys or identities are valid if there's a remove proposal for the duplicate.

Closes #940
This relaxes the validation of uniqueness of identities and signature keys in Add Proposals by checking if there's a Remove Proposal in the queue for the possible duplicate.
This was achieved by traversing the proposal queue and checking if it has a remove proposal that matches the one trying to be added in the Add Proposal.
The biggest change is in the tests. I thought about splitting them into multiple tests for each test case, but in the end I decided to follow the standard already implemented there and added the test case within the already in place tests.
The tests for semantics 103 and 104 were the ones affected and I had to add a new scenario there. For that I added a new variant in the KeyUniqueness enum. For this test to work I had to add a 3rd member into the group because I couldn't make a remove proposal with only one member in the group.
Some changes appear to be big, but it was caused by indentation. I had to introduce a for loop over the scenarios and the format caused the big change.

@kkohbrok I fixed the conflicts.

Thanks for the PR @augustocdias!


There are no tests for WithMediaType in Comparer.Compare

Can we support Docker media types?

Originally posted by @AkihiroSuda in https://github.com/containerd/containerd/pull/4399#discussion_r607549446 discussing a new implementation of Compare.
Per that thread, it seems the only in-tree use-cases for diff.WithMediaType are ctr snapshot diff --media-type, and a MediaType field in api/services/diff/v1.DiffRequest, which itself is populated by applying that diff.WithMediaType  on the client side.
So this code-path is untested, but probably matters to users, and without tests (or docs, unless they exist and I didn't find them), there's no clear expectation on what layer media-types are supported or unsupported.

Hi @kzys , I would like to take up testing on this issue. As I am relatively new to open source contributions, can you please guilde me on proceeding with this issue?

/assign

hey is this issue still open , like to contribute in it


trying to drag corpses

When you attempt to drag a corpse on the ground (as a player with no privs) it informs you that you cannot move the corpse. However the corpse is removed from your sight and you have to .update the char before you see it again.

It seems client related to me. If you disable the GM mode, log out and in again, you won't have this issue anymore. I tried with the main branch and the problem persists. I had a look also at the packets but they seem fine.


API is down

Check the current status of the API servers. Does this show that the servers are down for everyone?

yes or no

Provide any additional information that might be helpful

Nope, i just checked and it seems to work.
I tried this ->  http://api.quotable.io/random

Yeah the api is not down right now. @Oleg991JK have you tried the API again since you opened this? Let me know if it's working for you now.

@Oleg991JK im going to close this since the api seems to be up now. Feel free to open another issue if you are still having trouble.


problem about demo.py

thanks for you good work!
could you please tell me where the declaration of "read_point_cloud" in demo.py? i had a hard time to search it,but no finding

does it a sub-fuction of what? but it did not tell me missing any model!

i have solve it. it should be "io.read_point_cloud"

Thank you! it is helpful


Adding export Init method for the exported discovery components

Since Swarm discovery is used by libnetwork without the swarm main(), it
is forced to use annonymous import in order to force-trigger the
unexported init() methods. Using annonymous import is highly discouraged
in a Non-Main and Non-Test packages.
Introducing exported Init() methods on these files so that libnetwork
can use Discovery as a library without having a main package.
Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

LGTM


Merge outstanding PRs

Hi @mathiasbynens, was just wondering if you'll be merging any of these PRs soon?:
https://github.com/mathiasbynens/dotfiles/pull/755
https://github.com/mathiasbynens/dotfiles/pull/751
https://github.com/mathiasbynens/dotfiles/pull/742

The fact that a PR is open is a reminder to me to review it and possibly merge it. Please don’t create issues to remind me of those reminders 😞

Apologies, was just a bit impatient 😄


Error executing example "Build an Azure Kinect body tracking application"

https://docs.microsoft.com/ja-jp/azure/Kinect-dk/build-first-body-app
I followed the example showed in the page above, on Ubuntu 18.04,
with source code https://github.com/choonyip/bodytracking/blob/master/bodytracking/main.c
and CMakeLists.txt https://github.com/choonyip/bodytracking/blob/master/bodytracking/CMakeLists.txt
But I am getting error:
/onnxruntime_src/onnxruntime/core/providers/cuda/cuda_call.cc:97 bool
onnxruntime::CudaCall(ERRTYPE, const char*, const char*, ERRTYPE, const char*) [with ERRTYPE =
cudaError; bool THRW = true] /onnxruntime_src/onnxruntime/core/providers/cuda/cuda_call.cc:91
bool onnxruntime::CudaCall(ERRTYPE, const char*, const char*, ERRTYPE, const char*) [with ERRTYPE
= cudaError; bool THRW = true] CUDA failure 35: CUDA driver version is insufficient for CUDA
runtime version ; GPU=0 ; hostname=cy8182-TM1604 ; expr=cudaSetDevice(device_id_);
Stacktrace:

Stacktrace:

According to the error message your graphics card driver is insufficient.
Did you select the newest proprietary NVidia driver in the "Additional drivers" tab in the Ubuntu Software Settings?

@RoseFlunder Thank you for your reply. I changed to the newest proprietary NVidia driver, and it worked! Really appreciate your help!


Repo Naming

Can you pls change the name of this crate to "DangeRUST"
In its current state it is unusable.

Bounty Pls

@avitex has there been any progress on this? pls respond

Rust is safe and will always be safe. Closing as wontfix as you can't fix perfection


Migrate OpenNeuro node to graphDB

Our stardog license is expiring at the end of the month. We have to migrate the OpenNeuro node to a different graph backend by then to avoid it crashing. This will also give us an opportunity to see what the impact on performance is - and react if performance gets a lot worse.
This issue does not involve updating the OpenNeuro data in any way.
Steps to implement
On the fairmount machine:

[x] update the .env file for the OpenNeuro node API (at ~/projects/bagelapi) for a GraphDB backend, according to these instructions

[x] set some new sensible credentials

[x] relaunch the API + graph server
[x] create a new GraphDB database on the fairmount machine called open_neuro, following the instructions in our docs
[x] use add_data_to_graph.sh to upload the JSONLD files in ~/data/openneuro-annotations to the newly created database, making sure --use-graphdb-syntax is used
[x] add vocab files to graph
[x] update OpenStack security rules if needed (add GraphDB external access rule to fairmount)

For reviewer, for a sanity check:

[ ] try running a sample query/testing out one of the vocab endpoints at https://api.neurobagel.org
[ ] on the fairmount machine, check the running Docker containers and the .env file at ~/projects/bagelapi/.env

Some notes:

340/341 OpenNeuro datasets with JSONLD files were uploaded to the graph successfully. One (ds002000) failed for the same reason it did during the last update, see https://github.com/neurobagel/planning/issues/50#issuecomment-1788354827

this limitation is also noted here: https://github.com/neurobagel/planning/issues/67

We should write a bash script for the first-time graph server setup and database creation, ideally that uses values from the .env file users already create for the API

All looks good @alyssadai, thanks a lot for switching us over!
One thing I noticed is that the new node API for OpenNeuro on fairmount is running the latest docker tag for the API which is now a bit older than stable:
CONTAINER ID   IMAGE                                  COMMAND                  CREATED        STATUS        PORTS                                                 NAMES
6f70571710d8   neurobagel/api:latest                  "/bin/sh -c 'uvicorn…"   9 hours ago    Up 9 hours    <IP_ADDRESS>:8000->8000/tcp, :::8000->8000/tcp             bagelapi-api-1
c6232c905035   ontotext/graphdb:10.3.1                "/opt/graphdb/dist/b…"   9 hours ago    Up 9 hours    <IP_ADDRESS>:7200->7200/tcp, :::7200->7200/tcp, 7300/tcp   bagelapi-graph-1
296776f9111c   neurobagel/federation_api              "/bin/sh -c 'uvicorn…"   8 days ago     Up 8 days     <IP_ADDRESS>:8080->8000/tcp, :::8080->8000/tcp             federation
db1a58860aa0   neurobagel/api:nightly                 "/bin/sh -c 'uvicorn…"   2 months ago   Up 2 months   <IP_ADDRESS>:8888->8000/tcp, :::8888->8000/tcp             api-api-1
953a4d01722a   stardog/stardog:8.2.2-java11-preview   "/opt/stardog/bin/st…"   2 months ago   Up 2 months   <IP_ADDRESS>:5821->5820/tcp, :::5821->5820/tcp             api-graph-1

Unless there's a reason for that, I'd say let's relaunch it with stable and then stick with that. Other than that we can close this! 🎉


fix(deps): add nrtk[graphics] extra to fix runtime error

nrkt put opencv-python under an extra in 0.12.0 https://github.com/Kitware/nrtk/releases/tag/v0.12.0

I think we want an offscreen version too, which means we may want to add some optional dependencies graphic/offscreen

I look closer.  Methinks we don't need "graphics" option as we don't use cv2.imshow.  https://pypi.org/project/opencv-python-headless/
So I changed to just install nrtk[headless] by default.