Debugger WIP

Closes #???
Description
I couldn't manage to push over existing PR, so made a new one.  /cc @turbolent
Making this draft PR to track also issues.

Current Problems :

Pre/Post conditions has wrong stack ( not sure how to solve this one for sure )
Figure out how to evaluate statement ( not variables )

Missing:

Transaction Execution ( can be solved by attaching & executing transaction with plugin or cli )
Arguments ( I think this is also not in the context of debugger )

Also:

there is also an option to utilize --skip-tx-validation for emulator, and put authorizer addresses in some pragma , we can use proposer and payer as service account
Arguments can be pragma too

Wishlist:

Debug mainnet script / transaction  ( hard one but I think can be managed, main problem is the lifetime of registers vs debugging session length ( maybe archival node can help there )  )

Done:

[DONE] Stringer broken for script self
[DONE] Stringer broken for destroyed resources
[DONE] Variables include global functions when in interface post condition
[DONE] Better Variables ( expand to see member fields )
[DONE] Step Over & In & Out
[DONE] Attaching debugger ( scripts )
[DONE] expand arrays, dictionaries
[DONE] add debugger to vscode cadence extension
[DONE] Storage Browser
[DONE] Attaching debugger (transactions)
[DONE] need to hook on log (waiting logger fix PR )
[DONE] handle StorageReference in variables (borrowed resources)

For contributor use:

[X] Targeted PR against master branch
[ ] Linked to GitHub issue with discussion and accepted design OR link to spec that describes this work
[X] Code follows the standards mentioned here
[ ] Updated relevant documentation
[X] Re-reviewed Files changed in the GitHub PR explorer
[ ] Added appropriate labels

Codecov Report

Merging #294 (f8631b2) into master (0b29a5c) will decrease coverage by 6.97%.
The diff coverage is 5.94%.

@@            Coverage Diff             @@
##           master     #294      +/-   ##
==========================================
- Coverage   49.12%   42.15%   -6.97%
==========================================
  Files          27       29       +2
  Lines        3186     3741     +555
==========================================
+ Hits         1565     1577      +12
- Misses       1491     2034     +543
  Partials      130      130

Flag
Coverage Δ

unittests
42.15% <5.94%> (-6.97%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

server/debugsession.go
0.00% <0.00%> (ø)

server/debugger.go
11.29% <11.29%> (ø)

server/backend/backend.go
48.12% <20.00%> (-0.43%)
:arrow_down:

server/server.go
49.00% <37.50%> (-0.48%)
:arrow_down:

blocks.go
54.16% <40.00%> (-9.47%)
:arrow_down:

blockchain.go
73.75% <91.30%> (+0.07%)
:arrow_up:

headers.go
0.00% <0.00%> (-15.63%)
:arrow_down:

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

Attaching debugger (transactions): bug in flow-go ( using env config instead of runtime or something like that, doesn't happen with script, as emulator/fvm doesn't execute script before us )

@pattyshack any idea on this one ?

@turbolent

Pre/Post conditions has wrong stack ( not sure how to solve this one for sure )

These are coming with no stack except their self.

Figure out how to evaluate statement ( not variables )

Is it possible to evaluate a string ( as code ) via interpreter.

need to hook on log

logs are coming after execution; I can bug also fvm for this ( it would be nice to have in emulator too )

Thank you for taking continuing this effort @bluesign!
The original PR, #164, was already quite large and it would be better/ easier to get all the functionality landed in pieces.
Do you think there is a commit at which point the basic functionality from the original PR was restored? Maybe f8631b2? We could maybe get those commits merged back into the original PR and get that merged, then open another for subsequent features / improvements you added (👏).

Do you think there is a commit at which point the basic functionality from the original PR was restored? Maybe f8631b2? We could maybe get those commits merged back into the original PR and get that merged, then open another for subsequent features / improvements you added (👏).

@turbolent Yeah this is totally possible, my only concern was, sometimes when adding a feature you have to go back and change everything from ground up. ( I had that with attaching debugger for example ) Instead of attaching, we had to attach one and then reuse for a clean implementation and attach support.
I think we have only 2 questions left to answer, then I can convert to WIP PR to mini PRs.

Pre/Post conditions has wrong stack ( they don't have stack on interface post/pre conditions )
Figure out how to evaluate statement ( like self.x, or any statement, for watches window )
Maybe also adding globals to variable ( this may need cadence change )

If those 2 doesn't change something in the architecture, I can start making mini feature PRs.

@bluesign The features you listed are great ideas for additions, but they are maybe better added in follow-up PRs. What is left to be done for the current functionality?

@bluesign The features you listed are great ideas for additions, but they are maybe better added in follow-up PRs. What is left to be done for the current functionality?

@turbolent  In my todo list, for missing stuff and bugs:

resource after move causing a crash

I can simply ignore this one, by recovering panic I guess, I just need to check.

transaction pre/post nested transactions

when executing transactions fvm also runs some stuff (fees, storage check etc); we debug them too :) need to find a way to skip them.

transaction and scripts with arguments

I have implemented attach, and it is working very well when I launch them from CLI, etc. So maybe launching part, we can move to vscode-extension.  ( emulator also has a skipping tx validation option, so without keys we can manage )

Storage and variables working without problem, there are small issues like references not showing & in front as type, etc.

I cleaned up the code today, but maybe I need to make smaller PRs, as we discussed.

Integrating with the CLI (FlowKit) to leverage the flow.json configuration to map on-chain addresses to local files

Also, I have a plan for this one, but I think first, I need to discuss with @sideninja about the road plan.

@bluesign The features you listed are great ideas for additions, but they are maybe better added in follow-up PRs. What is left to be done for the current functionality?

@turbolent In my todo list, for missing stuff and bugs:

resource after move causing a crash

I can simply ignore this one, by recovering panic I guess, I just need to check.

transaction pre/post nested transactions

when executing transactions fvm also runs some stuff (fees, storage check etc); we debug them too :) need to find a way to skip them.

transaction and scripts with arguments

I have implemented attach, and it is working very well when I launch them from CLI, etc. So maybe launching part, we can move to vscode-extension. ( emulator also has a skipping tx validation option, so without keys we can manage )

Storage and variables working without problem, there are small issues like references not showing & in front as type, etc.
I cleaned up the code today, but maybe I need to make smaller PRs, as we discussed.

I would say we ignore crash for first one and sync with vscode-extension team for the rest. Rest can be done in upcoming PRs.
I can split this PR if needed ( I made it already half of the previous when cleaning code )

@bluesign That is a good list for additional features, but I meant more like, is the PR in its current state already usable or is there still some work left to be done?

@bluesign That is a good list for additional features, but I meant more like, is the PR in its current state already usable or is there still some work left to be done?

Yeah it is currently already usable and pretty useful

I synced with master and adjusted the logging to it, then tried debugging a script from VS Code and it worked like a charm – awesome! Let's get this in and then we can open follow-up PRs for the remaining features

@turbolent thank you very much


ovn: introducing ovn as ovirt's network provider

oVirts network provider has 'neutron like' api. Therefore, it has tenants.
Since oVirt provider is infra provider (and not cloud provider), tenants
had to be extracted to support infra provider as parent ems.

@dankenigsberg

please review @tzumainn @Ladas

@miq-bot assign @blomquisg

needed by https://github.com/ManageIQ/manageiq-providers-ovirt/pull/90

@AlonaKaplan seems like just spec/models/ext_management_system_spec.rb specs need to be fixed, just add redhat_network to the lists and it should work

depends on  https://github.com/ManageIQ/manageiq-providers-ovirt/pull/90


Add Like and Unlike methods

Uses the newer API available from OKCupid that uses OAuth.
Add a headers module for maintaining the OAuth token state in the custom header.
Update documentation.

Looks great. Thanks @xmclark!

@tranhungt thanks!


look

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

Closing this as incomplete.


set the deafult value for the flags

recover the original behavior before 0420389d21b0d9630bec23904ae37d730be77b16
Signed-off-by: Lai Jiangshan<EMAIL_ADDRESS>

LGTM


Invalid cookie doesn't redirect to auth provider to re-login

time="2022-12-28T11:54:50Z" level=warning msg="Invalid cookie" error="Invalid cookie mac"
Expected result: Clear cookie, redirect to auth provider
I manually have to clear cookies for it to work as expected.
I have a setup where are there are multiple redirect URIs where they reside on a higher level sub domains using the same auth provider, and same client. Probably an issue my side where I should create a separate client?

The issue is app specific, probably related to caching. Closing


Don't capitalize the address to send to

The input field that appears when I press "Send" asks to enter the address/invoice but the first letter is capitalized. Usually the data that's expected there is copied&pasted1 into that field so it's not an issue. But if I enter the LN address it's a problem because the username is used in the HTTP request and "Username" and "username" aren't the same: https://domain.tld/.well-known/lnurlp/Username in the first case (which wouldn't work) and https://domain.tld/.well-known/lnurlp/username in the second.
According to the spec,

The <username> is limited to a-z0-9-_.

So the name should be lowercased programmatically anyway. But to make it look even better please turn off auto capitalization.

1 Maybe add a "Paste" button inside/next to it so it's a bit easier for the user? I saw such button in the Binance app for the TOTP codes. While the default Google keyboard lets you quickly paste sometimes it's not available and you need to open the save clipboard fragments and paste from there. A button inside the text field or nearby is a pleasant UX but I don't have a strong opinion about it. Just a good thing to have to reduce friction.

Capitalization is fixed in https://github.com/btcontract/wallet/commit/7029705a4051e0422e839770f7261ff522070268.
I have an idea to add a more involved paste button which will only pop up and have a tip if known content type is detected (address, invoice etc), but that can wait.

Great, I love this idea!


i have made a PR to add this reaper keys to awesome-neovim project

Yo,
Just wanted to mention that I have made a PR to add RK to https://github.com/rockerBOO/awesome-neovim#music

Hey! That's awesome thanks!

https://github.com/rockerBOO/awesome-neovim#media


Instance SamlClient throws certificate exception

Hi there I am new to SAML and SSO. I was trying to instance SamlClient and Copied my idp Metadata.xml as an argument. The metadata I am using does have ds:X509Certificatetag in it but I am getting "certificate" exception. Can you please let me know why this is happening or is there any workaround that I could try? Thank you!

Solved, turned out to be our idp does not have "use = 'signing'" in KeyDescriptor tag.
Reference: SamlClient.class line 377


mbedtls: Update to upstream version 2.16.5

Fixes https://tls.mbed.org/tech-updates/security-advisories/mbedtls-security-advisory-2020-02
Drop patch to disable VIA padlock since we no longer use libwebsockets,
so there's no conflict anymore.
Note to self: Don't drop the VIA padlock patch when cherry-picking for 3.1, as we still use libwebsockets there.

Cherry-picked for 3.2.1.

Cherry-picked for 3.1.3.

Drop patch to disable VIA padlock since we no longer use libwebsockets,
so there's no conflict anymore.

Aaaand that turned out to be a mistake too, 32-bit Linux and macOS builds are failing now with
thirdparty/mbedtls/library/padlock.c: Assembler messages:
thirdparty/mbedtls/library/padlock.c:64: Error: symbol `unsupported' is already defined

So apparently it was not (just) libwebsockets that caused a conflict.


Suggestion - a query or more info to help track down simple LDAP auths

I know I've seen a log analytics query to discover simple LDAP auths which has a lot of detail compared to the basic report that Secure Score shows.
It would be great if it could be included or referenced on this page. Cheers

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

ID: 64b0da12-cea4-e125-6a6c-bde55755e28e
Version Independent ID: 64b0da12-cea4-e125-6a6c-bde55755e28e
Content: Clear text exposure assessment - Microsoft Defender for Identity
Content Source: ATPDocs/security-assessment-clear-text.md
Service: microsoft-defender-for-identity
GitHub Login: @batamig
Microsoft Alias: bagol

Thanks @SpitFire-666! I'm going to investigate and get back to you.

Hi @SpitFire-666
Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response.
I recommend that you ask this question in our TechCommunity forum for Defender for Identity, where product experts are available to answer questions like these. We already have a backlog open for our team, so if there's a response with a relevant query, we can add it to that work item and make the update in the docs.
I'm going to close this issue for now but feel free to tag me if you have any further feedback.
We appreciate your contributions!
#please-close


Attachment Log - Rename an Attachment

As an Intake/Flex/IAO Analyst or Ministry Coordinator
I want to be able to rename attachments I upload
so that it can be better understood what the attachment is

Assumptions & Scope
What are the assumptions for this story?
This covers the ability to rename an attachment uploaded to the attachment log (#752)
What is IN scope?
This focuses only on renaming attachments through the attachment log
Acceptance Criteria
Scenario 1: Rename an attachment
•	GIVEN the ellipsis of a file on the attachment log has been activated
•	https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/817813727
•	WHEN rename is selected
•	THEN a modal will open, with the original file name in a text space, and a save and cancel button
•	https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/817813727
•	AND the User will be able to edit the name in the text, using valid filename characters
Scenario 2: Cancel back to Attachment Log from Rename
•	GIVEN you are on the rename attachment modal
•	WHEN the cancel button is pressed
•	THEN the modal will close and the user will remain on the attachment log
•	https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/817813727
Scenario 3: Rename Attachment - Save with Valid characters
•	GIVEN you are on the rename attachment modal
•	WHEN changes have been made to the file name
•	AND the changes are valid characters for a file path
•	AND the save button has been clicked
•	THEN the modal will close, and the user will remain on the attachment log
•	https://jacklyn808742.invisionapp.com/console/share/3W2O64AP5C/817813727
•	AND the name of the attachment will be updated
Scenario 4: Rename Attachment - Save with invalid characters
•	GIVEN you are on the rename attachment modal
•	WHEN changes have been made to the file name
•	AND the changes include invalid characters for a file path
•	AND the save button has been clicked
•	THEN an error message will appear advising the user it can not be saved due to invalid characters
Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
#752 - Attachment log needs to be created first
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

@abin-aot @VineetBala-AOT - I am testing scenario 3 "testing valid characters" right now. Double checking if there are any limitations to file naming for future database(s)? The current settings pass based on / : * ? " < > |  but I would also have expected the following to be invalid: . - & % $ etc. cc: @lmullane

One scenario not covered under the A/C but that I tested was what happens after changing a file name, and then selecting cancel on the modal. A textbox comes up that says "are you sure you want to leave". I find this to be confusing...makes me think of leaving the page and not just cancelling out of the modal cc @JHarrietha-AOT for a second opinion

Closing this based on a) Confirmation that the allowable symbols I mentioned above are compatible and b) acknowledging that I can create an improvement ticket later on if the team determines the "leave page" modal creates confusion


Add serviceWorkerFileName option

Motivation
I am using ember-service-worker with OneSignal Push Notifications. Their SDK provides you service worker with following code:
self.importScripts('https://cdn.onesignal.com/sdks/OneSignalSDK.js');

And they claim that it's filename (OneSignalSDKWorker.js) is required for their SDK to work.
Solution
I solved it by using the output service worker from ember-service-worker as an importScript in the OneSignalSDK worker:
self.importScripts('https://cdn.onesignal.com/sdks/OneSignalSDK.js');
self.importScripts('sw.js');

However, sw-registration.js is always pointing to sw.js. This PR adds possibility to define which service worker should be registered while still producing the output to sw.js.
I still wonder if it's best possible solution or maybe there is some other way that I didn't think about. What do you think?
PS. I feel that my naming (serviceWorkerFileName) is rather confusing and should be changed before merge. Looking forward to your proposition if you agree we should move forward with it.

I know this is pretty old so I understand if you're no longer interested, but I'd be interested in pursuing this. We'd need to first get this up to the current code. Then we also need to look at the entry point generation as that also uses the 'sw.js' filename. In fact, I think you don't have to pass it in to the ServiceWorkerBuilder class as that class defines it internally in the entry point filename constants. I would also want to default the option in included like we do for other option values. Any more thoughts as to the option name from serverWorkerFilename.

This was quite a while ago, true! I will try to get it to shape but will need to timebox it. Will write back over the weekend ;)

Sorry, can't make it! :(

No worries @jniechcial - thanks for the original contribution. I'll try to get a new PR from your work here.

Created issue: https://github.com/DockYard/ember-service-worker/issues/149

Closing in favor of https://github.com/DockYard/ember-service-worker/pull/150


WARNING: Configuration 'compile' is obsolete

> Configure project :react-native-build-config
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Solved in 3d76ba641d2819abd952bad8821e491be29a76ba
Thanks for report


Outdated cask: shiba

Outdated cask: shiba.
Info:

version: 1.0.0.
appcast url: https://github.com/rhysd/Shiba/releases.atom.

Please do not run find_outdated_appcasts unless you are a maintainer.


Support for the context manager protocol

with Telnet(host='x.x.x.x', port=23) as telnet:

TypeError: 'Telnet' object does not support the context manager protocol

Fixed in release v0.1.19


Enables changing Texture maps in X3D.

Using JavaScript <SCRIPT> nodes, we can change texture maps on objects.
Test cases are located in Pull Request https://github.com/gearvrf/GearVRf-Tests/pull/223
This Pull Request supersedes https://github.com/Samsung/GearVRf/pull/1675, which was originally built on work-in-progress Pull Request.
This new Pull Request is instead built upon Master.
GearVRF DCO signed off by: Mitch Williams
<EMAIL_ADDRESS>

JSChg-OneSecPerFrame.x3d works. The change looks good. The sensor stuff is a separate issue. Planning to merge on Friday.


Enable support for canvas-prebuilt package

canvas-prebuilt is a package from @chearon https://github.com/chearon/node-canvas-prebuilt, contributor of node-canvas.
Is easier to install for most of the situation and is same as canvas, but prebuilt.
Is a drop in replacement with a different name, i made this PR to enable the us of this package in jsdom.

@domenic  any thought about this?

@tmpvar, @Sebmaster anyone?

Sorry, we're all busy and mostly work on jsdom on weekends. I wasn't able to do so last weekend.

no worries! I ll wait the weekend.

This is really great stuff! Thanks especially for adding a CI test configuration for it.
I was wondering if we should just always include canvas-prebuilt, but it looks like according to https://www.npmjs.com/package/canvas-prebuilt that would not be great for every platform, so the approach you went with here makes sense to me.

Super! this will ease also fabricjs installations.


What is this?

Why is this linked from the awesome list? Why is the readme blank? How does this repository work?

Good questions, what is this?

And why was this issue closed with no comment?


Added optional flag to auto-login after password change

Ok, took me a while and various attempts but I think I found the cleanest approach to automatically logging a user in after they change a password.
This moves the pswdrst flow to be a subflow of login, and then routes the result to different places based on the cas.authn.pm.autoLogin setting.
Feedback welcome...

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Marcus Watkins seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Changes Unknown when pulling 4c620859b37fdf4ae3af24b7374751188fe52188 on marwatk:pwd-change-auto-login into ** on apereo:master**.

I'll make these changes tomorrow and adds some doc verbiage. Let me know if you think of anything else!
-Marcus

Ok, changes are in. Let me know if you have any other notes.
I also snuck a utility method into SendPasswordResetInstructions.java that makes it easier and safer to customize.

Coverage increased (+0.005%) to 45.375% when pulling fd4d4122b9f2070b0721f482218e91730546332f on marwatk:pwd-change-auto-login into 1afd8179b9bdc1bbf543277025639692113aad83 on apereo:master.

Coverage decreased (-0.001%) to 45.369% when pulling fd4d4122b9f2070b0721f482218e91730546332f on marwatk:pwd-change-auto-login into 1afd8179b9bdc1bbf543277025639692113aad83 on apereo:master.


[API Design] Point In Time Helper(s)

This proposal introduces several helpers to improve the experience of consuming Point in Time APIs for common scenarios. A Point in Time (PIT) internally works exactly like a scroll, except that the point in time used for scrolls is extended to more than one query. The lifecycle of the PIT is decorrelated from the query.
Point in Time Context
Consumption scenario: As a developer, I want to open a point in time, perform several search requests against that same PIT snapshot and close it after use to free up resources.
The primary helper should therefore simplify the process of opening, using and closing a PIT.
Create a disposable "context" through which search requests can be sent. During use, the context updates the point in time ID after each search operation*. Once the context is disposed of, the PIT is closed.
Proposed API(s)
namespace Nest
{
    public interface IElasticClient
    {
+        PointInTimeContext CreatePointInTimeContext(Time keepAlive = null, Indices indices = null);
    }
}

The point in time context will expose search methods as on the main client, these would apply the appropriate PIT ID. On first use, the PIT open request can first establish a PIT for subsequent searches to use.
public class PointInTimeContext : IDisposable
{
    public async Task<ISearchResponse<TDocument>> SearchAsync<TDocument>(ISearchRequest request, CancellationToken ct = default) where TDocument : class
    {
    }

    public IAsyncEnumerable<SearchAllDocsResult<T>> SearchAllDocsAsync<T>(ISearchRequest<T> request, Time keepAlive = null, CancellationToken ct = default)
    {
    }

    // ... Expose other Search and SearchAsync methods ...

    public void Dispose()
    {
    }
}

Usage example
using (var pit = Client.CreatePointInTimeContext("1m"))
{
    var response = await pit.SearchAsync<Project>(new SearchRequest<Project>
    {
        Query = new MatchAllQuery()
    });

    Console.WriteLine(response.Hits.Count);

    response = await pit.SearchAsync<Project>(new SearchRequest<Project>
    {
        Query = new MatchAllQuery()
    });

    Console.WriteLine(response.Hits.Count);

    response = await pit.SearchAsync<Project>(new SearchRequest<Project>
    {
        Query = new MatchAllQuery()
    });

    Console.WriteLine(response.Hits.Count);
}

* Considerations: Thread-safety of mutable PIT ID within the context if multiple searches are made in parallel. It is valid to continue using the original PIT ID provided when PIT is open, for all requests even if an updated ID is provided in one of the responses. All IDs should remain valid.
This might mean that is safe to allow a race for the ID updates in the PIT context for multiple requests. Or we could opt to not update the ID with each search. The effect of not updating the ID is that it may slightly reduce performance since the updated PIT ID handles cases where data may have moved between requests.
Point in Time Paginated Searches
The documentation now prefers a PIT with search_after for deep pagination, rather than scroll. We should ensure we provide sufficient helpers to replicate the usage of scrolling, but implemented using PIT. Advantages are that you can perform multiple iterations over the same PIT and also restart a search if exceptions are through for example. We should consider how each case would be best consumed.
For the below, we assume that the overloads which do not accept an existing PointInTime will open one, likely against the specific inferred index for the type <T>.
Point in Time Search All
This is incomplete and a work in progress.
namespace Nest
{
    public interface IElasticClient
    {
+        IAsyncEnumerable<SearchAllDocsResult<T>> PointInTimeSearchAllAsync<T>(ISearchRequest<T> request, Time keepAlive, CancellationToken ct = default);
+        IAsyncEnumerable<SearchAllDocsResult<T>> PointInTimeSearchAllAsync<T>(ISearchRequest<T> request, Time keepAlive, PointInTime pit, CancellationToken ct = default);
    }
}

Usage Example
await foreach (var searchResponse in Client.PointInTimeSearchAllAsync(new SearchRequest<Project>
{
    Size = 2,
    Query = new MatchAllQuery(),
    Sort = new List<ISort> { new FieldSort { Field = Infer.Field<Project>(p => p.NumberOfCommits) }, new FieldSort { Field = Infer.Field("_id") } }
}))
{
    foreach(var doc in searchResponse.Documents)
    {
        Console.WriteLine(doc.Name);
    }
}

Point in Time Search All Docs
Support asynchronous iteration over documents using PIT and search after under the hood. A simple way for consumers to access all documents matching query conditions.
This may be unnecessary since we already expose the enumerable Documents on a SearchResponse.
One potential optimisation to consider is if there's any way we can dispatch the next search_after request before the consumer has enumerated all Documents, rather than waiting. This would more of an implementation detail though.
Proposed API(s)
This is incomplete and a work in progress.
namespace Nest
{
    public interface IElasticClient
    {
+        IAsyncEnumerable<SearchAllDocsResult<T>> PointInTimeSearchAllDocsAsync<T>(ISearchRequest<T> request, Time keepAlive = null, CancellationToken ct = default);
+        IAsyncEnumerable<SearchAllDocsResult<T>> PointInTimeSearchAllDocsAsync<T>(ISearchRequest<T> request, PointInTime pit, Time keepAlive = null, CancellationToken ct = default);
    }
}

Usage Example
await foreach (var doc in Client.PointInTimeSearchAllDocsAsync(new SearchRequest<Project>
{
    Size = 2,
    Query = new MatchAllQuery(),
    Sort = new List<ISort> { new FieldSort { Field = Infer.Field<Project>(p => p.NumberOfCommits) }, new FieldSort { Field = Infer.Field("_id") } }
}))
{
    Console.WriteLine(doc.Document.NumberOfCommits);
}

We should consider consumer the scenario where developers need to perform multiple 'search all' (scroll style) requests over the same PIT. We can achieve this by accepting a PIT as an optional argument which we then use in place of opening a new PIT inside the implementation. We could also provide methods on the PointInTimeContext which provide a short-hand way of searching all docs though an existing PIT.
We should consider the scenario where a consumer may wish to provide a 'starts after' argument to control the "search_after" starting point. The easiest choice here is for the consumer to provide the sort after values on the search request they pass in. When present, we prefer using those for the first search.
In cases such as this MatchAll example, where docs will have the same score, and users do not require an explicit sort, we can and should add a tiebreaker sort of _doc (or review the new automatic tiebreaker functionality) so that the search performs more efficiently.
Point in Time Observe All
Similar to the ScrollAll case we want to search through many documents efficiently.
We likely want an IObservable implementation to match ScrollAll, but also an IAsyncEnumerable to pull results.
Design not yet added

I'm particularly interested in PointInTimeSearchAllAsync. What would a potential implementation look like? Would it hide most of the code in the example below, or does it need to be more flexible than that?
var openPointInTimeResponse = await client.OpenPointInTimeAsync<Foo>(request => request
    .Indices("foo_*")
    .KeepAlive("1m")
    );
ICollection<FieldValue> searchAfter = null;
while (true)
{
    var searchResponse = await client.SearchAsync<Foo>(search => search
        .Pit(pit => pit.Id(openPointInTimeResponse.Id))
        .Query(query => query
            /* query */
        )
        .TrackTotalHits(new(false))
        .Sort(sort => sort.Doc(scoreSort => { }))
        .SearchAfter(searchAfter)
    );
    if (searchResponse.Hits.Count == 0)
    {
        break;
    }

    /* collect or map documents */

    searchAfter = searchResponse.HitsMetadata.Hits.Last().Sort.ToList();
}
var closePointInTimeResponse = await client.ClosePointInTimeAsync(request => request.Id(openPointInTimeResponse.Id));


I have a problem:

Cannot open database "MyDatabase" requested by the login. The login failed.  Login failed for user 'DESKTOP-XXX\admin'.

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

ID: 1b15cd4c-9cba-c0e2-7618-7d621a3c5936
Version Independent ID: f4681bc6-57be-6e69-cad9-776ce64d93bd
Content: Quick Overview - EF Core
Content Source: entity-framework/core/index.md
Product: entity-framework
GitHub Login: @rowanmiller
Microsoft Alias: divega

The account you are running Sql server as doesn't have permissions to create a database in the location you selected. You could get around this by running the sql sever agent ( not management studio ) as an account that has permissions to write to that directory.
However, you probably don't want to put your DB in C:\Users\, so instead of the above Id recommend putting it under another folder on your system, such as C:\Users\<your username>\databases or C:\Development\Databases, etc.


Avoid page refresh when submit a form

Description
btw, gogs not refresh page frequently
Screenshots
https://user-images.githubusercontent.com/76462613/197309656-4550db42-f1f2-4256-b35f-1232268c4542.mp4
Gitea Version
1.18.0+dev-558-g94d6d93cc
Can you reproduce the bug on the Gitea demo site?
Yes
Operating System
No response
Browser Version
Firefox and Edge

https://github.com/go-gitea/gitea/issues/17705

Close as duplicate


Allow Glob patterns when specifying the model files in definition files

Hi, I see you made some fundamental changes in handling the model parameters in the last few months. I principle I like these changes. As I'm not a big fan of hard coded paths (even if they are just subpaths under tide_dir) I really like the possibility to use a definition file as an alternative. Here I have one suggestion to make the use of definition files easier.
In the current version under model_file the user needs to specify a long list of each single constituent file. I would suggest to allow to use a Glob pattern here as well. So instead of
model_file ~/data/TIDE_MODEL/fes/fes2014_elevations_and_load/fes2014b_elevations/2n2.nc, ~/data/TIDE_MODEL/fes/fes2014_elevations_and_load/fes2014b_elevations/eps2.nc, ~/data/TIDE_MODEL/fes/fes2014_elevations_and_load/fes2014b_elevations/j1.nc, ~/data/TIDE_MODEL/fes/fes2014_elevations_and_load/fes2014b_elevations/k1.nc, ~/data/TIDE_MODEL/fes/fes2014_elevations_and_load/fes2014b_elevations/k2.nc, ... + ~30 more files

one could simply write
model_file ~/data/TIDE_MODEL/fes/fes2014_elevations_and_load/fes2014b_elevations/*.nc

To allow this (and at the same time allow the old behavior as well) I suggest to import glob and modify  l.1518ff in model.py as follows:
        model_files = []
        for pattern in re.split(r'[\s\,]+',temp.model_file):
            for model_file1 in sorted(glob.glob(os.path.expanduser(pattern))):
                model_files.append(model_file1)
        temp.model_file = model_files

Furthermore, there is no need to search for the separator r'[\s\,]+' and make a difference between the cases. If no separator is found, the loop runs only once.
BTW: In l.1470 in model.py the print(test) was surely ment for test purposes and can be removed now. ;)

Thanks @DerLude, this is a good idea I just need to think about how I want to implement it.
The print test bug is fixed in the dev branch. Hopefully I finish what I'm working on and can get that bug squashed. :facepalm:

ok. these changes are in #186

ok. I'm working on implementing the ability to use glob patterns in the latest dev branch. Going to refactor a bit of the code base to use pathlib to define, expand and operate on paths. This'll be for the next release 2.0.4.

I've noticed another issue with model definition files which is somehow connected to this issue (therefore I'm just adding this point here).
For OTIS/ATLAS/GOT-type models, the respective extract_constants function returns a list of constituents names. This is not the case for FES-type models. Therefore, you define model.constituents manually in model.py for FES-type models. However, if the model is defined by definition file, model.constituents is  None and pyTMD.predict.drift fails.
I think one possibility would be to define the constituents list in the definition file as well (but this would conflict with the Glob patterns). I suggest another way of handling this:
For the other type of models, you return the constituents directly from extract_constants. Maybe this could be adapted for FES-type models as well. As the constituent name is not saved in the file (e.g. as a nc-attribute), it needs to be extracted from the filename. These are:

for FES: '2n2.nc','eps2.nc','j1.nc',...
for EOT: '2N2_ocean_eot20.nc','J1_ocean_eot20.nc','K1_ocean_eot20.nc','K2_ocean_eot20.nc',...
for HAMTIDE: '2n.hamtide11a.nc','k1.hamtide11a.nc','k2.hamtide11a.nc','m2.hamtide11a.nc','n2.hamtide11a.nc',...
For FES and EOT, this does the job for me:

        if(model.version=="FES2014"):
            model.constituents = [pathlib.PurePath(file_now).stem for file_now in model.model_file]
        elif(model.version=="EOT20"):
            model.constituents = [pathlib.PurePath(file_now).stem.replace("_ocean_eot20","").lower() for file_now in model.model_file]
        for i,cons in enumerate(model.constituents):
            if(cons=="la2"): model.constituents[i] = "lambda2"

Maybe this could be integrated in extract_constants in FES.py? For the sake of robustness, you could allow to still define the constituents manually but if they are None, those extracted from the filenames will be used.
BTW thanks for the hint with pathlib! Especially stem is very nice, as it avoids the need for sebsequent calls of os.path.basename and os.path.splitext ;)

Alright. I think I have this all working now in main. The constituents parsing bit did require some remapping functionality for the lambda2 case as you said (there's also a 2n2 case for HAMTIDE models).
To use globs with definition files:

Define a base path in io.model to search for the files
Set the glob string as model_file in your model definition file. This can include subdirectories if wanting to use a set base directory for all tide models.

For FES2014 elevations, this would look like
model_file    fes2014/ocean_tide/*.nc.gz

For FES2014 currents, this would look like
model_file    fes2014/eastward_velocity/*.nc.gz;fes2014/northward_velocity/*.nc.gz

The python call for reading the definition file would look like
model = pyTMD.io.model(DIRECTORY).from_file(DEFINITION_FILE)

where DIRECTORY is not None. Having DIRECTORY be None uses fully defined paths in the definition file (as it was previously for all definition file cases).
Happy to work on this more, but I figured I could get this initial capability out for you to tinker with! Let me know what you think! :)

Amazing how fast you implemented that! It works almost like a charm but I have two remaining suggestions:

If the globbing fails, either in case of typos or if the user uses DIRECTORY + full path in the DEFINITION_FILE (as I did at first :) ) no files are found and you get this error message:

  File "pyTMD/io/model.py", line 1358, in from_file
    temp.model_directory = temp.model_file[0].parent
IndexError: list index out of range

Maybe you could check this case and send an error message that makes it easier to understand whats going on. I suggest:
                globstr = temp.directory.joinpath(temp.model_file)    # need to save this as temp.model_file gets overwritten
                temp.model_file = list(temp.directory.glob(temp.model_file))
                if(len(temp.model_file)<1): print("No model files found for "+str(globstr)); exit()

For consistency, prepending the DIRECTORY to the files specified in the DEFINITION_FILE should be done for the grid_file (e.g. for TPXO) as well.

I like those changes! They're in #190


Add ARM Cortex-M OpenOCD & BlackMagicProbe arches

Description/Motivation/Screenshots
This is for debugging ARM cortex-m targets through JTAG/SWD using the gdbserver implemented in OpenOCD as well as the one in the black magic probe
How Has This Been Tested ?
"Tested" indicates that the PR works and the unit test (i.e. make test) run passes without issue.

[ ] x86-32
[ ] x86-64
[ ] ARM
[ ] AARCH64
[ ] MIPS
[ ] POWERPC
[ ] SPARC
[ ] RISC-V

Checklist

[ ] My PR was done against the dev branch, not main.
[ ] My code follows the code style of this project.
[ ] My change includes a change to the documentation, if required.
[ ] If my change adds new code, adequate tests have been added.
[ ] I have read and agree to the CONTRIBUTING document.

Still needs work, mostly in the gef project, but want to have a way for an arch to hint to the memory manager how to map.

Does this PR still make sense (after #99 got merged)?

Does this PR still make sense (after #99 got merged)?

Yes. That was for BlackMagicProbe, this is for OpenOCD. Updated the description so it makes sense.
Still need to do more testing and write docs.

I tested this on a Tiva C-series (ek-tm4c123gxl) and everything seems to work fine. LGTM?

@PowerUser64 thanks for testing this out. I just applied what should be a no-op change as suggested by @hugsy . Any chance you could try to ensure it still works? We can merge then. I just don't have the hardware accessible for a few days and I basically forgot this PR was still open, so it would be nice to merge.

Seems to work! I'm able to place (hardware) breakpoints, go to next instructions, watch variables (done by halting pc every frame), and I get registers, stack, code, threads, and trace provided by gef. Would you like me to test loading arm-openocd.py in any way other than source ./arm-openocd.py, then arch set armopenocd after gef-extras is loaded? (Or is that the intended way?)

Ah, you should use the gef-openocd-remote which also sets up the remote. How were you connecting to the target?

I've been using this command to start openocd and connect to the board:
gef -ex 'target extended-remote | openocd -f board/ek-tm4c1294xl.cfg -c "gdb_port pipe; log_output openocd.log"; monitor reset; monitor halt' ./build/debug.axf

Using gef-openocd-remote, I get an error:
# *first, launched openocd from another terminal like this: openocd -f board/ti_ek-tm4c123gxl.cfg
# ...
gef> gef-openocd-remote localhost 3333
0x0000048e in SystemInit () at src/system_TM4C123.c:608608         for (i = 0; i < 10000; i++);   /* wait a while */
[*] Using `target remote` with GEF should work in most cases, but use `gef-remote` if you can. You can disable the overwrite of the `target remote` command by toggling `gef.disable_target_remote_overwrite` in the config.
[!] Command 'gef-openocd-remote' failed to execute properly, reason: Specified arch ARMOPENOCD is not supported

In the error, it looks like it's capitalizing the architecture name. When I use arch set, I give it armopenocd in lowercase, but the error it's upper case.
However, I'm also noticing that I don't get the gef-openocd-remote command until after I do source ./arm-openocd.py, so it could be something with my environment. I feel like gef-extras should be loading this by default, along with the other "extra" things that it definitely is loading, but it seems extra arches are unloaded by default. I checked the docs to see if it says how to load these, but I couldn't seem to find anything suggesting a way to automatically load it. Does gef provide a way to load files like arm-openocd.py other than putting source /path/to/gef-extras/archs/arm-openocd.py in ~/.gdbinit?

I manually source mine after gef.py and the rest of gef-extras. The arch selection should not be case sensitive. I can't repro this (without hardware atm) but will test with hardware this week.
If what you have is working, that's great! I've never seen the gdb_port pipe openocd command before.

I finally had a use for this, and saw that lower case issue.
Pushed a fix in hugsy/gef#1159

Should be ok to merge after that PR.

I can't merge for some reason


Refactor apply_inverse_transfer_function file for multiprocessing

Fixes #396
This refactoring PR tees up @edyoshikun for a clean multiprocessing implementation that replaces #392.
@edyoshikun I will be testing this on hummingbird tomorrow morning.

Tested this on hummingbird and it's working well after minor integration changes. Thanks again @edyoshikun @ziw-liu.
@edyoshikun if you approve this soon I'll continue working from main. If not I'll work on an integration branch.


Filters

@inikep recently released XWRT.  I'm thinking it may make sense to create a way to chain preprocessors onto compression/decompression operations, and add the ability to create plugins for preprocessors as well as compressors/decompressors.
"Preprocessors" probably isn't the best word; for decompression they're really "postprocessors".  Perhaps "filters" would be a better word.  This could also allow us to add layers for things like error correction, cryptography, streaming support for buffer-to-buffer compressors (a bit like how snappy-framed works), etc.
It could even be possible to create something like a TCP filter which just tunnels everything over a network, or an SSL filter which tunnels content over SSL (and would likely build on a TCP filter), though I feel like that might be more of a supported abuse of the idea than a use case we should explicitly target…

I've been thinking about this in a bit more detail.
Requirements

Symmetrical.  decode(encode(M)) == M must be true.  If you want to calculate a one-way hash, lossy compression, etc., use something else.  OTOH, an encoder which adds a hash value and a decoder which verifies it and outputs the original data would definitely be appropriate.
Generic.  decode(encode(M)) == M must be true for all inputs.  If you want to write a filter which works on executables, DNA data, etc., it can't emit an error if the data doesn't conform to what you expect.  This could force you to use a small container to indicate whether to actually apply the filter or not, but I'm guessing that misuse of a filter would usually just result in a poor ratio and wasted CPU cycles.
Synchronous.  After thinking about the SSL and TCP ideas, I just don't see how it's possible with the zlib-style stream API.  Things like networking can, and probably should, be done at a higher level.

Types
I don't think it would be right to think of compression codecs as "codecs" and everything else as "filters".  Instead, everything would be a codec, and compression codecs would just be one type.  I think it would be good to add an enumeration for to make the type easily introspectable, and indicate the codec type in the plugin's 'squash.ini'.  Off the top of my head:

Compression
Checksum
Crypto
Error correction
Container
Other

"Other* would basically be a catch-all; if codecs actually use it we should look at what they're doing and consider adding a new type to describe that use case.
"Container" is interesting because it could potentially overlap with everything else.  I'm thinking about it as somewhere you might want to put a generic implementation of something like snappy-framed; if it's just a container for adding a checksum then "checksum" would be more appropriate.  The type wouldn't really have any effect on Squash itself, it would just be used to provide more information to consumers.
Pipelines
In order to make this useful, I'm thinking the best way forward would be to create a subclass of SquashStream, tentatively SquashPipeline.  Pipelines would basically just be a way to chain together multiple codecs.  The API could be as simple as
SquashPipeline* squash_pipeline_new (SquashStreamType stream_type);
void squash_pipeline_add (SquashPipeline* pipeline, SquashStream* stream);

I'd also like to add a function to parse string desciptions of a pipeline.  The syntax could be similar to what gst-launch (from gstreamer) expects, though I'd use vertical pipes instead of exclamation marks.  So you could have a string like "lz4 level=9 | aes-gcm key=0xdeadbeef | ldpc" for compressing data with LZ4, encrypting it with AES-GCM, and adding LDPC for error correction.  Or, for XWRT + Brotli, you could have "xwrt | brotli level=11".  the API could still be quite simple:
SquashPipeline* squash_pipeline_new_parse (SquashStreamType stream_type, const char* pipeline);

If you make it a decoder stream then obviously everything would just be added in the reverse order.
Composability
One interesting thing is that pipelines would be composable.  You could easily have a plugin which implemented a codec as a pipeline.  For example, maybe you could have a "gzip" codec which is implemented as a pipeline of "deflate | adler32 | gzip-container" (I don't really know anything about the internals of the gzip format, maybe that doesn't make sense, but you get the idea).
CLI
One issue with this is I'm not sure how it would fit with the current CLI.  The simplest solution would just be to make the codec argument allow pipeline description strings, but there would be some weirdness because then we would have two ways to provide options (-c "foo bar=baz" vs. -c foo -o bar=baz).
I don't want to just drop the current way of doing things because I like the idea of squash generally working like other compression tools (gzip, bzip2, xz, etc.).  A couple options come to mind:

Just make the options provided via -o or -1…9 apply to the compression codec, and one or the other takes priority (i.e., for -9 -c 'foo level=8', whether the level is 8 or 9 should be well-defined).
Create an alternate CLI for those who want to specify pipelines.

Implementation
This is all actually pretty straightforward to implement.

[ ] Support for a type field in codecs, with a value parsed from the ini files.
[ ] Add a SquashPipeline* (or whatever), with implementations for most of the callbacks which just shuffle data form the output of one stream to the input of another.
[ ] Write a parser for pipeline description strings (ragel?)
[ ] Figure out how to integrate this into the CLI and do it

In FreeArc you can use many combinations of preprocessors. Maybe it will help you with designing your implementation:
http://freearc.org/FreeArc036-eng.htm (and search for "preprocessor").

I definitely prefer GStreamer's syntax to FreeArc's, and it is much more widely known.  As for code, based on what I've seen of Tornado I have no desire to even look at FreeArc's code (even if it weren't GPL).
The only interesting thing about FreeArc's pipelines that I've seen is that they support running different files through different preprocessors, but that isn't something that fits in a single-file compressor like Squash.

FreeArc license isn't the GPL, it's a sort of "look but don't touch" :)


(high level) cloud operational model

Describe the issue
A first look at the cloud operational model.
Which Sprint Priority is this issue related to?
Additional context
This is one of the first steps in building the cloud technical roadmap.
Definition of done

Whiteboard pic attached from our meeting this morning.![cloud operation model.


Remov depricated method subtractwithoverflow and fix with alternate &- operator

Coverage remained the same at 77.037% when pulling 64eaa5b68ba3552492f53cc3bebe54e5cadb2f61 on mohlogan-patch-1 into 34a0858dd4248f773a02e6003043b2874b1ab565 on development.

Coverage remained the same at 77.037% when pulling 0063e5d091dc4cbbd14c80ff7b19c6b814e21332 on mohlogan-patch-1 into 34a0858dd4248f773a02e6003043b2874b1ab565 on development.


Update Statistics on Partitioned Table - getting 'NORECOMPUTE' is not a recognized

Description of the issue
Getting 'NORECOMPUTE' is not a recognized UPDATE STATISTICS option when running IndexOptimize on partitioned Table.
UPDATE STATISTICS [xyzdb].[dbo].[xyzTBL] [_WA_Sys_00000005_206A9855] WITH RESAMPLE, NORECOMPUTE ON PARTITIONS(1)
If I manually run the command switching the NORECOMPUTE and RESAMPLE options as below then it runs fine.
UPDATE STATISTICS [xyzdb].[dbo].[xyzTBL] [_WA_Sys_00000005_206A9855] WITH NORECOMPUTE, RESAMPLE ON PARTITIONS(1)
SQL Server version and edition
Execute SELECT @@VERSION
Microsoft SQL Server 2017 (RTM-CU16) (KB4508218) - 14.0.3223.3 (X64)   Jul 12 2019 17:43:08   Copyright (C) 2017 Microsoft Corporation  Enterprise Edition (64-bit) on Windows Server 2016 Standard 10.0  (Build 14393: )
Version of the script
Check the header of the stored procedure
Version: 2019-06-14 00:05:34
What command are you executing?

Msg Msg 155, 'NORECOMPUTE' is not a recognized UPDATE STATISTICS option.

For now, changed the IndexOptimize to Insert the NORECOMPUTE argument before the RESAMPLE argument.
     IF @CurrentNoRecompute = 1
      BEGIN
        INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)
        SELECT 'NORECOMPUTE'
      END

      IF @CurrentStatisticsResample = 'Y'
      BEGIN
        INSERT INTO @CurrentUpdateStatisticsWithClauseArguments (Argument)
        SELECT 'RESAMPLE'
      END

Sorry, meant to just add the comment, not close the issue.

I've also experienced this issue.

This seems like such an easy fix. Why hasn't it just been added to the official release?

I don’t want to speak for him but writing free software is unpaid work that never ends, making changes that he doesn’t need.
It would be nice to have one source but we really can’t demand anything.

You are right of course. I am not trying to criticize Ola or what he chooses to focus on. Just observing that it is an easy fix. Of course, There may be ramifications when testing against all versions and environments so I should just keep quiet. I'm glad I have a solution.

I had the same thoughts. My reply is as much to myself as it is to you 😅

Changing IndexOptimize to Insert the NORECOMPUTE argument before the RESAMPLE argument worked for me as well per @ShakerGit 's suggestion in https://github.com/olahallengren/sql-server-maintenance-solution/issues/285#issuecomment-619363348

I just had the same error and found this thread.
My friends, isn't this an open-source project?
If you already know how to fix this, why not just open a pull request with the fix?


Heating board/component board

Chris--Just an idea. Why not have the component board detachable from the heating board. That way you can replace the heating board if need be.

Hey @JamesHauser1, have you checked out the discord server https://discord.com/channels/949124073164787732/949124076142751777 ?  Looks like bunch of folks have made progress on decoupling the controller from the hot plate.
There's so many forks of this project, but hard to tell who's done what, and unfortunately pull requests don't seem to be getting merge into the main branch.


Example browser build using watch should copy scripts as well

When npm run build:debug is used to locally work on the engine examples, the scripts are not automatically copied  to dist folder the same way the example code is.
This make it slow to make changes to those, and the process need to be restarted.
If possibly, all scripts, but perhaps all assets, should be updated when changed.

Just curious of this has been address with the latest updates to Examples?

closing as this works now.


When [Bug Report] enters Tree component data is prohibited, in some cases, the selection will fail and the console will not report error

Element UI version
2.0.5
OS/Browsers version
win7/chrome
Vue version
2.5.3
Reproduction Link
https://jsfiddle.net/lianmingtang/vmLpv3n7/1/
Steps to reproduce
一级不能取消选中状态，可查看实例。
What is Expected?
传入Tree组件数据有禁止时，某些情况下反选会失效，控制台没有报错，如jsfiddle的例子。
What is actually happening?
一级不能取消选中状态，可查看实例。

Hurry up, please

Please refer to https://github.com/ElemeFE/element/issues/4767

thanks


Update 167-prime-spiral.md

Community Contribution
Link to live project, video, or image:

Sharing

[ ] I would be happy to have my project shared on The Coding Train's social media!

Instagram:
Twitter:

Thank you for sharing!!


Short clear summary of the problem

Describe the bug
After I log in with twitter oAuth there is no accessToken on the user session, so I'm not able to make any further requests to the twitter API.
To Reproduce

Login through twitter
Check the users session and there will not be an access token.

export default (req, res) => {
  const session = await getSession({ req })

  if (session) {
    // This will always be undefined with Twitter login.
    const { accessToken } = session.user

  ...
}

Expected behavior
I would expect there to be an access token to make future requests.

I was wondering the same thing yesterday. Started using next-auth with the Facebook provider, but the session doesn't contain the accessToken
import { NextApiRequest, NextApiResponse } from 'next';
import NextAuth from 'next-auth/client';

export default async (req: NextApiRequest, res: NextApiResponse): Promise<void> => {
  const session = await NextAuth.getSession({ req });

  console.log('ApiSession: ', session);

  res.statusCode = 200;
  res.setHeader('Content-Type', 'application/json');
  res.end(JSON.stringify({ name: 'John Doe' }));
};

ApiSession:  {
  user: {
    name: '...',
    email: '...',
    image: '...'
  },
  expires: '...'
}

Seems like, when we don't use a database and therefore use the JWT the getSession doesn't return the accessToken.
https://github.com/iaincollins/next-auth/pull/223/files#diff-260a419701f5eb5faf852739254bad14R39

This has been answered a few times before (please see previous requests) the tl;dr is that NextAuth.js saves the refreshToken and accessToken for each OAuth account so you can do stuff with it if you want to (and it includes a field in the database where you can store the expiry time) but it doesn't currently return handling automatic refreshing of the accessToken for you.
You can use the session callback to return the provider access token from the JSON Web Token (if using JWT) or from the accounts table (if you have configured a database).
NextAuth.js returns a session specific accessToken if you are using database sessions, so you can build an endpoint that does this as securely as possible. NextAuth.js doesn't expose third party accessTokens to the client by default.

Marking as closed for now. Please do re-open if that was not helpful and there is still a problem.
We'll likely have better documentation for this in a tutorial / guide at some point, as I know it's not obvious right now (it comes up a bunch).


Remove Python 2.7 from Travis CI

Python 2.7 is no longer maintained as of January 1, 2020.

I opened this to fix the tests of #123 (thinking it was a simple fix), but it's breaking Python 3.* tests now. Do we want to continue testing with Python 2.7?

why is it breaking 3.* tests?

I'm confused by this as well. The other PR I'm working on (#123) is failing with the same Python versions. Could something have been updated in Travis?

There is a known issue between Python3 and Pandas. This problem is resolved in #123, by specifying a downgraded version of pandas. So the remaining question here is if we should continue to test Python2?
AttributeError: module 'pandas.core' has no attribute 'index'

Not necessary to remove Python 2.7 from tests, closing this PR.


[HUDI-4219] Merge Into when update expression "col=s.col+2" on precombine cause exception

What is the purpose of the pull request
This PR fix a repeated calculation bug when Merge with precombine expression.
Detail is in https://issues.apache.org/jira/browse/HUDI-4219
Brief change log
When build sourceDF with PreCombine field, fix the equality judging between targetPreCombineField and sourceExpression. PreCombine expression like "col=s.col+2" used to be recognized not equal, it cause that precombine expression will be calculated repeatedly.
Verify this pull request

Added HoodieClientWriteTest to verify the change.
Manually verified the change by running a merge on cluster.

Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@alexeykudinkin  @XuQianJin-Stars   could you pls help review again， thanks

@alexeykudinkin : can you follow up on review when you get a chance.

@hudi-bot run azure

@hudi-bot run azure

@alexeykudinkin  could you pls help review again, thanks

LGTM


Starting pitcher

This project is awesome. Thank you so much!
Is there a way to find the probable starting pitcher for today's games? They are displayed on mlb gameday.

I'm not sure right now, but I will look into it and get back to you soon.

After looking into it a little more, the file changes too much during the game and after the game so it can't be used in mlbgame. If you want to get this data on your own, it is available in linescore.xml for a game that has not been played yet.
Here is an example (just change the date and game id to match):
http://gd2.mlb.com/components/game/mlb/year_2016/month_06/day_30/gid_2016_06_30_lanmlb_milmlb_1/linescore.xml
Alternatively, if you find a good solution for getting this data and submit it in a PR, I would be happy to merge it.

Thanks for the info! linescore.xml looks good. Probable starting pitcher is really only useful before the game starts. No need to put it into the mlbgame data. I'll have a PR for you, eventually. But it will take a while before I get to that part of my project.
For past games the starting pitcher is always the first pitcher in the pitching stats for that game, correct?

Yes, they are in order of which they appeared in the game so the starter is first.

I just saw that the probable starting pitchers are now available. Thank you!! :D


Break some dependencies and remove old ad-hoc code in favor of project types.

Two dull maintenance things.
--
In the second change, the SPI interface parameter was being converted "by hand" in derived classes.
All of that magic conversion has to go into the project.types mechanism.
project.types converts the user's project file, where they enter data in user-friendly form, to exactly the form needed by the animation, driver, layout or run.
No further conversion should be needed!
--
In the second change I introduced a circular dependency.  The first change breaks this by extracting out a couple of widely used functions from the "excessively busy" project.py.
project.py has too many incoming and outgoing import dependencies, and has done this before.  We should avoid adding new functionality to that file in future, and look for further ways to reduce it.

All right!  Please check this fixup.  I still haven't found my RP, grr - this is the only way to test anything with SPI in it, right?

I know I have one somewhere!  I'll take a look tomorrow probably.
On Tue, Sep 5, 2017 at 7:30 PM, Adam Haile<EMAIL_ADDRESS>wrote:

@adammhaile approved this pull request.
Looks good. And yup, you need a Pi. I will test everything after SparkCon
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ManiacalLabs/BiblioPixel/pull/416#pullrequestreview-60681937,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPdsjIDdw51VPislSprpIr_IVGkkjciks5sfYVSgaJpZM4PFrlQ
.

--
/t
https://tom.ritchford.com https://tom.ritchford.com
https://tom.swirly.com https://tom.swirly.com

And I just tested this on an AllPixel too!

:) +1
On Wed, Sep 13, 2017 at 10:42 AM, Tom Swirly<EMAIL_ADDRESS>wrote:

And I just tested this on an AllPixel too!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ManiacalLabs/BiblioPixel/pull/416#issuecomment-329189983,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA6a6t9lc9iRrNz2BY2WTuCaJ_2UhgGpks5sh-nPgaJpZM4PFrlQ
.


Update to quickstart script in example README

The Zipkin Server group coordinates have changed in the latest versions of the Zipkin Server, so the previous download instructions would not download the latest Zipkin Server. The quickstart script provided by Zipkin will download the latest server.
See https://github.com/openzipkin/openzipkin.github.io/issues/136

gracias tomaz!
On Wed, Jul 31, 2019 at 11:41 PM Tommy Ludwig<EMAIL_ADDRESS>wrote:

The Zipkin Server group coordinates have changed in the latest versions of the Zipkin Server, so the previous download instructions would not download the latest Zipkin Server. The quickstart script provided by Zipkin will download the latest server.
See openzipkin/openzipkin.github.io#136

You can view, comment on, or merge this pull request online at:
https://github.com/Dudi119/cppKin/pull/90
Commit Summary
Update to quickstart script in example README
File Changes
M examples/cpp/README.md (4)
Patch Links:
https://github.com/Dudi119/cppKin/pull/90.patch
https://github.com/Dudi119/cppKin/pull/90.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks!


docs: Set type-hints format to short

During a review I noticed that we have long hyperlinks for the type annotations that come from autodoc implemented in PR#7018 (not napoleon (!) ). Since we have a very structured code base with many submodules I want to shorten these. It is accomplished with the autodoc_typehints_format = "short" configuration. This should be the default configuration but somehow it is not. Do we need to upgrade sphinx?
The effects can be seen here:
autodoc_typehints_format = "fully-qualified":

autodoc_typehints_format = "short":

Unfortunately the typehints that use a mixture of typing.* or collections.abc.* and our own types are not shortened (example: aslist parameter). This can be fixed by introducing nice type aliases and maintain them in the conf.py via autodoc_type_aliases. Or maybe even using sphinx-autodoc-typehints extension for this?
Do you think further investigation is worth it?

This should be the default configuration but somehow it is not. Do we need to upgrade sphinx?

According to the docs, it became the default with Sphinx 5.0, which we are using in our CI: https://github.com/DSD-DBS/py-capellambse/actions/runs/3339631666/jobs/5528814069
And the setting takes effect in both the GH pages and on my local dev machine. https://dsd-dbs.github.io/py-capellambse/code/capellambse.model.common.html
So I don't see the issue you're trying to solve? Do you perhaps just need to upgrade Sphinx locally on your machine?

So I don't see the issue you're trying to solve? Do you perhaps just need to upgrade Sphinx locally on your machine?

Yes, my sphinx version was <5.3.0. I close this.


Build accordion feature into stacked table

Hi,
Just wondering how difficult it would be to add an accordion feature to the stacked table, using the jQuery Accordion (https://jqueryui.com/accordion/) for instance?
I'm assuming the values in the first column of the table would become the text for the heading of each panel, together with an arrow pointer. When clicked, the rest of that row's contents would scroll down and any previously open panels would close.
Just thinking this would drastically reduce the need for vertical scrolling when displaying the table on a small screen.
Congrats on a great plugin!
Kind regards,
Tony.

This is by no means completed or fleshed out, but seems to be working on the site I'm building. It creates a row before each data row with a single td with the data row's first cell's data and clicks to toggle it.
Popped into tablesaw.stackonly.js line 208.
`// get tbody rows to add accordion toggle rows before each
var rows = this.$table.find('tr:not(:has(th))');
rows.each(function() {
  // get first cell's content to place in toggle row
  var title = $(this).children().eq(0).html(),
      row = $("

");
      cell = $("" + title + "	");

  // add toggle functionality
  cell.click(function() {
    row.toggleClass('on').next().toggleClass('open');
  });

  $(this).before(row.html(cell));
});`

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open.
The enhancement backlog can be found here: https://github.com/filamentgroup/tablesaw/issues?utf8=✓&q=label%3Aneeds-votes+sort%3Areactions-%2B1-desc+
Don’t forget to upvote the top comment with 👍!


Re-exporting a module compiles to 'exports.default = ...`

I've been doing some IE debugging and noticed a show-stopper that seems to fall into Babel's territory.  I keep getting the following issue:

Expected Identifier

Which traces back to the following code:
define('qualaris-mantra/components/ember-wormhole', ['exports', 'ember-wormhole/components/ember-wormhole'], function (exports, ember_wormhole) {

	'use strict';

	exports.default = ember_wormhole.default; // Error points to this line

});

I went and looked up the ember-wormhole code that corresponds to this module, and it can be found here.  In case you don't feel like following the link, it's just re-exporting another module.
Is this an issue on Babel's end? To me, it seems like the problem is that Babel translates the re-export to
exports.default = ember_wormhole.default;

instead of
exports['default'] = ember_wormhole['default'];

I looked around at all the other modules and they all seem to use the exports['default'] syntax.  It's only an issue with IE, and all the other modules seem to be OK.

This was originally opened as an issue as an issue on Babel's repo but we determined that it's probably not an issue with Babel's core. It think it's more likely that the problem is with the transformation the the CLI uses to handle modules instead.

confusingly this is a bug in esperanto https://github.com/esperantojs/esperanto/pull/176

Huh, alright then! Thanks for the follow-up :smile:

https://github.com/ember-cli/ember-cli/pull/4545 will fix it. I plan to release another ember-cli this afternoon.


recognize: DS4 as wired / Xbox as bluetooth

Hello guys, today i fond this, when playing Star Wars jedi fallen.
When i use controler with bluetooth, game recognize controller as XBOX. In game controls are (X,A,Y,B) etc, and rgb light all the time.
But when i play with usb cable, game recognize as shout be DS4 controller. And controls in game are (▲, O , X) and rgb light blinks when controller rumble.
It this is normal ? or a strange bug with bluetooth ?

when it is wired that should be the in game settings for the controller. As in DS4 windows will take over when it is in bluetooth.

You are posting in the old, no-longer-maintained DS4Windows repository (Jay2Kings).
Trying posting your issue here: https://github.com/Ryochan7/DS4Windows/issues

From the README:

DS4Windows is a portable program that allows you to get the best experience while using a DualShock 4 on your PC. By emulating a Xbox 360 controller, many more games are accessible.

I can only assume that the game is picking up the real DirectInput controller when connected via USB and the emulated Xbox 360 controller when connected via BT. The mode switch that DS4Windows does to get access to the extra features of the DS4 (lightbar, touchpad, gyro) causes the original DirectInput controller to be seen as dead with BT so games will not see any input from that controller. The same behavior happens for BT connected controllers in Steam Input and InputMapper. The mode switch does not cause the dead controller issue when the DS4 is connected via USB or the Sony Wireless Adapter though.


[tool_crash] StateError: Bad state: Future already completed

Command
flutter run --machine --start-paused -d web-server --web-server-debug-protocol ws --web-server-debug-backend-protocol ws --web-server-debug-injected-client-protocol ws --web-allow-expose-url --devtools-server-address http://<IP_ADDRESS>:9100/ --target lib/main.dart --web-renderer html --web-port 54601

Steps to Reproduce

...
...
...

Logs
StateError: Bad state: Future already completed
#0      _AsyncCompleter.complete (dart:async/future_impl.dart:35:31)
#1      WebDevFS.connect.<anonymous closure> (package:flutter_tools/src/isolated/devfs_web.dart:703:16)
<asynchronous suspension>

[✓] Flutter (Channel stable, 3.3.6, on Ubuntu 22.04.1 LTS 5.10.124-linuxkit, locale C.UTF-8)
    • Flutter version 3.3.6 on channel stable at /home/developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6928314d50 (6 days ago), 2022-10-25 16:34:41 -0400
    • Engine revision 3ad69d7be3
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✗] Linux toolchain - develop for Linux desktop
    ✗ clang++ is required for Linux development.
      It is likely available from your distribution (e.g.: apt install clang), or can be downloaded from https://releases.llvm.org/
    ✗ CMake is required for Linux development.
      It is likely available from your distribution (e.g.: apt install cmake), or can be downloaded from https://cmake.org/download/
    ✗ ninja is required for Linux development.
      It is likely available from your distribution (e.g.: apt install ninja-build), or can be downloaded from https://github.com/ninja-build/ninja/releases
    ✗ pkg-config is required for Linux development.
      It is likely available from your distribution (e.g.: apt install pkg-config), or can be downloaded from https://www.freedesktop.org/wiki/Software/pkg-config/

[!] Flutter IDE Support (No supported IDEs installed)
    • IntelliJ - https://www.jetbrains.com/idea/
    • Android Studio - https://developer.android.com/studio/
    • VS Code - https://code.visualstudio.com/

[✓] Connected device (1 available)
    • Web Server (web) • web-server • web-javascript • Flutter Tools

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 3 categories.

Flutter Application Metadata
Type: malformed
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: null
Creation framework version: null
Plugins
flutter_stripe-4.0.0
image_picker_web-2.1.1
integration_test
maps_launcher-2.0.1
path_provider-2.0.11
path_provider_android-2.0.20
path_provider_ios-2.0.11
path_provider_linux-2.1.7
path_provider_macos-2.0.6
path_provider_windows-2.1.3
stripe_android-4.0.0
stripe_ios-4.0.0
url_launcher-6.1.6
url_launcher_android-6.0.19
url_launcher_ios-6.0.17
url_launcher_linux-3.0.1
url_launcher_macos-3.0.1
url_launcher_web-2.0.13
url_launcher_windows-3.0.1

Closing as duplicate of https://github.com/flutter/flutter/issues/96988


Ability to specify custom cloud config format (i.e. gcfg for vSphere/Openstack)

Rancher versions:
rancher/server or rancher/rancher: v2.0.0-beta4
rancher/agent or rancher/rancher-agent: v2.0.0-beta4
Infrastructure Stack versions:
network provider: Flannel
kubernetes (if applicable): v1.9.5-rancher1-1
Docker version: (docker version,docker info preferred)
Client:
Version:      1.12.6
API version:  1.24
Go version:   go1.7.6
Git commit:   d9ad3fc
Built:        Tue Apr  3 05:31:26 2018
OS/Arch:      linux/amd64
Server:
Version:      1.12.6
API version:  1.24
Go version:   go1.7.6
Git commit:   d9ad3fc
Built:        Tue Apr  3 05:31:26 2018
OS/Arch:      linux/amd64
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1688.5.3
VERSION_ID=1688.5.3
BUILD_ID=2018-04-03-0547
PRETTY_NAME="Container Linux by CoreOS 1688.5.3 (Rhyolite)"
ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://issues.coreos.com"
COREOS_BOARD="amd64-usr"
Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
Custom host provisionning on VMware (not done through rancher).
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
Kubernetes cluster built with custom provider: 5 nodes (3 control planes/etcd and 2 workers)
Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
Steps to Reproduce:
In the cluster configuration options for custom provider, I filled information on Cloud provider (for vSphere Storage):

This configuration has been tested in another Kubernetes cluster built with Kubespray and works perfectly.
Start adding controle plane node.
Results:
When starting to add node to the cluster (control plane), the kube-apiserver does not start and complains with the following error:
+ echo kube-apiserver --tls-private-key-file=/etc/kubernetes/ssl/kube-apiserver-key.pem --service-account-key-file=/etc/kubernetes/ssl/kube-apiserver-key.pem --admission-control=ServiceAccount,NamespaceLifecycle,LimitRanger,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds --client-ca-file=/etc/kubernetes/ssl/kube-ca.pem --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --storage-backend=etcd3 --cloud-provider=vsphere --kubelet-client-key=/etc/kubernetes/ssl/kube-apiserver-key.pem --cloud-config=/etc/kubernetes/cloud-config.json --authorization-mode=Node,RBAC --bind-address=<IP_ADDRESS> --insecure-port=0 --tls-cert-file=/etc/kubernetes/ssl/kube-apiserver.pem --kubelet-client-certificate=/etc/kubernetes/ssl/kube-apiserver.pem --allow-privileged=true --service-cluster-ip-range=<IP_ADDRESS>/16 --insecure-bind-address=<IP_ADDRESS> --secure-port=6443 --etcd-cafile=/etc/kubernetes/ssl/kube-ca.pem --etcd-certfile=/etc/kubernetes/ssl/kube-node.pem --etcd-keyfile=/etc/kubernetes/ssl/kube-node-key.pem --etcd-servers=https://<REDACTED>:2379,https://<REDACTED>:2379,https://<REDACTED>:2379 --etcd-prefix=/registry
+ grep -q cloud-provider=azure
+ '[' kube-apiserver = kubelet ']'
+ exec kube-apiserver --tls-private-key-file=/etc/kubernetes/ssl/kube-apiserver-key.pem --service-account-key-file=/etc/kubernetes/ssl/kube-apiserver-key.pem --admission-control=ServiceAccount,NamespaceLifecycle,LimitRanger,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds --client-ca-file=/etc/kubernetes/ssl/kube-ca.pem --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --storage-backend=etcd3 --cloud-provider=vsphere --kubelet-client-key=/etc/kubernetes/ssl/kube-apiserver-key.pem --cloud-config=/etc/kubernetes/cloud-config.json --authorization-mode=Node,RBAC --bind-address=<IP_ADDRESS> --insecure-port=0 --tls-cert-file=/etc/kubernetes/ssl/kube-apiserver.pem --kubelet-client-certificate=/etc/kubernetes/ssl/kube-apiserver.pem --allow-privileged=true --service-cluster-ip-range=<IP_ADDRESS>/16 --insecure-bind-address=<IP_ADDRESS> --secure-port=6443 --etcd-cafile=/etc/kubernetes/ssl/kube-ca.pem --etcd-certfile=/etc/kubernetes/ssl/kube-node.pem --etcd-keyfile=/etc/kubernetes/ssl/kube-node-key.pem --etcd-servers=https://<REDACTED>:2379,https://<REDACTED>:2379,https://<REDACTED>:2379 --etcd-prefix=/registry
I0426 10:46:48.966028       1 server.go:121] Version: v1.9.5
I0426 10:46:48.966927       1 cloudprovider.go:59] --external-hostname was not specified. Trying to get it from the cloud provider.
Error: error setting the external host value: "vsphere" cloud provider could not be initialized: could not init cloud provider "vsphere": 1:1: illegal character U+007B '{'

The cloud config file /etc/kubernetes/cloud-config.json is JSON formatted:
 {

"vsphere_datacenter": "<redacted>",

"vsphere_datastore": "<redacted>",

"vsphere_insecure": <redacted>,

"vsphere_password": "<redacted>",

"vsphere_scsi_controller_type": "<redacted>",

"vsphere_user": "<redacted>",

"vsphere_vcenter_ip": "<redacted>",

"vsphere_vcenter_port": <redacted>,

"vsphere_working_dir": "<redacted>"
}

I tried to replace this file, with the appropriate format present in my other cluster. It looks like this:
[Global]
user = "<redacted>"
password = "<redacted>"
port = <redacted>
insecure-flag = <redacted>

datacenters = "<redacted>"

[VirtualCenter "<redacted>"]

[Workspace]
server = "<redacted>"
datacenter = "<redacted>"
folder = "<redacted>"
default-datastore = "<redacted>"

[Disk]
scsicontrollertype = <redacted>

And now the kube-apiserver container start working. So I think the JSON format is not supported for vsphere cloud provider. Would it be possible to fix this?

We have the exact same bug for the Openstack provider plugin.
The resulting cloud config file in JSON breaks the Kubernetes+openstack integration.

Anyone working on this at the moment?
I can help writing the fix if someone is willing to provide hints and guideline for the patch.

