Fix containsSubsequence failing when multiple empty subsequence.

Check List:

Fixes #2158
Unit tests : YES
Javadoc with a code example (on API only) : NA

Integrated thanks @wtd2!


[Commands] Fix code coverage export

This probably got regressed during the swift-test rework but was caught
by the code coverage integration tests in the swift-integration-tests
repo.
rdar://problem/59716913

@swift-ci smoke test


[Feature Request]: output hostname, ipv4, ipv6 for agent and control plane nodes

Description
Right now ipv4 addresses are available as an output but not mapped to the corresponding hetzner server name.
Providing users with a agent_nodes and control_plane_nodes output of type list(map) and including hostname and ips would allow users to create DNS records outside of Hetzner Cloud (with Cloudflare or Route 53) for example.
Maybe forwarding all outputs from modules/host makes the most sense for extensibility. e.g.:
{
  "outputs": {
    // ...
    "agent_nodes": [
      // ...
      {
        "ipv4_address": "<IP_ADDRESS>",
        "ipv6_address": "2001:4860:4860::8888",
        "private_ipv4_address": "<IP_ADDRESS>",
        "name": "special-worker-06",
        "id": "c46033b2-80b6-4802-ab97-47659b05960d"
      }
    ]
  }
}

Thanks @0xch4z, that sounds like a good idea, I will process the PR ASAP.


Add support for GMT 6

plot provides support for GMT 4. Since plot was developed, GMT 5 and GMT 6 have been released.  GMT 5 (and 6) introduced interface changes that break backward compatibility for plot (which was designed to work with GMT 4).  Although GMT 4 can still be accessed, most users prefer to download and install GMT 5 or 6 by default. As described on the old GMT 4 website, GMT 4 users should consider upgrading to GMT 5.
This enhancement request is to add support for GMT 6.

Question: Is ongoing support for GMT 4 needed?
Could you please respond to this question if you cannot dispense with GMT version 4, and you therefore require plot to continue to provide support for GMT 4.
By way of background, this issue was primarily focused on adding support for the latest version of GMT (currently version 6), thereby providing support for all GMT versions (4, 5 and 6).
I propose support for GMT 4 be dropped.
The line of reasoning for this proposal is as follows:

Significant changes to the GMT interface were introduced in version 5 and version 6. Many of these changes break interface compatibility across 4 and 5/6, which makes for a lot of extra work to support both interface versions.
It is not simple (nor 100% reliable) to automatically detect which version of GMT is installed on the system.
Version 4 is now over 10 years old and is likely to be dropped from GMT support in coming years.
GMT 5 and 6 provide for many new features and capabilities, including automatic creation of PNG/JPG.  Installation is also much simpler!

Thoughts?


Where is the third-party dir?

When I execute the install-libraries-raspbian.sh in scripts/ , it comes "cd: third-party/libconfig: No such file or directory"
How to solve this, thx.

https://github.com/abseil/abseil-cpp
https://github.com/Tessil/robin-map
https://github.com/Tessil/hopscotch-map
https://github.com/Tessil/array-hash


question: 16.0.1

curious if it'd be really hard to do a 16.0.1 release? i'm doing some work with czmq and zyre using pyzmq to re-cast sockets (via shadow) and running into some odd crash bugs, which i think are related to:
https://github.com/zeromq/pyzmq/commit/f37052960e1dc510ea2c1d2e69a32d727afa9d69
the work-around isn't too much of a stretch, just using pip to install pyzmq including that commit, but harder to release stuff into pypi that requires pyzmq>16.0
if the answer is "when we get to it" that's OK, figured i'd ask... thanks for all you do!

Yes, I hope to do it this week.

cool beans. if there's anything you need help with, let me know. appreciate it!

so, it appears that there's still an issue buried within libzmq 4.1.6, 16.0.1+4.1.5 works OK, soon as you go to 4.1.6, something aborts somewhere...
$ zyre-chat -i eth1
2016-11-14 12:40:22,617 - INFO - root[30] - setting up node: Bianca Shone
2016-11-14 12:40:22,617 - INFO - root[70] - staring node...
2016-11-14 12:40:22,618 - INFO - root[73] - joining: ZYRE
Socket operation on non-socket (src/signaler.cpp:301)
Aborted (core dumped)

i'm gonna dig around a little, but i guess it might have more to do with libzmq than pyzmq at this stage... (technically speaking).
fwiw...

actually; i think it might be because the pyzmq-16.0.1-cp27-cp27mu-manylinux1_x86_64.whl wheel doesn't appear to contain a pre-built libzmq.so object? but does have .libs/libzmq-feeff037.so.5.0.1 ? which seems to function OK in and of itself... but not when you're trying to do more "shadow" like stuff... does this make sense?

Do you have some code to reproduce issues? It could have to do with the bundled libzmq in that maybe multiple libzmqs are getting loaded? The manylinux 16.0.1 wheels still include 4.1.5 unlike OS X / Windows, because I forgot to update them.
Can you try installing with --no-binary pyzmq to skip the wheel?

$ pip install pyzyre
$ zyre-chat -i eth0 -d

(i'm taking czmq sockets and shadowing them as pyzmq sockets, easier to work with atm)
https://github.com/wesyoung/pyzyre/blob/master/pyzyre/chat.py#L162
if i build and install pyzmq locally with pip (after you install pyzyre):
$ pip install https://github.com/zeromq/pyzmq/archive/f37052960e1dc510ea2c1d2e69a32d727afa9d69.tar.gz#egg=pyzmq>16.0.1

everything works kosher (because it's building the binary from scratch and embedding it as zmq/libzmq.so).
HOWEVER pyzyre also builds it's own version of czmq/libzmq.so and embeds it (the same way pyzmq does, thanks for that btw!) along with czmq/libczmq.so and zyre/libzyre.so (the zproject generated ctypes auto figure this out and loads it properly). so i'm wondering if what's found in .lib via the wheel is colliding with libzmq.so in czmq/libzmq.so ? but when it's compiled from scratch as zmq/libzmq.so it loads ok?
if you pip install pyzyre you'll see czmq, zyre directories in the python packages path along with the embedded .so files..
does that make sense?

I bet that's it. I'll need to dig into how the manylinux stuff is working, but I'm guessing the two bundled libzmqs have a different name, which is what allows both to load and get confused. If they had the same name, I think only one would load. But that could be completely wrong.
@matthew-brett do you recall exactly what we need to do for two libraries to bundle the same DLL and be happy? This is Linux using a manylinux wheel that pulls in libzmq.

I'm sorry, I'm not a Linux link expert - paging @njs.
The auditwheel tool renames the built library by appending some characters from the hash of the library, or order to make it unique - hence (above) .libs/libzmq-feeff037.so.5.0.1 .  Your question is whether loading this library, and another with the same symbols, is going to cause a clash.

i can do more digging two, sounds like i'm headed down the right path. worst-case i can probably bundle pyzmq in with pyzyre and manipulate things from there (which is ok too). since the symbol's are already being loaded, i'd probably only need the python code..


Example for reconnecting to nodes if they drop out

I'm creating an application that has a node that broadcasts messages out to all the nodes that are connected to it. I'm currently using a simple approach where I get my child nodes to ping the master node so they get added to the route table and then my master node can send messages to all the connected nodes.
I'm thinking it would be nice to have an example to show how to handle the situation when my master node drops out and then the child nodes do some sort of retry until the master node comes back online.
I wanted to have a loop running and a select that listened on the client method WaitUntilReady that tells my child nodes the client connection has closed and then tries to reconnect every x seconds but I don't think WaitUntilReady returns a channel.
I'm not sure if my use case can be easily done with the current implementation, great library though.

Check out lithew/monte. It's by the same author and has reconnection functionality.


Boost pickup event reward

This PR adds a boost pickup event reward. The weight is multiplied by the amount of boost picked up. If the player starts with empty boost, the big boost pads will increase boost by 1.0 and the small boost pads will increase boost by 0.12.

make it so #1

Did you test this and confirm that it works as intended for various weights?


2d keypoints used in training

Thank you for your outstanding work! Could you kindly explain how you obtained the 2D keypoints for the training images in the OpenPose format? I specifically tried running OpenPose for 2D HandPose, but the keypoints I extracted don't match the level of detail reflected in your annotations.
While I do get some output, the accuracy isn't as good as yours. Could I be missing something in the process? In my case openpose seems very sensitive to bounding box of hands? How can I stabilize it?
I sincerely appreciate your time and guidance!

All the images we used for training have ground truth annotations for 2D keypoints.

Thankyou for your response. I really appreciate it.


Mirror clang's link stage on Windows.

Fixes problem discussed in #811.

Hm, unsure about the implementation of this. Since we're forcing this library to be included, we need to be careful that it doesn't override anything the user has implemented themselves. clang does this using -defaultlib:oldnames.lib to give the library lower priority than non-default libs.

cargo:rustc-link-arg=-defaultib:oldnames then. Deeper dive into -vvv logs for a multi-file project revealed that it's also a wrong spot for the link arguments. [As well as --target duplication thing.]

This could really use a test to make sure it works and isn't accidentally broken in the future.

Also cc @thomcc as using rustc-link-arg would require bumping the MSRV to >=1.56 (October 2021).

That MSRV bump doesn't bother me, but I would really like someone to double-check this works. My recollection is that there's some issue with using rustc-link-arg like this.

Also cc @thomcc as using rustc-link-arg would require bumping the MSRV to >=1.56 (October 2021).

Hmm, that would probably be undesirable... Two points in the context. One should keep in mind that the suggested modification affects only "fringe" use cases, an MSVC target with $CC set to clang, as opposed to clang-cl, which by itself is error-prone in the most general case. With this in mind, secondly, since the directive is ignored by an older version, then it wouldn't pose a problem for users who use the older version.

Putting together a test case was challenging because one has to mix object files generated by cl and clang in the same executable, with the former smuggling in oldnames.lib through the linker directive. -Zl prevents it from doing this and thus shifts the burden of linking in its entirety on rustc. You can convince yourself that the test is affirmative by commenting the line that adds -defaultlib:oldnames link flag and noting that the cc-test fails to link with "unresolved external symbol strdup" message. Well, this is provided that you have clang on the %PATH%. Just in case, this is the case on Github Actions, which can be confirmed by noting test msvcrt_here ... ok in the log files.

Re-based just in case.


Add support for configuring the AJAX call error function.

Coverage remained the same at 100.0% when pulling b86bf81719e33cfd3c81a6e2b0acb545050001dd on willow_namespace into fd69c8e624ccfa0df813697475d7af72dddeb51c on master.


What style should I override to change SingleDatePicker height?

I'm trying to reduce the height of SingleDatePicker so I overrided .SingleDatePickerInput
.SingleDatePickerInput {
  display: inline-block;
  background-color: #fff;
  height: 27.5px;
}

But this gives me a broken input.

I realised that there is alot of classes to change to make the height smaller but couldn't make it look like the original one but just smaller.
What classes do I need to change to achieve this? Is there a simpler way to do this?

@EduVencovsky  have you did it?

@OmkarAcharekar this is too old for me to remember, sorry ;/


filenames too long for git checkout

I forked this repo and tried to clone it, but had errors.
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
C:\p\ecqm-content-qicore-2023>git checkout master
error: cannot stat 'bundles/measure/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR-files/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR.cql': Filename too long
error: cannot stat 'bundles/measure/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR-files/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR.json': Filename too long
error: cannot stat 'bundles/measure/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR-files/library-deps-ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR-bundle.json': Filename too long
error: cannot stat 'bundles/measure/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR/ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR-files/valuesets-ChildandAdolescentMajorDepressiveDisorderMDDSuicideRiskAssessmentFHIR-bundle.json': Filename too long

I did git config core.longpaths true then tried git clone  again and there were no more errors.
https://stackoverflow.com/questions/22575662/filename-too-long-in-git-for-windows
I previously had the registry key set as described in https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later


Add deploymentAnnotations

This add deploymentAnnotations, useful for something like backing up with stash

Thanks @onedr0p  - merged :smile:


macOS expression window, first daw looks strange

Describe the bug
when testing macOS VisIt 3.0.2, i noticed that window looks strange after you create the first expression, (Controls->Expressions, Click New)
It doesn't really look like the Insert function or Insert variable  buttons are active, but
everything is functional.

I suspect this only happens if expressions list is empty.

Mark suggested checking pull downs also.


[NextJS][ISR] intermittent 503 errors for ISR pages

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
dh2ndod2t9wbt
Region
us-east-1
Amplify Console feature
Custom builds, Performance
Describe the bug

SSR Lambda is configured with a 10 second timeout which is causing ISR routes to return back an intermittent 503 error based on cold starts, data fetching, etc.

Expected behavior

SSR Lambdas should be configured with a 30 second timeout, or allow for a configuration override

Reproduction steps

Create a NextJS app with an ISR route that contains a few data fetching calls, fallback = "blocking"
Deploy to Amplify
Request ISR page that was no pre-rendered during the build
Notice 503

Build Settings
version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
    build:
      commands:
        - yarn run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
      - .next/cache/**/*

Additional information
I have to manually go into the console and change the timeout value from 10 to 30 between every deploy

I had to update the IAM policy of the Lambda manually to include:
        {
            "Effect": "Allow",
            "Resource": "arn:aws:sqs:us-east-1:253925498289:<SQS-ID>.fifo",
            "Action": [
                "sqs:SendMessage"
            ]
        }

Does your Lambda have the correct permissions?
I am in the process of writing a GitHub issue dedicated to this problem.

I had to update the IAM policy of the Lambda manually to include:
        {
            "Effect": "Allow",
            "Resource": "arn:aws:sqs:us-east-1:253925498289:<SQS-ID>.fifo",
            "Action": [
                "sqs:SendMessage"
            ]
        }

Does your Lambda have the correct permissions?
I am in the process of writing a GitHub issue dedicated to this problem.

Yeah I can confirm that I have the proper IAM policy.
Here's the CloudWatch logs

yes, if you create an app initially not using ISR, then you add an ISR page, then you will need to manually update the IAM policy on the lambda.

We're having a similar issue with a Next.js app. The API routes we configured often can take more than 10 seconds so we'd love to be able to configure the default timeout on the auto-generated Lambdas. It's possible to change it on the Lambda manually, but it will get overwritten next time the project builds.

Having the same issues, some feedback:

next/image is only loading sometimes
some pages update with ISR some don't

In the end we had to make the move to another provider, Half our stock was not correct and we were loosing a ton of sales because the ISR wouldn't update from the API.
Maybe i'll move back to amplify one day, but I need it to be more stable before I run this on production.

@nicksemansonos @drmzio we have updated the default timeout to 30sec. Please let us know if you're still having issues.

@nicksemansonos @drmzio we have updated the default timeout to 30sec. Please let us know if you're still having issues.

I still have this problem in my ISR next.js app. What should I do any change my environment?
Thanks.

Hello! I'm also facing the issue of getting 503 pages. I have  a page, where getStaticPaths returns { path: [], fallback: true} and getStaticProps returns {..., revalidate: 900}. First, I got 503 right on accessing that page. Increasing the lambda timeouts to 30sec seemed to have solved this issue, because now I get the pre-rendered page at first access after deploy. But later on, I get 503 again. I guess, this would be the ISR or the lambda doing the ISR respectively that is triggered by my 900sec interval. I read, that this might be the lacking permissions for the lambda functions. But i'm not sure how. Also is adding permissions something that does not persist between deploys like increasing the lamba timeouts? Should I completly recreate my amplify project? Thank you?

In ISR lambda we are still seeing 10 sec as default timeout, whereas other lambda have 30sec. Please help it is blocking us to adopt amplify

I'm currently having this issue

I had to update the IAM policy of the Lambda manually to include:
        {
            "Effect": "Allow",
            "Resource": "arn:aws:sqs:us-east-1:253925498289:<SQS-ID>.fifo",
            "Action": [
                "sqs:SendMessage"
            ]
        }

Does your Lambda have the correct permissions?
I am in the process of writing a GitHub issue dedicated to this problem.
I'm also having this 503 issue with a deployed page using getStaticPaths/Props..
@quinnturner  when you say lambda which lambda are you referring to?  After deploying I can see these lambdas with what I assumed was their IAM role name:

however, i couldn't find those roles in IAM and so wasn't sure where to update the policy, the closest match was these:

do I need to manually create these roles or am i just looking in the wrong place?

Update: found how to get those role names (had to change the location in lambda console to see the lambdas then get their role names from there), checked the permissions and everything is set but still seeing 503 errors on deployed pages using getStaticPaths/Props

UPDATE:
This was happening to me on<EMAIL_ADDRESS>After testing many many things, I just downgraded the version to<EMAIL_ADDRESS>and it started working normally.

UPDATE: This was happening to me on<EMAIL_ADDRESS>After testing many many things, I just downgraded the version to<EMAIL_ADDRESS>and it started working normally.

same happening to latest version, had to downgrade, any update on this?

I upgraded from NextJs 11.1.2 to Next 12.3. I cannot see the Image. Gives the 503 error
https://ssomlk-bugfixes3.d31jx5fml0tv9b.amplifyapp.com/_next/image?url=%2F_next%2Fstatic%2Fimage%2Fpublic%2FIIT-2.717a6c886d0cf6b638cf3c0eb928d65f.svg&w=384&q=75
But the weird thing is I am not using next/image but a normal HTML img tag


C310 - entity "Cell Motion Detection" not available

Description
Hello.
After an TAPO integration update (or as well sometimes after HA update/restart) the "Cell Motion Detection" entity is not available.
I know that it is created dynamic and I have already tried all the things listed in the 'Trouble shooting / FAQ' section of your description - but it doesn't help at all.
In the past it did a "self-repair", so the entity appears after a while without any help from me. Sometimes it was available after several restarts of the TAPO integration, sometimes after switching privacy mode off/on. But now it remains for already 16 hours in the state 'not available'. Here is the original German message:
Diese Entität wird nicht mehr von der Integration tapo_control bereitgestellt. Wenn die Entität nicht mehr verwendet wird, lösche sie in den Einstellungen.
I have a second camera, model C510. Here the problem doesn't occur.
Reproduction Steps
As already explained above the problem occurs

after an update of TAPO integration in HACS
after a restart of HA

Expected behavior
Immediate availability of entity "Cell Motion Detection" after update and/or restart.
Better: do not dynamically create this entity but create it always/static.
If applicable, add error logs.
No response
Device Firmware
1.3.9 b231024 r62920n (4555)
Integration Version
5.4.10
Using stream component
No
Does camera work via official integrations?
Yes
Camera has all attributes filled out in developer tools
Yes
HASS Environment
HACS
Search for similar issues
Yes
Additional information
No response

Read faq. Try with onvif integration instead.

Hi Juraj,
I've installed the ONVIF integration and set up the C310 (where I had
the problem with). The 'Cell Motion Detection' sensor is working!
Before the above I removed the C310 from your TAPO integration (my C510
still remained) and afterwards I added the C310 again. Now I have a
mixture of both integrations for the C310 which seems to work. To be
more sure I disabled all entities except 'Cell Motion Detection' inside
ONVIF.
Do you see any problems withh that?
Best regards
Martin
------ Originalnachricht ------
Von "Juraj Nyíri" @.>
An "JurajNyiri/HomeAssistant-Tapo-Control"
@.>
Cc "MartinGoX" @.>; "Author"
@.>
Datum 20.11.2023 10:08:26
Betreff Re: [JurajNyiri/HomeAssistant-Tapo-Control] C310 - entity "Cell
Motion Detection" not available (Issue #468)

Read faq. Try with onvif integration instead.
—
Reply to this email directly, view it on GitHub
https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/issues/468#issuecomment-1818505080,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7TH3NYR5T7FEAWF6BTX5CDYFMMYVAVCNFSM6AAAAAA7SQ4MLKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJYGUYDKMBYGA.
You are receiving this because you authored the thread.Message ID:
@.***>

Glad to hear you got it working! You should have only 1 integration (this one) for the camera, otherwise you overload it unnecessarily.

Hi.
I think with "this one" you mean your integration. But this one doesn't
provide the cell motion entity any more - but the ONVIF integration.
That's the reason why I have both integrations in use but everything
disabled in ONVIF except cell motion. All other information I fetch from
yours integration.
Best regards
Martin
------ Originalnachricht ------
Von "Juraj Nyíri" @.>
An "JurajNyiri/HomeAssistant-Tapo-Control"
@.>
Cc "MartinGoX" @.>; "Author"
@.>
Datum 21.11.2023 14:04:23
Betreff Re: [JurajNyiri/HomeAssistant-Tapo-Control] C310 - entity "Cell
Motion Detection" not available (Issue #468)

Glad to hear you got it working! You should have only 1 integration
(this one) for the camera, otherwise you overload it unnecessarily.
—
Reply to this email directly, view it on GitHub
https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/issues/468#issuecomment-1820887931,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7TH3NZ3IGTGT4D34E57SM3YFSRFPAVCNFSM6AAAAAA7SQ4MLKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRQHA4DOOJTGE.
You are receiving this because you authored the thread.Message ID:
@.***>

Yes that should be ok.

C310 cell motion not appearing, neither on onvif nor on TCC
I'm on version 5.4.12 for Tapo: Cameras Control and Firmware 1.3.11 Build 231116.
Sorry don't know what other info to provide, just wanted to put it out here if anyone else is experiencing the same issue.


remove viz.json link in sharing options for the builder

hey, as we don't have a way to change thins using the api we should remove the viz.json link in sharing window
cc @xavijam @saleiva @CartoDB/design

@urbanphes did you review the share modal finally? Can you take care of this?

Oh, design changes? makes sense, because that step without options looks weird, so +1 to review it and then I'll take care of it.

By the moment for adapt it the actual design we remove the option viz.json and leave on 3 modules like a widget screen modal.
You can see the result here:

We're working on that screen to have the best solution.

@MariaCheca please, could you take care of it?, this is quite important for the release.

👍

@xavijam @javisantana the viz.json link is present in both CARTO.js and Mobile SDK sharing options, does that mean we should also remove the Mobile from that list?

wait, mobile sdk would dissapear as well. Then I think we need to rethinkg the window a bit

@urbanphes please take care!

This is a wonderful opportunity for moving it to the sidebar with the other sharing settings as we talked about @urbanphes

@saleiva are you agree with @arianaescobar says?
Perhaps is the moment to think on that and do it.

(He said in the office that he agrees)

@xavijam and @MariaCheca we will working on this (design).

thanks @urbanphes! keep us updated :)

Think that at some point in the following months the viz.json will be there again so please, "look to the future"

Will do, boss @javisantana :P

Oks @javisantana we will take into account

How is it going in the design laboratory mates?

We aaaalmost got it.

Just a comment for when we do this change: We should mark the textboxes as readonly (they are not right now, and you can write on top of them).

\o/


build: move @mapquest/team to optionalDependencies

Moving internal tooling dependency to optionalDependencies to prevent installation failures for public users while maintaining internal development workflows.
Jira ticket number: N/A - Public GitHub contribution
Does this PR introduce a breaking change? No
Are all of the original requirements satisfied in this PR? Yes
What is the current behavior?
Currently, attempting to install iso-3166 from GitHub fails because npm/yarn try to fetch the @mapquest/team package from GitHub's package registry, which requires authentication. This prevents public users from being able to install and use the package.
Error message example:
npm error code E401
npm error 401 Unauthorized - GET<EMAIL_ADDRESS>- authentication token not provided

What is the new behavior?

Package can be installed by public users without authentication errors
Internal MapQuest development workflows remain unchanged
@mapquest/team package is now optional, allowing the installation to succeed even when the package cannot be accessed

How to test

Clone this PR's branch
Run yarn add . or npm install . in a clean directory
Verify the installation succeeds without authentication errors
For MapQuest team members: verify that eslint and jest configurations still work as expected when authenticated

Motivation and context
The package is MIT licensed and publicly available on GitHub, but the current dependency structure prevents public users from installing it directly. This change maintains all internal tooling while making the package more accessible to the open source community.
Checklist

[x] The title of this PR follows the conventional commit guidelines
[x] Acceptance criteria from the original issue has been satisfied
[x] I have performed a self-review of my code and the expected functionality
[x] Changes are minimal and focused on solving the installation issue
[x] No documentation changes needed as this is an internal configuration change
[x] The changes introduced can go live immediately
[ ] Product or Business stakeholders have performed acceptance testing

@igoforth Thank you for your contribution! 🎉


Apply Fixes to BetaHelper

Rizzo was not correctly working on Hotels after it was bumped to
the latest version of Rizzo.  The error was an unitialized constant
of PlacePresenter because Hotels lacks such a presenter.  This
insulates that condition and wraps the module with tests to prevent
further problems.


Could this be hypothetically used on a switch game?

I tried, just for fun, and encountered a number of errors. Obviously this is not a priority, but i would be interested to understand what work would need to be done to make this a possibility.

I just had a look and it looks like you attempted to fix an error on another switch game (https://github.com/mafaca/UtinyRipper/issues/250). The error I got was first a number of import warnings: https://pastebin.com/HRP3vVic, and then, on export, an error:
Game name: Pokemon Mystery Dungeon Demo
Engine version: ProjectVersion.txt inside the output folder says '2017.3.0f3', but i am unsure if this is accurate because of the export error.
Platform: Switch
Error message: Object reference not set to an instance of an object.
Stack trace:    at uTinyRipper.YAML.YAMLScalarNode.GetStringStyle(String value)
at uTinyRipper.YAML.YAMLScalarNode..ctor(String value)
at uTinyRipper.Classes.UnityConnectSettingss.UnityAdsSettings.ExportYAML(IExportContainer container)
at uTinyRipper.Classes.UnityConnectSettings.ExportYAMLRoot(IExportContainer container)
at uTinyRipper.Classes.Object.ExportYAMLDocument(IExportContainer container)
at uTinyRipper.Converters.YAMLAssetExporter.Export(IExportContainer container, Object asset, String path)
at uTinyRipper.Project.ManagerExportCollection.Export(ProjectAssetContainer container, String dirPath)
at uTinyRipper.Converters.ProjectExporter.Export(String path, GameCollection fileCollection, IEnumerable1 files, ExportOptions options)    at uTinyRipper.GameStructure.Export(String exportPath, Func2 filter)
at uTinyRipperGUI.MainWindow.ExportFiles(Object data)

Ripper works with files for any platform. It was just a common bug. Fixed in e762ace0ae8be1a2ed28af3432131fa86027d492


lat_mflike tests now failing

Probably the test yaml files are out of date from the latest updates.  Look into this.

Fixed with https://github.com/simonsobs/SOLikeT/commit/ac22bb2fefe3e527cb89475b8bffc0ee9a53856e


[WIP]: Add kafka ce extensions for partition and offset

Fixes #3072

Proposed Changes

Expose kafka partition and offset as new CE extensions

Release Note

Events coming from kafka components now have knativekafkaoffset and knativekafkapartition cloudevents extension attributes set

Docs

/test all

@matzew @pierDipi it looks like a lot of tests are failing because they don't expect the event to have the two new extensions I've added. Since the issue doesn't specify that this needs to be an CE extension, I'm wondering - should I switch my implementation to just set a header (and not a CE extension)?
I personally think the CE extension approach is better since it will let users write filters for different conditions if they want to on their triggers. However, I'd rather check first before I fix all the tests :)

Also we can ask the author of the issue to give us feedback as the exit criteria on the issue may be ambiguous as we're using binary content mode to send events over HTTP, so CE attributes are headers

The incoming HTTP request contains the offset and partition information.

@Cali0707 the spec says this https://github.com/knative/specs/blob/main/specs/eventing/data-plane.md#event-acknowledgement-and-delivery-retry:

In general, senders MAY add or update other CloudEvent attributes on each delivery attempt; see observability for an example case.

so tests should not fail when attributes are added

I think the issue is the tests are expecting a specific cloud event currently, which we aren't matching?
For example:
     topology.go:179: unexpected event routing behaviour (-want, +got) =   []event.Event{
          	{
          		Mode: "",
          		Attributes: event.ContextAttributes{
          			... // 1 ignored and 7 identical fields
          			DataContentEncoding: "",
          			DataContentType:     "text/json",
          			Extensions: event.Extensions{
          				... // 4 identical entries
          				"extime":                "2020-03-21T12:34:56.78Z",
          				"exurl":                 "http://example.com/source",
        + 				"knativekafkaoffset":    "0",
        + 				"knativekafkapartition": "0",
          			},
          		},
          		TransportExtensions: nil,
          		Data:                `"hello"`,
          	},
          }

Should I be fixing these @pierDipi ?

well:

        + 				"knativekafkaoffset":    "0",
        + 				"knativekafkapartition": "0",

when we add those to each request, I guess we either need to check they are there, or ignore them (being more lenient on extra headers, which may have a downside)

/test all

/test all

/test reconciler-tests

This should be ready for review now
/cc @matzew @Leo6Leo

/retest-required

/test unit-tests

/cc @pierDipi
Do you think we can get this into the release?

/retest

@pierDipi do you think this needs a corresponding docs update?

/retest

/retest

/cc @pierDipi @Leo6Leo
could I get an LGTM again after fixing the build issue?

/retest

/lgtm

/retest-required

/retest


Feedback

This project is really great, the features are interesting and there are some things that make me really like it, namely: 1. the transaction is fast 2. Elegant and easy to use 3. the user can understand the menu perfectly 4. There are no defects in the design 5. the product runs according to what the user expects always success and hopefully it can be a promising project when mainnet arrives.
0x76B27449c3F7698597c4a22Fa9cc19747B3abe89

wow


Improvements for 3rd party services.

When only using 3rd party services, there are few things that could be improved. e.g.:

Not showing the Forget Password Button
Not showing the Login / Register Buttons

This sounds like a bug, could you check this @maz-dev ? :dancer:

I'm not sure we still have this issue, closing for now.

I am still having this issue. Ideally, I would be able to limit my users to only logging in with Pinterest (or any third party), instead of also giving the e-mail/password etc options.

If you eliminate the accounts-password package you should only see the other 3rd party login services.
However I can still see the Forgot your password? button.

Maybe is because here,  showForgotPasswordLink() doesn't check hasPasswordService() :
// LoginForm.jsx
...
  showForgotPasswordLink() {
    return !this.state.user
      && this.state.formState == STATES.SIGN_IN
      && _.contains(
        ["USERNAME_AND_EMAIL", "USERNAME_AND_OPTIONAL_EMAIL", "EMAIL_ONLY"],
        passwordSignupFields());
  }
...
...
    if (this.showForgotPasswordLink()) {
      loginButtons.push({
        id: 'switchToPasswordReset',
        label: T9n.get('forgotPassword'),
        type: 'link',
        href: resetPasswordPath,
        onClick: this.switchToPasswordReset.bind(this)
      });
    }
...


support Oracle as cache_store.

Is your feature request related to a problem? Please describe.
Since our demo, GitRec is hosted by Oracle Cloud with Oracle Cloud Free Tier, their free cloud database could be used as data_store.
Describe the solution you'd like
support Oracle as cache_store.
Describe alternatives you've considered
Use self-managed Redis.
Additional context

Add gvenzl/oracle-xe in docker-compose.yml to setup develop environment.
Add Oracle SQL dialect to sql.go.
Add tests in sql_test.go
Add Oracle database in build_test.yml.

Oracle database won't be supported since there is no direct upsert.


chore: secure github actions using hash instead of versions

Issue #, if available:
Description of changes:
Replace all explicit versions with hashes to pin to a specific version.
Checklist

[x] Meet tenets criteria
[ ] Update tests
[ ] Update docs
[x] PR title follows conventional commit semantics

Breaking change checklist

RFC issue #:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report
Patch and project coverage have no change.

Comparison is base (4c42359) 79.19% compared to head (b05531e) 79.19%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff            @@
##               main    #1232   +/-   ##
=========================================
  Coverage     79.19%   79.19%
  Complexity      639      639
=========================================
  Files            73       73
  Lines          2360     2360
  Branches        258      258
=========================================
  Hits           1869     1869
  Misses          410      410
  Partials         81       81

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@jeromevdl I think we should merge this - wdyt?

agree!

except that build fails without clear reason why...

except that build fails without clear reason why...

It was because of the docs.yaml deleted by @kozub, the merge didn't work well... I've deleted it.


Update README.md

PR Checklist:

[ ] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is on refer on the language README.md file
[ ] My addition does not have a spelling problem
[ ] My submission has a proper and user-friendly description of the algorithm
[ ] My submission has the time complexity of the algorithm
[ ] My submission has sample input-output of the program (NOT FOR PYTHON)

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] New algorithm
[ ] Optimization in previous algorithms
[ ] Code style update
[ ] Refactor
[x] Documentation
[ ] Other, please describe:

Briefly describe the changes in this PR

Other information:

please review and approve this.

@Arsenic-ATG i have updated the readme here.

you don't need to create another PR, it would only make things unnecessarily more complicated
your previous PR(#1100) is linked to (patch-2 branch of your fork)[https://github.com/RK-Shandilya/DSA/tree/patch-2], means updating it would automatically update that PR.


Pagesize attribute not working with Asynchronous http get request

Description of the Issue
When I use asynchronous request to Flickr, the pagination container produces the complete list irrespective of the pageSize attribute
To Reproduce
https://codepen.io/bombeyr/pen/Jjbvdjv
Expected behavior
When I set pageSize to 12, I need the pagination container to contain a maximum of 12 items
Versions:

Pagination: [e.g. 2.1.5]
jQuery [e.g. 1.8.3]
Browser [e.g. Chrome]

Additional context
Add any other context about the problem here.

Pagination will not process the data items of the asynchronous request, what it does is pass all the data returned from the request to the callback function


LPC17xx: System Controller

The gdb command to flash a bootloader onto an SJOne using a jtag device:
gdb-multiarch -ex "target remote :3333" build/bootloader/lpc17xx/firmware.elf -ex "set remotetimeout 5" -ex "monitor flash erase_address 0 0x10000" -ex "monitor flash write_bank 0 build/bootloader/lpc17xx/firmware.bin"

To run OpenOCD (debugging tool that gdb connects to) run the following:
make openocd PLATFORM=lpc17xx


Client.ShippingProducts.Get() is missing the returns parameter

Hi,
I'm using the ShippingProducts Api to receive the available shipping methods between 2 countries.
Client.ShippingProducts.Get("[FROMCOUNTRY]", "[TOCOUNTRY]")
SendCloud also supports the "Returns" (boolean) parameter to receive only shipping methods for return labels from any country to our warehouse.
Is it possible to provide this parameter in your library?
Many thanks

Hi,
It's already possible by using the functionalities param.
Example:
            string fromCountry = "FR";
            string toCountry = "NL";
            Dictionary<string, string> functionalities = new Dictionary<string, string>
            {
                { "returns" , "true" }
            };
            var results = await Client.ShippingProducts.Get(fromCountry, toCountry, functionalities);

Great thanks, i'll try


Error from auth.py after completing the localhost:8080 callback

When I run:
sudo python auth.py
and then successfully complete all of the browser screens, the final redirect to localhost:8080 results in an error from auth.py:
If a window doesn't pop up in the next few seconds, or if
this machine doesn't have an accesible web browser, copy and paste
https://login.live.com/oauth20_authorize.srf?client_id=f41aa9e8-8e6c-4618-a5b5-87bf12c16d7e&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=wl.signin+wl.offline_access+onedrive.readwrite
 into your browser.
<IP_ADDRESS> - - [04/Apr/2023 16:44:22] "GET /?code=M.R3_BL2.2.d3f4ad5b-dfd0-7e51-3721-e66d4100289d HTTP/1.1" 200 -
Traceback (most recent call last):
  File "/home/trhaynes/pi-DriveUp/auth.py", line 44, in <module>
    client.auth_provider.authenticate(code, redirect_uri, client_secret)
  File "/usr/local/lib/python3.9/dist-packages/onedrivesdk/auth_provider.py", line 200, in authenticate
    response = self._http_provider.send(method="POST",
  File "/usr/local/lib/python3.9/dist-packages/onedrivesdk/http_provider.py", line 71, in send
    custom_response = HttpResponse(response.status_code, response.headers, response.text)
  File "/usr/local/lib/python3.9/dist-packages/onedrivesdk/http_response.py", line 61, in __init__
    raise Exception(str(message["error"]))
Exception: invalid_client

I note that there is no client information in the localhost:8080 redirect, and I have been very careful to paste in the client ID when asked for it:

Do you have any advice?
Thank you

sadly the underlying sdk i use for onedrive is dead
this project isn't really maintained anymore so there won't be any future updates but you can always zip up what matters to you


moving tabs causes files to crash

Description
when you open multiple tabs & if you try to drag one of the tags to + position (new tabs)  files crashes.
Steps To Reproduce
1.open files
2.open 2 tabs
3.drag one of them to new tab icon
Expected behavior
program crashes
Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22000.613
Windows Version
Edition	Windows 11 Pro Version	21H2 Installed on	12/10/2021 OS build	22000.613 Experience	Windows Feature Experience Pack 1000.22000.613.0
Relevant Assets/Logs
debug_fulltrust.log

This issue is resolved in the preview version of Files.


Machine test-aws-ubuntu1804-armv8-1 fails testSCCMLTests1_openj9_1 with openjdk11 Aarch64

Machine test-aws-ubuntu1804-armv8-1 fails testSCCMLTests1_openj9_1 Test 26 for nightly openjdk11 Aarch64 with timeout error, https://ci.adoptopenjdk.net/job/Test_openjdk11_j9_sanity.functional_aarch64_linux/1.
After testing with other machines (test-packet-ubuntu1604-armv8-2, test-aws-rhel76-armv8-2, test-aws-rhel76-armv8-4, test-packet-ubuntu1604-armv8-1), they all passed this test, with links https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/4002 - 4005, only the same machine as nightly build (test-aws-ubuntu1804-armv8-1) still hangs at testSCCMLTests1_openj9_1 Test 26 (I manually cancelled after hanging for 1 hour) https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/4007/. Thanks.
Related issue: eclipse/openj9#10741
Failure Output:
21:24:09  Testing: Test 26: CMVC 168131 : Create a non persistent cache
21:24:09  Test start time: 2020/09/29 01:24:08 Coordinated Universal Time
21:24:09  Running command: "/home/jenkins/workspace/Test_openjdk11_j9_sanity.functional_aarch64_linux/openjdkbinary/j2sdk-image/bin/java"  -Xcompressedrefs -Xjit -Xgcpolicy:gencon  -Xshareclasses:name=ShareClassesCMLTests,nonpersistent -version
21:24:09  Time spent starting: 1 milliseconds
21:34:08  ***[TEST INFO 2020/09/29 01:34:08] ProcessKiller detected a timeout after 600000 milliseconds!***
21:34:08  INFO: getUnixPID() has failed indicating this is not a UNIX System.'Debug on timeout' is currently only supported on Linux.
21:34:08
21:34:08
Cancelling nested steps due to timeout
06:34:24  Sending interrupt signal to process
06:34:26  Time spent executing: 33016381 milliseconds
06:34:26  Test result: FAILED

Recent openjdk11 Aarch64 sanity.functional nightly passed on another machine "test-aws-rhel76-armv8-4", https://ci.adoptopenjdk.net/view/all/job/Test_openjdk11_j9_sanity.functional_aarch64_linux/2/.

FYI https://openj9.slack.com/archives/C8312LCV9/p1602551615048900

there’s a pthread_cond_signal bug affecting glibc 2.27.  Worth being aware of this if unexplained deadlocks are occurring: https://sourceware.org/bugzilla/show_bug.cgi?id=25847

Happened again on Windows:
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_x86-64_windows_xl/10/console
23:06:24  Test start time: 2020/11/12 23:06:24 Coordinated Universal Time
23:06:24  Running command: "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_xl/openjdkbinary/j2sdk-image\\bin\\java"   -Xdump:system+heap+snap+jit:none -cp "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_xl/openjdk-tests///..//jvmtest\functional\cmdline_options_testresources\cmdlinetestresources.jar" VMBench.GPTests.GPTest abort
23:06:24  Time spent starting: 12 milliseconds
23:06:24  Time spent executing: 394 milliseconds
23:06:24  Test result: PASSED
23:06:24  Output from test:
23:06:24   [OUT] Invoking abort!
23:06:24   [ERR] JVMDUMP039I Processing dump event "abort", detail "" at 2020/11/12 23:06:24 - please wait.
23:06:24   [ERR] JVMDUMP032I JVM requested Java dump using 'C:\Users\jenkins\workspace\Test_openjdk8_j9_sanity.functional_x86-64_windows_xl\openjdk-tests\TKG\test_output_16052206202425\cmdLineTest_sigabrtHandlingTest_0\javacore.20201112.230624.9048.0001.txt' in response to an event
23:06:24   [ERR] JVMDUMP010I Java dump written to C:\Users\jenkins\workspace\Test_openjdk8_j9_sanity.functional_x86-64_windows_xl\openjdk-tests\TKG\test_output_16052206202425\cmdLineTest_sigabrtHandlingTest_0\javacore.20201112.230624.9048.0001.txt
23:06:24   [ERR] JVMDUMP013I Processed dump event "abort", detail "".
23:06:24  >> Success condition was found: [Output match: Processing dump event "abort"]
23:06:24  >> Required condition was found: [Output match: Processed dump event "abort"]
23:06:24
23:06:24  Testing: -XX:+HandleSIGABRT
23:06:25  Test start time: 2020/11/12 23:06:24 Coordinated Universal Time
23:06:25  Running command: "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_xl/openjdkbinary/j2sdk-image\\bin\\java"   -Xdump:system+heap+snap+jit:none -XX:+HandleSIGABRT -cp "C:/Users/jenkins/workspace/Test_openjdk8_j9_sanity.functional_x86-64_windows_xl/openjdk-tests///..//jvmtest\functional\cmdline_options_testresources\cmdlinetestresources.jar" VMBench.GPTests.GPTest abort
23:06:25  Time spent starting: 4 milliseconds
23:46:36  ***[TEST INFO 2020/11/12 23:46:25] ProcessKiller detected a timeout after 2400000 milliseconds!***
23:46:36  INFO: getUnixPID() has failed indicating this is not a UNIX System.'Debug on timeout' is currently only supported on Linux.
23:46:36  Output from test:
23:46:36   [OUT] Invoking abort!
23:46:36   [ERR] JVMDUMP039I Processing dump event "abort", detail "" at 2020/11/12 23:06:25 - please wait.
23:46:36   [ERR] JVMDUMP032I JVM requested Java dump using 'C:\Users\jenkins\workspace\Test_openjdk8_j9_sanity.functional_x86-64_windows_xl\openjdk-tests\TKG\test_output_16052206202425\cmdLineTest_sigabrtHandlingTest_0\javacore.20201112.230625.77392.0001.txt' in response to an event

and another: https://ci.adoptopenjdk.net/job/Test_openjdk11_j9_sanity.functional_aarch64_linux/35/console

I believe these are separate problems. Pls open an OpenJ9 issue for the hang in javacore creation in the -XX:+HandleSIGABRT test.

Created https://github.com/eclipse/openj9/issues/11198 for the hang on Windows.


Use of long int in Otter not compatible with igraph

There appears to be a problem with igraph correctly reading long and unsigned long ints as vertex IDs:
Steps to reproduce:
git clone git clone git@github.com:bsc-pm/bots.git
cd bots/
./configure && make
OMP_TOOL_LIBRARIES=/home/adam/git/otter/lib/libotter.so run/run-fib.sh -i 6
python3 -i -m otter trace/<trace name/<trace name>.otf2
When using OTF2_UNDEFINED_UINT64 in trace_structs.c:179:
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/adam/git/otter/src/python/otter/__main__.py", line 88, in <module>
    task_graph = tr.make_task_graph()
  File "/home/adam/git/otter/src/python/otter/trace.py", line 254, in make_task_graph
    return ig.Graph(**params)
  File "/home/adam/.local/lib/python3.8/site-packages/igraph/__init__.py", line 324, in __init__
    GraphBase.__init__(self, nverts, edges, directed)
ValueError: vertex IDs must be positive, got: -1

When using OTF2_UNDEFINED_UINT32 in trace_structs.c:179:
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/adam/git/otter/src/python/otter/__main__.py", line 88, in <module>
    task_graph = tr.make_task_graph()
  File "/home/adam/git/otter/src/python/otter/trace.py", line 254, in make_task_graph
    return ig.Graph(**params)
  File "/home/adam/.local/lib/python3.8/site-packages/igraph/__init__.py", line 324, in __init__
    GraphBase.__init__(self, nverts, edges, directed)
OverflowError: long integer too large for conversion to C int

Ideas to fix:

refactor c source to remove OTF2_UNDEFINED_UINT32/64 as task IDs
have python replace these values with another placeholder

Another idea to fix:

have the riot initial task record itself as its own parent to remove the need for a dummy task ID.

It seems this is only an issue when trying to apply a task ID as a node ID in igraph. This is a bad idea generally anyway, igraph docs advise not to manually write node IDs.

Fixed in e4bace7


Task sorting in TaskBoard, to connect with firebase format.

Once the task board has been connected to Firebase, the sorting system will need to be readjusted to make sure it works with Firebase's formatting of dates, and name data.
Depends on #179

Depends on #180


cue get go renders time.Duration with invalid CUE

What version of CUE are you using (cue version)?

$ cue version
cue version v0.8.0

go version go1.22.1
      -buildmode exe
       -compiler gc
        -ldflags -extldflags -static
  DefaultGODEBUG httplaxcontentlength=1,httpmuxgo121=1,tls10server=1,tlsrsakex=1,tlsunsafeekm=1
     CGO_ENABLED 0
          GOARCH amd64
            GOOS linux
         GOAMD64 v1
             vcs git
    vcs.revision 7d757419377e66b0aa7bc7a6d68b6b6801214bd3
        vcs.time 2024-03-15T12:04:18Z
    vcs.modified false

Does this issue reproduce with the latest stable release?
Yes
What did you do?
Here's a txtar with a failing test, with what I believe to be the correct output.
# Test for go get issue with time.Duration returning invalid numerics.
#
# cue get go
exec cue get go --local ./...
cmp ./pkg1/file1_go_gen.cue ./pkg1/file1_go_gen.cue.golden

# Verify dependencies did not change
cmp go.mod go.mod.golden

-- go.mod --
module mod.test

go 1.21
-- go.mod.golden --
module mod.test

go 1.21
-- cue.mod/module.cue --
module: "mod.test"
-- pkg1/file1.go --
package pkg1

import "time"

const (
	Time1Second = time.Duration(time.Second)
)
-- pkg1/file1_go_gen.cue.golden --
// Code generated by cue get go. DO NOT EDIT.

//cue:generate cue get go mod.test/pkg1

package pkg1

import "time"

Time1Second: time.Duration & "1000000000ns"

What did you expect to see?
The time.#Duration to be properly referenced as time.Duration.
The duration represented as a valid string, not an invalid numeric.
Also the proper unit suffixed (ns).
What did you see instead?
A numeric for the time, and an invalid time.#Duration reference.
❯ diff pkg1/file1_go_gen.cue pkg1/file1_go_gen.cue.golden
9c9
< #Time1Second: time.#Duration &<PHONE_NUMBER>
---
> Time1Second: time.Duration & "1000000000ns"

Thank you for filing this issue. There is some logic that tries to parse the expression and turn it into a CUE value, but it's rather basic, and it clearly does not deal with duration values properly - as they are nanosecond integers on the Go side, but they need to be strings with a unit on the CUE side, as you point out.

Related precedent:

#1453
#648

A related question is: if one wishes to specify durations as strings (corresponding to CUE's time.Duration constraint), what would be a good way to describe that in the Go from which the CUE is generated? Ideally the Go code would have direct access to the Go time.Duration value.


Update index.md - apps built using electron section to include whatsapp

Added in whatsapp desktop as a reference for apps built using electron

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.


Improve doc gen plugin to support origin jar info data

Purpose

Improve auto generated documentation

Codecov Report

Merging #1343 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1343      +/-   ##
============================================
+ Coverage     62.68%   62.69%   +0.01%
  Complexity       37       37
============================================
  Files           624      624
  Lines         25686    25686
  Branches       4046     4046
============================================
+ Hits          16100    16104       +4
+ Misses         8276     8272       -4
  Partials       1310     1310

Impacted Files
Coverage Δ
Complexity Δ

...ut/stream/state/AbsentStreamPreStateProcessor.java
84.5% <0%> (-2.12%)
0% <0%> (ø)

...core/src/main/java/io/siddhi/core/table/Table.java
29.38% <0%> (+1.31%)
0% <0%> (ø)
:arrow_down:

...e/src/main/java/io/siddhi/core/util/Scheduler.java
84.07% <0%> (+1.91%)
0% <0%> (ø)
:arrow_down:

...java/io/siddhi/core/stream/input/InputHandler.java
80.64% <0%> (+3.22%)
0% <0%> (ø)
:arrow_down:

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 47cd8fb...ab8fa80. Read the comment docs.


模拟器崩溃

使用的版本是4.0.7，在模拟器上使用会报如下错误，如果解决或者如何能够catch到错误，不让app崩溃？

What arch of your simulator?

使用的雷电模拟器崩溃，夜神是ok的

Can you show the arch of the simulator by using the following command:
adb shell cat /proc/cpuinfo

https://stackoverflow.com/questions/6630386/how-to-find-arm-processor-version-on-android-device

雷电：

夜神：adb.exe: no devices/emulators found

I think it's the problem with the 雷电 simulator.
It's better to submit a ticket to agora support for further investigation, thanks.


fitness website [new project]

🛠 Issue (1796)

Closes #1796
Description
this websites landing page for fitness website that  will show all types of exercise based on the muscle group chosen ,and also shows youtube tutorial to user to correctly perform the excercise,it shows animation of the excercise suggested and will be a perfect companion to user.
Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] I have made this from my own
[x] I have taken help from some online resourses

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

@TusharKesarwani reuired changes done in script js please merge it

Do not make changes in the script.js file

done required changes @TusharKesarwani

@TusharKesarwani required changes done in script js please merge it

Do not make changes in the script.js file

please merge it @TusharKesarwani

@TusharKesarwani ihave done reuested changes in script js file please merge it


Add skeletal PPP wr3nd3.md

Codecov Report
Base: 72.15% // Head: 72.15% // No change to project coverage :thumbsup:

Coverage data is based on head (664ac45) compared to base (3259edf).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master      #28   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Infinite loop in JSON serialization

Checklist

[X] I am able to reproduce the bug with the latest version
[X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
[X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
[X] This issue contains only one bug.

Affected version
1.4.1
Steps to reproduce the bug
See https://github.com/orgs/primefaces/discussions/2076
issue reported on PrimeFaces forum with diagnosis and workaround.
Expected behavior
No infiniteloop
Actual behavior
No response
Additional information
No response

So I checked the mentioned code and uhm it works fine when I execute it inside the demo project...

Anyway I added a JsonIgnore for now, this should in fix the problem in any way

Fixed!


Unable to use xformers | No such operator xformers_flash::flash_fwd

The error message is RuntimeError: No such operator xformers_flash::flash_fwd - did you forget to build xformers with `python setup.py develop`? facing it when trying to generate an image. I also tried to build and install xformers using the cells in the Build and Install Xformers part, but I had no luck as well.
Hardware: Paperspace Free A4000
stable-diffusion-paperspace repo commit = ae57c5b137c71f8e179f1ed55bf3643e21ea1b58
stable-diffusion-webui repo commit = 2c1bb46c7ad5b4536f6587d327a03f0ff7811c5d

Xformers was compiled without a few features to make the binary smaller and compile time shorter. I have an update to the notebook with instructions on how to build full xformers.
I also built xformers full last night:
pip install https://raw.githubusercontent.com/Cyberes/xformers-compiled/main/a4000/full/xformers-0.0.16%2B6f3c20f.d20230130-cp39-cp39-linux_x86_64.whl

@Cyberes just tried to generate an image using text2image and got this error

by the way installing xformers full via
pip install https://raw.githubusercontent.com/Cyberes/xformers-compiled/main/a4000/full/xformers-0.0.16%2B6f3c20f.d20230130-cp39-cp39-linux_x86_64.whl fixed the issue

Cool, glad that worked. I guess I should stick with xformers full.


#2605 #2670

@jamesnetherton this should pass and I prefer to merge like this even though we know that the EndpointStrategy.registerEndpoint() is not called for the endpoints created manually.


Stm32f103c8t6 DMA

How to use dma.h in Arduino using stm32f103c8t6 plz provide some examples thnx in advance.

I've never used Arduino (even more stm32-based). And for a long time did not touch the F103. Sorry, can't help.


Introduce a demo instance of Backstage

At the moment I deployed it manually for testing purposes.

Ouch, I wanted to wait for @riprasad , but, well, we will fix on top in case of issues 🙂


Get ssl certificate

I am unable to get ssl certificate. I went through all the documentation and response object I couldn't figure out a way to get SSL certificate.
I would like to inspect the details of SSL certificate.
Is it even possible with current puppeteer API?
No luck on stackoverflow:
https://stackoverflow.com/questions/46108756/how-to-access-ssl-certificate-content-using-chrome-puppeteer

@abhishekdubey1 so far there's no way to get the certificate with the puppeteer API.
Would DER-encoded certificate work for you?

DER encoded certificate would do. I can decode it. Thanks @aslushnikov

I too would like to do this :)

In Devtools Protocol you can get this inside the response object with securityDetails. You get something like
"securityDetails": {
  "protocol": "TLS 1.2",
  "keyExchange": "ECDHE_RSA",
  "keyExchangeGroup": "X25519",
  "cipher": "AES_128_GCM",
  "certificateId": 0,
  "subjectName": "www.domain.extension",
  "sanList": [
    "www.domain.extension",
    "*.anotherdomain.extension"
  ],
  "issuer": "COMODO RSA Domain Validation Secure Server CA",
  "validFrom":<PHONE_NUMBER>,
  "validTo":<PHONE_NUMBER>,

do you mean this @abhishekdubey1 ?

There is a PR for this: https://github.com/GoogleChrome/puppeteer/pull/1880

As of puppeteer v1.7.0, a workaround would be to use raw devtools protocol:
const session = await page.target().createCDPSession();
await session.send('Network.enable');
const cert = await session.send('Network.getCertificate', {origin: 'https://example.com'});
console.log(cert);

@aslushnikov, is it possible to get a whole certinfo chain?

It would be good to get complete objecy, with cipher, keyExchange ...

Is there a way to get certificate for all servers involved in a redirect chain? Network.getCertificate seems to be working only for the final response.


Keycloak 26.0.0

What this PR does / why we need it:
Add support for Keycloak 26.0.0
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #1160
Special notes for your reviewer:
PR Readiness Checklist:
Complete these before marking the PR as ready to review:

[x] the CHANGELOG.md release notes have been updated to reflect any significant (and particularly user-facing) changes introduced by this PR

I just tested this branch and it worked for me.
However, I didn't test any KC26 specific configuration.

I also think we can drop the support for KC 18.x with the upgrade to KC26.

Tested and this works for us as well. There was one bug we noticed though caused by this change in Keycloak 26 https://www.keycloak.org/docs/latest/release_notes/index.html#identity-providers-no-longer-available-from-the-realm-representation. The realm representation no longer contains identity provider mappers and so keycloak-config-cli tries to recreate them even if they already exist

I spent some time on this today but need to do other stuff now. I needed to adjust several other things as well (IdentityProviderMappers handling), see the latest commits in my branch.
Almost there:

I had a look at the branch of @thomasdarimont. Several tests are failing because Keycloak added constraints in Keycloak 26 when deleting an authentication flow: E.g. whena client overrides the default browser flow with a "custom flow" one can not just delete the "custom flow" later. So as soon as we import a config file with the "custom flow" defined, the strategy now is to first delete the "custom flow" and readd it. But this leads to error in Keycloak. I think we have to find a solution for that.

Thanks @thomasdarimont for help. Also it seems after https://github.com/keycloak/keycloak/commit/c4005d29f07d10eeda580d804a48fdfc9441f074 client-common-sync from https://github.com/keycloak/keycloak-client/ need to be update. They added the new field in RealmRepresentation but not synced the keycloak-client repo.

Also keycloak 26.0.4 released.

@ma1uta keycloak-client 26.0.2 has been released that matches keycloak 26.0.4.

All pre-25 versions failed only with:
[ERROR] Failures:
[ERROR]   ImportIdentityProvidersIT.shouldCreateOidcIdentityProvider:274
Expected: is "example-client-secret"
     but: was "**********"
[ERROR]   ImportIdentityProvidersIT.shouldUpdateOidcIdentityProvider:323
Expected: is "example-client-secret"
     but: was "**********"
[ERROR]   ImportIdentityProvidersIT.shouldUpdateOidcIdentityProviderWithDeleteAllMappers:628
Expected: is "example-client-secret"
     but: was "**********"
[ERROR]   ImportIdentityProvidersIT.shouldUpdateOidcIdentityProviderWithMapper:372
Expected: is "example-client-secret"
     but: was "**********"
[ERROR]   ImportIdentityProvidersIT.shouldUpdateOidcIdentityProviderWithReplacedMapper:564
Expected: is "example-client-secret"
     but: was "**********"
[ERROR]   ImportIdentityProvidersIT.shouldUpdateOidcIdentityProviderWithUpdatedMapper:436
Expected: is "example-client-secret"
     but: was "**********"
[ERROR]   ImportIdentityProvidersIT.shouldUpdateOidcIdentityProviderWithUpdatedMapperWithPseudoId:500
Expected: is "example-client-secret"
     but: was "**********"

What is the eta for this do you need helping with testing / fix code ?

Keycloak 26.0.5 was released

Identity Providers no longer available from the realm representation
As part of the improvements around the scalability of realms and organizations when they have many identity providers, the realm representation no longer holds the list of identity providers. However, they are still available from the realm representation when exporting a realm.
To obtain the query the identity providers in a realm, prefer using the /realms/{realm}/identity-provider/instances endpoint. This endpoint supports filters and pagination.
so next error
Cannot create realm '************: HTTP 400 Bad Request{"errorMessage":"Identity provider mapper name must be unique per identity provider"}

i am testing the fix cli but get this error Identity provider mapper name must be unique per identity provider it was working with older version?

Failed tests with HTTP 500 Internal Server Error because keycloak 26 throw exception Cannot remove authentication flow, it is currently in use and linked with https://github.com/keycloak/keycloak/pull/31875. Still investigating.

Why keycloak should allow to delete and recreate a flow that is currently in use in a client?

There are two ways:

don't allow delete flow which is used
allow delete flow and replace with a standard one

But in previous versions of keycloak these tests succeed, need to find out what was changed in keycloak.

[org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-2) Uncaught server error: org.keycloak.models.ModelException: Cannot remove authentication flow, it is currently in use
at org.keycloak.models.jpa.RealmAdapter.removeAuthenticationFlow(RealmAdapter.java:1460)
at org.keycloak.models.cache.infinispan.RealmAdapter.removeAuthenticationFlow(RealmAdapter.java:1349)
at org.keycloak.models.utils.KeycloakModelUtils.deepDeleteAuthenticationFlow(KeycloakModelUtils.java:967)
at org.keycloak.services.resources.admin.AuthenticationManagementResource.deleteFlow(AuthenticationManagementResource.java:370)
at org.keycloak.services.resources.admin.AuthenticationManagementResource$quarkusrestinvoker$deleteFlow_c7a3b2245d7e636a2fcab9cafd6ed82fb5d1f875.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:635)
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)

The specific code is here in AuthenticationFlowsImportService#recreateTopLevelFlow
To update a flow the flow will be deleted and recreated. Before the deletion all references to this flow will be disabled/unasigned and afterwards enabled/asign again. This workaround is not done on clients. I think the check on client flows was not working < Keycloak 26. And I don't know why there is a difference in updating build-in flows and other flows. Build-in flows will be updated without this workaround.
   /**
     * Deletes the top-level flow and all its executions and recreates them.
     */
    private void recreateTopLevelFlow(
            RealmImport realmImport,
            AuthenticationFlowRepresentation topLevelFlowToImport,
            AuthenticationFlowRepresentation existingAuthenticationFlow
    ) {
        AuthenticationFlowRepresentation patchedAuthenticationFlow = CloneUtil.patch(
                existingAuthenticationFlow, topLevelFlowToImport, "id"
        );

        if (existingAuthenticationFlow.isBuiltIn()) {
            throw new InvalidImportException(String.format(
                    "Unable to recreate flow '%s' in realm '%s': Deletion or creation of built-in flows is not possible",
                    patchedAuthenticationFlow.getAlias(), realmImport.getRealm()
            ));
        }

        UsedAuthenticationFlowWorkaroundFactory.UsedAuthenticationFlowWorkaround workaround = workaroundFactory.buildFor(realmImport);
        workaround.disableTopLevelFlowIfNeeded(topLevelFlowToImport.getAlias());

        authenticatorConfigImportService.deleteAuthenticationConfigs(realmImport, patchedAuthenticationFlow);
        authenticationFlowRepository.delete(realmImport.getRealm(), patchedAuthenticationFlow.getId());
        authenticationFlowRepository.createTopLevel(realmImport.getRealm(), patchedAuthenticationFlow);

        AuthenticationFlowRepresentation createdTopLevelFlow = authenticationFlowRepository.getByAlias(
                realmImport.getRealm(), topLevelFlowToImport.getAlias()
        );
        executionFlowsImportService.createExecutionsAndExecutionFlows(realmImport, topLevelFlowToImport, createdTopLevelFlow);

        workaround.resetFlowIfNeeded();
    }

@bohmber I found the original issue: https://github.com/keycloak/keycloak/issues/30707. So, I replace all overrides with temporary flow before deletion and restore after creation.

@ma1uta The last failing test is something similar https://github.com/adorsys/keycloak-config-cli/pull/1162/commits/8f2f5dc5d3b65c06c660a3fb7b18265df605e8a2 in the file 44_update_realm_remove_authz_policy_realm-management.json  the realm-management client has authorizationServicesEnabled with an empty resources section in authorizationSettings. The authorizationSettings will be deleted during update of the client. Later the code tries to update the deleted authorizationSettings. That is the jakarta.ws.rs.NotFoundException: HTTP 404 Not Found.

Keycloak create AuthorizationSettings in two cases:

create resource
bearer only and public client is false and authorizationServicesEnabled is true (https://github.com/keycloak/keycloak/blob/26.0.5/services/src/main/java/org/keycloak/services/resources/admin/ClientResource.java#L832) Also service account should be enabled (https://github.com/keycloak/keycloak/blob/26.0.5/services/src/main/java/org/keycloak/authorization/admin/ResourceServerService.java#L85)

@ma1uta good point. That was exactly the code I was searching for the behavior

found still issue with edge image
2024-11-21T13:17:54.804Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 >> "Host: keycloak-headless:8080[\r][\n]"
2024-11-21T13:17:54.804Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
2024-11-21T13:17:54.804Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.5.14 (Java/21.0.5)[\r][\n]"
2024-11-21T13:17:54.804Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 >> "[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "HTTP/1.1 404 Not Found[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "content-length: 30[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "Content-Type: application/json[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "Referrer-Policy: no-referrer[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "Strict-Transport-Security: max-age=31536000; includeSubDomains[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "X-Content-Type-Options: nosniff[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "X-Frame-Options: SAMEORIGIN[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "X-XSS-Protection: 1; mode=block[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "[\r][\n]"
2024-11-21T13:17:54.811Z DEBUG 1 --- [           main] org.apache.http.wire                     : http-outgoing-0 << "{"error":"HTTP 404 Not Found"}"
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << HTTP/1.1 404 Not Found
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << content-length: 30
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << Content-Type: application/json
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << Referrer-Policy: no-referrer
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << X-Content-Type-Options: nosniff
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << X-Frame-Options: SAMEORIGIN
2024-11-21T13:17:54.812Z DEBUG 1 --- [           main] org.apache.http.headers                  : http-outgoing-0 << X-XSS-Protection: 1; mode=block


Files app permanently froze after launching it a few times from cmd

Description
I am using the non-microsoft store version of Files App,
Installed it an hour ago.
All was working fine, a bit slow, but still working.
Until I tried going to directories from the CMD.
I read from a previous issue that there was a cmd command to use Files app
https://github.com/files-community/Files/pull/6558#issuecomment-947072067
Now the app is unresponsive and loads nothing except the default tags
Re-starting the app also does not fix the issue.

Steps To Reproduce

Have Files open
Try out the following cmd commands (don't know which is actually the faulty one)
2.1. files.exe
2.2. files.exe -Directory "..." (replace ... with a directory)
2.3. files.exe -select "..." (replace ... with a directory)
re-open files

Requirements
I expect one of the above commands to work, as I believe this was implemented from a previous issue.
I expect Files to load correctly.
Files Version
<IP_ADDRESS>
Windows Version
Windows 10 22H2 19045.4291
Log File
No log file available

Thanks for the feedback.

What happens if you close Files from the system tray and open normally from the Start menu > All apps.

What happens if you close Files from the system tray and open normally from the Start menu > All apps.

Nothing changes then, it remains in this broken state

It looks like InnerNavToolBar doesn’t know what the page is shown in the active shell page, and AddressToolbar looks like its ViewModel is not loaded because SidebarView.PaneHolder property is null. This seems sometimes to happen first TabBar item is not added and loaded before somewhere else starts to load.
As almost all function is in AddressToolBar, the icons such as Back, Forward and Up, but somehow Refresh icon is loaded because it references CommandManager in code-behind. This proves that DI is loaded correctly.

Is this still an issue in the preview version? https://files.community/download/
If it is, please upload the log file so we can investigate further.

Is this still an issue in 3.7.11?


GetAuthenticationStateAsync Question

Maybe i'm wrong, but it looks like that you call your authorization service
each time a AuthorizeView is displayed?
From your ApiAuthenticationStateProvider imlementation:
        public override async Task<AuthenticationState> GetAuthenticationStateAsync()
        {
            var savedToken = await _localStorage.GetItemAsync<string>("authToken");

            if (string.IsNullOrWhiteSpace(savedToken))
            {
                return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
            }

            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", savedToken);
            var userInfo = await _httpClient.GetJsonAsync<UserModel>("api/accounts/user");
            var identity = userInfo.IsAuthenticated ? new ClaimsIdentity(ParseClaimsFromJwt(savedToken), "jwt") : new ClaimsIdentity();

            return new AuthenticationState(new ClaimsPrincipal(identity));
        }

There is no check if the user is currently authorized, something like (pseudo code):
    public override async Task<AuthenticationState> GetAuthenticationStateAsync()
    {
        ClaimsIdentity identity;

        if(IsAuthenticating)
        {
            return null; // pending
        }
        else if(IsAuthenticated)
        {
            // parse claims from token
        }
        else
        {
            // return default identity
        }

        return await Task.FromResult(new AuthenticationState(new ClaimsPrincipal(identity)));
    }

Is there any reason for it? I think it brakes the jwt concept
Or in other words, handling token revokations in this way
is probably worse-rated than using sessions.

Alternative implementation without hammering the auth service:
    public class AuthStateProvider : AuthenticationStateProvider
    {
        private const string tokenKey = "authToken";

        internal readonly IStorage storage;

        public AuthStateProvider(IStorage storage)
        {
            this.storage = storage ?? throw new ArgumentNullException(nameof(storage));
        }

        public override async Task<AuthenticationState> GetAuthenticationStateAsync()
        {
            Console.WriteLine("Auth");

            var savedToken = await this.storage.GetItem<string>(tokenKey);
            return string.IsNullOrWhiteSpace(savedToken) ? await CreateAnomymousState() : await CreateAuthenticatedState(savedToken);
        }

        public async Task MarkUserAsAuthenticated(string token)
        {
            await this.storage.SetItem(tokenKey, token);
            base.NotifyAuthenticationStateChanged(CreateAuthenticatedState(token));
        }

        public async Task MarkUserAsLoggedOut()
        {
            await this.storage.RemoveItem(tokenKey);
            base.NotifyAuthenticationStateChanged(CreateAnomymousState());
        }

        private static async Task<AuthenticationState> CreateAuthenticatedState(string token)
        {
            var authenticatedUser = new ClaimsPrincipal(new ClaimsIdentity(ParseClaimsFromJwt(token), "jwt"));
            return await Task.FromResult(new AuthenticationState(authenticatedUser));
        }

        private static async Task<AuthenticationState> CreateAnomymousState()
        {
            var anonymousUser = new ClaimsPrincipal(new ClaimsIdentity());
            return await Task.FromResult(new AuthenticationState(anonymousUser));
        }

        private static IEnumerable<Claim> ParseClaimsFromJwt(string jwt)
        {
            var result = new List<Claim>();

            var payload = ParseBase64WithoutPadding(jwt.Split('.')[1]);
            var claims = JsonConvert.DeserializeObject<Dictionary<string, object>>(payload);

            claims.TryGetValue(ClaimTypes.Role, out var roles);

            if (roles != null)
            {
                if (roles.ToString().Trim().StartsWith("["))
                {
                    var parsedRoles = JsonConvert.DeserializeObject<string[]>(roles.ToString());

                    result.AddRange(parsedRoles.Select(parsedRole => new Claim(ClaimTypes.Role, parsedRole)));
                }
                else
                {
                    result.Add(new Claim(ClaimTypes.Role, roles.ToString()));
                }

                claims.Remove(ClaimTypes.Role);
            }

            result.AddRange(claims.Select(e => new Claim(e.Key, e.Value.ToString())));

            return result;
        }

        private static string ParseBase64WithoutPadding(string base64)
        {
            switch (base64.Length % 4)
            {
                case 2: base64 += "=="; break;
                case 3: base64 += "="; break;
            }

            return BitConverter.ToString(Convert.FromBase64String(base64));
        }
    }

You’re correct, the auth service is getting hit each time a AuthorizeView is displayed. The purpose of this code sample is to show policy based auth rather than best practice for token management.
I take your point that the code could definitely be improved but I’m not sure I would say it breaks the JWT concept. I have seen plenty of applications which do checks on the validity of a token before firing the main request.
Ultimately, I think an access token and refresh token approach is probably the best option. So access could be revoked in a more timely manner.

Right, i understand your point, but the drawback is high. An alternativ approach could be using nginx to handle the revocation list on a lower network level or to use a sync handled by a IHostedService background task.

The drawback is high for what?

Checking the authentication state against the backend each time the AuthorizeView is displayed.

Yes, as I said in my first reply, I don’t disagree the code could be improved.

Thank you, i just thought i missed an implementation detail. So i tried to verify this.
By the way, you have a great blog with nice tutorials. Keep up the great work. :)

Thank you for picking up on this bit of code. I’ll try and update the blog posts which reference it to reflect your suggested improvement. :)

@endeffects Sorry this has taken me so long but I've finally updated the article and the sample code to fix the issue you found.


Saroh 3000 auto tag partition key

Importing @saroh's branch
https://github.com/quickwit-oss/quickwit/pull/3218 for history

@saroh good to go. I made some minor modifications but they were for the most part additions motivated by another ticket rather than corrections.