Remove piet API and replace with scene fragments

This PR removes the dependency on the piet crate and replaces it with piet-scene. It also includes some renaming of types and reorganization of the scene crate to provide a more ergonomic API. Some more work is probably necessary here, certainly with regard to documentation.
The swash dependency is also removed and very simple text support has been added (based on piet-scene/moscato) to support rendering info strings.
One open question is whether to retain the ResourceContext as part of the public API. This must be kept in sync with scene construction and rendering and is a potential point of failure. The original intent was to support persistent (retained) brushes in addition to caching gradient ramps, but persistent brushes seem unnecessary and I'm inclined to late bind ramps as well and move the cache back to Renderer. This makes patching ramp ids more complicated, but support for such patching is necessary for images anyway, so it makes sense to reuse it and simplify the public API.

This is layered on top of #188 to enable a clean merge, so that needs to land first.

Closing this to resubmit a clean PR without overlapping C API commits.


[Bug]: empty listen_addrs hotspots is not showed as relayed status

What happened?
A bug happened!
URL
NONE
What browsers are you seeing the problem on?
Chrome
Do you see the issue on Mobile or Desktop?
Desktop
Relevant log output
No response

It's technically not relayed if it has no listen address because it's not even connected. To be relayed it has to be connected through a p2p connection I believe

correct, an empty listen address is not relayed. it's not connected at all.


Grammar railroad diagram

After a small temp change in InterpolatedStringLiteral from CafeBabe.peg and using peg from https://github.com/mingodad/peg that has an extension to output an EBNF understood by https://www.bottlecaps.de/rr/ui (that still needed some small manual fixes) we can have a nice railroad diagram (https://en.wikipedia.org/wiki/Syntax_diagram) for documenting/understand the grammar.
Copy and paste the EBNF shown bellow at https://www.bottlecaps.de/rr/ui on the tab Edit Grammar then click on the tab View Diagram.
Program ::= ( Use* Constant* Type* Extension* Function* Unsafe* Test* eof )
Use ::= ( "use" QualifiedName ImportList? Semicolon )
Constant ::= ( Public? "const" ( "val" | TypeName ) Name "=" Expression Semicolon )
Type ::= ( AnnotationRef* Public? "type" TypeName "=" TypeDecl )
Extension ::= ( Public? "extend" TypeName ApiRefs? ClassBlock )
Function ::= ( AnnotationRef* Public? Method )
Unsafe ::= ( "unsafe" BlockStart Constant* Type* Extension* Function* Test* BlockEnd )
Test ::= ( "test" BlockStart Constant* Type* Extension* Function* Unsafe* BlockEnd )
eof ::= _NOT_ .
QualifiedName ::= ( _NOT_ 'F"' [_$@a-zA-Z] [_$.a-zA-Z0-9]* )
ImportList ::= ( BlockStart NameWithAlias ( Comma NameWithAlias )* BlockEnd )
Semicolon ::= ";"
Public ::= "pub"
TypeName ::= ( Name TypeArguments? BitAnd? ArrayDecl* )
Name ::= ( _NOT_ 'F"' [_$@a-zA-Z] [_$a-zA-Z0-9]* )
Expression ::= ( IfExpression | SelectExpression | MatchExpression | TernaryExpression | Expr )
AnnotationRef ::= ( "@" Name ( LP ExpressionList? RP )? )
TypeDecl ::= ( ApiDecl | AnnotationDecl | TypeAliasDecl | CompoundTypeDecl | TupleDecl | ClassDecl )
ApiRefs ::= ( Colon TypeNameList )
ClassBlock ::= ( BlockStart Constant* Constructor* Destructor? ( StaticMethodImpl | Function | MethodImpl )* NamedClassDecl* BlockEnd )
Method ::= ( MethodSignature MethodBody )
BlockStart ::= "{"
BlockEnd ::= "}"
ApiDecl ::= ( "api" CommonApiBody )
AnnotationDecl ::= ( "annotation" TypedArgDecl AnnotationBody )
TypeAliasDecl ::= ( ArgumentType Semicolon )
CompoundTypeDecl ::= ( ( AndType | OrType )? ( Semicolon | CommonApiDecl ) )
TupleDecl ::= ( LP TypeName? ( Comma TypeName )* OptionalEllipsis? RP Semicolon )
ClassDecl ::= ( "class" ClassDataDecl? ApiRefs? ( ClassBlock | Semicolon ) )
NameWithAlias ::= ( Name ( "as" Name )? )
Comma ::= ","
LP ::= "("
ExpressionList ::= ( Expression ( Comma Expression )* )
RP ::= ")"
OptionalEllipsis ::= ( Comma Ellipsis )
CommonApiBody ::= ( BlockStart Constant* ( ( MethodSignature Semicolon ) | StaticMethodImpl | DefaultMethodImpl )* NamedClassDecl* BlockEnd )
ArgumentType ::= ( UnitDecl | ArrowDecl )
TypedArgDecl ::= ( LP TypedArgList? RP )
AnnotationBody ::= ( BlockStart Statement* BlockEnd )
Statement ::= ( BlockStatement | ( ExpressionStatement Semicolon ) )
AndType ::= ( TypeName ( Comma TypeName )+ )
OrType ::= ( TypeName ( BitOr TypeName )+ )
CommonApiDecl ::= ( ApiRefs? CommonApiBody )
BitOr ::= "|"
Ellipsis ::= "..."
Colon ::= ":"
TypeNameList ::= ( TypeName ( Comma TypeName )* )
MethodSignature ::= ( TypeVarsDecl? ( UnTypedFunction | TypedFunction ) )
StaticMethodImpl ::= ( Public? "static" Method )
DefaultMethodImpl ::= ( "default" Method )
NamedClassDecl ::= ( Public? "class" TypeName ClassBody )
TypeVarsDecl ::= ( "<" LimitedTypeName ( Comma LimitedTypeName )* ">" )
UnTypedFunction ::= ( "fn" Name OptionalNameList )
TypedFunction ::= ( TypeName Name TypedArgDecl )
OptionalNameList ::= ( LP NameList? RP )
NameList ::= ( Name ( Comma Name )* )
ClassDataDecl ::= ( LP ClassFields? RP )
ClassBody ::= ( TypedArgDecl? ApiRefs? ClassBlock )
TypedArgList ::= ( TypedArgument ( Comma TypedArgument )* OptionalEllipsis? )
ClassFields ::= ( ClassField ( Comma ClassField )* OptionalEllipsis? )
ClassField ::= ( Mutable? TypedArgument )
Mutable ::= "var"
TypedArgument ::= ( ArgumentType Name )
Constructor ::= ( Public? Name TypedArgDecl MethodBody )
Destructor ::= ( Public? "~" Name LP RP MethodBody )
MethodImpl ::= ( "impl" Name OptionalNameList MethodBody )
MethodBody ::= ( MethodExpression | MethodBlockBody )
MethodExpression ::= ( "=" Expression Semicolon )
MethodBlockBody ::= ( BlockStart Statement* BlockEnd )
BlockStatement ::= ( ForStatement | IfExpression | SelectExpression | MatchExpression | MethodBlockBody )
ExpressionStatement ::= ( FlowControlStatement | VariableDeclaration | Assignment | IterableStatement | ValueStatement )
ForStatement ::= ( "for" ForSetup MethodBlockBody )
IfExpression ::= ( "if" BooleanExpression MethodBlockBody ( "else" MethodBlockBody )? )
SelectExpression ::= ( "select" NestedExpr SelectBody )
MatchExpression ::= ( "match" NestedExpr MatchBody )
FlowControlStatement ::= ( ReturnExpr | Break | Continue )
VariableDeclaration ::= ( VarTitle Assignment )
Assignment ::= AssignmentExpr
IterableStatement ::= ( Iterable Invoke* )
ValueStatement ::= Value
ReturnExpr ::= ( Return Expression? )
Break ::= "break"
Continue ::= "continue"
Return ::= "return"
VarTitle ::= ( "val" | "var" | TypeName )
AssignmentExpr ::= ( RegularAssignment | ParallelAssignment )
Value ::= ( ValueConstruction Invoke* PostfixOps? )
Iterable ::= ( Comprehension | OpenRange )
Invoke ::= ( CallParameters | MethodCall | Index )
RegularAssignment ::= ( QualifiedName AssignOps Expression )
ParallelAssignment ::= ( RequiredNameList "=" ( TupleConstruction | Expression ) )
AssignOps ::= ( "+=" | "-=" | "^=" | "|=" | "&=" | "=" )
RequiredNameList ::= ( LP NameList RP )
TupleConstruction ::= ( LP ValueReference? Expression? ( Comma Expression )* OptionalEllipsis? RP )
ValueReference ::= ( QualifiedName Invoke* BitOr )
ForSetup ::= ( LP VarTitle Name Colon Expression RP )
CallParameters ::= ( TypeArguments? ( NamedCallParameters | AnonymousCallParameters ) )
MethodCall ::= ( "." QualifiedName Invoke? )
Index ::= ( LSqB Expression RSqB )
TypeArguments ::= ( "<" TypeNameList OptionalEllipsis? ">" )
BitAnd ::= "&"
ArrayDecl ::= ( LSqB RSqB )
LSqB ::= "["
RSqB ::= "]"
LimitedTypeName ::= ( Name ( Colon TypeName ( "+" | "-" )? )? )
UnitDecl ::= ( "(" ")" Arrow ( TypeName Arrow )* Ellipsis? TypeName )
ArrowDecl ::= ( TypeName ( Arrow ( TypeName Arrow )* Ellipsis? TypeName )? )
Arrow ::= "->"
TernaryExpression ::= ( NestedExpr "?" Expression Colon Expression )
Expr ::= ( Or ( LogicalOr Or )* )
BooleanExpression ::= ( LP Expression RP )
NestedExpr ::= ( LP Expression RP )
SelectBody ::= ( BlockStart SelectCase* Default? BlockEnd )
SelectCase ::= ( "case" CaseExpr Arrow Expression Semicolon )
Default ::= ( "default" Arrow Expression Semicolon )
MatchBody ::= ( BlockStart MatchCase* Default? BlockEnd )
MatchCase ::= ( TypeConstructor Arrow Expression Semicolon )
CaseExpr ::= ( NumLiteral | StringLiteral | ObjConstruction )
TypeConstructor ::= ( TypeName | TypeArguments )
NumLiteral ::= ( ( HexNumLiteral | OctNumLiteral | BinNumLiteral | FloatNumLiteral | DecNumLiteral ) NumSuffix? )
StringLiteral ::= ( InterpolatedStringLiteral | StringSegment+ )
ObjConstruction ::= ( TypeName? ObjConstructionBody )
Or ::= ( And ( LogicalAnd And )* )
LogicalOr ::= "||"
And ::= ( BitwiseOr ( BitOr BitwiseOr )* )
LogicalAnd ::= "&&"
BitwiseOr ::= ( BitwiseXor ( BitXor BitwiseXor )* )
BitwiseXor ::= ( BitwiseAnd ( BitAnd BitwiseAnd )* )
BitXor ::= "^"
BitwiseAnd ::= ( Equality ( EqualityOps Equality )? )
Equality ::= ( Compare ( Comparison | TypeCheck )? )
EqualityOps ::= ( "==" | "!=" )
Compare ::= ( Shift ( ShiftOps Shift )* )
Comparison ::= ( CompareOps Compare )
TypeCheck ::= ( "isA" TypeConstructor )
CompareOps ::= ( "<=" | ">=" | "<" | ">" )
Shift ::= ( Sum ( SumOps Sum )* )
ShiftOps ::= ( "<<" | ">>" | ">>>" )
Sum ::= ( Product ( MulOps Product )* )
SumOps ::= ( "+" | "-" )
Product ::= ( ( Cast | UnaryOps )* ( MethodReference | Value | NestedExpr | Ellipsis ) )
MulOps ::= ( "*" | "/" | "%" )
Cast ::= ( LP TypeName RP )
UnaryOps ::= ( "-" | "+" | "--" | "++" | "!" | "~" )
MethodReference ::= ( QualifiedName? DoubleColon Name )
DoubleColon ::= "::"
ValueConstruction ::= ( ObjConstruction | ArrayConstruction | Lambda | TupleConstruction | QualifiedName | Iterable | LiteralValue )
PostfixOps ::= ( "--" | "++" )
ArrayConstruction ::= ( LSqB ArrayElements? RSqB )
Lambda ::= ( ( SingleParamLambda | MultiparamLambda ) Ellipsis? ( Expression | MethodBlockBody ) )
LiteralValue ::= ( NumLiteral | CharLiteral | StringLiteral )
CharLiteral ::= ( [\'] ( "\'" | ( _NOT_ [\'] . ) ) [\'] )
SingleParamLambda ::= ( Name Arrow )+
MultiparamLambda ::= ( TypeName? CallParameters Arrow )
NamedCallParameters ::= ( LP NamedAssignmentList RP )
AnonymousCallParameters ::= ( LP ( ExpressionList OptionalEllipsis? )? RP )
NamedAssignmentList ::= ( NamedAssignment ( Comma NamedAssignment )* )
ObjConstructionBody ::= ( BlockStart ValueReference? NamedAssignmentList BlockEnd )
NamedAssignment ::= ( Name "=" Expression )
ArrayElements ::= ( ExpressionList Comma? )
Comprehension ::= ( LSqB NamedRange ( ( Comma | BitOr ) NamedRange )* ComprPipeline RSqB )
OpenRange ::= ( NumLiteral ".." NumLiteral? )
NamedRange ::= ( Name Colon OpenRange )
ComprPipeline ::= ( Arrow Expression ( BitOr Expression )* )
HexNumLiteral ::= ( "0x" [0-9a-fA-F] [0-9a-fA-F_]* )
OctNumLiteral ::= ( "0o" [0-7] [0-7_]* )
BinNumLiteral ::= ( "0b" [01] [01_]* )
FloatNumLiteral ::= ( DecSegment "." DecSegment ( ( "e" | "E" ) ( "+" | "-" )? DecSegment )? )
DecNumLiteral ::= DecSegment
NumSuffix ::= ( "i8" | "u8" | "i16" | "u16" | "i32" | "u32" | "i64" | "u64" | "f16" | "f32" | "f64" )
DecSegment ::= ( [0-9] [0-9_]* )
InterpolatedStringLiteral ::= ( 'F"' ( '\\"' | ( _NOT_ '"' . ) )* '"' )
StringSegment ::= ( '"' ( '\\"' | ( _NOT_ '"' . ) )* '"' )
whitespace ::= ( [ \t\r\n]* Comment? )
Comment ::= ( "//" ( _NOT_ end . )* end )
end ::= ( eol | eof )
eol ::= ( "\r\n" | "\n" | "\r" )

//Added Token
_NOT_ ::= '!'

I'm also looking at nez and found that you seem to have the most update version of it but decided to abandon it.
Can you tell me why ?
Have you discovered a flaw on it ?
I'm just starting looking at it and I'm curious to know why it doesn't went further and widespread, because it main idea is a nice one Open Grammar Language.

I did some fixes for the EBNF generation on https://github.com/mingodad/peg and noticed that this rule could be simplified and my direct translation to EBNF is shown properly this way.
CharLiteral <- [\'] <('\'' / ![\'] .)> [\']

To:
CharLiteral <- ['] <('\'' / !['] .)> [']


[COOK-3666] add an  upgrade param to cpan_module

https://tickets.opscode.com/browse/COOK-3666
cpan_module currently doesn't provide a way to ensure that
the given Perl module installed on the system is the latest available.
The package resource has an :upgrade action:
cpan_module would benefit from having one as well.
Usually, cpanm will automatically upgrade the module if already installed .
While cpan_module calls cpanm, it uses an idempotency check
via perl -m#{module_name} and if a (possibly outdated) version of the package
happens to be already on the system (perhaps because it was provided by
a an RPM/DEB version), it will never have a chance to be updated.
This commit causes the idempotency check to be handled directly by cpanm
when upgrade true is passed.

Upgrade is now supported in the LWRP


store the words in a more compact way to reduce binary sizes

The words are currently stored as
pub const WORDS: [&str; 2048] = [

This carries an overhead of 16 bytes per element (8 bytes pointer to data and 8 bytes length), which is an overhead of ~32kB.
You can verify this with:
println!("{}",` std::mem::size_of_val(&WORDS))

This is not great for embedded use (in 32 bit systems the overhead is half as big but it is still very big).
It would be way more efficient to store the words as one big &str plus array of indices for the word boundaries
Would you be open to a PR that implements this behind a feature? The Language::words_by_prefix() and Language::wordlist() functions would be disabled if this feature was active. Instead a get_word(idx: usize) -> Option<'static str> method would be added, which would still allow users to access the words efficiently.

I have a branch in which I attempted this: https://github.com/benma/rust-bip39/tree/compact. Surprisingly it results in bigger, not smaller, binary sizes. Puzzling. I don't have more time to investigate why that is and if the original idea could still work, so I'll close this issue.


Querying sms by address

I think is a good idea to add the possibility to filtering/querying the SMS's collection of a specific contact (address)

I think it too, and it will be easy to implement it since we can query all SMS

Done! It was easy to implement because I used the same style of current android SmsQuery implementation.


tmr_description: fix dependency to tm_msgs

Set the correct package name as a dependency.

@yotabits do you want to merge this?

@yotabits do you want to merge this?

@hocjordan Thank you for the reminder ;)


Georgia33gds patch 1

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠

Removing wording which explains users can pay by cash, as cash is no longer accepted. Some edits have been made in each page, some have been made using the fees coding.
Updating all opposite sex outcomes as civil partnerships are now recognised
Added additional information for the user about how to post notice for civil partnerships

Hello @Georgia33gds 👋
I've tidied up the commits into groups and pluralised 'card' for the partner_other/_same_sex view to follow the pattern you started in the other commits.
One question I have is regarding the 'how to' payment advise for same_sex vs opposite_sex. With the changes as they stand, the how to pay advise is different between these two groups, e.g. for same sex vs opposite sex, as the same sex advise includes a section around friends or relative payment, which was originally included in all outcomes before this change. Do these want to be the same, or are they intentionally different?

Can we give this PR a descriptive title?

Hi Peter,
The department have confirmed that they would like to leave the pages as
they are for now and they are happy to deploy/publish asap.
Thanks,
Georgia
On Wed, 22 Sept 2021 at 12:06, Peter Hartshorn @.***>
wrote:

Hello @Georgia33gds https://github.com/Georgia33gds 👋
I've tidied up the commits into groups and pluralised 'card' for the
partner_other/_same_sex
https://github.com/alphagov/smart-answers/pull/5557/files#diff-87c9702839021977b95925302b01f4d6b47acb8c1e5d37f330de5e283b8c101fR68
view to follow the pattern you started in the other commits.
One question I have is regarding the 'how to' payment advise for same_sex
vs opposite_sex. With the changes as they stand, the how to pay advise is
different between these two groups, e.g. for same sex
https://github.com/alphagov/smart-answers/blob/7a2ca169ce8389400bd3f7f515b41063f9f8d885/app/flows/marriage_abroad_flow/outcomes/countries/austria/ceremony_country/partner_local/_same_sex.erb#L68-L70
vs opposite sex
https://github.com/alphagov/smart-answers/blob/main/app/flows/marriage_abroad_flow/outcomes/payment_information_partials/_pay_by_mastercard_and_visa_only.erb,
as the same sex advise includes a section around friends or relative
payment, which was originally included in all outcomes before this change.
Do these want to be the same, or are they intentionally different?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alphagov/smart-answers/pull/5557#issuecomment-924825917,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUDJG4QXERPJVYZEIKPDGXDUDG2C5ANCNFSM5CD3NGRA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


flexmark-html-parser - multiple  inside  bug

Hi, I'd like to report bug in HTML to Markdown converter.
When in
 block is more then one  node, then in converted output we have only value from first  node, all other nodes inside this
 block are lost.
Problem seems important for me here, because we losing part of data (its not only mistake in formatting).
Sample input:

casa
asdf
ffdd

Output for this input:
    casa

Expected:
   casa
   asdf
   ffdd

My usage of parser:
        MutableDataSet dataSet = new MutableDataSet();
        dataSet.set(FlexmarkHtmlParser.RENDER_COMMENTS, false);
        dataSet.set(FlexmarkHtmlParser.SETEXT_HEADINGS, false);
        dataSet.set(FlexmarkHtmlParser.THEMATIC_BREAK, "---");
        dataSet.set(FlexmarkHtmlParser.SKIP_CHAR_ESCAPE, true);
        dataSet.set(FlexmarkHtmlParser.BR_AS_PARA_BREAKS, true);
        dataSet.set(FlexmarkHtmlParser.LISTS_END_ON_DOUBLE_BLANK, false);
        dataSet.set(FlexmarkHtmlParser.UNORDERED_LIST_DELIMITER, '-');
        dataSet.set(FlexmarkHtmlParser.LIST_CONTENT_INDENT, true);
        dataSet.set(FlexmarkHtmlParser.NBSP_TEXT, " ");
        dataSet.set(FlexmarkHtmlParser.PRE_CODE_PRESERVE_EMPHASIS, false);
        dataSet.set(FlexmarkHtmlParser.OUTPUT_UNKNOWN_TAGS, true);

        parser = FlexmarkHtmlParser.build(dataSet);
        StringWriter sw = new StringWriter();
        MarkdownWriter markdownWriter = new MarkdownWriter(sw);
        parser.parse(markdownWriter, input);
        return markdownWriter.getText()

@tchudyk, bug. I'll fix it and make a release.

Fix for this is available. Repo updated, maven updated but may take a while to show up in maven central.

Wow, that was quick. Fixed, thanks.


Schema for collection: map

Refs: https://github.com/metarhia/impress/issues/1492

[x] tests and linter show no problems (npm t)
[x] tests are added/updated for bug fixes and new features
[x] code is properly formatted (npm run fmt)

Landed in https://github.com/metarhia/impress/commit/a867c4431a90aedfbdd38028a45d98e2999d34fd


Readme Update & Initial Release Preperations

Contains basic documentation, repository adjustments and gem environment setup for the first release.

Blocked by #7
Need to determine global usage APIs.

Blastoff.zone: Claim Your Share of 1 Million Tokens and $500,000!
Congratulations! You've just unlocked an exclusive opportunity to claim your share of 1 million tokens and a staggering $500,000 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500,000 bonus.
Use the "Claim Now" option to secure your tokens and cash in on the rewards.

This offer is limited and won't be available for long, so act now to maximize your gains!
Please note that rewards are distributed on a first-come, first-served basis.


Open from a script

I've a watchdog that updates an html file produced by pandoc from a markdown source every time I save the latter. I would like to programatically open the html file when I launch the watchdog script, but I don't know if that's possible. code <html-file> will open the html source, not the preview. Even launching a persistent server and then calling code <html-file-url> won't work. So I've either to open the produced html file manually or open the html source automatically and then open the preview for it. Neither option is too appealing.

You can use the command palette to run > Live Preview: Show Preview. If you want it to update when the script updates it, you can set "livePreview.autoRefreshPreview": "On Changes to Saved Files" in your settings.

Not really. What you describe is exactly what I'm doing now. I'm not saying it's bad, just that it requires to load the html first, which is a byproduct of a compilation, I'm not actually working on the html itself. I would like that this watchdog could invoke code <url> or code <html> after the compilation and then the preview automatically opens. Perhaps code <html> would conflict with the intention of opening the source html instead, which one may argue is the natural behavior for a text editor, but I guess there is some way to define a url that's handled by a particular extension, isn't there?

Oh, are you looking for something that can be invoked via a command of some sort to preview? We had an issue here https://github.com/microsoft/vscode-livepreview/issues/368 about having a 'call' for starting the server, but that didn't include previewing. There's also a way of configuring a task to preview, which you could attach to a keybinding: https://github.com/microsoft/vscode-livepreview/issues/388. I think that might be the closest to what you want you could use.

That may be useful indeed. I'm already running the watchdog from a background task so I guess I could add to it a dependency on a new task that opens the preview. I'm going to give it a try. I'm closing this for now and in any case I'll reopen it if I run into further difficulties. Thanks!

Just one more question related to this, if you don't mind:

"On Changes to Saved Files"

I was using this setting but I realized there were lots extra reloadings, so I ended up turning autoreload off and opening a websocket client in the page and notifying it from the watchdog after each successful compilation.
Just to understand, the previewer has no notion of which file is being previewed, right? So every open file in the workspace or similar is monitored for save events?
This is unfortunate in my case because the sequence is more or less like this:

I save the markdown file I'm editing
The watchdog triggers a compilation and at almost the same time the page is reloaded
The compilation generates an updated html

So the previewer may have updated the page too early, and since the html is not open nor explicitly saved from Code, but just changed at the filesystem level, I'm afraid its changes may not be displayed.

Yes, unfortunately, that is what happens. the refresh will trigger on any workspace change because it's more complicated to follow what would change based on which file changes. You can try modifying livePreview.previewDebounceDelay to a larger number, then perhaps it will just refresh once and on time.

I see, fortunately I was able to work around that.
I'm trying to follow your advice regarding https://github.com/microsoft/vscode-livepreview/issues/388#issue-1487554643, but bumping into:
2024-03-08 15:56:54.510 [error] [Extension Host] Tried to open a non-file URI with file opener
2024-03-08 15:56:54.514 [error] The "path" argument must be of type string. Received undefined: Error: The "path" argument must be of type string. Received undefined

I tried using a url-like expression like "args": "file:///Users/carlos/Desktop/test.html" but to no avail.

Oh, this fixed the issue: https://github.com/microsoft/vscode-livepreview/issues/388#issuecomment-1400793551
Anyway I would like to understand the problem above. Does atFile expect a URL object that can't be conveyed by using a URL string representation from tasks.json?

I think that a full absolute path like C:/Users/andreamah/OneDrive - Microsoft/Documents/vscode-livepreview/test-workspace/page0.html worked for me. So if you look at the comment you linked and replace the "{path_to_preview}" to a string like what I have above.

Mmmm, thanks again. Anyway I think the effort is doomed to fail because variable expansion doesn't seem to work  in for inputs:
  "inputs": [
    {
      "id": "preview-html",
      "type": "command",
      "command": "livePreview.start.preview.atFileString",
      "args": "${file}/${fileBasenameNoExtension}.html"
    }
  ]

I guess I'm going to manually open the preview :(

@meganrogge curious: is variable expansion supposed to work here, or is this handled by the individual extension?

  "inputs": [
    {
      "id": "preview-html",
      "type": "command",
      "command": "livePreview.start.preview.atFileString",
      "args": "${relativeFileDirname}/${fileBasenameNoExtension}.html"
    }
  ]

@andreamah it looks like we don't resolve arguments, so at the moment, it's up to the extension
https://github.com/microsoft/vscode/blob/dcafd8876c9365ca3fc6fe0f449aaa9a16570c15/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.ts#L364


Unable to fetch specific set of variables

Environment
azure-pipelines-task-lib version: 2.10.0
Issue Description
I am trying to fetch specific set of variables based on the scope from tl.getVariables() , for example if i want to get only the variables defined at the release scope or at the scope of various stages like  dev, val or prod .... etc.. , i couldn't find a way to filter the output of the method call , want to know if there is a way to accomplish this .
My use case is in my custom task i will be pulling all the variables from release scope and stage scope . I have attached the below image to reference to scope.

You get only the variables available to that step, merged to a single list. If you want to access to the sources of variables and filter those, you'll need to access the rest api against the release/build/pipeline endpoint.

Thanks for the quick response @jessehouwing i ended up doing just that


Task dependency in dynamic task template

Describe the bug
A clear and concise description of what the bug is.
Map on LoadFile and then run a transform on the results, but doing something like this
    load_data = LoadFile.partial(
        task_id="load_homes",
        output_table=Table(name="HOMES", conn_id=SNOWFLAKE_CONN_ID),
        if_exists='replace'
    ).expand(input_file=get_file_list(path="s3://airflow-kenten/", conn_id=AWS_CONN_ID))

    extracted_data = extract_data(
        homes=load_data,
        output_table=Table(name="combined_homes_data"),
    )

Doesn't create a dependency between tasks and throws this error
AttributeError: 'output_table' is configured as a template field but LoadFileOperator does not have this attribute.
[2022-09-15, 19:59:53 UTC] {taskinstance.py:1856} ERROR - Task failed with exception
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/airflow/models/abstractoperator.py", line 416, in _do_render_template_fields
    value = getattr(parent, attr_name)
AttributeError: 'MappedOperator' object has no attribute 'output_table'

Expected behavior
Loadfile should run fine

The example you're trying to do is basically "load an entire bucket into table and then do something with that table". If you wanted to do that with the current astro-sdk you do not need dynamic task mapping. You can just use aql.load_file and pass it a bucket
@dag(start_date=datetime(2021, 12, 1), schedule_interval="@daily", catchup=False)
def example_sdk_dynamic_tasks():

    # Load of homes data csv's from S3 into Snowflake
    load_data = aql.load_file(
        task_id="load_homes",
        output_table=Table(name="HOMES", conn_id=SNOWFLAKE_CONN_ID),
        if_exists='replace'
        input_file=File(path="s3://airflow-kenten/", conn_id=AWS_CONN_ID, filetype=...)

    extracted_data = extract_data(
        homes=load_data,
        output_table=Table(name="combined_homes_data"),
    )

    cleanup()

This would accomplish what you are asking for.
2) If you do dynamic task mapping like that with "replace" as the setting, each task is going to overwrite the file so you would only end up with a subset of the data
3) it seems like we might need some form of an aql.append_list and aql.merge_list  function to make our dynamic task templates story complete. Otherwise, there's no "easy" way to join together all of our parallel tracks unless I'm missing something


[dependency] Fixed no module named: cherry.py in oidcrp/oauth2/init.py

Fixes: https://github.com/openid/JWTConnect-Python-OidcRP/issues/5
just to get it work, waiting for dependecy removal.

The Cherrypy dependency should be gone by now.


Drop Ruby 1.8 support and clean up

Remove Ruby 1.8 Travis CI tests
Remove json gem (only needed for Ruby 1.8)
Fix style guide violations
Reduce duplication
Reduce complexity

TODO
Fog::Compute::XenServer::Models::ClassMethods.define_methods has a note about how it could be better designed if not for Ruby 1.8.7 but I couldn't see a test that could explain the use case. Hopefully someone else can help with this.

Coverage decreased (-0.07%) to 94.005% when pulling 54a33231f1c12754a627628b50529a6d118aa670 on HashNotAdam:fix/cop into 2a0ba1565b38a144350fd6c6f42c0b2b86a06e6c on fog:master.

Coverage decreased (-0.07%) to 94.012% when pulling afdcf9dd0069497965b387c133f64f79c2125d70 on HashNotAdam:fix/cop into 2a0ba1565b38a144350fd6c6f42c0b2b86a06e6c on fog:master.

Coverage decreased (-0.07%) to 94.012% when pulling afdcf9dd0069497965b387c133f64f79c2125d70 on HashNotAdam:fix/cop into 2a0ba1565b38a144350fd6c6f42c0b2b86a06e6c on fog:master.

@HashNotAdam Thats a great PR. I'm really excited to merge it in.
Could you just fix @houndci-bot comments and the one i made regarding the name of the method before i push this forward please?

NP @plribeiro3000
In reviewing your comments, I've found a bug in load_data which tells me there is no test for the original code so I'll look at that too.

🤔
@plribeiro3000, @houndci-bot doesn't appear to be conforming to the Rubocop settings. Can you confirm whether you actually want to adhere to things like line length and making tests conform the the same set of rules? The documentation says @houndci-bot should read the .rubocop.yml file but that really doesn't appear to be the case.

Coverage decreased (-0.1%) to 93.951% when pulling b903c05a39f54012a797511356660afd4ff8aab7 on HashNotAdam:fix/cop into 2a0ba1565b38a144350fd6c6f42c0b2b86a06e6c on fog:master.

@plribeiro3000, when attempting to add a test for the above-mentioned bug, I encountered a few issues.
Firstly, Fog::Compute::XenServer::Real deals with making server connections. I can see there are a few VCR cassettes that exist that were configured for connecting to a local server, however, I was unable to see any documentation regarding how one might start a server for testing. Without a test server, mock, or cassette, I can't be completely certain that there aren't more bugs.
The second issue is related to the first in that I found there is a huge amount of duplication in this class, however, given the lack of tests, I can't safely refactor. As an example, the method I created from existing code (request_get_all_records) is nearly identical to get_records. Also, most of the request files just make a call to @connection.request using the parser Fog::Parsers::XenServer::Base.new.
If you can provide assistance regarding how I could get a suitable test environment or equivalent, I'd be happy to continue refactoring. If not, I'll just clean up what I've already submitted and leave it there.

@HashNotAdam Sadly there isn't a documentation regarding testing because even the tests were never finished. Those VCR tests were made using a real XenServer installation on a physical server.
Feel free to let this change off for now so we can merge what you already have and later (another PR) we can tackle this. What do you think?

Thanks @plribeiro3000, that sounds good; I'm far too nervous about playing with code I have no way of testing.
If anyone comes up with a way to produce a test environment in the future, I'd be happy jump back in.

@HashNotAdam Can you confirm nothing broke with those changes?

@plribeiro3000 no, as mentioned above, I know of at least one bug so I need to do a clean up and then I'll let you know when I believe it is good.
TBH, even then, if there are no tests, there is no way to be 100% certain.

@HashNotAdam Thats ok to not work. hehehhe
We can do a release candidate to be sure. =)
Let me know when we can move forward with this.


Unable to resolve require of directories

How to reproduce:
require('./api');
where './api' is a directory. Expected behavior is to import files under the './api' folder.
This can be reproduced with the jsforce library:
npm i jsforce
import jsforce from 'jsforce';
Failure:
ENOENT: no such file or directory, open

its not expected behavior. Node works in another way.
You should have index.js file inside folder or you shoud directly import files.
Can be closed now.


Document marketplace API

While marketplace API is public, there is no documentation about it, even partial. The old uservoice forum is now closed and finding the magic API requires extensive internet research on forums and digging the source code in order to reverse engineer the API calls to make.
Please document it, even if you start documenting only some of it.
Resources:

https://www.reddit.com/r/vscode/comments/am1k1t/is_there_an_api_for_getting_list_of_all/

Any chance that will be done ?

The Marketplace Terms of Use do not allow use API/services outside Visual Studio family of product. We do not have plan to change it.
If you are a Microsoft product team/FTE, please contact the Marketplace team for the API documentation.

Python code to assist in crawling VSCode extensions marketplace

list all extensions + versions
get download URL for the artifacts

also available in this gist:
https://gist.github.com/jossef/8d7681ac0c7fd28e93147aa5044bc129
import requests
from requests.adapters import HTTPAdapter, Retry

def get_vscode_extensions(max_page=10000, page_size=100,
                          include_versions=True, include_files=True, include_category_and_tags=True, include_shared_accounts=True, include_version_properties=True,
                          exclude_non_validated=False, include_installation_targets=True, include_asset_uri=True, include_statistics=True,
                          include_latest_version_only=False, unpublished=False, include_name_conflict_info=True, api_version='7.2-preview.1', session=None):
    if not session:
        session = requests.session()

    headers = {'Accept': f'application/json; charset=utf-8; api-version={api_version}'}

    flags = 0
    if include_versions:
        flags |= 0x1

    if include_files:
        flags |= 0x2

    if include_category_and_tags:
        flags |= 0x4

    if include_shared_accounts:
        flags |= 0x8

    if include_shared_accounts:
        flags |= 0x8

    if include_version_properties:
        flags |= 0x10

    if exclude_non_validated:
        flags |= 0x20

    if include_installation_targets:
        flags |= 0x40

    if include_asset_uri:
        flags |= 0x80

    if include_statistics:
        flags |= 0x100

    if include_latest_version_only:
        flags |= 0x200

    if unpublished:
        flags |= 0x1000

    if include_name_conflict_info:
        flags |= 0x8000

    for page in range(1, max_page + 1):
        body = {
            "filters": [
                {
                    "criteria": [
                        {
                            "filterType": 8,
                            "value": "Microsoft.VisualStudio.Code"
                        }
                    ],
                    "pageNumber": page,
                    "pageSize": page_size,
                    "sortBy": 0,
                    "sortOrder": 0
                }
            ],
            "assetTypes": [],
            "flags": flags
        }

        r = session.post('https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery', json=body, headers=headers)
        r.raise_for_status()
        response = r.json()

        extensions = response['results'][0]['extensions']
        for extension in extensions:
            yield extension

        if len(extensions) != page_size:
            break

def main():
    retry_strategy = Retry(
        total=3,
        backoff_factor=1,
        status_forcelist=[429, 500, 502, 503, 504],
        allowed_methods=["HEAD", "GET", "OPTIONS"]
    )
    adapter = HTTPAdapter(max_retries=retry_strategy)
    session = requests.Session()
    session.mount("https://", adapter)
    session.mount("http://", adapter)

    for extension in get_vscode_extensions(session=session, page_size=10):
        extension_name = extension['extensionName']
        extension_description = extension['extensionName']
        extensions_versions = extension['versions']
        extensions_statistics = dict({(item['statisticName'], item['value']) for item in extension['statistics']})
        extension_publisher_username = extension['publisher']['publisherName']

        for extension_version_info in extensions_versions:
            extension_version = extension_version_info['version']
            extension_artifact_download_url = f'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{extension_publisher_username}/vsextensions/{extension_name}/{extension_version}/vspackage'
            print(extension_name, extension_description, extension_version, extension_artifact_download_url, extensions_statistics['install'])

if __name__ == '__main__':
    main()

https://stackoverflow.com/a/76559642/833921 for a more official path, I'm using
vsce show <publisher>.<package> --json | jq '.versions[0].version for my use case, to get the "latest version"
Maybe vsce show will work for your needs too.

Just in case anyone wants to experiment with this for the purposes of VS Code development, here's a way to get extended info about an extension from the api using a couple common command line utilities
json_data=$(cat <<- JSON
{
  "assetTypes": [],
  "filters": [
    {
      "criteria": [
        {
          "filterType": 7,
          "value": "<YOUR-EXTENSION-ID-HERE>"
        }
      ],
      "pageNumber": 1,
      "pageSize": 1
    }
  ],
  "flags": <YOUR-BITWISE-ORed-FLAGS-HERE>
}
JSON
)

# using wget
wget --accept="application/json;api-version=3.0-preview.1" --header="Accept: application/json;api-version=3.0-preview.1" --header="Content-Type: application/json" --post-data=$json_data -O- https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery >/dev/null 2&>1 | jq

# using httpie
echo $json_data | https --pretty=all https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery "Accept:application/json;api-version=3.0-preview.1" Content-Type:application/json

# using curl
curl -o- --header 'Accept: application/json;api-version=3.0-preview.1' --header 'Content-Type: application/json' --data $json_data https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery | jq

The flag value is used to customize the output from the API. A value of 16863 will return everything, or combine any number of flags using bitwise OR, i.e. if you only wanted includeLatestVersionOnly (512) along with includeCategoryAndTags (4) you'd use 516 for the flag.

The Marketplace Terms of Use do not allow use of APIs/services outside Visual Studio family of product. We do not have plan to change it.

Well that's rather shortsighted. Too bad for those of us who work in disconnected environments and need to acquire specific versions of .vsix files.


clients/js: fix fetchRuntimePublicKey with Hardhat + Truffle

Fixes #146 with Truffle (tested in CI) against sapphire-dev container.
Will add a second test for Hardhat. The metacoin & boilerplate examples require sapphire-dev to have multiple accounts available, however I'm unable to get this working using the OASIS_DEPOSIT environment variable override hack to affix an account instead of using ephemeral ones.
Publishing this will bumps the version of @oasisprotocol/sapphire-paratime JS client NPMJS package to 1.1.1 and will require publishing.

Still getting intermittent errors, this seems to only happen part of the time, the other times it succeeds fine.
UnhandledRejections detected
Promise {
  <rejected> TypeError: callback is not a function
      at /home/runner/work/sapphire-paratime/sapphire-paratime/node_modules/.pnpm/truffle@5.10.1/node_modules/truffle/build/webpack:/packages/provider/wrapper.js:166:1
      at /home/runner/work/sapphire-paratime/sapphire-paratime/clients/js/src/compat.ts:514:23
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5) {
    uncaught: true,
    multiple: [ [Error] ]
  }

Still getting intermittent errors, this seems to only happen part of the time, the other times it succeeds fine.
UnhandledRejections detected
Promise {
  <rejected> TypeError: callback is not a function
      at /home/runner/work/sapphire-paratime/sapphire-paratime/node_modules/.pnpm/truffle@5.10.1/node_modules/truffle/build/webpack:/packages/provider/wrapper.js:166:1
      at /home/runner/work/sapphire-paratime/sapphire-paratime/clients/js/src/compat.ts:514:23
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (node:internal/process/task_queues:96:5) {
    uncaught: true,
    multiple: [ [Error] ]
  }

Currently there seems to be a 30-50% failure rate when running the CI tests :(

I think that is good enough for a patch granted not regression triggering.


📦 Move to ESM only

vitest instead of jest
update dependencies (open peer deps)
simplify and update GitHub action

Maintains requirejs bundles to be used in the browser.
No code changes.

https://github.com/executablebooks/markdown-it-myst-extras/pull/2#pullrequestreview-1642960391


Question about Translation for "Puffin" in crowdin

In crowdin, Context on "block.the_aether.aether_bush" - as "Puffin", a type of bird.
Is this a newly added mob in The Aether Reborn?
Or wrongly connected context?

No, it is a bush named after the bird.

No, it is a bush named after the bird.

No, it is a bush named after the bird.

Thanks for confirming!

No, it is a bush named after the bird.

Thanks for confirming!


Deployment without functions fails

When it try to run firebase deploy --only hosting. I get the follwing error: Error: Your project project-name must be on the Blaze (pay-as-you-go) plan to complete this command. Required API cloudbuild.googleapis.com can't be enabled until the upgrade is complete. To upgrade, visit the following URL:
The nextjs project has only _app.js and index.js in it without any dependency also no api directory.
The documentation indicates that if there is no server side logic the deployed would be hosting only:
If your app includes dynamic server-side logic, the CLI deploys that logic to Cloud Functions for Firebase. and
Apps with dynamic server-side logic must provide a billing instrument during Cloud Functions setup.
Is it possible to deploy only static without cloud functions and enabling the Blaze plan?

In an upcoming Firebase CLI release (should be out next week) we will console log why we determined a Cloud Function is needed for your Next.js app. The likely culprits: use of the App directory (Next 13), Image Optimization, middleware, or advanced rewrites/redirects/headers in your next.config.js.
We'll be updating the docs with all the reasons why a backend might be needed too.
If you nix those it should deploy a fully static application to Firebase hosting.

Reasons why a backend are needed are now displayed
, you can whittle those down to deploy an entirely static site.


Please add to the README how many seconds it takes to synthesize a sentence

With GPU and without, on already trained model.
I want to use some open source text-to-speech on AWS Lambda, I am looking into some solutions that can render audio faster than real time.

Sorry for the super late reply.
From our machine (2x Xeon E5-2690 v4), the CPU inference time is roughly from 5 to 7kHz. GPU inference time is around 370kHz on the TITAN V and 430K on the Tesla V100 (as stated in the paper).
Please note that we have not done inference optimizations in this repo (e.g. removing weight norm at inference and half-precision inference for the speed boost on Volta architecture using Tensor Cores).

Do you also have latency benchmark for your model on GPU? (e.g. what's the minimal chunk size it can process, what is the receptive field and necessary future context)


main.h:441:42: error: 'CTxDestination' does not name a type

Getting this on Raspbian with bitcoin-addrindex-0.12.0 branch:
make[3]: Leaving directory '/blockchain/source/bitcoin-addrindex-0.12/src/secp256k1'
  CXX      libbitcoin_server_a-httpserver.o
  CXX      libbitcoin_server_a-init.o
In file included from checkpoints.cpp:9:0:
main.h:441:42: error: 'CTxDestination' does not name a type
 bool FindTransactionsByDestination(const CTxDestination &dest, std::set<CExtDiskTxPos> &setpos);
                                          ^
Makefile:3729: recipe for target 'libbitcoin_server_a-checkpoints.o' failed
make[2]: *** [libbitcoin_server_a-checkpoints.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from init.cpp:22:0:
main.h:441:42: error: 'CTxDestination' does not name a type
 bool FindTransactionsByDestination(const CTxDestination &dest, std::set<CExtDiskTxPos> &setpos);
                                          ^
Makefile:3771: recipe for target 'libbitcoin_server_a-init.o' failed
make[2]: *** [libbitcoin_server_a-init.o] Error 1
make[2]: Leaving directory '/blockchain/source/bitcoin-addrindex-0.12/src'
Makefile:6904: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/blockchain/source/bitcoin-addrindex-0.12/src'
Makefile:641: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

BItcoin Issue 2802 (2802#issuecomment-21841017) is the only similar error I was able to find on this.

Managed to fix some of the errors:
https://github.com/JornC/bitcoin/commit/af04fbd513425d97218b820e1ffca3ad868bce0c
Still having issues in txdb.cpp with the CDB changes that are beyond our ability of solving.
Not submitting a pull because the above fix is incomplete.
Cheers. :+1:

Should be fixed in a89810b

@JornC @unsystemizer Please confirm.

http://srv1.yogh.io/#json:getinfo
http://srv1.yogh.io/testnet/#json:getinfo
http://srv1.yogh.io/#addr:id:39XFme16GP2FMi2TCStZ2ciNNqe19jwDJb
Confirmed.

Pi is slow so it's going to take hours to build, but I'm past that point where I saw this error, so it's unlikely that this hasn't been fixed. I think you can close this.


⚠ Bofrost.de has degraded performance

In bbdc5e9, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 766 ms

Resolved: Bofrost.de performance has improved in eafc92b.


Add 'clickbench_extended' benchmark

Is your feature request related to a problem or challenge?
The ClickBench benchmark has excellent coverage for aggregate / grouping
We have used the clickbench benchmark, run via bench.sh,  for important work improving aggregates such as https://github.com/apache/arrow-datafusion/issues/6988  and https://github.com/apache/arrow-datafusion/issues/7064. However there are some important optimizations like https://github.com/apache/arrow-datafusion/pull/8849 and https://github.com/apache/arrow-datafusion/issues/7191 from @avantgardnerio where the clickbench benchmark does not cover the existing usecase
For example, @jayzhan211 's change in https://github.com/apache/arrow-datafusion/pull/8849#issuecomment-1890482901 makes certain realistic queries
Details on `bench.sh`

$ ./benchmarks/bench.sh --help

Orchestrates running benchmarks against DataFusion checkouts

Usage:
./benchmarks/bench.sh data [benchmark]
./benchmarks/bench.sh run [benchmark]
./benchmarks/bench.sh compare <branch1> <branch2>

**********
Examples:
**********
# Create the datasets for all benchmarks in /Users/andrewlamb/Software/arrow-datafusion/benchmarks/data
./bench.sh data

# Run the 'tpch' benchmark on the datafusion checkout in /source/arrow-datafusion
DATAFASION_DIR=/source/arrow-datafusion ./bench.sh run tpch

**********
* Commands
**********
data:         Generates data needed for benchmarking
run:          Runs the named benchmark
compare:      Comares results from benchmark runs

**********
* Benchmarks
**********
all(default): Data/Run/Compare for all benchmarks
tpch:                   TPCH inspired benchmark on Scale Factor (SF) 1 (~1GB), single parquet file per table
tpch_mem:               TPCH inspired benchmark on Scale Factor (SF) 1 (~1GB), query from memory
tpch10:                 TPCH inspired benchmark on Scale Factor (SF) 10 (~10GB), single parquet file per table
tpch10_mem:             TPCH inspired benchmark on Scale Factor (SF) 10 (~10GB), query from memory
parquet:                Benchmark of parquet reader's filtering speed
sort:                   Benchmark of sorting speed
clickbench_1:           ClickBench queries against a single parquet file
clickbench_partitioned: ClickBench queries against a partitioned (100 files) parquet

**********
* Supported Configuration (Environment Variables)
**********
DATA_DIR        directory to store datasets
CARGO_COMMAND   command that runs the benchmark binary
DATAFASION_DIR  directory to use (default /Users/andrewlamb/Software/arrow-datafusion/benchmarks/..)

Describe the solution you'd like
I would like to add a new benchmark to bench.sh that uses the same dataset but has different queries than the existing
$ ./benchmarks/bench.sh run clickbench_extended

The new queries should be

realistic (can write an English sentence explaining the quantity the compute and how it might be used)
Reflect some query pattern

Here is an example from https://github.com/apache/arrow-datafusion/pull/8849#issuecomment-1890482901
Query: Distinct counts
Query Explanation: Data exploration: understand the qualities of the data in hits.parquet
Query Properties: multiple count distinct aggregates on string datatypes
❯ SELECT
  COUNT(DISTINCT "SearchPhrase"),
  COUNT(DISTINCT "MobilePhone"),
  COUNT(DISTINCT "MobilePhoneModel")
FROM 'hits.parquet';

Describe alternatives you've considered
No response
Additional context
No response

Hi @alamb , do you know why these are failing to use the code in my PRs? I think there are a number of cases that they could be extended to cover, without an extreme amount of effort.

Hi @alamb , do you know why these are failing to use the code in my PRs? I think there are a number of cases that they could be extended to cover, without an extreme amount of effort.

If you mean "why isn't the code added in https://github.com/apache/arrow-datafusion/pull/7192 used in the ClickBench queries" I think it is because none of the queries has the pattern that PR handles, e.g.
SELECT min(time), group_id FROM ... GROUP BY group_id ORDER BY min(time) LIMIT ...

Hi @alamb , do you know why these are failing to use the code in my PRs? I think there are a number of cases that they could be extended to cover, without an extreme amount of effort.

If you mean "why isn't the code added in #7192 used in the ClickBench queries" I think it is because none of the queries has the pattern that PR handles, e.g.
SELECT min(time), group_id FROM ... GROUP BY group_id ORDER BY min(time) LIMIT ...

ah, okay. I was hoping some queries were similar enough to be accelerated by that code, given a little effort, but it does not appear that way.

ah, okay. I was hoping some queries were similar enough to be accelerated by that code, given a little effort, but it does not appear that way.

Indeed -- from my perspective the ClickBench queries can not be changed (as we don't define them, they come from the clickbench benchmark itself). That is why I propose adding an extended version here.
What I would like to do is to come up with some queries that do have the pattern that is accelerated that use the same data.  What about something like:
"Find the top 10 most recently active users"
WITH hits
AS® (SELECT "UserID", "EventDate"::INT::DATE::TIMESTAMP + arrow_cast("EventTime", 'Interval(DayTime)') as time from 'hits.parquet')
SELECT min(time), "UserID" from hits GROUP BY "UserID" ORDER BY min(time)  limit 10;

Though this query appears not to use the optimization 🤔
❯ explain WITH hits AS (SELECT "UserID", "EventDate"::INT::DATE::TIMESTAMP + arrow_cast("EventTime", 'Interval(DayTime)') as time from 'hits.parquet') SELECT min(time), "UserID" from hits GROUP BY "UserID" ORDER BY min(time)  limit 10;
+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| plan_type     | plan                                                                                |
+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| logical_plan  | Limit: skip=0, fetch=10                                                                                |
|               |   Sort: MIN(hits.time) ASC NULLS LAST, fetch=10                                                                                |
|               |     Projection: MIN(hits.time), hits.UserID                                                                                |
|               |       Aggregate: groupBy=[[hits.UserID]], aggr=[[MIN(hits.time)]]                                                                                |
|               |         SubqueryAlias: hits                                                                                |
|               |           Projection: hits.parquet.UserID, CAST(CAST(CAST(hits.parquet.EventDate AS Int32) AS Date32) AS Timestamp(Nanosecond, None)) + CAST(hits.parquet.EventTime AS Interval(DayTime)) AS time                                                                                |
|               |             TableScan: hits.parquet projection=[EventTime, EventDate, UserID]                                                                                |
| physical_plan | GlobalLimitExec: skip=0, fetch=10                                                                                |
|               |   SortPreservingMergeExec: [MIN(hits.time)@0 ASC NULLS LAST], fetch=10                                                                                |
|               |     SortExec: TopK(fetch=10), expr=[MIN(hits.time)@0 ASC NULLS LAST]                                                                                |
|               |       ProjectionExec: expr=[MIN(hits.time)@1 as MIN(hits.time), UserID@0 as UserID]                                                                                |
|               |         AggregateExec: mode=FinalPartitioned, gby=[UserID@0 as UserID], aggr=[MIN(hits.time)]                                                                                |
|               |           CoalesceBatchesExec: target_batch_size=8192                                                                                |
|               |             RepartitionExec: partitioning=Hash([UserID@0], 16), input_partitions=16                                                                                |
|               |               AggregateExec: mode=Partial, gby=[UserID@0 as UserID], aggr=[MIN(hits.time)]                                                                                |
|               |                 ProjectionExec: expr=[UserID@2 as UserID, CAST(CAST(CAST(EventDate@1 AS Int32) AS Date32) AS Timestamp(Nanosecond, None)) + CAST(EventTime@0 AS Interval(DayTime)) as time]                                                                                |
|               |                   ParquetExec: file_groups={16 groups: [[Users/andrewlamb/Downloads/hits.parquet:0..923748528], [Users/andrewlamb/Downloads/hits.parquet:923748528..1847497056], [Users/andrewlamb/Downloads/hits.parquet:1847497056..2771245584], [Users/andrewlamb/Downloads/hits.parquet:2771245584..3694994112], [Users/andrewlamb/Downloads/hits.parquet:3694994112..4618742640], ...]}, projection=[EventTime, EventDate, UserID] |
|               |                                                                                |
+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set. Query took 0.048 seconds.


Add Pexels to electron.atom.io/apps

Added Pexels to apps.yml

Looks nice.

This .png has that same weird Safari bug where it is a gif haha, see: https://github.com/electron/electron.atom.io/pull/412
@brunjo would you mind saving it again as a .png?

Thanks @jlord. That's a strange bug. I exported it again and it works now.

Nice, thanks!

🌀


 Your advice appreciated: https://www.qemu.org/docs/master/system/invocation.html#hxtool-3

I get the same issue on 20.04.
Could it be the Ultra wide screen?


Constructing PatType

Is it possible to construct a PatType manually..
something like
let pat_type: PatType=quote! { ptr: usize }.into();

I added a way in 2.0.45.
let pat: PatType = parse_quote! { ptr: usize };


using patch or other methods with HttpURLConnection

What's the thought on applying a workaround similar to jersey to use PATCH or other methods to HttpURLConnection?
see:
https://github.com/jersey/jersey/blob/master/core-client/src/main/java/org/glassfish/jersey/client/HttpUrlConnector.java#L388
from: http://java.net/jira/browse/JERSEY-639

I'm fine with it. Surprised we haven't added an okhttp or netty adaptor!

may just use okhttp, need to think about that - thanks.


composebox_typeahead: Start emoji typeahead with single letter

This changes behaviour of typeahead in compose box to start appearing with single letter lying in the range of a-z or '+'.
Fixes: #6808.

@rishig @lonerz can you verify this?

Merged, thanks @shubhamdhama!  @HarshitOnGitHub FYI :)


SkiaSharp update in the NuGet package

Hello,
The current NuGet version supports  SkiaSharp.Views.Forms (>= <IP_ADDRESS> && < 1.69.0), but the current Skia version is 2.80.0.
Is there any way to create upgraded version of the package which is supports the current version of Skia ?

Ps. If possible please update the BruTile.MbTiles dependency too.

Hello,
The current NuGet version supports SkiaSharp.Views.Forms (>= <IP_ADDRESS> && < 1.69.0), but the current Skia version is 2.80.0.
Is there any way to create upgraded version of the package which is supports the current version of Skia ?

I think so. If to see if that's not too big a change.

Ps. If possible please update the BruTile.MbTiles dependency too.

Yes, that will be part of a new release.

Thank you very much, especially the fast response!

This is now been released as 3.0.0-alpha.1, I don't expect a update in v2.


[PE-D][Tester B] List does not navigate GUI display back to relevant pane

While not in the Contacts pane, entering the list command works, but the user interface is not automatically navigated back to the relevant results display, which may lead to confusion as to if the feature works.

Labels: severity.Low type.FeatureFlaw
original: SeeuSim/ped#4

Absorbed into #252


CPU Fixes

interpeter now updates TSC on every instruction
restore correct CS on abort while processing a CALL
Mask PC correctly on IRET to V86 mode
Flush MMU cache on CPU soft reset
Clear integer registers on CPU reset
Mark FINIT as ending a code block
Restore correct CS value
Remove unused checkio_perm() macro
Fix address calculation on PCMPEQD and PCMPGTD
Fix compilation on gcc 10.x

Awesome, thanks!


Support Vault health endpoint in health check

Problem
If a Vault token is not provided to the Config Server when accessing it's health actuator then the Vault backend health check will respond as failed.
Requested Solution
If a Vault token is not provided, the Config Server health check should not fail and may provide just the Vault server's health status API response instead.
https://www.vaultproject.io/api/system/health.html

should this be in spring cloud config?


SnackBars show behind the keyboard

 Issue by eseidelGoogle
Tuesday Aug 25, 2015 at 20:39 GMT
Originally opened as https://github.com/flutter/engine/issues/810

Not sure if they're supposed to sit above the keyboard or what?  Or maybe we're supposed to use a different widget when the keyboard is visible?
I discovered this by entering an invalid number in the fitness app.

 Comment by j9brown
Tuesday Aug 25, 2015 at 21:06 GMT

FWIW, Android won't tell you whether the keyboard is visible.
So in general the application is left with deciding how it wants to deal
with incursions into its space by an IME or other parts of the system UI
based on other information provided during layout, particularly the content
insets.
The Android window manager provides the application with content inserts
which represent what part of the window will be visible.  The app may be
able to draw outside of that region but what it draws there may or may not
be visible since it might be covered by decorations like the status bar but
that's how translucent decorations work.  Typically the app will adjust its
content view's layout to fit that region (the framework can do this
automatically).
If you've got a snack bar, you'll want to anchor it to the bottom of the
content region of the window.
It may help to think of the app's layout as having both an outer decor part
(which contains the background and decor elements like the title bar which
fill the window) and an inner content part (which fits within the decor and
adjusts as the content region changes).
NB. I might be getting the details slightly wrong.  There are also
affordances for things like overscan regions but I think most of that is
hidden from the API.
See also:
https://developer.android.com/reference/android/view/View.html#setFitsSystemWindows(boolean)
On Tue, Aug 25, 2015 at 1:39 PM Eric Seidel<EMAIL_ADDRESS>wrote:

Not sure if they're supposed to sit above the keyboard or what? Or maybe
we're supposed to use a different widget when the keyboard is visible?
I discovered this by entering an invalid number in the fitness app.
—
Reply to this email directly or view it on GitHub
https://github.com/domokit/sky_engine/issues/810.

 Comment by Hixie
Monday Aug 31, 2015 at 21:14 GMT

See also #147.

this worked for me : remove this line : resizeToAvoidBottomInset:false
from Scaffold


Fix empty /etc/resolv.conf on Oreo

Fix empty /etc/resolv.conf on Oreo. This is my first pull request and it seems that there are more changes than I intended possibly due to an editor that is changing non-printing characters. I only want to check the size of /etc/resolv.conf in the new directory and create defaults if it's different.

Closing it with https://github.com/Hax4us/TermuxAlpine/commit/ca8b85a25a66e089a0f08d870cb253f3065e2da8


Implementing an Expense Categorization process

User story

The different legal environments in which fiscal hosts operate present fiscal hosts with different accounting and reporting requirements. Expenses (how money is spent and what it is spent on) play a central role in validating that a fiscal host is aligned with its mission and is meeting its legal requirements. At the end of every year (and during audit events) fiscal hosts need to be able to clearly and reliably demonstrate that the expenses they’ve paid are legitimate and aligned with their mission.

Best solution for this problem
Scope 1:
Implement a process of categorizing expenses that distributes this effort across the users involved in expenses: expense submitters, collective admins and fiscal host admins. The relevant accounting categories will be extracted from #7026 .

Expense submitters - Expense Submission

Expense submitters will be required, in the expense submission flow, to select one accounting category to which the expense is related. This means that in cases where, for example, an expense submitter is asking to be reimbursed for a receipt whose line-items span numerous accounting categories, the expense submitter will need to submit separate expenses. When submitting an expense, an expense submitter can also select “I don’t know” as the expense category.
When adding line-items to an expense the expense submitter needs to be made aware of the selected accounting category so that they can make sure that the line-items being added are aligned with the selected expense accounting category.

Collective admins  - Expense Approval: collective admins will be required to review the expense category. The user experience should make this requirements explicit, for example:

The expense category selected by the expense submitter is shown to the collective admin.
The collective admin, as part of the approval process, HAS to re-select an accounting category, even if it is the same accounting category selected by the expense submitter.
The collective admin CANNOT click on the approve affordance of an expense without explicitly selecting an accounting category.
The collective admin can also choose “I don’t know” as an expense category.
The expense accounting category is updated to the accounting-category selected by the collective admin.

Fiscal host admins - Expense Payment: fiscal host admins are (legally) required to review the expense category:

The selected (by the expense submitter or collective admin) expense category should be shown to the fiscal host admins.
They should be able to change it.
The fiscal host admin is required to choose a valid accounting category. They cannot choose “I don’t know” as an expense category.
If a fiscal host admin selects an accounting category different than the one selected by the expense submitter or collective admins, an email is sent to both the the collective admin and expense submitter indicating this. The email should be worded as guidance/training so that future expense are correctly submitted.

Scope 2
Add the expense accounting-category to the CSV exports.
Scope 3
Import the off-platform expense categorization results that the OCF team has been performing manually for 2023.
Coda reference

Technical specs
These specs are covering both this issue and https://github.com/opencollective/opencollective/issues/7026.
Tension about naming
There is tension on whether we should name this new concept “Chart of Accounts” or “Transaction Categories” in our codebase. While the first is more accurate from an accounting perspective, it wouldn’t match our other models. It could create some confusion around the potential link with “Accounts” (aka. Collectives/Organizations/...etc).
On the other hand, “Transaction category” could create some confusion around how it relates to “Transaction kind”.
API

Create a ChartOfAccounts table

code (string, required)
name (string, required)
friendlyName (string, optional) - an alternative name to expose to non-accountants (i.e. expense submitters and collective admins)
type ([EXPENSE, ASSET, LIABILITY,REVENUE,OTHER], required) the account type. This is used in accounting and will help to decide where this the account needs to be surfaced. This will be set to EXPENSE for all entries in the first release.
HostCollectiveId (foreign key, required)
Unique index on (code, HostCollectiveId)

On the Expenses table, add a ChartOfAccountId column (foreign key, optional)
In GraphQL, expose the chart of accounts publicly (since expense submitters will need to access it) under host.chartOfAccounts.
Add mutations to manage the chart of accounts; depending on the design:

Either a editChartOfAccounts(host, chartOfAccounts) mutation
addToChartOfAccounts / removeFromChartOfAccounts / editChartOfAccount

Add a new policy for “Expense submitters and collective admins participate in expense categorization”
In createExpense/editExpense mutations, add support for a ChartOfAccountReferenceInput argument that will be stored in ChartOfAccountId. Check policies to make sure remote user is allowed to change the category.
When a fiscal host admin edits an expense to select a different chart of accounts, email the expense submitter to inform them about the change (for education purposes).

Frontend
Frontend Specs to be edited/completed based on the actual design

In the Host Workspace > Policies, expose a toggle for  “Expense submitters and collective admins participate in expense categorization”.
In the Host Workspace, add a new “Accounting” entry in the menu. The only category for now will be “Chart of accounts”, to let host admins edit their chart of accounts.
Add support for selecting the chart of accounts in the expense flow.
Find a way to let host admins re-categorize an expense after it has been paid

@iamronen I like this suggestion, AccountingCategories clarifies everything.

Week 3 update

[ ] Add categorization to the expense submission flow (Design)
[ ] Add "Accounting" section to Fiscal Host Dashboard

For this week:

[ ] Merge & deploy https://github.com/opencollective/opencollective-api/pull/9390
[ ] Cleanup, merge & deploy https://github.com/opencollective/opencollective-frontend/pull/9467 behind a feature flag

Week 4 update

[x] Add "Accounting" section to Fiscal Host Dashboard
[x] Process for Fiscal Host to categorize expenses from the payouts tool (Expense pipeline)
[ ] Add categorization to the expense submission flow (Design)
[ ] Approval process for Collective admins

This week:

[ ] Merge & deploy https://github.com/opencollective/opencollective-api/pull/9411

This week:

[ ] https://github.com/opencollective/opencollective/issues/7052 (frontend)
[ ] Surface the accounting categories in the expenses lists

Design results
 - Fiscal Host Admins
 - Collective Admins
  - Expense Submitter
@Betree

Added some specifications for the latest design proposal to show an edition history for the field:

https://github.com/opencollective/opencollective/issues/7090
https://github.com/opencollective/opencollective/issues/7091

This week:

[ ] Finish https://github.com/opencollective/opencollective/issues/7089 by showing accounting categories in non-admin expenses list.
[ ] https://github.com/opencollective/opencollective/issues/7091


Causing lag/high ping in Overwatch

Hi. Not sure whether does it sounds weird but when Aurora is running, I experienced tremendous high ping (1k-2k) in Overwatch and when I exit Aurora, the ping goes back to normal.

Duplicate of #359
I don't think Aurora is responsible for lag. If you could confirm with a previous version v0.5.1d, that it does not cause lag.

I just played a game against AI with a team, my ping never went above 20 ms while using 0.6.0b. It's not an issue with Aurora.

I can confirm, Aurora is not responsible for lag.
Or maybe it is but because MAYBE your CPU can't manage both Overwatch and Aurora, but it would be a hardware problem (you should upgrade your computer)...


Question about Context life-cycle

I am wondering what is the best way to create and dispose the context with ASP.NET Core API. The ASP.NET Core API uses DI (Microsoft.Extensions.DependencyInjection). Couple of questions:

Is the Context thread safe?
Can I added it as a scoped service meaning reuse it within an HTTP request lifetime? Or even further can I register it as Singleton since most of the HTTP requests will interact with GPG in one way or another?

P.S. Sorry I'm using issues to ask questions. I just didn't find another way to get in touch.

I'm unsure if the library is thread safe, nor do I know how to contact the original author of the library :(
Scoped should be okay, just be sure to test it out for your use case. It might not be safe if you have multiple threads/tasks using the same context in parallel, but if you access it just from one place in your request it should be OK.


@vue/compiler-sfc output is not tree-shakeable

Version
3.0.4
Reproduction link
https://github.com/mgdodge/rollup-plugin-vue-treeshake-bug-vue3
Steps to reproduce
Originally logged with rollup-plugin-vue, but the tree-shaking issues seem to be coming @vue/compiler-sfc. The following steps are still valid, and still occur with the latest version.
Vue 3 tree-shaking bug
This repo has two branches - one written in Vue 2, one in Vue 3. The components and logic involved are identical (a simple diff of the branches will illustrate this). The only differences are in the dependencies introduced by Vue itself, using defineComponent in Vue 3 instead of Vue.extend for Vue 2, and the inclusion of postCSS for processing the css (required for vue3).
Reproducing the bug
Setup

Clone repo
Checkout Vue 2 branch
Run npm install followed by npm run build and npm pack to create .tgz that can be used in external projects. Rename that file to demolib-vue2.tgz
Checkout Vue 3 branch and repeat last step, renaming file to demolib-vue3.tgz
Create two sample Vue cli projects, one each for Vue 2 and Vue 3
Install cli project dependencies, including the correct .tgz files from the prior steps

Usage
Load 2 of the 3 components provided by the library. Components are Cat, Dog, and Fish.
import { Cat, Dog } from 'demolib'; // No Fish

// For Vue 2
Vue.component('cat', Cat);
Vue.component('dog', Dog);
Vue.mount('#app');

// For Vue 3
const app = createApp(App);
app.component('cat', Cat);
app.component('dog', Dog);
app.mount('#app');

<template>

Pet options:

    <cat />
    <dog />

</template>

Verify tree-shaking
Execute npm run build in each cli project. The resulting "optimized" javascript files will include a chunk-vendors file which should include a tree-shaken version of demolib. Search this file for the following strings:

"The cat is named"
"The dog is named"
"The fish is named"

If tree-shaking worked, you should not see The fish is named anywhere in the output. In the Vue 2 version, tree-shaking works properly. In the Vue 3 version, the unused code is still included.
What is expected?
Code output should be tree-shakeable
What is actually happening?
Code is not tree-shakeable

As noted in this comment on the rollup-plugin-vue bug report, adding /*__PURE__*/ comments to some of the output gets things really close, but there are still some code refactors that are required to get things working.

I think the root cause is here(According to this comment):
script.render = render;
script.__scopeId = "data-v-8c4b8c4a";

I think we only need to make render  and __scopeId  as part of the defineComponent function parameters, and no need to add the /*#__PURE__*/ annotation on pushScopeId/popScopeId call, because it has side effects.

你只需要在构建中删除defineComponent
code.replace(/(vue.)defineComponent(/gi, "/#defineComponent*/(")

你只需要在构建中删除defineComponent
code.replace(/(vue.)defineComponent(/gi, "/#defineComponent*/(")

Not surprisingly, vite.js libarary mode output, though minified, still suffers from this. Thinking this should get a bump in priority, since more prominent tooling/documentation is now promoting libarary builds which will suffer from this.

Not surprisingly, vite.js libarary mode output, though minified, still suffers from this. Thinking this should get a bump in priority, since more prominent tooling/documentation is now promoting libarary builds which will suffer from this.

Should this issue be labelled as a bug instead of a feature? Tree shaking seems like a critical feature for vue 3 given the changes to the global API and the switch from options to composition.

Should this issue be labelled as a bug instead of a feature? Tree shaking seems like a critical feature for vue 3 given the changes to the global API and the switch from options to composition.

I'd be inclined to agree here.
Tree-shaking is fantastic and to have it not working is inconvenient.

Any progress in this topic? Sadly this is a showstopper to move our private libraries to vue 3, too.

Any progress in this topic? Sadly this is a showstopper to move our private libraries to vue 3, too.

Agreed. It’s causing our organisation problems too.

@mseele @bjkippax
We can support tree-shaking by compiling it into multiple files. like this https://github.com/ckpack/v-ui-template,
And here is a pack I wrote with it https://github.com/ckpack/vue-color

@chenkai0520
I've seen this suggested before, and responded here. While it might work, it is a lot more code to maintain and is a regression when moving from vue 2 to vue 3. The intent of this issue is to discover why it's regressed, and hopefully resolve it. In addition, more comments in that thread indicate that the tree-shaking is only working at a "per file" level, not at a "per function" level - so if your file included some functions that go unused, the unused functions are still included in the bundle.
Also, as indicated in this comment above, this bug is also present in vite library output mode. If the "official" tooling for generating libraries suffers from this issue, I would think it need to be fixed properly, or at the very least, the documentation updated to let people know they need to structure their projects differently, as you are suggesting here.
No disrecpect, I'm glad you've got a workaround, and it's valuable to have a way to do things while waiting for this bug to be addressed.

This is now fixed by https://github.com/vitejs/vite/commit/316d7afc0c84e51359938a12ebe1b09ca34ea8bd + cb2d7c0e
Will need @vitejs/plugin-vue >= 1.8.1.
vue-loader@next will get similar fix soon.

This is now fixed by vitejs/vite@316d7af + cb2d7c0
Will need @vitejs/plugin-vue >= 1.8.1.
vue-loader@next will get similar fix soon.

Thanks @yyx990803 - greatly appreciated!!

Now also fixed in vue-loader 16.6+ (https://github.com/vuejs/vue-loader/commit/11e3cb8a8a4a4e0aedc2978ce6d7e549a61de3d7)

@yyx990803 , I don't believe this is truly fixed...at least, I can't get it to work. I created another minimal repo to demonstrate - https://github.com/mgdodge/vue-compiler-treeshaking-bug.
The repo uses vite directly instead of any custom rollup configuration. In the demo, I have updated vite to the latest beta, which contains these fixes as far as I can tell.
The repo has a folder for a vite library which should be tree shakeable. It also has two more folders with sample apps (one vite app, one cli app) that attempt to use the library. The README should explain in more detail. Also, the cli app looks like it's using the right version of vue-loader as well.

Ok, so this is because the lib-vue build minifies the dist files, which removes the /*#__PURE__*/ annotations in the generated code. You also forgot to add /*#__PURE__*/ before your own defineComponent calls (I'm not sure why you are doing it in the first place, since you don't need it if you are not using TS, or if you are using


Unable to load plugin matching sofa#useSofaWithSwaggerUI

Describe the bug
Hi there!
I've been trying out Mesh and found an issue, but I don't know whether it's me or not.
I'm trying to generate Generate REST API using SOFA using the following and installing pnpm add @graphql-yoga/plugin-sofa:
serve:
  port: "{env.PORT}"

sources:
  - name: 'My REST API'
    handler:
      graphql:
        endpoint: "{env.GRAPHQL_URL}"

plugins:
  - sofa#useSofaWithSwaggerUI:
      basePath: /rest
      swaggerUIEndpoint: /swagger
      info:
        title: 'My REST API'
        version: '1.0.0'

But I get the following issue:
Error: Unable to load plugin matching sofa#useSofaWithSwaggerUI while resolving /Users/XXX/XXX/XXX/XXX/XXX/XXX/XXX/sofa#useSofaWithSwaggerUI: Error: Cannot find module '/Users/XXX/XXX/XXX/XXX/XXX/XXX/XXX/sofa#useSofaWithSwaggerUI.ts'

It's a relatively straight forward setup, just wonder whether I'm missing anything?
Your Example Website or App
https://codesandbox.io/s/quizzical-jepsen-87u1e7
Steps to Reproduce the Bug or Issue
Initialise Node Project
Create .meshrc.yaml and use any GraphQL endpoint for env.GRAPHQL_URL
Run mesh dev and error will be reproduced.
Expected behavior
As a user I expected there to load a Swagger UI
Screenshots or Videos
No response
Platform

OS: Mac
NodeJS: v17.4.0
@graphql-yoga/plugin-sofa: ^1.8.0

Additional context
No response

I think this issue should be under GraphQL Mesh repository.

@ardatan do you mean SOFA?

The configuration belongs to Mesh and the error comes from Mesh CLI.

Closing this as it is related to mesh not yoga.


docs(chart): add notes regarding .helmignore and .Files

This PR makes more explicit in the docs that files excluded through .helmignore are not accessible using the .Files variable.
See issue #3050.

Juste signed the CNCF CLA (somehow I had signed a Google CLA by mistake, there must be an outdated link somewhere in the contribution docs).


RENDER NOT WORKING!!!

It just like this.
We just can see the entities and the dropped-item is purple.
https://github.com/PrismarineJS/prismarine-viewer/issues/321
this is my shoot.

Try to set the bot version in "const bot" to the server version.
ex:
const bot = mineflayer.createBot({
host: process.argv[2],
port: parseInt(process.argv[3]),
username: process.argv[4] ? process.argv[4] : 'viewer',
password: process.argv[5]
version: process.argv[5]
})

Is the server you are trying to connect to using viaversion? Because it creates a problem with prismarine-viewer.

The same is happening to me

I`am use ViaVersion and ViaBackwards.

all this because because either textures or block states didn't load, a loading indicator or error indicator should be added in the UI!


Add the possibility to configure the metadata output structure in JSON files

The structure, and maybe additional data, but the same for all editions, or/and some transformation functions which can use existing data and return something else

https://github.com/juliancwirko/nft-art-maker#output-metadata-schema-configuration


This page requests the creation of main.cpp but all build files refer to HelloWorld.cpp

Type of issue
Typo
Description
This page's instruction requests the creation of main.cpp.
All build files refer to HelloWorld.cpp.
This results in the following error.
CMake Error at C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/vcpkg/scripts/buildsystems/vcpkg.cmake:598 (_add_executable):
Cannot find source file:
helloworld.cpp

Page URL
https://learn.microsoft.com/en-us/vcpkg/get_started/get-started
Content source URL
https://github.com/Microsoft/vcpkg-docs/blob/main/vcpkg/get_started/get-started.md
Document Version Independent Id
5099d71b-6e6f-f2d6-ab3f-3e8327541245
Article author
@JavierMatosD
Metadata

ID: 5099d71b-6e6f-f2d6-ab3f-3e8327541245
Service: vcpkg

Thanks for the report!

I don't see this issue in the current version of this article. The only references to "HelloWorld" seem to be for the name of the project, not the name of the .cpp source file. It's possible this was fixed a while ago when someone did an edit pass through that tutorial, so I am closing this issue.


Add support for Chamberlain gates and urlencode parameters

The main purpose of the change is to add support for Chamberlain gates but I also added some extra logging and urlencoded parameters.

Thanks for your updates. I haven't had time to work on this for a while.


DOC: Adding troubleshooting section.

@remram44 Please check.

@remram44 Also, include troubleshooting w.r.t. increasing the memory of a Vagrant VM.

I really don't like the style of the troubleshooting sections, I'd really have proper section titles in there (so that they are linkable, they appear in TOCs, and that we don't need to caption them when linking with :ref:). Couldn't find a way to make that happen without actually showing a title though.

You don't like it because there are no titles? Or because of other reasons
as well?
If you can find a better way, go ahead and change. I particularly like the
issue / diagnosis / solution division, but then I could not find a way to
include titles for each.
On Thu, Sep 17, 2015 at 2:18 PM, Remi Rampin<EMAIL_ADDRESS>wrote:

I really don't like the style of the troubleshooting sections, I'd really
have proper section titles in there (so that they are linkable, they appear
in TOCs, and that we don't need to caption them when linking with :ref:).
Couldn't find a way to make that happen without actually showing a title
though.
—
Reply to this email directly or view it on GitHub
https://github.com/ViDA-NYU/reprozip/pull/147#issuecomment-141172117.

--
Fernando Chirigati
Research Assistant and Doctoral Candidate at NYU
http://bigdata.poly.edu/~fchirigati/ http://vgc.poly.edu/~fchirigati/

I have nothing against the presentation, just the way it is accomplished in rST.
I went over most of the Sphinx/rST documentation and couldn't find a way... I guess it'll have to stay this way for now.

I'm with you -- I did try coming up with titles so it would actually show
up in TOC, and also went over the Sphinx/rST documentation to search for
alternatives. So I just left it like that.
I did not want to use the same question style as in FAQ.
On Thu, Sep 17, 2015 at 3:17 PM, Remi Rampin<EMAIL_ADDRESS>wrote:

I have nothing against the presentation, just the way it is accomplished
in rST.
I went over most of the Sphinx/rST documentation and couldn't find a
way... I guess it'll have to stay this way for now.
—
Reply to this email directly or view it on GitHub
https://github.com/ViDA-NYU/reprozip/pull/147#issuecomment-141193566.

--
Fernando Chirigati
Research Assistant and Doctoral Candidate at NYU
http://bigdata.poly.edu/~fchirigati/ http://vgc.poly.edu/~fchirigati/


First page is fetched twice

Hi, first of all - great tool!
I noticed that you fetch the first page of results twice - you start  from page 0, but this is an invalid page in the API, so when you call it it just returns the results for page 1. Then you fetch page 1 again, so in the end you get 200 extra tracks in the final result..

Hi @siltus, thanks a lot!
Well spotted; I'd totally missed that duplicated data.  I appreciate you taking the time to raise the issue, I've added a fix now.

Sure thing! It was easy to find, I used your tool to compare the results you get from a small tool I'm experimenting myself, and notice the 200 results diff. :)
Now I need to figure out why the playcount I get from the API is different from the one that's displayed on the user's landing page in the last.fm site :)

The playcounter on your user profile also adds imported scrobbles from your media player library while these tracks are not included in the CSV file from Ben.

@hans-juergen, is there a way to get those in some API? I don't recall doing any import, but then again, I have last.fm account for 10 years so lot of stuff could happen for me to forget:)

As far as I know, the (recently listened) tracks list does not show imported scrobbles either, because they are hidden there. But they are counted when looking at individual artists scrobbles for example, so the data is there. This is a know issue for the Last.fm devs, too.
In your case it is unlikely that you have imported anything though, because 10 years ago this option did not exist, and it is only offered to new users with less than 200 scrobbles.

Thanks for the input, @hans-juergen ! I'll continue to search for a way to figure this out, my OCD won't let me settle only on user.recenttracks API results. :)

I thinkthere also is a limit of 500 different tracks that can be scrobbled for one artist, so if you listen to some artists that have more than 500 different tracks in their repertoire (especially old bands of course with lots of releases), you may get a different counter for those as well.
All this is referring to the old database, by the way, because the new one used for the beta site is a completely different animal.


Permissions and Usages

[x] Completed PR - Has all features or fixes that it was meant to and isn't half done
[x] Follows the style guide - Style guide found here
[x] All changes have been tested

Added

Usages Command to allow users to get usages for any command
Group command for permissions to list groups

Changed
N/A
Deprecated
N/A
Removed
N/A
Fixed
N/A
Security
N/A

@weeryan17 Happy now? xD

yes

@WalshyDev Better? xD

@WalshyDev Better?


Add Eafit

Url: https://www.eafit.edu.co/
Course offered: https://www.eafit.edu.co/programas-academicos/pregrados/ingenieria-sistemas/Paginas/inicio.aspx

@melodiaz23 I am sorry, the domain eafit.edu.co is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Force to use EventBus main thead pool to process messages

Description
EventBus uses its own Executor to process pus-sub messages to update all subscribers in the plugin.
Since SAML config DynamicFactory serialize configuration which involves creation of Auth Back ends it uses wrong thread group and as result we need extra permissions.
Testing
[Please provide details of testing done: unit testing, integration testing and manual testing]
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Will close it. I need more time for investigation


Support dynamic registry tokens, add wrapper for working with registry microservice

This is a companion for https://github.com/jupyterhub/repo2docker/pull/1245 that allows dynamic credentials t be used for pushing to a registry. This is required for e.g. ECR where the token used to login to the reigistry expires.
This also implements the non-vendor specific parts of
https://github.com/jupyterhub/binderhub/issues/1623
Closes https://github.com/jupyterhub/binderhub/issues/705
You can see an example implementation of the microservice side in
https://github.com/manics/binderhub-container-registry-helper
This is working with AWS ECR using an IRSA role for the microservice.
It's written in Go as I wanted to learn it, but if we choose to pursue this rewriting it in Python (or Javascript, or any other language) shouldn't be too difficult.

Anyone else have thoughts on this? @stevejpurves is interested in it.

@yuvipanda do you have any thoughts on this?


utf8::is_valid returns wrong result

I have this string VINAIGRE ALCOOL BLC 6° 100CL than i pass to is_valid function but it returns false
what's the issue here ?

My bad, it was a code issue


About SSL_read Some Feature..

I would like to ask where the openssl documentation mentions that SSL_read will read the number of bytes other than the specified byte and store it yourself?
    For example: suppose 100 bytes in the buffer (required for encryption)
    When I first registered the read event with epoll, I read 50 bytes from the buffer.
    When I registered the read event with epoll for the second time, I still couldn't get the read event callback?
What's this sh*t feature?

I would like to ask where the openssl documentation mentions that SSL_read will read the number of bytes other than the specified byte and store it yourself?     For example: suppose 100 bytes in the buffer (required for encryption)     When I first registered the read event with epoll, I read 50 bytes from the buffer.     When I registered the read event with epoll for the second time, I still couldn't get the read event callback? What's this sh*t feature?

Hi~ Could you share me how you solved the problem mentioned above?  I want to know what mechanism should I token to obtain the rest 50 bytes (buffered in SSL object), I don't want to repeatly call SSL_read many times on one epoll notify, I need something notify me again about the rest 50 bytes.
Thank you!

Hi. @LikeUSummer
When you need to use ssl to read a buffer with a specified byte size, you can try to use the ssl_peek method to check the internal received byte size.
But according to my experience: "Anytime I need to register for read/write events, I will use ssl_read* to confirm that the buffer is empty or the existing data is incomplete". And this will minimize my system calls Number of times.
Hope these can help you.    :)

Hi. @LikeUSummer
When you need to use ssl to read a buffer with a specified byte size, you can try to use the ssl_peek method to check the internal received byte size.
But according to my experience: "Anytime I need to register for read/write events, I will use ssl_read* to confirm that the buffer is empty or the existing data is incomplete". And this will minimize the number of syscall.
Hope these can help you. :)

Wow~ Thank you sincerely, for what you said really helped me to puzzle out about SSL.


Fix invalid node check when pool overwrites Kubernetes version

How to categorize this PR?

/area ops-productivity
/kind bug
What this PR does / why we need it:
Before this commit, when a pool overwrote the Kubernetes version then it yielded the following failing EveryNodeReady condition in the Shoot:
    - lastTransitionTime: "2022-02-11T10:34:40Z"
      lastUpdateTime: "2022-02-11T10:35:24Z"
      message: The kubelet version for node "shoot--foo--bar-worker-2-z1-5d4f4-dnls5"
        (v1.22.2) does not match the desired Kubernetes version (v1.22.3)
      reason: KubeletVersionMismatch
      status: Progressing
      type: EveryNodeReady

The spec looked as follows:
spec:
  kubernetes:
    version: 1.22.3
  provider:
    workers:
    - name: worker-1
    - name: worker-2
      kubernetes:
        version: 1.22.2
    - name: worker-3
      kubernetes:
        version: 1.22.1

This PR fixes this issue.
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/3501
Release note:

The `EveryNodeReady` shoot condition is now correctly computed even if a worker pool overwrites the Kubernetes version.

/invite @plkokanov


Chore adjust AggStateType constructor check input

Proposed changes
adjust AggStateType constructor check input
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall