chore: flow types channelEdit

PR Checklist

Please check all that apply to this PR using "x":

[x] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[x] I have checked that this PR does not introduce a breaking change
[] This PR introduces breaking changes and I have provided a detailed explanation below

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes)
[ ] Documentation changes
[x] Other - Please describe:

Enhancement - Flow types
Fixes
Issue Number: #2024
What is the current behavior?
Type of amount is string
What is the new behavior?
Type of amount is number
Other information

Thank you for the PR but amount is correctly listed as a string here.
Our Claim type is here
https://github.com/lbryio/lbry-redux/blob/master/flow-typed/Claim.js


fix: reduce max page to crawl on config

New use will run with current config to test out the repo.
With 1,000 max page to crawl, if there are traffic on this repo there will be unnecessary heavy load on your server.
So I change max page to crawl from 1,000 to 5.

thanks @pipech !


AlphaPicker with vertical direction is upside down

The vertical alpha picker has the 100% alpha point at the bottom, an 0% at the top, which is not a common convention, I needed to change this, I dont see a way to do it in the docs, Kindly update me on this, if its been added, or if there is a workaround to get this fixed,

Any update on this?


MNT: Re-render the feedstock

Hi! This is the friendly conda-forge-admin automated user.
I've re-rendered this feedstock with the latest version of conda-smithy (0.10.3.post.dev14) and noticed some changes.
If the changes look good, then please go ahead and merge this PR.
If you have any questions about the changes though, please feel free to ping the 'conda-forge/core' team (using the @ notation in a comment).
Remember, for any changes to the recipe you would normally need to increment the version or the build number of the package.
Since this is an infrastructural change, we don't actually need/want a new version to be uploaded to anaconda.org/conda-forge, so the version and build/number are left unchanged and the CI has been skipped.
Thanks!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


⚠ Turnos 24x7 has degraded performance

In c21f3f8, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 1234 ms

Resolved: Turnos 24x7 performance has improved in e49c63c.


feat(webhook): add gin, cors for webhook handling, introduce front-en…

…d, and update .gitignore
This commit incorporates gin and cors for handling webhooks, introduces a front-end interface for better user interaction, and updates the .gitignore file to ensure proper file exclusion. These additions and updates enhance the project's functionality, user experience, and repository cleanliness.

The content in parentheses is written incorrectly, and the introduction is too long.


_send_request mangles binary API responses

common.py's _send_request method does a thing at the end, return response.text if you didn't get a JSON response:
https://github.com/aruba/pyclearpass/blob/b48a554e62442ad329044b7c7cfd27fc51ea9240/pyclearpass/common.py#L110-L113
However...
https://github.com/aruba/pyclearpass/blob/b48a554e62442ad329044b7c7cfd27fc51ea9240/pyclearpass/api_certificateauthority.py#L75 new_certificate_by_cert_id_export exports certs.  Now, if you're getting a textualized version of a PEM, that's all fine, but if you're exporting PKCS12 (the only reasonable way to get a private key back out) that's a bytes-blob.  Getting back response.text is a stringified "error corrected" mangling of response.content, which is pretty much irrecoverable/irreversible.
    cert_id = 1234
    p12_pass = 'SomeJunkPassword1234'
    data = {}
    # Works fine, because text certs:
    #data['export_format'] = 'pem'
    # Fails, because binary:
    data['export_format'] = 'p12'
    data['export_password'] = p12_pass
    data['export_password2'] = p12_pass
    data['include_chain'] = True

    cert_export = ApiCertificateAuthority.new_certificate_by_cert_id_export(login, cert_id=str(cert_id), body=data)

I tried changing _send_request to return response.content and got back a usable PKCS12/.p12 "file", but that was just spot-testing one function call, I'm sure it would otherwise wreck the API by changing 'everything' to bytes.

When you made the change to response.content - did you validate that the returned .p12 data actually worked in the certificate manager? I ask because when I attempt in a lab what you have suggested, I cannot do anything with the byte data. I also tried directly on the APIExplorer with different outputs and it fails there as well. I am able to download the certificate from ClearPass Guest. Reading the documentation states 'The response is file data and does not contain JSON', which is fine, just usable text. Thx.

When you made the change to response.content - did you validate that the returned .p12 data actually worked in the certificate manager?

Yes.  I made a quick-and-dirty hack since I figured this was no quick fix in the API.  This stripped-down override form of _send_request works:
    p12_pass = 'THEPASSWORD'
    import requests  # pylint: disable=import-outside-toplevel
    response = requests.post(
        url=login.server + f'/certificate/{cert_id}/export',
        json=data,
        headers={"Authorization": "Bearer " + login.api_token},
        verify=True,
    )
    cert_export = response.content

    with open(f'/tmp/testfile-{p12_pass}.txt', 'wb') as f:
        f.write(cert_export)
        f.close()

Then, running openssl pkcs12 -noenc -in /tmp/testfile-THEPASSWORD.txt -passin pass:THEPASSWORD gets me back the key and certs (and I can run it through pkcs12.load_key_and_certificates(cert_export, p12_pass.encode()) on the python side.
Sticking with the API...
    cert_export = ApiCertificateAuthority.new_certificate_by_cert_id_export(login,
        cert_id=str(cert_id),
        body=data)
    with open(f'/tmp/testfile-{p12_pass}.txt', 'w') as f:
        f.write(cert_export)
        f.close()

... results (looking up the same user/cert) in a testfile that is 2x the size due to corruption, and that openssl can't deal with: 008CAD0202000000:error:0680007B:asn1 encoding routines:ASN1_get_object:header too long:crypto/asn1/asn1_lib.c:105:

Ok. I think the problem originates from the API not returning in JSON. Most content does, this seems to be an exception. I have an idea of an approach on how to fix properly and look for other similar issues but it will take some time and I will need to do a bit of testing before implementing the change.  Will take a while :). Good job you have suitable documented workaround. Thanks for the detail and the support so far.

From: gcoxmoz @.>
Sent: Tuesday, June 25, 2024 4:18:43 PM
To: aruba/pyclearpass @.>
Cc: jazzyj123 @.>; Assign @.>
Subject: Re: [aruba/pyclearpass] _send_request mangles binary API responses (Issue #2)
When you made the change to response.content - did you validate that the returned .p12 data actually worked in the certificate manager?
Yes. I made a quick-and-dirty hack since I figured this was no quick fix in the API. This stripped-down override form of _send_request works:
p12_pass = 'THEPASSWORD'
import requests  # pylint: disable=import-outside-toplevel
response = requests.post(
    url=login.server + f'/certificate/{cert_id}/export',
    json=data,
    headers={"Authorization": "Bearer " + login.api_token},
    verify=True,
)
cert_export = response.content

with open(f'/tmp/testfile-{p12_pass}.txt', 'wb') as f:
    f.write(cert_export)
    f.close()

Then, running openssl pkcs12 -noenc -in /tmp/testfile-THEPASSWORD.txt -passin pass:THEPASSWORD gets me back the key and certs (and I can run it through pkcs12.load_key_and_certificates(cert_export, p12_pass.encode()) on the python side.
Sticking with the API...
cert_export = ApiCertificateAuthority.new_certificate_by_cert_id_export(login,
    cert_id=str(cert_id),
    body=data)
with open(f'/tmp/testfile-{p12_pass}.txt', 'w') as f:
    f.write(cert_export)
    f.close()

... results (looking up the same user/cert) in a testfile that is 2x the size due to corruption, and that openssl can't deal with: 008CAD0202000000:error:0680007B:asn1 encoding routines:ASN1_get_object:header too long:crypto/asn1/asn1_lib.c:105:
—
Reply to this email directly, view it on GitHubhttps://github.com/aruba/pyclearpass/issues/2#issuecomment-2189240288, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASKTXT6PIXOA4TWT5WCPYEDZJGC5HAVCNFSM6AAAAABJZY736OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBZGI2DAMRYHA.
You are receiving this because you were assigned.Message ID: @.***>

The certificate method did not return a JSON object however was being converted into JSON and the response was corrupted which affected certain certificate types. I have updated the method to allow an optional 'accept' in the header in certain scenarios. When attempting to use this method, you will see the additional content-type available for use as an argument.

Nice fix, thank you for the work, and thanks for a version bump to pypi.


Remove F5 networking plugin

Integration tests running: https://beta-jenkins.mcc.schubergphilis.com/job/cosmic/job/0002-tracking-repo-branch-build/68
Merge together with: https://github.com/MissionCriticalCloud/cosmic-core/pull/127

go build

go build

@borisroman @bheuvel This breaks the Service Offering tab. Tested also when this PR was reverted and then it works again. Could you please investigate/fix before next release? Thx!

Never mind, clearing cache resolved it. find /data/git/$HOSTNAME/cosmic/cosmic-client -name \*.gz | xargs rm -f.

And the problem is back! :-(

Will fix it.


web UI refreshes to empty or 404

Wanted to tweak something in the UI after a log time running unattended.
After login the jobs pages flashes briefly and I just get an empty page.
A reload flashes the jobs page again and the empty page again.
Tried on current Chrome and Edge. All extensions disabled.
I am on commit 4ed92b246f9c159c24d458e9d0db42c5acd52bd7, Running fredy on a Raspberry Pie4 on a latest bookworm.
Tried to use the latest version of fredy, with updating node and nvm and yarn and stuff.
There, I only get a 404 when accessing the UI page.
No clue what went wrong where. As the original system with old commit was running just fine a couple of months ago.
Help appreciated!
Cheers!

Seems like, wrong repo?


Update newly stable components in 1.11

This updates the components now considered stable in 1.11.

FYI - building this with hugo locally fails, but it has nothing to do with my PR
Start building sites …
hugo v0.111.3+extended darwin/arm64 BuildDate=unknown
WARN 2023/05/03 15:33:27 .Path when the page is backed by a file is deprecated and will be removed in a future release. We plan to use Path for a canonical source path and you probably want to check the source is a file. To get the current behaviour, you can use a construct similar to the one below:

  {{ $path := "" }}
  {{ with .File }}
	{{ $path = .Path }}
  {{ else }}
	{{ $path = .Path }}
  {{ end }}

Re-run Hugo with the flag --panicOnWarning to get a better error message.
ERROR 2023/05/03 15:33:30 [en] REF_NOT_FOUND: Ref "pluggable-components-go": "/Users/bverst/src/dapr/docs/daprdocs/content/en/developing-applications/develop-components/pluggable-components/pluggable-components-sdks/_index.md:17:8": page not found
ERROR 2023/05/03 15:33:30 [en] REF_NOT_FOUND: Ref "pluggable-components-dotnet": "/Users/bverst/src/dapr/docs/daprdocs/content/en/developing-applications/develop-components/pluggable-components/pluggable-components-sdks/_index.md:18:10": page not found
Error: Error building site: logged 2 error(s)
Total in 6939 ms

@berndverst  -  To resolve the local Hugo Issue run
git submodule update --init --recursive
and to resolve the Azure static webapp issue pull the latest from the v1.11 docs branch.

Many of these overlap with earlier PRs from Roberto, so you will have to pull those changes first.

@berndverst can you pull in the build fixes from v1.11?


"Recomposing the Whole UI" - how to change just some of the components

In this documentation there is the following sentence:

Using business layers and some UI components: opting into our UI but replacing just a handful of components as needed.

I see no example specifically for this purpose.
The examples that were given here only explain how to create a complete new chatbot or insert it into a minimizable window.
Question 1:
What do I do when I want to implement one of the following examples but use all the functionality that the bot has right now and will have after updates in the future (Without the need of implementing new features of the webchat in my overwritten components):

Add an element to the left of the timestamp of a message:

move the suggested actions right after the message that contains the suggested actions, but before the timestamp:

Right now I feel like I have to copy the react - components of the webchat into my src - folder and overwrite them in my project. The problem with this is that some of the imported js - files are not even exposed to the index - file that is referenced in your package.json.

Examples:

ScrollToEndButton (included in BasicTranscript)
BasicSendBox (included in BasicWebChat)

This means that I am not allowed to use the specific files and I will have the fun task to check all webchat - updates if there have been made changes to the files that I will have in my own project - repository when i overwrite it.
Question 2:
Is it true, that I have to copy all the components of the webchat into my Repository when I want to make the changes that I have referenced in Question1?

@MatthiasGwiozda,

I see no example specifically for this purpose.

The sample is located in the link you provided, 06.recomposing-ui/d.plain-ui#customizing-web-chat-with-a-plain-html-ui. To access the sample, clone the repo and then navigate to this folder to run.
Regarding Question 1, functionality already exists that allows you to handle many use cases without having to make custom changes "under the hood" of Web Chat, including customizing the timestamp. The full list of samples can be found here
For changes to the timestamp, refer to sample 05.custom-components/a.timestamp-grouping for a demonstration and instruction. As you can see in the image below, in a dev instance of Web Chat, I added the message reaction buttons (from a different sample) to Web Chat. However, I moved the reaction buttons (normally placed beside the message) to exist in front of the timestamp. I also appended the watermark so I can easily identify which message is which when debugging activities.

As for moving the suggested actions buttons, unfortunately, that is presently not possible as suggested actions are tied to the send box and not to the transcript window. There is interest in decoupling suggested actions from the send box and if that interests you, then you should express your support for the idea in the issue here.
That being said, suggested actions are meant to be temporal by providing users possible routes or actions they could take. If you are wanting to provide customers options in an activity, then it is recommended you use a choice prompt (or similar).
Regarding Question 2, the typical process would be to fork the repo (with the fork representing the customized code you have implemented). As updates are made to Web Chat, you would pull those changes into a separate test branch to merge incoming updates into your code. After testing is complete and code has been successfully merged into yours, then you would merge the test branch into the main branch of your forked repo.

Thanks for the detailed answer.
I find that

Thanks for the detailed Answer.
We managed to position the reaction - buttons like in your example. It's hacky because we used negative margins to solve the problem. Additionaly Carousel - Attachments needs special treatment because the height is rendered different from the other messages. But it worked - Thanks for the hint.

The sample is located in the link you provided, 06.recomposing-ui/d.plain-ui#customizing-web-chat-with-a-plain-html-ui. To access the sample, clone the repo and then navigate to this folder to run.

I saw this example. But I disagree with the statement that we can "just replace a handful of components as needed". For me this means that I can use the UI and replace the logic only for one single react-element. But if i want to do this I need to fork the complete repository! Thats not quite what the sentence promises.
opting into our UI means for me it's update - save. Would be nice if someone could update the documentation like this:
Using business layers and some UI components: opting into our UI but replacing just a handful of components as needed (Its necessary to fork the repository and pull our updates into your custom - chatbot).
This would be a more detailed statement.

I saw this example. But I disagree with the statement that we can "just replace a handful of components as needed". For me this means that I can use the UI and replace the logic only for one single react-element. But if i want to do this I need to fork the complete repository! Thats not quite what the sentence promises.

Honestly, it is going to depend entirely on what you want to customize on the business logic layer as to whether or not forking the repo will be necessary. You will only know the answer to that after closer inspection of the code. It is possible to affect some business logic via middleware and custom direct line implementations. But, it will just depend on your needs.
As for updating the text per your suggestion, you are welcome to open a PR against the repo with your recommendation.

Well, I have the informations I need. Thanks for the feedback!

depend entirely on what you want to customize

to replace some of the UI - components I have to fork the repository. So in this context it is 100% save that we have to maintain our version of the webchat.
The sentence states:

opting into our UI but replacing just a handful of components


Adding implementation of stack using python in python section

Is your feature request related to a problem? Please describe.
Hey @rish-singhal  I would like to add implementation of stacks with two more programs which will work concept of stack (like infix to postfix and integer to binary conversion using stack) in Python language as  the solution for the same  is missing in the repo.
Do you want to work on it
I will implement this in python language
Kindly Assign me this under GSSOC 21

hey @rish-singhal   assign  me this issue if its available


Lightning fee return

Implements https://gist.github.com/callebtc/a6cc0bd2b6f70e081e478147c40fc578

Codecov Report
Base: 51.71% // Head: 51.13% // Decreases project coverage by -0.58% :warning:

Coverage data is based on head (d03cb51) compared to base (2d66aeb).
Patch coverage: 11.66% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
- Coverage   51.71%   51.13%   -0.58%
==========================================
  Files          34       34
  Lines        2599     2634      +35
==========================================
+ Hits         1344     1347       +3
- Misses       1255     1287      +32

Impacted Files
Coverage Δ

cashu/mint/router.py
0.00% <0.00%> (ø)

cashu/wallet/cli/cli.py
51.36% <0.00%> (-0.15%)
:arrow_down:

cashu/mint/ledger.py
30.60% <6.25%> (-2.47%)
:arrow_down:

cashu/wallet/wallet.py
82.77% <18.75%> (-1.74%)
:arrow_down:

cashu/core/base.py
96.66% <100.00%> (+0.04%)
:arrow_up:

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.


Fix warn in gradle config ex. replace main > mainClass

Description
Fix for the example gradle config, because JavaExec main = "xxx" is deprecated and should be replaced with mainClass Property.

Thanks!


Error while installing ASP.NET 5 RC1 Update 1 on Win Server 2012 R2

I am getting error while installing ASP.NET 5 RC1 Update 1 on Azure VM. It has following OS other related software
1-  Win Server 2012 R2 Datacenter
2-  VS Enterprise 2015 update 1 (installed last)
3 -  SQL Server 2014 SP1
Log files shows that it is not able to download DotNetVersionManager_x64 from https://go.microsoft.com/fwlink/?LinkId=708515. However, when I try from browser, it is downloading the msi. The error start as
[1124:12AC][2015-12-20T19:10:08]w343: Prompt for source of package: DotNetVersionManager_x64, payload: DotNetVersionManager_x64, path: C:\Users\WinS12R2Brij\Desktop\DotNetVersionManager-x64_rc1.msi
[1124:12AC][2015-12-20T19:10:08]i338: Acquiring package: DotNetVersionManager_x64, payload: DotNetVersionManager_x64, download from: https://go.microsoft.com/fwlink/?LinkId=708515
[1124:12AC][2015-12-20T19:10:08]e000: Error 0x80072f08: Failed to send request to URL: https://go.microsoft.com/fwlink/?LinkId=708515, trying to process HTTP status code anyway.
[1124:12AC][2015-12-20T19:10:08]e000: Error 0x80072f76: Failed attempt to download URL: 'https://go.microsoft.com/fwlink/?LinkId=708515' to: 'C:\Users\WINS12~1\AppData\Local\Temp\2{782d25e1-8377-4417-a491-3013700fe300}\DotNetVersionManager_x64'
Looks like somebody also logged similar issue but in different environment configuration. But after acknowledging the issue, no update for last 10 days.
https://connect.microsoft.com/VisualStudio/Feedback/Details/2112077
Log file attached.
I tried many ways but no luck. Is it fixed now or any other workaround please?
dd_ASPNET5__20151221181535.txt

Had the same problem today. I used the following workaround:
At the end of the log file there are messages with a link to "go.microsoft.com" like this:
[1270:0CC8][2015-12-21T18:15:47]e000: Error 0x80072f08: Failed to send request to URL: https://go.microsoft.com/fwlink/?LinkId=708515, trying to process HTTP status code anyway.

Go to the link (in this case: https://go.microsoft.com/fwlink/?LinkId=708515), download the file, install it, and rerun the "ASP.NET 5 RC1 Update 1" installer.
I had to repeat this step three times with three different files until the installer ran through fully, but this might be different for you. Hope this helps.

@KoesterD Thanks for the workaround. I also had to install three different files to get it worked. Thanks again. Hope ASP.NET team would publish this workaround and fix it soon.

Any ideas, @joeloff?

wow... had to go through same workaround... how is this not solved yet...

Hi Brij,
Try to disable Internet Explorer Enhanced security. It worked for me. You can do it via powershel. Take a look at this StackOverflow post:
http://stackoverflow.com/questions/9368305/disable-ie-security-on-windows-server-via-powershell/9368555#9368555
Best regards Martin

On Windows 7, I'v got the same error.I tried the fixes suggested above, all didn't work for me.
 (PS: The network agent is used to visit some website like google, facebook, twitter etc. in China. Hope this helps Chinese developers.)

On Windows 10 I've got the same error. What does help for me:
In Internet Explorer click on the "Tools" button on the menu and select Internet Options. Select the “Advanced” tab and all the way toward the bottom you will see the option for "warn if changing between secure and non secure mode". Uncheck the option.

I was also dealing with error 0x80072f76. The comment from oahrens to uncheck "warn if changing between secure and non secure mode" in Internet Options -> Advanced tab worked for me.
Thank you!!

The solution from @oahrens also worked for me. Thank you!

I have checked this in Windows Server 2008 R2 .
In Internet Explorer click on the "Tools" button on the menu and select Internet Options. Select the “Advanced” tab and Uncheck the option. "warn if changing between secure and non secure mode".

We moved away from using the FWLINKs that used HTTP and redirected to HTTPS in RC2. But RC1 is a shipped product so we can't change that.

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.


making the parent pom deployable to maven central

by adding the missing gpg/staging plugins

:+1:

:+1:


Help to reconfigure

I'm asking for help on behalf of Micka https://www.twitch.tv/micka_tm
At some point a few months ago, Micka changed his in-game name (team name prefix lol) and I think since then, the !map command stopped working. Since then, the command returns ⚠ I am not active.
Micka uses Nightbot. We're not exactly sure what's wrong. The plugin is active in OpenPlanet (as far as we can tell). I guess we're not sure if we're supposed to use the Ubisoft Connect username, or the TM in-game name. His IGN has a dot inside it now, wondering if that's a problem? Micka_TM.
I'm hoping you might have some way to debug this to figure out what's going on.

Hi !
Did Micka reconnect throught the plugin ? And if yes, did he update all the commands after re-connecting ? (you get a new token each time you (re)connect)

Aha! That was it, we assumed the key was still good, but I guess it no longer was. Micka did a reset of the plugin, re-authenticated, updated all the commands, and it's good to go now!
Thanks! :grin:

Awesome, love to see that !
Enjoy the plugin !


CompilerOptions should not include "/optimize" when "CompilerServiceBase.Debug" is "true".

Currently, the compiler options (see DirectCompilerServiceBase.Compile()) always include "/optimize". However, when the "CompilerServiceBase.Debug" property is "true", this should not be the case (or alternatively be triggered through an additional property, e.g. "CompilerServiceBase.Optimize").
The reason for this is that the line numbers included in "runtime" stack traces, e.g.
NullReferenceException: Object reference not set to an instance of an object.
    at CompiledRazorTemplates.Dynamic.RazorEngine_8b57f1088336400b8b8ee1f78a6d1746.Execute() in Whatever.cshtml:line 123

are otherwise wrong. In the above example, the 123 is not the actual line number from "Whatever.cshtml", because of optimization turned on.
(Probably likewise for the "Razor 4.0" code, but I haven't checked.)

Can you come up with a pr?

I'd like to, unfortunately I'm not able to come up with a proper PR (with tests and also for Razor) until at least mid/end of April (I'm on a prolonged vacation in a couple of weeks and too busy before that :-( )
If you want to wait for at least that long, then do. I'll see what I can do then.
Alas, the fix for the CodeDom based code is rather trivial.
Just replace this in DirectCompilerServiceBase.cs:
            var @params = new CompilerParameters
            {
                GenerateInMemory = false,
                GenerateExecutable = false,
                IncludeDebugInformation = Debug,
                TreatWarningsAsErrors = false,
                TempFiles = new TempFileCollection(GetTemporaryDirectory(), true),
                CompilerOptions =
                    string.Format("/target:library /optimize /define:RAZORENGINE {0}",
                        haveMscorlib ? "/nostdlib" : "")
            };

with something like this:
            var compilerOptions = new StringBuilder("/target:library /define:RAZORENGINE");
            if (haveMscorlib)
                compilerOptions.Append(" /nostdlib");
            if (!Debug)
                compilerOptions.Append(" /optimize");

            var @params = new CompilerParameters
            {
                GenerateInMemory = false,
                GenerateExecutable = false,
                IncludeDebugInformation = Debug,
                TreatWarningsAsErrors = false,
                TempFiles = new TempFileCollection(GetTemporaryDirectory(), true),
                CompilerOptions = compilerOptions.ToString()
            };

Dang, "(with tests and also for Razor)" should be "(with tests and also for Roslyn)"


Can this solution be used in a small medium enterprise?

i have yet to get this working for myself, but the concepts behind this are fairly standard fair it todays SME's.

I'll answer your question and maybe you'll answer mine.
I think that this solution could be used in a small or medium enterprise.  However, I would caution that Travis appears to have made this solution for use in a home based network so he can audit Internet of Thing devices connecting with that network size.  A Raspberry Pi is a limited device, especially when it comes to the network connection.  Which even though on the newest Pi is Gigabit, only functions at about 100-200 Megabit/s.
I believe the concepts used in this tool are innovative and could be used to secure a network, but whether this solution will scale gracefully, I fear it will not.

No.
I don't suggest you to use this project under an enterprise environment for now.

'sweetsecurity' service will cause network down, as I pointed out at here:

https://github.com/TravisFSmith/SweetSecurity/issues/45

the critical-stack-intel used in this project is not operational for now(2018-08-10), as I pointed out at here:

https://github.com/TravisFSmith/SweetSecurity/issues/48
think about these:
your enterprise's LAN will down every time you start up your IDS device (someone might get fired...)
your IDS device will send NO alert because there's no critical stack IP database been downloaded forever......(so why we have this device, haha)
if you still want to use this project in your company,

stop 'sweetsecurity' service
sudo systemctl stop sweetsecurity
sudo systemctl disable sweetsecurity

use otx Alien Vault instead of critical stack

The sweetsecurity service gave me a good scare. You almost certainly will not want the traffic to pass through the device by way of spoofing. Simply connecting a Pi to the office network and running setup.py sounds like good way to get fired real quick.
I would take this project as an idea pool and build a new solution tailored to your business environment. I would certainly recommend that you gain a good understanding of every component used in your configuration, don't be tempted into any shortcuts that could put your network at risk.
A more powerful board with dual gigabit would be more suited to the task of being a sensor device. It could listen to a SPAN port on one interface and take care of business on the other interface. Perhaps the Beagleboard X15 ($250) is a good fit.


Reading file ignores all other transforms

The way this transform is written, it ignores the data that it is passed and instead just reads the file directly.  This bypasses any other transforms that may occur on the content before it gets to this transform.
In my case, my HTML files all have a BOM at the beginning.  I have been spinning for hours, trying to figure out why using strip-bomify isn't working, and I tracked it down to this mechanism.  It IS working, but this transform is ignoring my previous transform!
An alternative approach would be to add BOM stripping right into this transform.  After reading the content: content = content.replace(/^\ufeff/g, '');
Thoughts?

PR: https://github.com/javoire/browserify-ng-html2js/pull/24

Interesting. Do you think it could be rewritten to use the data instead of reading the file directly?

Now that I look at it, it's kinda strange that the file is read even though the data stream should be done, and thus contain the file contents needed. Might have a look into this at some point

Yeah, if you look at other Browserify plugins, they all use the data so that they can be streamed together.  I've never seen one that reads the file.  The file is handed to the plugin for two main reasons: filtering (you don't want to templatize a *.JS file) and logging.  The intention is to process the data as it comes though.
In my case, I can run the strip-bomify plugin before this one to solve my problem... but only if it behaves this way.
I created the other PR because I didn't know if there was a reason it was doing it this way.  But if the answer is "this is just the way I built it", then yeah, I think it should use the data instead ;)

Yeah this is definitely just sloppiness on my part. And that's not acceptable and should be fixed :) I'll hopefully have time to look at this in a couple of days. Or if you feel motivated to fix it, feel free to do so.


Issue with converting generic type

Hello!
I'm facing an issue when I'm converting my attached API from Swagger 1.2 to 2.0. The original spec uses List[MapВ«string,objectВ»]. The produced spec includes reference to it ("$ref": "#/definitions/Map┬лstring,object┬╗"), but does not contain the definition itself.
The source and result are attached. Can this be fixed, please?
issue.zip

@zam17 Thank you for providing test sample.
You described two different problems:

Missing MapВ«string,objectВ» definition. It also missing in 1.2 spec, and converter can't add it.
How 1.2 spec was generated?
Did you use same framework for it?
Map«string,object» => Map┬лstring,object┬╗. I can't reproduce it, it looks like you converted Unicode into ASCII. Do you running it on Windows?

Hi,
1.2 spec I've just downloaded from the swagger that is exposed by our API vendor. I've downloaded it to provide to you, since it's in the internal network.
The second problem is just not a problem, I've copied the output from CMD (yes, I'm using Windows) and the quotes got broken, so do not worry about it.

@zam17 Simple solution would be to just add Map«string,object» manually and use {} as value.
I don't want to add workarounds for individual API specs and I didn't experience such problem with any other Swagger 1.2 spec.

Ok, will try to add it manually. I agree that certainly such workarounds do not belong to your solution. Thank you for fast response and help!

My pleasure. You can use http://editor.swagger.io/ for editing Swagger.


Refactor JWT Websocket Authorization

Purpose
Most web browsers are not supporting headers in their WebSocket implementation for security reasons.
The authorization via query parameters is the recommended alternative.
Approach
Add a JWTWebSocketAuthenticationBackend middleware for this use case.

@amitripshtos Also the coverage is fixed and now at 100%.


MM-T2374 System Messages

Summary

Ticket Link

https://automation-test-cases.vercel.app/test/MM-T2374
Related Pull Requests

Has server changes (please link here)
Has redux changes (please link here)
Has mobile changes (please link here)

Screenshots

Release Note

Hello @M-ZubairAhmed,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.


create Network button crashes the client

Describe the bug
Client crashes, no network is created
To Reproduce
Press the create Network button in a just placed Network Controller (Singleplayer)
Expected behavior
a new flux network is created
crash report
here is the crash report (my username was replaced by <my username>)
crash-2021-10-08_15.45.18-client.txt

Your Flux Networks is really outdated, please update to the latest version.


Retrieval information pop up window- lable count on UI and inside graph viz is mismatching e.g. service(5) but inside graph viz its service(1)

@abhishekkumar-27 , Please let me know which Db and which question you are extracting retrieval information for?

As discussed closing the issue


Bugfix: Update transform of collision shape on NOTIFICATION_PARENTED

Fixes godotengine/godot#45694.
This pull requests reverts a change in collision_shape.cpp from f93c2ddc926dd2c25b902a7fd41ee4b4eb15c73c where the _update_in_shape_owner() call got removed from NOTIFICATION_PARENTED handler.

The original PR is #45750 (@pouleyKetchoupp), so the regression is likely to affect the master branch too and should be fixed there.

Just to fix the typo on the linked PR:
The original PR on master is #45102.

The original PR is #45750 (@pouleyKetchoupp), so the regression is likely to affect the master branch too and should be fixed there.

I've created a new PR #45774 for the master branch. This PR can be closed then?

Let's keep this PR for the 3.2 version, since the file name has changed on master.


[themes] allow to explicitly set the default theme in the user settings

Type: Bug
Reproduce steps:

Press "cmd+K cmd+T" to display the color theme selection dialog.
Select "Default Dark+".
Press "cmd+K cmd+T" again.
Select "Default Dark Modern"

What's expected:
"workbench.colorTheme": "Default Dark Modern" in settings.json
What happened:
vscode auto deleted the "workbench.colorTheme" key in settings.json
vscode believe its default theme is "Default Dark Modern".
So not set "workbench.colorTheme" is equal to "workbench.colorTheme": "Default Dark Modern".
But actually, github.dev's default theme is "github light default".
Everytime I open github.dev, I need to change the color theme by my self.
VS Code version: Code 1.81.1 (6c3e3dba23e8fadc360aed75ce363ba185c49794, 2023-08-09T22:40:25.698Z)
OS version: Darwin arm64 22.5.0
Modes:
Remote OS version: Linux x64 5.4.119-19.0009.28
Connection to 'SSH: qs-<IP_ADDRESS>' could not be established  Canceled
Connection to 'SSH: devbox' could not be established  Canceled

System Info

Item
Value

CPUs
Apple M1 Pro (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
3, 3, 3

Memory (System)
32.00GB (1.00GB free)

Process Argv

Screen Reader
no

VM
0%

Item
Value

Remote
SSH: quicksilver

OS
Linux x64 5.4.119-19.0009.28

CPUs
Intel(R) Xeon(R) Platinum 8476C (172 x 2600)

Memory (System)
1878.00GB (1579.09GB free)

VM
0%

Connection to 'SSH: qs-<IP_ADDRESS>' could not be established  Canceled
Connection to 'SSH: devbox' could not be established  Canceled
Extensions (23)

Extension
Author (truncated)
Version

better-comments
aar
3.0.2

jupyter-keymap
ms-
1.1.2

remote-ssh
ms-
0.102.0

remote-explorer
ms-
0.4.1

material-icon-theme
PKi
4.30.1

gitlens
eam
14.2.1

prettier-vscode
esb
10.1.0

code-runner
for
0.12.0

shell-format
fox
7.2.5

vscode-color-identifiers-mode
Mat
1.3.0

vscode-language-pack-zh-hans
MS-
1.81.2023081609

isort
ms-
2023.10.1

python
ms-
2023.14.0

vscode-pylance
ms-
2023.8.50

jupyter
ms-
2023.7.1002162226

jupyter-keymap
ms-
1.1.2

jupyter-renderers
ms-
1.0.17

vscode-jupyter-cell-tags
ms-
0.1.8

vscode-jupyter-slideshow
ms-
0.1.5

live-server
ms-
0.4.9

material-icon-theme
PKi
4.30.1

datetime
rid
2.2.2

code-spell-checker
str
2.20.5

The workaround is to put "workbench.colorTheme": "Default Dark Modern". in the the settings by hand.
All our settings UI is 'smart'' and does not write settings with default values.
We would have to add an additional option default besides the Default Dark Modern.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Immutable record types are not treated as immutable

C# 9.0 syntax allows now to declare reference types as 'records' which is a nice syntax sugar for (immutable) data-container classes. There's a way to declare a record type as 'immutable':
public sealed record MyRecord(
  string property1,
  int property2,
  object propertyEtc
)
{}

This would actually generate a following class:
public sealed class MyRecord
{
  public string property1 {get; init;}
  public int property2 {get; init;}
  public object propertyEtc {get; init}

  public MyRecord(string property1,  int property2, object propertyEtc)
  {
     this.property1 = property1;
     this.property2 = property2;
     this.propertyEtc = propertyEtc;
  }
 //some other code, like Equals()
}

The problem is that ParseArguments<MyRecord>() would fail with System.MissingMethodException: No parameterless constructor defined for type 'MyRecord '. (which there's really none).
While I could declare a prarmeterless constructor for such record, it would be really great to have such classes supported as-is.

As far as I understand, the wiki on immutable types support, the class generally has all that's needed to work as an immutable, and the problem is that it is not regarded as such.
From what I see in ReflectionExtensions.IsMutable() the culpit is this line:
                    inheritedType.GetTypeInfo().GetProperties(BindingFlags.Public | BindingFlags.Instance).Any(p => p.CanWrite) ||

which prevents init-only properties from being treated as readonly.
See for example this post on how to detect for init properties.

Just ran into a related issue. I wasn't making a record class, but a regular class with all of its properties readonly, but with private init. That's obviously readonly for all intents and purposes, but CommandLine throws the same System.MissingMethodException as in Mikhail's case.


custom-trigger need to be highlighted with "active" class

Reference : demo in > triggers.html
Current custom-triggers did not highlight which was selected / active selection. Need a callback for custom-triggers

You need to be creative here. Use before/afterTransition callback and manually handle active class on particular triggers.
I'm not sure that slider can easy handle it for you out of the box. I need to test that out.

I can't come up with any clean solution for this (without linking with ugly attrs etc.). Maybe someone will have some other ideas.

I've done some test. It's better to doing via events/callbacks. Example:

slider.on("afterTransition.glide", function(event, data) {
    $('.custom-trigger').eq(data.index).addClass('active').siblings().removeClass('active');
});


Tests: avoid some warnings on Windows (NFCI)

Process away the body of the tests on Windows to avoid the warning
during the build.  This is hopefully temporary as the tests should
not be skipped, but require further investigation and skipping the
tests enables running the test suite completely on Windows.

@swift-ci please test

@swift-ci please test

Going to merge this for now.  If @artemcm has thoughts on the #if true, I can clean that up in a follow up.


RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED

Hi All,
I got a trouble when using lstm model (There is no problem with fconv and transformer).
CUDA : 10.0
GPU : RTX 2080Ti
And there is nothing wrong with my old machine (1080/cuda 9.0)
What might be wrong ?
Thank you!!
Traceback (most recent call last):
  File "train.py", line 402, in <module>
    main(args)
  File "train.py", line 58, in main
    trainer = Trainer(args, task, model, criterion, dummy_batch, oom_batch)
  File "/workspace/fairseq/fairseq/trainer.py", line 44, in __init__
    self._model = self._model.cuda()
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 260, in cuda
    return self._apply(lambda t: t.cuda(device))
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 187, in _apply
    module._apply(fn)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 187, in _apply
    module._apply(fn)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/rnn.py", line 117, in _apply
    self.flatten_parameters()
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/rnn.py", line 113, in flatten_parameters
    self.batch_first, bool(self.bidirectional))
RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED

How did you solve this?


fix condor log being displayed in single column text

for example
NoJobReport
NoJobReport (Exit Code: 99303)

    Could not find jobReport
    Adding end of condor.13468.0.log to error message:
    <
    /
    c
    >

    <
    c
    >

    <
    a

    n
    =
    "
    P

is just unreadable in wmstats

dup of #7798 :) closing


Add code modules

Code in main.rs needs to be separated into modules for better readability.

Thank you Andrew!


Segmentation error on running train file on GPU cluster

./scripts/train.sh: line 46: 32723 Segmentation fault      (core dumped) python ./src/train.py --dataset=KITTI --pretrained_model_path=./data/SqueezeNet/squeezenet_v1.1.pkl --data_path=./data/KITTI --image_set=train --train_dir=/tmp/bichen/logs/SqueezeDet/train --net=squeezeDet --summary_step=100 --checkpoint_step=500 --gpu=$USE_GPU
I read up online and saw that this might happen due to space on the disk. But I have 64 GB RAM and only 3 GB was being used before this code stopped.
What should I do?

How much memory does your gpu have? This is often the limiting factor, try adding this to the session start:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
config.gpu_options.allow_growth = True
with tf.Session(config=config, ...) as sess:


add support for multi-repo views

queue/rust+cargo will pool the results from rust and cargo
queue/all will pool results from all known repos
closes #57

nits addressed.

list removed. That everything?

Ok! Then let's go without list(). However, it seems that the change you made wasn't pushed yet. Also, please rebase it onto the current master.

Oh, whoops!
Will do when I get home.

rebased and actually pushed


AttributeError: 'function' object has no attribute 'Variable'

Hi, thanks for sharing your code.
When I run the step2 in training, with the commmand python3 main.py --train_p --load_model --load_train_model_name=model.pth-ae-400000
it will give the error report
AttributeError: 'function' object has no attribute 'Variable'
How can I solve this problem?

Hi, can you provide the full error log?
I speculate this error is caused by a different Pytorch version.

@andi611
Thank you.
The error report is
Traceback (most recent call last):.20, gp=407.61, loss_clf=0.71, acc=0.50
  File "main.py", line 209, in <module>
    main()
  File "main.py", line 157, in main
    trainer.train(model_path, args.flag, mode='patchGAN', target_guided=args.train_tgat)		# Stage 2 training
  File "/home/omnisky/mount/zero/ZeroSpeech-TTS-without-T/trainer.py", line 509, in train
    self.logger.scalar_summary(tag, value, iteration + 1)
  File "/home/omnisky/mount/zero/ZeroSpeech-TTS-without-T/utils.py", line 85, in scalar_summary
    self.writer.add_scalar(tag, value, step)
  File "/home/omnisky/anaconda3/lib/python3.6/site-packages/tensorboardX/writer.py", line 272, in add_scalar
    self.file_writer.add_summary(scalar(tag, scalar_value), global_step)
  File "/home/omnisky/anaconda3/lib/python3.6/site-packages/tensorboardX/summary.py", line 86, in scalar
    scalar = makenp(scalar)
  File "/home/omnisky/anaconda3/lib/python3.6/site-packages/tensorboardX/x2num.py", line 15, in makenp
    return pytorch_np(x, modality)
  File "/home/omnisky/anaconda3/lib/python3.6/site-packages/tensorboardX/x2num.py", line 24, in pytorch_np
    if isinstance(x, torch.autograd.variable.Variable):
AttributeError: 'function' object has no attribute 'Variable'

I used torch1.4 and have that problem. I try to run it on torch0.41, and it works now.
Thank you!


How can I make an reaction event?

How can I make an reaction event?

You simply create an event with the name property messageReactionAdd/messageReactionRemove etc.
You can see the list here.

You simply create an event with the name property messageReactionAdd/messageReactionRemove etc.
You can see the list here.

Reopen the issue if you still don't understand how to do it.

Reopen the issue if you still don't understand how to do it.


Fail cleanly if trying to put to unknown collection.

Thanks for your cool project! I found an exception happens if trying to PUT to nonexisting collection. Fixed it!

Thanks


Rob biddle exo additions 1

Pull Request (PR) description
Adds the following DSC Resources:
EXOAcceptedDomain
EXOAntiPhishPolicy
EXOAntiPhishRule
Cleans up some code for O365AdminAuditLogConfig
This Pull Request (PR) fixes the following issues
None

Codecov Report

Merging #66 into Dev will decrease coverage by 3.26%.
The diff coverage is 73.33%.

@@            Coverage Diff             @@
##              Dev      #66      +/-   ##
==========================================
- Coverage   93.72%   90.46%   -3.27%
==========================================
  Files          19       22       +3
  Lines        1641     1950     +309
  Branches        1        1
==========================================
+ Hits         1538     1764     +226
- Misses        102      185      +83
  Partials        1        1

Impacted Files
Coverage Δ

...MSFT_EXOAcceptedDomain/MSFT_EXOAcceptedDomain.psm1
47.5% <47.5%> (ø)

...FT_EXOAntiPhishPolicy/MSFT_EXOAntiPhishPolicy.psm1
79.38% <79.38%> (ø)

...s/MSFT_EXOAntiPhishRule/MSFT_EXOAntiPhishRule.psm1
79.41% <79.41%> (ø)

...inAuditLogConfig/MSFT_O365AdminAuditLogConfig.psm1
93.18% <97.22%> (+3.52%)
:arrow_up:

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 6e9ea44...8ffaf7c. Read the comment docs.


Add store tests for timedout promises

See resonatehq/resonate#206

Now that is merged I tried these tests against the durable store (in addition to the local store) and all pass as expected (tests 290-323).
➜  resonate-sdk-ts git:(feature/success-on-timeout) ✗ USE_DURABLE=true npm run test -- test/store.test.ts

><EMAIL_ADDRESS>test
> jest test/store.test.ts

 PASS  test/store.test.ts (20.894 s)
  Resonate Server Tests
    State Transition Tests
      ✓ Test Case 0: transitions from Init to Pending via Create (54 ms)
      ✓ Test Case 1: transitions from Init to Pending via Create (35 ms)
      ✓ Test Case 2: transitions from Init to Pending via Create (23 ms)
      ✓ Test Case 3: transitions from Init to Pending via Create (23 ms)
      ✓ Test Case 4: transitions from Init to Init via Resolve (45 ms)
      ✓ Test Case 5: transitions from Init to Init via Resolve (12 ms)
      ✓ Test Case 6: transitions from Init to Init via Resolve (12 ms)
      ✓ Test Case 7: transitions from Init to Init via Resolve (11 ms)
      ✓ Test Case 8: transitions from Init to Init via Reject (12 ms)
      ✓ Test Case 9: transitions from Init to Init via Reject (12 ms)
      ✓ Test Case 10: transitions from Init to Init via Reject (12 ms)
      ✓ Test Case 11: transitions from Init to Init via Reject (12 ms)
      ✓ Test Case 12: transitions from Init to Init via Cancel (12 ms)
      ✓ Test Case 13: transitions from Init to Init via Cancel (12 ms)
      ✓ Test Case 14: transitions from Init to Init via Cancel (11 ms)
      ✓ Test Case 15: transitions from Init to Init via Cancel (12 ms)
      ✓ Test Case 16: transitions from Pending to Pending via Create (34 ms)
      ✓ Test Case 17: transitions from Pending to Pending via Create (34 ms)
      ✓ Test Case 18: transitions from Pending to Pending via Create (45 ms)
      ✓ Test Case 19: transitions from Pending to Pending via Create (35 ms)
      ✓ Test Case 20: transitions from Pending to Resolved via Resolve (71 ms)
      ✓ Test Case 21: transitions from Pending to Resolved via Resolve (60 ms)
      ✓ Test Case 22: transitions from Pending to Resolved via Resolve (46 ms)
      ✓ Test Case 23: transitions from Pending to Resolved via Resolve (59 ms)
      ✓ Test Case 24: transitions from Pending to Rejected via Reject (47 ms)
      ✓ Test Case 25: transitions from Pending to Rejected via Reject (59 ms)
      ✓ Test Case 26: transitions from Pending to Rejected via Reject (62 ms)
      ✓ Test Case 27: transitions from Pending to Rejected via Reject (61 ms)
      ✓ Test Case 28: transitions from Pending to Canceled via Cancel (61 ms)
      ✓ Test Case 29: transitions from Pending to Canceled via Cancel (49 ms)
      ✓ Test Case 30: transitions from Pending to Canceled via Cancel (62 ms)
      ✓ Test Case 31: transitions from Pending to Canceled via Cancel (57 ms)
      ✓ Test Case 32: transitions from Pending to Pending via Create (48 ms)
      ✓ Test Case 33: transitions from Pending to Pending via Create (49 ms)
      ✓ Test Case 34: transitions from Pending to Pending via Create (49 ms)
      ✓ Test Case 35: transitions from Pending to Pending via Create (35 ms)
      ✓ Test Case 36: transitions from Pending to Pending via Create (46 ms)
      ✓ Test Case 37: transitions from Pending to Pending via Create (35 ms)
      ✓ Test Case 38: transitions from Pending to Resolved via Resolve (61 ms)
      ✓ Test Case 39: transitions from Pending to Resolved via Resolve (47 ms)
      ✓ Test Case 40: transitions from Pending to Resolved via Resolve (46 ms)
      ✓ Test Case 41: transitions from Pending to Resolved via Resolve (56 ms)
      ✓ Test Case 42: transitions from Pending to Rejected via Reject (57 ms)
      ✓ Test Case 43: transitions from Pending to Rejected via Reject (48 ms)
      ✓ Test Case 44: transitions from Pending to Rejected via Reject (46 ms)
      ✓ Test Case 45: transitions from Pending to Rejected via Reject (49 ms)
      ✓ Test Case 46: transitions from Pending to Canceled via Cancel (50 ms)
      ✓ Test Case 47: transitions from Pending to Canceled via Cancel (49 ms)
      ✓ Test Case 48: transitions from Pending to Canceled via Cancel (47 ms)
      ✓ Test Case 49: transitions from Pending to Canceled via Cancel (59 ms)
      ✓ Test Case 50: transitions from Resolved to Resolved via Create (62 ms)
      ✓ Test Case 51: transitions from Resolved to Resolved via Create (70 ms)
      ✓ Test Case 52: transitions from Resolved to Resolved via Create (62 ms)
      ✓ Test Case 53: transitions from Resolved to Resolved via Create (75 ms)
      ✓ Test Case 54: transitions from Resolved to Resolved via Resolve (63 ms)
      ✓ Test Case 55: transitions from Resolved to Resolved via Resolve (76 ms)
      ✓ Test Case 56: transitions from Resolved to Resolved via Resolve (64 ms)
      ✓ Test Case 57: transitions from Resolved to Resolved via Resolve (63 ms)
      ✓ Test Case 58: transitions from Resolved to Resolved via Reject (59 ms)
      ✓ Test Case 59: transitions from Resolved to Resolved via Reject (58 ms)
      ✓ Test Case 60: transitions from Resolved to Resolved via Reject (61 ms)
      ✓ Test Case 61: transitions from Resolved to Resolved via Reject (62 ms)
      ✓ Test Case 62: transitions from Resolved to Resolved via Cancel (60 ms)
      ✓ Test Case 63: transitions from Resolved to Resolved via Cancel (72 ms)
      ✓ Test Case 64: transitions from Resolved to Resolved via Cancel (85 ms)
      ✓ Test Case 65: transitions from Resolved to Resolved via Cancel (65 ms)
      ✓ Test Case 66: transitions from Resolved to Resolved via Create (57 ms)
      ✓ Test Case 67: transitions from Resolved to Resolved via Create (56 ms)
      ✓ Test Case 68: transitions from Resolved to Resolved via Create (72 ms)
      ✓ Test Case 69: transitions from Resolved to Resolved via Create (63 ms)
      ✓ Test Case 70: transitions from Resolved to Resolved via Resolve (63 ms)
      ✓ Test Case 71: transitions from Resolved to Resolved via Resolve (60 ms)
      ✓ Test Case 72: transitions from Resolved to Resolved via Resolve (74 ms)
      ✓ Test Case 73: transitions from Resolved to Resolved via Resolve (70 ms)
      ✓ Test Case 74: transitions from Resolved to Resolved via Resolve (60 ms)
      ✓ Test Case 75: transitions from Resolved to Resolved via Resolve (73 ms)
      ✓ Test Case 76: transitions from Resolved to Resolved via Reject (70 ms)
      ✓ Test Case 77: transitions from Resolved to Resolved via Reject (61 ms)
      ✓ Test Case 78: transitions from Resolved to Resolved via Reject (73 ms)
      ✓ Test Case 79: transitions from Resolved to Resolved via Reject (61 ms)
      ✓ Test Case 80: transitions from Resolved to Resolved via Reject (75 ms)
      ✓ Test Case 81: transitions from Resolved to Resolved via Reject (58 ms)
      ✓ Test Case 82: transitions from Resolved to Resolved via Cancel (67 ms)
      ✓ Test Case 83: transitions from Resolved to Resolved via Cancel (72 ms)
      ✓ Test Case 84: transitions from Resolved to Resolved via Cancel (62 ms)
      ✓ Test Case 85: transitions from Resolved to Resolved via Cancel (78 ms)
      ✓ Test Case 86: transitions from Resolved to Resolved via Cancel (65 ms)
      ✓ Test Case 87: transitions from Resolved to Resolved via Cancel (69 ms)
      ✓ Test Case 88: transitions from Resolved to Resolved via Create (67 ms)
      ✓ Test Case 89: transitions from Resolved to Resolved via Create (72 ms)
      ✓ Test Case 90: transitions from Resolved to Resolved via Create (62 ms)
      ✓ Test Case 91: transitions from Resolved to Resolved via Create (73 ms)
      ✓ Test Case 92: transitions from Resolved to Resolved via Create (63 ms)
      ✓ Test Case 93: transitions from Resolved to Resolved via Create (73 ms)
      ✓ Test Case 94: transitions from Resolved to Resolved via Resolve (61 ms)
      ✓ Test Case 95: transitions from Resolved to Resolved via Resolve (75 ms)
      ✓ Test Case 96: transitions from Resolved to Resolved via Resolve (72 ms)
      ✓ Test Case 97: transitions from Resolved to Resolved via Resolve (73 ms)
      ✓ Test Case 98: transitions from Resolved to Resolved via Reject (61 ms)
      ✓ Test Case 99: transitions from Resolved to Resolved via Reject (63 ms)
      ✓ Test Case 100: transitions from Resolved to Resolved via Reject (75 ms)
      ✓ Test Case 101: transitions from Resolved to Resolved via Reject (68 ms)
      ✓ Test Case 102: transitions from Resolved to Resolved via Cancel (67 ms)
      ✓ Test Case 103: transitions from Resolved to Resolved via Cancel (70 ms)
      ✓ Test Case 104: transitions from Resolved to Resolved via Cancel (73 ms)
      ✓ Test Case 105: transitions from Resolved to Resolved via Cancel (69 ms)
      ✓ Test Case 106: transitions from Resolved to Resolved via Create (72 ms)
      ✓ Test Case 107: transitions from Resolved to Resolved via Create (76 ms)
      ✓ Test Case 108: transitions from Resolved to Resolved via Create (62 ms)
      ✓ Test Case 109: transitions from Resolved to Resolved via Create (73 ms)
      ✓ Test Case 110: transitions from Resolved to Resolved via Create (83 ms)
      ✓ Test Case 111: transitions from Resolved to Resolved via Create (61 ms)
      ✓ Test Case 112: transitions from Resolved to Resolved via Resolve (58 ms)
      ✓ Test Case 113: transitions from Resolved to Resolved via Resolve (56 ms)
      ✓ Test Case 114: transitions from Resolved to Resolved via Resolve (68 ms)
      ✓ Test Case 115: transitions from Resolved to Resolved via Resolve (68 ms)
      ✓ Test Case 116: transitions from Resolved to Resolved via Resolve (59 ms)
      ✓ Test Case 117: transitions from Resolved to Resolved via Resolve (71 ms)
      ✓ Test Case 118: transitions from Resolved to Resolved via Reject (60 ms)
      ✓ Test Case 119: transitions from Resolved to Resolved via Reject (75 ms)
      ✓ Test Case 120: transitions from Resolved to Resolved via Reject (57 ms)
      ✓ Test Case 121: transitions from Resolved to Resolved via Reject (56 ms)
      ✓ Test Case 122: transitions from Resolved to Resolved via Reject (72 ms)
      ✓ Test Case 123: transitions from Resolved to Resolved via Reject (72 ms)
      ✓ Test Case 124: transitions from Resolved to Resolved via Cancel (59 ms)
      ✓ Test Case 125: transitions from Resolved to Resolved via Cancel (68 ms)
      ✓ Test Case 126: transitions from Resolved to Resolved via Cancel (70 ms)
      ✓ Test Case 127: transitions from Resolved to Resolved via Cancel (74 ms)
      ✓ Test Case 128: transitions from Resolved to Resolved via Cancel (77 ms)
      ✓ Test Case 129: transitions from Resolved to Resolved via Cancel (68 ms)
      ✓ Test Case 130: transitions from Rejected to Rejected via Create (79 ms)
      ✓ Test Case 131: transitions from Rejected to Rejected via Create (68 ms)
      ✓ Test Case 132: transitions from Rejected to Rejected via Create (84 ms)
      ✓ Test Case 133: transitions from Rejected to Rejected via Create (61 ms)
      ✓ Test Case 134: transitions from Rejected to Rejected via Resolve (65 ms)
      ✓ Test Case 135: transitions from Rejected to Rejected via Resolve (74 ms)
      ✓ Test Case 136: transitions from Rejected to Rejected via Resolve (76 ms)
      ✓ Test Case 137: transitions from Rejected to Rejected via Resolve (60 ms)
      ✓ Test Case 138: transitions from Rejected to Rejected via Reject (57 ms)
      ✓ Test Case 139: transitions from Rejected to Rejected via Reject (55 ms)
      ✓ Test Case 140: transitions from Rejected to Rejected via Reject (55 ms)
      ✓ Test Case 141: transitions from Rejected to Rejected via Reject (67 ms)
      ✓ Test Case 142: transitions from Rejected to Rejected via Cancel (55 ms)
      ✓ Test Case 143: transitions from Rejected to Rejected via Cancel (78 ms)
      ✓ Test Case 144: transitions from Rejected to Rejected via Cancel (69 ms)
      ✓ Test Case 145: transitions from Rejected to Rejected via Cancel (71 ms)
      ✓ Test Case 146: transitions from Rejected to Rejected via Create (57 ms)
      ✓ Test Case 147: transitions from Rejected to Rejected via Create (55 ms)
      ✓ Test Case 148: transitions from Rejected to Rejected via Create (67 ms)
      ✓ Test Case 149: transitions from Rejected to Rejected via Create (66 ms)
      ✓ Test Case 150: transitions from Rejected to Rejected via Resolve (67 ms)
      ✓ Test Case 151: transitions from Rejected to Rejected via Resolve (66 ms)
      ✓ Test Case 152: transitions from Rejected to Rejected via Resolve (56 ms)
      ✓ Test Case 153: transitions from Rejected to Rejected via Resolve (57 ms)
      ✓ Test Case 154: transitions from Rejected to Rejected via Resolve (79 ms)
      ✓ Test Case 155: transitions from Rejected to Rejected via Resolve (67 ms)
      ✓ Test Case 156: transitions from Rejected to Rejected via Reject (67 ms)
      ✓ Test Case 157: transitions from Rejected to Rejected via Reject (68 ms)
      ✓ Test Case 158: transitions from Rejected to Rejected via Reject (78 ms)
      ✓ Test Case 159: transitions from Rejected to Rejected via Reject (78 ms)
      ✓ Test Case 160: transitions from Rejected to Rejected via Reject (59 ms)
      ✓ Test Case 161: transitions from Rejected to Rejected via Reject (60 ms)
      ✓ Test Case 162: transitions from Rejected to Rejected via Cancel (60 ms)
      ✓ Test Case 163: transitions from Rejected to Rejected via Cancel (62 ms)
      ✓ Test Case 164: transitions from Rejected to Rejected via Cancel (63 ms)
      ✓ Test Case 165: transitions from Rejected to Rejected via Cancel (63 ms)
      ✓ Test Case 166: transitions from Rejected to Rejected via Cancel (74 ms)
      ✓ Test Case 167: transitions from Rejected to Rejected via Cancel (63 ms)
      ✓ Test Case 168: transitions from Rejected to Rejected via Create (64 ms)
      ✓ Test Case 169: transitions from Rejected to Rejected via Create (72 ms)
      ✓ Test Case 170: transitions from Rejected to Rejected via Create (71 ms)
      ✓ Test Case 171: transitions from Rejected to Rejected via Create (60 ms)
      ✓ Test Case 172: transitions from Rejected to Rejected via Create (73 ms)
      ✓ Test Case 173: transitions from Rejected to Rejected via Create (65 ms)
      ✓ Test Case 174: transitions from Rejected to Rejected via Resolve (65 ms)
      ✓ Test Case 175: transitions from Rejected to Rejected via Resolve (74 ms)
      ✓ Test Case 176: transitions from Rejected to Rejected via Resolve (64 ms)
      ✓ Test Case 177: transitions from Rejected to Rejected via Resolve (64 ms)
      ✓ Test Case 178: transitions from Rejected to Rejected via Reject (58 ms)
      ✓ Test Case 179: transitions from Rejected to Rejected via Reject (85 ms)
      ✓ Test Case 180: transitions from Rejected to Rejected via Reject (63 ms)
      ✓ Test Case 181: transitions from Rejected to Rejected via Reject (72 ms)
      ✓ Test Case 182: transitions from Rejected to Rejected via Cancel (63 ms)
      ✓ Test Case 183: transitions from Rejected to Rejected via Cancel (59 ms)
      ✓ Test Case 184: transitions from Rejected to Rejected via Cancel (64 ms)
      ✓ Test Case 185: transitions from Rejected to Rejected via Cancel (73 ms)
      ✓ Test Case 186: transitions from Rejected to Rejected via Create (58 ms)
      ✓ Test Case 187: transitions from Rejected to Rejected via Create (78 ms)
      ✓ Test Case 188: transitions from Rejected to Rejected via Create (78 ms)
      ✓ Test Case 189: transitions from Rejected to Rejected via Create (67 ms)
      ✓ Test Case 190: transitions from Rejected to Rejected via Create (56 ms)
      ✓ Test Case 191: transitions from Rejected to Rejected via Create (69 ms)
      ✓ Test Case 192: transitions from Rejected to Rejected via Resolve (60 ms)
      ✓ Test Case 193: transitions from Rejected to Rejected via Resolve (60 ms)
      ✓ Test Case 194: transitions from Rejected to Rejected via Resolve (68 ms)
      ✓ Test Case 195: transitions from Rejected to Rejected via Resolve (56 ms)
      ✓ Test Case 196: transitions from Rejected to Rejected via Resolve (67 ms)
      ✓ Test Case 197: transitions from Rejected to Rejected via Resolve (74 ms)
      ✓ Test Case 198: transitions from Rejected to Rejected via Reject (62 ms)
      ✓ Test Case 199: transitions from Rejected to Rejected via Reject (71 ms)
      ✓ Test Case 200: transitions from Rejected to Rejected via Reject (66 ms)
      ✓ Test Case 201: transitions from Rejected to Rejected via Reject (79 ms)
      ✓ Test Case 202: transitions from Rejected to Rejected via Reject (68 ms)
      ✓ Test Case 203: transitions from Rejected to Rejected via Reject (81 ms)
      ✓ Test Case 204: transitions from Rejected to Rejected via Cancel (64 ms)
      ✓ Test Case 205: transitions from Rejected to Rejected via Cancel (64 ms)
      ✓ Test Case 206: transitions from Rejected to Rejected via Cancel (58 ms)
      ✓ Test Case 207: transitions from Rejected to Rejected via Cancel (67 ms)
      ✓ Test Case 208: transitions from Rejected to Rejected via Cancel (55 ms)
      ✓ Test Case 209: transitions from Rejected to Rejected via Cancel (66 ms)
      ✓ Test Case 210: transitions from Canceled to Canceled via Create (77 ms)
      ✓ Test Case 211: transitions from Canceled to Canceled via Create (56 ms)
      ✓ Test Case 212: transitions from Canceled to Canceled via Create (56 ms)
      ✓ Test Case 213: transitions from Canceled to Canceled via Create (70 ms)
      ✓ Test Case 214: transitions from Canceled to Canceled via Resolve (68 ms)
      ✓ Test Case 215: transitions from Canceled to Canceled via Resolve (78 ms)
      ✓ Test Case 216: transitions from Canceled to Canceled via Resolve (66 ms)
      ✓ Test Case 217: transitions from Canceled to Canceled via Resolve (66 ms)
      ✓ Test Case 218: transitions from Canceled to Canceled via Reject (69 ms)
      ✓ Test Case 219: transitions from Canceled to Canceled via Reject (70 ms)
      ✓ Test Case 220: transitions from Canceled to Canceled via Reject (56 ms)
      ✓ Test Case 221: transitions from Canceled to Canceled via Reject (56 ms)
      ✓ Test Case 222: transitions from Canceled to Canceled via Cancel (81 ms)
      ✓ Test Case 223: transitions from Canceled to Canceled via Cancel (68 ms)
      ✓ Test Case 224: transitions from Canceled to Canceled via Cancel (66 ms)
      ✓ Test Case 225: transitions from Canceled to Canceled via Cancel (56 ms)
      ✓ Test Case 226: transitions from Canceled to Canceled via Create (68 ms)
      ✓ Test Case 227: transitions from Canceled to Canceled via Create (67 ms)
      ✓ Test Case 228: transitions from Canceled to Canceled via Create (56 ms)
      ✓ Test Case 229: transitions from Canceled to Canceled via Create (67 ms)
      ✓ Test Case 230: transitions from Canceled to Canceled via Resolve (66 ms)
      ✓ Test Case 231: transitions from Canceled to Canceled via Resolve (78 ms)
      ✓ Test Case 232: transitions from Canceled to Canceled via Resolve (82 ms)
      ✓ Test Case 233: transitions from Canceled to Canceled via Resolve (63 ms)
      ✓ Test Case 234: transitions from Canceled to Canceled via Resolve (75 ms)
      ✓ Test Case 235: transitions from Canceled to Canceled via Resolve (74 ms)
      ✓ Test Case 236: transitions from Canceled to Canceled via Reject (62 ms)
      ✓ Test Case 237: transitions from Canceled to Canceled via Reject (60 ms)
      ✓ Test Case 238: transitions from Canceled to Canceled via Reject (63 ms)
      ✓ Test Case 239: transitions from Canceled to Canceled via Reject (73 ms)
      ✓ Test Case 240: transitions from Canceled to Canceled via Reject (59 ms)
      ✓ Test Case 241: transitions from Canceled to Canceled via Reject (72 ms)
      ✓ Test Case 242: transitions from Canceled to Canceled via Cancel (75 ms)
      ✓ Test Case 243: transitions from Canceled to Canceled via Cancel (85 ms)
      ✓ Test Case 244: transitions from Canceled to Canceled via Cancel (60 ms)
      ✓ Test Case 245: transitions from Canceled to Canceled via Cancel (81 ms)
      ✓ Test Case 246: transitions from Canceled to Canceled via Cancel (60 ms)
      ✓ Test Case 247: transitions from Canceled to Canceled via Cancel (63 ms)
      ✓ Test Case 248: transitions from Canceled to Canceled via Create (60 ms)
      ✓ Test Case 249: transitions from Canceled to Canceled via Create (74 ms)
      ✓ Test Case 250: transitions from Canceled to Canceled via Create (63 ms)
      ✓ Test Case 251: transitions from Canceled to Canceled via Create (73 ms)
      ✓ Test Case 252: transitions from Canceled to Canceled via Create (57 ms)
      ✓ Test Case 253: transitions from Canceled to Canceled via Create (70 ms)
      ✓ Test Case 254: transitions from Canceled to Canceled via Resolve (61 ms)
      ✓ Test Case 255: transitions from Canceled to Canceled via Resolve (75 ms)
      ✓ Test Case 256: transitions from Canceled to Canceled via Resolve (62 ms)
      ✓ Test Case 257: transitions from Canceled to Canceled via Resolve (61 ms)
      ✓ Test Case 258: transitions from Canceled to Canceled via Reject (73 ms)
      ✓ Test Case 259: transitions from Canceled to Canceled via Reject (59 ms)
      ✓ Test Case 260: transitions from Canceled to Canceled via Reject (74 ms)
      ✓ Test Case 261: transitions from Canceled to Canceled via Reject (73 ms)
      ✓ Test Case 262: transitions from Canceled to Canceled via Cancel (62 ms)
      ✓ Test Case 263: transitions from Canceled to Canceled via Cancel (60 ms)
      ✓ Test Case 264: transitions from Canceled to Canceled via Cancel (61 ms)
      ✓ Test Case 265: transitions from Canceled to Canceled via Cancel (73 ms)
      ✓ Test Case 266: transitions from Canceled to Canceled via Create (60 ms)
      ✓ Test Case 267: transitions from Canceled to Canceled via Create (60 ms)
      ✓ Test Case 268: transitions from Canceled to Canceled via Create (68 ms)
      ✓ Test Case 269: transitions from Canceled to Canceled via Create (72 ms)
      ✓ Test Case 270: transitions from Canceled to Canceled via Create (60 ms)
      ✓ Test Case 271: transitions from Canceled to Canceled via Create (57 ms)
      ✓ Test Case 272: transitions from Canceled to Canceled via Resolve (69 ms)
      ✓ Test Case 273: transitions from Canceled to Canceled via Resolve (71 ms)
      ✓ Test Case 274: transitions from Canceled to Canceled via Resolve (60 ms)
      ✓ Test Case 275: transitions from Canceled to Canceled via Resolve (68 ms)
      ✓ Test Case 276: transitions from Canceled to Canceled via Resolve (58 ms)
      ✓ Test Case 277: transitions from Canceled to Canceled via Resolve (74 ms)
      ✓ Test Case 278: transitions from Canceled to Canceled via Reject (62 ms)
      ✓ Test Case 279: transitions from Canceled to Canceled via Reject (73 ms)
      ✓ Test Case 280: transitions from Canceled to Canceled via Reject (78 ms)
      ✓ Test Case 281: transitions from Canceled to Canceled via Reject (70 ms)
      ✓ Test Case 282: transitions from Canceled to Canceled via Reject (80 ms)
      ✓ Test Case 283: transitions from Canceled to Canceled via Reject (74 ms)
      ✓ Test Case 284: transitions from Canceled to Canceled via Cancel (73 ms)
      ✓ Test Case 285: transitions from Canceled to Canceled via Cancel (61 ms)
      ✓ Test Case 286: transitions from Canceled to Canceled via Cancel (60 ms)
      ✓ Test Case 287: transitions from Canceled to Canceled via Cancel (61 ms)
      ✓ Test Case 288: transitions from Canceled to Canceled via Cancel (61 ms)
      ✓ Test Case 289: transitions from Canceled to Canceled via Cancel (72 ms)
      ✓ Test Case 290: transitions from Timedout to Timedout via Create (45 ms)
      ✓ Test Case 291: transitions from Timedout to Timedout via Create (45 ms)
      ✓ Test Case 292: transitions from Timedout to Timedout via Create (44 ms)
      ✓ Test Case 293: transitions from Timedout to Timedout via Create (45 ms)
      ✓ Test Case 294: transitions from Timedout to Timedout via Resolve (48 ms)
      ✓ Test Case 295: transitions from Timedout to Timedout via Resolve (80 ms)
      ✓ Test Case 296: transitions from Timedout to Timedout via Resolve (34 ms)
      ✓ Test Case 297: transitions from Timedout to Timedout via Resolve (44 ms)
      ✓ Test Case 298: transitions from Timedout to Timedout via Reject (44 ms)
      ✓ Test Case 299: transitions from Timedout to Timedout via Reject (77 ms)
      ✓ Test Case 300: transitions from Timedout to Timedout via Reject (34 ms)
      ✓ Test Case 301: transitions from Timedout to Timedout via Reject (79 ms)
      ✓ Test Case 302: transitions from Timedout to Timedout via Cancel (48 ms)
      ✓ Test Case 303: transitions from Timedout to Timedout via Cancel (34 ms)
      ✓ Test Case 304: transitions from Timedout to Timedout via Cancel (46 ms)
      ✓ Test Case 305: transitions from Timedout to Timedout via Cancel (45 ms)
      ✓ Test Case 306: transitions from Timedout to Timedout via Create (45 ms)
      ✓ Test Case 307: transitions from Timedout to Timedout via Create (45 ms)
      ✓ Test Case 308: transitions from Timedout to Timedout via Create (78 ms)
      ✓ Test Case 309: transitions from Timedout to Timedout via Create (34 ms)
      ✓ Test Case 310: transitions from Timedout to Timedout via Create (78 ms)
      ✓ Test Case 311: transitions from Timedout to Timedout via Create (34 ms)
      ✓ Test Case 312: transitions from Timedout to Timedout via Resolve (44 ms)
      ✓ Test Case 313: transitions from Timedout to Timedout via Resolve (78 ms)
      ✓ Test Case 314: transitions from Timedout to Timedout via Resolve (35 ms)
      ✓ Test Case 315: transitions from Timedout to Timedout via Resolve (45 ms)
      ✓ Test Case 316: transitions from Timedout to Timedout via Reject (45 ms)
      ✓ Test Case 317: transitions from Timedout to Timedout via Reject (45 ms)
      ✓ Test Case 318: transitions from Timedout to Timedout via Reject (49 ms)
      ✓ Test Case 319: transitions from Timedout to Timedout via Reject (81 ms)
      ✓ Test Case 320: transitions from Timedout to Timedout via Cancel (50 ms)
      ✓ Test Case 321: transitions from Timedout to Timedout via Cancel (47 ms)
      ✓ Test Case 322: transitions from Timedout to Timedout via Cancel (34 ms)
      ✓ Test Case 323: transitions from Timedout to Timedout via Cancel (44 ms)


Create README for developing grpc storage plugins #1518

Which problem is this PR solving?
#1518, create a README for developing grpc storage plugins
Short description of the changes
Added a README detailing how to develop a grpc storage plugin

I expect there are some omissions that I've made in this but having already implemented a plugin it's difficult to remember what isn't necessarily clear.


update example README with Docker development workflow

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
A update for the examples README for using docker in the development process instead of installing ruby & gem locally

What is the current behavior? (You can also link to an open issue here)
You have to have ruby/gem/jerkyll installed on your machiene

What is the new behavior (if this is a feature change)?
I added a simple command to run the jerkyll watch/serve in dicker

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No

Other information:

@ASVBPREAUBV this is fantastic. Thank you for taking the time to add this. Huge time saver 🙏

@all-contributors, please add @ASVBPREAUBV for these cool time saving docs

:tada: This PR is included in version 3.18.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: client effective runtimes list

Changes

:gift: Adds effective runtimes list to client API

Prerequisite for #451
/kind enhancement

CI Fixed in #516 and will rebase this and re-request /lgtm when merged.

/lgtm


Remove unsupported call to fseek when file is opened with popen

Fix pclose hanging indefinately if a call to fseek was made on a file opened with popen.

@freerdp-bot test


feat(ui): 531 file management

closes #531
closes #550
closes #540
Adds a file management page accessible through the top right settings icon.
Allows multiple file upload and delete.
Show upload success and error icon animations that disappear after 1.5 seconds. Also has toasts.
Allows search by filename and created_at date.
Allows sort by filename or created_at fields.
UPDATE
This PR also now includes a refactor to change the data fetching and invalidation pattern for assistants and files.
The code to fetch assistants and files was moved to an API endpoint so that +page.ts files could call those endpoints using the provided (not native) fetch function Docs Ref.
This allows us to call invalidate('/api/some_route') instead of invalidateAll, resulting in less network traffic and redundant data fetching.
The fetching for threads was also moved to a parent +layout.server.ts so the threads weren't re-fetched everytime the /chat route was visited.
Additionally, the Supabase docs describing how to set up auth with Sveltekit were updated and include a new 'safeGetSession' function. This PR also updates the hooks.server.ts file and associated server side locals to include the new function.
PR is deployed on leapfrog-04 at ai.uds.dev

file-management.webm


fix(label): handle missing getName function

This PR fixes #55.
Easiest way to test is to follow localhost instructions here from #55.
Then edit the files:
vi ~/git/trimet-mod-otp/node_modules/transitive-js/build/labeler/label.js

Replace line 36 (initText body) with:
return typeof this.parent.getName === 'function'
      ? this.parent.getName()
      : null

vi ~/git/trimet-mod-otp/node_modules/transitive-js/build/labeler/segmentlabel.js

Add to beginning of render function:
      var text = this.getText();
      if (!text) return null;

Counter-proposal here #57.

@evansiroky, I think we ought to hold off on adding route_long_names until that has been battle-tested a little more.

:tada: This PR is included in version 0.13.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


remove dependency on meteorhacks:meteorx

meteorhacks:meteorx is unmaintained and breaks with the latest meteor version. See https://github.com/meteorhacks/meteorx/issues/8
I don't think that forking meteorx is a good idea. Maybe we should rather backport some of the apis its exposes to meteor itself.

maybe use this https://github.com/lamhieu-vk/meteorx


maybe switch out changeable IPs from k8s manifests to easier pattern

if we switch it out for a string like xxxIPxxx then its easier to replace ... the following would be on linux ...  I think the sed command is different on mac:
sed -i 's/xxxIPxxx/169......./' core/*.yaml
          - name: FRONT_END_PLAYER_URL
            value : https://<IP_ADDRESS>:30443/players/v1/accounts
          - name: FRONT_END_SUCCESS_CALLBACK
            value : https://<IP_ADDRESS>:30443/#/login/callback
          - name: FRONT_END_FAIL_CALLBACK
            value : https://<IP_ADDRESS>:30443/#/game
          - name: FRONT_END_AUTH_URL
value : https://<IP_ADDRESS>:30443/auth

becomes
          - name: FRONT_END_PLAYER_URL
            value : https://xxxIPxxx:30443/players/v1/accounts
          - name: FRONT_END_SUCCESS_CALLBACK
            value : https://xxxIPxxx:30443/#/login/callback
          - name: FRONT_END_FAIL_CALLBACK
            value : https://xxxIPxxx:30443/#/game
          - name: FRONT_END_AUTH_URL
            value : https://xxxIPxxx:30443/auth

Done #21


add support for qt6 optional modules

Currently Qt6 fails to install optional modules such as Qt::Charts or Qt::WebViewer. This is because the syntax in the qt sdk repository has changed. In Qt 6 onwards the package names have changed from qt.qt5.5150.qtcharts.clang_64 to qt.qt6.620.addons.qtcharts.clang_64. The addition of this "addon" keyword broke the XML parser in the QtArchives class.
https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt6_620/Updates.xml
https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt5_5150/Updates.xml
You can see it now appears correctly in the logs,
aqtinstall(aqt) v2.0.0b4.dev66 on Python 3.8.5 [CPython Clang 10.0.0 ]
Downloading qtbase...
Downloading qtcharts...
Downloading qtsvg...
Downloading qtdeclarative...
Redirected: mirrors.ukfast.co.uk
Redirected: mirrors.ukfast.co.uk
Redirected: mirrors.ukfast.co.uk
Redirected: mirrors.ukfast.co.uk
Finished installation of qtsvg-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 0.78178350
Downloading qttools...
Finished installation of qtcharts-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 1.30998046
Downloading qtquickcontrols2...
Redirected: mirrors.ukfast.co.uk
Redirected: mirrors.ukfast.co.uk
Finished installation of qtquickcontrols2-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 5.61572662
Downloading qttranslations...
Redirected: mirrors.ukfast.co.uk
Finished installation of qttranslations-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 3.71476571
Finished installation of qtbase-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 12.46363146
Finished installation of qttools-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 31.24148654
Finished installation of qtdeclarative-MacOS-MacOS_11_00-Clang-MacOS-MacOS_11_00-X86_64-ARM64.7z in 33.58599792
Patching qt/6.2.0/macos/bin/qmake
Finished installation
Time elapsed: 35.56388792 second

and the correct files are appearing in the download folder. Unit-test cases should be added to test_archives.py.

Is this compatible with #318?
#318 seems to produce addons.* entries for Qt6
https://github.com/miurahr/aqtinstall/pull/318#issuecomment-881025717

I couldn't see anything around it removing the "addons" prefix; with that change to generate the combinations.json I believe you'd end up using the command,
python -m aqt install 6.2.0 --outputdir ./qt mac  desktop -m addons.qtcharts

which would then be different from the Qt5 command,
python -m aqt install 5.15.0 --outputdir ./qt mac  desktop -m qtcharts

, but install the same module? I believe thats how that script would work in #318?

@ddalcino could you update #318 to be compatible with #335 for Qt6 addons?

@ddalcino could you update #318 to be compatible with #335 for Qt6 addons?

The 'addons' thing appears to be something new in Qt 6.1 and 6.2:
$ python3 -m aqt list qt6 mac desktop --modules 6.2.0
addons.qt3d addons.qtcharts addons.qtconnectivity addons.qtdatavis3d addons.qtimageformats addons.qtlottie
addons.qtmultimedia addons.qtnetworkauth addons.qtpositioning addons.qtremoteobjects addons.qtscxml addons.qtsensors
addons.qtserialbus addons.qtserialport addons.qtvirtualkeyboard addons.qtwebchannel addons.qtwebengine
addons.qtwebsockets addons.qtwebview debug_info qt5compat qtquick3d qtquicktimeline qtshadertools qtwaylandcompositor

$ python3 -m aqt list qt6 mac desktop --modules 6.1.0
addons.qt3d addons.qtcharts addons.qtdatavis3d addons.qtimageformats addons.qtlottie addons.qtnetworkauth addons.qtscxml
addons.qtvirtualkeyboard debug_info qt5compat qtquick3d qtquicktimeline qtshadertools qtwaylandcompositor

$ python3 -m aqt list qt6 mac desktop --modules 6.0.0
debug_info qt5compat qtquick3d qtquicktimeline qtshadertools qtwaylandcompositor

The full name of each of these modules is something like <qt6_6.X.Y>.addons.<module_name>.<arch>. For example, the full name of qtcharts for mac desktop would be qt.qt6.620.addons.qtcharts.clang_64. However, the full name for qtquicktimeline would be qt.qt6.620.qtquicktimeline.clang_64. Unless I misunderstand this code, #335 makes it impossible to install any of these modules, because their PackageUpdates names are not prefixed by 'addons.': debug_info qt5compat qtquick3d qtquicktimeline qtshadertools.
I can change generate_combinations.py to remove the addons. prefix, but that's throwing away information that would otherwise be useful to the installer. I think it might make more sense to ask users to run python -m aqt install 6.2.0 --outputdir ./qt mac desktop -m addons.qtcharts, since that's what aqt list tells you the module is named anyway.
If we need to allow users to run python -m aqt install 6.2.0 --outputdir ./qt mac desktop -m qtcharts, I can add data so that combinations.json knows which modules are addons and which are not:
...
"modules": [
...
  {"qt_version":  "6.2",
   "modules": ["debug_info", "qtshadertools", "qtquicktimeline", "qtquick3d", "qt5compat"],
+  "addons": ["qt3d", "qtcharts", "qtconnectivity", "qtdatavis3d", "qtimageformats", "qtlottie", "qtmultimedia",
+             "qtnetworkauth", "qtpositioning", "qtremoteobjects", "qtscxml", "qtsensors", "qtserialbus", "qtserialport",
+             "qtvirtualkeyboard", "qtwebchannel", "qtwebengine", "qtwebsockets", "qtwebview"]
  },
]

Then QtArchives will know which modules it needs to prefix with "addons."
Making this change could also make it necessary to change the output of the aqt list command, so that users know they aren't supposed to run python -m aqt install 6.2.0 --outputdir ./qt mac desktop -m addons.qtcharts; this would cause the installer to go looking for qt.qt6.620.addons.addons.qtcharts.android_x86_64, which also doesn't exist.
This change will increase the scope of #318, since it will touch metadata.py and test_list, and I would rather make the change as part of a separate PR.

#335 makes it impossible to install any of the modules {debug_info, qt5compat, qtquick3d, qtquicktimeline, qtshadertools}, because their PackageUpdates names are not prefixed by addons..

Oh, it is bad.
It seems to be better to ask users to use python -m aqt install 6.2.0 --outputdir ./qt mac desktop -m addons.qtcharts and consult users to use list command to know proper module name.

aqtinstall v2.0.0b5 out with warning improvement.
It pass CI test with qt 6.2.0 on mac with addons.qtchart and addons.qtnetworkauth modules.
The CI test build a sample application and succeeded. https://dev.azure.com/miurahr/github/_build/results?buildId=4438&view=logs&j=94928a8c-e247-5fcf-bd34-aeaf493970d4
@WillBrennan if you want to change install sub command to accept  a module name without addons prefix for qt6, the list-qt subcommand also should be changed consistently as @ddalcino described.
There may be further places need to be modified for consistency, such as CI script, and test cases.
I do not feel a strong benefit to the proposal, because of a necessary of big changes.


Segmentation fault when selecting a broken symlink

Unlike #34 opening the directory is fine, but clicking on the file or moving to it with the arrow keys causes segmentation fault.

i don't get a seg fault, xfiles immediately tries to forward it to my mime handler program.

[Sorry, I fixed the issue but linked to #34 ... here's what I posted there]
Indeed, the bug was introduced by the status bar commit.
The status bar needs to draw the file's status created by xfiles (size, owner and time), which is NULL for broken links.