PKCE

Implementation of rfc7636 Proof Key for Code Exchange by OAuth Public Clients
Notes:

model.generateAuthorizationCode is called with 2 new parameters (in total 5) codeChallenge and codeChallengeMethod. Typically, the "code_challenge" and "code_challenge_method" values
are stored in encrypted form in the "code" itself but could
alternatively be stored on the server associated with the code.  This can be a breaking change, so I've removed this part of code
model.saveAuthorizationCode: added codeChallenge and codeChallengeMethod to the code object. We need to store the code challenge and it's method server side and then return it later on.
model.getAuthorizationCode when code was issued with PKCE parameters, it should return these parameters in the code object. Then the code_verifier is validated

TODO:

client_secret should not be required possible with isClientAuthenticationRequired option

Feedback is welcome!

Hang on, is this full implementation OF PKCE?

This PR supports code_challenge parameter and code_challenge_method parameter to be saved with the authorization code.
Then it supports validation of code_verifier when requesting access token.
What is missing, code_challenge parameter and code_challenge_method parameter are not passed to the model.generateAuthorizationCode method, because it will be a breaking change.
If is something wrong or missing, please send a feedback.

Yeah, but there's still an issue with missing client_secret, right? Although you proposed to use requireClientAuthenticationmodel option, I don't see it as good enough workaround. That would mean theauthorization_code` grant stays unsecured. Or am I wrong?
The Invalid client: cannot retrieve client credentials error is being thrown at token-handler.js (line 196. Method getClientCredentials). Do you think adding OR condition at line 190, and verifying that the code_verifier param was passed would do the trick?
But that also means, codeChallenge validation (at authorization-code-grant-type.js line 135) has to be modified. Currently, it only compares the codeChallange and code_verifier if codeChallange got returned from model.getAuthorizationCode.

Thank you for the feedback.
Yes, I didn't find better solution for ignoring client_secret. As you stated, requireClientAuthentication is not good solution.
In this implementation, you can pass client_secret in the PKCE flow, but I know that there are some android oauth packages, that don't support client_secret. Moreover be aware, in the refresh token grant type you must still pass client_secret. In my opinion, better solution would be to implement client.confidential parameter, so there won't be client auth for non-confidential clients (#498 ).
I can add a change in codeChallenge validation, but in that validation, the server does not know if the code was issued by PKCE flow or not, and throw error when code was not issued by PKCE flow is not good. So I assume, the validation should be done only if code.codeChallenge is present.

excuse my ignorance, but Isn't the idea of PKCE flow to eliminate the need of passing client_secret? I thought it's the main point, is to be used as a public auth method. For mobile apps or web apps.
I need that change ASAP. So for the time being, I will pull your PR and modify it for my own needs for my Oauth2 server. But I will keep track of changes you make, though. Maybe you'll come up with something better.

No, idea of PKCE describes technique to mitigate against the authorization code interception attack.
I agree, that public clients should not use client_secret (as per rfc8252), but the server should assume client confidentiality by client_id (confidentiality of app should be stored in client registration process).
You have provided solution, where server assume client confidentiality by passing code_verifier in the request.
Yes, you should make your own fork, because any PR can be changed or deleted and then you can be in troubles.

@visvk Can you rebase this PR to get rid of the conflicts?

Sorry, but there are many conflicts in the rebase process.
Merging dev into this PR would be ok?
I need to refactor authorize handler to resolve conflicts.

@visvk That should be fine.

@mjsalinger done.

When can we expect PKCE in official version?
Thanks :)

Ok i now implemented my own version and its fully working working in my SPA Application.
Thanks for your work @visvk

@yhc44 Do you want to use this feature in your SPA app? Because SPAs would not benefit from PKCE.
PKCE is only useful in public native clients (mobile apps).

@visvk Actually i've read that it is better than implicit grant.
I dont want to use authorization grant with secret. Is it the same as PKCE in SPA?
What do you recommend?

Hey guys. First of all, awesome work on this lib. Save me a loooot of time.
There's any ETA on this feature? This is almost a must have to the authorization server that I'm building for my client.
Thanks in advance.

Any idea of when this will be merged?

@visvk What's the status on this?

@yhc44 Do you want to use this feature in your SPA app? Because SPAs would not benefit from PKCE.
PKCE is only useful in public native clients (mobile apps).

I'm quoting oauth.net which states that PKCE is meant for SPAs.

PKCE (RFC 7636) is an extension to the Authorization Code flow to prevent certain attacks and to be able to securely perform the OAuth exchange from public clients.
It is primarily used by mobile and JavaScript apps, but the technique can be applied to any client as well.

could PKCE be merged into the v5-dev?

6 month later... Please is there any plan to merge this ? We are waiting for this feature. Thx

@Rmannn why don't you make a fork of this repo and merge it yourself, while waiting for the official release?

@patrykcieszkowski cause apparently they are not going to merge this pr anytime soon. Even in the next release.
This Pr was created in 2018... 3 years ago ?! If our team really need to fork, merge, and publish it to npm, we will simply rewrite the whole lib.
This library is getting old, PRs are staying there for months, and v5-dev (typescript rewrite) code is going to be throw away.
We are really thankful for this library, but we simply do not want to loose more time waiting for thing that are not going to happen

This isn't pegged for the next release - it's also a bit of a whopper so would need a bit of time for review, but would be brilliant for 4.1

@mjsalinger @thomseddon, Hi there, thanks for the library. My question is... have you planned this to any date in particular? Very thanks and congrats!


Use safe filter on product.description

I want to merge this change because...
Parse product description through safe filter, else it renders the HTML tags
Screenshots
Before:

After:

Pull Request Checklist

[x] Privileged views and APIs are guarded by proper permission checks.
[x] All visible strings are translated with proper context.
[x] All data-formatting is locale-aware (dates, numbers, and so on).
[x] Database queries are optimized and the number of queries is constant.
[x] The changes are tested.
[x] The code is documented (docstrings, project documentation).

Thanks, I thought we had that covered when we were adding the HTML editor, but maybe the issue was introduced accidentally later.


wrong tooltip for ToolTip property

'reopening' https://github.com/microsoft/AL/issues/5848
Describe the bug
The mouse-over tooltip in Visual Studio Code for the ToolTip property falsely implies it is a boolean that determines whether ToolTipML gets used. It is not. ToolTip contains the tooltip text and replaces ToolTipML.
To Reproduce
Hover over the word ToolTip name of said property in an AL Page or PageExtension.
Expected behavior
The tooltip for ToolTip should state that it is the tooltip... if you see what I mean. ToolTipML should not be mentioned, at least not to falsely imply that it is still needed, but rather that it's deprecated and that ToolTip replaces it.
If I might also be cheeky here: Can we ever expect tooltips to be specifiable on the Table level? It is really painful and brittle having to copy and paste them to every new page that shows every field.
Screenshots

5. Versions:
Name: AL Language
Id: ms-dynamics-smb.al
Description: AL development tools for Dynamics 365 Business Central
Version: 8.3.570094
Publisher: Microsoft
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-dynamics-smb.al

The fix for this issue has been checked in to the master branch. It will be available in the bcinsider.azurecr.io/bcsandbox-master Docker image starting from platform build number 39485 and VS Code Extension Version 10.0.614407.
If you don’t have access to these images you need to become part of the Ready2Go program: aka.ms/readytogo
For more details on code branches and docker images please read:
https://blogs.msdn.microsoft.com/nav/2018/05/03/al-developer-previews-multiple-releases-and-github/
https://freddysblog.com/2020/06/25/working-with-artifacts/


Propagate result phase into the report plugins

Pull Request Checklist

[x] implement the feature
[ ] write the documentation
[ ] extend the test coverage
[ ] update the specification
[ ] adjust plugin docstring
[ ] modify the json schema
[ ] mention the version
[ ] include a release note

This is a prerequisite for report plugins to support "subresults" aka phases.
Related to:

https://github.com/teemtee/tmt/issues/2826
https://github.com/teemtee/tmt/pull/2933

This one is really trivial, proposing to squeeze into 1.35.

Hello @happz @psss ,
I am still thinking about a tiny modification - I think we probably should create a new type for phase checks, e.g. PhaseCheckResult(CheckResult). This would allow us to differentiate between the result checks and the result phase checks, especially in the report plugins.
Do you agree?

Hello @happz @psss , I am still thinking about a tiny modification - I think we probably should create a new type for phase checks, e.g. PhaseCheckResult(CheckResult).

What would be the difference between CheckResult and the new PhaseCheckResult class? The existing classes usually add new fields on top of their base class: CheckResult adds event, Result adds context and serial_number and so on, so what new fields would PhaseCheckResult carry that Check lacks?

This would allow us to easily differentiate between the result checks and the result phase checks, especially in the report plugins.

Test check results live in the check list, and phase check results live in the phases[N].check list. The structure, the fields describing the check outcome are the same, the position provides the context.

Do you agree?

Not as of now. Can you demonstrate in what way would different classes improve the code, e.g. making it simpler, easier to read and maintain, or easy to check for linters?

The existing classes usually add new fields on top of their base class: CheckResult adds event, Result adds context and serial_number and so on, so what new fields would PhaseCheckResult carry that Check lacks?

It would carry no new fields, just a type.

Not as of now. Can you demonstrate in what way would different classes improve the code, e.g. making it simpler, easier to read and maintain, or easy to check for linters?

It would allow me to easily differentiate between the result types in display_outcome(result: BaseResult) -> None and use this method to show all kinds of results. It's just an early draft:

https://github.com/teemtee/tmt/commit/d10ebe3c8b214fabcb1577b14f655d3e13205e60#diff-f9ad5f6605f10698f0208842ba0e42ee7bf1508151827baf78c3660b611e4457R84

If you still think this does not make sense, I will try to find a different solution.

The existing classes usually add new fields on top of their base class: CheckResult adds event, Result adds context and serial_number and so on, so what new fields would PhaseCheckResult carry that Check lacks?

It would carry no new fields, just a type.

Ack.

Not as of now. Can you demonstrate in what way would different classes improve the code, e.g. making it simpler, easier to read and maintain, or easy to check for linters?

It would allow me to easily differentiate between the result types in display_outcome(result: BaseResult) -> None and use this method to show all kinds of results. It's just an early draft:

d10ebe3#diff-f9ad5f6605f10698f0208842ba0e42ee7bf1508151827baf78c3660b611e4457R84

I see, makes sense. Let's try it then and see how it goes.

Apparently unrelated failures in tests, going to merge this one and we'll see.


Invoke known tools to gather build-time dependency information

What would you like to be added:
Add the ability to shell-out to known tools such as go and mvn in order to capture more accurate build-time dependency information.
Why is this needed:
To improve the build-time dependency support in Syft.
Additional context:
From a working document:
Creating higher quality SBOMs in Syft at build-time
At build time, static analysis of dependencies implemented today is limited. Improving static analysis metrics can be done by simulating what build systems do. This is subject to drift and additional maintenance to keep up with behaviors of the build systems.
One approach to resolving this issue is to call out to build systems to get that information instead. This introduces additional (optional) dependencies.
Syft as a build-time SBOM generator tool
Syft can be seen as a “build-time” SBOM generator tool, and can start thinking about utilizing build tooling. Calling out to build tools can be such as the following, we will use 2 examples.
Golang
Instead of reading and trying to parse and resolve the go.mod file, the go mod graph command can be used to get a fully resolved dependency tree.

[ ] #2018

Java
Maven has the mvn dependency:tree command which shows the fully-resolved dependency graph.

[ ] #2019

NPM
Npm has npm ls --all

[ ] #2020

Python
Python has pipdeptree

[ ] https://github.com/anchore/syft/issues/2023

Considerations

When using external tooling, version and parameter information should be captured
Warnings on quality of what is being used to generate it can be made visible, as well as suggestions on how to obtain better SBOMs (e.g. dependency pinning)

cc: @lumjjb

This is most likely needed on order to achieve https://github.com/anchore/syft/issues/1674 and https://github.com/anchore/syft/issues/572 in a meaningful way.
This functionality should be opt-in, that is, by default syft should remain a static analysis tool. Executing other commands on the system should still be not allowed by default (again, unless the user opts in).
Considerations:

should these "external querying capabilities" be encapsulated into their own separate catalogers? For example go-mod-file-cataloger stays as it is today and allow for a new go-tooling-cataloger. In this way opting in would be adding a cataloger (or enabling a flag which would automatically swap out one cataloger for another)... or should we go in the direction of keeping the existing catalogers today that behave differently based on configuration? (one assumption Im making by going down this path is that the impl for the go.mod cataloging today is mutually exclusive to using the build tooling)

we probably don't want to find duplicate packages by doing a static analysis and tooling query, there should be an obvious mechanism for enforcing mutual exclusivity for existing (static) analysis and tooling analysis.

even if a new cataloger is not used to encapsulate this behavior it should be obvious to the user that this was found via a tooling query vs looking at just the go.mod contents (more than just the application configuration probably).

would the same be true for npm, too?

Instead of shelling out to cli tools, would you consider building parsers directly inside syft? It wouldn't require one to depend on the presence of local tooling, and I could envision that the tools might have different ouputs depending on the installed version of the tooling.
Snyk, for example, has built a bunch of parsers for various ecosystems in js https://github.com/snyk/dotnet-deps-parser
I just implemented something similar in cdxgen for .NET [ref] and npm [ref] to determine direct/indirect deps in build files. Wondering if the same could work here?

@noqcks we do already have lots of parsers for different ecosystems. This change, at least initially, would be an opt-in behavior to shell out to the tools. This would allow things like Go - which has a flat list of dependencies in the go.mod - to get the dependency graph and properly output it in different formats.

I suppose what I meant is only shelling out to tools where necessary (in the case that go mod graph is truly the only way to see the dependency tree for go projects), and writing all other deps parsers directly into syft where possible.
I'd like to work on getting real dependency graph for javascript projects inside syft, and wanted to write this dep parser inside syft instead of relying on an external npm cli.
Wanted to clarify whether this would be an appropriate avenue to pursue before I started the work.


Not able to configure HomeAssistant plugin

Hi,
Trying to use the HomeAssistant plugin with Streamcontroller on a RasberryPI5. However, I'm not able to configure the homeassistant plugin settings, so I can not set up the server to connect to.
With every other plugin, when adding it to action I can change the settings of the plugin simply by pressing on it.
With Homeassistant plugin, nothing happens when I press it.

Running Streamcontroller 1.5.0-Beta.6
Please help, thanks in advance.

Could you provide some log files? Seems more like an issue with Stream Controller but it's hard to tell without the logs.

I've got the same problem as well, what logs would you like?

Hi,
Already solved it in my case.
After removing StreamController, I had to manually remove al its configuration files.
Reinstalling StreamController and reinstalling the HA-plug-in, configuring the plug-in to connect to HA IP-address (important! Entering homeassisant.local causes the HA-plug-in to be non responsive) and everything works fine now.
Like I said, if I enter homeassistant.local into the address to connect to, the plug-in somewhat freezed and I am not able to edit any of the settings.
Removing the configuration files and reconfigure everything again properly with the right address to connect to, and the plug-in is working fine.

I've got the same problem as well, what logs would you like?

The Stream Controller logs.log file from the data/logs folder. The location of the data folder depends on your installation; if you' are using flatpak, it should be under ~/.var/apps/com.core447.StreamController.

Hi,
Already solved it in my case. After removing StreamController, I had to manually remove al its configuration files.
Reinstalling StreamController and reinstalling the HA-plug-in, configuring the plug-in to connect to HA IP-address (important! Entering homeassisant.local causes the HA-plug-in to be non responsive) and everything works fine now.
Like I said, if I enter homeassistant.local into the address to connect to, the plug-in somewhat freezed and I am not able to edit any of the settings. Removing the configuration files and reconfigure everything again properly with the right address to connect to, and the plug-in is working fine.

That's interesting - I can't think of a reason why the IP address should work and the hostname shouldn't. If you want to, you could also provide the logs of when you use the hostname.

I've got the same problem as well, what logs would you like?

The Stream Controller logs.log file from the data/logs folder. The location of the data folder depends on your installation; if you' are using flatpak, it should be under ~/.var/apps/com.core447.StreamController.

This is after launching the app, adding the button, then trying to click on Home Assistant.
2024-12-04 06:47:38.688 | INFO     | main:load:92 - Loading app
2024-12-04 06:47:38.688 | INFO     | main:update_assets:152 - Updating store assets
2024-12-04 06:47:38.748 | INFO     | src.backend.Store.StoreBackend:get_stores:74 - Official store branch: main
2024-12-04 06:47:38.757 | INFO     | src.backend.DeckManagement.DeckManager:init:70 - Beta resume mode: True
2024-12-04 06:47:38.862 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Memory Graph with id com_core447_OSPlugin::RAM_Graph
2024-12-04 06:47:38.900 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Memory Usage with id com_core447_OSPlugin::RAM
2024-12-04 06:47:38.902 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action CPU Temperature with id com_core447_OSPlugin::CPUTemp
2024-12-04 06:47:38.902 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action CPU Graph with id com_core447_OSPlugin::CPU_Graph
2024-12-04 06:47:38.907 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action CPU Usage with id com_core447_OSPlugin::CPU
2024-12-04 06:47:38.907 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Weather with id com_core447_Weather::Weather
2024-12-04 06:47:38.907 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Previous with id com_core447_MediaPlugin::Previous
2024-12-04 06:47:38.907 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Play/Pause with id com_core447_MediaPlugin::PlayPause
2024-12-04 06:47:38.907 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Next with id com_core447_MediaPlugin::Next
2024-12-04 06:47:38.907 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
2024-12-04 06:47:38.907 | DEBUG    | src.backend.PageManagement.Page:load:78 - Loaded page Page 1 in 0.05 seconds
2024-12-04 06:47:38.908 | INFO     | src.backend.DeckManagement.DeckController:load_page:676 - Loading page Page 1 on deck DL26L2A89812
2024-12-04 06:47:39.026 | INFO     | src.backend.DeckManagement.DeckController:load_background:528 - Loading background in thread:<PHONE_NUMBER>96384
2024-12-04 06:47:39.111 | ERROR    | src.backend.Store.StoreBackend:update_all_plugins:926 - 'NoneType' object has no attribute 'main_win'
2024-12-04 06:47:39.115 | INFO     | src.backend.DeckManagement.DeckController:load_all_inputs:614 - Loading all inputs took 0.04502248764038086 seconds
2024-12-04 06:47:39.605 | INFO     | src.backend.DeckManagement.DeckController:load_page:707 - Loaded page Page 1 on deck DL26L2A89812
2024-12-04 06:47:39.630 | DEBUG    | src.backend.DeckManagement.DeckController:update_all_inputs:438 - Updating all inputs took 0.009401321411132812 seconds
2024-12-04 06:47:39.678 | TRACE    | src.app:on_activate:80 - running: on_activate
2024-12-04 06:47:39.678 | TRACE    | src.windows.mainWindow.mainWindow:build:93 - Building main window
2024-12-04 06:47:39.849 | SUCCESS  | src.app:on_activate:112 - Finished loading app
2024-12-04 06:47:40.106 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_DeckPlugin.main.DeckPlugin'> because it's already initialized
2024-12-04 06:47:40.107 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_MediaPlugin.main.MediaPlugin'> because it's already initialized
2024-12-04 06:47:40.107 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_OSPlugin.main.OSPlugin'> because it's already initialized
2024-12-04 06:47:40.107 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_VolumeMixer.main.VolumeMixer'> because it's already initialized
2024-12-04 06:47:40.108 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_Weather.main.WeatherPlugin'> because it's already initialized
2024-12-04 06:47:40.108 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_MicMute.main.MicMutePlugin'> because it's already initialized
2024-12-04 06:47:40.108 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_gapls_AudioControl.main.AudioControl'> because it's already initialized
2024-12-04 06:47:40.109 | INFO     | src.backend.PluginManager.PluginBase:launch_backend:524 - Launching backend: . /home/justinthegeek/.var/app/com.core447.StreamController/data/plugins/com_imdevinc_StreamControllerDiscordPlugin/.venv/bin/activate && python3 /home/justinthegeek/.var/app/com.core447.StreamController/data/plugins/com_imdevinc_StreamControllerDiscordPlugin/backend.py --port=41481
2024-12-04 06:47:40.411 | ERROR    | src.backend.PluginManager.PluginManager:init_plugins:71 - Error initializing plugin <class 'plugins.com_imdevinc_StreamControllerDiscordPlugin.main.PluginTemplate'>: 'NoneType' object has no attribute 'update_client_credentials'. Skipping...
2024-12-04 06:47:40.412 | ERROR    | src.backend.PluginManager.PluginBase:register:127 - Plugin: Home Assistant: Plugin already exists
2024-12-04 06:47:40.431 | ERROR    | src.backend.PluginManager.PluginManager:init_plugins:71 - Error initializing plugin <class 'plugins.de_gensyn_HomeAssistantPlugin.main.HomeAssistant'>: [SSL] record layer failure (_ssl.c:1000). Skipping...
2024-12-04 06:47:40.432 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_DeckPlugin.main.DeckPlugin'> because it's already initialized
2024-12-04 06:47:40.432 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_MediaPlugin.main.MediaPlugin'> because it's already initialized
2024-12-04 06:47:40.433 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_OSPlugin.main.OSPlugin'> because it's already initialized
2024-12-04 06:47:40.433 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_VolumeMixer.main.VolumeMixer'> because it's already initialized
2024-12-04 06:47:40.433 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_Weather.main.WeatherPlugin'> because it's already initialized
2024-12-04 06:47:40.433 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_core447_MicMute.main.MicMutePlugin'> because it's already initialized
2024-12-04 06:47:40.433 | INFO     | src.backend.PluginManager.PluginManager:init_plugins:66 - Skipping <class 'plugins.com_gapls_AudioControl.main.AudioControl'> because it's already initialized
2024-12-04 06:47:40.434 | INFO     | src.backend.PluginManager.PluginBase:launch_backend:524 - Launching backend: . /home/justinthegeek/.var/app/com.core447.StreamController/data/plugins/com_imdevinc_StreamControllerDiscordPlugin/.venv/bin/activate && python3 /home/justinthegeek/.var/app/com.core447.StreamController/data/plugins/com_imdevinc_StreamControllerDiscordPlugin/backend.py --port=36175
2024-12-04 06:47:40.735 | ERROR    | src.backend.PluginManager.PluginManager:init_plugins:71 - Error initializing plugin <class 'plugins.com_imdevinc_StreamControllerDiscordPlugin.main.PluginTemplate'>: 'NoneType' object has no attribute 'update_client_credentials'. Skipping...
2024-12-04 06:47:40.737 | ERROR    | src.backend.PluginManager.PluginBase:register:127 - Plugin: Home Assistant: Plugin already exists
2024-12-04 06:47:40.755 | ERROR    | src.backend.PluginManager.PluginManager:init_plugins:71 - Error initializing plugin <class 'plugins.de_gensyn_HomeAssistantPlugin.main.HomeAssistant'>: [SSL] record layer failure (_ssl.c:1000). Skipping...
2024-12-04 06:47:40.757 | INFO     | src.backend.DeckManagement.DeckController:load_page:676 - Loading page Page 1 on deck DL26L2A89812
2024-12-04 06:47:40.828 | INFO     | src.backend.DeckManagement.DeckController:load_background:528 - Loading background in thread:<PHONE_NUMBER>96384
2024-12-04 06:47:40.858 | INFO     | src.backend.DeckManagement.DeckController:load_page:707 - Loaded page Page 1 on deck DL26L2A89812
2024-12-04 06:47:40.870 | SUCCESS  | src.backend.Store.StoreBackend:install_plugin:802 - Plugin com_gapls_AudioControl installed successfully under: /home/justinthegeek/.var/app/com.core447.StreamController/data/plugins/com_gapls_AudioControl with sha: fa392249012c37cf583789d56ac0ca0dbfaa6535
2024-12-04 06:47:40.871 | INFO     | src.backend.Store.StoreBackend:get_stores:74 - Official store branch: main
2024-12-04 06:47:40.999 | INFO     | src.backend.Store.StoreBackend:get_stores:74 - Official store branch: main
2024-12-04 06:47:41.131 | INFO     | main:update_assets:160 - Updating 1 store assets took 2.4428064823150635 seconds
2024-12-04 06:47:41.360 | INFO     | src.backend.DeckManagement.DeckController:load_all_inputs:614 - Loading all inputs took 0.49022865295410156 seconds
2024-12-04 06:47:41.384 | DEBUG    | src.backend.DeckManagement.DeckController:update_all_inputs:438 - Updating all inputs took 0.02420353889465332 seconds
2024-12-04 06:47:48.705 | TRACE    | src.windows.mainWindow.elements.Sidebar.elements.ActionManager:add_action:696 - Adding action: <src.backend.PluginManager.ActionHolder.ActionHolder object at 0x703a8a0ba4e0>
2024-12-04 06:47:48.708 | INFO     | src.backend.PluginManager.ActionBase:init:79 - Loaded action Home Assistant with id de_gensyn_HomeAssistantPlugin::HomeAssistantAction
2024-12-04 06:47:48.718 | DEBUG    | src.backend.PageManagement.Page:load:78 - Loaded page Page 1 in 0.01 seconds
2024-12-04 06:47:48.726 | DEBUG    | src.backend.PageManagement.Page:load:78 - Loaded page Page 1 in 0.00 seconds

Ah, further online searching yielded that you are probably using untrusted/self-signed certificates. Is that the case?

I am locally, yes.
On Wed, Dec 4, 2024 at 7:09 AM gensyn @.***> wrote:

Ah, further online searching yielded that you are probably using
untrusted/self-signed certificates. Is that the case?
—
Reply to this email directly, view it on GitHub
https://github.com/gensyn/de_gensyn_HomeAssistantPlugin/issues/30#issuecomment-2517301991,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABUTDGZPQ667OEX3FARRK3D2D35HTAVCNFSM6AAAAABSXUB4IOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMJXGMYDCOJZGE
.
You are receiving this because you commented.Message ID:
@.***>

Sounds good, thanks!
On Wed, Dec 4, 2024 at 7:16 AM gensyn @.***> wrote:

Ok. So I will add error handling and an option to allow self-signed
certificates. Gonna take a couple of days though.
—
Reply to this email directly, view it on GitHub
https://github.com/gensyn/de_gensyn_HomeAssistantPlugin/issues/30#issuecomment-2517319164,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABUTDG7XDEX4NPNSEDZUXQD2D36CPAVCNFSM6AAAAABSXUB4IOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMJXGMYTSMJWGQ
.
You are receiving this because you commented.Message ID:
@.***>

That was quicker than expected - the new version is already available. Please update the plugin and let me know how it works out.
I'm not completely sure that I am handling the correct error, so if it is not workling please provide the new log file.
If you can open the plugin, you now have a new option in the HA settings to disable verifying the server certificate.

It works perfectly, thank you very very much.

Great, glad to hear.
Since @JordyWingelaar already fixed it with a workaround I am closing this issue.


Add bytes crate support

Add bytes crate support and fix tests

Rust std type system has been considered to be a better option


Fancy pants logger

Maybe something like https://github.com/caarlos0/log with catppuccin styles?

I mean... it is quite the task. I would say no.

For the most part it's just replacing fmt.Println with log.Info or similar.
But it's up to you, it's just an aesthetic thing either way.

Oh, really? In that case, sure, let’s do it.


go release notes for the 2022-02 release

This is an automated pull request to gather the go release notes for the 2022-02 release. See Producing Release Notes for details of the processing.

/azp run azure-sdk - ci


Better documentation pattern

We should have a better way of providing in depth documentation for our more complex packages.
There are many ways we might generate docs sites, or we might just want to have a standard template for writing docs in a package.

consideration: https://www.docz.site/introduction/deploying-your-docs

another consideration: https://github.com/angular/dgeni

Another consideration is to maintain better conventions / automation aroudn our READMEs. In particular, when we describe examples and APIs. I really like the concept of shortcodes in hugo, although I'm not sure how we might apply it: https://gohugo.io/content-management/shortcodes/.

We could also use TSDoc to provide another layer of docs (and help JS consumers who don't get as much typing support).

https://api-extractor.com/

I also like @9at8's suggestion of incorporating codesandbox into our docs.

This is all the hype these days: https://github.com/mdx-js/mdx

Some concerns a doc solution might want to think about

being type-aware
living alongside code
editor integration
being easily rendered into a doc-site without us spending lots of time on maintenance
being easily collated into a larger doc-site in the future (perhaps some sort of meta docs site for JS @ shopify)

I don't feel like any of these tools will solve the problem in itself, though I think TSDoc probably comes the closest, and would be valuable even if we didn't render documentation sites out of it as devs  would still get tooltips in their editors.


Integrated PartitionSort into Lagopus

We have found that Sorrachai Yingchareonthawornchai's PartitionSort outperforms all other classifiers in build time when incremental update is used. In addition, it classifies faster than all others when many fields are used. Furthermore, when compared against Mbtree and Flowinfo, it was found that Mbtree and Flowinfo classify some packets incorrectly.  These results can be seen here. Therefore, PartitionSort is a viable alternative to the current classifiers available in Lagopus. We have integrated PartitionSort into Lagopus as an optional classifier.  It can be enabled in configure with option --enable-psort.  There are two tests included: functional_test and performance_test. Both are located in lagopus/test/dataplane/benchmark and require PartitionSort to be enabled to function.

Thank you! I'll test it.

After some more thorough testing, I found that the PartitionSort search criteria differs from THTable in that it selects the highest priority matching flow rather than lowest when multiple flows have identical match fields. This is a minor issue that causes PartitionSort to classify some packets differently from THTable (it chooses a different matching flow). I will make a second pull request soon in which the search criteria is corrected.

Hi marcusj6,
Sorry, late reply.
I tested this pull requests, but I failed the compile in commit 7e3b87e.
And, b240e22 and 393b3b0 are failed all tests of ryu-certification.
Thanks.

Hi,
I fixed the compile issue in the next commit, it was a result of a missing conditional group. I reran all of the tests with make check, none of them failed on my machine. When I set the configuration file to use PartitionSort, I use the following command: ./configure --enable-dpdk --enable-developer --enable-psort. The final command is necessary to use PartitionSort. Is it failing when you enable it? Do I need to do the ryu-certification with separate tests?
Best regards,
Jacob Marcus

Hi Nic30,
PartitionSort has been fully integrated into the switch. We are currently awaiting more information about the certification tests that it failed.
We are still interested in PartitionSort development.
The field order is global for the tree to simplify construction and update.  The field order chosen must totally order a ruleset, so finding an order that will work is relatively expensive. Since the field order is global, there is no need to recompute the field order when a node is inserted or deleted (unless the number of rules is small).

Hi @marcusj6,
in DPDK they are using SIMD to achieve much faster evaluation of the tree https://github.com/DPDK/dpdk/blob/master/lib/librte_acl/acl_run_avx2.h
Do you know about anyone who tried to do same thing with PartitionSort?
Also does the PartitionSort really brings the performance improvements? Currently I am trying to do some benchmark to compare it with DPDK librte_acl and ovs tuple space search and it looks same or worse than librte_acl. But maybe it is just my bad implementation or rule set or the generated traffic.

Also are you thinking about using lets say libboost? I mean there is plenty of red-black tree related code which is already written in other libraries and which is quite complex and large.

Hi @Nic30 ,
I have not seen anyone attempt to use SIMD with PartitionSort. It could be done by replacing the red-black tree with a B+-tree and using a variant of k-ary search on the keys. The red-black tree was used for simplicity, not necessarily because it was the best performing option. A B+-Tree would probably have better caching behavior too. Libboost is a good option for improving the performance.
PartitionSort outperformed tuple space search in our benchmark, but we did not compare it with DPDK librte_acl. What is the benchmark you are using?

@marcusj6

B+tree

I was also thinking about it, few months back It  was not suitable for hardware implementation. But now for the software, ...
There are plenty of efficient aproximately balance trees, we need some library where we can test all the tree algs. without much changes in code. I was thinking that I just write such a library, but there is always N+1 problems...

benchmark

I do have some rule sets generated by classbench-ng and I am using similar code as used in in PartitionSort repo I did rewrite it and added the DPDK librte_acl classifier.
I am not using any specific virtual switch or any other real word app.
(But now I am experimenting with OvS.)


Add deprecated tag to v3 images

Adds -deprecated tag to all of the v3 images
work item

Releasing new Host versions.
V3 Release
V2 Release

PR information

[ x] The title of the PR is clear and informative.
[x ] There are a small number of commits, each of which has an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x ] If applicable, the PR references the bug/issue that it fixes in the description.
[ ] New Unit tests were added for the changes made and CI is passing.

@zahalzel / @CooperLink  - is the plan to add deprecated message in a different PR?

@zahalzel / @CooperLink - is the plan to add deprecated message in a different PR?

Yes, working on that one here: https://github.com/Azure/azure-functions-docker/pull/1005


[WIP] Sample PR from fork to confirm Percy is skipped

Testing complete, found a fix

https://github.com/alphagov/govuk-frontend/pull/3075


Discord notification

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I've configured notifications of my monitoring to a discord webhook. But I wont receive the service down or up text in Discord. Only the text that you can configure in 'Prefix Custom Message'

🐻 Uptime-Kuma Version
1.12.1
💻 Operating System and Arch
Ubuntu server 20.04.4
🌐 Browser
Chrome 99.0.4844.74
🐋 Docker Version
Docker version 20.10.7, build 20.10.7-0ubuntu5~20.04.2
🟩 NodeJS Version
No response

It is working in my side.
You could try to create a new monitor and take it down by using invalid hostname.

Can you check if your embed contains hostnames that are not resolveable by discord? I already experienced that on another software trying to connect to discord webhooks. (See this issue for context)

You didn't get it. Discord embeds are not valid and won't be send if they contain Hostnamen in (icon) urls that are not resolvable by discords servers. The content of the message is still send as I know. So try to adjust your setup temporarily to IP addresses for educational purposes.

I've changed my DNS name to an local ipadres of one of my systems. Again the text does not show in the Discord channel. The integration works, its there... but you don't get to see the text in Discord.

If you want to investigate and solve that issue, can you somehow check the response and request body by modifying the code if possible?

Just wanted to make a note here in case someone with the same problem finds this thread like I did.
In Discord app settings you have to enable Text & Media > Show embeds and preview website links pasted into chat


Add widescreed?

Will widescreen be added?
Thanks

I would like to add support for 16:9 someday. I probably won't generate the backgrounds themselves but it is something I'd like to support with the mod loader.


njtree: Concatenate requires modeltest

The njtree mode fails when modeltest is not run before. However modeltest results are not necessary for calculating a njtree.

Should be resolved


Compile the test suite

We could use a collection of queries and actions which we use to "stress" the website. Let's use this issue to collect them.

function name_simplification needs a test. Also some PEP related improvements to the tests are needed (e.g. replace type== with isinstance


Functionality not in the SDK, but provided by pub packages is not discoverable.

See e.g.: https://code.google.com/p/dart/issues/detail?id=20852

Thanks for the report. We won't solve this with specific functionality in api.dartlang.org. However, we highly recommend that if there's a related and useful package for a library, that the library's docs themselves link to that package.
e.g. the isolates library could link to the isolate package, in its own docs.


nasm-mode prevents completion-at-point in sh-mode

After installing nasm-mode and load it, completion-at-point in sh-mode no longer give code completion, but giving this error instead:
user-error: No items suitable for an index found in this buffer

I'm not able to reproduce this. What version of Emacs are you using?

I'm using Emacs 24.5.1. I can reproduce it from stock Emacs, load MELPA, install the package then load it.

Ok, I think I understand your problem now, and I can reproduce it on
24.4 as well. Looks to me like this is a bug in sh-mode. The problem
occurs just by loading imenu, which is required by nasm-mode. Here's how
you can reproduce without involving nasm-mode:
emacs -Q --eval "(require 'imenu)"
Loading imenu breaks completion sh-mode.

I see. Thanks  for finding out the cause.

@tuhdo did you ever find a fix or workaround for this? the only mentions I can find are your bugs


Ignore ERC721 token uris and owners on exceptions

When retrieving token uris and owners for an ERC721 if a error ocurred if was not parsed and returned

Coverage remained the same at 91.291% when pulling 97513b62aad1ca371ed4009c1189882a76268dfd on fix-token-uris into 3c6670c2104cb3a62fc5b5150dad3eb340f3a179 on master.


covariance integration error

Hello,
I was trying to use the connected non-Gaussian covariance and super-sample covariance in CCL. I assumed Planck cosmology, some redshift distribution, galaxy number density, shape noise to test the code, and set up the halo model part for the calculation. But it gives me the following error, for both connected non-Gaussian cov and super-sample cov.
The CCL version I used is 2.5.1. I also used a 2.3 or 2.4 version before, but the errors are the same.
Can you help me fix this? Thanks!
---------------------------------------------------------------------------
CCLError                                  Traceback (most recent call last)
Input In [19], in <cell line: 5>()
      3 tracer_Gm = ccl.WeakLensingTracer(cosmo,dndz=(z+Dz,nz_tomo[1,:]),ia_bias=(z,AIA))
      4 tracer_Gn = ccl.WeakLensingTracer(cosmo,dndz=(z+Dz,nz_tomo[1,:]),ia_bias=(z,AIA))
----> 5 cov_cNG = ccl.angular_cl_cov_cNG(cosmo=cosmo,
      6                        cltracer1=tracer_Gi, cltracer2=tracer_Gj,
      7                        cltracer3=tracer_Gm, cltracer4=tracer_Gn,
      8                        ell=ell,
      9                        tkka=tk3d_1h,
     10                        fsky=f_sky )
     11 cov_SSC = ccl.angular_cl_cov_SSC(cosmo=cosmo,
     12                        cltracer1=tracer_Gi, cltracer2=tracer_Gj,
     13                        cltracer3=tracer_Gm, cltracer4=tracer_Gn,
     14                        ell=ell,
     15                        tkka=tk3d_SSC,
     16                        fsky=f_sky )

File ~/Research/anaconda3/envs/env1/lib/python3.9/site-packages/pyccl/covariances.py:130, in angular_cl_cov_cNG(cosmo, cltracer1, cltracer2, ell, tkka, fsky, cltracer3, cltracer4, ell2, integration_method)
    127 if cltracer4 is not None:
    128     lib.cl_tracer_collection_t_free(clt4)
--> 130 check(status, cosmo=cosmo_in)
    131 return cov

File ~/Research/anaconda3/envs/env1/lib/python3.9/site-packages/pyccl/pyutils.py:49, in check(status, cosmo)
     47 # Check for known error status
     48 if status in error_types.keys():
---> 49     raise CCLError("Error %s: %s" % (error_types[status], msg))
     51 # Check for unknown error
     52 if status != 0:

CCLError: Error CCL_ERROR_INTEG: ccl_cls.c: ccl_angular_cov_limber(); integration error

Is there something being printed to stderr?

Looks like you could lower the precision required from the Limber integration: https://ccl.readthedocs.io/en/latest/source/notation_and_other_cosmological_conventions.html?highlight=limber#controlling-splines-and-numerical-accuracy

Sorry, I was working on something else and forgot to get back on this.
I haven't tried what Elisa suggested, but I use integration_method = 'spline' in angular_cl_cov_cNG  and it's not reporting the error anymore. Please let me know if this solution sounds reasonable or not.

OK, great! Yes, that should do the trick (although trying Elisa's suggestion would be good to make sure the result you're getting makes sense).


Test and build execution: use npm ci

@jbraese realized, while working on https://github.com/sitcomlab/simport-learning-app/issues/158, that we are using npm install for our automated build, test and deployment processes. To execute those with a clean install, it's advised to usenpm ci instead: https://docs.npmjs.com/cli/v8/commands/npm-ci

I think we should first investigate https://github.com/sitcomlab/simport-learning-app/pull/166#issuecomment-1066698159 in #166 as npm config set package-lock false installs different versions of packages (which you can see in the /src/assets/licenses.json file generated in the postinstall script). Other than that npm ci works fine for me and also triggers the postinstall script which is nice.


[Suggestion] API

Can you setup an API on the website?
About a week ago, I setup a screen scraper to download the complete mappings for any version, which I'm currently using to generate a NMS library for Spigot. This library wouldn't require any reflection (on the user's end), as it creates an interface, which can hide the reflection and handle different Minecraft versions in the background.
Unless you're planning on keeping the mapping viewer website the exact same, it would be convenient to be able to request the mapping data directly.
While being able to download a complete .json file would be ideal, just having the ability to request information for a specific class would be super helpful.
Thanks!

Well the webpage is only a static content hosted on github pages, so I don't think I am able to make an api for it. However NMSMapper is not only website, but also a tool which can generate reflection accessors to handle multiple versions and it has all the data in .json files inside its jar, which can be found here: https://repo.screamingsandals.org/#/releases/org/screamingsandals/nms/nms-mapper-standalone, so you may want to use these json files instead of scrapping the website :)

That works for me, thanks!


pushViewController call from centerViewController could make the view unresponsive

When the leftDarwerViewController is disappearing (sliding out), quickly try to call pushViewController from the centerViewController sometimes make the whole app unresponsive, which is likely caused by animation conflicts - could we add a call back when the animation finishes completely?

Sorry, I'm not able to reproduce this. But please feel free to submit a pull request :-)


Make logging for example function in README more accurate

Scrolling through the README this morning, seemed an easy fix!

Thanks @arirawr!


Unable to run on RP2040 (Pico)

I'm trying to run an example on my RP2040, but it doesn't seem to be working.  When I try to cargo run --bin blinky --release with my debug probe connected, the program doesn't execute on the pico, and it simply reboots back into flash mode. The only message I'm getting is
ERROR probe_rs::cmd::run: Failed to attach to RTT continuing...

Both with nightly and stable toolchains. Any ideas as to what's going on?
Running with a regular old rp2040_hal setup works just fine. Using boot2-generic-03h also doesn't help (that's what I use in my rp2040_hal setup)

Nvm, turns out my flash had garbage in it. One quick clear and we're all good.


UnicodeDecodeError: 'ascii' codec can't decode byte 0xd6 in position 1: ordinal not in range(128)

tower-cli version: Tower CLI 3.3.0
command: tower-cli job launch --job-template=SPaC_dev --monitor
Traceback (most recent call last):
  File "/usr/local/bin/tower-cli", line 11, in <module>
    load_entry_point('ansible-tower-cli==3.3.0', 'console_scripts', 'tower-cli')()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/tower_cli/cli/base.py", line 129, in invoke
    return super(TowerCLI, self).invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tower_cli/conf.py", line 359, in method_with_context_managed
    method(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tower_cli/cli/resource.py", line 107, in func
    result = method(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tower_cli/resources/job.py", line 248, in launch
    return self.monitor(job_id, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/tower_cli/models/base.py", line 840, in monitor
    if not six.text_type(content).startswith("Waiting for results"):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd6 in position 1: ordinal not in range(128)

Upgrade to version 3.3.3 seems to fix the issue


Msal-browser: AuthenticationResult.expiresOn !== AuthenticationResult.accessToken's expiration

Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[X]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
I was investigating some api errors in our app, where the service is responding with 401: ExpiredAuthenticationToken. It is saying that the token has expired. In our logs, we also log the tokenExpiry from AuthenticationResult.expiresOn. When I compare this with AuthenticationResult.accessToken's "exp" field, I find the two values are different
When going through the method call chain, I noticed this: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/response/ResponseHandler.ts#L322, where expiresOn is not based on the returned accessTokenproperty.
Is it expected that the AuthenticationResult.expiresOn is not equal to AuthenticationResult.accessToken's "exp" field? I feel they should be equal
Source

[X] Internal (Microsoft)
[ ] Customer request

@thoo1 Can you provide what the expiresOn and exp fields are? Please also provide a fiddler trace, via Teams or email. Thanks.

@thoo1 Can you provide what the expiresOn and exp fields are? Please also provide a fiddler trace, via Teams or email. Thanks.

Sure, they are from AuthenticationResult interface, which is returned by PublicClientApplication.acquireTokenSilent
expiresOn field: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/c6a7aada4a6644dc173b39208d5421178fa9ae78/lib/msal-common/src/response/AuthenticationResult.ts#L33
exp field: is from parsing AuthenticationResult.accessToken https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/c6a7aada4a6644dc173b39208d5421178fa9ae78/lib/msal-common/src/response/AuthenticationResult.ts#L31

parsed by: JSON.parse(decodeBase64(accessToken.split(".")[1]..replace(/-/g, "+").replace(/_/g, "/")))
the returned object has a field exp - this is the unix timestamp (in seconds) when the token should expire

I find that the dates represented by expiresOn and the accessToken's exp field do not match
Not really sure if this requires a fiddler trace, I think it is more a client side issue, in how we extract when the access token expires

Sure, they are from AuthenticationResult interface, which is returned by PublicClientApplication.acquireTokenSilent
expiresOn field: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/c6a7aada4a6644dc173b39208d5421178fa9ae78/lib/msal-common/src/response/AuthenticationResult.ts#L33
exp field: is from parsing AuthenticationResult.accessToken https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/c6a7aada4a6644dc173b39208d5421178fa9ae78/lib/msal-common/src/response/AuthenticationResult.ts#L31

parsed by: JSON.parse(decodeBase64(accessToken.split(".")[1]..replace(/-/g, "+").replace(/_/g, "/")))
the returned object has a field exp - this is the unix timestamp (in seconds) when the token should expire

I find that the dates represented by expiresOn and the accessToken's exp field do not match
Not really sure if this requires a fiddler trace, I think it is more a client side issue, in how we extract when the access token expires

acquireTokenSilent
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-browser/src/app/PublicClientApplication.ts#L78
calls
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/client/SilentFlowClient.ts#L49
calls
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/client/SilentFlowClient.ts#L78
calls
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/response/ResponseHandler.ts#L296
It is in this function where I see that the returned expiresOn is not derived from the returned accessToken
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/response/ResponseHandler.ts#L322
I'm not very familiar with the code/reasoning for this but I think that is why the expiresOn and the exp fields are not matching

acquireTokenSilent
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-browser/src/app/PublicClientApplication.ts#L78
calls
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/client/SilentFlowClient.ts#L49
calls
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/client/SilentFlowClient.ts#L78
calls
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/response/ResponseHandler.ts#L296
It is in this function where I see that the returned expiresOn is not derived from the returned accessToken
https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/9976fa5e0e514f1429b08c83334ad810c2db87da/lib/msal-common/src/response/ResponseHandler.ts#L322
I'm not very familiar with the code/reasoning for this but I think that is why the expiresOn and the exp fields are not matching

@thoo1 Apologies, I meant the actual values from the access token itself. Seeing the access token may be useful. However, we intentionally do not try to open the access tokens, but instead use the expires_in value from the server response to calculate token expiration. A fiddler trace could still be helpful in trying to figure out your issue though.

@thoo1 Apologies, I meant the actual values from the access token itself. Seeing the access token may be useful. However, we intentionally do not try to open the access tokens, but instead use the expires_in value from the server response to calculate token expiration. A fiddler trace could still be helpful in trying to figure out your issue though.

I see, ok I'll send them to you on teams

I see, ok I'll send them to you on teams

Our telemetry is showing (and we've a user report of) the same issue -- acquireTokenSilent sometimes returns tokens whose exp has already elapsed, resulting in our API calls failing with 401s.
@jasonnutter and I have been chatting about this over email.
This may not be the cause of the issue, but I did notice one potentially problematic bit of acquireTokenSilent's SilentFlowClient:
isRefreshRequired is called before running generateResultFromCacheRecord, but generateResultFromCacheRecord is asynchronous, meaning that if the tab is sent to the background or the computer is slept, its execution could be deferred. When its execution is later resumed, the token could then be expired, but the isRefreshRequired condition has already been passed. The expired token would then be returned to the consumer and cause the issue.

Our telemetry is showing (and we've a user report of) the same issue -- acquireTokenSilent sometimes returns tokens whose exp has already elapsed, resulting in our API calls failing with 401s.
@jasonnutter and I have been chatting about this over email.
This may not be the cause of the issue, but I did notice one potentially problematic bit of acquireTokenSilent's SilentFlowClient:
isRefreshRequired is called before running generateResultFromCacheRecord, but generateResultFromCacheRecord is asynchronous, meaning that if the tab is sent to the background or the computer is slept, its execution could be deferred. When its execution is later resumed, the token could then be expired, but the isRefreshRequired condition has already been passed. The expired token would then be returned to the consumer and cause the issue.

After more digging, it seems there is a problem with how MSAL calculates cache entry expiration, which can cause this issue.
I've surfaced a ticket that describes the problem in more depth and outlines two potential solutions.

After more digging, it seems there is a problem with how MSAL calculates cache entry expiration, which can cause this issue.
I've surfaced a ticket that describes the problem in more depth and outlines two potential solutions.

@jessemartin nice find! Just for my information, I was wondering why msal does not use the "exp" field in the token but uses "expires_in" field? Is it because of clock skew, or other issues?

@jessemartin nice find! Just for my information, I was wondering why msal does not use the "exp" field in the token but uses "expires_in" field? Is it because of clock skew, or other issues?

@thoo1 My understanding is that the server-provided expires_in field + a timestamp is used instead of the token's exp in order to avoid decoding the token, as that wouldn't work with non-JWTs or encrypted tokens. Perhaps an MSAL contributor can correct my understanding if this is incorrect :) @jo-arroyo @jasonnutter

@thoo1 My understanding is that the server-provided expires_in field + a timestamp is used instead of the token's exp in order to avoid decoding the token, as that wouldn't work with non-JWTs or encrypted tokens. Perhaps an MSAL contributor can correct my understanding if this is incorrect :) @jo-arroyo @jasonnutter

@thoo1 My understanding is that the server-provided expires_in field + a timestamp is used instead of the token's exp in order to avoid decoding the token, as that wouldn't work with non-JWTs or encrypted tokens. Perhaps an MSAL contributor can correct my understanding if this is incorrect :) @jo-arroyo @jasonnutter

This is correct.

@thoo1 My understanding is that the server-provided expires_in field + a timestamp is used instead of the token's exp in order to avoid decoding the token, as that wouldn't work with non-JWTs or encrypted tokens. Perhaps an MSAL contributor can correct my understanding if this is incorrect :) @jo-arroyo @jasonnutter

This is correct.

thanks all! makes sense

thanks all! makes sense


docs: add uno platform to readme

What kind of change does this PR introduce?
docs
What is the current behavior?
undocumented

Let's not list the Uno events at the moment is my recommendation.

The event packages are getting deprecated so we shouldn't be adding new ones

Opened up https://github.com/reactiveui/website/issues/349 to track documentation updates needed when events packages become deprecated.

Will submit a new pr with the advice submitted tomorrow and clean up the docs. Will add you to the approval list.


appliance/postgres: Update to PostgreSQL 10

The tests for this pass locally.
Closes #4265

Yes, it should work on Trusty. Though I think we should drop 14.04 support when 18.04 comes out.

CI changes are at https://github.com/flynn/flynn/pull/4305/commits/303bac01559732e29e26753162ce351bb75b7b10 as CI is currently running on the gcp-ci branch.


Fix mutants not covered issue

This PR fixes issue #151 that mutants are marked as not covered if they are covered.
@padraic Beside this PR please don't let humbug die and thanks for your awesome work so far. :)

I won't let it die :). I'm taking a gradual approach, but expect some updates on Humbug's future very soon.

@GM-Alex would you mind adding a test for it? Although I'm not sure we have tests for the Tokenizer. If that's not the case, they I would be more comfortable to merge this one after a manual check by someone else (@padraic?)

@theofidry & @padraic Currently I'm short of time so I'm not able to provide a test soon but the problem occurs if you have something like the following in your code:
$myString = "This is my string
    which is very
    very long and
    has several line breaks."

@GM-Alex @humbug/core I added a quick behat features to replicate this, so the fix works perfectly. I've updated @GM-Alex's branch with two behat features which should now be passing (the multiline comment one is just to add coverage).

Thanks again, @GM-Alex. Sorry for the wait ;).

@padraic Thanks a lot!


Error while starting bot

Traceback (most recent call last):
File "pokecli.py", line 38, in
from pgoapi.exceptions import NotLoggedInException, ServerSideRequestThrottlingException, ServerBusyOrOfflineException
ImportError: cannot import name ServerSideRequestThrottlingException

you should search dude really.. it has been said many times already

I suggest you should go buy glasses instead of getting the bot to work. Read: #2780


Incorrect stream value in log statements from json-file logging driver

A couple of days ago I wrote an article on Docker and the json-file and syslog driver (see here) and some of the readers brought to my attention an issue which I find slightly disturbing. The demo is quite simple indeed (source https://github.com/yoanisgil/docker-logging-tutorial/blob/master/part-01/logging-01.py):
import sys
import time
while True:
    sys.stderr.write('Error\n')
    sys.stdout.write('All Good\n')
    time.sleep(1)

and then run:
docker run --name logging-01 -t -d -v $(pwd):/tmp  -w /tmp python:2.7 python logging-01.py

which outputs :
Error
All Good
....

however when I check the json file where log messages are kept, I see this:
{"log":"Error\r\n","stream":"stdout","time":"2015-09-18T01:44:29.361979588Z"}
{"log":"All Good\r\n","stream":"stdout","time":"2015-09-18T01:44:29.36244363Z"}

and what I find disturbing and, so those the reader, is that for the "Error" entry the stream field is set to  stdout. Shouldn't that be stderr. Is this an expected behaviour? Notice that the "Error" string is written with:
sys.stderr.write('Error\n')

Maybe I a missing something obvious here but if I am I'd love to know what am I doing wrong.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

docker version:
Client:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:49:29 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:49:29 UTC 2015
 OS/Arch:      linux/amd64

docker info:
Containers: 12
Images: 210
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 234
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.0.9-boot2docker
Operating System: Boot2Docker 1.8.1 (TCL 6.3); master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
CPUs: 1
Total Memory: 1.956 GiB
Name: default
ID: ERDB:OBAQ:C3XQ:UIZU:PT2L:N6IY:7RGS:LFNL:2RS5:2Q2B:VAIR:ZAHO
Debug mode (server): true
File Descriptors: 61
Goroutines: 113
System Time: 2015-09-18T02:18:35.686653807Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
Username: yoanisgil
Registry: https://index.docker.io/v1/
Labels:
 provider=virtualbox

uname -a:
Darwin arya.local 14.4.0 Darwin Kernel Version 14.4.0: Thu May 28 11:35:04 PDT 2015; root:xnu-2782.30.5~1/RELEASE_X86_64 x86_64

This is actually expected behavior, though the documentation on the behavior is a bit obscure.
The reason is because of the -t argument. If you leave off the -t, you'll see the behavior you expect.
The remote API documentation explains this behavior: https://docs.docker.com/reference/api/docker_remote_api_v1.20/#attach-to-a-container

When using the TTY setting is enabled in POST /containers/create , the stream is the raw data from the process PTY and client’s stdin. When the TTY is disabled, then the stream is multiplexed to separate stdout and stderr.

So what's happening is that docker is allocating a TTY, and docker reading the output of that TTY to generate the log. And when reading the output of a TTY, you can't tell whether what went into it went in on STDOUT or STDERR.

@phemmer thanks for the quick reply. Indeed I did try leaving off the -t option but things got even more weird at that moment. So if I run the container like this:
docker run --name logging-01  -d -v $(pwd):/tmp  -w /tmp python:2.7 python logging-01.py

then all I see from docker logs -f logging-01 is:
Error
Error
Error

which is fine I think given that there is not TTY. Whoever there is no stdout stream in the log file:
{"log":"Error\n","stream":"stderr","time":"2015-09-18T02:55:28.901390774Z"}
{"log":"Error\n","stream":"stderr","time":"2015-09-18T02:55:29.903324466Z"}

which is again consistent with the output from the docker logs command above. Seems to me like it's not possible to have both streams on the json log file. Or is it?
I just want to make sure I got things right so I do not spread around the wrong concepts ;). But yes you're right, docs are a bit confusing and does not provide this level of detail, which is what I was trying to achieve with my post.

I am looking at this:
https://github.com/docker/docker/blob/master/daemon/logger/jsonfilelog/jsonfilelog.go#L100
and it seems like the source of the stream it's actually send by the caller of the function, which totally makes sense. However I am having a hard time figuring out who calls (and how) that function.

Your app is likely buffering STDOUT. While I'm not very familiar with python, this is a common default on most scripting languages.
See http://stackoverflow.com/questions/107705/disable-output-buffering
Here is a basic test using only shell:
# cid="$(docker run -d fedora:22 bash -c 'printf "stderr\n" >&2; printf "stdout\n"')"

# docker wait $cid
0

# cat /var/lib/docker/containers/$cid/$cid-json.log
{"log":"stdout\n","stream":"stdout","time":"2015-09-18T04:13:56.805773269Z"}
{"log":"stderr\n","stream":"stderr","time":"2015-09-18T04:13:56.806001524Z"}

Yep that was it:
docker run  --name logging-01  -d -v $(pwd):/tmp  -w /tmp python:2.7 python -u logging-01.py

that -u does the trick. Now everything makes sense:
{"log":"Error\n","stream":"stderr","time":"2015-09-18T04:27:28.135894927Z"}
{"log":"All Good\n","stream":"stdout","time":"2015-09-18T04:27:28.136186603Z"}

and I will make sure to update my post.
Though, when it comes to the syslog driver, is there actually a way to make a difference between what gets logged to stdout and stderr? As per my testings and findings there is no way of telling by looking at syslog messages which messages came from the container's stderr and which ones from stdout. Just a question, I will continue investigating ;).

For syslog, the severity for the message is set to LOG_ERR when it is from stderr, otherwise it's LOG_INFO
https://github.com/docker/docker/blob/master/daemon/logger/syslog/syslog.go#L95-L100
https://golang.org/pkg/log/syslog/#Writer.Err

Thanks!! Very useful that last bit of information.


Error downloading D2-Net pre-trained model

I encountered an error while trying to download the D2-Net pre-trained model using the provided notebook pipeline_SfM.ipynb. Below is the error message:

It seems like there is an issue with the command wget returning a non-zero exit status 4. I believe this error is impeding the successful download of the model.
Steps to Reproduce:

Modify the setup cell where the paths and the configuration of the extractor and matcher are set with the following:

images = Path("datasets/South-Building/images/")
outputs = Path("outputs/sfm/")
sfm_pairs = outputs / "pairs-netvlad.txt"
sfm_dir = outputs / "sfm_d2net+ratio"
retrieval_conf = extract_features.confs["netvlad"]
feature_conf = extract_features.confs["d2net-ss"]
matcher_conf = match_features.confs["NN-ratio"]

Execute the notebook as usual.
Observe the error message mentioned above.

Expected Behavior:
The D2-Net pre-trained model should be downloaded successfully without any errors.
Additional Information:

Operating System: Ubuntu 20.04.6 LTS
Python Version: Python 3.10.13

Thank you for your attention to this matter. Please reach out to me if any further information is needed to address this issue.
Best Regards,
Carlos

PR https://github.com/cvg/Hierarchical-Localization/pull/369 should fix your issue.


Added Reverse Linked List!

#193
@raksha009
->Added code
->Deleted extra files
->Added time and space complexity
->2 test cases
->multilines comment

you cannot ask to merge so many commits in a single PR.


README: point to Homebrew/discussions.

Let's try to nudge more people over and see how it goes.
As discussed with @SMillerDev

Maybe also edit brew.sh?


How to apply exact arguments for variadic function?

I need to call variadic or curried functions with all arguments provided before call.
var log = console.log.bind(console);
var promise = Q('promised');

var applyExactArgs = compose(R.nAry(0), R.partial);

promise.then(R.add(1, 2)); // this is calling result function right away
promise.then(R.partial(R.add, 1, 2)); // this is populating all args, but not calling

// usual R.partial
promise.then(R.partial(log, 'Hello', 'World')); // → outputs "Hello World promised"

// What I need
promise.then(applyExactArgs(log, 'Hello', 'World')) // → outputs "Hello World", ignores all additional not pre-applied args.

Is there some function for this already? Or better solution?

If you happen to have access to prettier lambda syntax, in this case it's quite readable option.

Even better:
var min = magicFunction(2, Math.min);
// min — curried, has 2 real args, but must be called one more time to get result
var min1 = min(1);
var min1and2 = min1(2);
min1and2(0, -1); // 1, all additional args are ignored

How magicFunction should be defined?

If you happen to have access to prettier lambda syntax, in this case it's quite readable option.

What do you mean?

Is nAry what you're looking for?
I meant promise.then(() => console.log('Hello world'))

Yeah, lambda looks pretty good.
nAry limits count of args, but i need to have result of it as callback. I need to have it called one more time to have a result.

Ramda does not have a function for this.  But I'm certain of the name you should use if you create one: thunk.  I don't have a particular implementation in mind, though.

It sounds as though a pull request for R.thunk may be accepted.


applying patch from xilinx

OK. I got rid of the old zenodo models from the MLPerf repo, they will still float in Zenodo but at least it won't show up when we got to https://zenodo.org/communities/mlperf. Only the latest push -- which contains but the checkpoint and the graph (.pb) file will show up.


Python, Node.js, Java API tests fail due to segmentation fault on Fedora 38 and Arch Linux latest GitHub-hosted runners

Fedora 38:

Python: https://github.com/kuzudb/kuzu/actions/runs/6227529030/job/16903599530#step:11:207
Node.js: https://github.com/kuzudb/kuzu/actions/runs/6238303953/job/16933849217#step:12:172
Java: https://github.com/kuzudb/kuzu/actions/runs/6239830005/job/16938605374#step:13:334

Arch Linux latest:

Python: https://github.com/kuzudb/kuzu/actions/runs/6241375062/job/16943442159#step:11:206
Node.js: https://github.com/kuzudb/kuzu/actions/runs/6250186748/job/16968465170#step:9:172
Java: https://github.com/kuzudb/kuzu/actions/runs/6243151154/job/16948124024#step:13:184

The segmentation faults for the Node.js APIs do not happen on every run. For example, in the above two runs where the failure for the Java APIs are demonstrated, the failure does not occur for the Node.js APIs.
Note that this behavior is happening on GitHub-hosted dockerized containers. I was unable to reproduce this behavior on local dockerized containers.

The issue does not seem to happen anymore.


Vscode CPU occupancy is too high

VSCode Version:1.11.1
OS Version:windows10

Steps to Reproduce:
Vscode CPU occupies about 30%, causing the fan to sound too large for.
My CPU is CORE i7.
Webstorm and sublime without such problems

You can take a look at this issue 11096

Please use Process Explorer to find the process with its full list of arguments that runs high

@yPangXie @jrieken ok, thank you very much. The problem seems to be solved.


Handling of NULL values

Functions LAG and LEAD do not work without non-mandatory parameters [,OFFSET] [,DEFAULT].
"Explore" shows no query results and no errors.
Dashboard Builder shows "Metric request error":
Metric request error
Object
status:500
statusText:"Internal Server Error"
data:Object
message:"Metric request error"
config:Object
url:"api/ds/query"
method:"POST"

This plugin does not alter the SQL at all right now. The only replacement that is done is in the frontend with variables (such as $__to).
Therefore it would surprise me very much if the plugin is at fault here.
Nevertheless, could you post a query, that is not working in Grafana, but is working locally?
And could you give a small seed.sql file so I can have some data to test against?
For debugging and logging it might be good to check the query inspector: https://community.grafana.com/t/using-grafanas-query-inspector-to-troubleshoot-issues/2630
But if the query inspector provides not more information than already provided, the Grafana logs might be helpful as well.

You could use any DB, for example this one:
https://cdn.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip
And this is the query that doesn't work in Grafana:
SELECT  AlbumId,
LAG(AlbumId) OVER(ORDER BY AlbumId) prev_AlbumId,
LEAD(AlbumId) OVER(ORDER BY AlbumId) next_AlbumId
FROM albums
limit 5;

Thank you very much for the data!
The problem does not seem to be the query, but NULL data. I think he plugin does not handle type conversion correctly with NULL values and I will investigate a bit and let you know

I updated the plugin and released a new version. @mi-fel could you test this out?
https://github.com/fr-ser/grafana-sqlite-datasource/releases/tag/v0.1.3

Yes, it works in v0.1.3. Thank you very much!
However, the query result does not contain the NULL values, see a comparison with the SQLite.
It would be better to show the NULL values as well. Is it possible in Grafana?

This is a display setting in Grafana. You can decide how to handle NULL values. You can fill in the string "NULL" for example:

But since the issue has been solved I will close this now.
Thank you very much for finding and reporting a bug!


 found in generated code

Produced for a basic generic type with a builder. While this compiles, it is pretty ugly.

ahaha knew this would happen


Add library semantic token modifier to items from other crates

Closes #5772.
A lot of code here is pretty repetitive; please let me know if you have any ideas how to improve it, or whether it’s fine as-is.
Side-note: How can I add tests for this? I don’t see a way for the test Rust code in test_highlighting to reference other crates to observe the new behaviour.

Regarding the tests you should be able to just do the following as the fixture source:
//- /main.rs crate:main deps:dep
use dep::Foo;
...
//- /lib.rs crate:dep
pub struct Foo;

If I see this right you should only get stuff from main.rs(the first fixture part, order is important) highlight back by the test infra.

Yeah, that would be a good idea!
On Mon, 24 May 2021 at 00:15, Aramis Razzaghipour @.***>
wrote:

@.**** commented on this pull request.
In crates/hir/src/lib.rs
https://github.com/rust-analyzer/rust-analyzer/pull/8942#discussion_r637602161
:

pub fn krate(self, db: &dyn HirDatabase) -> Crate {

   self.module(db).krate()

}

Some of the krate methods were there before; should I remove them and
replace the callers with .module(db).krate() too?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/rust-analyzer/rust-analyzer/pull/8942#discussion_r637602161,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANB3M3FTZ367N2AMGWLPOTTPFV6TANCNFSM45LXKXIQ
.

Should built-in types have the library modifier?

I would say no, since technically they don't come from a library and they already have the BuiltinType tag so they can already be colored separately if desired anyways.

@Veykril Makes sense. Do you have any other feedback for me? :)

bors d+

bors r+


Update dependencies

Updated dependency firebase/php-jwt to version ^4.0.

Any ETA for this PR to be processed?

Looks like this should reference issue #32


Add AngularJS client to Jumpstart

See https://github.com/canoo/dolphin-platform-spring-boot-archetype

Done.


Add missing link to PHP-Parser

Coverage remained the same at 87.336% when pulling 7ec645455e3fce407c3bc27bc3e10b4c4af3a73f on Fuco1:patch-1 into 6310483a5a11abc663c209d16589ec6a381f132e on mihaeu:develop.

Thanks @Fuco1


Viewing a crate with a single version fails because it cannot find a previous version to diff against

When you try to open a crate that only has a similar version (for exampe wireguard or browse), it produces an error because the default behaviour is to diff the previous version against the latest, but it cannot find the previous version.

Maybe a fix is to resolve the previous version to the latest if and only if there is no previous version?

Just fixed this!


Customer Appreciation and Gratitude

Summary:
This ticket is created to acknowledge and appreciate a customer's gratitude and positive feedback regarding the response and work being done. It is important to recognize and value customer satisfaction and appreciation.
Background/Reason:
The customer expressed their gratitude and appreciation for the response and work being done. Their positive feedback reflects their satisfaction with the service provided. It is essential to acknowledge and reinforce such positive interactions to maintain a strong customer relationship and encourage continued support.

Summarized feedback from<EMAIL_ADDRESS>:

The user is grateful for the response and appreciates the work being done.


Feature Request: n_components=1

Hi,
It seems setting n_components to 1 errors out because PaCMAP does not support dimensions less than 2.
I think it would be nice, as I was planning on testing it on repeng which is a small library that allows to nudge an LLM by injecting a 1D vectors that was created by dimension reduction of the internal representation of a dataset of pairs of good vs bad texts.
Is that something that will never happen or is there a way?
Thanks!

Thank you for your interest in PaCMAP. I think that the algorithm will be able to run in the case when n_components=1, but I haven't personally tried to do so. As a result, we put an error statement that serves as a sanity check. You can try to remove the three lines and see if it works.

Hi!
Thanks a lot for the quick reply. I can attest that so far simply removing the line works without crash.
As I can't properly evaluate the quality of the dimension reduction in this scenario, what do you think of replacing the line by a warning that this has not been thoroughly evaluated / at the user's own risk? If you then released the new version that would simplify my reproduction instruction for my projects. The alternative is to instruct to users how to patch the lib.
Thanks!

hi @thiswillbeyourgithub and @hyhuang00.
funny enough, I'm actually evaluating this exact same use case at the moment.
I have a particularly good test-scenario @thiswillbeyourgithub: sample RGB colorspace, dimension reduce to 1, and compare to the ordering (invariant to start position) that arises from the H (hue) channel of HSV (from matplotlib.colors import rgb_to_hsv).
I'm evaluating the source code and paper as well, to think through the implications of trying this. I'm really glad to know that code-wise, it worked. I'll try this on my branch.

each of these uses "white" as its 12-o-clock value, which in HSV space should land next to "black" and "red" as well.

keep this in mind when looking at images - you want to see red at the top ideally, but ultimately the ordering is what matters (reds across from greens, blues across from yellows)
here are the default parameters of PaCMAP (fwiw, I had apply_pca off since the dimension was 3, but it seems to make no difference) on my dataset:

honestly not so great, fairly comparable to UMAP by setting up the defaults.
with a bit of tuning, I was able to get better results though...
what I LOVE about PaCMAP is that I get intuitive visual results when tuning MN_ratio and FP_ratio by small amounts with a fixed seed, I can see some level of continuity in the transform.
(1.0, 1.0) with 50 neighbors

(1.0, 1.2)

(1.0, 1.4)

(1.0, 1.0) with 100 neighbors is starting to look interesting.

but I imagine it may take a bit of work to see if the RGB -> H mapping can be discovered. Certainly am trying.


Paginate with different partial

For example,  i have projects with tasks.
In the index.html.erb for tasks, I have a table wich lists all the tasks with pagination.

       some headers

     <%= render @tasks %>

Here kaminari is using the partial in tasks/_task.html.erb
Now in the projects index.html.erb , I also want to display a table with tasks, but with another partial. When the page loads, it renders with that partial, but when I click the paginate links, it renders with the tasks/_task.html.erb partial.
How can I achieve that?

@yuki24 i think you have to use as: 'task'


The document has no pages.

i keep getting  The document has no pages.

Can you show some example code? I can't really help without knowing what you are doing :)

Closing due to no example provided


ADO extension v1.1.1

Details

Motivation

Context

Pull request checklist

[ ] Addresses an existing issue: Fixes #0000
[ ] Added relevant unit test for your changes. (yarn test)
[ ] Verified code coverage for the changes made. Check coverage report at: <rootDir>/test-results/unit/coverage
[ ] Ran precheckin (yarn precheckin)
[ ] (after PR created) The Accessibility Checks (pull_request) check should fail. All other checks should pass.

Codecov Report

Merging #960 (15feea6) into main (5b378ed) will increase coverage by 0.55%.
The diff coverage is 99.13%.

:exclamation: Current head 15feea6 differs from pull request most recent head 3a49e44. Consider uploading reports for the commit 3a49e44 to get more accurate results

@@            Coverage Diff             @@
##             main     #960      +/-   ##
==========================================
+ Coverage   89.02%   89.58%   +0.55%
==========================================
  Files          42       44       +2
  Lines         957     1027      +70
  Branches      120      117       -3
==========================================
+ Hits          852      920      +68
- Misses        105      107       +2

Impacted Files
Coverage Δ

...r/pull-request/ado-pull-request-comment-creator.ts
97.75% <ø> (-1.26%)
:arrow_down:

...progress-reporter/enforcement/workflow-enforcer.ts
94.44% <94.44%> (ø)

...kages/ado-extension/src/ioc/setup-ioc-container.ts
100.00% <100.00%> (ø)

...es/shared/src/mark-down/result-markdown-builder.ts
100.00% <100.00%> (ø)

...red/src/progress-reporter/all-progress-reporter.ts
100.00% <100.00%> (ø)

packages/shared/src/utils/aggregate-error.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5b378ed...3a49e44. Read the comment docs.


Use archiver instead of adm-zip to ZIP lambda code updates

archiver is a more well maintained and (hopefully) will allow adding files to the zip without corrupting it (like adm-zip does)

No longer relevant. Seems adm-zip got a few updates and the issue I saw before has been fixed


Don't swallow parsing errors when reading from file

When loading a file, if there's a parse error, return it instead of returning Ok. The exception is ParserError::NoInput which is what we expect at EOF. If we get that, just return Ok.
To reproduce:

put some bad input in a file called foo.lurk (I just put one double-quote character in it, so parsing will fail).
cargo run foo.lurk

You'll get empty output and lurkrs returns 0 exit code as if the run was successful. I stumbled upon this when I had a typo in one of my files, it looked like it executed but it actually had just swallowed the error.

I don't know what's causing the CI error here:
---- lurk_tests stdout ----
Lurk REPL welcomes you.
Running from lurk-lib/example/test.lurk.
Read from lurk-lib/example/test.lurk: !(:load "lib.lurk")

!(:assert-eq (square 8) 64)

!(:assert-eq (square 9) 81)

!(:assert (eq (square 10) 100))

Loading from lurk-lib/example/test.lurk/lib.lurk.
thread 'lurk_tests' panicked at 'called `Result::unwrap()` on an `Err` value: Not a directory (os error 20)

Stack backtrace:
   0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/96ddd32c4bfb1d78f0cd03eb068b1710a8cebeef/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/96ddd32c4bfb1d78f0cd03eb068b1710a8cebeef/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2: std::backtrace::Backtrace::create
             at /rustc/96ddd32c4bfb1d78f0cd03eb068b1710a8cebeef/library/std/src/backtrace.rs:332:13
   3: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from

It doesn't seem related to my change. Locally, I tried switching back to master and it fails the same way for me. Is there something in the CI process that's supposed to copy stuff from lurk-lib into lurk-rs/lurk-lib? I can't find where that's supposed to happen.

I believe the CI tests failing will be fixed by #195, which I will bring into this PR once that one is merged.


ci: fix Node ARM release build

When we turned on fat LTO builds, we made the release build job much more compute and memory intensive. The ARM runners have particularly low memory per core, which makes them susceptible to OOM errors. To avoid issues, I have enabled memory swap on ARM and bumped the side of the runner.

I have confirmed the release job will now work based on this test run here: https://github.com/lancedb/lancedb/actions/runs/7905694879/job/21578881645


Add prometheus operator-init with CRDs configs

Problem:

Monitoring may fail to launch because the expected monitoring CRDs are not ready, this is because monitoring CRDs are created by the rancher cluster-agent, and it will fail to install when cluster-agent has some internal network issue or when it is under a race condition like https://github.com/rancher/rancher/issues/19362#issuecomment-501441188.
Monitoring CRDs should contain validation schemas

Solutions

Add CRD hook-install to the monitoring chart bootstrap when there is no valid monitoring.coreos.com/v1 API version
Add operator-init to update the desired CRDs and its validation schemas.

How it works:
operator-init.enabled should be set to true of cluster monitoring of the monitoring-operator app, it defaults to false.
Related Issues:
https://github.com/rancher/rancher/issues/19362

Validation steps:
Case1: Monitoring CRDs are enabled by the cluster-agent

kubectl api-versions|grep moni  should return monitoring.coreos.com/v1
kubectl get crds alertmanagers.monitoring.coreos.com -oyaml should return and didn't contains validation spec
install the cluster monitoring and set operator-init.enabled=true using advanced options.
the app is launched successfully and monitoring CRDs are updated with desired validation specs

Case2: Monitoring CRDs are not enabled by the cluster-agent

git clone the https://github.com/guangbochen/system-charts/tree/moni-init repo and cd to it.
exec kubectl delete -f charts/rancher-monitoring/v0.0.3/charts/operator-init/files/. to delete existing CRDs
exec kubectl api-versions|grep moni and  kubectl get crds alertmanagers.monitoring.coreos.com should return not found or an empty string
install the cluster monitoring and set operator-init.enabled=true using advanced options.
the app is launched successfully and monitoring CRDs are installed with desired validation specs

Case3:
Test project monitoring is enabled successfully
Case4:
Test monitoring upgrade v0.0.3 -> v0.0.4
Case5:
Test monitoring upgrade with Rancher version bump (e.g, v2.2.4 with monitoring v0.0.3 installed and bump Rancher version to v2.2.5 or newer and upgrade Monitoring to v0.0.4)


Error when starting C++ program

Issue Type: Bug
I write a simple "Hello World" program in C ++.
Run for debugging.
In the debug console, the message: "Stopping due to fatal error: NullReferenceException: Object reference not set."
The program is not debugged, but VSCode shows that it is running.

Hey bro, do u solve this problem?
Hey. No, I can not solve this problem for the second day. On the previous version it worked. After updating to 1.30 does not work

damn it...
I also encounter this, without any idea about it...

damn it...
I also encounter this, without any idea about it...

Do you also use VSCode on linux? It appeared after the update?

duplicate of https://github.com/Microsoft/vscode-cpptools/issues/2922

a solution!
use "externalConsole": false in launch.json

Can confirm, externalConsole=false solves the problem for me


Code splitting with chunkName outputted

How is it possible to code split and have the outputted files be the name of the split file? Currently, just uses [id].js

Names aren't supported with import() yet. If you use require.ensure, you can pass a name as its third parameter after the function.
Please use Stack Overflow for support as instructed in the issue template.


"Waypoint: Change the Font Size of an Element" Still has a problem (in live and beta)

As described in issue #492, this Waypoint is still accepting incorrect code as correct, as does the beta site.
The last requirement is "give your p elements the font size of 16px" but you only have to give the first one the correct size for it to be accepted. You don't need any sort of style at all on your second p:

It seems this issue may stretch through multiple waypoints, as the "Waypoint: Import a Google Font" also ignores whether the second p element meets the listed requirements:

Thanks @Philomorph,
I've confirmed this issue


chore(package): update mocha to version 3.4.1

Coverage remained the same at 97.778% when pulling 17ee62ccc0f9687f71794b5d817f28154797def8 on greenkeeper/mocha-3.4.1 into f17c085dea5d50b61eb410e193dbf8c0132cfcc8 on master.


Add BPM Field

Dependent on https://github.com/Zeugma440/atldotnet/issues/209

https://github.com/NickvisionApps/Tagger/releases/tag/2023.8.0-beta1


update FG EOL/EOS note

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screenshot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://660b27cb82f9fa2137bdfcd4--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://660b280a2339cd27e0e51ec3--harness-developer.netlify.app


ROX-20122: bump go-gprc to 1.58.3

Bump go-grpc to 1.58.3, which fixes CVE-2023-44487 for the gRPC server.

Not sure why there's no end-to-end testing on these ones. I'd suggest to check with @RTann


[PF-558] show workspace structure

Running a job will now show

@ktaebum Does the exempted files at .pfignore be excluded from the file tree?

Yes they are exempted


refactor: Remove Deprecated Bourbon/Neat from CSS stack

Bourbon 4.2.5 was released on Sep 17, 2015.
Neat 1.7.2 was released on Mar 13, 2015.
Warehouse vendored them on Nov 18, 2015 from a design repo, using gulp to handle the build process, replaced since by webpack.
Bourbon and Neat are now both deprecated libraries, with the final Neat release of 4.0.0 on Jul 10, 2019, and the final Bourbon release of 7.3.0 on Jan 23, 2023.
The authors have also helpfully provided a Bourbon replacement guide to native CSS features.
Steps
Here's a list of tasks to get us there:

[x] replace neat with native CSS features
[x] replace vendored bourbon 4.2.5 with package, reintroducing warnings from #12742
[x] update to most recent bourbon 4.2.x version
[x] update to most recent bourbon 4.3.x version, fix issues found
[x] update to most recent bourbon 5.x version
[x] update to most recent bourbon 6.x version
[x] update to most recent and final bourbon 7.x version
[x] Replace bourbon functions with native CSS features

[x] all-text-inputs
[x] margin
[x] clearfix - vendored, and deferred for now
[x] border-width
[x] ellipsis

[x] Remove bourbon from the stack
[ ] Celebrate! :tada:

Bundle Size
Before: 252k uncompressed, 30k gzip, 24k brotli
After: 195k uncompressed, 29k gzip, 23k brotli
The CSS bundle size drops a little, largely due to removing the vendored files with custom license headers - since the rest of bourbon/neat were only used during compile-time, the resulting compiled bundles have the same functionality as before.
Related links

warehouse issue about vendored imports
Bourbon Migrating from v4 to v5

Any open TODOs inline are considered beyond the scope of this change, since they were too extensive to try and get done with this already-large PR.


[top, aes] Disable SecAllowForcingMasks parameter

With #15639 we have enabled this parameter for ES (the reasoning is documented in #14240). For production, we will need to disable it again.

I believe we still want SecAllowForcingMasks enabled for M2.5 but we should be absolutely sure about this. I would like to re-discuss this in an upcoming Security meeting.
For reference, this comment outlines how difficult it is to disable the masking in the field.

@vogelpi and I discussed and are sure we need this for M2.5

@vogelpi and @johannheyszl can you determine what the plan should be for this in PROD?

Yes, @johannheyszl and I believe we should keep this in for production due to the big RTL change around the PRNG. The whole feature can be effectively gated with ROM_ext and even if that was bypassed, it's fairly hard to make use of the feature, see https://github.com/lowRISC/opentitan/issues/14240#issuecomment-1293222494.

For Earlgrey-PROD, the decision is taken to keep this and I am removing the corresponding labels. We should keep the issue around for other designs such as Darjeeling.