I think I found possibly found where fix should go.
The place where the cloud config is generated by Rancher is initiated here:
https://github.com/rancher/rancher/blob/master/pkg/librke/rke.go#L52
Which leads us to rke, where the custom config is generated as json here:
https://github.com/rancher/rke/blob/master/cluster/cluster.go#L184
https://github.com/rancher/rke/blob/master/cluster/cluster.go#L392

The bug is still existing.
Rancher 2.0.2 with vsphere cloud provider. Same error in kubelet logs.
Someone has a workaround in the meantime?

As long as this issue is open, it is not fixed. This PR (https://github.com/rancher/rancher/issues/13115) has a discussion on the implementation for this issue.

@galal-hussein can you put an example of how someone would be able to use the custom cloud provider support?

Assigning over to UI.

@loganhz Due to the complexity of the other cloud providers, we should make the change for custom option for cloud provider along with your cluster options PR (https://github.com/rancher/ui/pull/1951)
If you select custom, I'd like it to not give any of the name or key/value options, but instead have text that says Please edit the YAML to add in cloud provider. I'll give you a docs reference PR to add in at a later time.
Ping me on slack if that doesn't make sense.

Added. Please let me know once the link for docs is ready. Now it works with YAML. But user has to look at the API schema to figure out what fields can be used here.

I found an issue with the new vsphere cloud-config format. The insecure flag needs to be an int {0,1} instead of a bool.
https://github.com/kubernetes-incubator/kubespray/blob/master/docs/vsphere.md
https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/existing.html

Tested with latest build from master
Able to specify custom cloud config  for vsphere cloud provider using the "Edit as Yaml" option in "Cluster Options" when provisioning cluster.  Custom cloud config gets as a multiline string in cloud_provider section in customCloudProvider: field .
Example for custom cloud config  for vsphere:
cloud_provider:
  name: vsphere
  # Note the pipe as this is what indicates a multiline string
  customCloudProvider: |-
    [Global]
    user = "<user>"
    password = "<password>"
    port = "443"
    insecure-flag = "1" #set to 1 if the vCenter uses a self-signed cert
    datacenters = "<datacenter>"

    [VirtualCenter "<ip>"]
    user = "<user>"
    password = "<password>"
    [Workspace]
    server = "<ip>
        datacenter = "HE-FMT"
        folder = "<name>"
        default-datastore = "kubernetes" #Datastore to use for provisioning volumes using storage classes/dynamic provisioning
    [Disk]
        scsicontrollertype = pvscsi

We should also be able to use the vsphere specific cloud provider vsphereCloudProvider settings in cluster.yml :
cloud_provider:
  name: vsphere
  vsphereCloudProvider:
    global:
      user: <user>
      password: <password>
      port: 443
      insecure-flag: 1
    virtual_center:
      <ip>:
        user: <user>
        password: <pass>
    workspace:
      server: <ip>
      datacenter: <dc>
      folder: <foldername>
      default-datastore: <datastore>
    disk:
      scsicontrollertype: pvscsi

@sangeethah How about that second example you posted? Is that now possible? What is the preferred way of doing it?

We are using RKE to launch kubernetes and the cloud provider support of how to indicate your yamls are located here:
https://rancher.com/docs/rke/v0.1.x/en/config-options/cloud-providers/


workers: remove deprecated experimental-enable-local-persistence flag in commands.md

The flag --experimental-enable-local-persistence is deprecated and no longer available.
When attempting to use this flag, wrangler says:
🚧 'wrangler pages <command>' is a beta command. Please report any issues to https://github.com/cloudflare/wrangler2/issues/new/choose
▲ [WARNING] --experimental-enable-local-persistence is deprecated.

  Move any existing data to .wrangler/state and use --persist, or
  use --persist-to=./wrangler-local-state to keep using the old path.

Okay.


Unsupported operation: serialization of generic DartType: UnknownType(?) (UnknownType)

Tried to compile my flutter app which always worked since the last update.
name and version of  operating system:
MacOS Mojave 10.14.4 (18E226)

the Dart SDK build number (2.9.0-edge.69aba23371ffb12caf596e29dab0d52f74a591e7), and

The compiler crashed: Unsupported operation: serialization of generic DartType: UnknownType(?) (UnknownType)
#0      BinaryPrinter.defaultDartType (package:kernel/binary/ast_to_binary.dart:2229:5)
#1      UnknownType.accept (package:front_end/src/fasta/type_inference/type_schema.dart:82:14)
#2      BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#3      BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#4      BinaryPrinter.visitInterfaceType (package:kernel/binary/ast_to_binary.dart:2067:7)
#5      InterfaceType.accept (package:kernel/ast.dart:7504:42)
#6      BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#7      BinaryPrinter.visitFutureOrType (package:kernel/binary/ast_to_binary.dart:2088:5)
#8      FutureOrType.accept (package:kernel/ast.dart:7903:42)
#9      BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#10     BinaryPrinter.visitAsExpression (package:kernel/binary/ast_to_binary.dart:1614:5)
#11     AsExpression.accept (package:kernel/ast.dart:4913:44)
#12     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#13     BinaryPrinter.writeOptionalNode (package:kernel/binary/ast_to_binary.dart:474:7)
#14     BinaryPrinter.visitReturnStatement (package:kernel/binary/ast_to_binary.dart:1942:5)
#15     ReturnStatement.accept (package:kernel/ast.dart:6491:43)
#16     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#17     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#18     BinaryPrinter.visitBlock (package:kernel/binary/ast_to_binary.dart:1801:5)
#19     Block.accept (package:kernel/ast.dart:5823:43)
#20     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#21     BinaryPrinter.writeOptionalNode (package:kernel/binary/ast_to_binary.dart:474:7)
#22     BinaryPrinter.visitFunctionNode (package:kernel/binary/ast_to_binary.dart:1325:5)
#23     FunctionNode.accept (package:kernel/ast.dart:2909:38)
#24     BinaryPrinter.writeFunctionNode (package:kernel/binary/ast_to_binary.dart:388:10)
#25     BinaryPrinter.visitFunctionExpression (package:kernel/binary/ast_to_binary.dart:1740:5)
#26     FunctionExpression.accept (package:kernel/ast.dart:5535:44)
#27     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#28     BinaryPrinter.visitNamedExpression (package:kernel/binary/ast_to_binary.dart:1501:5)
#29     NamedExpression.accept (package:kernel/ast.dart:3813:38)
#30     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#31     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#32     BinaryPrinter.visitArguments (package:kernel/binary/ast_to_binary.dart:1495:5)
#33     Arguments.accept (package:kernel/ast.dart:3753:38)
#34     BinaryPrinter.writeArgumentsNode (package:kernel/binary/ast_to_binary.dart:395:10)
#35     BinaryPrinter.visitConstructorInvocation (package:kernel/binary/ast_to_binary.dart:1487:5)
#36     ConstructorInvocation.accept (package:kernel/ast.dart:4154:44)
#37     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#38     BinaryPrinter.visitNamedExpression (package:kernel/binary/ast_to_binary.dart:1501:5)
#39     NamedExpression.accept (package:kernel/ast.dart:3813:38)
#40     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#41     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#42     BinaryPrinter.visitArguments (package:kernel/binary/ast_to_binary.dart:1495:5)
#43     Arguments.accept (package:kernel/ast.dart:3753:38)
#44     BinaryPrinter.writeArgumentsNode (package:kernel/binary/ast_to_binary.dart:395:10)
#45     BinaryPrinter.visitConstructorInvocation (package:kernel/binary/ast_to_binary.dart:1487:5)
#46     ConstructorInvocation.accept (package:kernel/ast.dart:4154:44)
#47     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#48     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#49     BinaryPrinter.visitListLiteral (package:kernel/binary/ast_to_binary.dart:1703:5)
#50     ListLiteral.accept (package:kernel/ast.dart:5292:44)
#51     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#52     BinaryPrinter.visitNamedExpression (package:kernel/binary/ast_to_binary.dart:1501:5)
#53     NamedExpression.accept (package:kernel/ast.dart:3813:38)
#54     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#55     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#56     BinaryPrinter.visitArguments (package:kernel/binary/ast_to_binary.dart:1495:5)
#57     Arguments.accept (package:kernel/ast.dart:3753:38)
#58     BinaryPrinter.writeArgumentsNode (package:kernel/binary/ast_to_binary.dart:395:10)
#59     BinaryPrinter.visitConstructorInvocation (package:kernel/binary/ast_to_binary.dart:1487:5)
#60     ConstructorInvocation.accept (package:kernel/ast.dart:4154:44)
#61     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#62     BinaryPrinter.visitNamedExpression (package:kernel/binary/ast_to_binary.dart:1501:5)
#63     NamedExpression.accept (package:kernel/ast.dart:3813:38)
#64     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#65     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#66     BinaryPrinter.visitArguments (package:kernel/binary/ast_to_binary.dart:1495:5)
#67     Arguments.accept (package:kernel/ast.dart:3753:38)
#68     BinaryPrinter.writeArgumentsNode (package:kernel/binary/ast_to_binary.dart:395:10)
#69     BinaryPrinter.visitConstructorInvocation (package:kernel/binary/ast_to_binary.dart:1487:5)
#70     ConstructorInvocation.accept (package:kernel/ast.dart:4154:44)
#71     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#72     BinaryPrinter.writeOptionalNode (package:kernel/binary/ast_to_binary.dart:474:7)
#73     BinaryPrinter.visitReturnStatement (package:kernel/binary/ast_to_binary.dart:1942:5)
#74     ReturnStatement.accept (package:kernel/ast.dart:6491:43)
#75     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#76     BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:291:7)
#77     BinaryPrinter.visitBlock (package:kernel/binary/ast_to_binary.dart:1801:5)
#78     Block.accept (package:kernel/ast.dart:5823:43)
#79     BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:381:10)
#80     BinaryPrinter.writeOptionalNode (package:kernel/binary/ast_to_binary.dart:474:7)
#81     BinaryPrinter.visitFunctionNode (package:kernel/binary/ast_to_binary.dart:1325:5)
#82     FunctionNode.accept (package:kernel/ast.dart:2909:38)
#83     BinaryPrinter.writeFunctionNode (package:kernel/binary/ast_to_binary.dart:388:10)
#84     BinaryPrinter.writeOptionalFunctionNode (package:kernel/binary/ast_to_binary.dart:483:7)
#85     BinaryPrinter.visitProcedure (package:kernel/binary/ast_to_binary.dart:1201:5)
#86     Procedure.accept (package:kernel/ast.dart:2400:40)
#87     BinaryPrinter.writeProcedureNode (package:kernel/binary/ast_to_binary.dart:409:10)
#88     BinaryPrinter.writeProcedureNodeList (package:kernel/binary/ast_to_binary.dart:300:7)
#89     BinaryPrinter.visitClass (package:kernel/binary/ast_to_binary.dart:1129:5)
#90     Class.accept (package:kernel/ast.dart:1379:38)
#91     BinaryPrinter.writeClassNode (package:kernel/binary/ast_to_binary.dart:423:10)
#92     BinaryPrinter.writeClassNodeList (package:kernel/binary/ast_to_binary.dart:318:7)
#93     BinaryPrinter.visitLibrary (package:kernel/binary/ast_to_binary.dart:959:5)
#94     Library.accept (package:kernel/ast.dart:607:38)
#95     BinaryPrinter.writeLibraryNode (package:kernel/binary/ast_to_binary.dart:402:10)
#96     BinaryPrinter.writeLibraries (package:kernel/binary/ast_to_binary.dart:708:9)
#97     BinaryPrinter.writeComponentFile. (package:kernel/binary/ast_to_binary.dart:551:7)
#98     Timeline.timeSync (dart:developer/timeline.dart:163:22)
#99     BinaryPrinter.writeComponentFile (package:kernel/binary/ast_to_binary.dart:535:14)
#100    KernelLoaderTask.load.. (package:compiler/src/kernel/loader.dart:198:19)
#101    CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:179:35)
#102    KernelLoaderTask.load. (package:compiler/src/kernel/loader.dart:191:9)

#103    KernelLoaderTask.load. (package:compiler/src/kernel/loader.dart)
#104    CompilerTask.measure (package:compiler/src/common/tasks.dart:64:51)
#105    KernelLoaderTask.load (package:compiler/src/kernel/loader.dart:60:12)
#106    Compiler.runInternal (package:compiler/src/compiler.dart:238:48)
#107    Compiler.run.. (package:compiler/src/compiler.dart:212:38)
#108    new Future.sync (dart:async/future.dart:223:31)
#109    Compiler.run. (package:compiler/src/compiler.dart:212:20)
#110    CompilerTask.measureSubtask (package:compiler/src/common/tasks.dart:179:35)
#111    Compiler.run (package:compiler/src/compiler.dart:209:41)
#112    CompilerImpl.run.. (package:compiler/src/apiimpl.dart:91:22)
#113    _RootZone.runUnary (dart:async/zone.dart:1450:54)
#114    _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
#115    Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
#116    Future._propagateToListeners (dart:async/future_impl.dart:725:32)
#117    Future._completeWithValue (dart:async/future_impl.dart:529:5)
#118    Future._asyncCompleteWithValue. (dart:async/future_impl.dart:567:7)
#119    _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#120    _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#121    _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#122    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169:5)

@johnniwinther - this may be a CFE issue. This is happening under the --cfe-only flag, so it is serializing the dill immediately after invoking the CFE.

Thanks for the report, @datayeah.  I couldn't reproduce the bug based on the stack trace.  Could you provide a small snippet causing the crash, stripped off any app-specific information?
It would also be helpful to know if the crash surfaces on Dart SDK commit hash 8d4d3a33adcf579babfc1f2fd628768d481ac96c (the one before the likely culprit commit).

I have a repro:
import 'dart:async';

class Class<T> {
  Class({FutureOr<List<T>> Function() a});
}

dynamic method() => null;

main() {
  Class(a: () async => method());
}

It's a quite big project i am working on for some time now, so i am unable to (or unsure how to) isolate the part thats causing the crash. Thanks for adding an example, @johnniwinther!

Thanks for the repro @johnniwinther.  I'm working on a fix in CL 154322.

Unsupported operation: serialization of generic DartType: UnknownType(?) (UnknownType)
Conformed same here !!

@Shiba-Kar Which version of Dart are you running?

@Shiba-Kar Which version of Dart are you running?

2.9.0

This fix is not in '2.9.0' but is in the pipeline for a future release.
@Shiba-Kar Are you blocked by this or do you have a work-around?

This fix is not in '2.9.0' but is in the pipeline for a future release.
@Shiba-Kar Are you blocked by this or do you have a work-around?

For the time being I have downgraded to 1.17.5 flutter

This was fixed in the Dart tree at https://github.com/dart-lang/sdk/commit/ac4de98a294eee5a745e67a3a2d5f15d6e499f2d, I don't believe the fix is in Flutter 1.20 which has Dart version 2.9

should we consider this for a CP to 2.9?  @franklinyow

@pcsosinski 2.9 mean a hotfix release?
@johnniwinther


Using a KMS key to generate data encryption keys for a Next.js Site

I think I have stumbled upon a potential use case where SST does not produce the most secure outcome. In my case, I have a Next.js site in which I would like each user to be issued a data encryption key. Therefore, I would like the server function have the required permissions (e.g. "kms:GenerateDataKey") to the key. I can use CDK to create the Key and then pass the ARN as an environment variable to the site, but I cannot pass the key to .attachPermissions as augmenting the IAM role permissions cannot give access to a KMS key (the permissions must be defined on the resource). If I try to use the role ARN generated by the Next.js site as the principal of the key resource policy, then I have a circular dependency.
At first, I thought I could create a separate IAM role, give it access to the key and then pass it to Next.js site, but I cannot find an opportunity to pass an existing role to NextjsSite.
As a result, I have generated the key using principal conditions in an attempt to limit the scope of access to just the server function, but this is a lot less robust than ensuring the key can only be used by the required role.
I can put an example together of this if it would be helpful.

Hmm I'll need to ask the team to take a look. Can you post this on #help on Discord?

I will join Discord and get on it.

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble