[Discussion / Feature Request]: Access token expiration race condition.

I've googled and read fairly extensively on this issue and come up basically empty. The only example I can find that even remotely addresses having an expired access token is the example in this project's README.md file. (That example is then proliferated through several official and third-party client packages.)
For reference, this example is what I'm talking about:
$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    'clientId'                => 'demoapp',    // The client ID assigned to you by the provider
    'clientSecret'            => 'demopass',   // The client password assigned to you by the provider
    'redirectUri'             => 'http://example.com/your-redirect-url/',
    'urlAuthorize'            => 'http://brentertainment.com/oauth2/lockdin/authorize',
    'urlAccessToken'          => 'http://brentertainment.com/oauth2/lockdin/token',
    'urlResourceOwnerDetails' => 'http://brentertainment.com/oauth2/lockdin/resource'
]);

$existingAccessToken = getAccessTokenFromYourDataStore();

if ($existingAccessToken->hasExpired()) {
    $newAccessToken = $provider->getAccessToken('refresh_token', [
        'refresh_token' => $existingAccessToken->getRefreshToken()
    ]);

    // Purge old access token and store new access token to your data store.
}

This example is great when your token has expired prior to initializing your provider, but it is useless if it expires after initialization but before the script/request makes its last OAuth2 request.
The situation I'm dealing with is a cron that runs every 5 minutes for several seconds (due to API calls). My access token expires every 3600 seconds, so every 12th execution of the cron runs into a potential race condition in which the token is valid prior to execution but can expire during execution.
The best thoughts I've had on this so far amount to adding the $existingAccessToken->hasExpired() >> refresh sequence somewhere in the getAuthenticatedRequest() >> getResponse() >> sendRequest() sequence of the AbstractProvider class.
That would narrow the expiration race condition to an extremely small window, however it leaves open a minor but expensive race condition if 1 of 2+ concurrent scripts refreshes the token. This condition essentially would result in each concurrent script refreshing the token for each request after the first refresh (since each refresh would invalidate previous access tokens).
That race condition can be beaten by also putting the getAccessTokenFromYourDataStore() call in with the hasExpired() check. Depending on how the token is stored, this may or may not be an expensive addition.
My current solution is none of the above since I didn't want to start hacking into this package. Instead, I am artificially expiring my token early so that it refreshes ahead of time. (NOTE: This does not solve the concurrency issue described above.)
Does anyone have thoughts about this? I'm interested in what others have to say.

Libraries I have come across (Google API?) have worked around this issue by giving ~30 seconds of "leeway", as in:
$expired = ($token['time_expired'] - 30) < time();
If the above statement is false, you would refresh your token. Otherwise, you have a perfectly nice token that will last for around 30 seconds.
This could be done by overriding AccessToken, and changing hasExpired() to something like:
public function hasExpired()
{
    $expires = $this->getExpires();

    if (empty($expires)) {
        throw new RuntimeException('"expires" is not set on the token');
    }

    return ($expires - 30) < time();
}

Alternatively, you could manually check if getExpires() - 30 < time();.
(Of course, you probably want to use a constant instead of 30 in both cases)

That's not a terrible idea. The drawback is obviously that it has a limit to it. If this particular script runs for 31 seconds, we get back into that "uh-oh" territory (or 60 vs 61, etc.).
I feel like the ideal solution is to check access token expiration prior to each request as opposed to the instantiation of the client. If you can guarantee that the client won't "live" for longer than a certain period of time, instantiation is okay; and yeah, you could re-instantiate the client during a long-running script; but a native auto-refresh seems, to me at least, to be the most elegant.

The API I'm using is actually taking a LONG time in production (Adobe Sign, c'mon...), so this is happening like clockwork every hour.
I came up with a fairly simple extension to handle this. I extended getAuthenticatedRequest() to use this basic pattern:
    public function getAuthenticatedRequest($method, $url, $token, array $options = [])
    {
        // refresh access token if necessary
        if ( ! $token = $this->fetchTokenFromStorage() )
        {
            $accessToken = $this->getAccessToken('refresh_token', [
                'refresh_token' => cache('adobe_sign_refresh_token')
            ]);

            $this->saveTokenToStorage($accessToken);

            $token = $accessToken->getToken();
        }

        return parent::createRequest($method, $url, $token, $options);
    }

The major downside to this is that getAuthenticatedRequest() is already expecting a token to have been retrieved and passed in. If retrieving the stored token is expensive, this is kind of a pain-in-the-ass execution, but it solves both the race condition (by refreshing right before the request) and the concurrency issue (by fetching the latest token from storage right before request).

@trip-somers Store the access_token in local storage including it's expiration date and renew it using a second cron? This way retrieval of the token is quick, and renewal is (kinda) non blocking.
The 'I have a 30 second leeway it might fail at 31' is something you certainly should consider. For example you could also try gracefully recovering the failed 'job'. ie use a queue or something.
However I don't think this should be part of a protocol abstraction.

I implemented this earlier today to great effect so far. The solution I posted this morning might have worked, but I changed the final $token value to come from the local storage while debugging a seconds-vs-minutes expiration calculation issue.
Since I'm using Laravel's cache manager, the fetching is actually fairly inexpensive.
    public function getAuthenticatedRequest($method, $url, $token, array $options = [])
    {
        // refresh access token if necessary
        if ( ! $token = $this->fetchAccessTokenFromStorage() ) // returns null if expired
        {
            $accessToken = $this->getAccessToken('refresh_token', [
                'refresh_token' => $this->fetchRefreshTokenFromStorage()
            ]);

            $this->saveTokenToStorage($accessToken);

            $token = $this->fetchAccessTokenFromStorage();
        }

        return parent::createRequest($method, $url, $token, $options);
    }

I'm still worried about the concurrency/timing, but the only way to really tackle that, as far as I can tell, would be to use a queue as you suggest.
I've come up with a couple of questions while dealing with this, too.

Why does getAuthenticatedRequest() expect a token to be passed in instead of pulling from something like $this->accessToken?

Is there a reason that there isn't already some kind of an 'auto-refresh' option in the AbstractProvider class? I'm thinking essentially something like a boolean setting/option that tells the current instance whether or not to refresh the token automatically. It seems like a no-brainer to me, so I'm curious about the reasons for excluding something like that.

@trip-somers I came across the exact same problem and implemented similar. Be careful with providers like Google who don't return the refreshToken when you request a new token! I was overwriting refresh_token with null.
I agree with your question 2 and would like to know an answer.
Are you caching fetchAccessTokenFromStorage()? I am storing this in Redis and it works well.

@jamesgraham I'm not using Redis, but yes. In my case "fromStorage" actually means "from cache". I also got tripped up on the missing refresh token; exact same thing -- expected new refresh token, wasn't sent.

@trip-somers, Google returns a new refresh token if the "approval_prompt" parameter is set to "force".
When it comes to getting new tokens, the best stategy I found is to let it fail. If I get an error saying the access token has expired, I try to obtain a new one using the refresh token. What's very important is to remember this may fail as well. The refresh token may be expired or invalidated. In such a situation the user should be asked to re-authenticate. However, if I get a new access token, I can simply retry the request.

Looks like you have found a working solution. If you would like to propose a feature for this, please open a new issue.

The request is mentioned in 3 of my comments: an auto-refresh option in the AbstractProvider class. I even gave code examples for how it can be implemented.

It's been years since this thread was closed, but it seems like there's still no auto-refresh built into the lib to auto-refresh the token.
While that's what we're after in basically each project that's having more than a single data-request to an oauth provider.  For each project needing to refresh tokens we are now building the same extended behaviour code on top of the lib in our projects. It's not much code, but it's rewriting the same code every time and new users need to figure this out first.
So it would be nice if this could be build into the lib itself!
So for me a +1 too for having an auto-refresh option in the lib itself.


Extend config object for createAutoCorrectedDatePipe to accept min and max month and day

In am in a scenario where my autoCorrectDataPipe needs to be able to validate more than just the year range so I thought createAutoCorrectedDatePipe could accept more config options for setting min and max values to month and day.

Hi! in the example above, where i pass the maxYear and minYear?
const autoCorrectedDatePipe = createAutoCorrectedDatePipe("dd/mm/yy")

@ronan-morais as a second paramater object:
const pipe = createAutoCorrectedDatePipe('mm/yyyy', {
minYear: 2000,
maxYear: new Date().getFullYear(),
})


R version in jupyter kernel is incompatible with required R package Bioconductor

Users need to install the R package Bioconductor. It requires R version 4.3.0. Jupyter ships with R version 4.0.4
References:

https://bioconductor.org/install/

@akafazov
I've updated the R version in the Jupyter image.
Users will need to add their previous package directory to R's paths, in order to use the packages they've already installed.
Commands (should be executed in R console):
(replace yourLib with the path to your package directory; by default that should have been ~/R/x86_64-pc-linux-gnu-library/4.0)
To add the directory in paths list:
.libPaths( c( .libPaths(), "yourLib") )

To make the directory the main library for packages:
.libPaths( c( "yourLib" , .libPaths() ) )

Thanks, I will inform the partners. Can you also update the jupyter documentation.

Update docs - https://github.com/ALTERNATIVE-EU/alternative.github.io/commit/80f952a2af712e3164852a1564f04e67fa3860d8

Checked, R is upgraded to version 4.3.0 and the docs is updated


Errors with system merge on CF-012

We get the following error when merging the first staff of CF-012
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined

The issue is that the names element on  (punctum, clivis, etc.) is not being stored in staff merge, so needs to be added in or sometimes it will not load correctly.

Fixed in aa17a92402bd8ca98b6fe6d1b4d4ee1b144a9254


Open And Close Dropdown Programatically

How to close or open dropdown from another event ?

Please install later version 1.5.3.
Method

API
Params
Description

open
() => void
Open dropdown list

close
() => void
Close dropdown list

Are there examples of this somewhere, please?


migrate keycloak from helm chart to manifests

since the codecentric helm chart does not support ingressClasses (#5) I need to migrate to manifests

not required, I can use an annotation :)

has been fixed now :)


Update to use ExoPlayer 2.12

[x] Update to use ExoPlayer 2.12
[x] Refactor to use MediaItem rather than MediaSource
[x] Use new playlists API to create playlists rather than ConcatenatingMediaSource
[x] Change onPlayerStateChanged to onPlaybackStateChanged
[x] Update gradle version to 3.5.4
[x] Update targetSdk to 30
[x] Update appcompat to 1.2.0

Many thanks for your review @marcbaechinger!


buildkite-agent: 3.34.1 -> 3.35.0

Description of changes
https://github.com/buildkite/agent/releases/tag/v3.35.0
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@techknowlogick I just saw that they made another fixup release 3h ago: https://github.com/buildkite/agent/releases/tag/v3.35.1

@zimbatm thanks for heads up, I've just created https://github.com/NixOS/nixpkgs/pull/167355

Perfect, thanks!


Introducing custom subject/message capabilities via admin email area

Added ability to alter the subject/message via '/admin/settings/email/messages'.  Documentation has not been updated to reflect this capability however.

Hey @nateiler.  Just FYI, we're all at http://peersconf.com/ this week, so it'll probably be next week before I can properly give this a once over.

@takobell did you ever get a chance to look this over?

@themccallister sorry, i'm going to set aside some time real soon to give this plugin some much needed lovin'

Finally had a chance to look this over and to me it's beyond the scope of what we want to be supporting with this plugin.
Contact Form is purposely light-weight.  There are plenty of other more full-featured form builder/contact plugins available.


[flutter_tools] draft support for shader hot reload

@zanderso , not really tested yet, but should be enough to work 😄
https://github.com/flutter/flutter/issues/104788
Support hot reload of shaders in flutter run.
Create a new class called the development shader compiler. This holds some state about what kind of shaders to compile (impeller, platform, sksl) as well as the ability to convert from an arbitrary shader input to a DevFSContent for syncing.
Since -d all may potentially require multiple compilations for each target platform, we need to push compilation to each FlutterDevice instance instead of performing it in the resident runner. During the asset sync process, we attempt to identify any assets that are shaders. IF a shader changes, it must be recompiled and then the new contents synced to the target device in place of the original asset.
Finally, we add separate tracking for invalidated shaders so we can call the specific service extension to have the engine regenerate them.

Cool!


feat: support multi keys

Context: we run 4 k8s clusters, with different kubeseal keys.
I would like to be able to generate severals kubeseal secrets in a single command.

Hi @ebuildy,
I never had such a use case in mind, but technically I don't think it will be hard to implement.
Are you using one kubeconfig with multiple contexts, or are you using multiple kubeconfig files?

I will go ahead and close this issue. Feel free to add more information if that is something you still want to be implemented.


New Arch build fails on iOS 'RNRootViewBackgroundSpec.h' file not found

Hi, I'm getting this issue when using the new arch:
'RNRootViewBackgroundSpec.h' file not found

react-native 0.72.3, xcode 14.3.1

I published v1.4.0 to support new arch. However, while testing android new arch with example, after navigated to new screen, I can't press any buttons. Maybe it just something was wrong with my example. Help me test it.


rfw golden pixel customer test blocking engine -> framework roll

Starting with https://github.com/flutter/flutter/pull/151594, which contains only Skia rolls.
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8742693942250287281/+/u/run_test.dart_for_customer_testing_shard_and_subshard_None/stdout
| 00:13 +41: /b/s/w/ir/x/t/flutter_customer_testing.flutter_packages.VLKIXZ/tests/packages/rfw/test/material_widgets_test.dart: Material widgets
| ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
| The following assertion was thrown while running async test code:
| Golden "goldens/material_test.scaffold.png": Pixel test failed, 0.00%, 4px diff detected.

And others.
cc @bdero @Hixie

cc @goderbauer

Maybe the pixel test could have a larger tolerance?

fine by me. long term we should probably move to the "silver test" thing i'm working on, to avoid skia internals affecting this, though it does mean we'd stop catching a large class of potential regressions...

@Hixie or @goderbauer are you able to make the change to make the test pass?

I disabled the rfw tests in https://github.com/flutter/tests/pull/386 and filed https://github.com/flutter/flutter/issues/151659 to re-enable them. Leaving this issue open to track the engine -> framework roll recovering.

(triage): Closing this as it looks like the engine roll has recovered and we have https://github.com/flutter/flutter/issues/151659 on file to track the follow-up work.


Failed to cleanup datastore after 10 seconds

I try the example of  https://juliaparallel.org/DTables.jl/dev/dtable/#Table-operations
run is ok, but exit() repl very slow!
julia> exit()
┌ Warning: Failed to cleanup datastore after 10 seconds
│ Forcibly evicting all entries
└ @ MemPool ~/.julia/packages/MemPool/k1XDl/src/MemPool.jl:144

julia> versioninfo()
Julia Version 1.8.0-rc1
Commit 6368fdc656 (2022-05-27 18:33 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: 8 × 11th Gen Intel(R) Core(TM) i5-11300H @ 3.10GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, tigerlake)
  Threads: 1 on 8 virtual cores

(@v1.8) pkg> st DTables
Status `~/.julia/environments/v1.8/Project.toml`
  [20c56dc6] DTables v0.1.0

Yeah this is a MemPool bug. I'll switch this to an @debug and default it to a small delay. Will update this issue soon.

Fixed with MemPool master, I'm tagging 0.4.2 with this change.


WslRegisterDistribution failed with error: 0x80041001

Version
Microsoft Windows [Version 10.0.19044.1645]
WSL Version

[ ] WSL 1
[X] WSL 2

Kernel Version
<IP_ADDRESS>
Distro Version
Was using Ubuntu for Windows, current issue happens on all distros
Other Software
WSL Update is showing the DISK1 error, tried running wsl_update_x64.msi again, said i already have a newer version running.
possible failure due interaction with / effects of RyzenAdj/RyzenController? i'm unsure about this, as the error persisted when i uninstalled RyzenController, but started happening around the time i first installed it.
Repro Steps
open any distro through it's windows app / open using command prompt or pwershell / open any app that relies on WSL functionality (eg. VS code)
Expected Behavior
WSL and distro launch like normal
Actual Behavior
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80041001
Error: 0x80041001 (null)
Press any key to continue...

Diagnostic Logs
No response

similar to #5561

i'm pretty sure ryzenadj has something to with it
or the fact that Riot Games' Vanguard Anti-Cheat has kernel access and keeps trying to block inpoutx64.sys everytime ryzenadj launches

/logs

https://aka.ms/AAgr40p

Core Isolation / Memory are off by the way, due to 2 incompatible drivers:

LGVirHid.sys by Logitech
xhunter1.sys, which is an anti-cheat of some sort

I don't see any traces in the feedback. Can you record them manually?
https://github.com/microsoft/WSL/blob/master/CONTRIBUTING.md#record-wsl-logs-manually

Sorry about that. Script is new and might need some ironing out. Can you have another go at it? Thanks.
https://github.com/microsoft/WSL/blob/master/CONTRIBUTING.md#8-collect-wsl-logs-recommended-method

WslLogs-2022-05-08_06-31-14.zip

side note: still got the appx error, but it collected the logs this time.
PS C:\Windows\System32> Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-wsl-logs.ps1" -OutFile collect-wsl-logs.ps1
>> Set-ExecutionPolicy Bypass -Scope Process -Force
>> .\collect-wsl-logs.ps1

    Directory: C:\Windows\System32

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          08-05-2022    06:31                WslLogs-2022-05-08_06-31-14
get-appxpackage: C:\Windows\System32\collect-wsl-logs.ps1:34
Line |
  34 |  get-appxpackage MicrosoftCorporationII.WindowsSubsystemforLinux > $fo …
     |  ~~~~~~~~~~~~~~~
     | The 'get-appxpackage' command was found in the module 'Appx', but the module could not be loaded. For
     | more information, run 'Import-Module Appx'.

Log collection is running. Please reproduce the problem and press any key to save the logs.
Saving logs...
Logs saved in: C:\Windows\System32\WslLogs-2022-05-08_06-31-14.zip. Please attach that file to the GitHub issue.

side note: still got the appx error, but it collected the logs this time.
PS C:\Windows\System32> Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/diagnostics/collect-wsl-logs.ps1" -OutFile collect-wsl-logs.ps1
>> Set-ExecutionPolicy Bypass -Scope Process -Force
>> .\collect-wsl-logs.ps1

    Directory: C:\Windows\System32

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          08-05-2022    06:31                WslLogs-2022-05-08_06-31-14
get-appxpackage: C:\Windows\System32\collect-wsl-logs.ps1:34
Line |
  34 |  get-appxpackage MicrosoftCorporationII.WindowsSubsystemforLinux > $fo …
     |  ~~~~~~~~~~~~~~~
     | The 'get-appxpackage' command was found in the module 'Appx', but the module could not be loaded. For
     | more information, run 'Import-Module Appx'.

Log collection is running. Please reproduce the problem and press any key to save the logs.
Saving logs...
Logs saved in: C:\Windows\System32\WslLogs-2022-05-08_06-31-14.zip. Please attach that file to the GitHub issue.

Not sure if this helps but I had the same hex error as you and what ended up fixing it was going through these steps to uninstall I think a failed(?) update in progress to wsl then it just started working again. I also uninstalled and reinstalled wsl before trying this but that didn't seem to make any difference.

thank you. this worked. all my old files are gone but i don't think i lost anything important

Sorry didn't realize it had that effect 💀

Not sure if this helps but I had the same hex error as you and what ended up fixing it was going through these steps to uninstall I think a failed(?) update in progress to wsl then it just started working again. I also uninstalled and reinstalled wsl before trying this but that didn't seem to make any difference.

This absolutely helped me, thanks!

I hope this helps the community. I have Surface Pro 11 tablet with Arm64 chip. I reinstalled it to get a bigger SSD in and had many issues setting up WSL including behavior like the described here in.
So how it worked out for me:

At first I could not install WSL at all. Ubuntu would install form the store but WSL would not neither in the store nor using wsl --install.  The following script I found in this repo worked after changing "arm64" to upper case "ARM64" in the system check part. `

Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/WSL/master/triage/install-latest-wsl.ps1" -OutFile install-latest-wsl.ps1
Set-ExecutionPolicy Bypass -Scope Process -Force
.\install-latest-wsl.ps1

I tried running Ubuntu and other distros and got to the described herein error "WslRegisterDistribution failed with error: 0x80041001". To solve:
Enable all 3 virtualization feature on Windows - "Virtual Machine Platform", "Windows Hypervisor Platform", "Windows Subsystem for Linux". Make sure to restart
Uninstall WSLfrom step 1 using admin PowerShell prompt with "wsl --uninstall"
Restart Windows
Install WSL using the regular command

PS C:\WINDOWS\system32> wsl --install "Ubuntu-24.04"
Downloading: Windows Subsystem for Linux 2.2.4
Installing: Windows Subsystem for Linux 2.2.4
Windows Subsystem for Linux 2.2.4 has been installed.
The operation completed successfully.
Installing: Ubuntu 24.04 LTS
Ubuntu 24.04 LTS has been installed.
Launching Ubuntu 24.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

It seems to work now and I can get back to hacking Rust on arm. I am so happy. I did not expect to waste 2 days on upgrading my disk but here we are. All is well when it ends well.


Caching more than 3 VC's in infinite page view controller

Hi! Is there a possibility to cache more VC's, maybe more towards the 10-20 VCs?

Yeah, if you're using FixedPagingController it will keep all the view controllers in memory. If you want to do it using PagingViewController you need to allocate and store a reference to you view controllers and return them in the data source.

@rechsteiner Thanks. Though it is not clear to me on where/when I should reload the cache in a proper efficient manner.. any insights?

Do you have a fixed amount of view controllers or are you using PagingInfiniteDataSource?

Unfortunately, no, I am implementing a calendar so every day has a different VC.. i want to load a week forward and backwards, and as I see the difference in speed between adjacent VC's, but sometimes the user presses on a day that is not cached and it is much slower.. I want to at least cache around the selected day. Maybe I will do some LRU cache, so the last used is removed everytime a new one is loaded.. but then I still need to know where to update them :)

Sounds like you are doing something quite heavy in the initialiser of that view controllers then. It shouldn't be a very noticeable delay for just allocating a view controller when clicking it.
It would require quite a lot of on your end to "prefetch" view controllers like that, so I would recommend looking into why it's taking so long to initialise it in the first place. Maybe you can move something into viewDidAppear etc?

@rechsteiner Thank you, I will investigate this direction.

Hey @rechsteiner , just to update - eventually we found the issue was loading some nibs was too pricey, since the inner collectionView loaded them in every VC. Solved it by replacing nibs with programatic cells :) happy coding


Feat/doc

Fonts & inverted banner colours seems at odds with https://dvc.org/doc but in terms of engine features looks about right to me.


v0.2.1

Current coverage is 66.71% (diff: 100%)

Merging #85 into master will not change coverage

@@             master        #85   diff @@
==========================================
  Files            11         11
  Lines           631        631
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            421        421
  Misses          210        210
  Partials          0          0

Powered by Codecov. Last update ff18471...1713847


changed values of both box-shadows...

changed box-shadow to 1px 2px 5px and 0px 4px 50px  respectively. is it ok or changes are needed still???

Issue:

Hello thank you for your work. In order to see the changes on the website, please run npm run compile then commit the changes

mam, please can you tell me how to do npm run compile as I am new to this domain, please can you help me??

Sorry for the delay @sawantvikram . You first need to run npm install in your command line or terminal for all the dependencies in package.json to install. Then, you need to run npm run compile and all the changes you make in the .less files will be reflected in dist/sbuttons.css

mam I have done as per you said now what to do front as I have compiled it??

@sawantvikram after compiling it you need to commit the code so that it appears in this pull request

@sawantvikram any update on this?

yes mam sorry for delay

@sawantvikram it's fine just let me know if you're still working on this or not


Added support for forecast to WUnderground platform.

Description:
Weather Underground provides forecast data as well as current conditions.  This change modifies the wunderground platform to retrieve the forecast and make it available as attributes.
Example entry for configuration.yaml :
sensor:
  - platform: wunderground
    api_key: e28d255e31ac6648
    monitored_conditions:
      - weather
      - temp_f
      - wind_mph
      - wind_dir
      - forecast
      - alerts
  - platform: template
    sensors:
      forecast_0:
        friendly_name: "Today"
        value_template: '{{ states.sensor.pws_forecast.attributes.fcttext_0 }}'
      forecast_1:
        friendly_name: "Tonight"
        value_template: '{{ states.sensor.pws_forecast.attributes.fcttext_1 }}'
      forecast_2:
        friendly_name: "Tomorrow"
        value_template: '{{ states.sensor.pws_forecast.attributes.fcttext_2 }}'

@cmoore42  instead extending this with template, why don't you create a sensor for each forecast day?  Also you could extend the option list to allow the user to select the number of days to be displayed. Something like:
  - platform: wunderground
    api_key: e28d255e31ac6648
    monitored_conditions:
      - weather
      - temp_f
      - wind_mph
      - wind_dir
      - forecast
      - alerts
   forecast_days:
      - mon
      - tue
      - wed

I think will be important to extend the unittest as well.

why don't you create a sensor for each forecast day?

If you did this, would you still have the options to simply show "Today", "Tomorrow"?  For many users, it seems this is the primary concern on forecasts; today and one or two days out.
I currently use DarkSky's forecasts and I like the option of showing Today/Tomorrow/Week but I'm curious how using specified days would work.  For example; if I choose the options in your example above, and it was Tuesday, what would show in the pws.forecast_mon sensor?   Would it be nothing or would it be next Monday's forecast?   I'm happy with WU support for this either way, but I think that if you do go this route, it will have to be explained clearly in the documentation.

I've modified this to use a new "forecast_periods" attribute to determine how many forecast periods to retrieve.  Each forecast period is its own sensor, with entity IDs of forecast_0, forecast_1, etc.  The friendly name of each is set to the forecast period.  For example:
  - platform: wunderground
    api_key: e28d455e31ae6648
   forecast_periods: 3
    monitored_conditions:
      - weather
      - temp_f
      - wind_mph
      - wind_dir
      - forecast
      - alerts

will create three sensors: sensor.forecast_0, sensor.forecast_1, and sensor.forecast_2.
If run on a Monday their friendly names will be "Monday", Monday Night", and "Tuesday".

@cmoore42  are you planning to add any documentation to the new functionality too?

I think you'd have to document it to explain the setup.  I like the idea of the forecast periods.  I may end up ditching DarkSky entirely.

I agree that the documentation needs to be updated.  The web page at https://home-assistant.io/developers/development_submitting/ needs to describe the process for updating documentation.

Is there something else I need to do to get this change merged in?  I think I've responded to all of the review comments.

Hello @cmoore42 ,
You can look at the PR https://github.com/home-assistant/home-assistant.github.io/pull/1337 to follow as an example to add the documentation to the new option you created.
It also seems that you might need to rebase your PR due to its conflict.

This PR seems to have gone stale. Closing it. You can reopen it when you're ready to finish it.


Azure Password Protection - Receiving two opposite Event IDs 30009 Followed by 10014

Hi All,
We are in the middle of testing our Azure Password Protection deployment, but we noticed two different Event ids surrounding a couple users.
We saw an event id 30009 followed by a 10014 for the same user all within one minute. How is it possible that the password would have been rejected by APP (30009) then a couple of seconds later we receive the event id 10014 ( password passed APP) ??? Have you all ever seen this?
Thanks,

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: bd810b22-4e2a-5a66-db90-dd39b1b5c565
Version Independent ID: 8e36df09-f7f1-dcbd-dc3d-93cbeed1b040
Content: On-premises Azure AD Password Protection FAQ - Microsoft Entra
Content Source: articles/active-directory/authentication/howto-password-ban-bad-on-premises-faq.yml
Service: active-directory
Sub-service: authentication
GitHub Login: @Justinha
Microsoft Alias: justinha

@Snoopyt6
Thanks for your feedback! We will investigate and update as appropriate.

@YashikaTyagii  @ManoharLakkoju-MSFT  thank you for taking a look. Please let me know what you find

Hi @Snoopyt6
It is possible to see both event IDs 30009 and 10014 for the same user within a short period of time. Event ID 30009 indicates that the password was rejected by Azure AD Password Protection, while event ID 10014 indicates that the password passed Azure AD Password Protection.
This can happen if the user submits multiple password change requests in quick succession, and the password that was initially rejected by Azure AD Password Protection is later changed to a password that passes Azure AD Password Protection.
It is also possible that the password that was initially rejected by Azure AD Password Protection was later changed to a password that passes Azure AD Password Protection due to a change in the password policy or configuration.

@Snoopyt6
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation


$ parity --chain mc.json Could not load specification file at mc.json: Permission denied (os error 13)

So as a noob to ubuntu I whish there was some guide as I am stuck
on ubuntu 16.04 using parity
installed parity...
$wget https://raw.githubusercontent.com/Musicoin/orbiter/master/mc.json
$ parity --chain mc.json
Could not load specification file at mc.json: Permission denied (os error 13)
~/work/parity$ ls -lsha mc.json
4.0K -rw-rw-r-- 1  2.7K Sep 20 12:58 mc.json

I also have tried the following.
sudo chmod 775 mc.json
cryptolabs@ETHNode:~/work/parity$ parity --chain mc.json
Could not load specification file at mc.json: Permission denied (os error 13)
sudo chown 777 mc.json
cryptolabs@ETHNode:~/work/parity$ parity --chain mc.json
Could not load specification file at mc.json: Permission denied (os error 13)

You tried the new RMC and rmc.json linkded in readme ?

I was using 1.8, Now on 1.7.3 and works fine.  will ry the rmc.json but /mc.json


Modifying an element of a list in a function in Codecademy

Instructions
Change list_function so that:

Add 3 to the item at index one of the list.

Store the result back into index one.
Return the list

def list_function(n):
ns = []
append.ns[0]=3
return ns

@muknerd I'm slightly confused about that issue. Can you please explain what you are trying to achieve and what's the problem?

Closed


Travis moved repo from .org to .com - encryption broken

At some point in the last two weeks, Travis moved this repo to .com from .org, which broke our encryption. Tests for PRs work but will not deploy correctly currently.

For the sake of posterity: had to create a new SSH key and then encrypt using travis encrypt-file --pro id_rsa --add. Fixed by d5bb0745f09e8ccaec8a7c8721de93be57be1dd6


Replaced jdk17 version by latest available (used in psp-images)

I think nobody installed the previous version except me, so I've replaced it.
The new version is used in psp-images and will be used for migration.

@BaCaRoZzo Can you take a look, please?

@vik4es ah sorry...I always forget who can merge what. My bad.


Examples please

I read the article, the git documentation...but I don't know how to implement the state machine (stent( in my project. Any basic project example (more explanatory than the TODO example?)
_

For exmaple. Hot to use stent with UI events?

For example I'm working with another library from you "Navigo"  :) and I want to move between pages using stent, my problem are the links. Right know it took my 3 steps (states) to get to a page (D), but from that page I want a link to the first one (A), how could I make to go from D to A in only one step?
const machine = stent.Machine.create('app', {
  state: { name: 'login' },
  transitions: {
    login: {
      sign: 'signing',
      enroll: 'enrolling',
      changePassword: 'changingPassword',
    },
    signing: {
      signing: 'signLoading',
    },
    signLoading: {
      fail: 'login',
      success: 'sendTo',
      unknowDevice: 'registerDevice',
    },
    registerDevice: {
      register: 'checkingDevice',
    },
    checkingDevice: {
      fail: 'registerDevice',
      success: 'login',
    },
  },
});

I want to go from registerDevice to Login

I'm glad that you are using Navigo as well. I miss some context to answer properly here tho. What you control with Stent, is it pages or it is states of your app. It looks like you are mixing two different responsibilities.

Exactly I'm a little confuse in how to use stent and I'm mixing things. I'm not sure in how implement stent to control the stet of my app. I would like to do 2 things:

control if a user can make an action in my app
control if a user can go to an specific URI
I'm using Vanilla JS with no framework.
Thk for your time krasimir

Well, I'll suggest to define what does state means to your app. This could be for example:

If the user is logged in or not
If the logging is in progress or not
Is the device working or not

Then put those states in a state machine. The second thing is: do you want to send the user to a different page based on the app state. If yes then I'll suggest to create a middle man and put the required logic there. For example, if you want to forward the user to a login page if he/she is not logged in you do something like:
if (isTheUserLoggedIn() === false) {
  router.navigate('login);
  machine.login();
}

So, my point is that the routing and the state management should be separated.


Detection of optional dependencies in serverless manager

Description
Serverless Manager should detect availability of its optional dependencies

serverless manager discovers if default trace collector endpoint is configured/available
serverless manager discovers if publisherProxy Endpoint is configured/available

User can override the urls via Serverless CR spec

trace collector endpoint
publisherProxy endpoint

Serverless CR reflects the configured URLs in the CR status

detected trace collector endpoint is reflected in Serverless CR status
detected publisherProxy endpoint is reflected in Serverless CR status

Serverless Manager configures serverless controller ENVS based on detected/configured endpoints.
Function runtime pods receive ENVS for trace OTEL collector only if they exist and are operational.
Function runtimes configure exporters only if corresponding ENV is present
Bring back auto-intrumentation in python functions (see https://github.com/kyma-project/kyma/issues/16981#issuecomment-1460099310)

Hint:
This would a temporary logic. In the final shape we expect all modules we watch would be represented by dedicated CR with a comprehensive status information.
the temporary detection logic of other components should be rather placed in the packages of those other components.

We came to conclusion that we are in the process of dropping declarative package and we will no longer have a periodic loop to reconcile custom resources ( instead we will have event based solution). There will be no value from updating the availability of the endpoint without periodic reconciliations because the status will most likely be out of date ( status will be held since last update of CR).

If state of dependancy changes, i.e traceCollectorURL changes, operator should capture the change and redeploy serverless controller.
Controller should detect those functions which use previous state (traceCollectorURL) and redeploy them

Right now it's not possible to detect if described endpoints are available because the serverless-manager doesn't have istio sidecar and can't reach protected addresses. Right now we can only implement the rest of the issue (URLs in the spec and the status). We should create a ticket for auto-detection of optional dependencies based on the Eventing and the Tracing CRs.


进行lora训练的时候，增加了收集summary功能，但是收集的时候报错

Thanks for sending an issue!  Here are some tips for you:
If this is your first time, please read our contributor guidelines: https://github.com/mindspore-ai/mindspore/blob/master/CONTRIBUTING.md
Hardware Environment | 硬件环境

please tell us what kind of hardware can reproduce your error?
请告诉我们您报错的后端类型

[ √] Ascend
[ ] GPU
[ ] CPU

Software Environment | 软件环境

MindSpore version:
请告诉我们您正在使用的MindSpore版本：

[ ] 2.1
[ ] 2.0.0
[ √] other (please state here): _2.2

Python version(e.g., 3.7.5): 3.9.18
OS(e.g., Linux Ubuntu 16.04) EulerOS 2.0
GCC/Compiler version:

Describe the current behavior | 目前输出
e.g. the current output is xxx/ the error is xxx/
目前的输出是xx 、 目前的报错是关于xx
[ERROR] ME(26861:281473712992272,ForkServerPoolWorker-1:14):2024-05-31-12:00:04.932.734 [mindspore/train/summary/_summary_adapter.py:363] The dimension of Summary tensor should be 4 or second dimension should be 1 or 3, but got tag = input_data/auto, ndim = 4, shape=(2, 512, 512, 3), which means Summary tensor is not Image.
Describe the expected behavior | 期望输出
please describe expected outputs or functions you want to have:
请告诉我们您期望得到的结果或功能
能收集到训练相关数据，可以在mindinsight中查看
Steps to reproduce the issue | 复现报错的步骤
1.在train_text_to_image.py 脚本中增加收集summary代码
interval_1 = [x for x in range(1, 4)]
specified = {"collect_metric": True, "histogram_regular": "^conv1.|^conv2.", "collect_graph": True,
"collect_dataset_graph": True,"collect_train_lineage":True,"collect_input_data":True,
'collect_landscape': {'landscape_size': 40,'unit': "epoch",'create_landscape': {'train': True,'result': False},
'num_samples': 128,'intervals': [interval_1]}
}
summary_collector = ms.SummaryCollector(summary_dir="./summary_dir/summary_01", collect_specified_data=specified,
collect_freq=12, keep_default_action=False)
# callbacks
callback = [TimeMonitor(args.callback_size)]
ofm_cb = OverflowMonitor()
callback.append(ofm_cb)
callback.append(summary_collector)
2.执行训练脚本
python train_text_to_image.py
--train_config configs/train/train_config_lora_v2.yaml
--data_path /home/ma-user/work/dataset
--output_path /home/ma-user/work/output0531
--pretrained_model_path models/sd_v2_768_v-e12e3a9b.ckpt
Related log / screenshot | 完整日志
[ERROR] ME(26861:281473712992272,ForkServerPoolWorker-1:14):2024-05-31-12:00:04.932.734 [mindspore/train/summary/_summary_adapter.py:363] The dimension of Summary tensor should be 4 or second dimension should be 1 or 3, but got tag = input_data/auto, ndim = 4, shape=(2, 512, 512, 3), which means Summary tensor is not Image.
[2024-05-31 12:00:05] INFO: epoch: 1 step: 2, loss: 0.686330, loss scale: 65536, average step time: 0.422665.
[2024-05-31 12:00:05] INFO: epoch: 1 step: 3, loss: 0.615680, loss scale: 65536, average step time: 0.330626.
[2024-05-31 12:00:05] INFO: epoch: 1 step: 4, loss: 1.013419, loss scale: 65536, average step time: 0.323141.
[2024-05-31 12:00:06] INFO: epoch: 1 step: 5, loss: 0.515399, loss scale: 65536, average step time: 0.904796.
[2024-05-31 12:00:07] INFO: epoch: 1 step: 6, loss: 1.046023, loss scale: 65536, average step time: 0.332177.
Train epoch time: 611627.001 ms, per step time: 101937.834 ms
[2024-05-31 12:00:42] INFO: Checkpoint saved in /home/ma-user/work/output0531_1/ckpt/sd-1.ckpt
[2024-05-31 12:01:22] INFO: epoch: 2 step: 1, loss: 0.840738, loss scale: 65536, average step time: 75.032792.
[2024-05-31 12:01:22] INFO: epoch: 2 step: 2, loss: 0.766551, loss scale: 65536, average step time: 0.319096.
[2024-05-31 12:01:22] INFO: epoch: 2 step: 3, loss: 0.586941, loss scale: 65536, average step time: 0.316810.
[2024-05-31 12:01:23] INFO: epoch: 2 step: 4, loss: 0.998357, loss scale: 65536, average step time: 0.316289.
[2024-05-31 12:01:23] INFO: epoch: 2 step: 5, loss: 0.644005, loss scale: 65536, average step time: 0.313123.
[2024-05-31 12:01:23] INFO: epoch: 2 step: 6, loss: 1.051421, loss scale: 65536, average step time: 0.320373.
Train epoch time: 2023.618 ms, per step time: 337.270 ms
[ERROR] ME(26860:281473712992272,ForkServerPoolWorker-1:13):2024-05-31-12:01:23.821.974 [mindspore/train/summary/_summary_adapter.py:363] The dimension of Summary tensor should be 4 or second dimension should be 1 or 3, but got tag = input_data/auto, ndim = 4, shape=(2, 512, 512, 3), which means Summary tensor is not Image.
[ERROR] ME(26896:281473712992272,ForkServerPoolWorker-1:32):2024-05-31-12:01:23.866.151 [mindspore/train/summary/_summary_adapter.py:363] The dimension of Summary tensor should be 4 or second dimension should be 1 or 3, but got tag = input_data/auto, ndim = 4, shape=(2, 512, 512, 3), which means Summary tensor is not Image.
[2024-05-31 12:01:59] INFO: Checkpoint saved in /home/ma-user/work/output0531_1/ckpt/sd-2.ckpt
[2024-05-31 12:02:37] INFO: epoch: 3 step: 1, loss: 0.887232, loss scale: 65536, average step time: 73.946778.
[2024-05-31 12:02:38] INFO: epoch: 3 step: 2, loss: 0.588924, loss scale: 65536, average step time: 0.327915.
[2024-05-31 12:02:38] INFO: epoch: 3 step: 3, loss: 0.548785, loss scale: 65536, average step time: 0.312505.
[2024-05-31 12:02:38] INFO: epoch: 3 step: 4, loss: 0.569951, loss scale: 65536, average step time: 0.311562.
[2024-05-31 12:02:38] INFO: epoch: 3 step: 5, loss: 0.688446, loss scale: 65536, average step time: 0.313019.
[2024-05-31 12:02:39] INFO: epoch: 3 step: 6, loss: 1.009740, loss scale: 65536, average step time: 0.311985.

Train epoch time: 1997.177 ms, per step time: 332.863 ms
[ERROR] ME(26883:281473712992272,ForkServerPoolWorker-1:27):2024-05-31-12:03:57.229.127 [mindspore/train/summary/_summary_adapter.py:363] The dimension of Summary tensor should be 4 or second dimension should be 1 or 3, but got tag = input_data/auto, ndim = 4, shape=(2, 512, 512, 3), which means Summary tensor is not Image.
[ERROR] ME(26850:281473712992272,ForkServerPoolWorker-1:7):2024-05-31-12:03:57.254.907 [mindspore/train/summary/_summary_adapter.py:363] The dimension of Summary tensor should be 4 or second dimension should be 1 or 3, but got tag = input_data/auto, ndim = 4, shape=(2, 512, 512, 3), which means Summary tensor is not Image.
[2024-05-31 12:03:57] INFO: Checkpoint saved in /home/ma-user/work/output0531_1/ckpt/sd-4.ckpt
[WARNING] ME(24163:281473611857936,MainProcess):2024-05-31-12:04:37.455.11 [mindspore/train/callback/_summary_collector.py:909] The learning rate detected in the optimizer is not a Parameter type, so it is not recorded. Its type is '_IteratorLearningRate'.

在使用summarycollector收集数据时，请设置"collect_input_data":False。由于colleect_input_data要求的数据输入格式第二维为channel，而sdv2的输入为（2,512,512,3）,第4维为channel，因此会报上述错误，可设置"collect_input_data":False先不收集该部分数据。


chr1 data

Where can I download the training data chr1 you used in Figure 5?Thank you very much！
Figure 5. Comparison of different architectures and shapes for calling variants from trios. All results were trained on chr1 and tested on chr20.

Hi, the original data can be downloaded from this page. And the training data can be generated from this page.

Thanks for your answer, I was asking if there is any chr1 data directly used for training

I would like to follow the Comparison of different architectures and shapes for calling variants from trios ,All results were trained on chr1 and tested on chr20 as your paper(fig 5). Therefore, i want to obtain the corresponding data set of chr1 below
can you share the training script that can generate the chr1 data from the original bam file?
 Thank you !
------------------ Original ------------------
From: @.>;
Date:  Tue, Mar 21, 2023 03:52 PM
To: @.>;
Cc: @.>; @.>;
Subject:  Re: [HKU-BAL/Clair3-Trio] chr1 data (Issue #2)

Thank you for your follow-up question.
To clarify, we do not directly share the parsed chr1 data for training purposes. However, we do provide a shared training script that can generate the chr1 data from the original bam file. This approach ensures that the data is consistent across all users and allows for greater flexibility in the training process. If you have any further questions or need assistance with the script, please let us know.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


What about Logical decoding ?

It looks like pg-live-select is currently working with manual triggers. This is a lot of work and hard to do right.
Is the live-select functionality achievable with the Logical Decoding feature of postgres (http://www.postgresql.org/docs/9.4/static/logicaldecoding.html) ?
I'm curious about whether Logical Decoding has been thought about. And if yes, what are the problems with it ?
Discussion on hacher news here: https://news.ycombinator.com/item?id=9387988

Yes, it's definitely possible but it requires Postgres 9.4. Although it may provide a slight performance improvement, manual triggers would not change: it would simply work like numtel:mysql using the binary log.
In order to automate what is currently "manual" triggers. I have started exploring ways to parse the EXPLAIN command's output but it's quite difficult as there are many possibilities. Hopefully I can get this feature working in a future version because it would be killer!

And if you're wondering if it's possible to update queries without repeatedly executing the query, see the abandoned simple_queries branch of this project.
It turns out that doing all that work in Javascript blocks the event loop significantly on higher loads, resulting in faster operation by offloading the work to Postgres.

Is requiring Postgres 9.4 too big of a requirement ?
I think a possible way would be to first implement it using Logical Decoding, then add the fallback for older versions of postgres...

If one uses logical decoding, does it mean the computation would need to happen in the application process? Can it be done in the postgres process with stored procedures?

Hey Slava,
Not sure what you mean by "the computation."
Thinking about it now though, if triggers were abandoned for only reading from the write-ahead log, there would have to be constant polling for new changes. In a high-traffic environment, this might result in fewer transmissions between the pg server and the app server but in low-traffic situations, the opposite.
Unless an extension to postgres is written so that asynchronous actions can be performed, the diffing of result sets is best to be initiated from the app server in order to provide a throttling mechanism.
Not sure if that helps, maybe you can elaborate more?

I guess, I meant something different. By "computation", I meant "figuring out how to incrementally recompute the query" or "re-poll the query and diff the result".

Oh okay. Yeah that would need to take place in the app server or a custom postgres extension that uses a Background Worker. As far as I know, there's no way to place a "trigger" on a write-ahead log entry using logical decoding.


Using full-text search feature returns syntax error, when the search term having more than 1 word.

Bug description
Full-text search feature returns syntax error when the search term having more than 1 word!

How to reproduce
Using the search argument at where or orderBy _relevance with search terms having more than 1 words.
Expected behavior
No response
Prisma information

Same error occurs when the search is at the where

Environment & setup

OS: Mac OS
Database: PostgreSQL
Node.js version: v14.15.4

Prisma Version
prisma                  : 3.5.0
@prisma/client          : 3.5.0
Current platform        : darwin
Query Engine (Node-API) : libquery-engine 78a5df6def6943431f4c022e1428dbc3e833cf8e (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 78a5df6def6943431f4c022e1428dbc3e833cf8e (at node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine    : introspection-core 78a5df6def6943431f4c022e1428dbc3e833cf8e (at node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary           : prisma-fmt 78a5df6def6943431f4c022e1428dbc3e833cf8e (at node_modules/@prisma/engines/prisma-fmt-darwin)
Default Engines Hash    : 78a5df6def6943431f4c022e1428dbc3e833cf8e
Studio                  : 0.439.0
Preview Features        : extendedIndexes, fullTextSearch

I, too, am getting this error. This makes using search almost unusable for most use cases.

Hi,
Thanks for reporting this! It has already been reported before, so I am going to close this as a duplicate of https://github.com/prisma/prisma/issues/8939#issuecomment-909388537
Please have a look at the workaround there.


Consider flag to force export of dfns in legacy specs

Via https://github.com/w3c/browser-specs/pull/775
Old specs don't follow the data model for definitions that more recent specifications have adopted and don't have data-export attributes in particular. Definitions do get extracted but as internal definitions and are thus not available for cross-referencing purpose. It would be useful to be able to flag the spec as being a "legacy" spec with respect to definitions, and have the crawler export definitions of such legacy specs by default.
Not sure whether the mode should be a generic "legacy" mode or rather something a more specific "force export dfns" flag, which would be provide a more future-proof mechanism (today's "new" specs are tomorrow's "legacy" ones).

closed via #1120


runtime/pprof: TestVMInfo has a high flake rate on Darwin

#!watchflakes
post <- builder ~ `(gotip|go1\.\d\d)-darwin-amd64` && test == `runtime.pprof/TestVMInfo`

Broken out from https://github.com/golang/go/issues/65040#issuecomment-1924474904.

Dup of #62352.


Allow custom field name to be used with Get-TppAttribute

Summary of the new feature/enhancement
Unlike Set-TppAttribute which allows you to provide a custom field name and perform the translation, Get-TppAttribute does not allow this.

Proposed technical implementation details (optional)

I was about to open a bug or enhancement for this! Yes, it would be great to fetch custom fields by their name (internally stored as Label in TPP).


[WIP] Upgrade TestRPC to Ganache-cli

Description
This PR fixes the failing CI builds which was due to a new version of testRPC that didn't set the correct hostname to listen to inside docker containers and as a result of this eth-bridge-coverage could not connect to the testrpc server.
This PR upgrades from ethereum-testrpc to the new ganache-cli library and also pins the versions in the Dockerfile when installing the dependencies, so we avoid breakages like this in the future.
Then it sets the correct hostname flag when running ganache-cli.
PS: It seems the coverage test is failing now due to out of gas.
Checklist

[x] Linter status: 100% pass
[x] Changes don't break existing behavior
[x] Tests coverage hasn't decreased

Refers/Fixes
Fixes: #120

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

It looks like it is failing due to out of gas now. I'll investigate to see what is happening.

Pull Request Test Coverage Report for Build 482

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

Totals

Change from base Build 456:
0.0%

Covered Lines:
292

Relevant Lines:
312

💛  - Coveralls


Bump golang version to 1.22.0

I'm getting the following error on the make openstack step. Bumping up the 1.22.0 seems to be resolving the problem.
metal3.io/v1alpha1/baremetalhost_validation.go:10:2: package slices is not in GOROOT (/usr/local/go/src/slices)
note: imported by a module that requires go 1.21

recheck

the fix is in https://github.com/openstack-k8s-operators/install_yamls/pull/752
we cannot bump to 1.22 just like this. we dont have compatible containers to build things with 1.22

/hold

this is not something we want or can have now


Remove panic location from error messages

Problem

The location text underneath is scary and unehlpful
Distracts the dev from the real error (
Happy Case
Location should be where the error is coming from in my file!
Alternatives Considered
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

yes


Added docs

@Adwaith-Rajesh Just try the docs i modified.
Install mkdocs and just serve it

: is missing here
"keys" ["a", "b", "c"],

"keys": ["a", "b", "c"],


Made RsWithCookie able to combine the given value with previous ones. #293

Also adapted the corresponding test.

@bertram25 Many thanks, I will find someone to review it before we merge

@carlosmiranda this pull request is for you, please review

@Bertram25 Some comments above.

@carlosmiranda
Thanks for the review. :)

Let's simply call it previousValue.
We can pass String.format statement below on this line without reaching the line length limit.
Let's keep this unit test as it is. Instead, add a second test "addsMultipleCookies" with the behavior we're specifically trying to implement.

Those points should now be fixed:

Why are we swallowing an Exception here and then performing a return?

As for this point, I've been thinking about it, and I think you're right it is not the best thing to do.
Here is the situation:
res.head() can throw an IOException. And if I make previousValue() throw an Exception as well, then I'll end up being forced to make the RsWithCookie constuctor capable of throwing an exception.
As I didn't see that being done on any constructors in takes, I think this makes it pretty obvious this isn't the right thing to do.
Thus, if I want to make it use the exception correctly, I guess I'd have to create a new Response tye within the RsWithCookie class overriding the head() function and replacing the cookie header, with the cost that I will no more be able to use the Without/WithHeader decorations in that constructor.
If that's what desired, well, I'm back to square one but I can do it, the feature can also be seen in a more general point of view and maybe it is time to create a RsReplaceHeader class?
Just tell me. :)
Best regards,

@Bertram25 your suggested strategy in overriding Response methods is similar to how other classes (e.g. RsWithHeaders) does it. Let's do that.

@carlosmiranda Thanks a lot for the hints given!
The new commit should fix the last remaining issue.

@davvd Please give me one more day to give time to the review. Thanks!

@Bertram25 Just one more comment. :)

@carlosmiranda It should be fixed now.
I had to disable a PMD rule complaining about the lack of a super() call, even though the call is actually done.

@Bertram25 Strange error, but thanks, all looking good now.

@rultor Let's merge please

@rultor Let's merge please

@carlosmiranda Thanks for your request. @yegor256 Please confirm this.

@rultor try to merge

@rultor try to merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor try to merge

@yegor256 Done! FYI, the full log is here (took me 16min)

@elenavolokhova review this ticket please, for compliance with our quality rules

@rultor deploy pls

@rultor deploy pls

@davvd OK, I'll try to deploy now. You can check the progress here

@rultor deploy pls

@davvd Done! FYI, the full log is here (took me 9min)

@carlosmiranda
According to our quality rules:

Pull request description explains the solution proposed and contains a link to the original ticket it is related to.

There is poor description provided and it is not linked to original ticket. Pull request must briefly explain what was done in the branch, so that we can use this information later, for traceability.
As far as you are the performer of this ticket you are responsible for its quality. Please fix this issue and make sure that everyone follows this rule in your tickets in the future.

@Bertram25 please elaborate the PR description and link to the original ticket.

@carlosmiranda My apologies for not doing this earlier. The mistake is duly noted. Is it better now?

@Bertram25 @carlosmiranda Thank you!

@davvd Quality is acceptable here.

@davvd Quality is acceptable here.

@elenavolokhova thanks for the QA review, we'll work better next time

@carlosmiranda just added 10 mins to @elenavolokhova (for QA), payment ID is 58673640
21 mins sent to your balance (ID 58673643), many thanks! It took 176 hours and 12 mins.
review comments (c=6) added as a bonus
+21 added to your rating, at the moment it is: +3986


Fix test panic

Fix test panic in kube registry module.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[X] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[ ] Does not have any changes that may affect Istio users.

Hi @luckyxiaoqiang. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Thanks! We just fixed this in https://github.com/istio/istio/pull/29280 though


FR: Add FIRStorage Interop

[REQUIRED] Step 2: Describe your environment

Xcode version: 11.3
Firebase SDK version: 6.14.0
Firebase Component: Storage
Component version: 3.4.3

[REQUIRED] Step 3: Describe the problem
In attempting to build a SwiftLog implementation that posts client logs to Firebase Cloud Storage buckets as a Firebase Extended library, the SwiftLog impl will depend on Firebase Cloud Storage, however it should only depend on the storage object configured by Client App and not create its own object.  As suggested by Ryan Wilson, adding a FIRStorageInterop is the right solution to manage the dependency cleanly.
Steps to reproduce:
n/a
Relevant Code:
n/a see forthcoming PR

@leisurehound Is this still needed/planned?

So, I've implemented around the need for this, tho this pushes more cognitive load on the client to use the solution.  I'm about to release the library on GitHub next week, so can we look at adoption and/or pushback on whether a more seamless solution to the client developer is warranted?

So you mean leave this open pending feedback on next week's release?

yes, if that is possible.

SG - let me or @ryanwilson know if you'd like to come back to this. There have been some Interop structural changes since this PR was created.

hmm...maybe it would be better then to just start a new PR if the need warrants it.

Perhaps. Maybe close #4600 and leave this feature request open?

ah, yes, we can close that PR.  Will do so now.

Closing for staleness. Can reopen if the need re-arises.


add disable_file_types option

disable_file_types is used if file_types is not set, filetypes in that list are excluded, local-highlight is not enabled

fixes #11

10x :)


Fix import of dump v2

Pull Request
This bug was introduced because of a mistake we did earlier: We said the last version to export dump v2 was the v0.21.0 while it was the v0.22.0.
To fix the bug I updated our whole v2 reader to use the code from meilisearch v0.22.0.
Also:

Import the bugged dump in the tests
Test the import of this dump in the v2 reader and current reader

Related issue
Fixes #3435

Have we updated the documentation about the dumps and compatibility?

I updated the spec iirc but I don't know for the doc

AFAIK there has been https://github.com/meilisearch/documentation/pull/2102 on the docs side

@Kerollmops if you want to ensure the docs is updating correctly

you can check our issues on Meilisearch repo, you will find this one 😊
as Louis mentioned, you can check the issue on the docs side or the central PR here


remove thread implementation for get infographics data

(I didn't test it)

@OriHoch I want to close this one without merging: we will start running this code once in a week or two for now, and later on we'll find another solution.
Any objections? Do you still see a problem if we run the code once a week or two?

well, current implementation is broken, you can't use threads, so I suggest to merge it even if you only run it a week or two

well, current implementation is broken, you can't use threads, so I suggest to merge it even if you only run it a week or two

@ziv17 what do you think?

I think the question is how long do we plan to work without threads. As we do have performance issues, threads seems to me the most reasonable solution.

at the moment, the threads are not being used, so there is no change in performance from this PR, also as @atalyaalon said, you are only going to run it once every 1-2 weeks
regarding performance going forward, processing should be handled in the background, not inside the web process as is done here

in any case, the current implementation is broken and is most likely the cause of the problems we saw as I explained here - https://github.com/hasadna/anyway/issues/1410#issuecomment-676433197
so either need to fix it by making sure we use the driver in a way which supports multithreading, or merge this PR


Feedback

Very good work overall
Home UI is ver good
Signin UI can be improved
end to end user flow is working fine
admin panel is also good functionality
Can improved in documentation part

Thank you so much for your valuable feedback

Complete and updated the UI of singin please check.


test_integrity_error  test fail

Traceback (most recent call last):
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 721, in _commit_impl
self.engine.dialect.do_commit(self.connection)
File "/home/gijs/Work/sqlalchemy-monetdb/sqlalchemy_monetdb/dialect.py", line 328, in do_commit
connection.commit()
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/connections.py", line 108, in commit
return self.cursor().execute('COMMIT')
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/cursors.py", line 164, in execute
block = self.connection.execute(query)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/connections.py", line 135, in execute
return self.command('s' + query + '\n;')
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/connections.py", line 140, in command
return self.mapi.cmd(command)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/mapi.py", line 244, in cmd
raise exception(string)
pymonetdb.exceptions.IntegrityError: COMMIT: failed
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/testing/suite/test_dialect.py", line 40, in test_integrity_error
{'id': 1, 'data': 'd1'}
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1944, in exit
self.transaction.commit()
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1632, in commit
self._do_commit()
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1663, in _do_commit
self.connection._commit_impl()
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 723, in _commit_impl
self._handle_dbapi_exception(e, None, None, None, None)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
exc_info
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 186, in reraise
raise value.with_traceback(tb)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 721, in _commit_impl
self.engine.dialect.do_commit(self.connection)
File "/home/gijs/Work/sqlalchemy-monetdb/sqlalchemy_monetdb/dialect.py", line 328, in do_commit
connection.commit()
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/connections.py", line 108, in commit
return self.cursor().execute('COMMIT')
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/cursors.py", line 164, in execute
block = self.connection.execute(query)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/connections.py", line 135, in execute
return self.command('s' + query + '\n;')
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/sql/connections.py", line 140, in command
return self.mapi.cmd(command)
File "/home/gijs/Work/sqlalchemy-monetdb/.venv3/lib/python3.5/site-packages/pymonetdb/mapi.py", line 244, in cmd
raise exception(string)
sqlalchemy.exc.IntegrityError: (pymonetdb.exceptions.IntegrityError) COMMIT: failed

looks like the context manager is trying to commit the session, but the session is dirty due to a failed insert. I think the test is maybe wrong? Asked upstream:
https://groups.google.com/forum/#!topic/sqlalchemy/OC4joEZOjOo

looks like this is a bug in the test suite:
https://gerrit.sqlalchemy.org/#/c/576/


Add unique case test

Description
Add test labeled // TODO

Screenshots (if appropriate):
Types of changes

test

Checklist:

My code follows the code style of this project.
If my change requires a change to the documentation I have updated the documentation accordingly.

Pull Request Test Coverage Report for Build 1065

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

Totals

Change from base Build 1064:
0.0%

Covered Lines:
47

Relevant Lines:
48

💛  - Coveralls


No able to identify WSL created by wsldl.

Description
As is written in title, the FilesV2 applications can not find/recognize WSL virtual machine created by https://github.com/yuk7/wsldl.  On my computer, I have uninstalled Ubuntu WSL that offered in Microsoft Store. Instead, I installed https://github.com/yuk7/ArchWSL. It weird that Windows Explorer can correct present it's file system, but FilesV2 can not.
PS: I have turned  "Show WSL Section" on in settings panel.

Steps To Reproduce

Install https://github.com/yuk7/ArchWSL
Bug happened.

Expected behavior
Can correctly recognize ArchWSL file system.
Files Version
v2.0.34
Windows Version
Windows 11 21H2 22000.348
Relevant Assets
No response

@zsh2401 did you originally setup WSL on Windows 10? I had this issue after updating to Windows 11 but it was resolved after resetting Windows.

@zsh2401 did you originally setup WSL on Windows 10? I had this issue after updating to Windows 11 but it was resolved after resetting Windows.

The current WSL machiens was setup on Aug, after I have upgraded my computer from Windows 10 to Windows 11 with Windows Update, in other words, no resetting, no erasing.

@zsh2401 do you have a fresh install of Windows you can test on to see if the same issue exists?