VelocityCmd components applied to models don't have any effect

Environment
Ubuntu 20.04, Ignition Edifice source build (latest ign-gazebo5 branch).
Description
We relied on using LinearVelocityCmd and AngularVelocityCmd to apply velocities at the model level in our robot simulation plugins. However, I noticed that recently the commands don't have any effect.
An example SDF that we use this plugin with is here.
I ran git bisect and found out the exact commit that introduced this behavior, #678. I didn't look into the commit diff too much but my guess is that, since we are applying the velocity to a model entity and not a link entity it is skipped by that optimization PR.
I wonder if there was a recommended way to adapt our plugin or if this is something that should be fixed in the core code. I tried to fetch the model's canonical link through the ModelCanonicalLink component and applying the velocities to it but didn't have much success.
Steps to reproduce
It is arguably a bit complicated, it would require setting up the whole rmf_demos workspace, but let me know if you want detailed instructions.

Thanks for pointing out the issue. I have written a test that does fail to move a model when applying a LinearVelocityCmd component: https://github.com/ignitionrobotics/ign-gazebo/commit/8afb93776820cb83a7f9743aa2bcbd4627efb38a (this branches off of ign-gazebo5)
However, I am unable to see a behavior change before/after #678. I have tried running this test before and after #678, but it always fails no matter which commit/release of ign-gazebo5 I use (the model never seems to move). Would you mind taking a look at the test I wrote and try to run it locally to see if you can get it to pass/fail based on #678? Also, if you see anything wrong with the test I wrote, feel free to comment on the commit that I linked.

oh and is the demo using dart or tpe?

@luca-della-vedova I am able to run the following example that applies a command velocity to a model, which moves the model: https://github.com/ignitionrobotics/ign-gazebo/compare/adlarkin/linVelCmdTest. This example is based on the latest commit of ign-gazebo5, which means #678 is used.
@iche033 pointed out that some plugins aren't loaded if a user specifies their own plugins in a SDF file (https://github.com/ignitionrobotics/ign-gazebo/commit/c2834e0c99dff57a810ad833e09a3d27b09c3b4b#r54822602). In the SDF file you provided in the issue description, it looks like you define a custom plugin, which means that you'll probably need to add in other plugins like physics in order to get desired behavior. Can you try modifying your SDF file based on the recommendations in https://github.com/ignitionrobotics/ign-gazebo/commit/c2834e0c99dff57a810ad833e09a3d27b09c3b4b#r54822602 and let me know if the issue still persists for you?

For reference this is the world, we actually redefine all the systems / GUI elements to be safe. I'll try your examples now and see how they behave

OK it has been quite the debugging journey!
I apologize for my previous information because it was partially incorrect. It turns out writing to VelocityCmd components works, as you showed, reading is what doesn't, and is the behavior that changed.
Specifically, in our application we are simulating vehicles with a limited acceleration hence we apply speed in the format of:
v_new = v_old + dt * a, we rely, or used to, on reading the VelocityCmd components to get the velocity command that was sent in the previous iteration and this seemed to work until the PR I mentioned above (although to be honest I'm really not sure what changes in the PR might have affected this).
I think it is not quite correct to ready VelocityCmd components since I would expect them to be reset at every iteration step, however I tried to do something more proper which is read LinearVelocity components but they also seem to be always read as 0 regardless of the commit, so at least reading the Cmd components had something working before.
I pushed an example that is closer to what we actually do in luca/linVelTest, the relevant code is here and I changed the world to download a model from fuel and the model has the plugin tag inside.
This code has a velocity ramp before #678 while it always sends a velocity of 0.01 after. The previous commit (using LinearVelocity instead of LinearVelocityCmd to read the current velocity) sends 0.01 regardles.
Apologies for the wrong information but I hope this example can help, maybe we are doing something wrong and actually relied on some buggy behavior before?

we rely, or used to, on reading the VelocityCmd components to get the velocity command that was sent in the previous iteration
I think it is not quite correct to read VelocityCmd components since I would expect them to be reset at every iteration step

You're assumption is correct: looking at the physics system (ign-gazebo5.1.0), linear velocity commands are applied to models (and links) when it's time to update physics with the next step. After the update is completed, the linear velocity commands are "zeroed out". So, linear velocity commands should not be read from after a physics update.

I'm really not sure what changes in the PR might have affected this

At first glance, I'm not sure either :joy: #678 did not touch any of the code that applies/resets linear velocities via command components. So, I'll have to take a closer look at how #678 changed behavior.

Apologies for the wrong information but I hope this example can help, maybe we are doing something wrong and actually relied on some buggy behavior before?

No apology needed! It sounds like we've had buggy behavior that has gone unnoticed until now :upside_down_face: Based on our discussion, I think there are a few things that need to be addressed:

Understand how #678 changed (or did not change) behavior with LinearVelocityCmd
Make sure that the LinearVelocity component gets updated properly (you mentioned that LinearVelocity never seems to update even after applying a LinearVelocityCmd - this appears to be a bug)

I will go ahead and work on addressing the two things I mentioned above (if there's anything else you'd like me to investigate, let me know). Once everything has been addressed, the correct behavior on your end should be to set LinearVelocityCmd components on models/links that you want to move before the next physics update, and then use the LinearVelocity component after the physics update to read the most recent velocity of a model/link.

@luca-della-vedova I have proposed a fix for links in #992 that would allow for users to apply a LinearVelocityCmd to a link, and then read the link's linear velocity at any future point through the link's LinearVelocity or WorldLinearVelocity component. As we have already discussed in this thread, before #992, if a LinearVelocityCmd is applied to a link, the LinearVelocity or WorldLinearVelocity components are not created, so there's no way to retrieve the link's linear velocity in future simulation steps if needed.
I made this change in Citadel because I found that this behavior is broken for all released versions. So, what we can do is merge #992 forward to other released versions if it seems like a good solution. I have not made the fix for when LinearVelocityCmds are applied to models yet because that's a little more complicated to do in Citadel/Dome (see the PR description of #992), but I believe the same fix can be made for models fairly easily starting in Edifice.
So, for now, assuming that #992 gets merged, I believe what you can do to fix the buggy behavior in RMF is apply LinearVelocityCmds to links, and then read the LinearVelocity or WorldLinearVelocity component from the corresponding link. Does this make sense, and does this also appear to be a valid solution to the issue you're currently facing?

It looks like the current implementation with DART as the physics engine does not compensate for friction or any other forces when applying a LinearVelocityCmd. It simply sets the current state of the link and when the next step is called, DART computes the next velocity and position starting from the current velocity set via LinearVelocityCmd.
This, unfortunately, does not follow the pattern we have for JointVelocity[Cmd|Reset] where, JointVelocityCmd compensates for joint friction and other effects (within joint force limits) while JointVelocityReset sets the state of the joint and does not compensate for joint friction.

I guess my final question is whether it is intended that when applying a VelocityCmd component the behavior depends on the friction...

So to answer the question, I don't think it was intended. A better name for the current LinearVelocityCmd would have been LinearVelocityReset.

Thanks for the explanation! I think that @luca-della-vedova is using TPE though, so if the behavior that was explained in https://github.com/ignitionrobotics/ign-gazebo/issues/966#issuecomment-906233694 is when TPE is used, then I assume that we can fix the TPE behavior since it's a plugin inside of ign-physics, right?

Thanks for the explanation! I think that @luca-della-vedova is using TPE though, so if the behavior that was explained in #966 (comment) is when TPE is used, then I assume that we can fix the TPE behavior since it's a plugin inside of ign-physics, right?

TPE was only used as a fallback after we observed the issues with friction that made controlling robots through VelocityCmd components a bit tough on dartsim.
I think with the TPE fix and doing "open loop" control in dartsim without checking the current model velocity we are able to cover all our use cases and the DART behavior is not really a bug, just a feature.
We can close this, thanks all for the help!


[draft] split up logic from Byron/Network and work from abstract block

Issue Number

Overview

f6ccdae2aee3bb6f5d78020f38e5daf7078a0677
:round_pushpin: [draft] split up logic from Byron/Network and work from abstract block

c95429a1a9c896330ab463f338ed91f5df941387
:round_pushpin: Regenerate nix

74b90f1b06bf9a5b62e04136f38b9d320ea93423
:round_pushpin: wip start remove

4e594a5258a4f34fae03ade52529cae074e9f5db
:round_pushpin: continue extracting local state query and local tx submission clients

a1debd652be3f9b97da2024ab5f80dd66ea303ee
:round_pushpin: start re-using extracted client in Byron/Network [WIP]

12386371b47f172a983668f7e3bbe3b910a327e6
:round_pushpin: finish re-using extracted code in Ouroboros.Network.Client.Wallet

5fea8b9273994fdc7063257bebd76debd23fa282
:round_pushpin: remove last redundant imports from Ouroboros.Network.Client.Wallet

Comments

Possible further code-sharing / re-use after this PR:

Logic for initiating the connection, managing retries etc ..
The network layer logs
Use the default codecs whenever possible instead of writing them by hand

Yet, I'd maybe suggest another PR for these :thinking:

bors r+

Failed on #1644 , unrelated but annoying.


Porting memes to package

Now it can be natively install using
pip install --editable .

Looks great 😍
Hope you are enjoying your journey 🚆  with OpenGenus


Restore-DbaDatabase - final touches

@Stuart-Moore - I created this one primarily clear the .psd1 from the other one and to easily address the final few things without loading the 60 other comments.

[ ] There are a few Help params I added so that the tests wouldn't fail. But it looks like -Force is never actually employed to do anything. Please update as needed.
[x] Please rename UseSourceDirectories to something singular. I use ReuseSourceFolderStructure in Copy-SqlDatabase
[x] Looks like you sorted the cosmetic comments by @Zhunya

Not sure on force! The default is to clobber the existing if they specify WithReplace. Other than that there's nothing else we can really "force"
FIles are either readable or not, and that'll be their permissions setup which we can't force
Don't have permissions Sql instance, can't force that
Are trying to write over datafiles not belonging to the db, can't force that (though we could probably check)
Think that's everything isn't it?

hey @Stuart-Moore  - I'm not sure why help was removed. Missing help causes test failures. I've added them back -- please update as appropriate.
If Force is not required, then you can remove it from the params both in the command and where it's referenced later on (but not used) and remove the help for it too. But the rest needs to be updated. Then we should be set.
Other than that, $file should be $Path to align with the variable that PowerShell usually uses.

I'm thinking it's probably my cack handed pull and merge to get my existing
changes across.
File -> Path commit is just coming
On Mon, Feb 13, 2017 at 9:20 PM, Chrissy LeMaire<EMAIL_ADDRESS>wrote:

hey @Stuart-Moore https://github.com/Stuart-Moore - I'm not sure why
help was removed. Missing help causes test failures. I've added them back
-- please update as appropriate.
If Force is not required, then you can remove it from the params both in
the command and where it's referenced later on (but not used) and remove
the help for it too. But the rest needs to be updated. Then we should be
set.
Other than that, $file should be $Path to align with the variable that
PowerShell usually uses.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sqlcollaborative/dbatools/pull/722#issuecomment-279525815,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFWoZlXbgESJD3T1mqD5a8Fk42EUALO9ks5rcMkGgaJpZM4L_lfb
.

Cool, please refresh -- I was updating help and tests to keep the Tests from failing.

and just removed force as a parameter

WOO! Tests are passing and everything looks great. Gonna do additional manual testing then will merge!

w00t! I'm around for the next hour or so, so throw anything across that crops up.

Excellent! Couple things (lol :/)

[ ] T-SQL output isnt working for any of m restores so far
[ ] Can you move NoRecovery to right below Database Owner?
[ ] Can the files be renamed if the database is renamed? (can wait till 1.1 if you prefer)

PS C:\github\dbatools> Restore-DbaDatabase -SqlServer sql2016 -Path "\\dc\sql\SQL2016\Application_Registry_Service_DB_cde90313b64848408b625cb9b083eaf3\FULL\" -WithReplace -DatabaseName foo
WARNING: Restore-DBFromFilteredArray - Microsoft.SqlServer.Management.Smo.FailedOperationException: Restore failed for Server 'sql2016'.  --->
Microsoft.SqlServer.Management.Smo.SmoException: System.Data.SqlClient.SqlError: The file 'C:\Program Files\Microsoft SQL
Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\Application_Registry_Service_DB_cde90313b64848408b625cb9b083eaf3.mdf' cannot be overwritten.  It is being used by database
'Application_Registry_Service_DB_cde90313b64848408b625cb9b083eaf3'.
   at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQueryWithMessage(StringCollection queries, ServerMessageEventHandler dbccMessageHandler, Boolean
errorsAsMessages, Boolean retry)
   at Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSql(Server server, StringCollection queries)
   at Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)
   --- End of inner exception stack trace ---
   at Microsoft.SqlServer.Management.Smo.Restore.SqlRestore(Server srv)
   at CallSite.Target(Closure , CallSite , Object , Object )

[ ] Anyway to catch the error below before it happens?

All of mine are! I've just made it the default to generate scripts. All the works done, and now we've a nice return object might as well do it at the same time
That's moved on the next push
Yes. It'd have to be just a prefix though. Or you can use the FileMapping parameter?
I'll have a look, thought that should have been caught by the existing db checks

If I do the prefix what would you like to call it?
DestinationFilePrefix?

Closer, but leaves a False hanging out

DestinationFilePrefix works for me!

Dont forget to add help. Mention that if they want total renames, to use a FileMapping

Done and Done

Totally addressed it! Thank you 💃 Will merge once all tests pass.


refmt produces incorrect syntax on default values of optional arguments that have line breaks

This happens on 1.13.3 and on master for me:
Input (File.re):
type record = {
  very_long_field_name_to_trigger_line_break_but_multiple_fields_would_trigger_the_bug_too: unit
};

let f
  ::record={
    very_long_field_name_to_trigger_line_break_but_multiple_fields_would_trigger_the_bug_too:
      ()
  }
  =>
  ();

Result of refmt:
/* refmt File.re */
type record = {
  very_long_field_name_to_trigger_line_break_but_multiple_fields_would_trigger_the_bug_too: unit
};

let f
    ::
      record={
        very_long_field_name_to_trigger_line_break_but_multiple_fields_would_trigger_the_bug_too:
          ()
      } =>
  ();

Notice the incorrect line break between :: and record.

This happens for tuples as well, so it's probably an issue for any default value with line breaks in them:
/* File.re */
let f
    ::tuple=(
        "a few strings to trigger line break",
        "a few strings to trigger line break",
        "a few strings to trigger line break"
      ) =>
  ();

/* after `refmt` */
let f
    ::
      tuple=(
        "a few strings to trigger line break",
        "a few strings to trigger line break",
        "a few strings to trigger line break"
      ) =>
  ();


New version: nkdAgility.AzureDevOpsMigrationTools version 16.0.6

Checklist for Pull Requests

[ ] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-10-30 02:57:28.455 [FAIL] Installer failed security check. Url: https://github.com/nkdAgility/azure-devops-migration-tools/releases/download/v16.0.6/MigrationTools-16.0.6.zip Result: 0x80004005
MSI (s) (CC:B4) [02:55:46:895]: PROPERTY CHANGE: Adding OutOfDiskSpace property. Its value is '0'.
MSI (s) (CC:B4) [02:55:46:895]: PROPERTY CHANGE: Adding OutOfNoRbDiskSpace property. Its value is '0'.
MSI (s) (CC:B4) [02:55:46:895]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceAvailable property. Its value is '0'.
MSI (s) (CC:B4) [02:55:46:895]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRequired property. Its value is '0'.
MSI (s) (CC:B4) [02:55:46:895]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRemaining property. Its value is '0'.
MSI (s) (CC:B4) [02:55:48:817]: Executing op: ComponentRegister(ComponentId={7B724D4F-05F8-559A-8F4E-501A0F0C7651},KeyPath=2285\SOFTWARE\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules\C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.10\mscordaccore.dll,State=3,,Disk=1,SharedDllRefCount=0,BinaryType=1)
MSI (s) (CC:B4) [02:55:50:942]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWARE\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules,,BinaryType=1,,)
Property(S): ErrorDialog = ErrorDlg
Property(S): OutOfDiskSpace = 0
Property(S): OutOfNoRbDiskSpace = 0
Property(S): PrimaryVolumeSpaceAvailable = 0
Property(S): PrimaryVolumeSpaceRequired = 0
Property(S): PrimaryVolumeSpaceRemaining = 0
MSI (s) (CC:14) [02:55:53:864]: PROPERTY CHANGE: Adding OutOfDiskSpace property. Its value is '0'.
MSI (s) (CC:14) [02:55:53:864]: PROPERTY CHANGE: Adding OutOfNoRbDiskSpace property. Its value is '0'.
MSI (s) (CC:14) [02:55:53:864]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceAvailable property. Its value is '0'.
MSI (s) (CC:14) [02:55:53:864]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRequired property. Its value is '0'.
MSI (s) (CC:14) [02:55:53:864]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRemaining property. Its value is '0'.
MSI (s) (CC:60) [02:55:56:833]: PROPERTY CHANGE: Adding OutOfDiskSpace property. Its value is '0'.
MSI (s) (CC:60) [02:55:56:833]: PROPERTY CHANGE: Adding OutOfNoRbDiskSpace property. Its value is '0'.
MSI (s) (CC:60) [02:55:56:833]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceAvailable property. Its value is '0'.
MSI (s) (CC:60) [02:55:56:833]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRequired property. Its value is '0'.
MSI (s) (CC:60) [02:55:56:833]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRemaining property. Its value is '0'.
MSI (s) (CC:60) [02:56:02:239]: An error occured while refreshing environment variables updated during the installation of ''.
MSI (s) (CC:D0) [02:56:05:380]: PROPERTY CHANGE: Adding OutOfDiskSpace property. Its value is '0'.
MSI (s) (CC:D0) [02:56:05:380]: PROPERTY CHANGE: Adding OutOfNoRbDiskSpace property. Its value is '0'.
MSI (s) (CC:D0) [02:56:05:380]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceAvailable property. Its value is '0'.
MSI (s) (CC:D0) [02:56:05:380]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRequired property. Its value is '0'.
MSI (s) (CC:D0) [02:56:05:380]: PROPERTY CHANGE: Adding PrimaryVolumeSpaceRemaining property. Its value is '0'.

Automated error analysis suggests -1978335187 may mean Installer failed security check. Another script should retry this every 18 hours.
Automated error analysis suggests 80004005 may mean Resource missing
(Automated response - build 897.)

@wingetbot run


Remove the Task.Run from AzureKeyVaultTokenSigningService

Hey
I've noticed that in SignAsync method there there is an async call using Task.Run. As far as I know (see this SO post) this is not a good practice on a code that might run in webapi code. Also, the inner code, AzureKeyVaultSignatureProvider does call a true async function, and the current implementation hide it. It might be a good idea to create another interface which return Task for such operations.

Makes sense. We still need to keep the non-async method there since we need to override the SignatureProvider's Sign() method, but there shouldn't be any harm in adding an additional SignAsync() (and VerifyAsync()) method too. Does that sound right?

I don't see the benefit of using this interface, it might be better to create a dedicate interface for that...

I think this was partly to provide support for people who may not be using IdentityServer but still want to use parts of this library to sign JWTs using Azure Key Vault, but this is probably misguided and should probably be well out of scope (or in a different NuGet package altogether). I'll keep this in mind before release and look into it in a bit more depth, it may be appropriate to break away from this interface.


no con.to_string()

My high level goal: I want to hide windows on my laptop 'presentation mode' and pull them all back 'personal mode'
I couldn't find a way to do this strictly with i3-msg, so I turned to this library.  I see get_tree which gives me everything I need, but if I want to save state I want to dump this to a file somewhere.  However the only way I can do this is by invoking a shell command (os.shell('i3-msg..')) this seems clunky.  Is there no way to just dump all window states to json?

I'm planning to save all the raw json from the ipc for the objects.
If you just want the raw json of the tree, there's no public api for that, but it's there internally. I might consider exposing that if there is a use case but nobody has ever asked for it.

ok thanks.  My use case is above, but probably not a common one.  As a workaround I'm just running the i3-msg in the shell to dump the tree so i can save my state of my windows.

Is this solved by 8947b9f048ce87712b6ce8fea9aef7af4b100b27?

You could satisfy this use case with that because the ipc_data member is serializable.


Use git tags in build instructions instead of branches

Shouldn't people check out a tag instead of a branch for building? Otherwise they might get an inconsistent development snapshot, no?

The build instructions have been revamped and this is now the case (using git tag).


using a separate _metalsmith bin to allow custom transpilers

This fixes #132 by adding a separate _metalsmith bin that is doing the actual processing. The metalsmith bin is now a proxy that simply adds the --harmony-generators flag when needed.
Node 0.10 users will need to use gnode, babel or similar in order to continue using metalsmith, but the trade-off is now that node 0.11, 0.12 and iojs will work out of the box. (and it's future-proof)
This also allows users with gnode/babel/etc in their toolchain to use it with metalsmith as well.
/cc @ianstormtaylor @MoOx

Looks good !
But tests are broken on node 0.12 :/

I guess there is some breaking changes for node 0.10 users, so this will need to be release as 2.0 right ?

Yeah, 2.0 sounds like the most likely choice.
I still need to get these tests passing everywhere, hopefully have that done sometime this week.

@dominicbarnes awesome!! Let me know when tests pass and if you need anything form me to bump 2.0 and deploy!

This works seems to works like a charm for me on iojs.

Yeah, this works for iojs, but breaks for node 0.10. I'll fix it soon

The fun part is: it's working for 0.10 & iojs, but breaks on 0.12
FYI, I am using this branch for a few days, and works like a charm with iojs/babel :)
I will try to send a PR on this PR :)

Ok it's seems simple: for the current test, the error is the following on 0.12
{ [Error: Command failed: /bin/sh -c /Users/MoOx/Sync/Development/metalsmith/metalsmith/bin/_metalsmith
/Users/MoOx/Sync/Development/metalsmith/metalsmith/lib/index.js:190
Metalsmith.prototype.build = unyield(function*(){
                                             ^
SyntaxError: Unexpected token *
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/MoOx/Sync/Development/metalsmith/metalsmith/index.js:6:18)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
]
  killed: false,
  code: 1,
  signal: null,
  cmd: '/bin/sh -c /Users/MoOx/Sync/Development/metalsmith/metalsmith/bin/_metalsmith' }

If I change the version to use gnode for 0.12 it works. It seems the proper flag is not added correctly.

I made a PR on this PR, should fix the build :)

While having 0.10 support is nice, this creates a lot of bloat that isn't really needed if you're on node >= 0.12.

I think it's necessary for now, but only very short-term. Now that 0.12 has been out for a while, people will continue to adopt it.

Maybe we should merge and release now that all tests pass ?

For debian users it's important to maintain compatibility with the version distributed in the official repositories, simplifies the work needed to be done to install metalsmith, helping begginers to break less things...
debian stable nodejs version: 0.10.29
debian testing nodejs version: 0.10.38

For debian users it's important to maintain compatibility with the version distributed in the official repositories, simplifies the work needed to be done to install metalsmith, helping begginers to break less things...
debian stable nodejs version: 0.10.29
debian testing nodejs version: 0.10.38

How is this an upstream problem?

The comments from RobLoach and the answer from dominicbarnes made me understood that they thought that was not important in maintaining compatibility with nodejs 0.10, but it's my interpretation of their words, maybe I missunderstood.

I'd lean towards pushing for Node 0.12. Backwards compatibility can only go so far. Wouldn't want Metalsmith to turn into IE6.

I like stable things also in development tools, but thanks for the recommendation, I probably change to Node 0.12 because everything seems in a young stage with a lot of changes and makes no sense to waste a lot of time in old things at the begginning!

@dominicbarnes what's your thoughts on this? Should we just drop 0.10 support completely to keep it simpler?

I'd be ok with dropping node 0.10 altogether, node 0.12 is the stable release and has been out for a while now.

Should we update the PR? It will be nice to get this in master :)

All right, I've dropped node 0.10 from our tests. It can still technically be used via gnode ./node_modules/.bin/_metalsmith, but it will likely be an undocumented feature.


DWYU Doesn't take into account includes dirs listed in cc_* rules when resolving headers

Super excited to stumble onto your project :) I wrote a very similar tool for a hackathon! Happy to see your version integrated as a bazel aspect vs a tool built exclusively on top of bazel queries :P
https://github.com/martis42/depend_on_what_you_use/blob/main/src/analyze_includes/evaluate_includes.py#L98
I believe this line only allows for resolving headers that are full paths to the root of a workspace, however, if I have
- a/BUILD
cc_binary(
   name = "a",
   deps = "//b:headers"
)
- a/foo.cc
#include <b.h>
- b/BUILD
cc_library(
   name = "headers",
   hdrs = ["include/b.h"],
   includes = ["include"],
)
- b/include/b.h

This fails to resolve //a:a as using b.h from //b:b

Ah, this could be my companies fault. I see you are resolving the different include paths here:
https://github.com/martis42/depend_on_what_you_use/blob/main/src/aspect/dwyu.bzl#L37
I added the print statement on line 47
    print("Getting all includes for: {}, system_includes {},  header: {}".format(label, system_includes, header_file.path))
And, for the case outlined above, I am seeing:
Getting all includes for: //b:b, system_includes depset([".", "bazel-out/k8-fastbuild/bin", "bazel-out/k8-fastbuild/b/include",]), header:  b/include/b.h
Looks like the aspect attempts to match based on path in tree, while the system includes are path-in-bazel-output.

Didn't have permissions to push a new branch for a PR - thoughts on the following patch?
0001-Add-dep-CcInfo-.compilation_context.includes-to-list.patch

ve //a:a

Hi @mjj47 , DWYU gives correct behavior on your testcase.
See below
a/BUILD
load("@rules_cc//cc:defs.bzl", "cc_binary")

package(default_visibility = ["//visibility:public"])

cc_binary(
    name = "a",
    srcs = ["a.cc"],
    deps = [
        "//b:b",
    ],
)

a/a.cc
#include <iostream>
#include "b.h"

int main() {
    std::cout << "The answer is: " << kAnswer << std::endl;
    return 0;
}

b/BUILD
package(default_visibility = ["//visibility:public"])

cc_library(
        name = "b",
        hdrs = ["include/b.h"],
        includes = ["include"],
)

b/include/b.h
#pragma once

inline constexpr int kAnswer = 42;

Running dwyu on //a:a:
$ bazel-5.3.2 --bazelrc=/dev/null build --aspects=//test/aspect:aspect.bzl%dwyu_default_aspect --output_groups=cc_dwyu_output //a:a
DEBUG: /work/github/depend_on_what_you_use.git/src/aspect/dwyu.bzl:46:10: Getting all includes for: //b:b, system_includes depset(["b/include", "bazel-out/k8-fastbuild/bin/b/include"]),  header: b/include/b.h
INFO: Analyzed target //a:a (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Aspect //test/aspect:aspect.bzl%dwyu_default_aspect of //a:a up-to-date:
  bazel-bin/a/a_a_dwyu_report.json
INFO: Elapsed time: 0.056s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action

Didn't have permissions to push a new branch for a PR - thoughts on the following patch?
0001-Add-dep-CcInfo-.compilation_context.includes-to-list.patch

Like @mjj47 , I have puzzles in this regard. Shall we also consider system_includes, includes, quote_includes, and even framework_includes ? Ref: https://github.com/grailbio/bazel-compilation-database/blob/940cedacdb8a1acbce42093bf67f3a5ca8b265f7/aspects.bzl

@mjj47
Thanks for the kind words. I am happy you like the tool and it is helpful to you.
I can't reproduce your problem. One of the integration tests covers this scenario: https://github.com/martis42/depend_on_what_you_use/blob/main/test/aspect/includes/BUILD
The test framework might seem a bit obscure to someone not familiar with it. Essentially I test that the following command returns without error:
bazel build --aspects=//test/aspect:aspect.bzl%dwyu_default_aspect --output_groups=cc_dwyu_output //test/aspect/includes:use_includes
In case I understand your problem wrongly, please correct me.

Didn't have permissions to push a new branch for a PR - thoughts on the following patch?

This project follows the default GitHub way (at least to my understanding) of requiring forks for contribution.
More details are described here

@storypku

Like @mjj47 , I have confusion in this regard. Shall we also consider system_includes, includes, quote_includes, and even framework_includes ? Ref: https://github.com/grailbio/bazel-compilation-database/blob/940cedacdb8a1acbce42093bf67f3a5ca8b265f7/aspects.bzl

True, there are more values available from CompilationContext than DWYU is currently using. Then again, all test cases I could think of work with the current implementation including various combinations of the cc_library options for modifying includes paths, external workspaces and generated code.
I would not change the implementation unless there is a use case which requires this.
From what I remember during the initial DWYU development:

includes is relevant for the cc_library attributes include_prefix and strip_include_prefix. Those use cases are supported, but DWYU exploits that those virtual include paths are also part of the header paths in the header lists
system_includes is relevant for the cc_library includes and is utilized by DWYU
quote_includes is useless as far as I can tell. This points always to the same places for all scenarios I could think of.
framework_includes I have no idea what this is about :man_shrugging:

CompilationContext has so many values since there are many nuances in telling the compiler how to use which header exactly. However, DWYU works on a simpler level. We "only" have to know at which path a header is available at all. If it is included with brackets or quotes or if compiler warnings should be reported or not does not matter to DWYU.

Thanks for the super helpful responses! After hearing back, I assumed this was my custom toolchain's fault, but, I was able to run your nested test cases with no issue - even made a new test case in tree of DWYU that mirrored my exact failure mode, however, that test case passed too... I then thought it could be related to using a cc_test or cc_binary rule rather than a cc_library, but still, couldn't repro the failure.
I would think for the sake of correctness, including includes in your aspect would be valid, but I understand not wanting to adopt it without a provable failure mode.
I will definitely keep looking for the root cause of my case, but, I would understand closing this as won't fix until I can come with a test that fails within DWYU source :)
(And good to know on the permissions - I think its 100% a problem on my end. My company has a private github mirror, I bet I have some tokens configured for that endpoint rather than public github.com. Definitely will keep trying to push up PRs because I am highly interested in adding support for alias's, adding to the fixer tool to auto add deps instead of just remove, enable running the aspect and fixer against a full package at a time vs single target at a time)

@mjj47
I am always happy about contributions 😁
Regarding the concrete points you mention. Please note I am already working on automatically adding missing dependencies with the automatic fixes tool. Thus, you should not invest time into that in parallel.

enable running the aspect and fixer against a full package at a time vs single target at a time)

I don't understand your exact problem. The aspect is able to run on full packages. Simply use //foo:all as target pattern. Or //foo/... for foo and all packages below it.
You can also lint a target and all it's transitive deps by using the Recursion feature described in the Readme.
The fixing tool always works on a whole workspace. Simply looking for whatever DWYU report files are in the Bazel output dir available.


read incremental view from delta

Apache hudi (https://hudi.apache.org/) provides a parameter to read “incremental data”, like below:
 Dataset<Row> hoodieIncViewDF = spark.read()
     .format("org.apache.hudi")
     .option(DataSourceReadOptions.VIEW_TYPE_OPT_KEY(),
             DataSourceReadOptions.VIEW_TYPE_INCREMENTAL_OPT_VAL())
     .option(DataSourceReadOptions.BEGIN_INSTANTTIME_OPT_KEY(),
            <beginInstantTime>)
     .load(tablePath); // For incremental view, pass in the root/base path of dataset

hoodieIncViewDF will read all new incremental data after beginInstantTime.
Can delta support this way also? It maybe helpful when we debug data.
In Kafka source, we have "startingOffsets" and "endingOffsets", they looks like quite similar to this. Another open question maybe how to get offset from Delta?

Can you explain the use case where this is needed? In many use cases that require change data, it is possible (in some cases more efficient) to architect the application differently. For example, if you are merging a stream of change data (i.e., inserted/updated/deleted rows) into a Delta table and then you want to get the downstream change data from the Delta table, it's probably better to save the original changed data into an append-only changelog table. Then that changelog table can be read by many downstream apps. Visually speaking, if you want something like
some changes ====[ merge ]=====> updated Delta table ========> changes

then it's better to architect this pipeline in this way.
some changes ==[ append ]==> append-only changelog Delta table ========> changes
                                                                                ||===============> final Delta table

With this context, what use case do you have in mind that is hard to rearchitect in this way?

@tdas thanks for your insight, I open the ticket as per Michael's suggestion from slack. But actully, I have no solid use case yet, one thing I can think of is for debugging data issue. The get the exact data change at some micro batch, the best way is to provide such kind of interface. Another reason is Kafka source has this funciton also.

Another option is to support timestampAsOf and versionAsOf in spark.readStream.format("delta"). Then the changes can be grabbed within a foreachBatch operation and Trigger.Once.

@yucai I understand more context from the slack discussion
@brkyvz I like the idea in general. However, for streaming, I would rather name it something like "startTimestampAsOf" to mirror "startOffsets" for Kafka.

@tdas @brkyvz Do you think user might want to manage the offset by themself in some special case? Like their pipeline is too complicated or not supported by streaming yet. In that case, Delta needs provide both startTimestampAsOf  and endTimestampAsOf.

@brkyvz for data debug, I think timestampAsOf + foreachBatch maybe not enough, Spark may have to read a lot of data if the latest available offset is quite large already. We still need endTimestampAsOf in this case.

@tdas can you elaborate on the benefit of that design?  Is it because streaming from the append-only table would prevent downstream consumers from reprocessing unchanged records?  If, as the "merge" consumer of the changelog, I delete my checkpoint and restart my query, will I read the changelog in the order that it was written?  Or do I need to add a timestamp condition to my merge?

A small usecase clarification - I see this very useful in the context of incremental processing with lower latency requirements (e.g. tens of minutes, hours). Let's say we just need to watch for data appended to a table and to a small transformation / aggregation on it before pushing to another table / system downstream.
Arguably it's easier to rely on a scheduler that triggers once every hour than implement a full streaming job.

then it's better to architect this pipeline in this way.
some changes ==[ append ]==> append-only changelog Delta table ========> changes
                                                |
                                                \=======[ merge ]====> updated Delta table

With this context, what use case do you have in mind that is hard to rearchitect in this way?

I think the catch in this case is that you lose the potential benefit of letting Databricks Delta handle de-duplication and merging of high volumes/frequency data sources. I have seen cases where upstream sources may be pumping tons of data and you don't want all of it to flow to N downstream systems. I think using delta lake to coalesce this data and produce a canonical change feed seems very appealing.


Feature/remove av player item publishers in av player

Nice and easy, as agreed removes all Publisher belonging to AVPlayerItem from AVPlayer
Fixes #17

less code is better code


waitFor doesn't support FutureList

If you create a job waiting on a list of other jobs, then it will throw an exception.
Example: futureCall(new myJob(), waitFor(futureList(previousJobsFutureValues))).
Here is the message I get in the UI:
com.google.appengine.tools.pipeline.FutureList cannot be cast to com.google.appengine.tools.pipeline.impl.FutureValueImpl
At a first and very quick glance, i think the issue is located in JobRecord#applySetting function at the following line of code:
FutureValueImpl fv = (FutureValueImpl) wf.getValue();

Yes, you are correct.
Current workaround is to create an array of JobSetting.WaitForSetting and pass the array as the JobSetting varargs value for futureCall.

This is a better workaround than the one i did.
It consisted of creating a job with a dummy parameter of List<FutureValue>.
Example: futureCall(new myJob(previousJobsFutureValues))


cmd/link: document default flags passed to extld

What version of Go are you using (go version)?
master
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOCACHE="/localdisk/itocar/gocache/"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/localdisk/itocar/gopath/"
GORACE=""
GOROOT="/localdisk/itocar/golang"
GOTMPDIR=""
GOTOOLDIR="/localdisk/itocar/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build748215444=/tmp/go-build -gno-record-gcc-switches"

What did you do?
go build -ldflags="-extld=/path/to/ld.hugetlbfs -linkmode=external" foo.go
I was trying to map code section to huge pages.
What did you expect to see?
Everything works.
What did you see instead?
Linker didn't recognize -m64 option.
Looks like we pass a bunch of gcc/clang specific flags to any external linker.
I worked around this by passing -extld=gcc -extldflags="-B /path/to/ld.hugetlbfs", to use gcc as a linker that recognizes -m64 and calls ld.hugetlbfs without passing -m64, but this behavior was surprising to me and should be documented somewhere (in extld documentation?)

To be honest, I would prefer to not have to document this.  These options are very likely to change in the future.  Documenting them would give some presumption of consistency even if we explicitly disclaim it.  Since we effectively reserve the right to pass any option that is accepted by the standard linker on the platform, there is nothing useful you can gain from any documentation.

reserve the right to pass any option that is accepted by the standard linker on the platform
How about adding this to extld description?  Something like
"Linker should be option compatible with default linker"


Update code

Small updates to improve code, fix small bugs, better readability

I browsed the changes briefly but please do me a favor.  This will make sure the formatting matches and will make it much easier for me to see the changes.
Thanks!

The current code changes seem to be rewritten for conciseness, no? If there's any bug fixes, can you point out where they are?
From what I've gathered:

require changed to import
moved imports and constants to the top
took out some console statements
used arrow functions inside app.get
changed undefined to null
getPage() revision
extractInformation() revision

While I totally agree your changes do make the code easier to read and follow, there are reasons for structuring/writing it the way I did. I wanted to be clear about what the code does and what the program is doing when launched (for debugging and newbie purposes). It didn't make sense to me to import all modules if an environment file is not found. As for import vs require, I usually prefer import but there are good reasons to use require.
However, I will incorporate some of your changes like using arrow functions inside app.get, app.listen being at the end, and perhaps getPage and extractInformation function changes once I test them out.


[SPARK-42941][SS][CONNECT] Python StreamingQueryListener

What changes were proposed in this pull request?

Implement the python streaming query listener and the addListener method and removeListener method, follow up filed in: SPARK-44516 to actually terminate the query listener process when removeListener is called.  SPARK-44516 depends on SPARK-44433.
Why are the changes needed?

SS Connect development
Does this PR introduce any user-facing change?

Yes now they can use connect listener
How was this patch tested?

Manual test and added unit test
addListener:
# Client side:
>>> from pyspark.sql.streaming.listener import StreamingQueryListener;from pyspark.sql.streaming.listener import (QueryStartedEvent, QueryProgressEvent, QueryTerminatedEvent, QueryIdleEvent)
>>> class MyListener(StreamingQueryListener):
...     def onQueryStarted(self, event: QueryStartedEvent) -> None: print("hi, event query id is: " +  str(event.id)); df=self.spark.createDataFrame(["10","11","13"], "string").toDF("age"); df.write.saveAsTable("tbllistener1")
...     def onQueryProgress(self, event: QueryProgressEvent) -> None: pass
...     def onQueryIdle(self, event: QueryIdleEvent) -> None: pass
...     def onQueryTerminated(self, event: QueryTerminatedEvent) -> None: pass
...
>>> spark.streams.addListener(MyListener())
>>> q = spark.readStream.format("rate").load().writeStream.format("console").start()
>>> q.stop()
>>> spark.read.table("tbllistener1").collect()
[Row(age='13'), Row(age='10'), Row(age='11’)]

# Server side:
##### event_type received from python process is 0
hi, event query id is: dd7ba1c4-6c8f-4369-9c3c-5dede22b8a2f

removeListener:
# Client side:
>>> listener = MyListener(); spark.streams.addListener(listener)
>>> spark.streams.removeListener(listener)

# Server side:
# nothing to print actually, the listener is removed from server side StreamingQueryManager and cache in sessionHolder, but the process still hangs there. Follow up SPARK-44516 filed to stop this process

@HyukjinKwon Can you also take a look at this? Thank you!

@HyukjinKwon Can you take another look? Thanks! This also needs to goto 3.5 sorry for the trouble!

Hi Takuya @ueshin, could you check if this could be merged? Thanks!

Thanks! merging to master/3.5.

@WweiL There was a conflict with 3.5. Could you submit another PR to backport this? Thanks.

@WweiL There was a conflict with 3.5. Could you submit another PR to backport this? Thanks.

@ueshin Created a backport PR to 3.5 branch https://github.com/apache/spark/pull/42249, could you help take a look? Thanks!


✨ [Feature request]: Map the docsite

Is your feature request related to a problem? Please describe.
The doc site should be mapped to docs.reactplay.io
Describe the solution you'd like.

Create the subdomain and map in Netlify

Describe alternatives you've considered.
None
Screenshot / Screenshare
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Completed.


[Python APIView] docstring and annotations with *args are being mixed

The [APIView] for the following method seems to be mixing docstring and annotations in the signature:
class InvalidContentError(ValueError):
    """Error during encoding or decoding content with a schema.

    :param str message: The message object stringified as 'message' attribute
    :keyword dict[str, str] or None details: The error details. Depending on the error, this may include
     information like: `schema_id`, `schema_definition`, `message_content`.
    :keyword error: The original exception, if any.

    :ivar str message: A stringified version of the message parameter
    :ivar dict[str, str] details: The error details. Depending on the error, this may include
     information like: `schema_id`, `schema_definition`, `message_content`.
    """

    def __init__(self, message: str, *args: Any, **kwargs: Any) -> None:

APIView:
    def __init__(
    self,
    message: str,
    *args: Any,
    *,
    error = ...
    **kwargs: Any
    ) -> None:

I would expect that the APIView method signature looks entirely like the method signature and not the docstring. Should I update this method/docstring in some way or is this is an APIView bug? Thanks!

Additionally, since *args is included in the APIView, another * after that is not needed. Expected APIView:
  def __init__(
    self,
    message: str,
    *args: Any,
    error = ...
    **kwargs: Any
    ) -> None:

@tjprescott, we believe this is in the Python parser.  If you find that's not true, go ahead and reassign to @chidozieononiwu

@swathipil yes, APIView does very purposefully pull param and type info from docstrings because it does not render the docstrings. This is certainly a parser bug.

I'm not sure why only error and messages are appearing, but are you intending to use a mix of keyword and ivar?

Hi @tjprescott - Sorry for the late response! Didn't see this until just now. Yes, we're using both keywords and ivars. For example, the keyword message will also be an ivar.

All docstring should be using Python 3 typehints/syntax now. The Schema Registry method now looks like:
def __init__(self, message: str, *args: Any, details: Optional[Dict[str, str]] = None) -> None:


make use of  existing  kube.WaitForCacheSync

Please provide a description of this PR:

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test release-notes

integ-cni_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test integ-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test release-notes

integ-cni_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test integ-cni

integ-telemetry-mc_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test integ-telemetry-mc

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

/retest

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-cni_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test integ-cni

integ-telemetry-mc_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test integ-telemetry-mc

release-notes_istio
b5771a10bdc45f6152f699d5b64ef714edba7c6a
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Much performance influence?
And preciously, waitForCacheSync has no timeout to return.

there is no need for a timeout since it takes a stop channel.
The polling delays at one point made Istio's unit tests 2x slower overall which is crazy. A bit improved because we now poll more aggressively in unit tests but still not good at all. Why poll when we have a channel, it's strictly worse, even if not a huge impact..

Without timeout, it stops until the channel closed or synced,.
But the time ticker, seems to indicate after 5s it will return true

I am not sure what 5s timeout you are talking about. there is no timeout?

Maybe https://github.com/istio/istio/blob/8d2e2000c16296ec247b642bb49da56b1f4d6988/pkg/kube/client.go#L706 you mean? This just makes it log every 5s, there is no timeout.

You are right, there is a second loop forever


Feat: Redesigning the Home Page

Describe the feature
Redesign the whole home page to the one shown below which matches the taste of the website( can use different images and color theme)
Image like--

Time limit: 1 week
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[ ] I'm a GSSOC'23 contributor
[ ] I want to work on this issue

I would like to work on this issue under Gssoc-2023.
could you please assign me

Hey, @MonalikaPatnaik should I need to send the images without applying them in the actual background home page or do I have to send the SS after applying them in the actual background?

@MonalikaPatnaik  WDT?

This too looks great for me WDT?


Using pal schema with uppercase snake case tables and columns

I'm trying out Prisma+pal with a database where all tables and columns are written in uppercase snake case e.g. the AVAILABLE_PRODUCT table has a PRODUCT_ID column and so on.
model AVAILABLE_PRODUCT {
  PRODUCT_ID              Int            @id @default(autoincrement())
}

Running pal schema camel-case produces a schema.prisma file where all tables and columns are still uppercased, but with no underscore e.g.
model AVAILABLEPRODUCT {
  PRODUCTID              Int            @id @default(autoincrement())
}

I guess pal assumes that tables and columns are written in lowercase snake case, and just removes underscores and uppercases initials.
Any suggestions on how to get out of this situation? I Thought of replacing lowercase characters with uppercase before running pal schema camel-case (e.g. through a Sublime RegEx) but that would mess up types e.g. Int, which are already in the correct notation.
Thanks in advance.

I dug up a bit more. https://github.com/paljs/prisma-tools/blob/17d8c67f0da89c6c3303f269e4a010fc8135f072/packages/schema/src/camelCase.ts#L74
Using camelCase from lodash here instead of doing the work yourself would probably be enough
Welcome to Node.js v16.9.0.
Type ".help" for more information.
> const lodash = require('lodash')
undefined
> lodash.camelCase("MY_TABLE")
'myTable'

hey, @BudWhiteStudying,
I think all that I need to do is add one word
https://github.com/paljs/prisma-tools/blob/17d8c67f0da89c6c3303f269e4a010fc8135f072/packages/schema/src/camelCase.ts#L80

also when I am working I love to do all my work without external packages if this is a small work.

Ah sure, I think that would work too. I typically try to avoid reinventing the wheel by relying on external packages when they're well established, but I completely understand your point.

Please try v4.0.2

Doesn't seem to work, although I don't understand why. I did everything from scratch with a clean schema.prisma file.
npx prisma db pull
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
[...]
Introspecting based on datasource defined in prisma/schema.prisma …

✔ Introspected 8 models and wrote them into prisma/schema.prisma in 2.68s

This again generates a model like
model AVAILABLE_PRODUCT {
  PRODUCT_ID              Int            @id @default(autoincrement())
}

then I ran
npx<EMAIL_ADDRESS>schema camel-case
Prisma Schema loaded from prisma/schema.prisma
✔ Your schema converted successfully

and the result is still
model AVAILABLEPRODUCT {
  PRODUCTID              Int            @id @default(autoincrement())
}

it must give you
model AvailableProduct {
  PRODUCTId              Int            @id @default(autoincrement())
}

and this is wrong and I released another version that has a fix  v4.0.3
model AvailableProduct {
  productId Int @id @default(autoincrement()) @map("PRODUCT_ID")

  @@map("AVAILABLE_PRODUCT")
}

Now it works as intended, except for names without underscores i.e. the ID column isn't converted to id, the USER table isn't converted to User.

because we search for words have _


Create swift.swift

Prints Hello World in swift programming language

Sorry, but someone else already submitted a PR for Swift and added it to the readme.

can i  post 1 for powershell

For sure! Feel free to open another pull request for Powershell.
On Thu, Oct 1, 2020 at 11:47 PM Samarth Verma<EMAIL_ADDRESS>wrote:

can i post 1 for powershell
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Den4200/hello-world/pull/8#issuecomment-702510871,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMRF7TZZYS4VPXTMD7KLP3TSIVEO3ANCNFSM4SBGTERA
.


Improve CSSStyleDeclaration typings

Not every string should be allowed in properties of the CSSStyleDeclaration interface, such as display, overflow, etc. The TypeStyle project seems to have put quite some effort into this already, from which inspiration could be taken.

I've just been told about https://github.com/frenic/csstype and wanted to share it with you as well since it could be of help in resolving this issue.

Just a question: Why is the index type of CSSStyleDeclaration's index signature number and not string?
In case you want to apply a list of styles to HTMLElement.style one (like me) could try:
let element: HTMLElement = window.document.create('div');
let styles: { [key: string]: string } = {
    display: 'inline-block',
    width: '36px',
    height: '36px'
};

for (let style in styles) {
    element.style[style] = styles[style]; // generates TS7015, because index type is not 'number'
}

My current workaround is a cast to any:
(<any>element.style)[style] = styles[style];

which is really ugly.

It appears that somebody contributed a potential fix:
https://github.com/microsoft/TypeScript/pull/35107
The bot declined it:

It looks like you've sent a pull request to update some generated declaration files related to the DOM. These files aren't meant to be edited by hand, as they are synchronized with files in the TSJS-lib-generator repository. You can read more here. For house-keeping purposes, this pull request will be closed.

And after a quick look into the TSJS-lib-generator repo... it looks like no changes related to this have happened there yet:
https://github.com/microsoft/TSJS-lib-generator/blob/master/baselines/dom.generated.d.ts#L3196
I would like to add to the opinion that this is a real issue that needs to be addressed.

Is there any special reason this line is has index: number and not a index: string?
https://github.com/microsoft/TSJS-lib-generator/blob/bf671e99615b06404db7a89fa9ae05bf14a8e47c/baselines/dom.generated.d.ts#L3201

@rpearce this seems to be the culprit: https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/item

Wow, today I learned! Thank you.

"ts(7015)". TypeScript is still insisting that standard CSS style names are numbers like 1, 2, 3, not strings like 'margin' and 'font-size', so mydiv.style['font-size'] is a type error that I need to fix by either conforming to the standard: mydiv.style[37] = '24px' or working around it and living on the edge.

@GlenPerkins
Just use:
mydiv.style.setProperty('font-size', '24px') and
mydiv.style.getPropertyValue('font-size')

@HolgerJeromin
Thanks. I still think that TypeScript shouldn't be flagging the standard style['font-size'] as an error, but I appreciate your reminder of the set/get method approach, and I'll just use that instead. It's as standard as the other, and TypeScript doesn't think it's wrong.

Big big bump.
Typescript's CSSStyleDeclaration-types are not typing the reality of a browser, but are typing react's style-properties atm. Imo kebab-case should be the default since this is what it is.
The current implementation makes functions like window.getComputedStyle impossible to work with once you are outside react.

@GlenPerkins Instead of style['font-size'] just use style.fontSize. In case the key is a variable we can make it typesafe like so:
// By using Omit I remove all functions and readonly properties from the CSSStyleDeclaration
// type and by using Excluse I remove the number index.
export type StyleProperty = Exclude<
  keyof Omit<
    CSSStyleDeclaration,
    | 'length'
    | 'parentRule'
    | 'getPropertyPriority'
    | 'getPropertyValue'
    | 'item'
    | 'removeProperty'
    | 'setProperty'
  >,
  number
>;

// Now we can use this type to make index access of "style" typesafe:
const styleProperty: StyleProperty = 'fontSize';
style[styleProperty] = '14px';


Support speculative authenticate

Description

Closes #3777.
speculativeAuthenticate is a field on isMaster command. If speculativeAuthenticate succeeds, it skips saslStart. If speculativeAuthenticate fails, it doesn't throw error, but instead let saslStart handle the error.
isMaster request may contain speculative authenticate field, it does in go driver (maybe other drivers too).
    "speculativeAuthenticate": {                                                                                [749/1855]
      "$k": [
        "saslStart",
        "mechanism",
        "payload",
        "autoAuthorize",
        "options",
        "db"
      ],
      "saslStart": 1,
      "mechanism": "SCRAM-SHA-1",
      "payload": {
        "$b": "biwsbj11c2VyMixyPVlnU2NNaFZvcng5QzFPRDVWWW1iMjFuUjhWeUJDVVM0",
        "s": 0
      },
      "autoAuthorize": 1,
      "options": {
        "$k": [
          "skipEmptyExchange"
        ],
        "skipEmptyExchange": true
      },
      "db": "test"
    }

A successful speculativeAuthenticate sets a field on isMaster response.
"speculativeAuthenticate": {
      "$k": [
        "conversationId",
        "done",
        "payload"
      ],
      "conversationId": 1,
      "done": false,
      "payload": {
        "$b": "cj1ZZ1NjTWhWb3J4OUMxT0Q1VlltYjIxblI4VnlCQ1VTNDZRZ0U5S1JJSlRMT3hsR3dNcitLNFNNRlJVR3ZSQ3NxLHM9Q3R3VlYzM3NidExYdEhuZVdlQ1FiS1hRLGk9MTAwMDA=",
        "s": 0
      }
    }

Readiness checklist

[ ] I added/updated unit tests (and they pass).
[ ] I added/updated integration/compatibility tests (and they pass).
[ ] I added/updated comments and checked rendering.
[x] I made spot refactorings.
[ ] I updated user documentation.
[ ] I ran task all, and it passed.
[x] I ensured that PR title is good enough for the changelog.
[x] (for maintainers only) I set Reviewers (@FerretDB/core), Milestone (Next), Labels, Project and project's Sprint fields.
[x] I marked all done items in this checklist.

I don't see anything problematic, but should we hold to merge this once #1877 is merged (and then include tests)?

I marked it as do not merge for now. I don't think there is need for additional test. But if there is uncovered path, yes we can add tests.

There is now one code for saslStart, so it's clear that saslStart isn't skiped, it's called either by isMaster op query or saslstart command

Checking out this PR and testing it now.


cassandra 5.0 vector type CREATE/INSERT support

makes progress towards: https://github.com/scylladb/scylla-rust-driver/issues/1014
The vector type is introduced by the currently in beta cassandra 5.
See: https://cassandra.apache.org/doc/latest/cassandra/reference/vector-data-type.html
Scylla does not support vector types and so the tests are setup to only compile/run with a new cassandra_tests config.
This commit does not add support for retrieving the data via a SELECT.
That was omitted to reduce scope and will be implemented in follow up work.
I have split off support for CREATE/INSERT since I value the early feedback of small PRs.
I didnt realize that @pkolaczk had shown interest in implementing this until after I'd went to submit my PR.
Hopefully I've not stepped on any toes.
The cassandra docker-compose.yaml is changed to 5.0 beta cassandra, if this is undesirable I can introduce a second docker-compose.yaml specifically for 5.0

Confirmed that the test is running in CI
Pre-review checklist

[x] I have split my patch into logically separate commits.
[x] All commit messages clearly explain what they change and why.
[x] I added relevant tests for new features and bug fixes.
[x] All commits compile, pass static checks and pass test.
[x] PR description sums up the changes and reasons why they should be introduced.
[x] I have provided docstrings for the public items that I want to introduce.
[x] I have adjusted the documentation in ./docs/source/.
[x] I added appropriate Fixes: annotations to PR description.

I believe that the PR title and description are a bit imprecise.
The PR does not add CREATE or INSERT support for Vector type. CREATE is and always was possible, so was INSERT with hardcoded values.
The PR enables the driver to fetch and represent metadata containing Vector type, which is required to fully connect to cluster (because if the driver can't fetch metadata then it also won't fetch peer list).

I'm not quite following what you want.
To save both of us the trouble, can you please provide the exact commit message that you want.

Hi, any news on this one?

Hi, any news on this one?

Sorry for the delay, both @Lorak-mmk and I have been on vacation. Now let @Lorak-mmk take a fresh look.

cassandra 5 is released, any interest in landing this?

oh right, theres some TODO's in here for when cassandra 5 releases. I'll address those

The TODO's have been addressed: the cassandra 5 specific workflow and docker-compose.yaml have been removed, instead we just use the regular cassandra workflow (which is automatically version 5 now since it does not specify a version)

oh right, a recent rust release has disallowed that kind of feature check, I'll look into alternatives

I applied the same fix as https://github.com/scylladb/scylla-rust-driver/pull/1049 and CI is green now


"error decrypting session ID flet_oauth_signin from <IP_ADDRESS>: base64 decode failed"

Description
I didn't code on my project this weekend and upgraded Flet to version 0.21.2 now. When I try to log in with Okta as my IDP now I'm getting this error: error decrypting session ID flet_oauth_signin from <IP_ADDRESS>: base64 decode failed. You might have a general solution what changed the past days?
Code example to reproduce the issue:
Didn't touch it so it won't be the issue, I guess.
Describe the results you received:
App opens my login screen and when clicking the button I'm getting error decrypting session ID flet_oauth_signin from <IP_ADDRESS>: base64 decode failed.
Describe the results you expected:
Normally I'd get another opening window with "Successfully logged in, you can close the window now" message.
Additional information you deem important (e.g. issue happens only occasionally):
Flet version (pip show flet):
Name: flet
Version: 0.21.2
Summary: Flet for Python - easily build interactive multi-platform apps in Python
Home-page:
Author: Appveyor Systems Inc.
Author-email<EMAIL_ADDRESS>License: Apache-2.0
Location: /opt/homebrew/lib/python3.11/site-packages
Requires: cookiecutter, fastapi, flet-runtime, packaging, qrcode, uvicorn, watchdog
Required-by:

Give your requirements.txt file (don't pip freeze, instead give direct packages):
(The requirements)

Operating system:
macOS
Additional environment details:

Solved, created a new environment with fresh pip packages.


QA: prevent double comment by the bot

The bot should edit appropriate response when a user edits their comment.

#TEST
I am first time commenter. I will edit this message but bot should not reply me twice.

TEST
I will post /help, then edit it to /wallet 0x1F9FCc0E84dc2094499b848AE37Cd6a51db03Ff2 and bot should edit its previous response instead of posting a new response.

/help

TEST
I will post following commands in order
/allow set-multiplier @web4er true
/multiplier 0.7 @web4er "testing"

then I will edit first command to /help and bot should edit its response, and not the response of multiplier

/allow set-multiplier @web4er true

/multiplier 0.7 @web4er "testing"

TEST
I will make two non-command comments.
After this, I will edit my first non-command comment to /allow set-multiplier @web4er true, and the bot should fallback to creating a new response at the end because there was no existing bot response to edit.

First non-command comment

Second non-command comment

TEST
I will run
/assign
/wallet 0x1F9FCc0E84dc2094499b848AE37Cd6a51db03Ff2
/unassign

then I will go edit /wallet 0x1F9FCc0E84dc2094499b848AE37Cd6a51db03Ff2 to /assign and bot should assign this again to me and edit its wallet response.

/assign

/wallet 0x1F9FCc0E84dc2094499b848AE37Cd6a51db03Ff2

/unassign

Ok, this is not a test or a part of test, but I am unassigning myself here to free my assign slot.

/unassign


Limit the size of wakatime.log file

seems like this file can get as big as it want, for example if you have Wakatime installed for some time if go to %USERPROFILE%\.wakatime in windows you can see a log file named wakatime.log, the thing is seems like this file don't have any limit on how big it can get... I mean the biggest that it got in my system is more then 400MB, its just too much for a log file...
I recommend putting some kind of cap on the log file size or maybe even do some kind of rotating...

@alanhamlett wdyt? Should we keep only x lines or x size?

Yea we should limit it's size. My wakatime.log file is 2.2M right now. @YouKnow-sys curious if you have debug mode enabled? That would cause the log to grow faster than normal.
What's a good size to cap it at? How about 100M? After that we rotate the log to wakatime.log.N and delete log files with N > 4.

I didn't change any settings related to my wakatime installation, is it on debug by default?

No, it's off by default.

50MB sounds good to me


Add central database to store app metadata

The idea to horizontally scale nodes (docker daemons and webapp). In order to do this we need a centralized DB ( maybe redis?) where session information and node state is stored and shared across nodes.
There are several //TODO's in the code to improve this.

It seems like we won't need this for now as we won't centralize anything. Each host will store the sessions it knows about. And the request will go directly to that host. Like: host1.play-with-docker.com


How to Exchange with a DNS server which has ipv6 address?

I have a dns server with  ipv6, how to update a new RR.
what address arg should passed to c.Exchange?
The [ipv6]:53 is wrong, and ipv6:53 return an error too many colons in address.
😭 😭 😭

Per the docs for Dial in net:

If the host is a literal IPv6 address it must be enclosed in square brackets, as in "[2001:db8::1]:80" or "[fe80::1%zone]:80". The zone specifies the scope of the literal IPv6 address as defined in RFC 4007. The functions JoinHostPort and SplitHostPort manipulate a pair of host and port in this form.

The form "[2001:db8::1]:80" and "[fe80::1%zone]:80" are tried at the beginning, but they are not work, error is connect: A socket operation was attempted to an unreachable network.
I doubt that if the function client.Exchange() could accept an ipv6 address?


Tooltip mouseover area to big on small graphs

I have done a line graph, and It works really well, but when I shrink it to the desired size, the tooltip detection zone for mouseover datapoint is too large, so multiple tooltips are selected.
How can I shrink the detection zone?

The tooltip to the left is being activated, even though I am very close to the correct tooltip.
My ideal goal would be to have a 50% divide between datapoints. So that only one tooltip ever shows up.

@djpimp2010 see the pointHitDetectionRadius option.
//Number - amount extra to add to the radius to cater for hit detection outside the drawn point
pointHitDetectionRadius : 20,

duplicate #526


Confusing name

Nice library, but the name is confusing. This is actually a spy. Mocking libraries allow you to set expectations and confirm that they are met.
Your readme says users shouldn't have to know the difference between spies, stubs, and mocks. I agree with that. Developers should though I believe.

spy - watch things happen without interfering (transparent)
stub - change/force behavior down specific paths
mock - establish a list of expectations that should be met

In reality (in sinon), mock extends stub and stub extends spy.

Propose a better name if you want to. I think it's quite obvious that naming is not my strength.

spyspy keeping with the same style of naming you have used.
Any reason to not try to make sinon.spy its own module instead of creating this one though? Sinon has great testing support already.

I don't have time right now.


Is descheduler executed in a loop?

In the line of this file, After wait.NonSlidingUntil() is submitted, the function ends, and defer cancel() will be executed, thus interrupting the cycle execution of wait.NonSlidingUntil().
This may mean that descheduler.runDeschedulerLoop() can only be executed once, regardless of whether rs.DeschedulingInterval is set or not.
I think this is a BUG.

Hi @ipsum-0320, have you run into any issues trying to run the descheduler in a loop? wait.NonSlidingUntil() should execute synchronously until the context channel is closed. So, that should block the deferred cancel() from RunDeschedulerStrategies() until the channel is closed from somewhere else.

Hi @ipsum-0320, have you run into any issues trying to run the descheduler in a loop? wait.NonSlidingUntil() should execute synchronously until the context channel is closed. So, that should block the deferred cancel() from RunDeschedulerStrategies() until the channel is closed from somewhere else.

@damemi okok, i know what you mean, thank you very much! 😊


[Airbrake] [Production] undefined method `*' for nil:NilClass

Airbrake error: #6663
Airbrake project: ETMoses
Error type: NoMethodError
Error message: undefined method `*' for nil:NilClass
Where: testing_grounds#data
Occurred at: Jun 27, 2016 06:17:39 UTC
First seen at: Jun 27, 2016 06:17:39 UTC
Occurrences: 1 (1 since last deploy on Jun 23, 2016 14:57:32 UTC)
URL: https://moses.energytransitionmodel.com/testing_grounds/365/data.json
File: [PROJECT_ROOT]/app/models/calculation/technology_load.rb
Backtrace:
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:81:in block in comps_for
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:77:in each
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:77:in each_with_object
[PROJECT_ROOT]/app/models/calculation/technology_load.rb:77:in comps_for

Shared buffer volume is blank. Should default to 0.0.

is this a duplicate of https://github.com/quintel/etmoses/issues/864 @antw @grdw?

It sounds like it. I'll close the older #864 and keep this one.


Integrating with custom organization models

I might be missing out something from the docs; kindly help me out.
So I've created 3 custom organization models inheriting from AbstractOrganization, AbstractOrganizationUser, and AbstractOrganizationOwner. I like the default functionality of listing organizations at /accounts and the way invitation works. I wish to integrate the newly created models with the already existing functionality. How do I do that?

Howdy! Thanks for your patience in my delayed reply. I think you're asking primarily about how to use your custom models with the default views (no?). Right now that's totally possible but not really dynamically, you have to just reuse the patterns, rather than the code. That's something planned for the 2.0 release (which currently updates support for invitations using a model-based invitation backend). The invitation update available in the branch version-2-dev, and it's also on PyPI as a pre-release.

Yes, exactly that. Currently, I've created custom views using the Abstract Viewsets. Is this the same thing you're saying?
Thanks


internal/distro/rhel{86,90}: drop console kargs from raw image deploy…

…ment
Using the simplified installer we were experiencing slow system boots.
Turns out we're incurring into https://bugzilla.redhat.com/show_bug.cgi?id=1839923
This patch just drops the console kargs - to be aligned with the
anaconda installer that doesn't experience this slow down.
The slow down doesn't happen on virtual machines as there's always a
ttyS0 there
fixes https://bugzilla.redhat.com/show_bug.cgi?id=2059429 for us
Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>This pull request includes:

[ ] adequate testing for the new functionality or fixed issue
[ ] adequate documentation informing people about the change such as

[ ] submit a PR for the guides repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

oh right, this needs manifests regeneration :)

FTR:

https://bugzilla.redhat.com/show_bug.cgi?id=2059429
https://bugzilla.redhat.com/show_bug.cgi?id=2062132


CN eBook - Updates for Chapter 1 -- take 2

Please review updates.
Culture/mindset section is still WIP.

Rob, can you move these changes to point to docs? So, we can get this reviewed under docs's process.


trying yolov4 tiny on darknet_ros in melodic version

Loading weights from /home/bojan/darknet_ros_og/src/darknet_ros/darknet_ros/yolo_network_config/weights/yolov4-tiny-custom_2000.weights...Done!
Waiting for image.
[darknet_ros-1] process has died [pid 13861, exit code -11, cmd /home/bojan/darknet_ros_og/devel/lib/darknet_ros/darknet_ros camera/rgb/image_raw:=/camera/rgb/image_raw __name:=darknet_ros __log:=/home/bojan/.ros/log/869f03e4-4e65-11ec-b140-78d0042abcfe/darknet_ros-1.log].
log file: /home/bojan/.ros/log/869f03e4-4e65-11ec-b140-78d0042abcfe/darknet_ros-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
Hi everyone,
I am facing the same issue. I've trained a custom model on darknet yolov4-tiny. Followed the instructions on the readme.

Copied .weights file to darknet_ros/yolo_network_config/weights
Copied  .cfg file to darknet_ros/yolo_network_config/cfg
Changed ros.yaml, camera reading topic to /zed/zed_node/left/image_rect_color (using zed_ros_wrapper)
Changed yolov2-tiny.yaml to point to config files and weights file per 1. and 2.
Changed detection classes names in yolov2-tiny.yaml to the 1 class the model was trained on ("- box")

I was able to run the default yolov2-tiny.weights and .cfg but face this error only after pointing to our .cfg and weights as mentioned.
Please help.
Originally posted by @TeingQiHao in https://github.com/leggedrobotics/darknet_ros/issues/205#issuecomment-979659624
I faced the same issue, trying to run darknet ros with yolov4-tiny but it shut down without any explanation, can someone help?

This package helped me to use the yolov4 and worked with my custom dataset
https://github.com/Tossy0423/darknet_ros/tree/020b7560f9c5901605503bb59450ed7654514e9c
I guess in the old version of darknet (melodic for me) some elements in the darknet/src is not updated to suits the yolov4


Cannot play audio on linux PC

After checking my log on Balena cloud, Here what it shown:
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
03.08.19 14:06:35 (+0700)  /usr/bin/bluealsa: Unsupported RTP payload type: 1
it shown this for entire of the log file
Here its my issuse report.Thanks for reading this

Try it with another balenaos version or anothe bluetooth adapter.

Hey @BarryAlvord, in case you didn't figure it out, please try with the latest balenaOS version and let us know how it goes. Cheers.

@tmigone i think thia account is no longer active.
btw: What is with linux PC ment? balenaSound is for the Raspberry Pi. No wonder that this is not working.

I can add something more to this topic. I face exactly the same problem. I tried it on different setups:

RPi 2 with cheap Bluetooth dongle and connected by cable Ethernet - it is detected by balenaSound, BT LED blinks, no sound from speaker or headphones connected to Pi's audio out. I tried two (latest and previous) balenaOS versions,
RPi 3 (32 bit version) - WiFi and BT built-in, latest balenaOS version.

All three setups - no sound, only "Unsupported RTP payload type: 1" error. What should I do?

Same problem here, I can bind my linux laptop to the RPi 3A+ but no sound is played with the very same error.
I've never experienced any problem with this machine before, I think it might be related to the bluetooth "codec" used on the PC : High Fidelity A2DP Sink ?

It's definitely linked to this issue: https://github.com/Arkq/bluez-alsa/issues/13


App is crashing while calling platform specific code

Steps to Reproduce

Run flutter create --template=plugin --platforms=macos macospermission.
Create a plugin for macos swift
Write a platform code which returns a asynchronous
call the method

Sample Code: https://github.com/Faisalkc4u/macospermission.git

Logs
flutter doctor -v
[✓] Flutter (Channel stable, 2.0.1, on macOS 11.2.3 20D91 darwin-x64, locale en-US)
    • Flutter version 2.0.1 at /usr/local/Caskroom/flutter/1.22.6/flutter
    • Framework revision c5a4b4029c (11 days ago), 2021-03-04 09:47:48 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/mac/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.82

• No issues found!

@Faisalkc4u
Cloned your repo but getting below error:
Launching lib/main.dart on iPhone 12 Pro Max in debug mode... No application found for TargetPlatform.ios. Is your project missing an ios/Runner/Info.plist? Consider running "flutter create ." to create one.

This issue is for mac

@Faisalkc4u Thanks. that was my bad.
I ran the example directory on macOS and saw below:

When do you exactly see the crash ?

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.2, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.0.2 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 8962f6dc68 (4 days ago), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.18.1

[✓] Connected device (3 available)
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 89.0.4389.82

! Doctor found issues in 1 category.

Click on "permission" button
which invokes a native method asking for permission
before asking the permission the app is crashing
If you are opening example-> macOS in Xcode and running the project, After clicking on permission it's working fine.

I have tested this code with following version and it's crashing
macos 10.15.7 (Build 19H1016)
macos 11.2.3 (Build 20D91)

@Faisalkc4u
Ran the example project on macOS using AS on latest stable and tapping on permission button isn't crashing for me.
https://user-images.githubusercontent.com/67046386/111428366-66987180-871d-11eb-89af-4ec69e62fbf6.mov
May be I am on a lesser OS version than you mentioned above ?

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.2, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.0.2 at /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision 8962f6dc68 (5 days ago), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1

[!] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.18.1

[✓] Connected device (3 available)
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 89.0.4389.82

! Doctor found issues in 1 category.

Your video says that you are using Mac OS version 10.15.4
You are using a lower than than mine
I'm getting problems on Mac OS 10.15.7 and 11.2.3
Here is the video for Mac OS 11.2.3
https://user-images.githubusercontent.com/12441355/111429834-f684ee00-8712-11eb-9fb6-bcfb1ad62d41.mov

Tagging @pedromassangocode  to verify this on 11.2.2.

I can reproduce this on latest version of MacOS (not sure if this only happens on latest version).
While running with VS Code the reproduces the issue: the app crash after pressing the button.
While running on Terminal app (non VS code or IntelliJ): the app don't crash, the permission dialog appear and you are able to accept it (see the logs bellow).

logs
pedromassango@MacBook-Pro-de-MacBook example % flutters run -d macos
Launching lib/main.dart on macOS in debug mode...
Building macOS application...
Syncing files to device macOS...                                   161ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h Repeat this help message.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).
An Observatory debugger and profiler on macOS is available at:
http://<IP_ADDRESS>:53101/zZM0w_B89Nk=/

Flutter DevTools, a Flutter debugger and profiler, on macOS is available at:
http://<IP_ADDRESS>:9104?uri=http%3A%2F%2F<IP_ADDRESS>%3A53101%2FzZM0w_B89Nk%3D%2F

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
flutter: notDetermined
flutter: authorized
flutter: authorized

Running on IntelliJ IDEA: the app simple accept the permission and no MacOS permission dialog is shown (see logs bellow)

logs
MacBook-Pro-de-MacBook:example pedromassango$ flutters run -d macos
Launching lib/main.dart on macOS in debug mode...
Building macOS application...
Syncing files to device macOS...                                    78ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h Repeat this help message.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).
An Observatory debugger and profiler on macOS is available at:
http://<IP_ADDRESS>:52995/mUOgcpwuKsQ=/

Flutter DevTools, a Flutter debugger and profiler, on macOS is available at:
http://<IP_ADDRESS>:9103?uri=http%3A%2F%2F<IP_ADDRESS>%3A52995%2FmUOgcpwuKsQ%3D%2F

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
flutter: authorized
flutter: authorized
flutter: authorized
flutter: authorized
flutter: authorized
flutter: authorized
flutter: authorized

This seems to be related to Mac permission behavior, as I've tried to revoke permission and running the app again (from terminal) it simply deny the permission request.
Revoked permission for Terminal

Now, running the app again the permission request is simply denied

logs
pedromassango@MacBook-Pro-de-MacBook example % flutters run -d macos
Launching lib/main.dart on macOS in debug mode...
Building macOS application...
Syncing files to device macOS...                                    71ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h Repeat this help message.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).
An Observatory debugger and profiler on macOS is available at:
http://<IP_ADDRESS>:53705/tWOM8D_R9QI=/

Flutter DevTools, a Flutter debugger and profiler, on macOS is available at:
http://<IP_ADDRESS>:9105?uri=http%3A%2F%2F<IP_ADDRESS>%3A53705%2FtWOM8D_R9QI%3D%2F

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
flutter: denied
flutter: denied
flutter: denied
flutter: denied

VS Code
Since VS Code (or its Terminal) is not allowed to have Microphone permission, then it simply crash.

logs
pedromassango@MacBook-Pro-de-MacBook example % flutters run -d macos
Launching lib/main.dart on macOS in debug mode...
Building macOS application...
Syncing files to device macOS...                                    97ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h Repeat this help message.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).
An Observatory debugger and profiler on macOS is available at: http://<IP_ADDRESS>:54209/ZHBpgokqD4g=/

Flutter DevTools, a Flutter debugger and profiler, on macOS is available at:
http://<IP_ADDRESS>:9107?uri=http%3A%2F%2F<IP_ADDRESS>%3A54209%2FZHBpgokqD4g%3D%2F

Running with unsound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
flutter: notDetermined
Lost connection to device.
pedromassango@MacBook-Pro-de-MacBook example %

This seems to be more an VS Code issue so I would suggest you to file an issue in the related repository.
Following the indication of VS Code Flutter Extension, the correct way to address the problem is to open an issue in the dedicated repository.
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you

