Timestamp query example

Issue
Couldn't find a way to query a timestamp. this method looks like the right path to the underlying vulkan API function but I couldn't find a way to use it. I think an example of canonical usage of queries in Vulkano would be nice.
A workaround is to use some performance analyzer e.g. RenderDoc(poor man's perf analyzer), vtune, Nsight...
Thanks

Are there any plans to implement queries into vulkano?
I have look at docs for query package and there seems to be some implementation but I cannot find a way to submit queries (and then retrieve their results) trough safe vulkano api. Are there any long-term plans with supporting queries in vulkano? What needs to be done to support timestamp, occlusion and statistics queries trough safe command builder?
Related to this issue: https://github.com/vulkano-rs/vulkano/issues/293

A bit old, but #1542 may interest you.


Update to VSCode 1,56.1 and now getting certificate errors on REST calls from my extension. V 1.55.2 works fine

VS Code Version: 1.56
OS Version: macOS big sur 11.3.1

I'm getting a certificate error when making a POST call using axios for a vscode extension. It was working before an update to 1.56.1. I also have rejectUnautorized set as false in the code so it should work as it was before this update.
[2021-05-12T10:56:23.412-04:00][ERROR] Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does
not match certificate's altnames: Host: cpd-tooling-2q21-cpd.apps.cpstreamsx7.cp.fyre.ibm.com.
is not in the cert's altnames: DNS:internal-nginx-svc, DNS:.svc.cluster.local, DNS:api-svc,
DNS:.api, DNS:ibm-nginx-svc, DNS:zen-core-api
at Object.checkServerIdentity (tls.js:297:12)
at TLSSocket.onConnectSecure (_tls_wrap.js:1507:27)
at TLSSocket.emit (events.js:315:20)
at TLSSocket._finishInit (_tls_wrap.js:932:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12)```
also tried changing certificate, would get this error as well. This also didnt happen before the update

Steps to Reproduce:

download ibm streams extension
try to add an instance

Does this issue occur when all extensions are disabled?: Yes/No

Please report the issue against the ibm streams extension.


WIP [RAINCATCH-1388] Filestore tests

Motivation
Add unit testing for the server-side file storage module and implementations
Progress

[X] Tests for the FileService class
[ ] Tests for the S3Storage implementation
[ ] Tests for the LocalStorage implementation
[ ] Tests for the GridFsStorage implementation
[ ] Tests for the FileRoutes express module
[ ] Update jsdocs

ping @JameelB

Changes Unknown when pulling 6a32ae943409a555b3e0588f9472157890f3a970 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

Changes Unknown when pulling 6a32ae943409a555b3e0588f9472157890f3a970 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

Changes Unknown when pulling 8c709485669cdac672e0e24ab55a4cfd2dfc8006 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

Changes Unknown when pulling 589cb44ae4f163cbdef8acbeb89ba78cd59d9e21 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

Changes Unknown when pulling 589cb44ae4f163cbdef8acbeb89ba78cd59d9e21 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

Changes Unknown when pulling 4f3adc166bc26d1dbb9ecfe2681e00afc387c166 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

BTW The snyk vulns are fixed since the express version has been updated to match the other packages, and they wouldn't affect a server since the only usage of express from inside the filestore package is to export a router that is run on the server's non-vulnerable express version.
The warning should go away as we publish a new version.

Changes Unknown when pulling e58c65752b248b1104fbd4c7a7a94ed479f1bf71 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.

Changes Unknown when pulling e58c65752b248b1104fbd4c7a7a94ed479f1bf71 on RAINCATCH-1388-filestore-tests into ** on file-storage-support**.


fix issue #302

See #302
Modify swarm script monitor function:

Current:
monitor() { interval=${1:-5} clear; while true; do tput cup 0 0; docker service ls; sleep $interval; done }

Proposition:
monitor() { interval=${1:-5} while true; do clear; tput cup 0 0; docker service ls; sleep $interval; done }

Closing PR - modification not optimal

@bertrand-quenin @hagantzer This is broken on the Mac (tput ed). Anyway, no point in homing the cursor and then clearing to the end of the terminal -- that's basically clear, which causes a screen flash.


Add Missing Concept Exercise Scaffolds + create Options concept + minor fixes

Towards #103
Towards #255
Most of the "Files changed" are just newly added blank files.
This PR should include all of the concept exercise scaffolds and placeholders.

For exercises that I copied over from other tracks, I added placeholder files and appropriate fields.
For exercises I created specifically for this track, I either implemented the metadata (cryptographer) or implemented just the exercise implementation+stub+tests (others) and I added my username as part of the authors array (alongside whoever implements the missing content).

This PR has a lot going on so it'll take me a few days to review.

@BNAndras I always hated huge PRs. Luckily, out of the 160 files of the PR, only around 20-30 are worth reviewing, others are stubs (see updated description).
Still, even in those 20-30 files there's some content to go through. In retrospect, maybe should've broken this down to multiple PRs, each introducing a single concept placeholder.

@BNAndras I'm not sure how far along you are with reviewing this PR, but if you haven't had the time (or the will) to review this, I would separate it out into many smaller PRs

I’ll have some time this week to take a look at that subset of files. At the moment, I can review it as a single large PR.


added screen for  required button on home page

i have added  have added folders as shown below:-
in common folder
lib/views/common_widgets/donor_card.dart
lib/views/common_widgets/rounded_conatiner.dart
lib/views/common_widgets/rounded_image.dart
    lib/views/pages/Required/

   changed home onpressed to Required Screen

@prajapatihet kindly merge it and level it as please.


Can't read LT/RT from Xbox One controller?

I'm trying to remap the RT on my xbox one controller to a key on the keyboard. I've tried Button to Button and Axis to Button and neither approach detects the RT press from the Xbox One controller.
Is this a bug? Thanks in advance.

My xbox 360 controller too cant read LT and RT. How you bind L3 and R3?

The trigger is analog which means you need to to use Axis to Button if you want to remap the trigger to a button


[TypeScript] More type definition improvement

Added some improvements
Includes https://github.com/sithmel/iter-tools/pull/61 and https://github.com/sithmel/iter-tools/pull/62
I also divided test file into multiple files for each function

Just in case you didb't know, the command is npm publish --tag rc.

https://www.npmjs.com/package/iter-tools/v/6.1.4-rc.0

Looks like your rc version is marked as 'latest' in npm. The purpose of rc is that when a version is not tagged as 'latest', npm will automatically chooses non rc version (which is tagged 'latest') unless user specifically said "iter-tools@rc".

I tried using:
npm publish --tags rc

but it didn't work and I got a 403 a few times.
Then I tried:
npm publish --tags=rc

and it worked. But as you noticed, it ignored the parameter and published as latest. I am trying again this morning

Managed to unpublish. Now I am getting the same error I got yesterday, trying to publish a tag:
npm notice
npm notice 📦<EMAIL_ADDRESS>npm notice === Tarball Contents ===
npm notice 695B  package.json
npm notice 137B  browser.js
npm notice 109B  cli.js
npm notice 1.5kB index.js
npm notice 586B  LICENSE.APACHE2
npm notice 1.5kB LICENSE.BSD
npm notice 1.1kB LICENSE.MIT
npm notice 6.0kB README.md
npm notice 2.8kB lib/utils.js
npm notice 312B  test/ini.js
npm notice 1.4kB test/nested-env-vars.js
npm notice 1.2kB test/test.js
npm notice === Tarball Details ===
npm notice name:          rc
npm notice version:       1.2.8
npm notice package size:  7.1 kB
npm notice unpacked size: 17.3 kB
npm notice shasum:        cd924bf5200a075b83c188cd6b9e211b7fc0d3ed
npm notice integrity:     sha512-y3bGgqKj3QBdx[...]khcZvywyQYPOw==
npm notice total files:   12
npm notice
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You do not have permission to publish "rc". Are you logged in as the correct user? : rc

npm ERR!  I misspelled the command  (--tags instead of --tag). It is fixed now


Segmentation fault when running the minimal.cpp example

I  got the following error when running a basic minimal.cpp.
Thread 1 "Example" received signal SIGSEGV, Segmentation fault.
0x00007ffff6ae5d72 in QOpenGLContext::makeCurrent(QSurface*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
(gdb) bt
#0  0x00007ffff6ae5d72 in QOpenGLContext::makeCurrent(QSurface*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#1  0x00007ffff769bb49 in QGLContext::makeCurrent() () at /lib/x86_64-linux-gnu/libQt5OpenGL.so.5
#2  0x00007ffff76a1a21 in QGLWidgetPrivate::makeCurrent() () at /lib/x86_64-linux-gnu/libQt5OpenGL.so.5
#3  0x00007ffff7fbfb88 in SIM::Coin3D::Quarter::QuarterWidgetP::removeFromCacheContext(QuarterWidgetP_cachecontext*, QGLWidget const*) () at /home/rvbust/Rvbust/Sources/quarter/Build/lib/libQuarter.so.20
#4  0x00007ffff7fbfc20 in SIM::Coin3D::Quarter::QuarterWidgetP::~QuarterWidgetP() ()
    at /home/rvbust/Rvbust/Sources/quarter/Build/lib/libQuarter.so.20
#5  0x00007ffff7fbe738 in SIM::Coin3D::Quarter::QuarterWidget::~QuarterWidget() ()
--Type <RET> for more, q to quit, c to continue without paging--
    at /home/rvbust/Rvbust/Sources/quarter/Build/lib/libQuarter.so.20
#6  0x00007ffff7fbe769 in SIM::Coin3D::Quarter::QuarterWidget::~QuarterWidget() ()
    at /home/rvbust/Rvbust/Sources/quarter/Build/lib/libQuarter.so.20
#7  0x0000000000401381 in main ()

the source code of minimal.cpp  is
#include <Inventor/nodes/SoCone.h>
#include <Inventor/nodes/SoBaseColor.h>
#include <Inventor/nodes/SoSeparator.h>

#include <Quarter/Quarter.h>
#include <Quarter/QuarterWidget.h>

#include <QApplication>
#include <QMainWindow>
#include <memory>

using namespace SIM::Coin3D::Quarter;

int
main(int argc, char ** argv)
{
  // Initializes Quarter (and implicitly also Coin and Qt
  QApplication app(argc, argv);
  Quarter::init();

  // Make a dead simple scene graph by using the Coin library, only
  // containing a single yellow cone under the scenegraph root.
  SoSeparator * root = new SoSeparator;
  root->ref();

  SoBaseColor * col = new SoBaseColor;
  col->rgb = SbColor(1, 1, 0);
  root->addChild(col);

  root->addChild(new SoCone);

  QMainWindow * mainwin = new QMainWindow();

  // Create a QuarterWidget for displaying a Coin scene graph
  QuarterWidget * viewer = new QuarterWidget(mainwin);
  //set default navigation mode file
  viewer->setNavigationModeFile();
  mainwin->setCentralWidget(viewer);
  viewer->setSceneGraph(root);

  // Pop up the QuarterWidget
  mainwin->show();
  // Loop until exit.
  app.exec();
  // Clean up resources.
  delete viewer;
  root->unref();
  delete mainwin;

  Quarter::clean();

  return 0;
}

Could anyone know something about how to fix it? Thanks very much.

Seems similar to issue #10 , a test could be removing the  workaround for a Coin issue fixed in svn r12818 in the  QuarterWidgetP::removeFromCacheContext() method.
Regards
Giampiero

sorry, but I'm still confused about how to fix it?
Is the suggestion in #10 to removeFromCacheContext() in the destructor ?

It is passed really a lot of time from when I opened the issue,  and at present I don't have any mercurial repo from which reconstruct my conclusions about.
Giving a look to the source I think to remember that the mercurial commit 30d08ea consisted solely of line 164 on QuarterWidgetP.cpp.
// fetch the cc_glglue context instance as a workaround for a bug fixed in Coin r12818
(void) cc_glglue_instance(context->id);

You can try to comment it and try it out but - as already mentioned at the time - it was - and still is - not clear to me why this commit introduced the regression.
Regards
Giampiero

Looks like this issue started to occur when using Qt5, as I checked with Qt 4.8.7 and everything was fine. I debugged the application and found out that the QGLContext of the QuarterWidget is reset when the call to QApplication exec() returns. Then in the QuarterWidgetP destructor the calls widget->makeCurrent() and widget->doneCurrent() crash as there is a null pointer dereference inside. Will provide a fix soon.


Support $params property

Resolves #3

Current coverage is 97.16% (diff: 97.14%)

Merging #52 into master will decrease coverage by 0.21%

@@             master        #52   diff @@
==========================================
  Files            12         13     +1
  Lines           191        212    +21
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            186        206    +20
- Misses            5          6     +1
  Partials          0          0

Powered by Codecov. Last update 0d96506...ae341bb


Refactored Elysium Events to Clan Events

Due to requests from other clan chats wanting to use the plugin, I've changed the name from Elysium Events to Clan Events.

Plugins get their name from both the runelite-plugin.properties and from the PluginDescriptor. The name internally used by the pluginhub is unrelated, and changing it essentially introduces a new plugin and causes you to lose your install base. So we recommend not renaming the plugin here.

Plugins get their name from both the runelite-plugin.properties and from the PluginDescriptor. The name internally used by the pluginhub is unrelated, and changing it essentially introduces a new plugin and causes you to lose your install base. So we recommend not renaming the plugin here.

I've undone the name change in the pluginhub; Will there be any conflicts if I change the repository url in the elysiumevents-plugin?

Plugins get their name from both the runelite-plugin.properties and from the PluginDescriptor. The name internally used by the pluginhub is unrelated, and changing it essentially introduces a new plugin and causes you to lose your install base. So we recommend not renaming the plugin here.

I've undone the name change in the pluginhub; Will there be any conflicts if I change the repository url in the elysiumevents-plugin?

That's fine


groups: editing channel options permanently displays options button

Describe the bug, optionally with screenshots
The button to edit channel options only appears on a channel when you hover over it. However, if you click the button and edit the channel options, once you exit, the button is now permanently displayed. This can affect multiple channels at one time.
Screenshot
To Reproduce
Steps to reproduce the behavior:

Go to any group that you admin
Go to the "member & group info" page
Go to channels
Hover over a channel to bring up the options on the right-hand side
Click the options
Click "edit channel"
Click cancel in the new pop-up
See error

Expected behavior
No options buttons should be displayed on the right-hand side, since after clicking cancel the mouse cursor is not covering any channels.
Additional context:

Ship type = planet
Instance type = self-hosted
Chormium-based browser on Pop!_OS 20.10

We're renovating the channel admin screen shortly anyway, keeping this around so we're aware in the redesign.

Still a think @ashelkovnykov ?

@jamesacklin Currently traveling, will let you know shortly

@jamesacklin No, the interface has changed to make this no longer relevant


i2cssh fails on mojave when trying to ssh more than 2 ip

Below is the error message

Traceback (most recent call last):
13: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/bin/ruby_executable_hooks:24:in <main>' 	12: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/bin/ruby_executable_hooks:24:in eval'
11: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/bin/i2cssh:23:in <main>' 	10: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/bin/i2cssh:23:in load'
9: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/bin/i2cssh:298:in <top (required)>' 	 8: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/bin/i2cssh:298:in new'
7: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/lib/i2cssh.rb:26:in initialize' 	 6: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/lib/i2cssh.rb:101:in split_session'
5: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/lib/i2cssh.rb:101:in upto' 	 4: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/lib/i2cssh.rb:102:in block in split_session'
3: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/lib/i2cssh.rb:102:in upto' 	 2: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/i2cssh-2.2.0/lib/i2cssh.rb:103:in block (2 levels) in split_session'
1: from /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/rb-scpt-1.0.3/lib/rb-scpt.rb:642:in method_missing' /Users/ashhar.jawaid/.rvm/gems/ruby-2.5.1/gems/rb-scpt-1.0.3/lib/rb-scpt.rb:542:in _send_command': CommandError (Appscript::CommandError)
OSERROR: -1743
COMMAND: app("/System/Library/CoreServices/System Events.app").processes["iTerm2"].menu_bars[1].menu_bar_items["Window"].menus["Window"].menu_items["Select Split Pane"].menus["Select Split Pane"].menu_items["Select Pane Left"].click()

👍 +1

I'd had problems using "-m" options too. I've fixed that with #78 . I'm using Mojave right now without problems.

I just moved to a python version. This should solve a bunch of issues. Please check it out.


ingress-nginx: Upgrade to 0.20.0

Upstream Changes:

ingress-nginx 0.20.0 (https://github.com/kubernetes/ingress-nginx/releases/tag/nginx-0.20.0)

Our Changes:

Sync templates with upstream changes

/lgtm
/approve


Minimum Craft version should be 3.5 (or tweak controller)

Describe the bug
The "Components" controller is referencing $this->response here:
https://github.com/putyourlightson/craft-sprig/blob/5a551531518a1aac52413ffd2b5f721815e04f90/src/controllers/ComponentsController.php#L62-L65
The response property is not accessible until Yii 2.0.36, which is only available in Craft 3.5
Versions

Plugin version: 1.3.1
Craft version: 3.4.30

Good catch! Fixed in https://github.com/putyourlightson/craft-sprig/commit/92625cd29ab3eef80d47be5b21ecd3c74e7e36f7 and released in 1.3.2.

Good catch! Fixed in https://github.com/putyourlightson/craft-sprig/commit/92625cd29ab3eef80d47be5b21ecd3c74e7e36f7 and released in 1.3.2.


187-dev-py4jps-1027: released py4jps 1.0.26 to both PyPI and TestPyPI.

The force-push was to correct a typo regarding the version number in the last commit message.


Siamese RNN - target values and model configuration

Hi Nick,
get_bach function in 06_siamese_similarity_driver.ipynb generates data with targets -1 or 1, however  the loss function in siamese_similarity_model.py seems to be configured to work with targets 0 or 1:
#If y-target is -1 to 1, then do the following
#pos_mult = tf.add(tf.multiply(0.5, y_target), 0.5)
#Else if y-target is 0 to 1, then do the following
pos_mult = tf.cast(y_target, tf.float32)
This part of code also remains commented:
#Change targets from (0,1) --> (-1, 1)
#via (2 * x - 1)
#y_target_int = tf.sub(tf.mul(y_target_int, 2), 1)
I wonder if I should change the loss function if I want to run this model on my data with target -1/1. Best regards!

Hi @MikolajSedek ,  Thanks for noticing this.  I missed this because the model trains fairly well just by learning on the positive examples.  The code has been updated.  Please repull and check if you want.  Sorry about the late reply, I only get a chance to work on this project about once a month.  I'm going to close this issue and please reopen if it isn't fixed on your end.


Normal mode o/O insert at top level

Currently, VimTodoListsCreateNewItemAbove and VimTodoListsCreateNewItemBelow always create items at an indented level.
This remedies that by making sure any list item created via these commands in normal mode are created as top-level items.
<CR> continues to create child-level items as that felt most natural to me in my use of this plugin.
This also addresses #15

Could this PR be merged? I'm eagerly waiting for it :)

Just checking in again if this can get merged.  Thanks!

@jakemason I've been using your branch now.  I have one piece of feedback - pressing 'enter' always creates a new item 2 spaces from from the left.  I'd suggest making pressing enter (in insert mode) work the same as pressing 'o' in normal mode (VimTodoListsCreateNewItemBelow).  Also, pressing enter when in "normal editing mode" should perhaps behave normally and not insert a new item.
Would you agree with this suggestion, and if so, would you add that to this PR?
Thanks for your work on this!

Just checking in again if this can get merged. Thanks!

I had no time to check it before, but I am going to do it asap.

@jakemason, as far as I can see in proposed change after I start new line the child item is added.
In my opinion after I start new line the next task should be added on the same level as before.
Probably, TAB and SHIFT+TAB (as e.g. in MSVS) should be remapped to move items between indentation levels.


Feature/email styling resend email conf

Description

Added resend email confirmation link for users
Added inline styling to emails being sent

Type of change
Please delete options that are not relevant.

[ ] New feature (non-breaking change which adds functionality)

Change Status

[ ] Complete, but not tested (may need new tests)

How Has This Been Tested?

[ ] Test A

These conflicts are super straight forward finally. I just added all that new html/inline styling to the emails!

I resolved the conflicts and merged my own work to quickly allow for testing without having to verify every email registered.


Upgrade to Poetry 1.8.4

Upgrade to Poetry 1.8.4
AI Description

This PR updates the poetry version from 1.6.1 to 1.8.4 in the following Dockerfiles:

aws_copilot_deploy/aws-api.Dockerfile
azure_compose_deploy/azure-api.Dockerfile
gcp.backend.Dockerfile
src/backend/Dockerfile
src/backend/debug.Dockerfile

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.11%. Comparing base (f6befe6) to head (780eb8c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #874   +/-   ##
=======================================
  Coverage   78.11%   78.11%
=======================================
  Files         259      259
  Lines       11114    11114
=======================================
  Hits         8682     8682
  Misses       2432     2432

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Godot v4.4-dev crashes on startup

Tested versions
Reproducible in v4.4-dev1 - v4.4-dev5
Works fine for any version prior
System information
Ubuntu 22.04.5 LTS 22.04 - X11 - Vulkan (Forward+) - dedicated AMD Radeon RX 6700 XT (RADV NAVI22) - AMD Ryzen 9 7950X 16-Core Processor (32 Threads)
Issue description
When trying to launch the Godot application on Linux, it crashes before it can even load the project manager.
Here is the information printed in the terminal when running the project with the debug flag:
WorkerThreadPool: 32 threads, 9 max low-priority.
Godot Engine v4.4.dev5.official.9e6098432 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
JoypadLinux: udev enabled and loaded successfully.
/lib/x86_64-linux-gnu/libX11.so.6: undefined symbol: XFreeThreads
Xshape 1.1 detected.
Xinerama 1.1 detected.
Xrandr 1.6 detected.
Xrender 0.11 detected.
Xinput 2.2 detected.
XInput: Refreshing devices.
XInput: No touch devices found.
Detecting GPUs, set DRI_PRIME in the environment to override GPU detection logic.
Only one GPU found, using default.
ScreenSaver: DBus 1.12.20 detected.
FreeDesktopScreenSaver: Acquired screensaver inhibition cookie: 17882
PortalDesktop: DBus 1.12.20 detected.
Using "default" pen tablet driver...
Shader 'CanvasSdfShaderGLES3' SHA256: d518c17f340b1e883671854949cead397ea9fc5850d7872b6b20e26c3d907de5
Shader 'SkeletonShaderGLES3' SHA256: 5380c4310c07d8eef12ffd385d47dd959a1eb0fc6f311beb760e3e94e6148c15
Shader 'ParticlesShaderGLES3' SHA256: 9755542d0a556b95174fcd04ea6d1f6e4e4c98898e529da4c7d4b8d2e5271dc0
Shader 'ParticlesCopyShaderGLES3' SHA256: e633c8477480c31fd09e6b6f690fe204aa7fccaeb83102ff68d597ab004cec36
Shader 'CopyShaderGLES3' SHA256: 7a5b8022233051fd832239e3e94ad556c3a74ece97ac31cc3dd9c9a03d3ab56d
Shader 'CubemapFilterShaderGLES3' SHA256: e0d7c124ebcf653d7336e4230829fc1bf16a86a0c34daafd89bd346469f77522
Shader 'GlowShaderGLES3' SHA256: eac3b6b0cbff3da2483dd50d9ffe957a1f7c647f8b4ffd7db9441dbcbbf50448
Shader 'PostShaderGLES3' SHA256: 04af0d53a49df9a29d9b2c444aac8a9fdece4cf8221faf2862d00791334a4fd9
Shader 'FeedShaderGLES3' SHA256: 44d70d119b848ad59201bbbcd7bd4d6ebf7b93edc160bc2e65bb1676d6ee6322
Shader 'CanvasShaderGLES3' SHA256: 51e04b8380256135a744daf58f997048725bd36d8a890f9a2eb4fab31e25109b
Shader 'CanvasOcclusionShaderGLES3' SHA256: dd09fd0c42a427ba25a86844f4e33bd8968fa8e7a80f3c8c0b9accaf4782cb2e
Shader 'SceneShaderGLES3' SHA256: 0311ab5e92c02b14470fe00800672357814fc282e76c71ebcd944b5d2a95332d
Shader 'SkyShaderGLES3' SHA256: 891ab6119a340af61e5d7127d92ca7d12a2cf4e479658ff9aca53c8bb47348df
OpenGL API 4.6 (Core Profile) Mesa 22.3.0-devel - Compatibility - Using Device: AMD - AMD Radeon RX 6700 XT (navi22, LLVM 15.0.3, DRM 3.49, 5.15.0-126-generic)

TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH:<PHONE_NUMBER>
EDITOR API HASH: 804865399
Loading resource: /home/ncs/.config/godot/editor_settings-4.3.tres
EditorSettings: Load OK!
EditorTheme: Generating new theme for the config '66886095'.
EditorTheme: Generating new icons.
EditorTheme: Generating new fonts.
EditorTheme: Generating new styles.
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Aborted (core dumped)

Steps to reproduce
Launch the application.
Minimal reproduction project (MRP)

Try running with the verbose flag instead of the debug flag.

/lib/x86_64-linux-gnu/libX11.so.6: undefined symbol: XFreeThreads

This seems weird, though it may not be related to the crash. Do you have this in the logs also with 4.3.stable and previous 4.4.dev snapshots?
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Aborted (core dumped)

So this is the main error. An internal LLVM error like this typically means a driver bug, in your case a Mesa issue.
I see you have Mesa 22.3.0-devel:
OpenGL API 4.6 (Core Profile) Mesa 22.3.0-devel - Compatibility - Using Device: AMD - AMD Radeon RX 6700 XT (navi22, LLVM 15.0.3, DRM 3.49, 5.15.0-126-generic)

Did you install this manually from a PPA or compile from source? A devel version of Mesa would likely not be shipped by Ubuntu in its LTS version.
In fact, Ubuntu 22.04 seems to have a much newer Mesa version, you might just need to update?
https://launchpad.net/ubuntu/+source/mesa/23.2.1-1ubuntu3.1~22.04.2

I would suggest to try Godot 4.4-dev5 on the latest Ubuntu LTS 22.04 LiveCD, if possible. If it crashes, it would underline something with your machine. If it doesn't crash, it would point towards a driver issue.

@knucklesncs These packages with amdgpu in the name and version 1:<IP_ADDRESS>401 don't seem to be provided by Ubuntu. I suspect they're an old installation of the confusingly named AMDGPU (PRO) proprietary driver from AMD (presumably from https://www.amd.com/en/support/download/linux-drivers.html), which is now quite old and out of date compared to the rest of your Mesa (open source drivers) setup.
On Linux, there's not much reason to use the proprietary AMDGPU PRO driver as the open source driver which is part of the kernel + mesa (also named AMDGPU) is full-featured and maintained by AMD engineers. So I would suggest removing the packages with version 1:<IP_ADDRESS>401, doing a round of normal apt-get update, and you might end up with a much better driver situation.

I just tested Godot_v4.4-dev6_linux.x86_64 and I got the libX11.so.6: undefined symbol: XFreeThreads, however the editor is starting up.

I just tested Godot_v4.4-dev6_linux.x86_64 and I got the libX11.so.6: undefined symbol: XFreeThreads, however the editor is starting up.

Thanks for testing. Yeah the "undefined symbol: XFreeThreads" error is not what's causing the crash here for @knucklesncs - it's very likely caused by their mismatch between recent-ish Mesa and outdated AMDGPU PRO drivers.
The XFreeThreads warning is probably harmless and was likely caused by #98976 in 4.4-dev5 and later.

I'll close this as debugging so far points at a user system configuration issue, not a Godot bug.


WebSocket connection fails with Error 400

The newest openhabian release causes Frontail 4.9.1 to not being able to display any logs. On web console the fault message can be seen:
index.js:83 WebSocket connection to 'ws://<IP_ADDRESS>:9001/socket.io/?EIO=3&transport=websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
As a workaround, editing web/index.html  and changing transports: ['websocket'] to transports: ['polling'] makes it workable again or alternatively, downgrading to 4.9.0.
Any idea what the real cause could be for this error message?

Hi @mthenw,
with Socket.IO 2.4 the default CORS behavior changed, which breaks functionality for RogerG007's and openhabians's (a tailored raspberry distro for running openhab) use-case.
IMHO pinning the Socket.IO version to 2.3 or adding the CORS change should resolve this issue.
https://github.com/socketio/socket.io/issues/3740
https://socket.io/blog/socket-io-2-4-0/

Hi @mthenw,
with Socket.IO 2.4 the default CORS behavior changed, which breaks functionality for RogerG007's and openhabians's (a tailored raspberry distro for running openhab) use-case.
IMHO pinning the Socket.IO version to 2.3 or adding the CORS change should resolve this issue.
https://github.com/socketio/socket.io/issues/3740
https://socket.io/blog/socket-io-2-4-0/

@bwiessneth do you mind creating a PR?

@bwiessneth do you mind creating a PR?

I was about to start on this when I saw that this (breaking) change was reverted with socket.io 2.4.1 (https://github.com/socketio/socket.io/releases/tag/2.4.1).
As long as the socket.io version string in pacakage.json stays like it is now, there should be no future issue with CORS / socket.io

I was about to start on this when I saw that this (breaking) change was reverted with socket.io 2.4.1 (https://github.com/socketio/socket.io/releases/tag/2.4.1).
As long as the socket.io version string in pacakage.json stays like it is now, there should be no future issue with CORS / socket.io

My setup broke today and I guess my issue is related to this one. I was bravely using the latest tag of the docker image (which was rebuild yesterday). Afaik the only change was this: https://github.com/mthenw/frontail/commit/38022f7a0a6410cf67c9824053cbcb06d11c253e.
I am now using the 4.9.1 tag instead of latest and my setup is working again.

Should be fixed in 4.9.2.


Fix to slow perf of PipeBlob uploads

Assigned the pipingUploadParallelism to the user defined environment variable AZCOPY_CONCURRENCY_VALUE if present. If not, fell back on the default concurrency value and errored out for AUTO and non-integer values.

LGTM. Please resolve the conflicts.


intellisence is very slow and module suggest not work

https://user-images.githubusercontent.com/41773861/212554593-fe03a8e4-a723-416a-a4bb-5126a3ddef11.mov

I will reopen if I can reproduce.


Remove revert to live feature

Summary
Remove revert to live from toolbar
Remove tests for this feature
Remove revert_to_live method on Page model
Documentation checklist

[ ] I have updated CHANGELOG.txt if appropriate
[ ] I have updated the release notes document if appropriate, with:

[ ] general notes
[ ] bug-fixes
[ ] improvements/new features
[ ] backwards-incompatible changes
[ ] required upgrade steps
[ ] names of contributors

[ ] I have updated other documentation
[ ] I have added my name to the AUTHORS file
[ ] This PR's documentation has been approved by Daniele Procida

Coverage remained the same at 78.189% when pulling 61b0413d1aefd24833233e49110c87321d0e6fed on Aiky30:remove-revert-to-live-feature into 9905ca6ec986942f3acc692d10deabbc0ca5768d on divio:release/4.0.x.


The format option uses the wrong file extension

If you use the --format 'jpg' option, even though it correctly outputs a JPEG file, the file extension is still .png. This is confusing.
Example:
$ pageres google.com --format 'jpg'
✔ Generated 1 screenshot from 1 url and 1 resolution

$ file google.com-1366x768.png
google.com-1366x768.png: JPEG image data, JFIF standard 1.01

Thanks! :+1:


Wind Tunnel Scenario: Time to receive required validation receipts

This is a placeholder split off from https://github.com/orgs/holochain/projects/11/views/6?pane=issue&itemId=60876433

Depends on https://github.com/holochain/holochain/issues/4021


Use logical 'or' instead of bitwise in IsConnectionReset method.

Now in method IsConnectionReset used:
return errno == ECONNRESET || errno == EPIPE || errno == ENOTCONN | errno == EINVAL;
I think need use logical 'or' for the last comparison too like this:
return errno == ECONNRESET || errno == EPIPE || errno == ENOTCONN || errno == EINVAL;

OOPS 😄

@dotnet-bot test OSX 10.12 Debug Build

@flash2048 can you add a simple unit test that checks for those error codes?

@davidfowl It will difficult because the value for static variables gets with RuntimeInformation.IsOSPlatform. And other tests for IsConnectionReset method do not contain in the project.

Hmm, looks like this was added in 2.2.0-preview1.

Thanks @flash2048


No links in search results

When searching for a track, the results are displayed but there is no link to the track

I don't know how that happened, but I've fixed that in 0.24.0.


Publish initial DAO org chart

To help onboard new members and orient them on who can help with what we want to setup a public org chart.
Effort spearheaded by EliteViking#9040

Responses tracked here https://docs.google.com/forms/d/e/1FAIpQLSdoFnY0MmKsVj3WXdprEPrttbK3Hnb_ugNBaPPr2ViyZ-7R7Q/viewform


Add IDs to procedure examples table

As a user of the ATT&CK website, I want to be able to see ATT&CK IDs when I'm browsing the procedure examples tables:

Note: the ID should not be added just as a column, because some users may interpret this as the ID of the procedure and not of the attached object. One possible solution would be to have it as a tooltip on the object name, although it would probably be better to have it visible without the user needing to mouse-over.
See also #235.

I thinking adding the ID column is not a bad idea, it looks like that all around the website, I doubt users will think that it is the ID of the procedure since it will have a Group of Software ID structure.

Similar to the Techniques Used table

We should also add IDs to the software and groups pages (https://attack.mitre.org/software/, https://attack.mitre.org/groups/) to have IDs on all of our tables.

Yeah seeing this in practice it looks fine to have IDs in their own column.


Translate tasks/debug-application-cluster/debug-init-containers/ into Korean

This is a Feature Request

What would you like to be added

Translate tasks/debug-application-cluster/debug-init-containers/ into Korean.
Why is this needed
There is no documents with tasks/debug-application-cluster/debug-init-containers/ into Korean .
Comments

https://kubernetes.io/docs/tasks/debug-application-cluster/debug-init-containers/

/language ko
/assign


Uncaught TypeError: Cannot read property 'modules' of undefined

hi, when i use this package, it happen this error
bindings.js?dfc1:29 Uncaught TypeError: Cannot read property 'modules' of undefined
at Object.eval (bindings.js?dfc1:29)
at eval (bindings.js:223)
at Object../node_modules/bindings/bindings.js (chunk-vendors.js:34)
at webpack_require (app.js:854)
at fn (app.js:151)
at eval (index.js?89e9:1)
at Object../node_modules/node-mac-displays/index.js (chunk-vendors.js:184)
at webpack_require (app.js:854)
at fn (app.js:151)
at eval (main.js?2e53:1)

@OceanBelongsToMe could you please provide a reproducible sample?


feat: font reskin to Doorway fonts

Updates Bloom font defaults to Doorway ones and changes the global css and imports to our fork's CSS files.
This is better than the implementation in #67 because we are no longer importing fonts that we won't actually use.
https://user-images.githubusercontent.com/10789523/236268302-4b168e5b-35a4-4f5e-a8b2-a0abd9328595.mov

closing because it got messed up w the squash merge :( will incorporate into another CL


alternative auth

basic auth in most browsers is really annoying because it saves the auth credentials based on the subdomain. meaning that when i connect to server A with credentials A, all is good... but then when i go to connect to server B it automatically tries to pass credentials A and doesn't prompt me again. Worse yet, if someone clicks cancel on basic auth prompt, it keeps passing NO credentials and webssh2 will just see a connection attempt without session.username/password.
Any ideas on how I could maybe replace basic auth with a forms based overlay perhaps?

maybe like a modal overlay would suffice?

Good call. I've been considering this use case. Right now the main entry point for this app (for my use case) is a system which does SSO, so the browser isn't part of basic auth. I'd definitely accept a pull request on this feature, otherwise I'll put it on the feature request list and will get to it eventually.

@zenion, thoughts on these ideas:
4 methods of authentication:
1 - Modal/Prompt
2 - POST vars
3 - GET vars (horrible idea)
4 - HTTP Basic (current)
Add a variable to WebSSH2/config.json to indicate which authentication method is in use.

@billchurch I had a problem about authentication. I want to automatically login to a server so I put the username and password in the config.json. However, I still got prompt to ask me to enter username and password.


Poggit

Can you please add this plugin to Poggit?

When this plugin is in a ready enough condition, I will add it to Poggit, for now, I will hold off.

Added a poggit link: https://poggit.pmmp.io/ci/Wumpotamus/UHC/UHC


FirebaseDatabase plugin gets ints as ints, loads them from persistence as double on iOS

Steps to Reproduce

Use FirebaseDatabase in a project, 0.0.7 is the version I'm using
call setPersistenceEnabled(true)
Get some node data with an int in it, parse the value out and assign it to an int, doesn't throw error.
Put on the networklinkconditioner to drop 100%, since airplane mode will crash the app
The data that is loaded and persisted will be loaded as a double, when it's an int, and will throw an exception

Flutter Doctor
[✓] Flutter (on Mac OS X 10.12.4 16E195, locale en-US, channel master)
• Flutter at /Users/KG/Developer/Flutter/flutter
• Framework revision<PHONE_NUMBER> (2 days ago), 2017-06-16 10:05:18 -0700
• Engine revision 784e975672
• Tools Dart version 1.24.0-dev.6.7
[✓] Android toolchain - develop for Android devices (Android SDK 26.0.0)
• Android SDK at /Users/KG/Library/Android/sdk
• Platform android-26, build-tools 26.0.0
• ANDROID_HOME = /Users/KG/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
[✓] iOS toolchain - develop for iOS devices (Xcode 8.3.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 8.3.3, Build version 8E3004b
• ios-deploy 1.9.1
• CocoaPods version 1.2.1
[✓] Android Studio (version 2.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Gradle version 3.2
• Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
[✓] IntelliJ IDEA Community Edition (version 2017.1.4)
• Flutter plugin version 14.0
• Dart plugin version 171.4694.29

I am able to reproduce the automatic conversion of ints to doubles on iOS. It does require calling keepSynced on a Query but doesn't seem to require putting the device into airplane mode.

I spent some time today investigating this and it does seem to be a interesting behavior coming from the iOS Firebase persistence database.
Minimal code to reproduce in Objective-C
#import "AppDelegate.h"
@import Firebase;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [FIRApp configure];
  [[FIRDatabase database] setPersistenceEnabled:YES];
  FIRDatabaseReference *ref = [[FIRDatabase database].reference child:@"counter"];
  [ref keepSynced:YES];
  [ref observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
    NSLog(@"Type of %@ is %d", snapshot.value, (int)CFNumberGetType((CFNumberRef)snapshot.value));
  }];
  [ref setValue:[NSNumber numberWithInt:42]];
  return YES;
}
@end

The first time this code runs, the snapshot is an integer NSNumber. The second time, it's an NSDecimalNumber with a CFNumberType of kCFNumberDoubleType. Presumably this is because the persistent store is serializing numbers differently from the cloud Firebase. They probably never noticed because if you call snapshot.value.intValue you'll get the right answer, but in our case we don't know whether the client code is expecting an int or a double, so we return a double.
I can think of a few possible resolutions:

Require Flutter developers to explicitly handle this case.
Get Firebase to not give us a kCFNumberDoubleType
Before we send the results of a query back to Dart-land, detect any NSDecimalNumbers that happen to be integers and convert them to integers.

The last option introduces some performance overhead but is probably the most realistic.

FYI @kroikie (just in case you're curious).

cc @mravn-google

cc @matanlurey
The two key questions for me are:

Will Dart 2.0 support coercion of ints to doubles, e.g. 1 + 1.0 == 2.0? If so then we should probably continue using ints and doubles.
Will the Firebase team eventually fix firebase/firebase-ios-sdk#91? If it's WONTFIX or will take a long time, we should implement a workaround on iOS that converts all round doubles to ints.

I am checking with @floitschG on the first question
I haven't gotten a response yet on firebase/firebase-ios-sdk#91 about a timeline for a fix. After talking to @lukef about this I think we're going to go ahead and just convert round doubles to ints on the native side. We can remove that workaround if it's fixed in a new Firebase release.

@KevinTheGray
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/992. Any further collaboration will be done there.


Canceling deployment with CTRL+C, task still locked.

Q
A

Issue Type
Bug / Question

Deployer Version
v6.0.3

Local Machine OS
Ubuntu VM

Remote Machine OS
N/A

Description
I canceled deployment with CTRL+C, and now I can't unlock said deployment. When I run deploy:unlock, I get message suggesting that deploy.lock file has been deleted. But when I try and run deployment again, still get message about concurrent deployment.
So I can't get that canceled deployment run again.
When I run deploy:unlock with -vvv I can see that Deployer is trying to delete lock file, but when I go to check deployment path, I can't see lock file anywhere. I searched my whole target server and my VM, and no deploy.lock file anywhere to be found.
Cheers,
Janne

dep unlock host/stage ?

Yeah, got this working.


Make dedicated Swift 3 development branch

The swift 3.0 branch is up and running, we still need to merge with our current code base.

@ksheikMav I'm having issues getting the Swift 3 Branch to compile. I made sure to re-run pod install. Any ideas?


Prioritize forks

Say we have requirements a >= 1 ; sys_platform == 'linux' and a < 2 ; sys_platform == 'darwin'. There's two possible solutions: a==1 and a==2, and only a==1 for both forks.
Currently, it's order dependent:
dependencies = [
  'a<2; sys_platform == "darwin"',
  'a>=1; sys_platform == "linux"',
]

resolves 3 packages (a==1 and a==2),
dependencies = [
  'a>=1; sys_platform == "linux"',
  'a<2; sys_platform == "darwin"',
]

resolves 2 packages (only a==1).
When we resolve for latest versions (the default), we should process the fork a<2 first, since it will resolve to a lower version that the other fork accepts, while a >= 1 resolves to a preference (a==2) that a<2 rejects. When we resolve for lowest versions, it's the inverse. While either way is correct, only a==1 will give us a better (smaller) solution that is consistent between forks.
The same goes for requires-python: A fork with python_version >= "3.10"  needs to run before python_version >= "3.12" , since the former allows less version than the latter; here it's independent of the version order.
We need to figure out the exact rules for prioritization considering highest vs. lowest versions, requires-python, lower vs. upper bounds and handling splitting over multiple packages.

Agree with this. I actually think that (if done right) this would've prevented the problematic resolution in https://github.com/astral-sh/uv/issues/4885. (I don't know if it would solve that problem in general though.)


Support for byNWR

Checklist

[X ] I'm reporting a new site support request
[X ] I've verified that I'm running youtube-dl version 2020.07.28
[X ] I've checked that all provided URLs are alive and playable in a browser
[ X] I've checked that none of provided URLs violate any copyrights
[ X] I've searched the bugtracker for similar site support requests including closed ones

Example URLs

Single video: https://www.bynwr.com/articles/if-footmen-tire-you-what-will-horses-do
Single video: https://www.bynwr.com/articles/the-burning-hell

Description

Accounts are free to create. Some movies are viewable without an account.

The first example works if I do
youtube-dl --referer https://www.bynwr.com/articles/if-footmen-tire-you-what-will-horses-do https://player.vimeo.com/video/267159565


Codeforces profile scrapper

A Simple Python Script to Scrap the details of a codeforces user and then display the details in a tkinter gui.

You have by mistake included the previous program as well in this PR , that

closing this PR and adding new clean PR


Contribute Cloudstack Project

Hi, I'm new to the CloudStack project and would like to contribute. How can I join the Slack community? I don't have an @apache.org email address. Also, how do I join the mailing list?

Hello, @lohitslohit
Thanks for willing to contribute.
Most interactions occurs in the mailing list, PRs, issues, and discussions. For joining the Apache CloudStack mailing lists, you can take a look at this link: https://cloudstack.apache.org/mailing-lists/. For the official ASF Slack channels, you would need an @apache.org email or someone from inside to invite you.

Sure Thanks for your update


Add immutable examples to README

Currently getting perpetually failing tests - would love to see examples of dealing with a reducer test that utilizes List for before and after state.

@apercu might know!

Sure, I just crafted and successfully tested this simple one given a reducer handler that only push the payload inside it's initial empty List.
import reducer from 'reducers/cats'

const cat = Map({ name: 'lili' })

test('should add a cat in the house', reducerTest(
  reducer,
  List(),
  { type: 'ADD_CAT', payload: cat },
  fromJS([cat])
))

Maybe I can add it to the readme if this is enough for you? Or is this something a bit more touchy?

If it works for @joeyfigaro then we can add it to the readme. Just make a PR and I'll make nitpicks till it's fine :D

Thanks for chiming in @Apercu - I'm doing something wrong somewhere.
Error output
 3 passed [10:46:57]
   1 failed

   1. reducers › notifications › [REDUCER][Notifications] should dismiss individual notifications
   false === true
      Test.t [as fn] (/Users/xxx/xxx/xxx/node_modules/redux-ava/lib/reducerTest.js:12:18)
    _combinedTickCallback (internal/process/next_tick.js:67:7)
    process._tickCallback (internal/process/next_tick.js:98:9)

test/reducers/notifications.js
import test from 'ava';
import { reducerTest } from 'redux-ava';
import { generateUUID } from '../../src/app/utils/UUID';
import { List, Map, fromJS } from 'immutable';

import notificationsReducer from '../../src/app/reducers/notifications';
import {
	resetNotifications,
	dismissNotification,
	addNotification
} from '../../src/app/actions/notifications';

const dummyID = generateUUID();
const secondDummyID = generateUUID();

const testError = Map({
	message: 'Invalid parameters: Password',
	id: dummyID
});

const testErrorTwo = Map({
	message: 'Invalid parameters: Password',
	id: secondDummyID
});

test('[REDUCER][Notifications] should reset all notifications', reducerTest(
	notificationsReducer,
	fromJS([testError]),
	resetNotifications(),
	List()
));

test('[REDUCER][Notifications] should dismiss individual notifications', reducerTest(
	notificationsReducer,
	fromJS([testError, testErrorTwo]),
	dismissNotification(secondDummyID),
	fromJS([testError])
));

test('[REDUCER][Notifications] should add a notification', reducerTest(
	notificationsReducer,
	List(),
	addNotification(testError),
	fromJS([testError])
));

reducers/notifications.js
import { AUTH_LOGOUT, AUTH_FAILURE } from '../actions/auth';
import { DATA_FETCH_FAILURE } from '../actions/data';
import { List } from 'immutable';
import {
	NOTIFICATIONS_RESET_ALL,
	NOTIFICATIONS_DISMISS,
	NOTIFICATIONS_ADD
} from '../actions/notifications';

const initialState = List();

const notificationsReducer = (state = initialState, action) => {
	if (!action.error &&
		!action.type === NOTIFICATIONS_RESET_ALL ||
		action.supressErrorNotification) {
		return state;
	}

	switch (action.type) {
		case AUTH_LOGOUT:
		case NOTIFICATIONS_RESET_ALL:
			return List();
		case NOTIFICATIONS_DISMISS:
			return state.filter((item) => item.id !== action.payload.id);
		case NOTIFICATIONS_ADD:
		case DATA_FETCH_FAILURE:
		case AUTH_FAILURE:
			return state.push(action.payload);
		default:
			return state;
	}
};

export default notificationsReducer;

actions/notifications.js
import { generateUUID } from '../utils/UUID';
import { Map } from 'immutable';

export const NOTIFICATIONS_RESET_ALL = 'NOTIFICATIONS_RESET_ALL';
export const NOTIFICATIONS_ADD = 'NOTIFICATIONS_ADD';
export const NOTIFICATIONS_DISMISS = 'NOTIFICATIONS_DISMISS';

export const resetNotifications = () => ({
	type: NOTIFICATIONS_RESET_ALL
});

export const dismissNotification = (id) => {
	return {
		type: NOTIFICATIONS_DISMISS,
		payload: { id }
	};
};

export const addNotification = (notification) => {
	return {
		type: NOTIFICATIONS_ADD,
		payload: Map({
			...notification,
			id: generateUUID(),
			action: 'X'
		})
	};
};

Any ideas?

...I updated my reducer's NOTIFICATIONS_DISMISS to use return state.filter((item) => item.get('id') !== action.payload.id); but now the add notification test is failing:
4 passed [10:52:10]
   1 failed

   1. reducers › notifications › [REDUCER][Notifications] should add a notification
   false === true
      Test.t [as fn] (/Users/xxx/xxx/xxx/node_modules/redux-ava/lib/reducerTest.js:12:18)
    _combinedTickCallback (internal/process/next_tick.js:67:7)
    process._tickCallback (internal/process/next_tick.js:98:9)

@Apercu @sotojuan Ended up getting them to pass - turns out I was just using immutable improperly in a couple places. I'm going to leave my updated test file and reducer here for anyone searching in the future. Thanks for your help!
Fixed tests
import test from 'ava';
import { reducerTest } from 'redux-ava';
import { generateUUID } from '../../src/app/utils/UUID';
import { List, Map, fromJS } from 'immutable';

import notificationsReducer from '../../src/app/reducers/notifications';

const dummyID = generateUUID();
const secondDummyID = generateUUID();

const testError = {
	message: 'Invalid parameters: Password',
	id: dummyID
};

const testErrorTwo = {
	message: 'Invalid parameters: Password',
	id: secondDummyID
};

test('[REDUCER][Notifications] should reset all notifications', reducerTest(
	notificationsReducer,
	fromJS([testError]),
	{ type: 'NOTIFICATIONS_RESET_ALL' },
	List()
));

test('[REDUCER][Notifications] should dismiss individual notifications', reducerTest(
	notificationsReducer,
	fromJS([testError, testErrorTwo]),
	{ type: 'NOTIFICATIONS_DISMISS', payload: { id: secondDummyID } },
	fromJS([testError])
));

test('[REDUCER][Notifications] should add a notification', reducerTest(
	notificationsReducer,
	List(),
	{ type: 'NOTIFICATIONS_ADD', payload: Map(testError) },
	fromJS([testError])
));

Fixed reducer
import { AUTH_LOGOUT, AUTH_FAILURE } from '../actions/auth';
import { DATA_FETCH_FAILURE } from '../actions/data';
import { List } from 'immutable';
import {
	NOTIFICATIONS_RESET_ALL,
	NOTIFICATIONS_DISMISS,
	NOTIFICATIONS_ADD
} from '../actions/notifications';

const initialState = List();

const notificationsReducer = (state = initialState, action) => {
	if (!action.error &&
		!action.type === NOTIFICATIONS_RESET_ALL ||
		action.supressErrorNotification) {
		return state;
	}

	switch (action.type) {
		case AUTH_LOGOUT:
		case NOTIFICATIONS_RESET_ALL:
			return List();
		case NOTIFICATIONS_DISMISS:
			return state.filter((item) => item.get('id') !== action.payload.id);
		case NOTIFICATIONS_ADD:
		case DATA_FETCH_FAILURE:
		case AUTH_FAILURE:
			return state.push(action.payload);
		default:
			return state;
	}
};

export default notificationsReducer;

Glad you got it figured out!

Should I submit a PR with my example or do you want some tweaks? (if you prefer something other than cats I can do that 😸 )

Just do a PR and I'll see what needs to be fixed!


Tracing fix

I want to add a bit more testing. At least something fairly minimal like connecting the tests to a tracing_subscriber::fmt which outputs to something else than stdout and then check on that, and a simple "X threads enter and exit Y spans and assert that the current span is what they expect" test.
Opening a PR in order to get feedback and suggestions. Feel free to suggest alternative test ideas as well. Would be nice to do a programmatic check against Tokio / no runtime as well.
Fixing tracing
I think I have done it right this time. One known divergence from Tokio (listed below), might be more, but I think the general scheme should work. Also adds a fix for spans stacking on test panic inside a catch_unwind (read: proptest minimization).
Overview of the changes

New config option, record_steps_in_span.

The step{i=X, task=Y} span is now  step{task=Y} by default, and step{task=Y, i=X} if record_steps_in_span is true

Updating tracing span is no longer done in advance_to_next_task. It is instead done in step, by entering a Tasks span before continuing its continuation, and leaving the Span when we return from the continuation.
Added ResetSpanOnDrop which is constructed in run. This is to solve the issue of span stacking on panics inside a catch_unwind (read: proptest minimization). I found this way of solving it much cleaner than finding all the places we could exit a Shuttle test and making sure to clean up spans there.
A couple of traces which were previously emitted in whatever span was present (ie the span of a Task) are now emitted in (an extension of) Shuttle's span.

Some notes

I mentioned that I considered doing a "default to no span" approach, meaning that Shuttle would exit whatever span was present on test entry, store that, and then have an explicit enter/leave policy for all tracing, thus avoiding all accidental "span-bleed". I decided against this because ensuring that the correct span would be entered, for instance in thread_fn was cumbersome and thus verbose, and thus more error-prone than using whatever trace was present. This means there may be traces emitted where we would prefer to use a different span than the one we are using currently (as I have not looked into every single Event emission), these can be handled as we find them.
The in_scope in spawn_thread and Task::new() are matters of taste — I prefer for these to be emitted under Shuttle's span, but, they are reactions to actions taken by the function under test, so there is an argument for emitting them under whatever span is currently entered.

Known issues / discrepancies
Below are some tests which do the same thing using either Shuttle sync/future threads, std::sync threads and tokio::spawn threads. Shuttle sync/future and std::sync does the same thing, tokio::spawn does something different. I think the thing does currently is sane enough (arguably better than the mess you may get when running under Tokio — this is not how to combine futures and spans).
Tokio
async fn awaiting_is_relevant() {
    let lock = Arc::new(Mutex::new(0));
    let threads: Vec<_> = (0..3).map(|i| {
        let lock = lock.clone();
        tokio::spawn(async move {
            let outer = warn_span!("outer", tid=i);
            let _outer = outer.enter();

            let lock_clone = lock.clone();
            let t = tokio::spawn(async move
            {
                let mut locked = lock_clone.lock().unwrap();
                let inner = warn_span!("inner1", tid=i);
                let _inner = inner.enter();
                error!("incrementing from {}", *locked);
                *locked += 1;
            });

            t.await.unwrap();

            let _t = tokio::spawn(async move
            {
                let mut locked = lock.lock().unwrap();
                let inner = warn_span!("inner2", tid=i);
                let _inner = inner.enter();
                error!("incrementing from {}", *locked);
                *locked += 1;
            });

        })
    }).collect();

    for thread in threads {
        thread.await.unwrap();
    }
}

#[tokio::test]
async fn tokio_awaiting_is_relevant() {
    let _ = tracing_subscriber::fmt::try_init();
    awaiting_is_relevant().await;
}

Doing RUST_LOG=warn cargo test tokio_awaiting gives:
running 1 test
2023-11-27T16:33:30.579493Z ERROR outer{tid=0}:outer{tid=1}:outer{tid=2}:inner1{tid=0}: play: incrementing from 0
2023-11-27T16:33:30.579761Z ERROR outer{tid=0}:outer{tid=1}:outer{tid=2}:inner1{tid=1}: play: incrementing from 1
2023-11-27T16:33:30.579794Z ERROR outer{tid=0}:outer{tid=1}:outer{tid=2}:inner1{tid=2}: play: incrementing from 2
2023-11-27T16:33:30.579850Z ERROR inner2{tid=0}: play: incrementing from 3
2023-11-27T16:33:30.579869Z ERROR inner2{tid=1}: play: incrementing from 4
2023-11-27T16:33:30.579885Z ERROR inner2{tid=2}: play: incrementing from 5
test tokio_awaiting_is_relevant ... ok

As we can see, doing t.await.unwrap(); for the first t makes it execute under the parent spans, and not doing it for the second t makes those have no parent.
Shuttle future::spawn
async fn shuttle_awaiting_is_irrelevant() {
    let lock = Arc::new(Mutex::new(0));
    let threads: Vec<_> = (0..3)
        .map(|i| {
            let lock = lock.clone();
            shuttle::future::spawn(async move {
                let outer = warn_span!("outer", tid = i);
                let _outer = outer.enter();

                let lock_clone = lock.clone();
                let t = shuttle::future::spawn(async move {
                    let mut locked = lock_clone.lock().unwrap();
                    let inner = warn_span!("inner1", tid = i);
                    let _inner = inner.enter();
                    error!("incrementing from {}", *locked);
                    *locked += 1;
                });

                t.await.unwrap();

                let _t = shuttle::future::spawn(async move {
                    let mut locked = lock.lock().unwrap();
                    let inner = warn_span!("inner2", tid = i);
                    let _inner = inner.enter();
                    error!("incrementing from {}", *locked);
                    *locked += 1;
                });
            })
        })
        .collect();

    for thread in threads {
        thread.await.unwrap();
    }
}

#[test]
fn shuttle_test_awaiting_is_irrelevant() {
    let _ = tracing_subscriber::fmt::try_init();
    shuttle::check_random(
        move || {
            shuttle::future::block_on(async {
                shuttle_awaiting_is_irrelevant().await;
            })
        },
        1,
    );
}

Doing RUST_LOG=warn cargo test shuttle_test_awaiting gives:
running 1 test
2023-11-27T16:45:55.192800Z ERROR inner1{tid=0}: r#mod::basic::tracing: incrementing from 0
2023-11-27T16:45:55.194048Z ERROR inner1{tid=1}: r#mod::basic::tracing: incrementing from 1
2023-11-27T16:45:55.199122Z ERROR inner2{tid=0}: r#mod::basic::tracing: incrementing from 2
2023-11-27T16:45:55.200569Z ERROR inner2{tid=1}: r#mod::basic::tracing: incrementing from 3
2023-11-27T16:45:55.200632Z ERROR inner1{tid=2}: r#mod::basic::tracing: incrementing from 4
2023-11-27T16:45:55.200699Z ERROR inner2{tid=2}: r#mod::basic::tracing: incrementing from 5
test basic::tracing::shuttle_test_awaiting_is_irrelevant ... ok

As we can see, this differs from what we saw when running under Tokio.
No runtime std::thread::spawn
#[test]
fn std_thread_joining_is_irrelevant() {
    let _ = tracing_subscriber::fmt::try_init();
    let lock = Arc::new(std::sync::Mutex::new(0));
    let threads: Vec<_> = (0..3)
        .map(|i| {
            let lock = lock.clone();
            std::thread::spawn(move || {
                let outer = warn_span!("outer", tid = i);
                let _outer = outer.enter();

                let lock_clone = lock.clone();
                let t = std::thread::spawn(move || {
                    let mut locked = lock_clone.lock().unwrap();
                    let inner = warn_span!("inner1", tid = i);
                    let _inner = inner.enter();
                    error!("incrementing from {}", *locked);
                    *locked += 1;
                });

                t.join().unwrap();

                let _t = std::thread::spawn(move || {
                    let mut locked = lock.lock().unwrap();
                    let inner = warn_span!("inner2", tid = i);
                    let _inner = inner.enter();
                    error!("incrementing from {}", *locked);
                    *locked += 1;
                });
            })
        })
        .collect();

    for thread in threads {
        thread.join().unwrap();
    }
}

Doing RUST_LOG=warn cargo test std_thread -- --nocapture gives:
running 1 test
2023-11-27T17:38:49.695078Z ERROR inner1{tid=0}: r#mod::basic::tracing: incrementing from 0
2023-11-27T17:38:49.695650Z ERROR inner1{tid=1}: r#mod::basic::tracing: incrementing from 1
2023-11-27T17:38:49.696859Z ERROR inner1{tid=2}: r#mod::basic::tracing: incrementing from 2
2023-11-27T17:38:49.697743Z ERROR inner2{tid=0}: r#mod::basic::tracing: incrementing from 3
test basic::tracing::std_thread_joining_is_irrelevant ... ok
2023-11-27T17:38:49.697917Z ERROR inner2{tid=1}: r#mod::basic::tracing: incrementing from 4

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured;

As we can see, the same as above.
Shuttle thread::spawn
fn shuttle_joining_is_irrelevant() {
    let lock = Arc::new(Mutex::new(0));
    let threads: Vec<_> = (0..3)
        .map(|i| {
            let lock = lock.clone();
            thread::spawn(move || {
                let outer = warn_span!("outer", tid = i);
                let _outer = outer.enter();

                let lock_clone = lock.clone();
                let t = thread::spawn(move || {
                    let mut locked = lock_clone.lock().unwrap();
                    let inner = warn_span!("inner1", tid = i);
                    let _inner = inner.enter();
                    error!("incrementing from {}", *locked);
                    *locked += 1;
                });

                t.join().unwrap();

                let _t = thread::spawn(move || {
                    let mut locked = lock.lock().unwrap();
                    let inner = warn_span!("inner2", tid = i);
                    let _inner = inner.enter();
                    error!("incrementing from {}", *locked);
                    *locked += 1;
                });
            })
        })
        .collect();

    for thread in threads {
        thread.join().unwrap();
    }
}

#[test]
fn shuttle_test_joining_is_irrelevant() {
    let _ = tracing_subscriber::fmt::try_init();
    shuttle::check_random(shuttle_joining_is_irrelevant, 1);
}

Running RUST_LOG=warn cargo test shuttle_test_join -- --nocapture gives:
running 1 test
2023-11-27T17:40:09.863872Z ERROR inner1{tid=0}: r#mod::basic::tracing: incrementing from 0
2023-11-27T17:40:09.876532Z ERROR inner2{tid=0}: r#mod::basic::tracing: incrementing from 1
2023-11-27T17:40:09.878446Z ERROR inner1{tid=2}: r#mod::basic::tracing: incrementing from 2
2023-11-27T17:40:09.878521Z ERROR inner1{tid=1}: r#mod::basic::tracing: incrementing from 3
2023-11-27T17:40:09.878573Z ERROR inner2{tid=2}: r#mod::basic::tracing: incrementing from 4
2023-11-27T17:40:09.878639Z ERROR inner2{tid=1}: r#mod::basic::tracing: incrementing from 5
test basic::tracing::shuttle_test_joining_is_irrelevant ... ok

As we can see, the same as the two above.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Issue when running with RUST_LOG=info:
tried to clone Id(195906583790617176), but no span exists with that ID
This may be caused by consuming a parent span (`parent: span`) rather than borrowing it (`parent: &span`).
stack backtrace:
   0: rust_begin_unwind
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/std/src/panicking.rs:595:5
   1: core::panicking::panic_fmt
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/panicking.rs:67:14
   2: <tracing_subscriber::registry::sharded::Registry as tracing_core::subscriber::Subscriber>::clone_span
   3: <tracing_subscriber::fmt::Subscriber<N,E,F,W> as tracing_core::subscriber::Subscriber>::enter
   4: amzn_shuttle_fork::runtime::execution::Execution::step::{{closure}}::{{closure}}
   5: amzn_shuttle_fork::runtime::execution::Execution::step
   6: scoped_tls::ScopedKey<T>::set
   7: amzn_shuttle_fork::runtime::execution::Execution::run
   8: tracing::span::Span::in_scope
   9: scoped_tls::ScopedKey<T>::set
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

There is a question of whether the step and execution spans should be ERROR so that they are always included. Having that information is pretty much always useful.

Nevermind, I did not look into the non ERROR/WARN-traces sufficiently. There is Span-stacking on instrumented futures.

Interestingly the issues with instrumented futures don't show up when running with Tracing 0.2.0 (the current pre-release version).


Satellizer vulnerable to XSS?

Very cool library. I have a question though. It looks like you are storing your tokens in localStorage or sessionStorage. Forgive me if I am wrong, but I thought these are vulnerable to XSS attacks and that the data in here can be viewed by scripts on the page - so if you have a compromised script served from a CDN or if there is malicious code in a JS library used alongside satellizer in a web app, they can steal the token out of those storage places and impersonate a user until the token expires.
See:
https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/
https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Local_Storage
https://blog.whitehatsec.com/web-storage-security/
I think the most secure approach is to store a JWT + CSRF token in a cookie, and then place your computed JWT with the CSRF token inside it in the request header, and validate based on the request header. (See first link above.)
Am I missing something?

This is my understanding as well, but I'm no expert. Anybody else out there with thoughts on this?

This seems pretty critical.  First, I'd like to say that I am far from an expert on security issues.  I guess the question is how vulnerable is your site to XSS?  My (possibly flawed) understanding was that Angular is not very vulnerable to XSS in normal usage.
Moving to $cookies for storage would mitigate XSS(?), but (as @aarongray points out) introduces CSRF vulnerabilities which necessitates CSRF tokens and increased complexity on both client and server side.  In the angular docs for $http, it has this to say about CSRF (XSRF)... ( https://docs.angularjs.org/api/ng/service/$http )

XSRF is a technique by which an unauthorized site can gain your user's private data. Angular provides a mechanism to counter XSRF. When performing XHR requests, the $http service reads a token from a cookie (by default, XSRF-TOKEN) and sets it as an HTTP header (X-XSRF-TOKEN). Since only JavaScript that runs on your domain could read the cookie, your server can be assured that the XHR came from JavaScript running on your domain. The header will not be set for cross-domain requests.

To take advantage of this, your server needs to set a token in a JavaScript readable session cookie called XSRF-TOKEN on the first HTTP GET request. On subsequent XHR requests the server can verify that the cookie matches X-XSRF-TOKEN HTTP header, and therefore be sure that only JavaScript running on your domain could have sent the request. The token must be unique for each user and must be verifiable by the server (to prevent the JavaScript from making up its own tokens). We recommend that the token is a digest of your site's authentication cookie with a salt for added security.

The name of the headers can be specified using the xsrfHeaderName and xsrfCookieName properties of either $httpProvider.defaults at config-time, $http.defaults at run-time, or the per-request config object.

Thoughts?

After some more reading it does indeed seem that proper use of Angular should prevent XSS. I found this helpful: http://stackoverflow.com/a/28011263, and the Wikipedia page on XSS suggests the same (https://en.wikipedia.org/wiki/Cross-site_scripting).

Thanks for the replies. I'm still not convinced though, and I don't think it addresses the problem of a compromised script from a CDN, third party service, or JS library in your app. From my links above, the Open Web Application Security Project, a respected security company, and Stormpath (a company that has built their entire business around web authentication, and largely Angular in particular) all say that you should not store anything of value or trust (including JWT's) in localStorage or sessionStorage.

Interestingly, it looks like modern browsers are starting to address the issue of compromised scripts from CDN's by using an integrity attribute on the script tag. This would solve the problem from a different direction.
https://hacks.mozilla.org/2015/09/subresource-integrity-in-firefox-43/

Appologies for joining the conversation so late, but @aarongray you are right, it does introduce the possibility of XSS when storing JWT in Local Storage.
10 Things You Should Know about Tokens says that it is easier to deal with XSS than CSRF and the only reasonable solution is to keep token expiration time low.
Also, as a rule of thumb, you shouldn't be storing any sensitive information in JWT, in its unecrypted form, inside the Local Storage. I did read something about Encrypted JWT last year, however, I don't know much about it.
And thanks for pointing out the integrity attribute; didn't know about it.

:+1:

So, finally whats the conclusion?

Storing the JWT token in the localstorage and protect from XSS by keeping the expiration time low.

Hi guys, this thread has so many thoughts, but whats the final conclusion. Hi @aarongray , yes integrity can be very helpfull in future but for now the site should use own javascript files rather than an CDN it should do the trick.but im scared that is there a way for the chrome plugin to XSS to the site.

localStorage.setItem('satellizer_token', 'token');

What @marciocamello .


Destructuring fails with new due to operator precedence

This CoffeeScript
{length} = new Array

compiles to this JavaScript
var length;

length = new Array.length;

which throws with TypeError: number is not a function because the . has higher precedence than the new operator. Ideally, this JavaScript would be generated instead:
var length;

length = (new Array).length;

@jed: fixed by 7c56da26f637f82d7e97361252a346afea782393

excellent, thanks @michaelficarra.


AnyDesk: Accept connection window is empty

Describe the bug
When a client connects to AnyDesk the window to accept the connection request opens up but is empty.
To Reproduce
Steps to reproduce the behavior:

Start AnyDesk on NixOS.
From another client connect to the NixOS AnyDesk via its Desk Address.

Expected behavior
Window to accept the connection request opens up and contains button to accept the connection.
Screenshots

Additional context
If one tries to close the empty window, after a while one sees this Warning

Notify maintainers

Metadata

system: "x86_64-linux"
host os: Linux 5.4.48, NixOS, 20.03.2351.f8248ab6d9e (Markhor)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.6
channels(root): "nixos-20.03.2351.f8248ab6d9e"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

Starting AnyDesk via anydesk --service the window opens as expected.

Did I miss this in the docs?

Can confirm the issue in 20.03.
It didn't exist in 19.03.
It appears only after some use, the window then takes this state. Removing ~/.anydesk doesn't fix it. Rebooting or cold start doesn't fix it.
I can't start anydesk via anydesk --service, it just returns without executing anything.
Pinging for awareness to top latest package contributors: @r-ryantm  @jonringer

Also how about updating anydesk to 6.2.1

This is resolved.

As I am not using AnyDesk anymore and it is confirmed to be resolved by @cx405 I'll happily close.


[Live Markdown] Styling for empty nested block quotes

Corresponds with https://github.com/Expensify/App/issues/41107
Inserting a nested empty block quote breaks the styling

The paddings for the nested blockquotes are causing height differences between the containers, and the min-height of the container isn't set, so when we try to insert empty blockquotes, we end up with the situation presented below.

cc @BrtqKr

@BrtqKr Is this something you'd like to handle or shall we make it external?

@thienlnam I can take over this, thanks for letting me know!

Update for today:
I've got most of the changes, but the empty lines are a bit tricky to handle, so I'm trying to fix it at the moment.

Update for today:
Draft is ready for the review from someone from SWM and we'll be passing it further soon. Also, there are some styling changes in the core app, but since getting rid of the margins completely is probably out of question I'm looking for a workaround

Asked for an update on Slack - https://expensify.slack.com/archives/C04878MDF34/p1721174878190149

@thienlnam
Moving the discussion from slack, I've commented on the other ticket related to that as well.
To sum up - there have been a lot of issues related to the behavior of blockquotes, describing different, sometimes conflicting results as desired. We've been discussing it internally and we think we should take a different approach in this case. Can we please:
Pass this document further inside the Expensify team.
Make the decisions regarding cases described in the document.
Create a single ticket to adjust those behaviors on both sides - the input and the parser. And redirect all blockquotes-related reports to that place
We think that we're lacking a single source of truth with an appropriate description for the parser and the general approach to fixing those things seems a bit chaotic and blindly adjusting regexes without a broad context might not be the best workflow.

Thanks, I agree it can get confusing with the different issues with conflicting expected results.
One thing we'll also want to have done is just make sure the regression tests for Live Markdown are cleaned up so they're always testing and know what correct behaviors are.
I'll take a look through this week and create a single issue to address all of those things

@thienlnam what are we gonna do here?

Forgot to follow back here, but looked through the document and a lot of them are edge cases with blockquotes and unless there's an issue we're trying to solve specifically it doesn't seem like we need to keep going with this


[Go] ai.LookupModel returns (*ai.modelActionDef)(nil) when no model is found, which is not the same as nil

Describe the bug
The below code does not return nil when no model is found.
Instead of returning nil, it returns (*ai.modelActionDef)(nil) and (*ai.modelActionDef)(nil) == nil always be false.
https://github.com/firebase/genkit/blob/main/go/ai/generate.go#L92-L96
// LookupModel looks up a [Model] registered by [DefineModel].
// It returns nil if the model was not defined.
func LookupModel(provider, name string) Model {
	return (*modelActionDef)(core.LookupActionFor[*GenerateRequest, *GenerateResponse, *GenerateResponseChunk](atype.Model, provider, name))
}

To Reproduce
If I run the sample code below:
	if err := googleai.Init(ctx, nil); err != nil {
		log.Fatal(err)
	}

	genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) {
		m := googleai.Model("foo")
		if m == nil {
			log.Fatal(" Model not found")
		}
		log.Printf("model: %#v", m)
		log.Printf("model == nil: %#v", m == nil)

It produces the below log where nil check does not work as expected.
time=2024-09-01T11:00:23.509+09:00 level=INFO msg="model: (*ai.modelActionDef)(nil)"
time=2024-09-01T11:00:23.509+09:00 level=INFO msg="model == nil: false"

Expected behavior
ai.LookupModel(provider, name) returns nil when no model is found, as the below ai.LookupEmbedder(provider, name) does.
https://github.com/firebase/genkit/blob/main/go/ai/embedder.go#L68-L76
// LookupEmbedder looks up an [Embedder] registered by [DefineEmbedder].
// It returns nil if the embedder was not defined.
func LookupEmbedder(provider, name string) Embedder {
	action := core.LookupActionFor[*EmbedRequest, *EmbedResponse, struct{}](atype.Embedder, provider, name)
	if action == nil {
		return nil
	}
	return (*embedderActionDef)(action)
}

Runtime (please complete the following information):

OS: MacOS
Version: 12.7.6

Go version

Go: 1.23.0

$ go version
go version go1.23.0 darwin/arm64

If I'm on the right track, I'll create a PR for this issue immediately.

Thank you for this!


Separate Function arguments to 2 fields.

Discord or Telegram handle
Telegram handle: @RonyLe2818
Is your feature request related to a problem? Please describe.

Not friendly.
Input json very hard for end user.
User must read guild for this field.
Difficult for validate.

Describe the solution you'd like

Make 2 fields input: account id and amount

Some of the issues raised here will be addressed in #79


kubevirt virt-operator:latest was not updated for 3 years

What happened:
Trying to build kubevirt from git, for testing unreleased change:
DOCKER_PREFIX=quay.io/kubevirt DOCKER_TAG=latest make manifests

After applying the kubevirt-operator.yaml, the virt-operator deployment fail with
this error in the logs:
$ kubectl logs deploy/virt-operator -n kubevirt
Found 2 pods, using pod/virt-operator-67f4f4f7c9-8vqb9
{"component":"virt-operator","level":"info","msg":"empty env var OPERATOR_IMAGE
for operator image\n","pos":"application.go:131","timestamp":"2024-03-17T19:38:37.274898Z"}

Checking the latest tag show that it was built 3 years ago:
https://quay.io/repository/kubevirt/virt-operator?tab=tags
What you expected to happen:
virt-operator working using image created from latest commit
or pulling the image fails since there is not "latest" tag.
How to reproduce it (as minimally and precisely as possible):

Build kubevirt using DOCKER_TAG=latest
Deploy _out/manifests/release/kubevirt-operator.yhaml
Watch kubvirt namespace

Environment:

KubeVirt version (use virtctl version): built from git
Kubernetes version (use kubectl version): v1.28.3
VM or VMI specifications: N/A
Cloud provider or hardware configuration: N/A
OS (e.g. from /etc/os-release): N/A
Kernel (e.g. uname -a): N/A
Install tools: N/A
Others: N/A

Workaround
Use an available tag like:
DOCKER_PREFIX=quay.io/kubevirt DOCKER_TAG=20240319_9c3a52d67 make manifests

I believe kubevirt doesn't use latest/devel tags, instead, it uses the commit hash
so here https://quay.io/repository/kubevirt/virt-operator?tab=tags 20240319_9c3a52d67 corresponds to https://github.com/kubevirt/kubevirt/commit/9c3a52d67c6782cd48ae0702df5493f5023a04cc

/remove-lifecycle stale

This should be an easy fix - if the intent is to never update the latest tag, it should not exit. Someone with the right permissions in quay.io can delete stale the tag.

This should be an easy fix - if the intent is to never update the latest tag, it should not exit. Someone with the right permissions in quay.io can delete stale the tag.

Sounds good, @brianmcarey @dhiller can you have a look?

This should be an easy fix - if the intent is to never update the latest tag, it should not exit. Someone with the right permissions in quay.io can delete stale the tag.

Sounds good, @brianmcarey @dhiller can you have a look?

Yes sure - I can remove the old tags.

The latest tags have been removed from quay - I think we are good to close this issue.
Thanks for raising this @nirs
/close


⚠ Samsung has degraded performance

In 44cac32, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 3138 ms

Resolved: Samsung performance has improved in 9ff5bdf.


Week 1 Problems pull request

Description
Answers for the Week 1 Problem set
Weekly Journal
Prof. Chow's  Slides and his explanations for Python basics were really helpful. However, he couldn't cover his final slides due to time restriction. The topics on his final slides were the topics that are really important for me (Classes, objects,init etc). I hope we can get some information about object-oriented programming for the remaining part of the workshop. Git-GitHub introduction was really helpful. I hope there will be advanced git-GitHub tasks for the upcoming weeks so that I can get better at git and GitHub
Questions

[ 1] I was mostly using Matlab for my research and I am trying to switch to Python. In Matlab, It was really easy to check variables and I could easily use the command window to do simple calculations without running the whole code. Can I do similar operations on Python? Also is it possible to run some section of the code(like highlighting it and selecting run highlighted section)? or do I need to use the debugger for that task?

Thanks,

To answer your question regarding the Matlab-like capabilities of Python programming: kinda yes, kinda no.
The reason is because you're conflating Matlab and Python in two different contexts here: Matlab the IDE (Interactive Development Environment), which is a program within which to write, view, and run/debug code, and Matlab/Python the language.  Even though Python is just a language, there are, a plethora of IDEs for Python out there.
Likely the closest IDE to Matlab (the program) is Spyder, but my personal Python IDE of choice are Jupyter Notebooks, which look more like Mathematica notebooks and can combine figures, text, LaTeX-rendered mathematics, and executable code.  You can check out this interactive tutorial, part of the Psi4NumPy project, to see how these notebooks can be really powerful tools to make Python workflows really slick.  We'll actually be using them later in the workshop, too.

Thank you for your quick and helpful response, Dominic.

I added the second assignment (actually, once I commit my changes to my fork repo, it automatically submitted the new assignment as an addition to previous pull request), but I could not send a separate pull request. Is it what it should be? or am I making a mistake?

@beyucel you aren't making a mistake, just doing what you knew how to do.  For now, I'm assigning @bencomer to take a look at your Week 02 submission, and he can merge your PR as soon as he's approved that assignment.
I would advocate that you check out my announcements on keeping your fork up-to-date and branching & the GitHub flow, the combination of which allow you to make separate PRs for each assignment.

Thanks, Dominic!

Hey Ben, I fixed the problem with the BIC calculation. BIC results are really close  like :
BIC for linear curve is : 29.97949134672216
BIC for Cubic curve is : 30.360576141400536
So I know that increasing the degree will always increase the possibility of the overfitting. How would you decide between cubic and linear in this circumstances(close BIC result)? Because I would not be very sure, I guess I would do cross-validation to check if I am overfitting or not.

Thanks!
I would say that if the BIC is close then it's a judgement call on which one is better. BIC is not really a hard way to say "pick this one" but it is a good guide. I actually made the data using a cubic function and adding noise, so the "true" model is cubic. But, a linear model approximates it very well over this range, so linear might be the better choice.
Cross validation is another legitimate strategy for deciding what model to choose, and is probably superior to BIC. I was going to go over it but realized I wouldn't have time.


Post Workflow Telemetry fails with 'Error: Resource not accessible by integration'

Hi,
I've added the step to my workflow with.
- name: Workflow Telemetry
  uses: runforesight/workflow-telemetry-action@v1

And the post step is failing with the error Error: Resource not accessible by integration
Setup Log:
##[debug]Evaluating condition for step: 'Workflow Telemetry'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Workflow Telemetry
##[debug]Register post job cleanup for action: runforesight/workflow-telemetry-action@v1
##[debug]Loading inputs
##[debug]Evaluating: github.token
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'token'
##[debug]=> '***'
##[debug]Result: '***'
##[debug]Loading env
Run runforesight/workflow-telemetry-action@v1
[Workflow Telemetry] Initializing ...
[Workflow Telemetry] Starting step tracer ...
[Workflow Telemetry] Started step tracer
[Workflow Telemetry] Starting stat collector ...
[Workflow Telemetry] Started stat collector
[Workflow Telemetry] Starting process tracer ...
::save-state name=PROC_TRACER_PID::1745588
##[debug]Save intra-action state PROC_TRACER_PID = 1745588
[Workflow Telemetry] Started process tracer
[Workflow Telemetry] Initialization completed
##[debug]Node Action run completed with exit code 0
##[debug]Finishing: Workflow Telemetry

Post log:
##[debug]Evaluating condition for step: 'Post Workflow Telemetry'
##[debug]Evaluating: always()
##[debug]Evaluating always:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Post Workflow Telemetry
##[debug]Loading inputs
##[debug]Evaluating: github.token
##[debug]Evaluating Index:
##[debug]..Evaluating github:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'token'
##[debug]=> '***'
##[debug]Result: '***'
##[debug]Loading env
Post job cleanup.
[Workflow Telemetry] Finishing ...
(node:1747867) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
Error: Resource not accessible by integration
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Post Workflow Telemetry

I suspect this is related to permissions as we have restricted them in our workflows, but I can't work out which need to be enabled from a cursory look. We're also using a custom runner, but hopefully that won't cause any issues?
permissions:
  contents: read
  packages: write

Thanks for developing this, it looks really fantastic.

Hi @tim-silico,
workflow-telemetric-action needs actions:read permission to be able to access current workflow job info.
We have applied a fix to prevent action from failing (but logs error message) in case of lack of actions:read permission.
Could you please try by adding actions:read permission:
permissions:
  actions: read
  ...

Hi @tim-silico, you can disable PR comment feature by setting comment_on_pr input to false as mentioned here: https://github.com/runforesight/workflow-telemetry-action#configuration
In this case (PR comment disabled), you still will be able to see the results in the Github job summary page.

Just FYI, because you want to write a comment into a pull request, you also need pull-requests: write.

Hi! Can we please update the readme with this very useful information - thank you :)

Thanks for informing @oliversalzburg @sjoedwards.
Added required permission to the description of comment_on_pr configuration.


Parse OAuth Authorization header when request omits client secret (#21351)

Backport #21351
This fixes error "unauthorized_client: invalid client secret" when client includes secret in Authorization header rather than request body. OAuth spec permits both: https://www.rfc-editor.org/rfc/rfc6749#section-2.3.1
Clients in possession of a client password MAY use the HTTP Basic authentication scheme ... Alternatively, the authorization server MAY support including the client credentials in the request-body
Sanity validation that client id and client secret in request are consistent with Authorization header.
Improve error descriptions. Error codes remain the same.

Lint failures are related I'm afraid

Fixed


OSSL_PARAM: Correct the assumptions on the UTF8 string length

When the string "ABCDEFGH" is passed, what's considered its data, this?
{ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' }

or this?
{ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', '\0' }

If it's passed as a pass phrase, should the terminating NUL byte be
considered part of the pass phrase, or not?
Our treatment of OSSL_PARAMs with the data type OSSL_PARAM_UTF8_STRING
set the length of the string to include the terminating NUL byte,
which is quite confusing.  What should the recipient of such a string
believe?
Instead of perpetuating this confusion, we change the assumption to
set the OSSL_PARAM to the length of the string, not including the
terminating NUL byte, thereby giving it the same value as a strlen()
call would give.

This is loosely related to #13913, in so far that this was a cause for the Appveyor failure there

This is naive and wrong and doesn't handle multi-byte sequences.
Look at &#x1F385 which is UTF8 encode as 0xF0 0x9F 0x8E 0x85
What's the length of that?
What happens is the UTF8 is truncated and the trailing 0x85 byte, for example, is omitted.  That shouldn't be a valid PARAM string -- how is the error returned?
What happens is someone mistakenly puts an eight-bit "ascii" value there?  That's the most likely thing that will happen, I believe. Suppose someone enters a Cyrillic §, which is 0xA7 and that is likely to mess up anything that really wants to use REAL UTF8.
I think the correct thing to do is either act as real UTF8, or  say "CHAR8BIT" as the type.  The latter is likely to be much less work.

I agree with Rich that we should work with UTF8 strings like with a sequence of non-zero bytes without any trying to analyze the internal structure.

I have no idea what you're on about, @richsalz.  The OSSL_PARAM data_size is the number of bytes, not the number of characters / glypths.  In other words, it gives you (or should give you) the same answer as strlen().
So, to answer specifics:

Look at &#x1F385 which is UTF8 encode as 0xF0 0x9F 0x8E 0x85
What's the length of that?

The length of that in bytes is 4.

What happens is the UTF8 is truncated and the trailing 0x85 byte, for example, is omitted.  That shouldn't be a valid PARAM string -- how is the error returned?

It's up to the recipient to validate, if they care to.  In our providers, we match all such strings against ASCII strings, that's a very simple strcmp() or strcasecmp() call.  As far as I understand, nothing more is should be needed.

What happens is someone mistakenly puts an eight-bit "ascii" value there?  That's the most likely thing that will happen, I believe. Suppose someone enters a Cyrillic §, which is 0xA7 and that is likely to mess up anything that really wants to use REAL UTF8.

That's not a valid UTF-8 sequence, of course.  The owner of that string is of course responsible for getting it right.  In case this string is compared against known strings, that will of course fail.  If that string is used as is, it's going to have strange results, just as you'd get strange results if you try to printf() a strings with invalid UTF-8 encoding (and assume that the terminal displays UTF-8 correctly.

I think the correct thing to do is either act as real UTF8, or  say "CHAR8BIT" as the type.  The latter is likely to be much less work.

I don't see why.  The name is chosen to encourage an agreement between providers and applications (and when that's relevant, whatever's in between) to use UTF-8.  If they only use ASCII, they don't need to care one bit, since the corresponding Unicode code points are exactly the same, at least for the printable character range (0x0020 - 0x007e).
All this discussion is interesting, but has absolutely nothing to do with this PR.  From the OSSL_PARAM point of view, a string is a vector of bytes, and the thing that this PR corrects is the strangeness that the terminating NUL byte was considered as part of the string data.  UTF-8 or not, the correction would be the same.

That's not a valid UTF-8 sequence, of course. The owner of that string is of course responsible for getting it right.

I expect someone will want a runtime error, just like some want run-time checks for NULL.
I should have opened a separate issue about this.  Tnx for the feedback.

I should have opened a separate issue about this.

Sounds like a good idea.  What you find wrong is so without this PR just as well as with.

Tnx for the feedback.

YW

Regarding the meaning of data_size, it's documented in doc/man3/OSSL_PARAM.pod:
and I<data_size> is its size in bytes.

This simple line would have clarified the question about the length of an UTF-8 encoded wide character in OSSL_PARAM terms

I restarted the GitHub CI jobs...  something very strange seemed to be going on, with some jobs hanging for more than an hour, and others getting a ton of errors that didn't look relevant.

I'm not entirely sure I'm comfortable with UTF8 strings having an optional \0 terminator.  We should mandate one way and use it exclusively.

It doesn't really matter, the length of the string should not count the nul byte regardless

The CIs were unhappy yesterday, because I had forgotten to commit the adjustments that were needed in a few places.

I should have opened a separate issue about this.

Sounds like a good idea. What you find wrong is so without this PR just as well as with.

#14174

ping

@levitte could you please merge this and rebase the #13891 afterwards?

Yup (although you probably meant another PR)

Merged
247a1786e25dbf77548168572e383d57aa743af4 OSSL_PARAM: Correct the assumptions on the UTF8 string length
3262300a2c2351c6706f37b89fef015430988a31 Adjust the few places where the string length was confused


New model Attribution (copyright, editor, maker etc. assertions)

Migrated from TW-12.
This is where we handle assertions such as CopyrightHolder, Editor, or Maker for particular data instances (and perhaps their individual attributes in some cases).
This is largely sensu this https://en.wikipedia.org/wiki/Attribution_(copyright)
Considerations:

These should not be used to make decisions as to how or where the data are shared, made visible etc., those assertions should be handled elsewhere
We need default project level attribution settings that should follow the model as well
We need default inferences vs. housekeeping rules if attribution metadata are not provided

https://library.fvtc.edu/Open/ExampleAttrib

Pertinent DWC hour links

https://docs.google.com/presentation/d/1QbmwYK5-e7vY7DGXdUj4flq4uLmOq_HN0qkX6SQdl2Y/edit#slide=id.p

https://github.com/tdwg/attribution


Dropped packets when UDP on network

For my application I am reparsing ffmpeg avpacket.data into NALs and feeding them to RtspServer.  This works perfectly when I connect locally using vlc.  When I connect from another machine on the network (wired or wifi) we get massive packet drops.  We never get a keyframe. If I use tcp it works fine.
Does RtspServer work with UDP for everyone else?  Anyone have any ideas where I should look?

Nevermind I realise now that I need to implement something to break the NALs into FU-A NALs.


Available as snapshot

Tailscale command line interface and daemon are now in the OpenWRT snapshot repository.

@djeraseit Yes, it is. But afaik, that still installs it to the flash (see https://github.com/openwrt/packages/pull/15539/files), rather than running from RAM like this aims to do. There are many routers out there with 8MB flash with supports openwrt, but cannot hold the 13+13M binaries of tailscale. Let me know if that is not the case with the ipks.


Like/Dislike buttons sort of not working

Hi, today I noticed that when I liked/disliked a video it appeared to do nothing and the buttons remained their usual color. Also, the notification on the upper-left wouldn't appear either. However, I discovered that upon liking/disliking a video then refreshing the page it turns out that the video was successfully liked/disliked. I tried disabling Youtube Center and this restored the proper function of the buttons.

Duplicate of #1553

Hmm I couldn't find that when searching for issues with the word "like" in them. Oh well, I'll go subscribe to that instead. Thanks!


Implement a DNS proxy module

I'd like us to implement a DNS proxy module/library supporting the following functionality:

DoH / DoT client
DNSCrypt client
Applying filtering rules to it (both adblock and hosts files syntax)

The interface of the module/library is to be discussed additionally.
Why do I want us to do it:

The current implementation that we use in the Android app is quite heavy and slow compared to other parts of the program;
There's a request from users to embed DNS filtering functionality into other AG products;

I am not setting a milestone yet.

https://github.com/AdguardTeam/DnsLibs