dotnet fsi fails on dotnet-sdk 6.0.3 - No parameterless constructor found

install dotnet 6.0.300
save fsx script below to a file
run dotnet fsi ./test.fsx

Expected: Get cli usage message
Actual: Get error message:
System.MissingMethodException: Cannot dynamically create an instance of type 'FSI_0002+options'. Reason: No parameterless constructor defined.
   at System.RuntimeType.ActivatorCache..ctor(RuntimeType rt)
   at System.RuntimeType.CreateInstanceOfT()
   at System.Activator.CreateInstance[T]()
   at CommandLine.Core.InstanceBuilder.<>c__1`1.<Build>b__1_0(Func`1 f)
   at CSharpx.MaybeExtensions.MapValueOrDefault[T1,T2](Maybe`1 maybe, Func`2 func, T2 noneValue)
   at CommandLine.Core.InstanceBuilder.Build[T](Maybe`1 factory, Func`3 tokenizer, IEnumerable`1 arguments, StringComparer nameComparer, Boolean ignoreValueCase, CultureInfo parsingCulture, Boolean autoHelp, Boolean autoVersion, Boolean allowMultiInstance, IEnumerable`1 nonFatalErrors)
   at CommandLine.Parser.ParseArguments[T](IEnumerable`1 args)
   at <StartupCode$FSI_0002>.$FSI_0002.main@() in C:\Users\edeus\dev\github\smashcut\stream-poc\scripts\Opts.fsx:line 26
Stopped due to error

Note: works in dotnet 6.0.203

fsx script:
#r "nuget: CommandLineParser.FSharp, 2.9.1"
// #r "nuget: CommandLineParser.FSharp, 2.9.2-ci-210"

open CommandLine
open System

type options =
    { [<Option('r', "read", Required = true, HelpText = "Input files.")>]
      files: seq<string>
      [<Option(HelpText = "Prints all messages to standard output.")>]
      verbose: bool
      [<Option(Default = "русский", HelpText = "Content language.")>]
      language: string
      [<Value(0, MetaName = "offset", HelpText = "File offset.")>]
      offset: int64 option }

let result =
    CommandLine.Parser.Default.ParseArguments<options>(Environment.GetCommandLineArgs())

match result with
| :? Parsed<options> as parsed -> printfn $"{parsed.Value}"
| :? NotParsed<options> as notParsed -> printfn $"{notParsed.Errors}"
| _ -> printfn "?"

if anyone else happens to run into this, the [] may help you, it helped me 👀

if anyone else happens to run into this, the [<CLIMutable>] may help you, it helped me 👀

How to use it? I have the same issue when publishing a C# project as standalone executable file.

👀

This issue might be separate (at least if you use any options related to assembly stripping), and you might want to tell .NET to not strip stuff you only access through reflection, here's an example in my project using the DynamicDependencyAttribute
https://github.com/profan/brainiac/blob/856c167a12219988f0d458bb448e4c0d7b3ee649/Compiler.fs#L472


Don't use Cow::<str>::to_string

What does this PR do
The existing code accidentally dropped the possibly already existing owned value.
Checklist:

[x] I have read CONTRIBUTING.md
[x] I have written necessary tests and rustdoc comments
[x] A change log has been added if this PR modifies nix's API

The test failure seems unrelated / spurious.


Tcp router PR

This PR is for adding tcp router functionality to lattice.

It adds haproxy, router-configurer, tcp-emitter components to lattice
Upstart and compile scripts changed to take care of these new components
Vagrantfile modified to install incrontab on lattice-brain
AWS terraform modified to install incrontab on lattice-brain
Updated ltc create to take --tcp-routes flag to let developers configure tcp routes for their apps
Added integration test for tcp routing support testing

Regards,
@atulkc and @fordaz
PS:  This PR replaces  https://github.com/cloudfoundry-incubator/lattice/pull/171, as indicated by David Wadden

Thanks for getting this right =)  Sorry for the delay, but we're planning to cut a v0.3.1 patch release soon (within a day or two) to address some things from v0.3.0 going out last week before we merge tcp-router functionality.  I've tested this a bit, and it looks good though.  I'll probably reach out in the next day or two to go through the final rebase once we're ready to merge.

Sure...let us know when you are ready to merge in the changes.


feat(Illustration): added new stackedPagesIllustration

Overview

Added a new illustration : StackedPages, that needs to be used in Teams Trial Modal

PR Checklist

[x] Related to designs:
[x] Related to JIRA ticket: [IN-1167]
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change
[ ] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Storybook Illustrations preview => path=/docs/atoms-illustrations--editable-illustration
Search for StackedPages

PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

📬Published Alpha Packages:@codecademy/gamut@57.2.1-alpha.34119d.0@codecademy/gamut-illustrations@0.48.0-alpha.34119d.0@codecademy/gamut-kit@0.6.442-alpha.34119d.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://66f0db0090f66d59b7805ef3--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.2.2-alpha.ffcd64.0@codecademy/gamut-illustrations@0.48.0-alpha.ffcd64.0@codecademy/gamut-kit@0.6.443-alpha.ffcd64.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://66f187a5a568a7318b024887--gamut-preview.netlify.appDeploy Logs


Translation Issues w/ PF2E?

Issues are all with PF2E system. It seems to recognize their known languages for the purposes of selecting them in chat

When GM selects an NPC and speaks in a language one of the PCs knows, it does not translate in their chat, and shows a red globe.
When GM shares a journal entry written in a language known by one of the PCs, the glyphs still show up, giving no option to translate.

GM view: shows Isaac knows Draconic, and that the Charau-ka spoke in Draconic, but the globe shows red as if Isaac doesn't know the language.

Player view: the player is speaking draconic, but still does not seem to comprehend draconic.

Player view: This is a journal entry with text in both Draconic and Dwarven. The player is still Isaac, and is selected.

This issue has been resolved. It was not a problem with Polyglot, but a problem with Pathbuilder import not properly checking off languages in the character sheet. They were appearing on the sheet and as languages known for the purposes of speaking them in Polyglot, but because they weren't actually checked off in the list, Polyglot wasn't detecting them as known for the purposes of translating. Manually checking off the languages fixed the issue, and it appears that this issue was fixed in a recent update to the Pathbuilder Import module.


Hana database traces not available by default

Hello,
We are using HANA as the database for our application. I do not see any traces with db sql statements in the traces. I have added the following as dependency:
"@cap-js/hana": "^0.1.0",
"@cap-js/telemetry": "^0.1.0"
Question : Does the database statements from @cap-js/hana gets added to the traces by default or is there any other steps required?
Thanks and Regards,
Prajul

I see that only 3 levels of traces are generated and not 4 as in the the example:

Click on child span in Dynatrace and you should see SQL statement as an attribute:

We are exporting the trace to  opensearch. The actual issue if that db.statement is not generated. I do not see it in the console.
[telemetry] - elapsed times:
0.00 → 351.72 = 351.72 ms  POST /forecastingscenarios/$batch
2.63 → 288.27 = 285.63 ms      ForecastingScenariosService - READ ForecastingScenariosService.ForecastingScenar…
3.62 →  32.66 =  29.04 ms        db - READ ForecastingScenariosService.CharacteristicValueCombinationTimeSeriesVi…
33.27 →  53.17 =  19.90 ms        db - READ ForecastingScenariosService.ForecastingScenarios
53.87 →  74.58 =  20.70 ms        db - READ CalendarService.calendar
75.32 →  97.15 =  21.83 ms        db - READ CalendarService.calendar
98.44 → 118.45 =  20.01 ms        db - READ CalendarService.calendar

You should see it in opensearch in the same way you can see it in Dynatrace via an attribute on the trace.


Help Needed : Loading order incorrect with prefetch and preload, delayed boot time

Hey there.
While i'm globally satisfied with Nuxt performance, I'm always trying to achieve a quicker first display for the user.
I noticed quite a delay when coming with a slow network connexion, so I tried to analyse the asset loading using google chrome. here is my discoveries :

and the Associated DOM

This is the loading waterfall called just after a request made to a "profession" page, served through SSR.
You can see the loading order has a few faults :

Vendor, app and manifest are loading first ans simultaneously, thanks to the preload instruction. That's a good thing
Then comes all the pages with the prefetch instruction. The three first being loaded are not the files corresponding the the page I'm displaying. That a first issue.
Then the "current JS page file", and it's associated layout are downloaded a second time, I guess it's because they are marked twice in the DOM, one with the prefetch instruction, one with no instruction.
Boot time is delayed after I got the CSS and asociated font, not sure why since I'm using WebFontLoader in order not to wait for the font.

Several things there.

First is the incorrect loading order, and the resources downloaded twice. This may be part of the Vue SSR Bundler.
Second is the boot time. I can't find why my app isn't displayed earlier. Point of SSR is not to wait for assets to be loaded before displaying the page. I guess this is on my side, but I can't see anything delaying the rendering.

If anyone encountered the same kind of issue, I'd be happy to have some hints on what to do to improve both loading order, and first display timing.
Thanks

Tried with resourceHints set to false. Waterfall is OK without the prefetch :

Core
Then requested page

and of course, no other page loaded.
With the same network throttled speed, first display is under 500ms, while previous test was a little over 6.5sec. This is a great improvment for slower connections.
We should really keep the prefetch feature, but the current page and layout should be injected as preload, and the app should not wait for every asset to be loaded before starting.

Hi @Norbz
Normally this has been fixed in rc11 to set the current page into preload with the layout as well.
Could you try to remove your node_modules, install your dependencies and make sure to use nuxt: 1.0.0-rc11 and try again please?
PS: Mention me so I can keep track of this issue

@Atinux Hey there, thanks for your answer.
According to my yarn.lock file, I'm definitively using the RC11 version, but I went and deleted the whole thing to reinstall my dependencies. No change there. I should mention that I'm using Nuxt as an express middleware.
So, bottom line, the preload / prefetch order problem is still there.
However, and I feel a bit silly there, I found the problem with the delayed first display.
To prevent blocking the rendering, I am using WebFontLoader in a plugin to load asynchronously my webfont. The issue here is that it is compiled in the app, and the webfont are loaded pretty late in the waterfall.
I could manage to compile this script on my own side, and include it with vue-meta, but it doesn't feel quite right in the dev stack. I will look into building a nuxt module to separately compile the webfontloader file and include it in the head as an async script.
Last but not least, I could probably share some part of the code with you but we need to discuss in PM for that :)

@Atinux I don't know if you received it, I sent you a mail a few days ago. You can contact me back if you need access to the project source code.
See you

@Atinux Just un update to remind you I'm available to help you work on this one.
See you

Hi @Norbz
Sorry about the delay, with the next upcoming release, we are using the last version of Vue, vue-server-renderer and vue-router which may update this behaviour.
When release I would love some help to debug this issue if it still not resolved.

In the meantime, you can help me by cloning nuxt.js @Norbz, putting you on the refacto-app branch, npm run build and then link nuxt to your project :)
See https://github.com/nuxt/nuxt.js/blob/dev/.contributing.md

 #1702

Hi @Atinux
Sorry for going AWOL, I had family issues the last few weeks.
I cloned nuxt, but I can't find the refacto-app branch. Did you deleted it ?
I still have the issue about the loading order although we activated HTTP/2 in production so the impact is much less significant on supported browser.
I also still feel Nuxt could beneficiate a solution to have scripts compiled then loaded before or in parallel with the app, for the webfontloade for instance, or any service worker that you would manually program.
Please tell me where I can find the refactoring you mentioned so I can run some tests and get back to you.

No prob at all @Norbz, it's open source so no pressure :)
You can directly use the dev branch now.
I include @pi0 on the loop since he implemented HTTP/2

Oh OK.
Using the dev branch, I'm having issues when using the linked nuxt. My plugins aren't imported correctly somehow.
 warning  in ./.nuxt/index.js 140:25-32 "export 'default' (imported as 'globals') was not found in 'globals'
(for every plugins)
Right now I'm not seing any change, but as I have errors due to the plugins not being found, the test is quite irrelevant.
I'll try to find a simpler project and upgrade nuxt on it to run the tests

Actually the plugins error has been fixed an hour ago by Pooya, you can
link again Nuxt and try again :)
2017-11-07 14:28 GMT+01:00 Nicolas Chesné<EMAIL_ADDRESS>
Oh OK.
Using the dev branch, I'm having issues when using the linked nuxt. My
plugins aren't imported correctly somehow.
warning in ./.nuxt/index.js 140:25-32 "export 'default' (imported as
'globals') was not found in 'globals'
(for every plugins)
Right now I'm not seing any change, but as I have errors due to the
plugins not being found, the test is quite irrelevant.
I'll try to find a simpler project and upgrade nuxt on it to run the tests
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nuxt/nuxt.js/issues/1702#issuecomment-342481739, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA3OFFhcTzn_vhrlq9NEt0WmKXZpEqvNks5s0FrlgaJpZM4PfPl5
.

Ok, make sense, didn't understand why the npm link wouldn't work.
I can't see any difference :

App, common, and manifest are "preload"

All pages are "Prefetch"

Current page and layout are in script tags below

So all pages are still loaded at once, before the actual scripts tag. At least that's what I see in Chrome.
Can you link to a page that is working correctly so I can compare ? I may have issues on my side tbh.
I'm using Nuxt as a middleware, and not directly.
One unrelated thing : in this version, the common.[hash].js is named app and that makes the code harder to read ;)
I have to stop for now, but I'll investigate more tomorrow.

One unrelated thing : in this version, the common.[hash].js is named app and that makes the code harder to read ;)

@Norbz this is just in dev mode for faster reloads. A separate vendor.js file should be generated on production builds as before. Do you mean reading generated js code?

I meant "reading" the network tab, not the compiled JS files. The filename went from "common" to "app". So I have two different files that are named "app" : the actual app, and the vendors.


Trying the refitting code

Hello Tim, really appreciate your efforts in the code.
But I have a question concerning trying the refit function so, if you have tried it please tell me what is the shape/type of the database used to refit https://github.com/tim-hilt/vlad/blob/47b969b328892c57229b9002456298b776ecd3e4/vlad/vlad.py#L171 also I have doubts about this line in refit function https://github.com/tim-hilt/vlad/blob/47b969b328892c57229b9002456298b776ecd3e4/vlad/vlad.py#L180  why to reset the centers values if we will use them as  initials to the new refit.
thanks in advance.

To be honest, I think I never really used refit, so this issue never really played itself out. You're right in that https://github.com/tim-hilt/vlad/blob/47b969b328892c57229b9002456298b776ecd3e4/vlad/vlad.py#L180 should be deleted, because it doesn't make much sense.
The database X should be of the same form of what you were using for the initial fitting.
Keep in mind, that I'm the only one who wrote this code and some time has already passed since I've even worked with Python, let alone this repository.
I hope this was helpful nonetheless! Thanks for showing interest in my work!


Question: Is there a way to set up HTTP headers?

Hi. first of all, congrats for this project, it's an awesome idea, looks really promising.
My question, I can't find a way to set up the HTTP request headers for the API gateway endpoints. It's not implemented?
There is a way to put a http request header on the event.json to make a jaws run and test it?
Regards.

Look at your aws_modules/FOO/BAR/awsm.js
Set your RequestParameters as below
     "RequestParameters": {
        "integration.request.header.x-access-token": "method.request.header.x-access-token"
      },

To expand on the above answer: in ./aws_modules/{lambdaName}/{endpointName}/asm.js you can define HTTP headers to add to the response for a given endpoint. (AWS API Gateway calls this "Method Response" and "Integration Response".)
For example, you can enable CORS by using this value in asm.js for apiGateway.cloudFormation.Responses.default.responseParameters:
"responseParameters": {
  "method.response.header.Access-Control-Allow-Origin": "'*'",
  "method.response.header.Access-Control-Allow-Headers": "'Content-Type,X-Amz-Date,Authorization'",
  "method.response.header.Access-Control-Allow-Methods": "'GET,POST'"
},

After you make the change in the file just $ jaws deploy endpoint or use $ jaws dash.

Thank you very much, It worked, maybe it can be added to the tutorials =)

Well, I thought the tests were successful but when I take a closer look, I saw that the lambda code are not receiving anything on the event object. Locally with the jaws run command it works, but when I upload it, event return {}.
This is my request parameter:
"integration.request.header.x_mail_list_client_id": "method.request.header.x_mail_list_client_id"
In the code i'm trying to acces it with event.x_mail_list_client_id.
@joemocha Can you show me an example of how to get this header on the code?

This endpoint pulls out an Authorization header.

As @dekz indicated, here is an example, with the POST body data included:
"RequestTemplates": {
        "application/json": "{\"data\": $input.json('$'), \"yourHeader\":\"$input.params('x_mail_list_client_id')\"}"
      },

//in your lambda:
postBody = event.data;
header = event.yourHeader;

@radhomero it works, thank you very much. My problem was caused because I was putting the headers on the RequestParameters instead of the request templates like @joemocha was suggesting.
Noob questions: What's the difference between your method and the @joemocha method? Why this method works locally but not when I upload it to aws?

@jrivera294 actually both actions are required: 1. Set your RequestParameters to create the integration. 2. Set the RequestTemplates to bring the request parameter into your Lambda event.


Support 'empty' prop and type 'any'

Closes #23 and Closes #22

:accept:

Strings and arrays were already allowed to be empty before this push -- it would be good to have a test around the failure case for each of these, to prove empty values can be blocked.

@TomFrost I'll write some integration tests to cover your last comment since it will need to move into the actual type checks.


TCP/IP port exhaustion by Prod.Client.WebCoreApp.exe

We are using Business Central W1 14.0 (27727) OnPremise (Installed from dvd)
When ever we start BC webclient, within a few mintues all TCP/IP port
has been consumed by Prod.Client.WebCoreApp.exe and then after working in BC
it stops with and error "Something went wrong". To get pass this error, you have to close BC
and restart IIS. (We had the same problem with BC Prerelease 3)
Is there anything we can do, so that BC does not consume all TCP/IP ports?????
Steps and/or AL code to reproduce the behavior:

Install Business Central W1 14.0 (27727) OnPremise from dvd on a
Microsoft Windows Server 2016 Standard
Start BC with the webclient
Start resource monitor, and open tappage Network, look at the TCP Connections

Expected behavior
That BC reuse/closes its TCP/IP connections, instead of just exhausting all port (over 16000 ports)
Screenshots
Before starting Business Central V.

Right after starting Business Central V.

Then this happens very often, only solution to get further is to restart IIS.

Versions:

AL Langauge: 2.1.86206

Business Central: W1 14.0 (27727)

I just installed following BC version :
AL Language : 3.0.102444
Business Central: W1 14.0 (14.0.28867.0) (PRERELASE 5 from DVD)
and it seems like this version does NOT have the problem with exhausting the TCP/IP ports.

Hello, AMCJN do you find the error?  Why Prod.Client.WebCoreApp.exe colapses connections.

Hi gdrenteriag,
No I did not find the source to the problem.
For me it helped to install the BC version mentioned above.
I have also not had the problem with Spring Release or CU1 of pring release.

Ok AMCJN Thanks But this link is broken: https://www.microsoft.com/en-us/download/details.aspx?id=58318 … I get that link from: https://support.microsoft.com/de-de/help/4501146/cumulative-update-01-for-microsoft-dynamics-365-business-central-sprin ….

The link was reactived.

We are having the same issue also on 15.2 environment . Anyone solved ?

Following the below picture , if a user connect using IE to Site C. We found that process “A” start consuming ports.
If we stop service “B” the problem does not occurs.
if user access with Google Chrome  or Microsoft Edge the problem does'not occurs
We checked this setting on both service and were right. We don’t have any further idea how to check or solve….

Closing this issue as it seems like a client issue which is beyond the scope of this repository which is only for issues related to the AL compiler in the latest developer preview environment for Dynamics 365 Business Central.
If you are still experiencing this issue on the latest version of Business Central, we suggest that you open a support case or file a bug in Collaborate, to ensure that all Business Central users benefit from your catch as soon as possible.
To open a support case, you can:

Open a support request to CSS through the PartnerSource portal
Contact your Service Account Manager (SAM) in your local subsidiary to understand what is included in your contract as of support incident and PAH (Partner Advisory Hours). Your SAM might also direct you "step by step" how to open a support request or how to get credentials, if this is the first time for you or your company

If you file the bug in Collaborate, remember to include steps to reproduce the issue, and the Business Central build number and country version you're using.


Cast button is no appearing

I have aI have a doubt, I'm making an app to transmit his video to any device that receives a transmission, for example a samsung tv, is it with this google cast support that I could do it? because I registered the application there on google cast developer and it didn't help, I added the tv serial and the device. It still doesn't show the button to broadcast, and if I go to the youtube app it appears and works normally

Please make sure you've followed the following:
https://developers.google.com/cast/docs/registration
to register the application and the device.
Publish your app on the Cast Developer Console.
Cast the Cast Developer console to your TV and it will show your Serial Number on the screen. Please double check the serial number shown matches the one you registered in the console.
Try setting your sender to the Default Receiver and then casting, to see if it works.

Feel free to re-open the issue in case none of the above helps and you need more help.


No 'scope' is saved in OAuth2Authorization

Describe the bug
A clear and concise description of what the bug is.
No 'scope' is saved in OAuth2Authorization if the /token request doesn't include the parameter.
https://stackoverflow.com/questions/76423232/no-getting-scopes-from-registeredclient-in-oauth2clientcredentialsauthentication/77363846#77363846
The code causes the issue:
https://github.com/spring-projects/spring-authorization-server/blob/7c197164e95395ff71ec03c191ee0ab655affdf2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2ClientCredentialsAuthenticationProvider.java#L100
To Reproduce
Run the demo
https://github.com/spring-projects/spring-authorization-server/tree/2a3b5d21f59d0353a1d5de806eb9b01ecd260034/samples/demo-authorizationserver
request:
curl --location --request POST 'http://localhost:9000/oauth2/token'
--header 'Authorization: Basic bWVzc2FnaW5nLWNsaWVudDpzZWNyZXQ='
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'Cookie: JSESSIONID=2E10D2E3608E02E65D98827B4888BEA9'
--data-urlencode 'grant_type=client_credentials'
response:
{
"access_token": "eyJraWQiOiI5NWZiOGU5NS01MDMzLTQ0MDYtYmZhZC1lZTVjYzcwMWNhNTEiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJtZXNzYWdpbmctY2xpZW50IiwiYXVkIjoibWVzc2FnaW5nLWNsaWVudCIsIm5iZiI6MTY5ODI4ODg5MSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo5MDAwIiwiZXhwIjoxNjk4Mjg5MTkxLCJpYXQiOjE2OTgyODg4OTF9.LAhiyH2rlgsU2U1qu_a0LyfZxSiMueHcrDWcgFy6LGBoWLxjQAxGIN4ouuTJa3Cakc7mkYEpbbi99-ASHejxegRcDFl2-pt_z7AdwJ8bg0STq6AISz8Ip9_nNyWlGObFvQw4UYjhBpuYyt1ho-BzuvzzlCl8Wl-xU7P1Wq8rAW4EH2oj-EfYblM33Ak_F30xoGauS1W4xk-CGt-RaeQJQf0iByMqhswpliS6gQ0rAK3utYo6jeE4j76h3IORMWKgVQ--06VLdIVHhwAcTCcOG14y6rfqslNWFC7uW7rvwEWfLDiS0A5ZGzasSsaGR7ntmxvOBZ2VO3ise3H8Jh2p6w",
"token_type": "Bearer",
"expires_in": 299
}
Expected behavior
"scope" should be populated/pesisted for the authorization and response.
Sample
A link to a GitHub repository with a minimal, reproducible sample.
Reports that include a sample will take priority over reports that do not.
At times, we may require a sample, so it is good to try and include a sample up front.

The fix is simply to add the else block as:
if (!CollectionUtils.isEmpty(clientCredentialsAuthentication.getScopes())) { 			for (String requestedScope : clientCredentialsAuthentication.getScopes()) { 				if (!registeredClient.getScopes().contains(requestedScope)) { 					throw new OAuth2AuthenticationException(OAuth2ErrorCodes.INVALID_SCOPE); 				} 			} 			authorizedScopes = new LinkedHashSet<>(clientCredentialsAuthentication.getScopes()); 		} else { 			authorizedScopes = registeredClient.getScopes(); 		}

@szsun
We cannot default ALL the registered scopes registeredClient.getScopes() for the client if the access token request does not include the scope parameter. Although the scope parameter is OPTIONAL, if the client requires scope(s) to be associated to the acces token, then it MUST request the scope explicitly is the token request.
I'm going to close this as OAuth2ClientCredentialsAuthenticationProvider works as designed.
Related gh-884

But according to the  OAUTH2 specification
https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#name-access-token-scope
https://datatracker.ietf.org/doc/html/rfc6749#section-3.3
"If the client omits the scope parameter when requesting authorization, the authorization server MUST either process the request using a pre-defined default value or fail the request indicating an invalid scope. The authorization server SHOULD document its scope requirements and default value (if defined)."
The implementation here doesn't do either of the mentioned MUST approach.
It's not clear by the specification that what 'a pre-defined default value' really referred to here, could be the scopes defined on the client level, or a system level? but anyhow, neither behavior is implemented in the mentioned code.


couldn't pull docker image

the image is not accessible from the url provided.

Sorry, this docker image is just for convenience to try on OpenI, it cannot be pulled to the local. The description of this section will be refined later. However, you can refer to Dockerfile to make it.


Remove hardcoded Strict-Transport-Security header.

We want to control this per application in the webserver, which seems a more appropriate place to handle this kind of configuration. Its settings are not easily changed when it's hardcoded.

:+1:
as an FYI: for the long run it was the intention to use https://github.com/nelmio/NelmioSecurityBundle for additional security related features so that we could get rid of as much hardcoded elements as possible  - HSTS would be configurable (or of course disabled :wink: ).

Great idea to use that, but things like HSTS I consider more webserver configuration than application configuration, e.g. in the same category as TLS ciphers. Would surely be nice to use some of the Nelmio features that are more application-centric.


Header is parsed incorrectly

Hi,
I seem to have hit a dead end with the header verification.  Relevant part of pact looks as follows:
"response": {

        // ...

        "headers": {
          "Last-Modified": "Sun, 12 Mar 2023 01:21:35 GMT"
        },

        // ...

       "matchingRules": {
          "$.headers.Last-Modified": {
            "match": "regex",
            "regex": "^[A-Za-z]{3},\\s\\d{2}\\s[A-Za-z]{3}\\s\\d{4}\\s\\d{2}:\\d{2}:\\d{2}\\sGMT$"
          },

          // ...

        }

      }

  // ...

  "metadata": {
    "pactSpecification": {
      "version": "2.0.0"
    }
  }

I think the regular expression in Python consumer is correct, since I have tested it many times using various tools:
# The date and time format used in the Last-Modified header according to
# RFC 7231 is described in section <IP_ADDRESS>.
#
# Examples:
#
#    Last-Modified: Mon, 12 Feb 1996 11:36:28 GMT
#    Last-Modified: Sat, 11 Mar 2023 21:56:41 GMT
#
LAST_MODIFIED_REGEX = r'^[A-Za-z]{3},\s\d{2}\s[A-Za-z]{3}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT$'

But when I try to verify it, it somehow compares for an exact match, without using a regular expression:
Pending Failures:

1) Verifying a pact between ProductServiceClient and ProductService Given there is a product with ID 1 - a request for a product
    1.1) includes header 'Last-Modified' with value 'Sun'
           Expected header 'Last-Modified' to have value 'Sun' but was 'Sun'
           Expected header 'Last-Modified' to have value '12 Mar 2023 01:21:35 GMT' but was '12 Mar 2023 01:21:52 GMT'

The difference in seconds: 35 vs 52.  And it fails because (I guess. I could be wrong.) in pact I have:

“Sun, 12 Mar 2023 01:21:35 GMT”

but providers returns

“Sun, 12 Mar 2023 01:21:52 GMT”

I use the same approach ( using regular expression test) for other headers like ETag, Content-Type and they are fine, verification passes as expected. The problem is only with this header.
Of course, I can create the required date on the provider side using request to /_pact/provider_states. However, in this case all my efforts will be to provide an exact match, and I would like to use the pattern here.
In one of the chats, @TimothyJones suggested that this is the bug with the header parsing where it’s splitting on ,. Looks like a bug in pact-reference, probably. Anyway, there is a similar issue: https://github.com/pact-foundation/pact-js/issues/1058

Versions:
Verifier
% pact_verifier_cli --version
pact verifier version   : v0.10.3
pact specification      : v4.0
models version          : v1.0.4

Broker
Docker images: pactfoundation/pact-broker:latest

pact_verifier_cli 0.10.4 has been released with a fix for this

I can confirm it, now everything works as expected. Thanks for the quick fix!


footer fixed

Related Issue
[Cite any related issue(s) this pull request addresses. If none, simply state “None”]
Fixes:  #1980
Description
[Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.]

Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes. Make sure to attach before & after screenshots in your PR.]
BEFORE

AFTER

Checklist:

[x] I have made this change from my own.
[ ] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

This branch has conflicts that must be resolved  and create new PR!!


[xkb] xfce4 keyboard settings might disable 1dk+Space

It seems like xfce4’s default layout switching shortcut might conflict with Level5+Space. To be confirmed.

If this sets the option grp:alt_space_toggle in XKB, then yes, it actually changes the key type and thus drops the levels on supported by it.


After running a case sensitive search, terminal find count is out of sync

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

VS Code Version: 1.68-insider
OS Version: Windows 11

Steps to Reproduce:

ls
search for 'a'
change search to be case sensitive
:bug: current position exceeds number of available matches (159 of 109 in screenshot below)

Works when you press enter once, so think we should just update match count when one of the options (case sensitivity for ex) is toggled

Still repros for me with the original steps:

Cannot repro having an index higher than the result count, but do see a problem with the index updating as I toggle that on and off
https://user-images.githubusercontent.com/29464607/214899407-9f12d127-7e8d-42e6-959e-4fdc42696301.mov


Broken dependencies on Fedora 34

Due to the package xorg-x11-server-utils being split on different subpackages for each x11 tool https://bugzilla.redhat.com/show_bug.cgi?id=1932754 the package isn't installable on Fedora 34 without forcing it with rpm --nodeps .
For the moment I created a COPR repo for this package here https://copr.fedorainfracloud.org/coprs/carlis/kde-services/ and I removed that requeriment in order to make possible the installation in a proper way.
But definitely the rpm at https://store.kde.org/p/998464/ won't install on Fedora 34. So that will need an update. If you could specify of what concrete xorg utilities depends kde-services I could add that to the Requires section.

Hi, thank you very much for sharing a temporary solution to a problem that I knew would appear at some point unfortunately. I have to find the time to update KDE-Services with everything I have pending 3 years ago. Have nice day!.

HI, if you can't find the time you could use the rpm from my repo to update the package on store.kde I'd like people could continue to install your program from the store website.


Binding shifts for cbuffer using -fvk-u-shift instead of -fvk-b-shift

The application of binding shifts seems to use the wrong shift for cbuffers.  If you take a look at https://github.com/KhronosGroup/glslang/wiki/HLSL-FAQ it describes the expected placement of HLSL resources in s/b/t/u registers:
t – for shader resource views (SRV)
    TEXTURE1D
    TEXTURE1DARRAY
    TEXTURE2D
    TEXTURE2DARRAY
    TEXTURE3D
    TEXTURECUBE
    TEXTURECUBEARRAY
    TEXTURE2DMS
    TEXTURE2DMSARRAY
    STRUCTUREDBUFFER
    BYTEADDRESSBUFFER
    BUFFER
    TBUFFER

s – for samplers
    SAMPLER
    SAMPLER1D
    SAMPLER2D
    SAMPLER3D
    SAMPLERCUBE
    SAMPLERSTATE
    SAMPLERCOMPARISONSTATE

u – for unordered access views (UAV)
    RWBYTEADDRESSBUFFER
    RWSTRUCTUREDBUFFER
    APPENDSTRUCTUREDBUFFER
    CONSUMESTRUCTUREDBUFFER
    RWBUFFER
    RWTEXTURE1D
    RWTEXTURE1DARRAY
    RWTEXTURE2D
    RWTEXTURE2DARRAY
    RWTEXTURE3D

b – for constant buffer views (CBV)
    CBUFFER
    CONSTANTBUFFER

I'm not sure which other ones are incorrect, but as you can see CBUFFER should and in the b-shift and I'm seeing it get the value of u-shift applied.  Probably worth auditing the other ones to make sure they are correct too.

Should be fixed with #2993


Support for cuBLAS

Suggested by asjackson. https://developer.nvidia.com/cublas

I'm sort of working on this a bit, not really sure which direction it is going to go in yet - just trying to figure things out.
https://github.com/AaronJackson/magicl/commit/b701e5cde80e14582b722da5c69917e00ece9583


Make master branch or a branch off of master the default branch

We were confused and wasted a couple sessions looking at dev branch.   Master branch is way better and matches what it looks like when you go the website.

Done, sorry about the confusion!


Select and Count

I was reading an article about .NET Core, where early versions had a bug/feature where if you had something like collection.Select(foo).Count();   it wouldn't actually perform the Select operation, since it doesn't matter, you only need the count.  But, since this would prevent side effects from happening, it was a breaking change and they had to fix it.
But, this seems like an optimization that LinqAF could keep.  Maybe you already do, but if not just wanted to get the idea out there.

The did leave remnants of this optimization in there (which, you could argue, are breaking changes...):
var count = 0;
var ignore =
    Enumerable
    .Range(0, 100)
    .Select(x => { ++count; return x; })
    .Skip(90)
    .ToList();
switch (count)
{
    case 10: System.Console.WriteLine(".net core (probably...)"); break;
    case 100: System.Console.WriteLine(".net framework (probably...)"); break;
    default: System.Console.WriteLine("who knows?"); break;
}


I can not recevie message and the msgBacklog is 1

Describe the bug
I found some message lost in the pulsar , so I checked the stats of topic and the log of pulsar, and I found An error occurred. Any reason to explain it?
Screenshots
The screenshots of the stats of topic

The screenshots of pulsar log

A new screenshots of pulsar log


Unack'ed messages remain in queues despite .ack()'ing or .reply()'ing

We are experiencing an issue where unack'ed messages remain in queues despite .ack()'ing or .reply()'ing. It is indeterminate (so far, we are debugging) when this occurs (but it occurs very frequently).
Sometimes messages are ack'ed and sometimes they are not and remain in the queue as unacked messages until they expire and head to dlx.
We have done a lot of debugging and testing and we are beginning to suspect that in certain situations (e.g. under heavy load) that the delayed ack'ing of the rabbot library may not be occurring for some reason.
We are as certain as we can be (e.g. as close to absolutely as is possible as a human) that every message is being ack'ed by the .handle on the server end, we have counted messages in and counted acks and they always have matched up.
Could someone please explain the nature of/methodology behind the "delayed" ack (the documentation mentions that acks are not sent immediately, this is what I am referring to)?
I looked in the source but it was not obvious where this batching was occurring or how, we suspect a node run loop or tick issue either in node or other libs we include might be interfering with the rabbot library's deferred acking framework.
This would help us further in our debugging to fully understand why there are situations where messages remain unack'ed in rabbit even though we have assuredly called msg.ack().
Thank you.
EDIT TO ADD: I have also taken traces at the network level (wireshark) and seen an disturbing absence of AMQP ACKs on the wire (using the AMQP protocol decoder so these are not being confused with TCP ACKs) while this has happened/when it happens, but we have verified that ACK is being called, so somewhere between us calling msg.ack() and the wire it is being lost (or never created?).
EDIT TO ADD (Part Deux): enabling noBatch mode on the queue in question completely prevents this issue, not a great solution performance wise but does fix the issue, which further indicates some problem with ACK batching being the issue.
(Including @GitTristan)

@24601 a few things could be causing this but I'll start by saying that what you're experiencing is, to my knowledge, isolated. Let's see if we can work through possible causes and eliminate them systematically. It would be helpful for me also if I could reproduce this so if we can take your setup and make it generic enough to share code to repro the scenario that would go a long way to helping me fix it.
why batch at all
As you saw, noBatch works so why batch? Without it, an ack must be sent for every individual message you receive. This increases load on your machine, the network and the rabbit broker. Your entire system will become significantly slower as a result. Batching allows the consumer to say "I have processed all messages up to N" and the broker then releases those from the queue permanently.
how batching is implemented in AMQP
Unfortunately AMQP's batching approach is unforgiving and complex. You can only acknowledge up to a message id since your last acknowledgement with no gaps. This means you can never nack a message from a previously ack'd range or ack part of a set or any of that. It's important to understand that complete ranges must be acknowledge at a time in order to understand everything that can go very wrong when using batch acknowledgements :)
avoid unbound I/O in handlers
If you are processing messages using I/O calls with broad degrees of variance you may need to add timeouts to these to prevent messages in a batch sequence from ha fining indefinitely and keeping the batching mechanism form being able to resolve a sequence indefinitely. If you receive 1000 messages but an early message hangs the batching will get stuck waiting.
always handle exceptions in handlers
Not catching exceptions in handlers has tripped up a lot of users. Because you're in a callback you don't get an exception and the message doesn't get nack'd for you so it's never resolved for the batch and then the entire batch hangs indefinitely.
always ack, nack or reject in handlers
Sounds like you're doing this but it's important to be certain that there is no edge case for a handler to exit without having resolved the message in one of these three ways or the batching mechanism will hang.
limit ingress
It is possible that the event loop could get overwhelmed due to the high volume of incoming messages, handler invocations and I/O callbacks such that the batching intervals aren't evaluating frequently enough to resolve the batches. The batching runs on an interval and itself relies on callbacks to resolve the tags for the outstanding messages. I haven't seen this myself yet but then we also limit the # of messages our services get per queue for other reasons. In general, letting rabbit deliver an unlimited # of messages to your service can be very bad. If the service goes down, the broker has to requeue all the unack'd messages leading to a lot of broker churn and possible message reordering. We'd rather run multiple instances of a service with smaller batch sizes and keep the risk of instance failure small.
Let's start with those. Let me know if that helps. The quickest thing to try would be limiting the number of messages your service is getting per queue at a time and go from there.

I'm seeing a similar issue. I don't know if this helps, but in the rabbot tests, I switched autoDelete to false for all of the queues in spec/integration/configuration.js. This is what my rabbitmq admin looks like for the relevant queues after the tests have run once:

That is likely expected behavior for some of those tests, I will try to take a closer look now.

@ryanwilliamquinn - I've done the same. I'm not seeing the large amounts left in the hash queues that you're showing. Have you tried running the integration tests prefixed with DEBUG=rabbot.acknack? It will let you see debug output for the part of rabbot that's resolving the batching.
In general I haven't run into this and haven't had any luck reproducing this particular issue but it may be a combination of system load, environment factors and configuration.

Hey @arobson, I created a simple test case that reproduces the issue for me consistently.  The code is here: https://github.com/ryanwilliamquinn/rabbot/tree/ack-timeout
Specifically, there are two scenarios, based on how quickly rabbit.shutdown() is called after messages are processed.  See comments on the after methods here: https://github.com/ryanwilliamquinn/rabbot/blob/ack-timeout/spec/integration/integration.spec.js#L125
If I run gulp with the after method that looks like this:
after( function() {
      return rabbit.shutdown()
} );

I end up with messages that I attempted to ack still in the queue after the test finishes.
If I run gulp with the after method that looks like this:
after( function() {
      return new Promise(function(resolve) {
        setTimeout(function() {
          resolve()
        }, 1000)
      })
      .then(function () {
        return rabbit.shutdown()
      })
} );

then I get the expected behavior.
Let me know if you see the same issues.  I am running the tests against the provided docker rabbitmq instance.

Is there a way to either trigger a flush of the ack/nack batch or to wait until it has completed? I'm also seeing the "setTimeout" solution working, but I don't like it.

This is pretty gross, but less so than setTimeout, IMHO:
  if (queue.lastQueue.messages && queue.lastQueue.messages.length) {
    await new Promise((accept) => {
      queue.lastQueue.messages.on('empty', () => accept());
    });
  }

Gross workaround:
  if (queue.lastQueue.messages.messages && queue.lastQueue.messages.messages.length) {
    await new Promise((accept) => {
      const l = queue.lastQueue.messages
        .on('empty', () => accept())
        .once();
    });
  }

@djMax - thank you for all the time you're putting in. At one point, the shutdown was supposed to ensure that, if possible, the queues and their channels would not get closed while their were outstanding messages waiting for any kind of resolution. I've clearly done something to break this at some point but I haven't had time to dig into finding out when I introduced the latest breaking change to it.
You're thinking along the right lines, however. The queue FSM should be listening for the empty event (if there are any messages in that batch at the time a shutdown has been called) before continuing with the shutdown process.

pffft, it's a lot less time than I'd be putting in if you hadn't written all this. So no thanks for me, but happy to dig or help any way you need.

@djMax @ryanwilliamquinn @24601 Unfortunately it looks like the promise for the ack on the channel resolves before the server has completed/resolved the action. When closing the channel, this could cause race conditions which would result in some or all messages being returned to the queue. I put a setTimeout in that delays when the batching mechanism emits the empty event that lets the queue know that its safe to close the queue's channel.
After doing this, I was unable to repro the issues even in 100 consecutive test runs. I'm hopeful this means that it will be enough to resolve the condition for other configurations/broker set ups.


The extension never works correctly.

Sorry but there isn't enough information in this issue to
Thanks for logging an issue.
Unfortunately, we need more information to figure out what your problem is.
Please enter the information as described here:
https://github.com/microsoft/pylance-release/blob/main/TROUBLESHOOTING.md#filing-an-issue


nixos/fileystems: Fix boot fails with encrypted fs

Motivation for this change
Also see issue #29142.
Boot fails when a keyfile is configured for all encrypted filesystems
and no other luks devices are configured. This is because luks support is only
enabled in the initrd, when boot.initrd.luks.devices has entries. When a
fileystem has a keyfile configured though, it is setup by a custom
command, not by boot.initrd.luks.
This commit adds an internal config flag to enable luks support in the
initrd file, even if there are no luks devices configured.
A test for this issue is available via PR #29269. Without this PR applied the test fails, with it it succeeds.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

Can someone please change the PR title to the commit summary?

On the first glance, we could also check if any device has the encrypted.keyFile property set, right?

That would also be possible, but would add a dependency from the initrd luks module to the fileSystems module.  personally find that less elegant, but it might still be the better solution.
The patch doesn't need additional configuration by the user, the flag is set internally in nixos/modules/system/boot/luksroot.nix

I have not noticed the line in nixos/modules/tasks/encrypted-devices.nix, might be good enough.


Please add network name to docker ps output

The docker ps command would probably benefit from outputting the Docker network that a container instance is running within. Having this output readily available would make monitoring containers easier from an operational perspective.
Also, what about the docker-compose ps?
@vieux What do you think about this?
Cheers,
Trevor Sullivan
Microsoft MVP: PowerShell

Hm, wondering if this is already possible using the --format option; it looks like NetworkSettings is already available through the API; https://docs.docker.com/engine/reference/api/docker_remote_api_v1.22/#list-containers

We discussed this and don't think it's a high priority; using curl with jq would probably be a good alternative

/cc @mlaventure had some thoughts on this, so possibly we can enhance the --format to make it easier

see https://github.com/docker/docker/issues/27564 :smile:


binders: Always bind to input change event

Many inputs are not modified directly by the user interacting directly, or by the app programmer via rivets. Instead, they may be modified by third party plugins. These plugins normally use the change event to notify that it has done something. Integrating rivets with such plugins is a pain, as the app programmer needs to create a new binder.
Fixes #610
--
AFAICS, the only downside to this change is that for user-interacting inputs the change event handling will be redundant.

Despite being generated on github, the patch passes the npm test (tested locally)

AFAICS, the only downside to this change is that for user-interacting inputs the change event handling will be redundant.

that's why I don't like this change. Some people may perform some AJAX requests on this event.

Integrating rivets with such plugins is a pain, as the app programmer needs to create a new binder.

In my experience, rivets is a library which needs a lot of custom formatters/binders anyway. It's just too small library, it's not supposed to be AngularJS.

On 12 Oct 2016 8:25 a.m., "Namek"<EMAIL_ADDRESS>wrote:

AFAICS, the only downside to this change is that for user-interacting
inputs the change event handling will be redundant.

that's why I don't like this change. Some people may perform some AJAX
requests on this event.

And what is the problem with this? Binding this handler does not preclude
binding your own.
By redundant I mean that the bound property will be "changed" twice with
the same value.

Integrating rivets with such plugins is a pain, as the app programmer
needs to create a new binder.

In my experience, rivets is a library which needs a lot of custom
formatters/binders anyway. It's just too small library, it's not supposed
to be AngularJS.

All the more reason to make it integrate better.


OSError: [WinError 1455] 页面文件太小，无法完成操作。

thanks for your great work！
when i doing the first step,"python main.py --attention_weights_only True",there is always an error with loop output
“creating new summary file
loading model ./pretrained_model/pretrained_model_sceneflow.ckpt
start at epoch 0”
and then,no enough storage,i am wondering Is it a problem with the laptop memory?
If i want to use the pretrained model,how can i finetune it in my own dataset？
thanks for your reply

maybe you can make
TrainImgLoader = DataLoader(train_dataset, args.batch_size, shuffle=True, num_workers=16, drop_last=True)
reduce the number of num_workers

I also encountered the same problem as you, how did you answer it, thank you for your reply

I also encountered the same problem as you, how did you solve it, thank you for your reply


postMessage helper

Ensure arrow arrays are being transferred correctly in postMessage. Might also need a clone function or similar to disconnect an array from its backing buffer

Closed by https://github.com/geoarrow/geoarrow-js/pull/17


[ci] Unblock CI temporary by removing dist upgrade for ubuntu

CI is currently broken to a problem in Ubuntu
Error:  Failed to execute goal io.fabric8:docker-maven-plugin:0.43.4:build (default) on project langstream-cli: Unable to build image [langstream/langstream-cli:latest-dev] : “The command ‘/bin/sh -c mkdir -p /etc/apt/keyrings      && wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc      && echo \“deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= ‘/^VERSION_CODENAME/{print$2}’ /etc/os-release) main\” | tee /etc/apt/sources.list.d/adoptium.list      && apt-get update      && apt-get -y dist-upgrade      && apt-get -y install temurin-17-jdk      && export ARCH=$(uname -m | sed -r ‘s/aarch64/arm64/g’ |  awk ‘!/arm64/{$0=\“amd64\“}1’)      && echo networkaddress.cache.ttl=1 >> /usr/lib/jvm/temurin-17-jdk-$ARCH/conf/security/java.security RUN apt-get -y --purge autoremove      && apt-get autoclean      && apt-get clean      && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100”
The problem is in "apt-get -y dist-upgrade"
We can temporary remove it

on my laptop the build passed.
I will do more trials

this is related
https://github.com/adoptium/installer/issues/766


first attempt mostly works on hru_1 but not drb_2yr

an open question why it fails for drb

agreed, this was just a hack to make sure it would work if that change were made


Why doesn't pinout -x open in chromium?

The command pinout -x or pinout --xyz opens pinout.xyz in a browser, but for some reason not Raspbian's default one, Chromium.
This is not a gpiozero issue, as all we're doing is using webbrowser.open() - the same as import antigravity, but it would be nice if we could get to the bottom of this and suggest a change to the config in Raspbian.
Here are the "browser" related alternatives in Raspbian:
pi@raspberrypi:~$ update-alternatives --get-selections | grep browser
gnome-www-browser              auto     /usr/bin/chromium-browser
infobrowser                    auto     /usr/bin/info
netsurf-browser                auto     /usr/bin/netsurf-gtk
x-www-browser                  auto     /usr/bin/chromium-browser

I'm not sure which one is being used - it's not netsurf, it's called "Web". /usr/bin/info doesn't seem to contain anything about a browser.
pinout -x works fine on my Ubuntu PC - and opens in my default browser.

This might be something @spl237 or @XECDesign can help with?

Doesn't answer the question, but Web is what epiphany has been renamed to. Shouldn't be hard to figure out why it's being launched. We can take a look tomorrow.

It's a problem with the Python webbrowser module; when it claims to open "the default browser", what it actually means is "the default browser, as long as it is in the list of candidate browsers hard-coded in the webbrowser module", and Chromium isn't in that list.
For reference, the list in question is on line 521 of webbrowser.py, and includes, in order, firefox, firebird, seamonkey, mozilla, netscape, Opera and IE - no Chromium. (Containing netscape as it does, this list was so clearly ahead of its time that it has never been thought to be necessary to update it... ;) )
To get your page to open in Chromium, you need to explicitly create a Chromium browser object to override the default list - replace
webbrowser.open ('https://pinout.xyz')
with
mybrowser = webbrowser.get ('chromium-browser')
mybrowser.open ('https://pinout.xyz')

Sorry - didn't mean to close that!

@spl237 I could do that but I'd have to add logic for "if this is a Pi" and "if they have chromium" (there's a chance they've removed it).
Hypothetically*, how much do you think would need to be changed in webbrowser for it to pick up the default browser properly?
* maybe not hypothetically

Oh, that's interesting! But if we're overriding the default functionality of the webbrowser module, surely it'd be better to use the default browser as identified by the update-alternatives that Ben mentioned above, than to hardcode chromium-browser?

I haven't looked into it, but it seems like it's trying to use xdg-open first, which should work. Is it failing to use xdg-open or is xdg-open opening the wrong browser?

It looks to me as if it is failing to use xdg-open, as xdg-open falls over with an error on Buster, and I don't see that error when run from webbrowser. I'll check...

On digging about, it turns out that webbrowser is using a rather unorthodox means of determining the default web browser. Instead of looking at the Debian alternatives system, it looks at the default application assigned to a rather obscure MIME type - i.e. rather than something sensible like text/html, it looks at what is assigned to handle x-scheme-handler/http. We don't define a default handler for this at present, so it looks at all the installed applications which say they can handle this type, and chooses the one which is last alphabetically. As "org.gnome.epiphany" is further down the alphabet than "chromium", it wins.
I've added chromium as an explicit default handler for that type, and pinout now opens in chromium. We'll push that into a raspberrypi-ui-mods release at some point.

That's awesome, thanks Simon.


CLOUD-637 - doc minikube minimize

introduce cr-minimal.yaml
change the doc

cr-minimal is introduced here: https://github.com/percona/percona-xtradb-cluster-operator/pull/951
doc should be published with the release.


Start recording instantly

macOS version:    18.7.0 (darwin)
Kap version:      3.2.0
Steps to reproduce

Click start recording
Wait for menu bar icon to change so you know it is recording
Start doing whatever you want to record

Current behavior
When you start the recording, there is a few second delay before it actually starts recording. I always have to remind myself to wait for the menu bar icon to change before I start doing what I want recorded.
This isn't a huge issue, but it is a minor annoyance every time I make a recording. Other software I've used either starts the recording immediately or has some kind of big count down in the middle of the recording area.
Expected behavior
When I click to start recording, it starts recording immediately. If I want to cut out something at the start, I can always trim it out in post.
Or if it is impossible to remove the delay, show some kind of count down on the screen so I know when it will start (the menu bar icon changes to tell me it has started but it is an indeterminate amount of time).
Workaround
No workaround.

@karaggeorge @sindresorhus  Commenting on this since it says feedback wanted.
I agree with @leggett - it's confusing when the recording starts and stops. I still haven't been able to figure this out, so a clear indication would be helpful.
For example, after pressing the red button, it takes about 8-10 seconds before the icon in the menu bar changes and recording starts.

That said, there's a workaround so I would much rather have the other features available first.


AttentionAgent: mysterious 2*top_k, maybe a mistake?

Is this *2 intentional? If so, what's the reason?
https://github.com/google/brain-tokyo-workshop/blob/master/AttentionAgent/solutions/torch_solutions.py#L336
Amazing code, I'm learning a lot :)

This code is correct. 2 because each center position has (x, y), so the next dense layer should have k2 inputs.

Thanks @lerrytang! I was just about to comment saying I tried removing it and the code's not working anymore :)
I guess I need to dive deeper into the attention module code to really understand what it's doing. Thanks again!

Again, thanks for being interested. You are always welcome for more questions :)

You are awesome @lerrytang! If you offer so generously... I'm confused by the interaction between SelfAttention and MLPSolution... As far as I can tell, the MLPSolution is only receiving the (x,y) coordinates of the best top_k patches... and making a decision on which action to take only with that info? From reading your article I thought that the agent could 'look' at those patches to make the decision, but I'm not seeing anywhere in the code where the MLPSolution is able to access the pixel info from the patches! Is this magic or what!?!?!? :P
For example, setting top_k to 1 and printing the dimension of MLPSolution's input (print('MLPSolution input', inputs, inputs.shape)), I get:
...
MLPSolution input tensor([0.9219, 0.9219]) torch.Size([2])
MLPSolution input tensor([0.4219, 0.4844]) torch.Size([2])
MLPSolution input tensor([0.9219, 0.9219]) torch.Size([2])
MLPSolution input tensor([0.4219, 0.4844]) torch.Size([2])
MLPSolution input tensor([0.8594, 0.9219]) torch.Size([2])
...

So... where is the agent actually looking at the pixel input from the patches??!?!?

That's the interesting part :)
The agent has 2 parts: the self-attention visual module (https://github.com/google/brain-tokyo-workshop/blob/a4d9e073cd986e7d8ca40202db4eee8a7f0ca860/AttentionAgent/solutions/torch_solutions.py#L103) and the LSTM controller, MLPSolution is the latter (despite its name).
The former part gets all the RGB images and does the patch voting to get the K patches, this is the only place in the code where image info is looked at. After that we discard the non-important patches, extract features from these K selected ones, and feed the feature to the controller. About feature extraction, one can extract any feature from these K patches, but in our experiments, we simply used the locations and disregard the content info, so that's why you don't see any pixel processing code in MLPSolution.
Hope this helps.

OMG that's amazing!! I guess I had missed that part on the article:

This is even more impressive then!! ok... I need to think about what all this means. Thanks again @lerrytang !


Feature/wallet connect 2.0

Description

Adds Wallet Connect 2.0 support per https://linear.app/pillarproject/issue/PRO-1711/add-walletconnect2walletprovider

Motivation and Context

Per description.

How Has This Been Tested?

Locally with React dapp and wagmi connector.

Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

@vignesha22 @marie-fourier Pls review this


sst_importer: Fix MvccProperties didn't generated during restoring

Signed-off-by: MyonKeminta<EMAIL_ADDRESS>
What have you changed?
https://github.com/tikv/tikv/pull/6295 tries to enable sst_importer to generate properties according to the RocksDB instance's configurations. However, it forgot to set cf. As a result, all CFs' SST files generates properties according to default CF's configuration. MvccProperties, which lies in write CF, is missing.
This PR sets cf for SSTWriter so that it will get the correct configuration for generating properties.
What is the type of the changes?

Bugfix (a change which fixes an issue)

How is the PR tested?

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

I have no idea how to test this. Suggestions needed.
Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No
Does this PR affect tidb-ansible?
No
Refer to a related PR or issue link (optional)
Introduced by: #6295

LGTM, but could you add a test in test_download_sst_then_ingest, you can refer get_region_properties for getting and checking mvcc properites.

@overvenus In the tests, all rocksdbs are created with default options without any additional property collectors. And MvccProperties is defined in tikv module instead of an separated workspace, so we cannot access it from sst_importer. I added a new property collector for the test. PTAL.
Also PTAL @5kbpers

/merge


[CP stag] 26193-Attachment- Uploading PDF displays error

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/26193
PROPOSAL: https://github.com/Expensify/App/issues/26193
Tests

Launch app
Tap on a report
Tap plus icon to add attachment
Select a pdf file

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

Offline tests

QA Steps

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

PR Author Checklist

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

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

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

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

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/16595846/dfbe5d92-97b5-4c3a-a421-4a8a8682082c

Mobile Web - Chrome

https://github.com/Expensify/App/assets/16595846/1a6571ba-cb1a-451d-ad21-ffa5038502ba

Mobile Web - Safari

https://github.com/Expensify/App/assets/16595846/ec4c02e9-bfb6-43f8-8c51-db80b1b65cc8

Desktop
https://github.com/Expensify/App/assets/16595846/c9dc8442-50cd-40c8-8153-c30d9458d2ca

iOS
https://github.com/Expensify/App/assets/16595846/ec3f66ab-7770-4f3e-951f-a3b0e57bd953

Android
https://github.com/Expensify/App/assets/16595846/0107aff9-0b6e-48db-a709-ee03e4c8180c

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.58-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/Li357 in version: 1.3.60-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/Li357 in version: 1.3.60-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.60-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Delay in execution

Affected ROS2 Driver version(s)
2.1.2
Used ROS distribution.
Galactic
Which combination of platform is the ROS driver running on.
Ubuntu Linux with realtime patch
How is the UR ROS2 Driver installed.
From binary packets
Which robot platform is the driver connected to.
UR E-series robot
Robot SW / URSim version(s)
URSim 5.15.0 and real robot 5.14.5
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Summary
I am trying to achieve precise synchronization of a UR5e robot with a moving conveyor to pick up objects. Either using URSim or the actual robot and MoveIt2 there is significant time difference (25 up to 100ms) between the plan and the actual execution.
Issue details
I have tried to minimize this delay making multiple changes:

Change the controller to joint_trajectory_controller
Change the kernel to PREEMPT_RT (have not changed any other related settings yet)
Change the planner e.g. use the pilz_industrial_motion_planner
Try any type of motions

For reference, there are a couple of things that have reduce drastically the delay:

Change of the safety limits of the robot to "Least Restricted"
Increase the monitor frequency of the controller up to a maximum (in my case 50Hz)

Steps to Reproduce

Launch URSim (you can also test it with the real robot and change the robot IP)

ros2 launch ur_bringup ur5e.launch.py robot_ip:=<IP_ADDRESS> use_fake_hardware:=false launch_rviz:=false

ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur5e

Create a C++ node performing motions and time them using something along these lines:
Positions: [0,0,0,0,0,3M_PI_22],  [0,0,0,0,0,-3M_PI_22]
 moveit_msgs::msg::RobotTrajectory trajectory_msg;
 moveit::planning_interface::MoveGroupInterface::Plan plan;

 moveInterfacePtr->setStartStateToCurrentState();
 moveInterfacePtr->setJointValueTarget(firstPosition);

 moveInterfacePtr->plan(plan);
 trajectory_msg = plan.trajectory_;

 double executionTime = rclcpp::Duration(trajectory_msg.joint_trajectory.points.back().time_from_start).seconds();
 RCLCPP_DEBUG_STREAM(this->get_logger(), "The move should last: " << executionTime);

 auto start = this->get_clock()->now();
 moveInterfacePtr->execute(trajectory_msg);
 auto end = this->get_clock()->now();
 rclcpp::Duration diff = end - start;
 RCLCPP_INFO_STREAM(this->get_logger(), "Execution lasted " << diff.seconds() << " seconds");
 RCLCPP_INFO_STREAM(this->get_logger(), "Time difference is " << (diff.seconds() - executionTime)*1000 << " milliseconds");

 ////////////////////////////

 moveInterfacePtr->setStartStateToCurrentState();
 moveInterfacePtr->setJointValueTarget(secondPosition);

 moveInterfacePtr->plan(plan);
 trajectory_msg = plan.trajectory_;

 executionTime = rclcpp::Duration(trajectory_msg.joint_trajectory.points.back().time_from_start).seconds();
 RCLCPP_DEBUG_STREAM(this->get_logger(), "The move should last: " << executionTime);

 start = this->get_clock()->now();
 moveInterfacePtr->execute(trajectory_msg);
 end = this->get_clock()->now();
 diff = end - start;
 RCLCPP_INFO_STREAM(this->get_logger(), "Execution lasted " << diff.seconds() << " seconds");
 RCLCPP_INFO_STREAM(this->get_logger(), "Time difference is " << (diff.seconds() - executionTime)*1000 << " milliseconds");

Expected Behavior
The motion should last as much as predicted by the plan (up to a small time difference).
Actual Behavior
The log similar to this:
    [simple_move-2] [INFO] [1716557813.182926855] [move_group_interface]: MoveGroup action client/server ready
    [simple_move-2] [INFO] [1716557813.183367335] [move_group_interface]: Planning request accepted
    [simple_move-2] [INFO] [1716557813.191581977] [move_group_interface]: Planning request complete!
    [simple_move-2] [INFO] [1716557813.283252330] [move_group_interface]: time taken to generate plan: 7.9301e-05 seconds
    [simple_move-2] [INFO] [1716557813.283328532] [static_pipeline_scenario]: Computed a plan successfully
    [simple_move-2] [INFO] [1716557813.283809924] [move_group_interface]: Execute request accepted
    [simple_move-2] [INFO] [1716557815.251111738] [move_group_interface]: Execute request success!
    [simple_move-2] [INFO] [1716557815.284803171] [static_pipeline_scenario]: Execution lasted 2.00142 seconds
    [simple_move-2] [INFO] [1716557815.284831580] [static_pipeline_scenario]: Time difference is 51.1607 milliseconds

Relevant log output
No response
Accept Public visibility

[X] I agree to make this context public

Thanks for sharing your thought with us.
I have a couple of remarks:

You seem to be using a rather old version on an end-of-life ROS version.
There's definitively a small delay in execution, since the underlying command on the robot controller (servoj) needs some cycles to correctly compute motion commands to get to a target position. It basically needs to look ahead of the next setpoint.
If you need synchronous motions you should definitively combine both drivers into one controller_manager. I assume, you are already doing that, you just simplified things to demonstrate the problem here.
I'm not sure about MoveIt!'s role here. You are measuring trajectory execution plus the overhead of the action call. As the latter is not real-time critical this is not deterministic.
You might be better off using a velocity-based controller, since the expected delay is lower there. However, this currently seems not to be working correctly (see #905)

Just an update:

I have tried to move the robot to an end position in URSim by publishing a setpoint to the controller topic, but the delay seems to persist.
According to my timing tests, the added delay due to the MoveIt action call is negligible.

At this point I strongly think that this is not related to the UR driver (maybe related to the controllers) and I will close the issue. In case, I ever come up with a solution I will update it.


19.09: Nodejs backport

Motivation for this change
Update NodeJS versions to upstream stable, cherrypicking the commits from master
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@grahamcofborg build nodejs-10_x nodejs-12_x

@FRidh thoughts on merging this? Looks like the build is too large for ofborg…

Had those tabs open for a while now, will take care of this :)

I think nodejs-10_x can safely backported, however nodejs-12_x needs https://github.com/NixOS/nixpkgs/pull/68748 and probably needs to go to staging-19.09

@marsam I added that patch and changed the base


Update Ruby deps

For https://github.com/hyperledger/firefly/security/dependabot/19

Looks like one of the plugins we were using to check for broken links wasn't happy with the change. Maybe the flag is different in this version?
Run bundle exec htmlproofer --disable-external --allow-hash-href --assume-extension ./_site --url-swap '^/firefly/:/' --url-ignore /<IP_ADDRESS>/,/localhost/
/home/runner/work/firefly/firefly/docs/vendor/bundle/ruby/3.0.0/gems/mercenary-0.3.[6](https://github.com/hyperledger/firefly/runs/7870490745?check_suite_focus=true#step:13:7)/lib/mercenary/program.rb:31:in `go': invalid option: --url-swap (OptionParser::InvalidOption)
htmlproofer 4.3.2 | Error:  Whoops, we can't understand your command.

Ok - after an annoying amount of faff, I've worked this out. A bunch of changes needed to the new command line.


Use correct parameters in getPastEvents()

@avaer Noticed you hardcoded fromBlock/toBlock in getPastEvents, but also were passing an lastBlockNumber instead of fromBlock, so if you were hardcoding because you couldn't get the fromBlock number to pass correctly, this is the fix. Otherwise feel free to close this PR.

Thanks, good catch.


Round corners

Nice project. It would be nicer if you could put a round corner in the internal edges of the base too. And also a small chamfer to break the sharp edges.

Added rounding on internal edges and bottom on changeset 03eaaad058c38e44d8963ac5fbdadb2ba05f741d

@leoheck Thank you for the feedback! If you would like to try it, please use the r0.3 release that has an install ZIP.

@molnarkares I tried to load your open scad model, but it does not work. This file is missing mounting_pad_cfg.scad
I would like to show you the refinements I was thinking about.
Can you share with me the .step file of the initial version?

@leoheck  please find a sample config attached. I have included the included config and an exported STL, too.
The included config is a generated file with the parameters for the OpenSCAD  model. It is normally created during the execution of the plugin for the given PCB size.
mounting_pad_cfg.zip

Ah, I have to generate it! Ok, sorry for that.

@leoheck you're welcome. I can reopen the issue in case you have major concerns with the updated OpenSCAD model.

I still have to generate this to give it a try. But I can open the issue too if needed. I just need some time to play with it.

How do you launch this? Isn't it a python script? I
Do you call it a plugin because we have to run it from Kicad?
I am kind of confused. I landed here from another site...

Anyway, I could open the zip you sent above. It has a .stl. No please, do the user a favor, and export the .step file instead. Step file is better.

Also, tryed the mounting_pad_cfg.scad you sent me, but it does not create the same image you put in the README.
The stl is not good to since you gave the updated version with rounded corners. I would like to have the initial version with right angles so I can improve it a bit. But the step file.

I am re-opening the issue to continue the conversation.
@leoheck thank you for the effort to update the design to demonstrate your request.
Well, I would say I partially agree:

You requested chamfered/rounded bottom, and I agree to this request. Not to make it looking better, but to accommodate the fact that the tin box walls are not bent in very sharp edges - so a sharp edged bottom might not lay flat in the box. This is already implemented in the latest update.
You requested rounding in the internal cut-out, and I agree to this request - again not because it looks better, but it is easier to manufacture with FDM printers. This is already implemented in the latest update.
I see rounding on your picture where the screw bases are connected to the base body of the mounting pad. I may think this could add extra strength, this may be supported, will think about it. Not implemented yet.
Chamfering/rounding on the upper outer edge of the base body, the top and the hole of the screw base, and in the internal cut-out: I kind of think that these cannot be justified with robustness, manufacturability or technical reasoning, i.e., these are rather cosmetic changes. I would not be against it, however : while these may be just a few clicks in a mechanical CAD tool, it is pretty complicated to model it via OpenSCAD algorithmically. Especially the chamfering of the internal cutouts... If you open the OpenSCAD program with a text editor then you see it is already rather complicated. I just feel that the benefits and the cost to implement are not proportional on a component that is inherently invisible after installation....

I see rounding on your picture where the screw bases are connected to the base body of the mounting pad. I may think this could add extra strength, this may be supported, will think about it. Not implemented yet.

This is not necessary, I added it as a lazy step since I selected the bosses base to make the chamfer, so Freecad put the chamfer on all the edges of this object. I should have selected just the inner/outer edgers but not the edges of the bosses. It is not necessary.
I made my 3d model using Freecad, and with Freecd you can also have a customizable 3d model. I am sharing my design with you, however, my design is not customizable, but it can be converted to it, easily using the Spreadsheet Workbench. It is just a quick thing to show what I was thinking about.
altoid_mount.zip
In this version, I removed the chamfer on the bottom edge of the bosses. I also improved the radius of the internal fillets to be more aesthetically pleasing (for me)


TypeError: int() argument must be a string or a number, not 'NoneType'

Hello!
I get this error for most values of "last version of Chrome":
C:\Program Files (x86)\ChromeBisect>chrome-bisect.exe
logging to stdout and c:\users\vanca\appdata\local\temp\chrome-bisect-2019-01-30-19-32-20-8320009jens5.log
Enter website used to start issue reproduction: http://localhost/redacted.html
Got Chromium args: ['--no-first-run', 'http://localhost/redacted.html']
Running on Windows
64-bit
Running the win64 builds
Enter the last version of Chrome where you DID NOT see this issue: 69
Enter the first version of Chrome where you DID see this issue: 71
finding exact Chromium branch for 69...
Chrome 69 == Chromium branch 69.0.3497.0
Traceback (most recent call last):
  File "chrome-bisect.py", line 1306, in <module>
  File "chrome-bisect.py", line 1233, in main
  File "chrome-bisect.py", line 1049, in convertChromeVersionToBuild
TypeError: int() argument must be a string or a number, not 'NoneType'
[42472] Failed to execute script chrome-bisect

On the cases where I get past that, it will error like this when trying to download the next revision:
C:\Program Files (x86)\ChromeBisect>chrome-bisect.exe
logging to stdout and c:\users\vanca\appdata\local\temp\chrome-bisect-2019-01-30-19-27-41-7680007odtrf.log
Enter website used to start issue reproduction: http://localhost/redacted.html
Got Chromium args: ['--no-first-run', 'http://localhost/redacted.html']
Running on Windows
64-bit
Running the win64 builds
Enter the last version of Chrome where you DID NOT see this issue: 65
Enter the first version of Chrome where you DID see this issue: 71
finding exact Chromium branch for 65...
Chrome 65 == Chromium branch 65.0.3325.0
Chrome version 65.0.3325.0 == Chromium build 530369
Chrome 71 == Chromium branch 71.0.3578.0
Chrome version 71.0.3578.0 == Chromium build 599034
Downloading list of known revisions...
Loaded revisions<PHONE_NUMBER>98 from C:\Program Files (x86)\ChromeBisect\.chrome-bisect-cache.json
Downloading revision 530373...
Trying revision 530373 at 2019-01-30 19:28:55.479000...
Revision 530373 is [(g)ood/(b)ad/(r)etry/(u)nknown/(s)tdout/(q)uit]: g
Downloading revision 598932...
Trying revision 598932 at 2019-01-30 19:29:10.185000...
File is not a zip file
Traceback (most recent call last):
  File "chrome-bisect.py", line 1306, in <module>
  File "chrome-bisect.py", line 1267, in main
  File "chrome-bisect.py", line 802, in Bisect
  File "chrome-bisect.py", line 721, in VerifyEndpoint
UnboundLocalError: local variable 'exit_status' referenced before assignment
[17248] Failed to execute script chrome-bisect

this has been fixed with https://github.com/jay0lee/chrome-bisect/commit/82a3003878d20bd7b3f5a292ca90cb18098257ab

It looks like this is unfortunately not fixed, just tried with the newly released v1.05:
C:\Program Files (x86)\ChromeBisect>chrome-bisect.exe
logging to stdout and c:\users\vanca\appdata\local\temp\chrome-bisect-2019-04-12-23-04-35-009000koxm1z.log
Enter website used to start issue reproduction: http://localhost:9090/REDACTED.html
Got Chromium args: ['--no-first-run', 'http://localhost:9090/REDACTED.html']
Running on Windows
64-bit
Running the win64 builds
Enter the last version of Chrome where you DID NOT see this issue: 60
Enter the first version of Chrome where you DID see this issue: 71
finding exact Chromium branch for 60...
Chrome 60 == Chromium branch 60.0.3112.0
Traceback (most recent call last):
  File "chrome-bisect.py", line 1347, in <module>
  File "chrome-bisect.py", line 1266, in main
  File "chrome-bisect.py", line 1075, in convertChromeVersionToBuild
TypeError: int() argument must be a string or a number, not 'NoneType'
[48384] Failed to execute script chrome-bisect

C:\Program Files (x86)\ChromeBisect>chrome-bisect.exe --version
Chrome Bisect 1.05

cc: @jay0lee

So the challenge here is that we depend on the URL:
https://omahaproxy.appspot.com/deps.json?version=
to convert something like 60.0.3112.0 to a Chromium build number which is what we need to download the build. This generally works on most versions but some versions seem to not return anything useful here.
1.06 will iterate over the patch version, usually it can eventually find the right patch version to get the build number but you might also try specifying real, full Chrome versions. For example, 60.0.3112.78, the first stable 60 Chrome release found exact number by googling "chrome 60 stable release".

It works! Thank you so much for this tool, it really is a joy to use 😄


Remove unneeded HMR plugin

Got fiddling around and noticed an error being thrown whenever a hot update was applied to a component:

Looks like Webpack's getting the HMR plugin twice -- once from calling webpackdevserver --hot on the command line and again explicitly in webpack.config. Removing the HMR plugin from the config file stopped the error.
Not a showstopper by any stretch, just noticed it and figured I'd send a fix. Thanks for sharing the project. It's been helpful!
PS: I'm still a noob at PRs and such, so I hope I did this right!

Awesome thanks! :+1:


Add support for ALSA softvol plugin

Add support for the ALSA softvol plugin as a mixer. The ALSA softvol plugin allows librespot to control the master volume.
Therefore, switch to the alsa crate from diwic, as this crate already implements the mixer interface, and port the alsa backend to this crate.
The ALSA softvol plugin needs to audio device name. Therefoe, enhance the mixer interface by passing the device name to the mixer instance. The device name is ignored by the softmixer.
Finally, get the initial volume setting from the mixer. This way, the spotify player uses the last volume instead of setting it always to 100%.

Cross compilation doesn't seem to work with this. It fails with:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "Failed to run `\"pkg-config\" \"--libs\" \"--cflags\" \"alsa\"`: No such file or directory (os error 2)"', /buildslave/rust-buildbot/slave/stable-dist-rustc-linux/build/src/libcore/result.rs:837
note: Run with `RUST_BACKTRACE=1` for a backtrace.

I think you should be able to solve this by making sure pkg-config is properly configured in the docker files. Environment variables like PKG_CONFIG_ALLOW_CROSS and PKG_CONFIG_PATH might do the trick.

@Fulkerson I am cross-compiling for a custom ARMv5 target and it works:
CC=arm-unknown-linux-musleabi-sysroot PKG_CONFIG_ALLOW_CROSS=1 PKG_CONFIG_PATH=$SYSROOT/usr/arm-buildroot-linux-musleabi/sysroot/usr/lib/pkgconfig cargo build -j4 --target=armv5te-unknown-linux-musleabi --features "alsa-backend with-tremor" --no-default-features --release

I do not use docker...

Thanks for the PR ! I'm quite busy this week, so I probably won't be reviewing it until this weekend.
pkg-config can be disabled through the cargo config.
[target.arm-unknown-linux-gnueabi.alsa]
rustc-link-lib = ["asound2"]

See https://github.com/tomaka/cpal/pull/152 and http://doc.crates.io/build-script.html#overriding-build-scripts
@joerg-krause I can take care of adding that if you don't want to mess around with the Dockerfile

This PR seems to support any ALSA mixer not just softvol. The mixer should just be named alsa then.

@plietar I've added support for the ALSA softvol plugin to shairport-sync some time ago: https://github.com/mikebrady/shairport-sync/pull/293. There was already ALSA hardware mixer support implemented, but the ALSA functions to use for handling the dB volume range are different between software and hardware mixer.
I will check, if I have a board with a hardware mixer interface to test with.

Hmm, I'm not very familiar with alsa but my understanding is it should not matter what mixer is configured by the user in the asoundrc. I would have thought  ALSA exposes a single API to control them.

Is there a reason for not caching the mixer and selem instances, so you don't have to create a new Mixer instance for each volume get/set? It would be also nice to be able to specify a separate alsa mixer device. This is need for things like room correction where librespot outputs to alsa loopback which then sends samples to the real output device, but volume control must work with the real output.

@jsopenrb

Is there a reason for not caching the mixer and selem instances, so you don't have to create a new Mixer instance for each volume get/set?

The reason is my limited knowledge about Rust. If I move the mixer and selem instances to open() Rust demands a lifetime specifier.

It would be also nice to be able to specify a separate alsa mixer device.

This can be done using the --device command line option. For now, the mixer control name is hardcoded to "Master". A follow-up patch is necessary to allow passing the mixer control name to the mixer.

@joerg-krause
Maybe you can create mixer instance in get/set volume if it's not created yet and the used the cached one?
I know about device parameter, but I need another optional parameter because alsa output device for librespot will be loopback but alsa mixer device will be the DAC/AMP. I've been playing around with modifying the code and adding support for getting the volume range from alsa so this can work for both soft and hw mixers, but it's far from being ready.

Instead of passing additional options to the mixers which not all mixers need wouldn't it make sense to add a config file?
Either one specifically for your mixer or even one for the whole application where you could add a section for each "component".
I'm working on an external mixer, which might need different options.

Config file for what exactly? Shairport has this handled properly for alsa: you can specify separate mixer device, which defaults to the output device if not set. I'm suggesting to do the same for librespot alsa backend.

@romerod Yes, a config file would be definitely the best. However, this is not implemented yet.
@jsopenrb spotifyd already uses an INI-based config file.
Maybe it's best to use librespot as library and spotifyd as the front-end.

Closed in favor of https://github.com/plietar/librespot/pull/160.


Add Workspace Support to the nextjs plugin

https://github.com/prisma/language-tools/pull/538#discussion_r505570101

This can be closed, since the code that would be using this got removed.