BHBC-2274: Router technical debt

Overview
Fixes some minor annoyances + addresses some technical debt surrounding the app router
Links to Jira tickets

https://quartech.atlassian.net/browse/BHBC-2274

Description of relevant changes

Replaces normal anchor links with React Router links

Removes unneccessary routes:

surveys/:survey_id/attachments
surveys/:survey_id/observations
surveys/:survey_id/results

Removes <Layout> components that are already wrapped

Fixes an issue with the Forbidden page, wherein users cannot navigate away from the forbidden page if the initial request to fetch the user's userdata fails. This often occurs during development when the app refreshes while the API is momentarily re-compiling.

Testing Procedures

Create a project and survey.
Click into the project, then click into the survey. It should:

[ ] Fetch and render the survey immediately without reloading the webpage

From any page in SIMS, reload the browser while the API is rebuilding. You can achive this by going to api/src/app.ts in your IDE  and saving the file, triggering a rebuild of the API. If this is successful, you should land on the Forbidden page in SIMS.
Wait until the API is finished rebuilding, then attempt to click away from the Forbidden page. You should:

[ ] Successfully navigate away from the forbidden page

Unrelated; Will write a ticket.


RTL bug: numbers are reversed in RTL PDFs when they shouldn't be

الكتاب الاحصائي 2013-2014.pdf
"16" comes out as "61" and -- oddly -- "2014" comes out as "0214" which means I'm dealing with "reversing" aka "logically ordering" text characters incorrectly.
As reported on Twitter by @ddiMENA: https://twitter.com/ddiMENA/status/848757808367620097

Here's a screenshot comparing source and preview (concerning letters). Test done on Win 7 and Win 10. Most likely issue with pdf production from source (tested another file distilled from Acrobat and worked OK).

@abedkhooli Thanks! I hope to find time soon to fix this.

hahaha "Famasteen."
I don't think we're going to be able to fix this problem, It comes out the same way, lam to mim, فمسطين, when I copy out of Evince, so it means whatever generated the PDF did a bad job with Arabic, by encoding the glyph for lam under the character mim.
I think the problem with the numbers is the same problem. In many cases, the character 2 is extracted for the glyph 0 and vice versa. The glyph "6" is mapped to the character "1".
Either this PDF is totally screwed up or this requires the feature PDFBox apparently lacks (and Evince lacks too) INFO: OpenType Layout tables used in font ABCDEE+Simplified Arabic are not implemented in PDFBox and will be ignored


doc fix and remove debug statements

Closing in favor of #19. I wasn't planning on fixing that but I ended up needing to for other word.


[ Breaking Change Request ] Update dart --help --verbose and dart --version to output to stdout

Intended Behavior Change
Update dart to print help and version information to stdout instead of stderr.
Current Behavior
Currently the following invocations output details to stderr instead of stdout:

dart --help --disable-dart-dev
dart --help --verbose
dart --version

Most UNIX tools, as well as other language implementations such as python3 output their help messages to stdout, and some tools like less are typically used by piping stdout as input.
Expected Impact
Tooling and tests which scrape stderr for version information or VM flags will start to fail. Impacted tooling and tests will need to be updated to scrape this information from stdout.
Related issues

#46440
#46412

/cc @franklinyow

CC: @mit-mit @vsmenon @kevmoo, @Hixie  for approvals

Approved – although @mit-mit should have the final say from the PM team

SGTM

Change landed in https://github.com/dart-lang/sdk/commit/cccc0293c540ebee7116d98ef6cb24c1caf9512e.


The T-Display code is broken

I just bought the TTGO T-Display v1.1, recognized in Arduino as:

BN: LilyGo T-Display
VID: 1a86
PID: 55d4
SN: 589A009269

Installed arduino (on Linux Mint), copied this repository library TFT_eSPI to the Arduino directory and tried some video examples but none seems working. Below the output of the compilation:
WARNING: Category 'Sound' in library ESP_I2S is not valid. Setting to 'Uncategorized'
WARNING: Category 'Sensor' in library ESP_NOW is not valid. Setting to 'Uncategorized'
WARNING: Category 'Sound' in library ESP_SR is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library ESP Insights is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library ESP RainMaker is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library TFLite Micro is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library WiFiProv is not valid. Setting to 'Uncategorized'
In file included from /home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.h:48,
                 from /home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:17:
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.c: In function 'void dc_callback(spi_transaction_t*)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:115:22: error: 'GPIO' was not declared in this scope
  115 |         #define DC_D GPIO.out_w1ts = (1 << TFT_DC)//;GPIO.out_w1ts = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.c:652:27: note: in expansion of macro 'DC_D'
  652 |   if ((bool)spi_tx->user) DC_D;
      |                           ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.c:653:8: note: in expansion of macro 'DC_C'
  653 |   else DC_C;
      |        ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::begin_tft_write()':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:159:22: error: 'GPIO' was not declared in this scope
  159 |         #define CS_L GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:39:5: note: in expansion of macro 'CS_L'
   39 |     CS_L;
      |     ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::end_tft_write()':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:160:22: error: 'GPIO' was not declared in this scope
  160 |         #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:56:7: note: in expansion of macro 'CS_H'
   56 |       CS_H;
      |       ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::begin_tft_read()':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:159:22: error: 'GPIO' was not declared in this scope
  159 |         #define CS_L GPIO.out_w1tc = (1 << TFT_CS); GPIO.out_w1tc = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:77:5: note: in expansion of macro 'CS_L'
   77 |     CS_L;
      |     ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::end_tft_read()':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:160:22: error: 'GPIO' was not declared in this scope
  160 |         #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:97:7: note: in expansion of macro 'CS_H'
   97 |       CS_H;
      |       ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::writecommand(uint8_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:548:3: note: in expansion of macro 'DC_C'
  548 |   DC_C;
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::writedata(uint8_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:115:22: error: 'GPIO' was not declared in this scope
  115 |         #define DC_D GPIO.out_w1ts = (1 << TFT_DC)//;GPIO.out_w1ts = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:567:3: note: in expansion of macro 'DC_D'
  567 |   DC_D;        // Play safe, but should already be in data mode
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'uint8_t TFT_eSPI::readcommand8(uint8_t, uint8_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:604:3: note: in expansion of macro 'DC_C'
  604 |   DC_C; tft_Write_8(0xD9);
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'uint16_t TFT_eSPI::readPixel(int32_t, int32_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:160:22: error: 'GPIO' was not declared in this scope
  160 |         #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:740:3: note: in expansion of macro 'CS_H'
  740 |   CS_H;
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::readRect(int32_t, int32_t, int32_t, int32_t, uint16_t*)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:160:22: error: 'GPIO' was not declared in this scope
  160 |         #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:855:3: note: in expansion of macro 'CS_H'
  855 |   CS_H;
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::readRectRGB(int32_t, int32_t, int32_t, int32_t, uint8_t*)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:160:22: error: 'GPIO' was not declared in this scope
  160 |         #define CS_H GPIO.out_w1ts = (1 << TFT_CS)//;GPIO.out_w1ts = (1 << TFT_CS)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:1577:3: note: in expansion of macro 'CS_H'
 1577 |   CS_H;
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::setWindow(int32_t, int32_t, int32_t, int32_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:2633:3: note: in expansion of macro 'DC_C'
 2633 |   DC_C; tft_Write_8(TFT_CASET);
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'void TFT_eSPI::readAddrWindow(int32_t, int32_t, int32_t, int32_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:2666:3: note: in expansion of macro 'DC_C'
 2666 |   DC_C; tft_Write_8(TFT_CASET);
      |   ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp: In member function 'virtual void TFT_eSPI::drawPixel(int32_t, int32_t, uint32_t)':
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:2707:5: note: in expansion of macro 'DC_C'
 2707 |     DC_C; tft_Write_8(TFT_CASET);
      |     ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:2714:5: note: in expansion of macro 'DC_C'
 2714 |     DC_C; tft_Write_8(TFT_PASET);
      |     ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/Processors/TFT_eSPI_ESP32.h:114:22: error: 'GPIO' was not declared in this scope
  114 |         #define DC_C GPIO.out_w1tc = (1 << TFT_DC)//;GPIO.out_w1tc = (1 << TFT_DC)
      |                      ^~~~
/home/steve/Arduino/libraries/TFT_eSPI/TFT_eSPI.cpp:2720:3: note: in expansion of macro 'DC_C'
 2720 |   DC_C; tft_Write_8(TFT_RAMWR);
      |   ^~~~
exit status 1
Error compiling for board LilyGo T-Display.

I checked and in User_Setup_Select.h just Setup25_TTGO_T_Display.h is selected. Board "LiliGo T-Display" is selected.
I tried to comment the offending code in TFT_eSPI/Processors/TFT_eSPI_ESP32.h (putting false as condition at line 99 and 154) and it compiled:
WARNING: Category 'Sound' in library ESP_I2S is not valid. Setting to 'Uncategorized'
WARNING: Category 'Sensor' in library ESP_NOW is not valid. Setting to 'Uncategorized'
WARNING: Category 'Sound' in library ESP_SR is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library ESP Insights is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library ESP RainMaker is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library TFLite Micro is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library WiFiProv is not valid. Setting to 'Uncategorized'
Archiving built core (caching) in: /tmp/arduino_cache_27425/core/core_esp32_esp32_lilygo_t_display_PSRAM_disabled,LoopCore_1,EventsCore_1,PartitionScheme_default,CPUFreq_40,FlashMode_qio,FlashFreq_40,FlashSize_4M,UploadSpeed_921600,DebugLevel_none,EraseFlash_none_5fd6343b5b760e70216422255bff19df.a
Sketch uses 311541 bytes (23%) of program storage space. Maximum is 1310720 bytes.
Global variables use 20668 bytes (6%) of dynamic memory, leaving 307012 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.6
Serial port /dev/ttyACM0
Connecting.....
Chip is ESP32-D0WDQ6-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: a0:dd:6c:74:f4:f8
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0005cfff...
Compressed 24880 bytes to 16255...
Writing at 0x00001000... (100 %)
Wrote 24880 bytes (16255 compressed) at 0x00001000 in 0.6 seconds (effective 352.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.1 seconds (effective 462.8 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 621.2 kbit/s)...
Hash of data verified.
Compressed 311904 bytes to 171895...
Writing at 0x00010000... (9 %)
Writing at 0x0001a6d4... (18 %)
Writing at 0x00028c45... (27 %)
Writing at 0x0002e1d2... (36 %)
Writing at 0x00033878... (45 %)
Writing at 0x000391e0... (54 %)
Writing at 0x0003e49f... (63 %)
Writing at 0x000438c5... (72 %)
Writing at 0x00048e74... (81 %)
Writing at 0x00051a9d... (90 %)
Writing at 0x0005952a... (100 %)
Wrote 311904 bytes (171895 compressed) at 0x00010000 in 3.2 seconds (effective 773.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

BUT the only board effect is to light up the display!
Did I do something wrong? In case, can you elaborate in the homepage instructions?
Thank you

Hello,
I had the same issue. I moved to the esp board package 2.0.14 and it worked again...
apparently, they seem to be an issue with v 3 and above.
Cyrille


Limit cstruct to anything before 4.0.0

This allows us to build the library without pinning a cstruct version

This PR might be bad as it conflicts with ocaml-tls, should probably fix it so that Cstruct_sexp is used instead.

This PR is invalid


MSID: 89958 Version: 1 DOI: 2<IP_ADDRESS>9064

"msas": "Cell Biology"
"msid": "89958"
"preprintDoi": "10.1101/2<IP_ADDRESS>9064"
"Reviewed Preprint posted": "2023-08-25"
"Sent for peer review": "2023-06-30"
"Posted to bioRxiv": "2023-05-03" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>9064v2/")
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v1/by-publisher/elife/get-by-manuscript-id?manuscript_id=89958)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/89958/v1)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>9064)
[x] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[x] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/89958/v1/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/89958)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/89958

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/89958

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/89958/v1/89958-v1.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/89958)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

@acollings this was submitted in eJP with the title A stable microtubule bundle formed through an orchestrated multistep process controls quiescence exit, but the title of the preprint is Uncovering the multi-step process of stable microtubule bundle formation upon entry into quiescence.
Do the authors need to update their preprint on bioRxiv before we proceed with this one?

Thanks @fred-atherden: yes, oops. I've contacted the authors.

Thanks!

From the authors: I have updated the preprint to match the version submitted to eLife. Biorxiv has to review it and it will be available soon.

Full text for the V2 not yet available.

Full text is available at bioRxiv but the meca is not:
curl 'https://api.biorxiv.org/meca_index/elife/all/2<IP_ADDRESS>9064' | jq
{
  "status": [
    {
      "count": 1,
      "messages": "ok"
    }
  ],
  "results": [
    {
      "msid": "539064",
      "tdm_doi": "10.1101/2<IP_ADDRESS>9064",
      "ms_version": "1",
      "filedate": "2023-06-06",
      "tdm_path": "s3://transfers-elife/biorxiv_Current_Content/May_2023/04_May_23_Batch_1601/c0769d5d-6c60-1014-8a0e-d8611deeef54.meca",
      "transfer_type": "api"
    }
  ]
}

Will contact them tomorrow if not available then.

Finally v2 is available:
{
  "status": [
    {
      "count": 2,
      "messages": "ok"
    }
  ],
  "results": [
    {
      "msid": "539064",
      "tdm_doi": "10.1101/2<IP_ADDRESS>9064",
      "ms_version": "1",
      "filedate": "2023-06-06",
      "tdm_path": "s3://transfers-elife/biorxiv_Current_Content/May_2023/04_May_23_Batch_1601/c0769d5d-6c60-1014-8a0e-d8611deeef54.meca",
      "transfer_type": "api"
    },
    {
      "msid": "539064",
      "tdm_doi": "10.1101/2<IP_ADDRESS>9064",
      "ms_version": "2",
      "filedate": "2023-06-06",
      "tdm_path": "s3://transfers-elife/biorxiv_Current_Content/August_2023/27_Aug_23_Batch_1716/a78a4682-6eda-1014-8a4f-95437874031e.meca",
      "transfer_type": "api"
    }
  ]
}

Will load this morning.
@acollings do the hypothesis comments need moving over to the v2 or has this already been done (or is unnecessary)?

Thanks @fred-atherden not sure! I've moved them just in case :-)

Thanks!


How do I switch networks in suiet?

Does suiet have functions to switch networks? I couldn't find functions for switching or adding networks in the documentation.

Did you find any solution?


fix: kill process with SIGTERM

Previously go-sdk in killing keploy process using os.Kill but it should be changed to SIGTERM as os.Kill cannot be catched by  keploy
this will resolve #878

LGTM


Is there any way to get validation errors for extraneous keys?

I need to verify my objects don't contain any undefined keys. Seems like a trivial feature. Is it not supported?

any code example or more explanation please

If I have a javascript object like:
{
   'foo': 1,
   'bar': 2,
}

... and I have a schema like ...
final EzSchema schema = EzSchema.shape({
    'foo': EzValidator<int>().required(),
});

... I'd like to get errors that there's a field bar which isn't defined on the schema.

I got your point yes this can be added.i'll try to add it and publish it asap

Here is an example on how to use it
don't forget to make the fillSchema: false
final EzSchema strictSchema = EzSchema.shape(
  {
    'email': EzValidator<String>().required().email(),
    'password': EzValidator<String>().required(),
    'username': EzValidator<String>().required(),
  },
  noUnknown: true, // Disallow unknown fields
  fillSchema: false, // Do not fill missing fields
);
final Map<String, dynamic> dataWithUnknown = {
  'email'<EMAIL_ADDRESS>  'password': 'password',
  'age': 30, // Unknown field
};
final (_, errors) = strictSchema.validateSync(dataWithUnknown);
print(errors) // {age: is not defined in the schema}

This is excellent, and exactly what I needed. Thanks so much.


initial commit msa loading

PR implement msa loading functions

Implement load_msa_from_msa_dir in inputs.py
Creates msa_parsing.py and make_msa_features/mask that reuses AF2 msa loading functions
Added a test script that loads an msa and creates a batched_atom_input

Thanks @sj900 for your hard work on this new MSA pipeline! I'll fix the tests locally and push the changes remotely soon. Also, I'll merge this into Phil's main branch shortly thereafter. Perhaps we can keep a similar format for the template loading pipeline?

@amorehead No problem! Sounds good.
I'm not sure what it will take to adapt the MSA logic to DNA and RNA but I will look into it and let you know. I'll make sure to keep a similar format for the template loading pipeline.

