aws-c-s3: 0.5.7 -> 0.5.10

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/aws-c-s3/versions.
meta.description for aws-c-s3 is: C99 library implementation for communicating with the S3 service
meta.homepage for aws-c-s3 is: https://github.com/awslabs/aws-c-s3
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.5.8 in filename of file in /nix/store/5nxfcbfl55jrxxw9n7ah7x6pap5igg6b-aws-c-s3-0.5.8

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

379 total rebuild path(s)

379 package rebuild(s)

First fifty rebuilds by attrpath

apacheHttpdPackages.mod_tile
apacheHttpdPackages_2_4.mod_tile
appvm
arrow-cpp
arrow-glib
attic-client
attic-server
aws-c-s3
aws-crt-cpp
aws-sdk-cpp
browsr
bundix
cabal2nix
cached-nix-shell
cachix
ceph
ceph-client
ceph-csi
ceph-dev
chatgpt-retrieval-plugin
cloudcompare
colmena
common-updater-scripts
crate2nix
crystal2nix
databricks-sql-cli
dbx
dep2nix
devenv
disko
dub-to-nix
dydisnix
entwine
fusionInventory
gdal
gmt
gplates
grass
harmonia
haskellPackages.cabal2nix-unstable
haskellPackages.cachix
haskellPackages.hercules-ci-agent
haskellPackages.hercules-ci-cli
haskellPackages.hercules-ci-cnix-expr
haskellPackages.hercules-ci-cnix-store
haskellPackages.hgdal
haskellPackages.niv
haskellPackages.nix-paths
haskellPackages.nix-serve-ng

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5nxfcbfl55jrxxw9n7ah7x6pap5igg6b-aws-c-s3-0.5.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/cfe24b99d8340cbf441518de8d61bd4ea3834f30#aws-c-s3

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5nxfcbfl55jrxxw9n7ah7x6pap5igg6b-aws-c-s3-0.5.8
ls -la /nix/store/5nxfcbfl55jrxxw9n7ah7x6pap5igg6b-aws-c-s3-0.5.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 120m and timed out

Maintainer pings
cc @r-burns for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/aws-c-s3/versions.
meta.description for aws-c-s3 is: C99 library implementation for communicating with the S3 service
meta.homepage for aws-c-s3 is: https://github.com/awslabs/aws-c-s3
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.5.9 in filename of file in /nix/store/bbcmqf63406jp1damkrqgdpffhf4bddc-aws-c-s3-0.5.9

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

392 total rebuild path(s)

392 package rebuild(s)

First fifty rebuilds by attrpath

apacheHttpdPackages.mod_tile
apacheHttpdPackages_2_4.mod_tile
appvm
arrow-cpp
arrow-glib
attic-client
attic-server
aws-c-s3
aws-crt-cpp
aws-sdk-cpp
browsr
bundix
cabal2nix
cached-nix-shell
cachix
ceph
ceph-client
ceph-csi
ceph-dev
chatgpt-retrieval-plugin
cloudcompare
colmena
common-updater-scripts
crate2nix
crystal2nix
databricks-sql-cli
dbx
dep2nix
devenv
disko
dub-to-nix
dydisnix
entwine
fusionInventory
gdal
gmt
gplates
grass
harmonia
haskellPackages.cabal2nix-unstable
haskellPackages.cachix
haskellPackages.cli-nix
haskellPackages.hercules-ci-agent
haskellPackages.hercules-ci-cli
haskellPackages.hercules-ci-cnix-expr
haskellPackages.hercules-ci-cnix-store
haskellPackages.hgdal
haskellPackages.niv
haskellPackages.nix-paths

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/a21422556b777ac403a2156424c38dea9ef4ee16#aws-c-s3

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bbcmqf63406jp1damkrqgdpffhf4bddc-aws-c-s3-0.5.9
ls -la /nix/store/bbcmqf63406jp1damkrqgdpffhf4bddc-aws-c-s3-0.5.9/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 120m and timed out

Maintainer pings
cc @r-burns for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/aws-c-s3/versions.
meta.description for aws-c-s3 is: C99 library implementation for communicating with the S3 service
meta.homepage for aws-c-s3 is: https://github.com/awslabs/aws-c-s3
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.5.10 in filename of file in /nix/store/irlfr6lx5q3s6j2c5cd93pn4zkz6rzkf-aws-c-s3-0.5.10

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

441 total rebuild path(s)

441 package rebuild(s)

First fifty rebuilds by attrpath

apacheHttpdPackages.mod_tile
apacheHttpdPackages_2_4.mod_tile
appvm
arrow-cpp
arrow-glib
attic-client
attic-server
aws-c-s3
aws-crt-cpp
aws-sdk-cpp
browsr
bundix
cabal2nix
cached-nix-shell
cachix
ceph
ceph-client
ceph-csi
ceph-dev
chatgpt-retrieval-plugin
cloudcompare
colmena
common-updater-scripts
crate2nix
crystal2nix
databricks-sql-cli
dbx
dep2nix
devenv
disko
dub-to-nix
dydisnix
entwine
fusionInventory
gdal
gmt
gplates
grass
harmonia
haskellPackages.cabal2nix-unstable
haskellPackages.cachix
haskellPackages.cli-nix
haskellPackages.hercules-ci-agent
haskellPackages.hercules-ci-cli
haskellPackages.hercules-ci-cnix-expr
haskellPackages.hercules-ci-cnix-store
haskellPackages.hgdal
haskellPackages.niv
haskellPackages.nix-paths

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/b8d8b1758025063b5696573e95e80ad818f76aff#aws-c-s3

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/irlfr6lx5q3s6j2c5cd93pn4zkz6rzkf-aws-c-s3-0.5.10
ls -la /nix/store/irlfr6lx5q3s6j2c5cd93pn4zkz6rzkf-aws-c-s3-0.5.10/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 120m and timed out

Maintainer pings
cc @r-burns for testing.


Holding a command key (Ctrl,Shift,Alt) does not pass through to FAR Manager

Environment
Windows build number: 10.0.18363.0
Windows Terminal version (if applicable): 0.8.10261.0
Far Manager v3.0 build 5511 x64 - [Download](https://www.farmanager.com/download.php?l=en)

Steps to reproduce

Install Far and add a profile:

{
  "guid": "{a6736d6e-1927-48be-8366-0ea3fe505d70}",
  "name": "Far Manager 3 x64",
  "commandline": "C:/Program Files/Far Manager/Far.exe"
},

Open Far tab in Windows terminal
Press and hold one of the command keys (Ctrl or Alt or Shift)
Nothing happens

Expected behavior
Holding one of the command keys changes the visible options displayed to the user along the bottom of the screen. Each option is then selected using the function keys.
No keys pressed:

Ctrl key:

Shift key:

Alt key:

Actual behavior
The key presses are ignored so it is not possible to review the options.
Note that pressing the combination of the command key and function key does correctly result in the action, you just have to memorise all the options.

Alas, this is also going to be a /dupe of #879.

#4334 is very similar and was also a duplicate.

win32-input-mode support also added to the Linux Far Manager port: https://github.com/elfmz/far2l/pull/1581


How do we enable samples per second metric in NeMo training?

The training only shows this information.
Epoch 0:   1%|          | 795/77225 [9:07:58<878:01:48, 41.36s/it, loss=3.1, v_num=, reduced_train_loss=3.090, global_step=794.0, consumed_samples=1.63e+6]
How do we enable some throughput metrics?

tensorboard

enable wandb, it shows iteration time
https://github.com/NVIDIA/NeMo-Megatron-Launcher/blob/master/launcher_scripts/conf/training/gpt3/1b_improved.yaml#L33


az webapp up not working as expected in dotnet core 2.2 project

Command Name
az webapp up
Describe the bug
Following this tutorial with the C# development language, the final step was apply the az webapp up command but the deployed site only had a message saying "You do not have permission to view this directory or page". That means that no site was detected on the deployed site folder.
I applied the dotnet publish command and tried to run az webapp run from the published folder but the result was: "Could not auto-detect the runtime stack of your app, see 'https://go.microsoft.com/fwlink/?linkid=2109470' for more information."
Finally, from the root project folder I ran dotnet publish -o . and then az webapp up and got the deployment working as expected. This sounds really crazy because I finally got merged the published files with the source code.
This is my first attemp to use az webapp up, I hope that this feedback helps you to fix some issue.
To Reproduce
Follow this tutorial with the C# development language.
Expected behavior
The site is deployed and working when using az webapp up from root project folder.
Environment summary
Running Azure Cloud Shell from tutorial site:
Linux-4.15.0-1066-azure-x86_64-with-debian-stretch-sid
Python 3.6.5
Shell: bash

azure-cli 2.0.80

Additional context
This could be a related issue, it helped me to find a solution to deploy my app.
https://stackoverflow.com/questions/59746058/az-webapp-up-no-longer-works-from-dotnet-publish-directory/59859611

if you are still seeing this can you run the webapp up command with --debug flag at the end and share the details. The message you are seeing means that we were not able to detect a runtime stack

Closing due to lack of response- please re-open or file a new issue if this is still a problem. Thanks!


Bug: Dead isn't Dead

Current Behaviour
mobs are still respawning in dungeon.
Expected Behaviour
Mobs don't respawn.
Steps to reproduce the problem

load instance
wait 2ish days

Extra Notes
I was thinking it could be related to the InstanceSaveMgr.cpp global reset:
(line 96)
resetTime = GameTime::GetGameTime().count() + static_cast(3) * DAY; // normals expire after 3 days even if someone is still bound to them, cleared on startup
However, I don't think my test hit 3 days before they respawned so this might be going in the wrong direction. BUT since part of the discussion/goal was being able to extend an instance over multiple days this 3 day reset could still be an issue to the original concept.
AC rev. hash/commit
NA
Operating system
Windows 11
Custom changes or Modules
No response

I think I've essentially under-thought the implementation at this point. The script should work well at keeping an in-memory dungeon from respawning, but anything that goes multiple days is kind of sketchy. I have it on my list to come back around and work on it - assigning to me as bug.


Failed to start: The "path" argument must be of type string. Received undefined

Hi,
when I install your plugin it does not appear in the plugin config tab for configuration like on your readme.
I only see this error on the dashboard view:
Failed to start: The "path" argument must be of type string. Received undefined

And when I click to open the web app, it searches for ever and I have the following errors in the console:

Is there a configuration step I am missing?

There should be following plugin config section, where you should be able to define LAN, protocol, credentials and camera details.

Which version of SignalK you are using?
If I don't recall totally wrong, I modified search so that only listed cameras in the pluging are valid and if there is none, the this might cause the error. I need to check it.
Was there any problems or error during installation phase?

LAN is needed if you have several LANs. This points which LAN have the camera(s)

Server port is needed due to fact that we are running separate websocket server. Not related to SignalK

Credentials for OMVIF camera

IP addresses for the cameras

If these parameters are not defined then error might happen, but not visible pluging configuration tab is bit mystery?

Sorry for the late response, I missed your reply.
The version of SignalK I use is the one embedded with the cerbo VenusOS Large (version 1.44.0).
I cannot see the plugin section you are referring to. I can only see it in the webapps tab.

I've done a fresh install of the plugin. I don't see any issues during the installation phase. This is what I have in the logs, there is one error but I'm not sure it is related:
Mar 20 18:01:21 POST /skServer/appstore/install/signalk-onvif-camera/0.1.3 200 3866.560 ms - 34
Mar 20 18:01:23 GET /admin/270.js.map 200 245.683 ms - -
Mar 20 18:01:27 TypeError [ERR_INVALID_ARG_TYPE]: The "target" argument must be an instance of Buffer or Uint8Array. Received undefined at _copy (buffer.js:212:11) at Buffer.copy (buffer.js:768:12) at Parser._parse (/usr/lib/node_modules/signalk-server/node_modules/@canboat/canboatjs/lib/fromPgn.js:175:26) at Parser.parsePgnData (/usr/lib/node_modules/signalk-server/node_modules/@canboat/canboatjs/lib/fromPgn.js:320:24) at Parser.parse (/usr/lib/node_modules/signalk-server/node_modules/@canboat/canboatjs/lib/fromPgn.js:302:19) at CanboatJs._transform (/usr/lib/node_modules/signalk-server/node_modules/@signalk/streams/canboatjs.js:52:34) at CanboatJs.Transform._read (internal/streams/transform.js:205:10) at CanboatJs.Transform._write (internal/streams/transform.js:193:12) at writeOrBuffer (internal/streams/writable.js:358:12) at CanboatJs.Writable.write (internal/streams/writable.js:303:10) at CanbusStream.ondata (internal/streams/readable.js:726:22) at CanbusStream.emit (events.js:400:28) at addChunk (internal/streams/readable.js:290:12) at readableAddChunk (internal/streams/readable.js:265:9) at CanbusStream.Readable.push (internal/streams/readable.js:204:10) at CanbusStream.Transform.push (internal/streams/transform.js:166:32) { code: 'ERR_INVALID_ARG_TYPE' }
Mar 20 18:01:29 TcpProvider:connect EHOSTUNREACH <IP_ADDRESS>:10110

Still the same issues after removing the plugin, restarting and installing again.


Redundant multiple Inputs

I have build this repo with default input

input: [
    './src/index.ts',
    ...getFiles('./src/common', extensions),
    ...getFiles('./src/components', extensions),
    ...getFiles('./src/hooks', extensions),
     ...getFiles('./src/utils', extensions),
  ],

also with only src/index.ts input
 input: [     './src/index.ts', ]
The output in dist folder is exactly same in both cases. I even verified with the final bundle analyzer It's exactly the same.
I believe since we have exported everything in our src/index.ts file. hence it is only our main entry point. and rollup is smart enough to take all index.ts into consideration.
can you please verify this once. I i am right then we can safely remove all the bundle util code.

Hi @jayeshchoudhary, good day! Thanks for filing this.
Yes, you are mostly correct. The reason for the getFiles util code was due to my previous setup without output.preserveModules flag. Hence, specifying individual files did helped to carry out the necessary code splitting back then.
That being said, there is still a subtle difference in terms of files output in the dist folder. Some of the index.ts files didn't exactly get built into individual index.js files, which would then contradict with the *.d.ts TypeScript Definition files generated. The following snapshot illustrates part of the file differences.

Though not exactly a big impact, however it can still cause issues (missing barrel) at a client app if the person is trying to access the package with a line like so:
import { Button } from 'codefee-kit/dist/components';
TypeScript will not complain upfront because the .d.ts file is there. However, it'll definitely be erroneous upon build time at the client app.


[BUG] The build does not compile in production

In the latest versions, the build in production does not compile. There are no errors in this. The build command seems to be skipped.
Now we have the following command in package.json:

Has the build command changed? Or is it a bug?

Hey there! 👋
Not sure if I understand - the build script does nothing when executed? 👀 Do you have an example of terminal output I could take a look at when you try running the command?

Hi!
We have production through docker. Not sure what this means for you:

Previously, between the lines jorgenvatle:vite-bundler: updating npm dependencies -- picocolors... and DONE 83.6s there was a build process from Vite.
If I'm not mistaken, before version 1.3 it worked.
I didn’t figure out how to build a production Vite without a docker. If you tell me how, I will provide you with more necessary logs.

Sorry about that! 😱
Looks like the builds were skipped entirely due to a bad environment check. Just shipped a hotfix to resolve it for you 🙏

Everything is working.
Thank you for efficiency!


Flex doesn’t work

Flex:1 doesn’t work with macOS

@Jablett Can you provide a standalone repro of what you're seeing?

It does for me.
Although sometimes you do need to make these actions to make it work

watchman watch-del-all
rm -rf node_modules && rm yarn.lock
yarn install
yarn start --reset-cache

If that doesn't help try reloading the app few times...
If that doesn't help then good luck

It does for me.
Although sometimes you do need to make these actions to make it work

watchman watch-del-all
rm -rf node_modules && rm yarn.lock
yarn install
yarn start --reset-cache

If that doesn't help try reloading the app few times...
If that doesn't help then good luck


[Track] Transition to .NET MAUI

The following todo list needs to be completed before the transition to .NET MAUI is completed.

[ ] Move analysers to make it easy to use xmlns prefix
[ ] Move components from DIPS.Xamarin.UI
[ ] Move components from the old DIPS.Mobile.UI
[ ] Fix pipeline to distribute nuget packages
[ ] Distribute nuget package to nuget.org
[ ] Distribute Components app to AppCenter

We are tracking this internally.


AWS SigV4 invalid signature, lacking date header

Everything has been working fine signing AWS SigV4 requests.
I came back to the same requests after a bit and am getting a 403 with message
{
  "message": "Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. ..."
}

It also has SignedHeaders=accept;caller-account-id;host;x-amz-date;x-amz-security-token
Seems something odd is going on with the signing.
I tried manually adding a X-Amz-Date header as a workaround, but then it just says The security token included in the request is invalid.
Not sure what changed, but I haven't updated my requests, so it's maybe either httpyac (I'm testing with CLI) or AWS.
Any help would be appreciated. This has completely broken all of my Sigv4 signed requests.

sorry. There was a Breaking Change in in the behaviour of the lib I use to get aws header. Unfortunately, it was only marked as a feature release and I had overlooked it. Now the headers are no longer changed but copied beforehand. Now I have to make the header changes myself. It will be fixed with next release
https://github.com/mhart/aws4/releases/tag/v1.13.0


All voices are always active after sustain is released

Here are the steps to reproduce the issue:

load some SFZ file, e.g. SalamanderGrandPianoRetuned-V3+20200602.sfz downloaded from https://freepats.zenvoid.org/Piano/acoustic-grand-piano.html
press down the sustain pedal
hit some keys so that most of the voices are active
release the pedal

With sfizz_jack build from v1.2.2 (plus fix for  #1180), the number of active voices quickly goes down to 0 -- in, like, 2 seconds.
With sfizz_jack build from v1.2.3, all the voices become active, and stay active for at least for few minutes.  Same for current develop branch (85a275223a).
I can also reproduce it with LV2 plugin in Ardour 8.4, where midi panic correctly resets the states and brings things back to normal.
This is especially noticeable when the max. number of voices is set to some larger value, as CPU usage increases when sustain is released and never goes back to normal.

Didn't #1252 fix the issue? The PR has been merged recently.
Did you try the LATEST develop branch?

Well, in fact I did mess up things a bit in my repo. The latest develop branch (342cd99dd9eec2cab8f750db23f32f77492177df), indeed, works for me. Sorry for the noise.
So, this is known issue in 1.2.3 release.


Don't update database name to master in publish dialog

This PR fixes #11209

Coverage remained the same at 36.02% when pulling c431c2b0efdcdceaf3aa32d1b3d189277cc46f77 on kisantia/publishDialogMaster into 6d94d795272a01266a88c6b7d250bceb02de5adc on main.


Handling of multiple accounts does not work

Hi,
I've installed the latest version of MMM-Spotify and tried to make the new feature of handling multiple accounts work but the feature is not working.
Behaviour :
If I put several accounts in my spotify.config.json file, the application will not work (with none of the accounts).
If I put one of the accounts (separatly - one at a time), they will work without any issue.
Question :
Is this the normal behaviour ? What should I do to make them work together ?
When they do work, if both account play music at the same time, info from what account would be shown at the screen  ?
My config fie :
[
{
"USERNAME": "RASPED",
"CLIENT_ID" : "MY_ID",
"CLIENT_SECRET" : "MY_SECRET",
"AUTH_DOMAIN" : "http://localhost",
"AUTH_PATH" : "/callback",
"AUTH_PORT" : "8888",
"SCOPE" : "user-read-private app-remote-control playlist-read-private streaming user-read-playback-state user-modify-playback-state",
"TOKEN" : "./rasped_token.json"
},
{
"USERNAME": "RASPI",
"CLIENT_ID" : "MY_ID2",
"CLIENT_SECRET" : "MY_SECRET2",
"AUTH_DOMAIN" : "http://localhost",
"AUTH_PATH" : "/callback",
"AUTH_PORT" : "8888",
"SCOPE" : "user-read-private app-remote-control playlist-read-private streaming user-read-playback-state user-modify-playback-state",
"TOKEN" : "./raspi_token.json"
}
]

What log says?

Havnt check...What should I type in order to enable logs ?

The easiest way to check backendlog on realtime,

To make things simple, remove all other modules except MMM-Spotify (and related modules, if exist)
If you are using pm2 to manage execution of MM, stop it first.
Go to MagicMirror directory and execute npm start dev. It will show the backend log on your terminal shell.

Eouia,
thanks for the support but case can be closed.
I did a retest this morning and the multiple account was working fine.
Can you please share a last point : I did run of the MM with "npm start dev" but how can I activate something like a "debug mode" where I can see exactly what steps are done ?
For ex. : "I say something to the mirror":
-> sentence "blblabla" is catched by the mirror from module MMM-ThisIsTheModule
-> MMM-ThisIsTheModule calls MMM-ThisisThemoduleCalled with arguments "youShouldDoThis"
-> MMM-ThisisThemoduleCalled executed the actions "ThisIsTheAction" ?
To be short I want to follow what is done in order to see why sometimes some actions are catched or not between Hotword-Mk2-Spotify.
Thanks for the great work.

Another issue?
Anyway, you probably are trying to use Hotword, AMK2 and Spotify.
There be many issues on combination of modules.
You should check these first;

Where the issue lays on? modules' working or interaction between specific modules?
=>

Check each module independently. Be loaded and started any suspicious log message on backend log and frontend log.
Check the interactions. Usually it is done by notification between module.

To trace/debug code, Hmmmm.. for the developer, modifying source to spit out some log on suspicious point or to set stoppoint and tracing  is not difficult. But not for the developer... I can't say anything.

The thing is that ...
When I send notifications to MMM-Spotify, must of them work excpt the ones where arguments are past.
Ex. : pattern : "(.) on spotify" or "spotify volume (.)"
The sentences are catched correctly but MMM-Spotify is not doing any action.
I have the feeling that the argument (.*) is not translated/received correctly, thats why I wanted to know if there was a way to "see" what exactly is send out and done via debugging or something.

sorry for the very last response.
I will see as soon as possible

i try with lastest version of MMM-Spotify (v1.3.2) volume support with an premium account and it works
i just says with original Spotify recipe: jarvis ... Spotify volume **value**
value is a number between 0 - 100

@bugsounet
This can be closed.
It was a manual error.


Upload new LIVD Table

Problem statement
We received an updated LIVD to the Reportstream inbox. The LIVD table needs to be uploaded into ReportStream.
What you need to know
LIVD-SARS-CoV-2-2023-09-21 PRIME.xlsx
To do
-upload the updated LIVD Table

Done.  This is duplicated ticket.


Can SqlConfigurableRetryProviders be re-used

Is it advised to always create a new retry provider for every connection / command or can they be re-used across many connections / commands. It is unclear from the documentation what the best practices are:
private static readonly SqlRetryLogicBaseProvider DefaultRetryProvider = SqlConfigurableRetryFactory.CreateIncrementalRetryProvider(
                new SqlRetryLogicOption()
                {
                    NumberOfTries = 5,
                    MaxTimeInterval = TimeSpan.FromSeconds(10)
                }
            );

//...

public IConnection GetConnection()
{
    var connection = new SqlConnection(_options.ConnectionString);
    connection.RetryLogicProvider = DefaultRetryProvider;
    return connection;
}

vs creating it for every connection
public IConnection GetConnection()
{
    var connection = new SqlConnection(_options.ConnectionString);
    connection.RetryLogicProvider = SqlConfigurableRetryFactory.CreateIncrementalRetryProvider(...);
    return connection;
}

Same thing goes for commands

If you have a similar retry logic with all the objects, it's safe re-using a provider, which is exposed in SqlConfigurableRetryFactory. The way you should create a new provider and consume it, depends on your application, like concurrent calls and maintenance policy.
I'll convert this issue to a discussion.


Migrating ConPTY code from C++ to Rust is not working as expected

Hi, thanks for your work on providing bindings to call the Windows API from Rust. I've been trying to migrate pywinpty from a mixture of C++ to Rust. More specifically, this library use the CreatePseudoConsole call in order to leverage the ConPTY API. While this C++ code is working as expected, as it is possible to observe on https://github.com/spyder-ide/pywinpty/blob/master/src/csrc/conpty_common.cpp, the exact same instructions in Rust using Windows-rs are not working as expected.
In this case, the process created using CreateProcessW seems to not be using the information listed on the LPPROC_THREAD_ATTRIBUTE_LIST, at least when defining that the spawned process should use the conhost agent listed using UpdateProcThreadAttribute. Instead, the resulting program takes over the input and output handles of the console that is calling ConPTY, as follows:
Expected behaviour: The calling program is able to read characters from the spawned process.

Actual behaviour: The spawned program takes over the standard streams and is not using the conhost process.

The initialization of the ConPTY agent is done exactly the same in C++ and Rust, as well the call to CreateProcessW:
C++
HANDLE inputReadSide;
HANDLE inputWriteSide;
HANDLE outputReadSide;
HANDLE outputWriteSide;
HPCON hPC;

if (!CreatePipe(&inputReadSide, &inputWriteSide, NULL, 0)) {
        return HRESULT_FROM_WIN32(GetLastError());
}

if (!CreatePipe(&outputReadSide, &outputWriteSide, NULL, 0)) {
     return HRESULT_FROM_WIN32(GetLastError());
}

hr = CreatePseudoConsole(size, inputReadSide, outputWriteSide, 0, &hPC);

...

// Prepare Startup Information structure
STARTUPINFOEX si;
ZeroMemory(&si, sizeof(si));
si.StartupInfo.cb = sizeof(STARTUPINFOEX);

// Discover the size required for the list
size_t bytesRequired;
InitializeProcThreadAttributeList(NULL, 1, 0, (PSIZE_T)&bytesRequired);

// Allocate memory to represent the list
si.lpAttributeList = (PPROC_THREAD_ATTRIBUTE_LIST)HeapAlloc(GetProcessHeap(), 0, bytesRequired);
if (!si.lpAttributeList)
{
    return E_OUTOFMEMORY;
}

// Initialize the list memory location
if (!InitializeProcThreadAttributeList(si.lpAttributeList, 1, 0, (PSIZE_T)&bytesRequired))
{
    HeapFree(GetProcessHeap(), 0, si.lpAttributeList);
    return HRESULT_FROM_WIN32(GetLastError());
}

// Set the pseudoconsole information into the list
if (!UpdateProcThreadAttribute(si.lpAttributeList,
    0,
    PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE,
    hpc,
    sizeof(hpc),
    NULL,
    NULL))
{
    HeapFree(GetProcessHeap(), 0, si.lpAttributeList);
    return HRESULT_FROM_WIN32(GetLastError());
}

...

PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(pi));

// Call CreateProcess
hr = CreateProcessW(
    appname.c_str(),    // Application name
    cmdLineMutable,     // Command line arguments
    NULL,               // Process attributes (unused)
    NULL,               // Thread attributes (unused)
    FALSE,              // Inherit pipes (false)
    EXTENDED_STARTUPINFO_PRESENT | CREATE_UNICODE_ENVIRONMENT,  // Process creation flags
    environment,              // Environment variables
    working_dir,              // Current working directory
    &siEx.StartupInfo,        // Startup info
    &pi                       // Process information
) ? S_OK : GetLastError();

Rust
let mut input_read_side = INVALID_HANDLE_VALUE;
let mut output_write_side = INVALID_HANDLE_VALUE;

// - Hold onto these and use them for communication with the child through the pseudoconsole.
let mut output_read_side = INVALID_HANDLE_VALUE;
let mut input_write_side = INVALID_HANDLE_VALUE;

// Setup PTY size
let size = COORD {X: args.cols as i16, Y: args.rows as i16};

if !CreatePipe(&mut input_read_side, &mut input_write_side, ptr::null(), 0).as_bool() {
    ...
}

if !CreatePipe(&mut output_read_side, &mut output_write_side, ptr::null(), 0).as_bool() {
    ...
}

let pty_handle =
    match CreatePseudoConsole(size, input_read_side, output_write_side, 0) {
        Ok(pty) => pty,
        Err(err) => {
           ...
        }
    };

...

// Discover the size required for the list
let mut required_bytes_u = MaybeUninit::<usize>::uninit();
let required_bytes_ptr = required_bytes_u.as_mut_ptr();
InitializeProcThreadAttributeList(LPPROC_THREAD_ATTRIBUTE_LIST::default(), 1, 0, required_bytes_ptr);

// Allocate memory to represent the list
let mut required_bytes = required_bytes_u.assume_init();
let mut lp_attribute_list: Box<[u8]> = vec![0; required_bytes].into_boxed_slice();
let proc_thread_list = LPPROC_THREAD_ATTRIBUTE_LIST(lp_attribute_list.as_mut_ptr().cast::<_>());

// Prepare Startup Information structure
let mut start_info = STARTUPINFOEXW {
    StartupInfo: STARTUPINFOW {
        cb: mem::size_of::<STARTUPINFOEXW>() as u32,
        ..Default::default()
    },
    lpAttributeList: proc_thread_list,
};

// Initialize the list memory location
if !InitializeProcThreadAttributeList(start_info.lpAttributeList, 1, 0, &mut required_bytes).as_bool() {
    result = GetLastError().into();
    let result_msg = result.message();
    let err_msg: &[u16] = result_msg.as_wide();
    let string = OsString::from_wide(err_msg);
    return Err(string);
}

// Set the pseudoconsole information into the list
if !UpdateProcThreadAttribute(
        start_info.lpAttributeList, 0, 0x00020016,
        self.handle.0 as _, mem::size_of::<HPCON>(),
        ptr::null_mut(), ptr::null_mut()).as_bool() {
    result = GetLastError().into();
    let result_msg = result.message();
    let err_msg: &[u16] = result_msg.as_wide();
    let string = OsString::from_wide(err_msg);
    return Err(string);
}

self.startup_info = start_info;
let pi_ptr = &mut self.process_info as *mut _;

let si = self.startup_info.StartupInfo;
let si_ptr = &si as *const STARTUPINFOW;

let succ = CreateProcessW(
    PWSTR(ptr::null_mut()),
    PWSTR(app),
    ptr::null_mut(),
    ptr::null_mut(),
    false,
    EXTENDED_STARTUPINFO_PRESENT | CREATE_UNICODE_ENVIRONMENT,
    environ as _,
    PWSTR(working_dir),
    si_ptr as *const _,
    pi_ptr
).as_bool();

Given the equivalent code fragments between both versions, I don't understand why the C++ version is working as expected, but not the Rust one. I apologize in advance if this issue does not belong in this repo, but I would appreciate to know the cause of difference between both programs.
Additionally, given the recurrent issues on ConPTY using Rust, it would be valuable to add an example to this repo demonstrating how to use ConPTY effectively on Rust. I can contribute to it if necessary.

It seems that Windows-rs 0.29.0 fixes this issue, the solution is to borrow the STARTUPINFOEXW object as a &STARTUPINFOEXW and then casting it into a *const STARTUPINFOW


Fixing voter history based election in FlexibleVoteCounter

Fixing a bunch of things in FlexibleVoteCounter:

When enabled, considering majority in candidate region in voter history code path
New gflag to control how long we try to win using pessimistic quorum when there is discontinuation in terms
Fixed some bugs and restructured some code along the way

Updated without clang changes


(Automatic) refresh

Would it be possible to add some way of refreshing the list of containers? Either via a manual action (r key) or automagically? It seems that currently one needs to restart docker-mon in order to get the latest containers.

The best would be to connect to the event api and trigger a refresh on new events


Installation process fails in iOS webview with token exchange strategy for shopify-app-remix

Issue summary
Before opening this issue, I have:

[x] Upgraded to the latest version of the package

@shopify/shopify-app-* package and version:
Node version:
Operating system:

[x] Set { logger: { level: LogSeverity.Debug } } in my configuration, when applicable
[x] Found a reliable way to reproduce the problem that indicates it's a problem with the package
[x] Looked for similar issues in this repository
[x] Checked that this isn't an issue with a Shopify API

If it is, please create a post in the Shopify community forums or report it to Shopify Partner Support

Expected behavior
The installation flow completes successfully on iOS Shopify app webview.
Actual behavior
During the installation process the auth.$ remix route is called and in turn it calls await authenticate.admin(request);, the flow reaches then the respondToBouncePageRequest and it throws a Response containing the script that should load AppBridge from https://cdn.shopify.com/shopifycloud/app-bridge.js.
This is where the flow gets interrupted and I am not able to debug any further.
Steps to reproduce the problem

Create a Shopify app using the remix template
Install on development store from Desktop computer and then uninstall the app.
Now using an iOS device go to the Shopify mobile app -> Settings -> Apps and Sales channels -> Uninstalled and install the app.

Thank you for reporting this! We were able to reproduce on our side and we'll look at fixing this in the near future.


BigQuery Feature: reservation usage in job statistics

Summary
This FR tracks work to expose reservation usage information that may be reported as part of BigQuery job statistics, namely JobStatistics.reservationUsage
Details
More detailed information about this work has previously been shared out of band with library maintainers.

No implementation work required.


[Protection Level] page  - visible & editable variables

Similar to #14649 & #14650 & #16445 & #16463
Could the following variables be set protected?

DiscountStyle: Text;
PriceStyle: Text;
LineToVerify: Boolean;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


V808 'kept' object of 'vector' type was created but was not utilized. repair.cc 245

  void ExtractMetaData() {
    std::vector<TableInfo> kept;
    for (size_t i = 0; i < table_numbers_.size(); i++) {
      ScanTable(table_numbers_[i]);
    }
  }

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 29 Jan 2014 at 7:00

fixed in 1.16

Original comment by<EMAIL_ADDRESS>on 10 Feb 2014 at 8:04

Changed state: Fixed


added pagination options to list_projects

added pagination options to list_project_files
fixed erroneous type hints
fixed failing pre-commit config

Task linked: QF-2873 Add pagination to the QFC API endpoints


[Feature request] Option to add count by default

It would be nice to have the ability to return the count in the response without the client having to query for it specifically.
The feature would look like this:
// HasMany::make('comments')->canCount();
HasMany::make('comments')->withCount();

So instead of having to query like this
GET /api/v1/posts/1?withCount=comments HTTP/1.1
Accept: application/vnd.api+json

I would be able to do just this
GET /api/v1/posts/1 HTTP/1.1
Accept: application/vnd.api+json

But still receive the same response:

{
  "data": {
    "type": "posts",
    "id": "1",
    "attributes": {
      "content": "...",
      "title": "Hello World"
    },
    "relationships": {
      "comments": {
        "links": {
          "self": "http://localhost/api/v1/posts/1/relationships/comments",
          "related": "http://localhost/api/v1/posts/1/comments"
        },
        "meta": {
          "count": 17
        }
      }
    },
    "links": {
      "self": "http://localhost/api/v1/posts/1"
    }
  }
}

It would make my client code cleaner since I need the relation count in most cases.
If this is already possible, help me out by referring to the docs. Maybe I missed it :p

The closest thing I'm seeing that's already available to you is HasMany::make('relation')->canCount()->alwaysCountInRelationship(). However, this only results in the meta.count attribute appearing in responses when:

Specifically asking for it like normal via ...?withCount=relation
Hitting the relationship route (.../posts/1/relationships/comments)
Hitting the related route (.../posts/1/comments)

I recognize this isn't what you want (you wish to hit the show route for a specific post without the ?withCount query param but still receive the relation count), but perhaps you can review the laravel-json-api/eloquent package to see if you can implement this feature and submit a pull request for it!

I don't have time for this at the moment. May reopen in the future.


Improve the ETA displayed during backup

The ETA restic displays was based on a rate computed across the entire
backup operation. Often restic can progress at uneven rates. In the worst
case, restic progresses over most of the backup at a very high rate and
then finds new data to back up. The displayed ETA is then unrealistic and
never adapts.
Restic now estimates the transfer rate based on a sliding window, with the
goal of adapting to observed changes in rate. To avoid wild changes in the
estimate, several heuristics are used to keep the sliding window wide
enough to be relatively stable.

What does this PR change? What problem does it solve?
See commit message. This is intended to fix https://github.com/restic/restic/issues/3397.
Was the change previously discussed in an issue or on the forum?
Not in this form, but again see https://github.com/restic/restic/issues/3397
Checklist

[x] I have read the contribution guidelines.
[x] I have enabled maintainer edits.
[x] I have added tests for all code changes.
[x] I have added documentation for relevant changes (in the manual).
[x] There's a new file in changelog/unreleased/ that describes the changes for our users (see template).
[x] I have run gofmt on the code in all commits.
[x] All commit messages are formatted in the same style as the other commits in the repo.
[x] I'm done! This pull request is ready for review.

@matta Are you still interested in working on this PR?

@MichaelEischer, sure.  This PR slipped my mind and I believe that I missed that you applied.  Are your comments and suggestions still relevant?  If so, I can incorporate them, rebase, and push a new version.

@matta There haven't been any changes to this PR since I've reviewed it. So, yes the comments are still relevant.

In the worst  case, restic progresses over most of the backup at a very high rate and
then finds new data to back up.

The problem is - as you pointed out - that the processing rates are very uneven. Moreover, when processing a particular bunch of data, you can compute the current processing rate (better said: the rate of the recent history), but you never know anything about the processing rate of the data-to-follow. So IMO the average processing speed (from beginning up to the current data) is as good as any other recent processing speed. The worst case for your scenario is to find new data at the very beginning and then progress over the remaining data at a very high rate.
So, yes this could be discussed, but IMHO is not worth the complexity of  more than 300 LoC.

Ah, and if this helps: in rustic I first used the ETA provided by a sliding window (the rust crate indicatif supports this) but this was really "flickering" a lot as the rate for existing files jumps a lot (an existing file of 1GB is processed as fast as an existing file of 1kB...). So I decided to use an ETA based on the average rate - as restic is using ATM.
If you really want to follow this sliding-window approach, make sure you get this "flickering" smoothed out!

So, yes this could be discussed, but IMHO is not worth the complexity of more than 300 LoC.

I'll note that most of those 300 lines are tests, which is great, but otherwise I agree with @aawsome. In fact, if the ETA is so bad, and so hard to fix, we could just get rid of it. The info needed to compute its current value is in the status line already.

In fact, if the ETA is so bad, and so hard to fix, we could just get rid of it.

It has been over a year since I sent this PR and I can't say I'd miss the ETA, since I almost always run restic unattended now.
Given the somewhat lackluster interest among basically everybody (including myself), pursuing this PR further isn't high on my interest list. If somehow I've missed that other people are eager to see the ETA improve my interest level might change, but only then.
I do still think that restic's ETA as it is today is too simplistic to be useful and it would be good to address the problem.
The ETA accurate only in the unrealistic situation of a first-run backup consisting entirely of never-before-seen files. I might be atypical, but I never experience this.
This is particularly pronounced when first using restic. In that situation I'm always in a loop of running restic, noticing new paths to exclude, re-running restic, etc. By the end of this process only the tail end of the backup remains and restic's ETA is way too optimistic. If I recall, my initial backup was going to take >24H in reality but the estimate became much less than that, especially after I throttled uploads.  This kind of almost interactive iteration loop with restic is exactly when you want the ETA to be accurate, since you're most likely to be checking up on restic's progress in times like this.  With this PR, the ETA initially shows overly optimistic times as restic races through the first half of the backup, but within a few minutes of hitting unique data the ETA corrects itself into something plausible. It made intuitive sense to me, in that an ETA based on the recent past seems most plausible.
If the goal is user-value per line of code, then perhaps we'd be better off by deleting the ETA.
If the goal is providing an ETA that behaves more "sensibly" or "intuitively" for some definition of those terms, I think this PR can do that (or be the basis of an improved approach).

Given the somewhat lackluster interest among basically everybody (including myself), pursuing this PR further isn't high on my interest list. If somehow I've missed that other people are eager to see the ETA improve my interest level might change, but only then.

FWIW, I ran into the ETA estimation issue yesterday (uploading 10 GB via the network which takes ~8 hours; I interrupted at ~70% and when I resumed restic told me it would finish in 20-30 minutes) and I came to check if there were any reported issues and I saw your issue and PR.
I don't want to pollute this PR but wanted to say that I'm definitely interested in you completing this PR.

FWIW, I ran into the ETA estimation issue yesterday (uploading 10 GB via the network which takes ~8 hours; I interrupted at ~70% and when I resumed restic told me it would finish in 20-30 minutes) and I came to check if there were any reported issues and I saw your issue and PR.

Actually, this PR won't help you in this case - it would still tell you for about 20 minutes that it would totally take 20-30 minutes until it realizes that the processing rate "suddenly" drastically changed and the ETA would increase to about 2.5 hours.
I doubt that this is what you would call a "good" ETA - yet the reality is that for your case there is no way for restic to know that after the very fast processed first part of your data (which has been already uploaded by the aborted first run) there comes a part which gets processed much faster.
For the problem you are referring, you might have a look at #3230 - that PR would allow to process the first part in only few seconds instead of ~20 minutes - and then just do the normal processing of the remaining data.

Actually, this PR won't help you in this case - it would still tell you for about 20 minutes that it would totally take 20-30 minutes until it realizes that the processing rate "suddenly" drastically changed and the ETA would increase to about 2.5 hours.

I didn't keep the log file so I can't remember the exact times (although I'm doing another backup now and could test). But IIRC restic is very fast in finding the data that is already there.  I see how your "Add resuming from aborted backups" PR would make it almost instantaneous but I don't think it took very long.
So with this patch, hopefully restic would figure out fairly quickly that the real speed is lower than the initial speed.

FWIW, I ran into the ETA estimation issue yesterday (uploading 10 GB via the network which takes ~8 hours; I interrupted at ~70% and when I resumed restic told me it would finish in 20-30 minutes) and I came to check if there were any reported issues and I saw your issue and PR.

Actually, this PR won't help you in this case - it would still tell you for about 20 minutes that it would totally take 20-30 minutes until it realizes that the processing rate "suddenly" drastically changed and the ETA would increase to about 2.5 hours.

Hey @aawsome, I believe this PR does a better job than you suggest above. It is intended to improve the estimate in precisely this "restarted backup" scenario.
The PR establishes a sliding window that is at least 2 minutes and 10 MB wide. Once both two minutes and 10 MB of transfer pass the estimate has completely "forgotten" any prior transfer rate, and the provided estimate becomes accurate, assuming the transfer rate is stable going forward.
In this case the network transfer rate is 10 GB over 8 hours or, equivalently, 10 MB over 28 seconds, so the two minute window dominates. A recovered backup would show an extremely quick estimate (probably sub-minute) for the initial "catching up" portion of the restarted backup. Once the network transfer work begins the estimate would quickly rise, smoothly, over the two minute period, to the a correct and stable estimate. Even during this two minute window the incorrectness of the estimate is evident because it is steadily increasing.

I'm inclined to give this PR a try. If it doesn't work out, we still can revert it or just remove the ETA altogether.


Enabled COGNITO_AUTHENTICATION as a secondary auth types

Use authMode to enable COGNITO_AUTHENTICATION as a secondary auth types
Issue #, if available:
Description of changes:
use authMode attribution to handle the issue when cognito authentication is the secondary auth method
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thanks for contributing!
The code itself looks good to me, just to make sure I understand the use-case, this change is to make sure that people who do not have Cognito as the default auth selected on their API, being able to specifically use cognito if they specify that in their seeding script?

Yes, that's exactly correct!


update to 2.2

Hi, it would be great to update this to Paramiko 2.2.
I have a project requiring 2.2 (due to ed25519 host keys), and it would be great to see paramiko 2.2 in conda-forge :-)

There's a version in the works, but it's been held up due to issues with getting pynacl to build correctly on windows.


Error when adding a non-existing folder to the *.code-workspace file

Testing #30722:
while I had a workspace open, I've edited the underlying *.code-workspace file in another VS Code window and added a path for a non-existing folder.
I was impressed that the original VS Code workspace picked up the change and immediately showed the folder in the explorer. However clicking on the folder resulted in this error (for obvious reasons):

Fixing the problem by creating the missing folder outside of VS Code seemed to fix the problem for VS Code too (since selecting the folder no longer showed an error).
However, trying to create a file in that folder had no effect and did not produce an error (even in chrome dev tools).
After a window reload I was able to create a file.

Again related to: https://github.com/Microsoft/vscode/issues/29738

Fixed via fix for #29738


Problem with ReplicatedMergeTree after update

Hello. I have problem with the creation of ReplicatedMergeTree tables type, after updating to version 1.1.54284 (server and client).
When i executing statement like:
CREATE TABLE mydbname.mytablename ( date UInt32,  universe UInt32,  date_day Date MATERIALIZED toDate(concat(substring(toString(date), 1, 4), '-', substring(toString(date), 5, 2), '-', substring(toString(date), 7, 2))))
ENGINE = ReplicatedMergeTree('/clickhouse/tables/myshard/mydbname.mytablename', '01', date_day, date, 8192)
I've got following error:
DB::Exception: Cannot parse input: expected metadata format version: 1 before: mytable table metadata directory.
The path: /clickhouse/tables/myshard/mydbname.mytablename/metadata "mytable table metadata directory" is present in zookeeper.
Please help, what i'm doing wrong?
Regards.

Hi!
I can't reproduce the problem.
Also, I can't find a similar exception message in ClickHouse's code base.
Could you provide the full exception message with stacktrace (just run clickhouse-client with --stacktrace parameter and repeat the query), please?

The path: /clickhouse/tables/myshard/mydbname.mytablename/metadata "mytable table metadata directory" is present in zookeeper.
Do you mean that the directory had existed before you ran the query?
If so, you have to delete it and its parent directory, so /clickhouse/tables/myshard/mydbname.mytablename should not exist.

Hello, i've solved this issue by myself. The problem is, that i'm specifying wrong path to zknode.
Regards


Ttl

For a project I need to set the expiration date of a notification.
I implemented it for APNS and GCM.
C2DM doesn't support it.
MPNS does support it but I have zero experience with MPNS.

Can this one here then be closed?


No main class specified and classpath is not an executable jar.

Hello, Im trying to use this library to create an app for android and windows, when I set the dependency, the gradle works fine in android but in windows I recived the following message: Execution failed for task ':composeApp:desktopRun'.

No main class specified and classpath is not an executable jar

For the record when I delete the dependency the project works fine in boths platforms.

What version of compose are you using?

These are the dependencies of my project
[versions]
agp = "8.2.0"
android-compileSdk = "34"
android-minSdk = "24"
android-targetSdk = "34"
androidx-activityCompose = "1.9.0"
androidx-appcompat = "1.7.0"
androidx-constraintlayout = "2.1.4"
androidx-core-ktx = "1.13.1"
androidx-espresso-core = "3.6.0"
androidx-material = "1.12.0"
androidx-test-junit = "1.2.0"
compose-plugin = "1.6.11"
junit = "4.13.2"
kotlin = "2.0.0"
koin-version = "4.0.0-RC1"
ktor = "4.0.0-RC1"
koin-bom = "4.0.0-RC1"
kotlinx-serialization = "1.6.3"
kamelImage = "0.9.4"
koin-compose = "4.0.0-RC1"
ktor-client-core = "2.3.11"
ktor-client-cio = "2.3.11"
ktor-client-logging = "2.3.11"
ktor-client-content-negotiation = "2.3.11"
ktor-client-json = "2.3.11"
ktor-client-serialization = "2.3.11"
lifecycle-viewmodel = "2.8.0"
coroutines-swing = "1.7.3"
voyager-version = "1.1.0-beta02"

What version of the constraintlayout library are you using?

I trien with:
    implementation("tech.annexflow.compose:constraintlayout-compose-multiplatform:0.4.0")
    implementation("tech.annexflow.compose:constraintlayout-compose-multiplatform:0.5.0-alpha03")


Various updates to physics event class

Modifications

Writing double values in json file for SiPM phe to Gev instead of an array of doubles with size 1.
Changed std::array<double,1> to match the change in json file
Avoiding copying string to char arrays with strcpy. Just use string.c_strign() to obtain a plain char array.
Setting totSiPMPheS and totSiPMPheC to 0 in method "calibrate". Now there is no need to do it after each Tree->Fill()
Calculating SPMTenergy and CPMTenergy in method "calibratePMT". Now there is no need to call CompSPMTene and SompSPMTene at each loop.
Using subprocess module for advanced commands instead of os.system.
Using multiprocessing to allow conversion of large numbers of files
Python code is now Python3 compliant (print "Stuff" -> print("Stuff")
Omogeneous indentation.

Doubts

Files "merged***.root" contain ints for SiPM adc values. It would be better to switch to uint16_t that is the exact type stored by SiPM daq.
Is there any reason to use floats in class EventOut?

To answer your questions:

"Files "merged***.root" contain ints for SiPM adc values. It would be better to switch to uint16_t that is the exact type stored by SiPM daq." We should ask @ivivarel to commit this change.
"Is there any reason to use floats in class EventOut?" We do not need double there, floats will be precise enough and save us some disk.

Last comment:

About indentation. We should let the users properly indent their code, if we indent lines written by others the history will be messed up. We can ask for proper indentation to the original user and use git clang-format on our future staged modifications. This way we will not destroy the history.


Improve README for botbuilder-dialogs

I think this is a good README for the Dialogs.
This information will appear on the NPM page, which is why I think it is important to include some inline examples and information.
My goal is to give developers the information necessary to quickly use these modules in their apps without having to read a ton of documentation and get into the weeds.  So, I’ve demonstrated the minimum necessary to get a working dialog here, and pointed to class references and other docs.

Anyone have see any red flags here?
Should I go ahead and remove the stuff about using the @preview tag etc since this won’t go to NPM until launch?
I would like to link to relevant samples.  Is that ok?

Pull Request Test Coverage Report for Build 1297

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.83%

Totals

Change from base Build 1289:
0.0%

Covered Lines:
2220

Relevant Lines:
3037

💛  - Coveralls


cmake/presets: fix xpLinuxNinja

xpLinuxNinja presets were enhanced with this issue https://github.com/externpro/externpro/issues/75 and commit https://github.com/externpro/externpro/commit/3917e87758ab7aa02a30b4519138cc50c147fe7d
when running
cmake --workflow --preset=LinuxRelease

there is an error, for example:
Executing workflow step 3 of 3: package preset "Linux"

CPack: Create package using TXZ
CPack: Install projects
CPack: - Install project: GlobalHawkLinkSource [Debug]
CPack: -   Install component: server
CMake Error at /bpvol/globalhawklinksource/_bld-Linux/main/cmake_install.cmake:61 (file):
  file INSTALL cannot find
  "/bpvol/globalhawklinksource/_bld-Linux/main/Debug/GlobalHawkLinkSource":
  No such file or directory.
Call Stack (most recent call first):
  /bpvol/globalhawklinksource/_bld-Linux/cmake_install.cmake:61 (include)

CPack Error: Error when generating package: GlobalHawkLinkSource

there needs to be a LinuxRelease package preset (which only has the Release configuration) that the LinuxRelease workflow preset uses since the Linux package preset includes both Debug and Release configurations


Refactor examples

This is an attempt at fixing #618 and #607. Changes made by this PR are:

Create a package named after each service in gcloud-java-examples
Create a package snippet in each service's package to hold README's snippets
Split Datastore Storage and ResourceManager examples in two
Create a class for each snippet in the corresponding service package
Add reference in the READMEs to the corresponding snippet class
Update package-info.java accordingly

Nice work! This is way better than what we have now.
Few comments/suggestions/questions.

Took a pass, looks great!  Mostly nits from me.

Comments fixed

Looks great to me. I think the only comment not addressed is @ajkannan "Jonn Doe" comment. is that right?

I think I addressed it in 384a3f1, did I miss it somewhere?

Here's the missed occurrence: https://github.com/GoogleCloudPlatform/gcloud-java/pull/635/files#diff-04c6e90faac2675aa89e2176d2eec7d8R189

@ajkannan oops sorry, totally missed


App.get_running_app().stop() @ sdl2

Using this in the new android toolchain makes the app to crash appearing the window "Unfortunately, App X has stopped."
It worked fine using pygame, with sdl2 it doesn't.

@inclement, was this a known issue?

It's known to me at least. Though this bug report should include the actual output of the crash from logcat, but I suspect it's the issue where a Python thread is still running (or some code is calling CPython functions) after the interpreter shutdown, leading to a seg fault.

I am seeing this as well, and kived's speculation about the segfault is correct.
My app has an r-u-sure popup that asks the user for exit confirmation, and when the user says yes, the popup calls app.stop(). The crash is a segfault resulting from an onPause call in the SDL library after the python exit has happened. See attached logcat output.
I tried following the pattern of calling Window.close() as suggested in https://github.com/kivy/python-for-android/issues/734
but it made no difference.
crash3.txt

@dlparker I managed to fix it in my app somehow.

Redefine your app stop method this way:

class MyApp(App):
    def stop(self, *largs):
        self.root_window.close()  # Fix app exit on Android.
        return super(MyApp, self).stop(*largs)

Use  stopTouchApp instead of app.stop (needed to avoid multiple on_stop dispatches):

from kivy.base import stopTouchApp

stopTouchApp()

You may be also interested in this PR. It'll fix home button exit if your app doesn't support sleep mode.

Yes ! self.root_window.close()  method is working !


Potential ByteBuf Leak

Our RPC application fully relies on netty solution to reach extreme performance & throughput
We encounter bytebuf issue under low frequency, but it's hard to identify the root cause.
During netty source code reading, I wonder any potential  action forReferenceCountUtil.release() needed to introduced at AbstractChannelHandlerContext#invokeWrite0(Object, ChannelPromise) error handle
Expected behavior
No ByteBuf Leak for entire netty channel pipeline.
Actual behavior
msg=LEAK: ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.
Recent access records: 1
#1:
	io.netty.buffer.AdvancedLeakAwareByteBuf.writeBytes(AdvancedLeakAwareByteBuf.java:612)
	io.netty.buffer.ByteBufOutputStream.write(ByteBufOutputStream.java:66)
	com.google.protobuf.CodedOutputStream.refreshBuffer(CodedOutputStream.java:965)
	com.google.protobuf.CodedOutputStream.flush(CodedOutputStream.java:975)
	com.google.protobuf.AbstractMessageLite.writeTo(AbstractMessageLite.java:82)

Steps to reproduce
I fail to describe the reproduce steps
Minimal yet complete reproducer code (or URL to code)
            currentChannel.onResponse(requestCtx.getOutBound());

@Override
  public void onResponse(RPCResponse rpcRawResponse) throws IOException {
   ... ....
      sendResponse(rpcRawResponse);

protected final io.netty.channel.Channel channel;
@Override
  public void sendResponse(RPCResponse response) {
    channel.writeAndFlush(response, channel.voidPromise());
  }

Netty version
4.1.9-Final
JVM version (e.g. java -version)
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
OS version (e.g. uname -a)
4.4.0-63-generic #84~14.04.2-Ubuntu SMP

Please provide a minimal/complete reproducer. Code snippets with limited context not help us reproduce.
Please see http://netty.io/wiki/reference-counted-objects.html for addition details on reference counting. If you don't write the buffer to a channel or release it you will likely have a leak.

@shanling2004 ping

Closing it due no activity ... please reopen if you still think its an netty issue


Ouster submodule update

Status
DEVELOPMENT
Description
Updated head of Ouster submodule to incorporate recent changes.
Related PRs
None
Todos

[x] Tests
[x] Documentation

Steps to Test or Reproduce
Just pull this branch and verify the change in Ouster driver submodule.

Before merging, will try CI


Location and mapping of Af50 Dan

From Email:

I was wondering about the specific source that was used to get the coordinates for Dan
(af50) from the Ethnographic Atlas.  The current value for longitude is 8, but I think it may
need to be -8.  Currently, DPLACE shows Dan in Nigeria (with longitude = 8), but they should
be in Ivory Coast/Liberia (longitude = -8).

Updated glottocode mapping to Dan language (rather than dialect) and updated the location in https://github.com/D-PLACE/dplace-data/commit/9020b24a99520ad2b28ee82ec2609aa1b0077f6c


Move name field out of Settings and into ReportDetailsPage

Details

This PR is opened because the contributor assigned for the issue #40262 has been banned and the PR #40858 can no longer be modified and merged. Context here.
Fixed Issues

$ https://github.com/Expensify/App/pull/40262
PROPOSAL: https://github.com/Expensify/App/issues/40262#issuecomment-2164156184
Tests

Go to a room or a group chat.
Click on the header.
Verify that the name of the room/group is displayed in the right hand panel.

[x] Verify that no errors appear in the JS console

Offline tests

Same as Tests
QA Steps

Same as Tests

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/102477862/83e8f6ee-9fdb-4ff3-88fd-d442ffe5b994

MacOS: Desktop

@eVoloshchak, PR ready for your review.
@youssef-lr sorry, I made a mistake in adding the issue in Fixed Issues and you were assigned. Fixed it now and @marcaaron is the internal engineer for the referred issue.

Can you also share a screenshot of what the details view of a report that has an non-editable title looks like for comparison?

@shawnborton
I added all the screenshots here in this comment in the Web Chrome section of Screenshots/Videos. Please have a look.
I followed option 1 specified here.

@eVoloshchak @marcaaron
These are the new changes made compared to the previous PR.

As per this comment here, editable room/group names have the new look and aligned to left and the non-editable room/group names have the usual look with centre alignment. So, I moved the shouldShowRoomName logic existed in the previous PR to shouldDisableRename in ReportUtils.
I removed the policy param in the shouldDisableRename because it was used only to identify a public room. Additionally, the existing function looked like it was only applicable to policy rooms even though there was a isGroupChat check as well in it. Now, I think it is clearer than before that it is a generic function applicable for all reports.

Looks pretty good to me! Going to spin up a test build though for some local testing.

@eVoloshchak PR ready for review!
cc: @marcaaron

Screenshots are looking good—I'll check out the ad hoc build once it's ready too.

Feels pretty good to me from testing the adhoc links above!

Hi @c3024, just wanted to let you know that the feature you are working on in this PR is also a part of a flow that I am refactoring over in this PR, I will try to unify our code by looking into the way you've implemented it but still keep in mind the fact that we're working in parallel on this feature if my PR gets merged first.

Thanks for sharing @cdOut , does it make sense to put one of the issues/PRs on hold?  And/or to have a discussion somewhere? ( #expensify-open-source ?)

Thanks for sharing @cdOut , does it make sense to put one of the issues/PRs on hold? And/or to have a discussion somewhere? ( #expensify-open-source ?)

Not really, it is however something we should keep in mind when merging one of those issues after the other.

What's the latest here? Do we just close this one out since I think this is already implemented?

This has been implemented in the Details Revamp flow during the refactor of ReportDetailsPage, I think this issue can be closed.

Okay cool, I'm just going to close this one out then - let me know if anyone disagrees!


Can it be run on Hugging Face (huggingface.co)? If so, how?

Hugging Face supports the following environments:

Can it be run on Hugging Face (huggingface.co)? If so, how?

The current system requires 128GB RAM and ~200GB nvme SSD storage to run. I don't know if it's possbile to run on hugging face.

I  checked Huggingface's documentation. They just support running a single docker container now.
If you are familiar with docker-compose, you can use this optimized search engine to try, https://github.com/shotit/shotit/blob/main/docker-compose.yml.
It instead uses a vector database under the hood to provide blazing-fast search functionality. Deployed at a 4V32G Ubuntu machine, it can search 70 million vectors 3700+ episodes in seconds, with long-term RAM of about 20G.
v0.9.3 is working, yet not much documentation is provided at the moment. Sorry.
The procedure is similar to what soruly have described at README here. docker-compose up -d and place /anlist/epsode.mp4 files to volumes/shotit-incoming
git clone https://github.com/shotit/shotit.git

Let's get back to this when hugging face supports docker-compose


Honouring no-break spaces

Hello,
I am a user of the ProtonMail webmail service, which seems to incorporate Squire for its email editor.
I noticed today the editor honours the "narrow no-break space" (UTF encoding U+202F) but not the "no-break space" (UTF U+00A0).
By "honours" I mean that if one types, for instance, "aaaaaa[space]test[no-break space]test" then adds "a"s to the beginning until the "test" reaches the side of the editor, "test[no-break space]test" gets broken, where as "test[narrow no-break space]test" does not (which is expected behaviour). I ran tests on this implementation: https://neilj.github.io/Squire/ as well as in ProtonMail's one.
In French this is used for instance in « quotation marks », which should not break from what they are quoting on line-end, but do require inlay spacing.
For info, the narrow no-break space is a latter addition to unicode. It is the one that should be used in French, but in effect, it is rarely seen, and the plain no-break space is usually preferred. See: https://en.wikipedia.org/wiki/Non-breaking_space for more information.
Thanks for a great editor though, just thought I'd mentions this :)
Regards,
Mark.

Hi Mark,
The non-breaking space is being replaced with a normal space by the browser, not the Squire code, and this would be very difficult to work around. The reason is that HTML collapses normal white space at the end of block content (e.g. the end of a paragraph), so when you hit space the browser normally inserts a non-breaking space by default if the cursor is at the end of the block. If you then press another key to insert the next character, it replaces that preceding non-breaking space with a normal space, because it's no longer necessary (as it's no longer at the end of the block). It doesn't differentiate between the one you inserted and the one it inserts by default.
A workaround would be to type your content after the space first, then go back and replace the normal space with a non-breaking one. This should work I think.
Regards,
Neil.

Hi Neil,
Thanks for the fast response!
I read a little about this behaviour by the browser in one of the older issues on your repo.
I don't mean to insist but the workaround of going back and inserting the no-break space once the next word is typed doesn't seem to function, and I am not seeing this in other web-based text editors.
I get the same behaviour in your test implementation whatever order I do the inserting of the no-break space. And I also wonder: how is it that other editors (like the comment one for github I'm using right now) don't have a problem with the no-break space, inserted after or before the characters in the next word? Does this involve some heavy workaround hack?
Sorry to be bothering you like this :/
Mark.

The GitHub input is not a rich text editor. It's just a simple <textarea>. That's entirely different. Compare it to something like http://ckeditor.com/demo – as far as I can see that behaves exactly the same as Squire with respect to non-breaking spaces.

Ah, ok, I never realised the implementations were different.
But however, I am still seeing the same behaviour, in the ckeditor, and in the version of Squire that ships with ProtonMail. Order in which next word and no-break space are entered doesn't seem to make any difference.

Hmm, yes it seems the browser just automatically replaces the non-breaking space immediately if it doesn't need to be non-breaking in that context. Not sure why I thought differently before.

Should I take a look at this on Mozilla's side maybe?

Which other editors?

Well, I could name a lot but I'm not aware of the details of their implementation: this "comments" editor on reddit, definitely. Text boxes on various websites I use for work in French.
However, I just tested gmail and hotmail, and they both behave like Squire...

I'm 99% certain you're comparing rich text editors to just a plain text input. These are completely different things. A rich text editor lets you add formatting (e.g. bold, italic, font etc.). This is what Squire is. The way this works is entirely different to a plain text box (where you can just insert text and not apply any formatting).

Aaah. And the trick github or reddit and such use is that they have markdown, right?

I wouldn't call markdown a "trick", but yes: with markdown you enter everything in plain text. After you've submitted this, a series of rules are applied to convert that into rich text (HTML), but the input form itself only deals with plain text. With a rich text editor you can apply formatting directly (WYSIWYG) and you create the HTML directly.

Understood. So indeed, this seems like a browser imposed behaviour common to all rich-text web-editors. Will test a few other browsers to see how they react.
Thanks for your time Neil.
All the best,
Mark.

I guess it's this issue: https://bugzilla.mozilla.org/show_bug.cgi?id=832728
Which nobody seems in any hurry to solve by the look of the bug report :)


std/dir_spec.cr fails when the current working directory path contains symlinks

To reproduce:
$ ls
crystal/
$ ln -s crystal cr; cd cr
$ bin/crystal spec spec/std/dir_spec.cr
Using compiled compiler at /home/user/crystal/.build/crystal
......................................................F.................

Failures:

  1) Dir .current
     Failure/Error: Dir.current.should eq(`#{{{ flag?(:win32) ? "cmd /c cd" : "pwd" }}}`.chomp)

       Expected: "/home/user/cr"
            got: "/home/user/crystal"

     # spec/std/dir_spec.cr:511

getcwd(3) always returns path with all symlinks resolved but the pwd shell builtin may return a "logical" path with symlinks. I think the  fix here would be to call env pwd -P instead to make sure the spec compares two physical paths.

Hm, this might actually an error (or perhaps a shortcoming?) in the implementation. IMO the spec is correct.
I would expect Dir.current to return the same value as pwd in the shell, i.e. the literal path including symbolic links. That would be the least surprising result and match typical user expectations.
And you can easily resolve the symlink path with File.real_path in case you want the other, while the opposite direction is not as simple.
Thus the implementation should rather use the GNU extension function get_current_dir_name instead of getcwd. We'd probably have to implement it ourselves though, because get_current_dir_name is not available on all platforms (including FreeBSD).
The difference is simply to check whether the environment variable PWD is set and - with symbolic links resolved - points to the same directory as getcwd .
This is a bit overhead when you actually need the path with symbolic links resolved, so we could consider adding a variant which efficiently returns the value from getcwd without taking PWD into account.

If you're on FreeBSD this was brought up in the past via https://github.com/crystal-lang/crystal/pull/12117, but it was closed by the author. I added some context in one of the comments for what we discovered was going on.

Btw. on windows this seems to be the actual behaviour (provided by GetCurrentDirectoryW)
$ cmd.exe /c dir
27.07.2022  01:10    <SYMLINKD>     bar [foo]
27.07.2022  01:07    <DIR>          foo
$ crystal.exe eval 'Dir.cd("bar"); puts Dir.current'
C:\tmp\bar

For comparison, on Linux. I'm running exactly the same program in exactly the same directory (Windows file system mounted in WSL2).
$ ls -l
total 0
lrwxrwxrwx 1 johannes johannes   3 Jul 27 01:10 bar -> foo
drwxrwxrwx 1 johannes johannes 512 Jul 27 01:07 foo
$ crystal eval 'Dir.cd("bar"); puts Dir.current'
/mnt/c/tmp/foo

@Blacksmoke16 yes, this is easily reproducible on FreeBSD due to the /home being a symlink. But the pwd -P (the binary, not the shell builtin) should behave the same way everywhere, do you have an example of a platform where this is not the case? Using the builtin might work too (bash's pwd supports -P, as does FreeBSD's sh), but I'm not sure about other shells.


add the stop command

code adjustment to add stop command

I forgot to format rkt/stop.go and rkt/containers.go files with gofmt.
And I think I'm wrong with the title format.


fetchgit: shallow clone for submodules

Description of changes
I enabled shallow cloning for submodules.
It will not shallow clone if deepClone or leaveDotGit is true. I belaeve you don't have to deep clone when only leaveDotGit is true, but I thought it may change the hash, so I put it there. If it's not an issue, I'm happy to remove this restriction.
I tested with a few packages that have a submodule and it seemd to work without the hash changing. If there is a better way of testing I would like to know.
This should help for git repositorys with a large submodule (in my case the submodule was LLVM).

Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Thanks for the review!
I think I should add a test with a submodule, but the repo used in the test (nix) does not have a submodule. Is there a good repo with a submodule that I can use? Or should I just choose a random repo?

Pick a random repo

I think I have found that using fetchSubmodules and leaveDotGit or deepClone together, it will cause an error. The error message is like below.
...
fatal: not a git repository (or any parent up to mount point /)

looking at the script, I can see that it is trying to change directory into a .git in the submodule, which is a file, making it fail.
Looking through nixpkgs, I can only see 1 package which has both options enabled (and it is gated by NIXPKGS_ALLOW_INSECURE=1). Which means this is not a big issue now but worth debugging.
I will update this PR with some test cases to reproduce the results, and change this to a Draft for now.

The issue seems to be leaveDotGit. It can be reproduced like this.
$ nix-prefetch-git --url https://github.com/pineapplehunter/nix-test-repo-with-submodule --rev 26473335b84ead88ee0a3b649b1c7fa4a91cfd4a --fetch-submodules --leave-dotGit
Initialized empty Git repository in /tmp/git-checkout-tmp-dohXPkOr/nix-test-repo-with-submodule-2647333/.git/
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 4 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 416 bytes | 416.00 KiB/s, done.
From https://github.com/pineapplehunter/nix-test-repo-with-submodule
 * branch            HEAD       -> FETCH_HEAD
Switched to a new branch 'fetchgit'
Submodule 'nix-test-repo-submodule' (https://github.com/pineapplehunter/nix-test-repo-submodule.git) registered for path 'nix-test-repo-submodule'
Cloning into '/tmp/git-checkout-tmp-dohXPkOr/nix-test-repo-with-submodule-2647333/nix-test-repo-submodule'...
Submodule path 'nix-test-repo-submodule': checked out '3223dfc5e18f5c15e0cb26ea7bdf5f12d215619b'
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Enumerating objects: 4, done.
Nothing new to pack.
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

@Artturin
Okay, I think I figured it out.
This should all work now, but I had to change some parts of make_determinisitic_repo in nix-prefetch-git.
Is there a easy way to check if this breaks other packages?

Thanks

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/cant-build-solvespace-from-scratch-fetching-git-source-fails/46536/5


resourcerecordset: Should set AliasTarget when check if it is up to date

Description of your changes
When setting AliasTarget in v1alpha1.ResourceRecordSetParameters, IsUpToDate() will always return false since it does not fill up the field AliasTarget then CreatePatch will contain the part about AliasTarget when comparing with the expected state.
This will make it always try to do a useless update after observing the state.
I have:

[x] Read and followed Crossplane's contribution process.
[x] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested
Add unit test.
Note before fixing it, the first call of IsUpToDate in the added test case should be true, but it return false.

@haarchri
Would you help take a look


windows2016 stemcells should turn off realtime malware scanning (and windows2012R2 if possible)

Leaving on Windows Defender realtime malware scanning introduces a large performance cost for windows2016 vms (especially those running containers during create and delete).
We would like to disable Windows Defender realtime malware scanning to mitigate this.
I'm not sure which part of the BOSH.CFCell module is the right place for this but we would like to add:
Set-MpPreference -DisableRealtimeMonitoring $true

To turn off realtime scanning on the windows2016 stemcell.
I am not sure if the same powershell module is available in the builtin modules for the windows2012R2 stemcell but if it is, it would be great to disable it there as well.
References:

https://technet.microsoft.com/en-us/itpro/powershell/windows/defender/set-mppreference

Great idea! Can't wait for this to be released.


mkdocs serve does not watch for changes in mkdocstrings

Usually when I view mkdocs-generated documenation during development, the server will watch for changes and the page will auto-reload when changes are detected. Using mkdocstrings, I have not seen this happening, and to view changes I have to kill the mkdocs serve process and restart it.

Hey, I noticed one bug due to an obscure Numpy bug.
If numpy is being imported by any of the modules being documented (or any of their dependencies), it will throw a RuntimeError exception:
[E 200304 13:33:06 ioloop:909] Exception in callback <bound method LiveReloadHandler.poll_tasks of <class 'livereload.handlers.LiveReloadHandler'>>
    Traceback (most recent call last):
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/tornado/ioloop.py", line 907, in _run
        return self.callback()
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/livereload/handlers.py", line 69, in poll_tasks
        filepath, delay = cls.watcher.examine()
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/livereload/watcher.py", line 105, in examine
        func()
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocstrings/plugin.py", line 85, in unload_and_rebuild
        builder()
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocs/commands/serve.py", line 114, in builder
        build(config, live_server=live_server, dirty=dirty)
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocs/commands/build.py", line 270, in build
        nav = config['plugins'].run_event('nav', nav, config=config, files=files)
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocs/plugins.py", line 94, in run_event
        result = method(item, **kwargs)
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocstrings/plugin.py", line 110, in on_nav
        root_object = self.documenter.get_object_documentation(import_string)
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocstrings/documenter.py", line 310, in get_object_documentation
        module, obj = import_object(import_string)
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/mkdocstrings/documenter.py", line 585, in import_object
        parent_module = importlib.import_module(parent_module_path)
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 728, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "/home/jaime/devel/py/openkinome/kinoml/kinoml/core/complex.py", line 2, in <module>
        from .ligand import Ligand
      File "/home/jaime/devel/py/openkinome/kinoml/kinoml/core/ligand.py", line 3, in <module>
        from openforcefield.topology import Molecule
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/openforcefield/topology/__init__.py", line 1, in <module>
        from openforcefield.topology.molecule import (
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/openforcefield/topology/molecule.py", line 36, in <module>
        import numpy as np
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/numpy/__init__.py", line 142, in <module>
        from . import core
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/numpy/core/__init__.py", line 17, in <module>
        from . import multiarray
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/numpy/core/multiarray.py", line 14, in <module>
        from . import overrides
      File "/home/jaime/.conda/envs/kinoml/lib/python3.7/site-packages/numpy/core/overrides.py", line 47, in <module>
        """)
    RuntimeError: implement_array_function method already has a docstring

I think this is due to the fact you reload all modules upon save to obtain the potentially new changes. Is there any way to whitelist numpy from this process?

Hm, I patched this in and seems to work. plugin.py at line 74:
    def on_serve(self, server, config, **kwargs):
        builder = list(server.watcher._tasks.values())[0]["func"]

        def unload_and_rebuild():
            diff = set(sys.modules.keys()) - self._sys
            log.info(
                f"mkdocstrings: Unloading modules loaded after mkdocstrings plugin was instantiated ({len(diff)} modules)"
            )
            for module in diff:
                if "numpy" in module:
                    continue
                del sys.modules[module]
            self.clear()
            builder()

        for element in self.config["watch"]:
            log.info(f"mkdocstrings: Adding directory '{element}' to watcher")
            server.watch(element, unload_and_rebuild)
        return server

Ultimately we won't need this module reloading hack (see https://github.com/pawamoy/mkdocstrings/issues/28#issuecomment-582141157), but until then I can accept this patch if you want to send a PR :slightly_smiling_face:

Submitted! :)

New architecture is almost ready. The data collection is done in a subprocess, with pytkdocs, and so this issue should be resolved, therefore I'm closing it. We'll open a new one if similar problem appear.

Still experiencing this issue

Hi @airtonix, please open a new issue with more info :slightly_smiling_face:


When deleting an address ask if all the related transactions should also be deleted

android https://zpl.io/agQWD9M

Bug: addresses don't delete.

checked


Security risk: No compute meter checks for straight line programs

Problem
A program can be a maximum of 10MB, or roughly 1_250_000 opcodes (8 bytes per opcode). Since there are no compute meter checks for straight line programs, a program can exceed their compute budget willfully.
Solution
Either:

Every random noop (or random subset thereof) should be replaced by emit_validate_and_profile_instruction_count
When emitting instructions, maintain a counter alongside the cumulative cost. Increment counter by cost of ops encountered. Whenever one does emit_validate_and_profile_instruction_count, reset counter. If counter exceeds STRAIGHT_LINE_VALIDATE_THRESHOLD: u64 = 1000, do emit_validate_and_profile_instruction_count. This ensures that at most, a program will exceed the given budget by 1000.

Misc
This also suggests that 10MB programs may be a little too large to do JIT for on-demand - suggesting that programs of a certain size (> 100_000 opcodes) should be JITed asynchronously and interpreted on-demand until JIT is ready.
Will be interested to see JIT timings for programs of varying length.

As a separate but related question, is JIT currently enabled on mainnet?

My worry is not the detection per-se but rather to catch such programs in the act so they don't run for say 100ms rather than say a target 10ms.

We are aware that linear programs can dramatically overrun before they are stopped by an exit branch. However, it was not deemed much of a threat yet, because the cost function and compute-meter economics are still very simple. This will become more of a problem when programs can chose to pay for less and use less / only what they actually need, then they could run disproportionally longer than what they payed for.

Will be interested to see JIT timings for programs of varying length.

We have a standalone CLI tool that you can play around with.

Is JIT currently enabled on mainnet?

It is optional but enabled by default.
Conclusion
We can address this in a general overhaul of the instruction meter which would:

Add a non-uniform cost function
Insert phony branches in long linear runs
Fix the "exception after instruction meter limit reached" situation, if that turns out to be an issue

Thanks for all your hints and contributions. I just wanted to add that you should read and follow our security policy & guideline, that way you would also be eligible for the bounty program.