I am currently unable to reproduce this issue on the latest stable and master channels. I'd be closing this because it seems to have been fixed in the latest versions, if anybody disagrees, kindly write in comments and I'll reopen it or file a new issue using latest version code.
  flutter doctor -v
[✓] Flutter (Channel master, 3.11.0-2.0.pre.55, on macOS 13.3 22E252 darwin-arm64, locale en-NG)
    • Flutter version 3.11.0-2.0.pre.55 on channel master at /Users/dammya/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 835b892d7f (9 days ago), 2023-05-07 01:30:22 +0530
    • Engine revision 23f730efbf
    • Dart version 3.1.0 (build 3.1.0-83.0.dev)
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (3 available)
    • Damilola’s iPhone (mobile) • 71c843fa5f3dec767999f36224653c0faa78660e • ios            • iOS 16.4 20E247
    • macOS (desktop)            • macos                                    • darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                                   • web-javascript • Google Chrome 113.0.5672.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[✓] Flutter (Channel stable, 3.10.0, on macOS 13.3 22E252 darwin-arm64, locale
    en-NG)
    • Flutter version 3.10.0 on channel stable at /Users/dammya/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (6 days ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (3 available)
    • Damilola’s iPhone (mobile) • 71c843fa5f3dec767999f36224653c0faa78660e •
      ios            • iOS 16.4 20E247
    • macOS (desktop)            • macos                                    •
      darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 113.0.5672.92

[✓] Network resources
    • All expected network resources are available.

• No issues found!