@sj900, thanks! By the way, @milot-mirdita just shared with me (and I've uploaded to this fork) some test MSAs and templates to use with a handful of example PDB mmCIF files (7a4d, 209d, and 721p): https://github.com/amorehead/alphafold3-pytorch-lightning-hydra/tree/main/data/test

@sj900, just a heads up, I decided to implement most of the generic MSA parsing and loading to handle protein, RNA, DNA, and ligand chains (latest commit). The only thing left to do is add a new DNA/RNA-equivalent pattern to Uniprot's pattern that you added for protein chain species parsing (to support MSA chain parsing for interfaces). I'd recommend focusing on template parsing for now, since we can revisit MSA chain pairing later on (unless you want to add this now)

@amorehead Thanks for letting me know. Ill focus on template parsing for now and revisit MSA chain pairing later on.


Add concurrent processor

Refactors argument passing for ProcessDump.
Make data structures in processors concurrency safe.
Add concurrent processor + tests.
Update README and example config.

I've tried fixing the errors and I'm stuck at the settings of coveralls
Bad response status from coveralls: 422
{"message":"Couldn't find a repository matching this job.","error":true}

I've tried to set up coveralls for my fork but that doesn't feel like the right solution..

Awesome! Thank you @emintham . I'm currently out of town but will be back next week (2020/08/24). I will start reading through this and add comments and get back to you then.
Again thank you for all the work!

Sounds good @junkert !

Hey thanks @junkert! I believe I added some stuff in README and examples in the MR. I'm kinda busy over the next little bit so I might not have time to add other docs.


nixos/wordpress: Fix loosing theme and plugin settings on update

Description of changes
Supersedes https://github.com/NixOS/nixpkgs/pull/135966
See diff for detailed explanation.

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[x] (Package updates) Added a release notes entry if the change is major or breaking
[x] (Module updates) Added a release notes entry if the change is significant
[x] (Module addition) Added a release notes entry if adding a new NixOS module
[x] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Overriding builtin themes and plugins is not possible currently (well it will keep files from the old version if the new version doesn't have a newer version of that file). I will probably fix that by removing the directory before copying the new files.

@dasJ I would like to recommend wp4nix for the themes and plugins. I think there are three options on how to do it:

Just link to https://git.helsinki.tools/helsinki-systems/wp4nix which would probably lead to people downloading the large json files from your infrastructure (individually as caching these is probably hard as they change often).
Mirror it to GitHub to reduce the traffic on your side.
Create a GitHub repo with CI to create them ourselves.

Are there any options you prefer or more specifically would the first option be fine?
Kind regards
Moritz

The first option is fine as long as our infrastructure can withstand it. It's hard to make a definitive statement for the future.
I don't see any issues with mirroring/forking/redoing the functionality on GitHub, but I'm not willing to maintain it as the current wp4nix infrastructure only exists as a necessity, not by choice.

I think this should be ready for an initial review now. Short explanation of the reasoning for the initial commits.
wordpress: add update script
Make it possible to autoupdate as this is not possible currently.
nixos/wordpress: Recommend wp4nix for packaging themes and plugins.
Packaging using the zip archives doesn't work as some plugins/themes update their contents without bumping the version. This fails to verify the hash then if not in cache already.
nixos/wordpress: Fix loosing theme and plugin settings on update.
See details in release notes. I couldn't find a plugin/theme that is broken now but I know that the official theme was broken. I assume there exist more plugins/themes that are broken but it's not really possible to find them automatically.
wordpress-core: init
Remove the builtin themes and plugins to reduce attack surface, reduce unused plugins/themes and allow updating the builtin ones.
nixos/wordpress: Use separate database for each wordpress instance
Prevent multiple sites accidentially running from the same database. This also intentionally forces people to read the release notes to note the other breaking change that can lead to subtle breakage. I know that this is a bit weird way to do this but I think this change is useful in any case and the other change can break really subtly but I think is really necessary to do. Doing it in a more backwards compatible way is too complicated in my opinion and also doesn't make much sense as it would still break when updating themes or plugins then anyways.

Sample config
{
  security.acme.acceptTerms = true;
  security.acme.defaults.email = "x";
  services.httpd.adminAddr = "x";

  networking.firewall.allowedTCPPorts = [ 80 443 ];

  services.wordpress.sites = let wordpressPackages = pkgs.callPackage (builtins.fetchGit {
      url = "https://git.helsinki.tools/helsinki-systems/wp4nix";
      ref = "master";
    }) {}; in {
    "wordpress.x" = {
      plugins = [ wordpressPackages.plugins.woocommerce wordpressPackages.plugins.woocommerce-payments ];
      themes = [ wordpressPackages.themes.storefront ];
      package = pkgs.wordpress-core;
      database = {
        name = "wordpress";
      };
      virtualHost = {
        enableACME = true;
        forceSSL = true;
      };
    };
  };
}

I'm not interesting in keeping this up to date or extracting the useful bits so anybody feel free to use this and adding me as co-author.


docs(footer): add rh-footer-universal to ux site

What I did

Replacing the footer on the UX site with the rh-footer-universal
Adding a bit of padding between the main content and footer. var(--rh-space-4xl, 64px)

Testing Instructions

Go to https://deploy-preview-893--red-hat-design-system.netlify.app/
Ensure that the footer looks appropriate on various pages.

Notes to reviewers
I'm just using raw HTML because the content will nearly never change and it is super easy to copy and paste from the footer README.

@RedHat-UX/designers Can you verify that the footer meets our design standards?


App Redirection Issue

Hi ,
I created an app using the code and it works perfectly. Thanks for it.
The only problem I am having is once I open my store and go on the app listing page I click on the app link. It redirects me to the same app listing page instead of the embedded app.
Now I have to again click on the same link and then the embedded app opens.
Can you please check and let me know why this would be happening?
Other apps in the listing are working properly ( 3rd party apps).

Great. I highly recommend using Laravel for Shopify App Development because its projects are maintained properly.


Provide option to return false if FeatureBit doesn't exist in database

Currently, if the feature bit doesn't exist in the database, the FeatureBitEvaluator will throw an exception instead of failing gracefully, perhaps by returning "false"

If people check for a feature bit that doesn't exist, should we merely act like the feature is "off" or give them a 404 error?


[$2000]  Edit box input immediately loses focus

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Long press on the message
Press on the edit message

Expected Result:
Input should be focused, and the keyboard should appear
Actual Result:
The input immediately loses focus and the keyboard disappears
Sometimes on mobile iOS, it might work as expected for only the very first time
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/235781087-3085af38-3979-4373-b482-9add5a1e99d1.MP4
https://user-images.githubusercontent.com/43996225/235781121-edcbc80f-d05b-4e2a-b5b1-55ed51fa48af.MP4
https://user-images.githubusercontent.com/43996225/235781212-29b172bd-dba1-4688-927c-c4829d028aa2.MP4
Expensify/Expensify Issue URL:
Issue reported by: @terrysahaidak
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1683011194146829
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018d878cb02be4bcab
Upwork Job ID:<PHONE_NUMBER>120652800
Last Price Increase: 2023-05-16

Triggered auto assignment to @twisterdotcom (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

Wow yes, this is infuriating actually! Works fine on Android. Not on iOS.

Job added to Upwork: https://www.upwork.com/jobs/~018d878cb02be4bcab

Current assignee @twisterdotcom is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @fedirjh (External)

Triggered auto assignment to @PauloGasparSv (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Edit box immediately loses focus after getting focus by edit comment action.
What is the root cause of that problem?
On iOS, if text input is focused while an animation is happening (popover getting dismissed), it immediately loses focus and onBlur is called.
What changes do you think we should make in order to solve the problem?
We can add delay before setting focus on textinput, just like we did on android.
Create a index.ios.js file for focusTextInputAfterAnimation and copy contents from android counterpart.
const focusTextInputAfterAnimation = (inputRef, animationLength = 0) => {
    // This setTimeout is necessary because there are some animations that are just impossible to listen to in order to determine when they are finished (like when items are added to
    // a FlatList).
    setTimeout(() => {
        inputRef.focus();
    }, animationLength);
};

I saw some comments regarding user interaction and focus in the file, but this solution worked for me so far.
What alternative solutions did you explore? (Optional)
Alternatively we can just remove index.android.js and copy its contents to index.js, so that the behavior is consistent on all devices.

There is no obvious problem,  I looked it already while working on another ticket related to this. On Android there is setTimeout but I think this issue requires fix for both, since on Android it's also just a workaround.

Keeping this open for a bit more time in case there is a solution!

After some more playing around I found a potential fix.
It looks like wrapping this hide callback with a requestAnimatedFrame fixes the problem:
https://github.com/Expensify/App/blob/main/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.js#L245
    runAndResetCallback(callback) {
        requestAnimatedFrame(() => {
			callback()
		});
        return () => {};
    }

https://github.com/Expensify/App/assets/7809008/413a452f-a7d7-41bc-9179-dccf48fbf492
Looks like the callback is being called on the same frame modal on the native side is still closing, going to investigate that.

It looks like the problem is not with the native Modal from react-native, but react-native-modal which wraps it.
Replacing react-native-modal with just native Modal fixes the problem.

Not overdue

Let's bump the bounty.

Proposal
Please re-state the problem that we are trying to solve in this issue.
When you long press on the message to open the Context Menu (bottom sheet) on iOS and then choose "Edit message", the edit box input immediately loses focus.
What is the root cause of that problem?
After some investigation, the root cause for this bug seems to be react-native-modal.
According to this line https://github.com/react-native-modal/react-native-modal/blob/master/src/modal.tsx#L680-L687 they call onModalHide callback as a callback of useState which changes visible property of the native modal. Since currently in the app react native uses batched bridge, all the events are batched and send to the native side on every even loop, so it seems like while the native is hiding the modal we run the focus method of the input.
What changes do you think we should make in order to solve the problem?

Since the problem is directly in the fact that react-native-modal ignores onDismiss prop of the Modal, we should introduce a new boolean prop to BaseModal called shouldUseOnDismiss. It's applied only to iOS since onDismiss is iOS only. When we pass it to the component that renders a modal, such as PopoverWithMeasuredContent, BaseModal will pass to Modal onDismiss callback instead of onModalHide on iOS via getOperatingSystem().
What alternative solutions did you explore? (Optional)
Migrate away from react-native-modal entirely in the long term perspective.

@fedirjh I tested this new approach and it should guarantee that it will work since onDismiss is called after the modal is gone on the native side.

@fedirjh and @PauloGasparSv - what do you think please?

@fedirjh it won't, since if we introduce this additional shouldUseOnDismiss property to enable this behavior, we can enable it only for a specific modal, not to all of them. In our case, this property is going to be here, alongside isVisible: https://github.com/Expensify/App/blob/main/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.js#L297

Also, I don't think that onDismiss bug is a "bug" in react-native-modal, it looks more like an intentional decision. The onDismiss callback is still exposed to us, so we can pass it directly to Modal used by react-native-modal.

I'd love for us to find a sensible conclusion here. It feels like we're close, but there is just some small disagreement about how best to go about it. @PauloGasparSv, it would be useful to get your input here.

Thks for the work here @fedirjh @terrysahaidak
I think this still summarizes the state we are right now:

Implement the workaround.
Fix the bug in react-native-modal.
Migrate from react-native-modal.
Do nothing and close the issue similar to [$1000] Android - Keyboard is not automatically displayed when editing a comment  #5637

IMO we should go with 4 and DO NOTHING. Like Tim said:

I propose that we close this issue for now. Then:

If we find out that customers and users are complaining about this behavior, we reopen
If the regression in the third-party lib is fixed, we reopen

imo, since we already have a workaround on Android and applying the same workaround to iOS fixes the issue, we should just have the same workaround on both platforms and only then consider doing anything more if the issue still exists for some users.

since we already have a workaround on Android and applying the same workaround to iOS fixes the issue

Oh so sorry @terrysahaidak, I misread part of the discussion and thought requestAnimationFrame was the only workaround we had because setTimeout wasn't working on all platforms.
I agree with you and @fedirjh on adding the setTimeout workaround here. That would take us back to this proposal right?

We simply need to rename focusTextInputAfterAnimation/index.android.js to focusTextInputAfterAnimation/index.native.js similar to what was suggested in https://github.com/Expensify/App/issues/18300#issuecomment-1536264960 .

Thks for confirming. I wasn't sure if we would create a new file like that proposal mentions, should have seen that index.android.js has no other logic than focusTextInputAfterAnimation. I wanted to confirm that to determine the assignee here.
Change makes sense to me so I'm assigning @terrysahaidak here

I created a PR as we discussed, it's ready for review.

Offer sent to you @fedirjh.
@terrysahaidak I couldn't find you in Upwork, so please apply for $1250 ($1k + $250 for reporting): https://www.upwork.com/ab/applicants/1653543158120652800/job-details
@fedirjh please complete the checklist too.

Regression test internal: https://github.com/Expensify/Expensify/issues/288963

All paid.


command to create a sample app

In order to ease the barrier of entry for deploying applications across multicluster using OCM, create a new clusteradm subcommand that generates a sample application that can be deployed into multiple managed clusters. This inspiration comes from the helm create command: https://helm.sh/docs/helm/helm_create
I suggest we starts with something easy: clusteradm create app sample-app
This will create a folder sample-app containing yaml files that upon kubectl apply will perform a helm repo nginx app deployment to all the managed clusters.
What do you think @itdove ?
/assign mikeshng

Hi @mikeshng
Wonder if we should not take a example from https://kubernetes.io/docs/tutorials/ but it is up to you.
I also wonder if the sample-app not be part of the -h , I don't know how much a app can be templated but for me a sample should be part of the documentation or located in a repo, with a repo the user could do:
clusteradm install app <my_app_name> --repo-url <location of the repo> --values <custom_value>
The repo-url could be a github, ftp, files.... to basically the clusteradm template which are currently in the clusteradm binary will be in this case in an external repo.
So I would add that sample in a shared repo that end-user can look at and use it.

Based on discussion with @itdove
clusteradm create app --sample will install the sample app that is a Helm ngix deployment to all managed clusters.
clusteradm create app --sample --dry-run --output-file /path/to/files will generate the yamls.
in the future, not to be contained in this issue, other full blown param options that are not sample related.
clusteradm create app --repo-type <type of repo> --repo-url <location of the repo> --clusters <list of clusters>


Alfred 3 Theme proposal

I trew together a quick theme for Alfred 3, if you're interested
Nord.alfredappearance.zip

Thanks for your contribution 👍
This is also already a planned port project 😉
You can find more information in the epic issue #18 in the UI Applications section.
I'll notify you as soon as the specific backlog issue is created so you can track the progress or contribute ideas for this port project.

Hey guys,
I would also like to support on this issue.
Maybe it's possible to port https://github.com/codeBud7/nord-alfred which I created a while ago.

And here is yet another dark Alfred port of Nord: https://github.com/crispgm/alfred-nord :)

And here is yet another dark Alfred port of Nord: https://github.com/crispgm/alfred-nord :)

I wouldn't say another. The decision of making the icons smaller was on point. I've been using since last week. My only issue is that I'm using Nord for Vim and when I open alfred, it almost blends with the terminal. 😂

@jmurinello Thanks. It is actually based on personal taste at first but all in all looks good.
My issue is when VSCode, sublime and iTerm is open, the windows in mission control seem to be the same.

@crispgm I'll use your and @mattpirelli's theme both as base since they are almost in a state the official theme should look like :smile: , but it'll still take some time until there will be new port projects since the data transition to the new website and documentations is not finished yet.


Update and rename README.md to Mozi3kaloo

https://raw.githubusercontent.com/barry-far/V2ray-Configs/main/Sub7.txt

@Mozafar2024 🙂


No obvious way to set absolute position to popper with reference object.

CodePen demo
https://codepen.io/lflserg/pen/wPdmEN
Steps to reproduce the problem

Create custom reference object
Attach a popper to it
Scroll

What is the expected behavior?
There is an obvious way to make the object attached to the absolute position and not to the viewport.
What went wrong?
Object is attached to the viewport.
The way to set absolute position is to create a hidden dom element, and attach popper to it.

I don't think I understand what the demo should show, may you elaborate a bit please?

If you mean that the tooltip will not scroll together with the page, this happens because the reference object doesn't actually have any DOM context, thus Popper.js is not able to understand which scroll events it have to listen to.
You can manually define the scroll handlers like I did in this demo:
https://codepen.io/FezVrasta/pen/vWXQdq
Or make the reference object provide the needed information for Popper.js to know its DOM context, I never tried this approach but I think you should be able to define a parentNode getter that returns the expected parent and it should work, but I'm not sure.

@FezVrasta thank you for your prompt response! I considered similar solution, but dont you think this will make a performance drop compared to binding to hidden DOMelement?

I don't think it's going to be a performance bottleneck, you are simply defining your event listeners manually instead of letting Popper.js do it for you.
The fact that you don't have a DOM node as reference element has some advantages, such the fact that reading its informations will be faster than if you wanted to read a real DOM node.


.pro doesn't have configuration for MacOS,any suggestion?

hi there, its a quite good example for QT and Encrypt. However,i cannot build this project on my MacOS+QTCreator ,any suggestion would be very helpful.
My openssl version is below:
@Irenes-MacBook-Pro Qt-Secret % openssl version
LibreSSL 2.8.3
Thanks in advance

Hi, I'm really sorry I don't know anything about MacOS, and have not used qt/c++ ever since. You might want to search for something else :(


L3-Performance benchmarking: Maintain main-perf dev-branch.

Develop L3 micro-performance benchmarking scripts / interfaces in new l3-perf-bm dev-branch:
Discussed in https://github.com/undoio/l3/discussions/43

Originally posted by gapisback May  9, 2024
We discussed the need to do controlled performance benchmarking to measure the overheads of L3-logging in comparison to other schemes such as:

Baseline: With no L3 or any other form of logging.
Logging of messages using fprintf() to some output file, with or w/o fflush()
Logging using the header-only spdlog package
Different implement of L3-APIs where, say, l3_init() falls-back to fopen() specified file. And then l3_log_simple() defaults to a simple fprintf()
Extending recently-created client-server-msgs-perf performance exerciser to driver micro-benchmarking performance.

I think trying to maintain all scripts, drivers to do these kinds of performance-benchmarking experiments in core L3 repo-sources will become difficult.
Proposal

Create a dev-branch called main-perf-bm which will be cut-off of /main.
All specialized perf-specific code, e.g. conditinonaly compiled code in client-server-msgs-perf sources will be implemented in this branch.
We can maintain a submodule of spdlog repo in this dev-branch, to simplify integration of that library withclient-server-msgs-perf programs.
Any future perf-benchmarking specific sources / tools can be developed and maintained in just this one branch, which likely goes thru its own variation of CI-builds (tbd).

@gregthelaw -- Let me know if this scheme works for you and any issues you see with this scheme.
If agreeable, I can start working on this dev-branch to start building out the perf-bm tooling.

Looks good to me!


Bug is!

Steps to Reproduce

Run flutter create bug.
Update the files as follows: ...
...

package:flutter/src/widgets/framework.dart': Failed assertion: line 4878 pos 16: 'child is! ParentDataElement<ParentData>': is not true.
Expected results:
Actual results:

Logs

2
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md

Hi @RackiSebastian

package:flutter/src/widgets/framework.dart': Failed assertion: line 4878 pos 16: 'child is! ParentDataElement': is not true.

Can you please provide your flutter doctor -v and a minimal complete reproducible code sample and flutter run --verbose logs running the minimal code sample?
Thank you


[SQL] Use TestSQLContext in Java tests

Sometimes tests were failing due to the creation of multiple SparkContexts in a single JVM.

Test build #26948 has started for   PR 4441 at commit 657b1e0.

This patch merges cleanly.

Just curious, but how did the failures manifest themselves?  I think that I turned the "multiple SparkContexts" exception into a warning in SQL because at the time it was going to be kind of difficult to clean up the tests to prevent multiple contexts from being created.  I wonder if we can re-enable that exception now...

You know I can't find it anymore, but there was some jenkins run where I saw the failure so I figured I would fix it.

Speak of the devil :)
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/26950/consoleFull

Test build #26948 has finished for   PR 4441 at commit 657b1e0.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class UnresolvedGetField(child: Expression, fieldName: String) extends UnaryExpression
case class GetField(child: Expression, field: StructField, ordinal: Int) extends UnaryExpression

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


Firewall Rule Audits

From @basepi on March 7, 2017 22:55
From @grimamethyst on May 5, 2016 3:6
As part of PCI compliance, regular reviews of all prod firewalls are required.  However, this usually involves spending time going through the entire config file for each firewall.  That format is also generally impossible to hand off to auditors without copying out each individual rule from the config file.  Could the firewall tool built into Hubble include a feature that would pull in the rules and output them in a more organized, readable fashion?
Copied from original issue: hubblestack/nova#118
Copied from original issue: hubblestack/hubble-salt#50

I think this is doable, but will be low on the priority list for now.

I know this was originally a nova module, but since it's primarily information-gathering, I think this should actually be a new nebula module, as the labels infer. Nova is about auditing against standards, nebula is about information gathering.

Also, iptables is the only firewall we'll support for now.

Not sure if it helps, but we're currently gathering iptables rules via osquery: https://github.com/hubblestack/hubblestack_data/blob/develop/hubblestack_nebula/hubblestack_nebula_queries.yaml#L38-L39

Interesting, I should have checked the query list. @grimamethyst would that serve your purposes? Sounds like we have this pretty handled at Adobe.

I'm going to close this, but if this doesn't serve your purposes please comment and we'll get it re-opened!


ScanNet dataset format for training the model

Hi,
The training code seems to use these files for each of the ScanNet scenarios- "aligned_vert.npy, ins_label.npy, sem_label.npy, aligned_bbox.npy". But these files are missing from the repo. How is the original ScanNet data transformed into this format? Can you please share that codebase, or share the transformed data in the above format?
Thanks!!

Hi, @EnnaSachdeva , please refer to Scan2Cap for data preparation.

Hi,
The training code seems to use these files for each of the ScanNet scenarios- "aligned_vert.npy, ins_label.npy, sem_label.npy, aligned_bbox.npy". But these files are missing from the repo. How is the original ScanNet data transformed into this format? Can you please share that codebase, or share the transformed data in the above format?
Thanks!!

Hi, have you solved it yet? How was it resolved?

@1301358882 , I believe you can find what you need here.


Build failure: cliphist

Steps To Reproduce
Steps to reproduce the behavior:

build cliphist

Build log
Running phase: unpackPhase
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking source archive /nix/store/nl116fkliga637kvvnrf64s3bb0i1mdk-source
source root is source
Running phase: patchPhase
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: configurePhase
@nix { "action": "setPhase", "phase": "configurePhase" }
Running phase: buildPhase
@nix { "action": "setPhase", "phase": "buildPhase" }
Building subPackage .
Running phase: checkPhase
@nix { "action": "setPhase", "phase": "checkPhase" }
# github.com/rogpeppe/go-internal/testscript
vendor/github.com/rogpeppe/go-internal/testscript/exe_go118.go:11:27: cannot use nopTestDeps{} (value of type nopTestDeps) as testing.testDeps value in argument to testing.MainStart: nopTestDeps do>
FAIL    go.senan.xyz/cliphist [build failed]
FAIL

Additional context
Cliphist started failing to build after I updated my flake with nix flake update.
My repository can be shown here: https://github.com/ahwxorg/nixos-config
Notify maintainers
@r-ryantm
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 6.11.2, NixOS, 24.11 (Vicuna), 24.11.20241009.5633bcf`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.8`
 - nixpkgs: `/nix/store/60sn02zhawl3kwn0r515zff3h6hg6ydz-source`

Add a :+1: reaction to issues you find important.

@NotAShelf @dit7ya


Include docker-compose.yml overrides for running python locally

Add docker-compose.override.example.yml that contains proper overrides
Update docs
Add docker-compose.override.yml to gitignore

Fixed in: https://github.com/Frojd/Wagtail-Pipit/commit/c0d119d27690f06f229b73fbae3613f0de55a659


[FLINK-35496] Fix annotations on new JdbcSink and JdbcSource

Change all annotations for the new JdbcSink and JdbcSource to Experimental

Hi @RocMarshal , would you mind reviewing this PR in your free time? thanks~


Modularize Codebase

Our codebase is a single file! Let's modularize it. Open for discussion

See branch refactor for major refactor


Cannot login

I have 2 factor authentication enabled so after the first failure, I tried to make a token myself but it does not seem to work.
Any ideas?

Hi @tsagi !
Thank you for reporting this issue.
Two factor auth is not implented yet that's why you can't login.
I'll work on it asap

Having the same issue here.

I can't log in as well, but I'm not using two factor.
Any help would be appreciated!

@ethanrubio, i checked your config, it seems to be ok.
Can you clear your cache and try again ?

@anthonny I tried again, but no luck. All I get is the authentication error has occurred, and I should check the console. Should I try changing my password and trying again?

I fixed this here https://github.com/HubPress/hubpress.io/pull/30

@therebelrobot  If you can't wait; you can just replace the default vendor.js file with mine here that's located here: https://github.com/enjikaka/hubpress.io/blob/master/hubpress/scripts/vendor.js

Hm yea. Try a fresh fork and then just add my vendor.js and set up your config.json correctly. That worked fine for me.

@therebelrobot  Change the vendor.js in both the branches too. (master & gh-pages) Just to be sure you got it.

I think I broke something actually. Gonna look into it now. Not so used to
git yet so everything is confusing, haha. It worked locally an hour ago...
Med vänlig hälsning,
Jeremy Karlsson
2015-02-10 1:43 GMT+01:00 Trent Oswald<EMAIL_ADDRESS>
Okiedokes :) thx!
—
Reply to this email directly or view it on GitHub
https://github.com/HubPress/hubpress.io/issues/21#issuecomment-73622602.

I just tried it forking from here and adding my vector.js. It worked fine after I got the correct settings in the config.json aswell. (It failed horribly when I didn't have the correct username and repo-name).
I'm unsure if it's possible, but can you try to log in here http://craffy.github.io/hubpress @therebelrobot ?
You won't be able to make posts, but I think you can log in anyway. Remeber that this only works when you generate a token with an app like Authy or Google Authenticator.

@enjikaka, thank you so much for what you have done on 2FA ! :beers:
I'll try too merge your code in the raw source ASAP, but this monday was crazy and now i need to work on the organisation of next the weeks.
I'll do my best :rocket:

@anthonny Sound good! Good luck at work! :smiley:

@enjikaka Dang, dude! Way to get that fix out fast. :beers: Can't wait to get this patch in.

@tsagi it appears to work with 2FA now :tada:

Awesome! :beers: :tada:

Hi antonny
I have this weird problem. I was able to login with 2factor authentication. But now it always is redirecting to login page.
When I enter 2factor auth code.. It says "Welcome back Ashwani".. But then does nothing. just sits on that login page.
If I try to open any other page for settings, posts etc. It redirects me back to Login page.
I have tired clearing the cache and tried again. But its same.
Any pointers?

Hi @TheAshwanik,
You must upgrade your instance of hubpress with the version 0.3.0.
The Github authorization has changed and the 0.2.0 can't work anymore
You can find a blog post here https://blog.hubpress.io

Yup.. I figured..
Thanks for the tip. I think I am gonna subscribe now.. :)
Thanks for you great work.

Same problem was here: forked, login and everything worked, deleted the repo, forked again, cannot login.
Solution:

GitHub user setting
Personal access tokens
Search for "USERgithubio" (without dots)
Delete

Login should work now.


apache flink

does Azure support Apache Flink as a streaming platform with event hub?

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

ID: 957618b3-8d25-49c4-950c-0c044d68f443
Version Independent ID: 2ab67665-066b-fb14-9763-a12693b19bec
Content: Choosing a stream processing technology
Content Source: docs/data-guide/technology-choices/stream-processing.md
Service: guidance
GitHub Login: @ZoinerTejada
Microsoft Alias: pnp

@javias Please see this doc: Use Apache Flink with Azure Event Hubs for Apache Kafka


Push via HTTP with credentials on Windows

Hi,
I try to push my repo with the "Push" button (enabled) but nothing happen. It is a HTTP remote and it need credentials. The following command appears but nothing else:
git -c push.default=simple push --porcelain
If I type the same in command-line, it ask me my credentials and it works.
I'm on Windows.

Hi @kylekatarnls ,
This seems to be the same issue as #7 .
So far our only guess is that the environment inside our shelljs shell used by git-promise doesn't get propagated properly.
I currently don't have the time to look into this issue too much as it would (most likely) need significant changes to our current setup to fix this problem. It is on our roadmap however.
Contributions or Pull requests are welcome though :D

I got the same conclusion and was trying to propose a pull request to shelljs to handle the command read-line. Then a pull request will be needed at git-promise to handle credentials asking, then a form to display it wil be able to be done in atom-git-control. Sound like it wil take some time but I will try to do it, this feature would be very nice to me.

I am not trying to be a downer but a pull request getting merged into shelljs does not seem very likely to me unfortunately. The repo has 23 open pull requests right now and in all of 2015 exactly one outside pull request has been merged.
At this point I think it would be a better idea to try and look for other options from shelljs.Maybe Atoms Buffered Process could do the job, but I am honestly not experienced enough with Node to tell :(

https://github.com/jprichardson/node-suppose handle it bu is no more up to date.

Also having this problem. Would really like to see a fix for this.

See this for a properly set up credential storage on Windows/Linux
Hope that helps. :+1:

For credentials you can use Git Crendetial Manager for Windows
Make, for instance, a pull in a command line to register your credentials. Then Push command will work fine with atom git-control

Yes but it is not a way as secured as asking for each push the password.

@kylekatarnls What do you propose as an alternative? Entering passwords all the time is not a good solution either.

Why not, if you have a password or a key with a passphrase, the most secure way to use it is to enter it  each time, or each session. In fact, the most agnostic way to deal with it would be to ask the user with a prompt box for example for any input from the console. It is possible to use wincreds storage (for example with a checkbox). But IMHO, atom-git-control should let the choice to the user as git do.


opencv3: pkg-config has a bogus path

Issue description
The .pc file I get with opencv3 (opencv-3.4.0) on darwin begins like so,
# Package Information for pkg-config

prefix=/nix/store/q7chwknawcpzi427hqnhgk44r3qr26b0-opencv-3.4.0
exec_prefix=${prefix}
libdir=${exec_prefix}//nix/store/q7chwknawcpzi427hqnhgk44r3qr26b0-opencv-3.4.0/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

This results in a non-existent libdir and so a warning during linking if the pkg-config flags get pulled into a build.
Steps to reproduce
Build opencv3 on darwin.
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.
- system: `"x86_64-darwin"`
 - host os: `Darwin 17.4.0, macOS 10.13.3`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 1.11.16`
 - channels(root): `"nixpkgs-18.03pre124071.310ad4345bb"`
 - nixpkgs: `/Users/acowley/src/nixpkgs`

I could fix this with sed. Something like,
sed 's|set(libdir      "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")|set(libdir      "${OPENCV_LIB_INSTALL_PATH}")|' -i ./cmake/OpenCVGenPkgconfig.cmake

would fix it I think, but perhaps someone has a better fix. I think the issue is that we want libraries to have install names of their full path, but some build tooling is expecting a relative path.
If the sed-style fix is okay, I can open a PR with that.

Ugh, same type of issue as in https://github.com/NixOS/nixpkgs/issues/35143. I wonder if we can validate the .pc files somehow, in the generic builder, to prevent issues like these. Iterate over standard .pc variables representing paths and check if they exist?

I guess that'd require a pkg-config evaluator of some sort to handle definitions and substitution. You can just about chop off the lines before Name:, run it through bash, and look at what variables are set. I took a very quick stab at this, and had a bit of trouble with other shell variables showing up, so we could whitelist which variables to look at as you suggest, or have a heuristic for path-like values.

Can't you just let pkg-config itself parse the files? :P

I saw pkg-config has a --validate flag, but it doesn't catch broken paths :-(

That would be easier, yes 😅
So we can do pkg-config --libs-only-L opencv and pkg-config --cflags-only-I opencv and check that those directories exist. Where would this test go? Also, the name registered with pkg-config isn't always easy to guess, so that might be mildly tricky. Perhaps making this opt-in with an e.g.  checkPkgConfig="opencv"; attribute could trigger it.

It turns out the sed for opencv would have to hit this line in a cmake file,
set(OPENCV_PC_LIBS
  "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
  "${_modules}"
)

Should I PR the addition of a patch file to do that or is sed okay?

Another option for this would be to just run the cc compiler and see if there is an error. For instance,
echo 'int main() {}' | cc `pkg-config --libs glib-2.0` -x c -

On second thought, wouldn't a command like that always succeed in a Nix build environment where glib is available, due to how Nix (or the standard builder) sets up include paths for the compiler?

But you don't get an compiler error if an include path in -I doesn't exist.

Assuming the test program adds a "#include <foo.h>" then?

How do you locate a file which is safe to include?
Keep in mind that some packages supply flags like -I$dev/include/foo-pkg/foo-2.0 so you can't just pick a file from $dev.

Right. It may not be something that can be fully automated for all packages, but manually picking a header file to test per package, if the principle works, would at least prevent regressions like these.

I think the approach of iterating over the output of pkg-config --cflags $foo for every foo in $dev/lib/pkgconfig/*.pc and check if there is an -I/some/absolute/path where the directory doesn't exist is simple and effective enough.


docs path not working on navbar issue has been fixed

Hi @Shubham0850 , @Jayjeet1013 I tried to replicate this issue in the development environment but it is working as expected. but while reviewing the code, I found that "theme" is missing for docs, so I have added to this PR

Hi, @Jayjeet1013. I understand, can you please assign this issue to someone else, as I cannot come up with a solution.


Cant Find Profile.jpg

hi i like your project from this repo but  i have problems i cant find /images/profile.jpg in my file i want change in can you say the detail file location?  thx

Hey @Rivalakmalll, thank you for the appreciation!
You can find the image picture right here: public/images/profile.jpg

Im alrd found the file but the file only show dot.png

Have you set correctly your .env file with the localhost url?

hei pal can you help me to deploy on vercel when im try to deploy i got this eror i need some help ASAP

TypeError: fetch failed
19:15:38.229 | at Object.fetch (node:internal/deps/undici/undici:11576:11)
19:15:38.229 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
19:15:38.230 | cause: Error: connect ECONNREFUSED <IP_ADDRESS>:3000
19:15:38.230 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16)
19:15:38.230 | at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
19:15:38.230 | errno: -111,
19:15:38.230 | code: 'ECONNREFUSED',
19:15:38.231 | syscall: 'connect',
19:15:38.231 | address: '<IP_ADDRESS>',
19:15:38.231 | port: 3000
19:15:38.231 | }
19:15:38.231 | }
19:15:38.232 | TypeError: Cannot read properties of undefined (reading 'json')
19:15:38.233 | at profileFetcher (/vercel/path0/.next/server/app/open-source/page.js:411:41)
19:15:38.233 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
19:15:38.233 | at async OpenSourcePage (/vercel/path0/.next/server/app/open-source/page.js:472:21)
19:15:38.244 |
19:15:38.244 | Error occurred prerendering page "/open-source". Read more: https://nextjs.org/docs/messages/prerender-error
19:15:38.244 | TypeError: Cannot read properties of undefined (reading 'json')
19:15:38.245 | at profileFetcher (/vercel/path0/.next/server/app/open-source/page.js:411:41)
19:15:38.245 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
19:15:38.245 | at async OpenSourcePage (/vercel/path0/.next/server/app/open-source/page.js:472:21)
19:15:38.285 | TypeError: fetch failed
19:15:38.290 | at Object.fetch (node:internal/deps/undici/undici:11576:11)
19:15:38.291 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
19:15:38.291 | cause: Error: connect ECONNREFUSED <IP_ADDRESS>:3000
19:15:38.291 | at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16)
19:15:38.291 | at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
19:15:38.291 | errno: -111,
19:15:38.291 | code: 'ECONNREFUSED',
19:15:38.291 | syscall: 'connect',
19:15:38.291 | address: '<IP_ADDRESS>',
19:15:38.291 | port: 3000
19:15:38.291 | }
19:15:38.291 | }
19:15:38.296 |
19:15:38.296 | Error occurred prerendering page "/spotify". Read more: https://nextjs.org/docs/messages/prerender-error
19:15:38.296 | TypeError: fetch failed
19:15:38.296 | at Object.fetch (node:internal/deps/undici/undici:11576:11)
19:15:38.296 | at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
19:15:38.297 | - info Generating static pages (13/13)
19:15:38.302 |
19:15:38.303 | > Export encountered errors on following paths:
19:15:38.303 | /open-source/page: /open-source
19:15:38.303 | /spotify/page: /spotify
19:15:38.363 | error Command failed with exit code 1.
19:15:38.365 | info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
19:15:38.386 | Error: Command "yarn run build" exited with 1

Can you send me more information about you environment?
node version
npm/yarn/pnpm version
SO
etc
Thanks!

ok but i want know detail path file first? bcs there many same name  u want to know / see @mateonunez  give me detail path like from file .env or smtg

ok but i want know detail path file first? bcs there many same name  u want to know / see @mateonunez  give me detail path like from file .env or smtg

Without technical details of the environment, etc it's really hard to give you a solution.
Please, provide more details or just create a reproduction error.

Ok let me send the detail for u see appreciate it


Add contributing.md and CODE_OF_CONDUCT.md files

I can add contributing.md and code of conduct files to the project.
As a part of crosswoc, can you please assign this issue to me.

Both are present in main Catalyst-IN repo.


Change dirty and undefined items

Identify non-storage items by special fields, rather than label.
Context:
If you look at how 'dirty' and 'undefined' items are identified in _reporter.js, you'll see that the item's label is set to "dirty"/"undefined".
This isn't good because it can lead to errors if there's an actual variable named dirty or undefined.
To address this issue, add an extra field to all items: special, which can be true or false.
In all places in the code where .label == "undefined or .label == "dirty", instead do the following:
Check if special is true. If it is, proceed to check the label as before. If not, we're dealing with an actual variable, which means it's neither 'undefined' nor 'dirty'.

Identify non-storage items by special fields, rather than label.

Hey @ZeroEkkusu! is this issue available to work? I can work on this. Maybe give me some more context for this issue? Thanks.

Sure! I've added context above.  👆
If you need more info or help, ping me, @kamuik16!

Sure! I've added context above.  👆
If you need more info or help, ping me, @kamuik16!

Okay I understood the issue and wanted to know how can I test this on my local computer with changes I make?

@kamuik16, this is the easiest way:
When you forge init a new project, you'll have src/Counter.sol in it. Add the tool to the project as described in the readme.
Then, git commit, and you'll have a commit hash. Use it when you try running the tool.
When you try running it the first time there'll be no findings because you haven't made any changes to Counter. You can change uint256 number to uint128 number, which will be enough do create a 'dirty' item in the new storage layout and an 'undefined' item in the old storage layout.
You can make changes to the tool directly in the lib folder of the example project, and re-run it to test it.
Once you're done you can copy over the changes from lib/storage-delta to your actual fork of this repository, and make a pull request.

How to handle the case when the variable name itself is dirty or undefined? I have done for other case where the variable name itself is not "dirty" or "undefined". Hoping I am moving forward in the right direction.

Very clever, @kamuik16! I totally didn't think of that!
Feel free to open a PR (you can use dev), and we'll get it merged.

Very clever, @kamuik16! I totally didn't think of that!
Feel free to open a PR (you can use dev), and we'll get it merged.

https://github.com/0xPolygon/storage-delta/pull/14 Opened this PR you can check and let me know if there are any chances to make.


Use React Native for Bluetooth LE, NFC, and GPS capabilities

https://reactnative.dev/
https://github.com/innoveit/react-native-ble-manager
https://github.com/revtel/react-native-nfc-manager
https://www.npmjs.com/package/@react-native-community/geolocation

Blocked by https://github.com/josephrkramer/batuu-scanner2/issues/45


identifyUserWithTraits sends JSON blobs to Flagsmith

I'm trying to set traits on a user using identifyUserWIthTraits, but the traits in Flagsmith aren't what I expect.
Current behavior:
A trait with the value<EMAIL_ADDRESS>gets set in Flagsmith as "{'type': 'unicode', 'value'<EMAIL_ADDRESS>Expected behavior:
The value in Flagsmith is<EMAIL_ADDRESS>We're currently using bullet-train-client version 1.6.
Additionally, an example of setting traits in the Readme would be amazing!

OK we've repeated this locally - will work on a fix!

OK we've repeated this locally - will work on a fix!

Sample breaking code in 1.6:
    public static void main( String[] args ) {
        BulletTrainClient bulletTrainClient = BulletTrainClient.newBuilder().setApiKey("QjgYur4LQTwe5HpvbvhpzK")
                .build();
        FeatureUser user = new FeatureUser();
        user.setIdentifier("testben");

        Trait trait = new Trait();
        trait.setKey("key1");
        trait.setValue("val1");

        List<Trait> traits = new ArrayList<Trait>();
        traits.add(trait);

        bulletTrainClient.identifyUserWithTraits(user, traits);
    }

Sample breaking code in 1.6:
    public static void main( String[] args ) {
        BulletTrainClient bulletTrainClient = BulletTrainClient.newBuilder().setApiKey("QjgYur4LQTwe5HpvbvhpzK")
                .build();
        FeatureUser user = new FeatureUser();
        user.setIdentifier("testben");

        Trait trait = new Trait();
        trait.setKey("key1");
        trait.setValue("val1");

        List<Trait> traits = new ArrayList<Trait>();
        traits.add(trait);

        bulletTrainClient.identifyUserWithTraits(user, traits);
    }

I was poking around a bit and it seems like the traits don't have the type: 'unicode' all the way up through the api request in identifyUserWithTraits(). The only place I saw them was on the response body.
This is far outside my area of expertise, but it looks like the right values are being sent to the API. That leads me to believe it's something to do with headers or maybe the formatting of the request body.
Thanks for looking into this, y'all!

I was poking around a bit and it seems like the traits don't have the type: 'unicode' all the way up through the api request in identifyUserWithTraits(). The only place I saw them was on the response body.
This is far outside my area of expertise, but it looks like the right values are being sent to the API. That leads me to believe it's something to do with headers or maybe the formatting of the request body.
Thanks for looking into this, y'all!

OK this is fixed in master thanks for the report!


Add functionality for removing/deleting an organization request

What's the problem this feature will solve?
Gives users the ability to delete a pending organization request.
Additional context
Originally raised in https://github.com/pypi/warehouse/issues/13538.

I would like to be able to do so via Admin as well. "Decline and Delete" would be a nice option for spam.


Feature Request: Content Filtering à la Proxy History

It'd be great if there was an easy way to filter the results. For example, I don't particularly care if a style sheet is accessible to the world. Adding Proxy History-like filtering would be a beautiful thing.

I had an old version of the extension. See #42.


Visual Studio Test in Team Foundation Server 2018 Patch 3.2 dont use runsettings

Description
VSTest don't take the runsettings you provide by console options or directly from the tfs config site.
The runsettings is allways a default runsettings.
Steps to reproduce
1: Create a VsTest Buildstep in TFS
2: Select a runsettings from your project or pass it over console options
3: Check "...\AppData\Local\Temp[a-z0-9].txt" for the vstest config and search for /Settings:"C:\Users[a-zA-Z0-9]\AppData\Local\Temp[a-zA-Z0-9-]*.runsettings"
Expected behavior
70a71f50-45a2-11e9-9ea6-419c4a7353e6.runsettings should be the runsettings from the repository or a merge.
Actual behavior
The runsettings is allways a default runsettings.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RunSettings>   <DataCollectionRunSettings>     <DataCollectors>       <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">         <Configuration>           <CodeCoverage>             <UseVerifiableInstrumentation>False</UseVerifiableInstrumentation>           </CodeCoverage>         </Configuration>       </DataCollector>     </DataCollectors>   </DataCollectionRunSettings> </RunSettings>
Environment
Team Foundation Server 2018 Patch 3.2
VsTest 16.0.1

@CSmith1111 can you please provide the complete logs with system.debug = true
One of the reasons it takes the default runsettings is if the provided one is invalid.

hope this is what you asked for, all logs whould be 9,44 MB / 120 MB
Localoutput

Agentoutput

VsTest - testAssemblies Output / Log (just VsTest log without unittestdata, file would be > 30mb)
7_VsTest - testAssemblies.txt
Runsettings
CodeCoverage.runsettings.txt

@CSmith1111 there was a minor bug that we found and patched later round.
As a workaround:
Can you untick enable code coverage in the task
and then add this to your runsettings file: False
the way it is getting added in the generated default runsettings

If i untick "enable code coverage" the task don't create a runsettings but use my runsettings i defined in the vstest build step. this works fine and the .coverage also looks good. only problem is that now my .coverage don't get published to the overview but to " http://tfs:8080/tfs/XX/XXXX/_TestManagement/Runs#runId=543&_a=runCharts" under attachments.

If i untick "enable code coverage" the task don't create a runsettings but use my runsettings i defined in the vstest build step. this works fine and the .coverage also looks good. only problem is that now my .coverage don't get published to the overview but to " http://tfs:8080/tfs/XX/XXXX/_TestManagement/Runs#runId=543&_a=runCharts" under attachments.

@CSmith1111 this has nothing to do with the fact that you unticked the code coverage checkbox.
The job that publishes this charts generally runs after sometime and not immediately.
You are saying this used to work before? Can you try queueing a few more runs (a mix of with the checkboc ticked and without) and tell me whether the code coverage summary appears?

This used to work if the box is ticked.
Code Coverage in the Build Details used to have a downloadlink for the .coverage, now i have to go to the TestManagementHub if i unticked the box.
It will come back to the Build Details if i add mspremier.BuildQualityChecks to the build.

@CSmith1111 the bug I mentioned was fixed in later updates (mostly in 2018 U3 the fix should be present).
I lost you in the last comment. Could you please explain with screenshots all the differences in terms of the coverage UI report of a build with the box checked and without.

@CSmith1111 any updates here?

Closing due to no response. Please re-open if still facing the issue.


add survey complete tasks pie chart

@mathias-gibson, can you give me more context?

theres a yes/no question in the survey that asks "did you get your stuff done"

@mathias-gibson: Did you imagine over 7 days or longer like 30?

Let's do 7 right now, just to get the point across. If we need to do 30 we'll add another task to myself.

Re-assigning to @phiden to make into a chart.


upgrade to V0.20.6 occur "DB -> STORAGE(create,plain) ERROR, could not write"

Thank you for providing such an excellent plugin
problem
After I upgrade to V0.20.6，Computer and phone synchronization occur "DB -> STORAGE(create,plain) ERROR, could not write"

version
V0.20.6

maybe
It may be related to this reason, as it indicates that there are two Database folders, but there is actually only one Database folder, and lowercase databases do not have this folder.

difficult problem
Expected results
I originally intended to reset the entire local synchronization record and then pull the remote library information again. Local data is no longer needed, and remote data is directly used to overwrite the local data. I have tried various methods of plugins.
final
My remote library is broken and uncomfortable.
cause
I did the following:

1、Discard the existing configuration and set up.
2、Uninstalled plugin.
3、Exit program obsidian.
4、Download the livesync plugin again.
5、Ensure that the synchronization address is invalid.
6、But he experienced the phenomenon of pulling remote data. I don't know, why can he pull data without any remote library address configuration? And I still unload the overloaded livesync, so it should not be able to pull any data.

why?
I tried

Discard the existing configuration and set up
Do not discard the existing configuration and set up again
Fetch rebuilt DB
Discard local database to reset or uninstall Self-hosted LiveSync
There is no operation that can help me completely empty the local.

I'm sorry to bother you.
I am not at all familiar with the LiveSync plugin, but is "Redflag.md" relevant? If not, I'm sorry.
obsidian-livesync/README.md at 280d9e1dd9e7c9cdc6991b7399584294bd34300d · vrtmrz/obsidian-livesync

To stop the boot-up sequence (eg. for fixing problems on databases), you can put a redflag.md file (or directory) at the root of your vault. Tip for iOS: a redflag directory can be created at the root of the vault using the File application.
Also, with redflag2.md placed, we can automatically rebuild both the local and the remote databases during the boot-up sequence. With redflag3.md, we can discard only the local database and fetch from the remote again.

Recovery procedure, start from scratch · Issue #30 · vrtmrz/obsidian-livesync (2021)
any way to reset local database manually by deleting files on windows? · vrtmrz/obsidian-livesync · Discussion #147 (2022)

很抱歉打扰您。我完全不熟悉 LiveSync 插件，但“Redflag.md”相关吗？如果没有，我很抱歉。
黑曜石-livesync/README.md 在 280d9e1dd9e7c9cdc6991b7399584294bd34300d ·VRTMRZ/黑曜石-LiveSync

要停止启动序列（例如，用于修复数据库上的问题），可以将 redflag.md 文件（或目录）放在保管库的根目录下。iOS 提示：可以使用文件应用程序在 Vault 的根目录下创建一个红旗目录。
此外，放置 redflag2.md 后，我们可以在启动序列中自动重建本地和远程数据库。使用 redflag3.md，我们可以只丢弃本地数据库并再次从远程获取。

恢复过程，从头开始 ·期刊 #30 ·VRTMRZ/黑曜石实时同步 （2021）
有什么方法可以通过删除Windows上的文件来手动重置本地数据库吗？ · VRTMRZ/黑曜石直播同步 ·讨论 #147 （2022）

Thank you for your reply. It's my problem and I haven't read the existing materials carefully. I will continue to try again.

Sorry for being late!
Strange behaviour when remote data vaults contain mixed-case files. This is due a specification trouble. I am sorry to make you inconvenient.
I am very annoyed about this. We could make /Database/ and /database/ if on Linux or iOS, but could not on Windows.
So we could not merge /Database/ and /database/ by unified simple logic. (In other words, there might be some ways, if we could accept overwriting of aaa.md changes to aaA.md and Database/aa.md to database/aa.md)
For now, in such cases, this is just a workaround but following instructions may help us.

Rename the Database folder to Database_ (anything you like) by Windows Explorer
After the file scan, restart Obsidian
A database folder will be created, and please move its files into the Database_ folder.
Wait for the scan, and rename Database_ back  to Database

Second problem
The file resurrecting problem seems to be caused uncleared local database.
The process which you have done Discard local database to reset or uninstall Self-hosted LiveSync does this, but seems to not work in your environment.
As you all mentioned, the Redflag series might be helpful for us. We should use redflag3.md to discard the local and fetch again. However, some good names might be required. Thank you for your support @dlphnkck!

Thank you for your reply.
Rebuild the library to address the first issue.


[Question]: Can chat engine be enabled for graph index?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
I have gone through the document but my use case is to use a graph index. In short, I have multiple sources of information i.e. Database, File, and Directory. Hence I created a ListIndex for each and combine them to store it as a graph index. Now the issue is Graph index does not have chat_engine option i.e. index.as_chat_engine(...).  It only has query_engine.
I need the chat_engine option because I want to retain history and query from history which acts like memory while is same is not available for query_engine. Example below:
stream_response = chat_engine.stream_chat(message, chat_history=message_history)

Here message_history is an array of ChatMessage.
Any recommendations, please? What is the best way to have index from different sources and use chat_engine to have a memory as well?

The bot is almost correct
You can create an agent (the default chat engine) with your graph query engine
https://gpt-index.readthedocs.io/en/stable/examples/agent/openai_agent_with_query_engine.html

@logan-markewich Thanks a bunch. I will try this out. I just want to make sure that I am on right path.

@dosu-bot May I know if I should combine my multiple ListIndex and create a ComposableGraph then store it to disk or is there a better way? The goal is to combine multiple indexes then save them to disk then retrieve them to use for chat_engine.
Below is the snippet I used to save the index.
graph = ComposableGraph.from_indices(GPTTreeIndex, index_list, index_summaries=summary_list)
graph.root_index.set_index_id("my_id")
graph.root_index.storage_context.persist(persist_dir=os.environ["INDEX_DIR"])

@dosu-bot ComposableGraph has no attribute load

@dosu-bot Is it a good idea to store individual indexes in storage then retrieve then build a graph instead of saving graph in storage? I was having issues in query after retrieving the graph from storage but then the graph is built from indexes it works just fine.
Sample code to store indexes:
index1.storage_context.persist(persist_dir=os.environ["INDEX_DIR"] + "/index1")
index2.storage_context.persist(persist_dir=os.environ["INDEX_DIR"] + "/index2")
index3.storage_context.persist(persist_dir=os.environ["INDEX_DIR"] + "/index3")

@dosu-bot How do we configure KnowledgeGraphRAGRetriever from a ComposableGraph index?

@dosu-bot Getting below error and unable to instantiate memory. Below is the error.
memory = BaseMemory()
         ^^^^^^^^^^^^
TypeError: Can't instantiate abstract class BaseMemory with abstract methods from_defaults, get, get_all, put, reset, set

@dosu-bot Sorry, I am still a bit confused. Consider I have a ComposableGraph and how exactly I can create a chat_engine from this ComposableGraph object.
graph = ComposableGraph.from_indices(GPTTreeIndex, index_list, index_summaries=summary_list)

Also, what is the difference between ComposableGraph and KnowledgeGraphIndex?

🤖
Hello,
To create a chat_engine from a ComposableGraph object in the LlamaIndex framework, you can use the as_query_engine method of the ComposableGraph class. Here is how you can do it:
from llama_index.indices.composability.graph import ComposableGraph

# Assuming you have a ComposableGraph object named `graph`
chat_engine = graph.as_query_engine()

In the context shared, the as_query_engine method of the ComposableGraph class is used to create a ComposableGraphQueryEngine instance. This method also accepts additional arguments to be passed to the ComposableGraphQueryEngine.
Regarding your question about the difference between ComposableGraph and KnowledgeGraphIndex, the ComposableGraph is a class that represents a graph of indices that can be composed together. It provides methods to get an index from an index struct id and to create a query engine from the graph.
On the other hand, KnowledgeGraphIndex is a specific type of index that is used to store and retrieve information in a knowledge graph format. It is used to build a Knowledge Graph from given documents with the help of Llama Index and LLM defined. It can be created from documents and can include embeddings. Once created, it can be queried using the KnowledgeGraphQueryEngine which can generate queries in natural language.
Here is an example of how to create a KnowledgeGraphIndex:
kg_index = KnowledgeGraphIndex.from_documents(
    documents,
    storage_context=storage_context,
    max_triplets_per_chunk=10,
    service_context=service_context,
    space_name=space_name,
    edge_types=edge_types,
    rel_prop_names=rel_prop_names,
    tags=tags,
    include_embeddings=True,
)

And here is how to query it using the KnowledgeGraphQueryEngine:
query_engine = KnowledgeGraphQueryEngine(
    storage_context=storage_context,
    service_context=service_context,
    llm=llm,
    verbose=True,
)

response = query_engine.query(
    "Tell me about Peter Quill?",
)

Please note that the exact differences would depend on the specific implementation of these classes in the LlamaIndex framework.
I hope this helps! If you have any other questions, feel free to ask.
Best, Dosu
Sources

[Question]: Connectiing multiple index to create one chat engine
[Question]: I have a list of vectorstore indices how do i create one chat engine using those indices
llama_index/indices/composability/graph.py
llama_index/query_engine/graph_query_engine.py
docs/examples/query_engine/knowledge_graph_query_engine.ipynb

This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.

@dosu-bot But in above example you have created a query_engine which does not support chat_history. How can I create a chat_engine instead of query_ingine from ComposableGraph? chat_engine also has a nice method stream_chat using which we can stream the tokens.

@dosu-bot I was actually trying to create a ContextChatEngine from ComposableGraph and have a chat_engine to do stream chat which could also support chat_history along with streaming response.

🤖
Hello,
To create a ContextChatEngine from a ComposableGraph object in the LlamaIndex framework that supports chat_history and streaming responses, you can follow these steps:

Load your data and build your index:

from llama_index import VectorStoreIndex, SimpleDirectoryReader

data = SimpleDirectoryReader(input_dir="your_data_directory").load_data()
index = VectorStoreIndex.from_documents(data)

Configure your chat engine with a memory buffer to limit the chat history:

from llama_index.memory import ChatMemoryBuffer
from llama_index.chat_engine.context import ContextChatEngine

memory = ChatMemoryBuffer.from_defaults(token_limit=1500)

chat_engine = ContextChatEngine.from_defaults(
    service_context=service_context,
    memory=memory,
    system_prompt="Your system prompt here.",
)

For streaming support, set up a service context and use the stream_chat method:

from llama_index import (
    ServiceContext,
    set_global_service_context,
)
from llama_index.llms import OpenAI

service_context = ServiceContext.from_defaults(
    llm=OpenAI(model="gpt-3.5-turbo", temperature=0)
)
set_global_service_context(service_context)

response = chat_engine.stream_chat("Your question here")
for token in response.response_gen:
    print(token, end="")

Please replace "your_data_directory" with the path to your data, "Your system prompt here." with your system prompt, and "Your question here" with your question.
However, based on the provided context, it's not clear how the ComposableGraph object interacts with the ContextChatEngine. The ComposableGraph object is used as a data structure in the ComposableGraphQueryEngine class, which operates over a ComposableGraph and can take in custom query engines for its sub-indices. But there's no mention of any interaction between the ComposableGraph object and a ContextChatEngine.
If you need more help or if there's something I misunderstood, please provide more details.
Best, Dosu
Sources

Support to add  conversation history  in the prompt
docs/examples/chat_engine/chat_engine_context.ipynb
llama_index/chat_engine/context.py
llama_index/chat_engine/simple.py
llama_index/chat_engine/init.py
llama_index/query_engine/graph_query_engine.py

This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.

@dosu-bot Sorry I do not see ComposableGraph used in the example. The question was, how do I get a ContextChatEngine using ComposableGraph.

@dosu-bot I am curious if there is a way to add memory to BaseQueryEngine?