Can't generate synthetic sentences

I follow [README]( the https://github.com/stanford-oval/genie-toolkit/blob/master/README.md.)
The environment: linux . Nodejs: 10.4.1
The command I used
yarn global add genie-toolkit
pip install genienlp
cd Our_Almond
git clone https://github.com/stanford-oval/genie-toolkit.git
cd genie-toolkit
npm install
genie download-dataset -o dataset.tt
genie download-snapshot -o thingpedia.tt --entities entities.json
genie generate --locale en --template /home/user/Our_Almond/genie-toolkit/languages/thingtalk/en/thingtalk.genie --thingpedia thingpedia.tt --entities entities.json --dataset dataset.tt -o synthesized.tsv

The error I faced:
stats: size(charts[0][out_param_Array__String]) = 4
stats: size(charts[0][both_prefix]) = 2
Error expanding rule NT[preposition_filter] -> here
{ AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

  assert(pname instanceof Ast.Value.VarRef)

    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/utils.js:40:5)
    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/ast_manip.js:160:18)
    at $grammar.addRule.$runtime.simpleCombine (eval at parse (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/genie-compiler/index.js:122:25), <anonymous>:428:85)
    at Function.combine (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:209:29)
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:255:35
    at expandRule (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:985:18)
    at Grammar.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:806:25)
    at SentenceGenerator.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:47:23)
    at _initialization.then (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:183:29)
  generatedMessage: true,
  name: 'AssertionError [ERR_ASSERTION]',
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '==' }
/home/user/.config/yarn/global/node_modules/genie-toolkit/tool/genie.js:13
process.on('unhandledRejection', (up) => { throw up; });
                                           ^

AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

  assert(pname instanceof Ast.Value.VarRef)

    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/utils.js:40:5)
    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/ast_manip.js:160:18)
    at $grammar.addRule.$runtime.simpleCombine (eval at parse (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/genie-compiler/index.js:122:25), <anonymous>:428:85)
    at Function.combine (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:209:29)
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:255:35
    at expandRule (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:985:18)
    at Grammar.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:806:25)
    at SentenceGenerator.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:47:23)
    at _initialization.then (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:183:29)
Emitted 'error' event at:
    at _initialization.then.catch (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:188:18)

I would appreciate it if you could take a moment to explain something to me

Hi Limtle. You should make sure that only one version of Genie is in use. If you mix yarn global and git clone, you might end up with two versions of Genie, installed in different directories, which can lead to these kinds of bugs.
The best way to avoid it is, after you run yarn global add genie-toolkit, to go into the genie-toolkit clone and do yarn link, which will replace the global package with the git clone.
Let me know if it fixes this issue, and we'll update our docs accordingly!

The command I used
yarn global add genie-toolkit
pip install genienlp
cd Our_Almond
git clone https://github.com/stanford-oval/genie-toolkit.git
cd genie-toolkit
yarn link

The warning I faced:
warning There's already a package called "genie-toolkit" registered. This command has had no effect. If this command was run in another folder with the same name, the other folder is still linked. Please run yarn unlink in the other folder if you want to register this folder.
Done in 0.04s.

So after this warning
The command I used
cd /home/cool425589/.config/yarn/global/node_modules/genie-toolkit
yarn unlink
cd /home/cool425589/Our_Almond/genie-toolkit
yarn link
cd ..
genie generate --locale en --template /home/user/Our_Almond/genie-toolkit/languages/thingtalk/en/thingtalk.genie --thingpedia thingpedia.tt --entities entities.json --dataset dataset.tt -o synthesized.tsv

The error I faced:
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

  assert(pname instanceof Ast.Value.VarRef)

    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/utils.js:40:5)
    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/ast_manip.js:160:18)
    at eval (eval at parse (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/genie-compiler/index.js:122:25), <anonymous>:426:85)
    at Function.combine (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:209:29)
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:255:35
    at expandRule (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:985:18)
    at Grammar.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:806:25)
    at SentenceGenerator.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:47:23)
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:183:29 {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}
/home/user/.config/yarn/global/node_modules/genie-toolkit/tool/genie.js:13
process.on('unhandledRejection', (up) => { throw up; });
                                           ^

AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

  assert(pname instanceof Ast.Value.VarRef)

    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/utils.js:40:5)
    at Object.makeFilter (/home/user/Our_Almond/genie-toolkit/languages/thingtalk/ast_manip.js:160:18)
    at eval (eval at parse (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/genie-compiler/index.js:122:25), <anonymous>:426:85)
    at Function.combine (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:209:29)
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:255:35
    at expandRule (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:985:18)
    at Grammar.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:806:25)
    at SentenceGenerator.generate (/home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:47:23)
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:183:29
Emitted 'error' event on BasicSentenceGenerator instance at:
    at /home/user/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:188:18 {
  generatedMessage: true,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}

I have the same problem.
After following the https://github.com/stanford-oval/genie-toolkit/blob/master/INSTALL.md
genie download-dataset -o dataset.tt
genie download-snapshot -o thingpedia.tt --entities entities.json
genie generate --locale en-US --template ~/.yarn/bin/global/node_modules/genie-toolkit/languages/thingtalk/en/thingtalk.genie --thingpedia thingpedia.tt --entities entities.json --dataset dataset.tt -o synthesized.tsv

Error expanding rule NT[where_question] -> where is NT[complete_table]
ReferenceError: type is not defined
    at $grammar.addRule.$runtime.simpleCombine (eval at parse (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/genie-compiler/index.js:122:25), <anonymous>:97:173)
    at Function.combine (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:241:21)
    at /home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:255:35
    at recursiveHelper (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1073:29)
    at recursiveHelper (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1101:25)
    at recursiveHelper (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1129:17)
    at expandRule (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1131:11)
    at Grammar.generate (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:806:25)
    at SentenceGenerator.generate (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:47:23)
    at _initialization.then (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:183:29)
/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/tool/genie.js:13
process.on('unhandledRejection', (up) => { throw up; });
                                           ^

ReferenceError: type is not defined
    at $grammar.addRule.$runtime.simpleCombine (eval at parse (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/genie-compiler/index.js:122:25), <anonymous>:97:173)
    at Function.combine (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:241:21)
    at /home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:255:35
    at recursiveHelper (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1073:29)
    at recursiveHelper (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1101:25)
    at recursiveHelper (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1129:17)
    at expandRule (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:1131:11)
    at Grammar.generate (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/runtime.js:806:25)
    at SentenceGenerator.generate (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:47:23)
    at _initialization.then (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:183:29)
Emitted 'error' event at:
    at _initialization.then.catch (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sentence-generator/index.js:188:18)

Those seem to be two separate issues.
@Limtle, the warning indicates that yarn link did not have any effect, hence that's why you're still seeing the original problem. Can try yarn global remove genie-toolkit and then yarn link again? You should not see the warning from yarn link, otherwise it won't help.
@Kljon it looks like you uncovered an actual, separate bugs in the templates. I'll open a PR.

Thanks for your Help.
node --max_old_space_size=80000 ~/bin/genie generate --locale en --template /home/Kljon/.config/yarn/global/node_modules/genie-toolkit/languages/thingtalk/en/thingtalk.genie --thingpedia thingpedia.tt --entities entities.json --dataset dataset.tt -o /work/Kljon/synthesized.tsv ^C

But following error I faced.
--- DEPTH 4
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Thanks. After  run yarn global remove genie-toolkit . I did not see the warning from yarn link now, but yarn link doesn't link binaries globally . Maybe have this problem .
I follow @Kljon use  ~/.yarn/bin/global/node_modules/genie-toolkit/languages/thingtalk/en/thingtalk.genie as template. It is working. But Got std::bad_alloc  too

@Limtle, as indicated in the yarn issue you linked, yarn link does link binaries globally, but only in recent versions of yarn.
As for the memory error, @Kljon, you're passing an invalid (too large) value to --max_old_space_size. This essentially disables GC and causes your process to run out memory.
You should pass something like (max available memory - a couple GBs free for the OS and anything else you're running on)

@gcampax Thank you for your help.
I have another question for Step 3. Paraphrasing. Can I use synthesized.tsv directly genie mturk-make-paraphrase-hits -o paraphrasing-hits.csv < synthesized.tsv  without Step 2. Choose The Sentences To Paraphrases.
Because I have some question in Choose The Sentences To Paraphrases. What is the goal of Paraphrases.
Why we need to choose the Sentences to paraphrases instead of using all data  to paraphrases.

Paraphrasing is a way to make the sentences in the dataset more natural, and improve the quality of the semantic parser trained from those sentences. You don't paraphrase the whole dataset just as a matter of cost: paraphrasing requires human effort (through a crowdsourcing platform like Amazon MTurk), and a synthetic dataset can easily have one million or more sentences so it would be too expensive to paraphrase in its entirety.
The sampling step also changes the format of the synthesized dataset slightly: it replaces constants which are masked in the synthesized datasets (numbers, dates, times, etc.) with concrete values. This is necessary so the sentences are readable to a human paraphraser. Hence, sampling is not optional.

Thank you for your help and patience.
This is my command
genie sample synthesized.tsv --constants /home/Kljon/.config/yarn/global/node_modules/genie-toolkit/data/en-US/constants.tsv --sampling-strategy bySignature --sampling-control /home/Kljon/.config/yarn/global/node_modules/genie-toolkit/data/easy-hard-functions.tsv -o mturk-input.tsv --thingpedia thingpedia.tt

error I faced
which are the get my Google contacts ?
/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/tool/genie.js:13
process.on('unhandledRejection', (up) => { throw up; });
                                          ^

Error: Missing entity Google (present in the sentence, not in the code)
   at SentenceProcessor.process (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sampler.js:246:27)
   at SentenceSampler._run (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sampler.js:485:40)
   at SentenceSampler._transform (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sampler.js:493:14)
   at SentenceSampler.Transform._read (_stream_transform.js:190:10)
   at SentenceSampler.Transform._write (_stream_transform.js:178:12)
   at doWrite (_stream_writable.js:410:12)
   at clearBuffer (_stream_writable.js:540:7)
   at onwrite (_stream_writable.js:465:7)
   at SentenceSampler.afterTransform (_stream_transform.js:94:3)
   at _run.then (/home/Kljon/.config/yarn/global/node_modules/genie-toolkit/lib/sampler.js:493:37)
Emitted 'error' event at:
   at SentenceSampler.onerror (_stream_readable.js:690:12)
   at SentenceSampler.emit (events.js:182:13)
   at onwriteError (_stream_writable.js:431:12)
   at onwrite (_stream_writable.js:456:5)
   at SentenceSampler.afterTransform (_stream_transform.js:94:3)
   at process._tickCallback (internal/process/next_tick.js:68:7)

Hi @gcampax . I found the genie-toolkit has updated. So I reinstall genie-toolkit but get the same error.
And Do you have an example for --sampling-strategy.
Thanks.

We have just merged new documentation, and new starter code that should help with setting up Genie and getting it to generate sentences. If you're still interested, would you be able to try that?

Closing this. Please reopen if you still experience the issue with the latest version of genie-toolkit.


Android version code doc fixes and improvements

Fix missing characters at the start of each line
Improved link for android version code

@mungojam : Thanks for your contribution! The author(s) have been notified to review your proposed change.


CosmosDB NoSQL NodeJS tutorial uses wrong property in latter part of the tutorial

I've been following through the tutorial and hit a problem where it uses the wrong property.
Earlier on, the tutorial explains that we should configure the database + container using the partition key categoryId.  But when we get to the 'Get an item' section of the tutorial, it incorrectly uses the categoryName property instead from that point on.
Either the earlier part of the tutorial should tell readers to configure the database with a partition key of categoryName or (more likely) the latter part of the tutorial should use categoryId instead.

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

ID: dbbdc946-ac5a-1f41-b4ec-2e039167bbdc
Version Independent ID: fbb1c3ec-c0f5-ea93-e71c-6bc206f81e8f
Content: Quickstart - Azure Cosmos DB for NoSQL client library for Node.js
Content Source: articles/cosmos-db/nosql/quickstart-nodejs.md
Service: cosmos-db
Sub-service: nosql
GitHub Login: @seesharprun
Microsoft Alias: sidandrews

Hi @seesharprun,
Could you please look into this document request, thanks.

@RoystonS, you are absolutely right that categoryId should be used instead. We will get this change live soon.

That was very quick - thank you!

@seesharprun
The document is now mostly correct, but there's still a stray line under 'Get an item' which says:

The partition key is specific to a container. In this Contoso Products container, the category name, categoryName, is used as the partition key.

That should be categoryId.


Improve TriggerScript documentation

There are several missing triggers definitions.
TriggerScripts
There should be relevant docs for each event handler type:

[x] 100. NewTicket
[x] 101. NewTicketFromCustomerCenter
[x] 102. NewTicketFromEmail
[ ] 103. NewTicketFromCustomerCenterBeforeSave
[ ] 104. NewTicketFromSpmLink
[ ] 105. NewNotifyTicketFromForm
[ ] 106. NewTicketFromForm
[ ] 109. TicketSave
[ ] 110. TicketClose
[ ] 111. TicketPostponed
[ ] 112. TicketDeleted
[ ] 113. TicketActivated
[ ] 120. TicketReopened
[ ] 121. TicketReopenedFromCustomerCenter
[ ] 122. TicketReopenedFromEmail
[ ] 140. TicketChangedPriority
[ ] 141. TicketChangedCategory
[ ] 142. TicketChangedOwnedBy
[ ] 143. TicketChangedPrimaryCustomer
[ ] 144. TicketChangedTicketStatus
[ ] 145. TicketChangedSlevel
[ ] 150. TicketMessageAdded
[ ] 151. TicketInternalMessageAdded
[ ] 152. TicketExternalMessageAdded
[ ] 153. TicketMessageSentimentCalculated
[ ] 200. CompactModeInjection
[ ] 210. CustomerCenterAuthentication
[ ] 300. ScheduledTaskFailed
[ ] 301. DbiTaskFailed
[ ] 302. CustomerSetSubscriptions
[ ] 303. ImportMailBeforeProcessing
[ ] 304. ImportMailAfterProcessing
[ ] 305. MainMenu
[ ] 400. ChatNewSession
[ ] 401. ChatSessionChangedStatus
[ ] 402. ChatBeforeSaveNewMessage
[ ] 403. ChatAfterSaveNewMessage
[ ] 500. ServiceScreenNewTicketLoad
[ ] 501. ServiceScreenNewQuickTicketLoad
[ ] 502. ServiceScreenListTicketMessagesLoad
[ ] 503. ServiceScreenAddMessageLoad
[ ] 504. ServiceScreenEditTicketLoad
[ ] 505. ServiceScreenViewCustomerLoad
[ ] 506. ServiceScreenEditCustomerLoad
[ ] 507. ServiceScreenViewCompanyLoad
[ ] 508. ServiceScreenEditCompanyLoad
[ ] 509. ServiceScreenForwardLoad
[ ] 510. ServiceScreenEditExtraTableLoad
[ ] 600. ServiceScreenNewTicketBeforeSubmit
[ ] 601. ServiceScreenNewQuickTicketBeforeSubmit
[ ] 602. ServiceScreenListTicketMessagesBeforeSubmit
[ ] 603. ServiceScreenAddMessageBeforeSubmit
[ ] 604. ServiceScreenEditTicketBeforeSubmit
[ ] 605. ServiceScreenViewCustomerBeforeSubmit
[ ] 606. ServiceScreenEditCustomerBeforeSubmit
[ ] 607. ServiceScreenViewCompanyBeforeSubmit
[ ] 608. ServiceScreenEditCompanyBeforeSubmit
[ ] 609. ServiceScreenForwardBeforeSubmit
[ ] 610. ServiceScreenEditExtraTableBeforeSubmit
[ ] 700. ServiceScreenNewTicketAfterSubmit
[ ] 701. ServiceScreenNewQuickTicketAfterSubmit
[ ] 702. ServiceScreenListTicketMessagesAfterSubmit
[ ] 703. ServiceScreenAddMessageAfterSubmit
[ ] 704. ServiceScreenEditTicketAfterSubmit
[ ] 705. ServiceScreenViewCustomerAfterSubmit
[ ] 706. ServiceScreenEditCustomerAfterSubmit
[ ] 707. ServiceScreenViewCompanyAfterSubmit
[ ] 708. ServiceScreenEditCompanyAfterSubmit
[ ] 709. ServiceScreenForwardAfterSubmit
[ ] 710. ServiceScreenEditExtraTableAfterSubmit
[ ] 1001. SalesBeforeSaveAppointment
[ ] 1002. SalesBeforeSaveStakeholder
[ ] 1003. SalesBeforeSaveQuote
[ ] 1004. SalesBeforeSaveDocument
[ ] 1005. SalesBeforeSaveContact
[ ] 1006. SalesBeforeSavePerson
[ ] 1007. SalesBeforeSaveRelation
[ ] 1008. SalesBeforeSaveSale
[ ] 1009. SalesBeforeSaveProject
[ ] 1010. SalesBeforeSaveSelection
[ ] 1011. SalesBeforeSaveProjectMember
[ ] 1012. SalesBeforeSaveSelectionMember
[ ] 1013. SalesBeforeSaveQuoteLine
[ ] 1101. SalesAfterSaveAppointment
[ ] 1102. SalesAfterSaveStakeholder
[ ] 1103. SalesAfterSaveQuote
[ ] 1104. SalesAfterSaveDocument
[ ] 1105. SalesAfterSaveContact
[ ] 1106. SalesAfterSavePerson
[ ] 1107. SalesAfterSaveRelation
[ ] 1108. SalesAfterSaveSale
[ ] 1109. SalesAfterSaveProject
[ ] 1110. SalesAfterSaveSelection
[ ] 1111. SalesAfterSaveProjectMember
[ ] 1112. SalesAfterSaveSelectionMember
[ ] 1113. SalesAfterSaveQuoteLine

@SuperOfficeDevNet, @kronicz: this list needs to be pruned to what's actually missing from the reference


MultilineMethodCallIndentation should accept IndentationWidth when EnforcedStyle: aligned

The MultilineMethodCallIndentation cop give an error when you specify a IndentationWidth while enforcing the aligned style.
Error: The `Style/MultilineMethodCallIndentation` cop only accepts an `IndentationWidth` configuration parameter when `EnforcedStyle` is `indented`.

Expected behavior
Style/MultilineMethodCallIndentation:
  IndentationWidth: 4
  EnforcedStyle: aligned

allows code like
wegotsomereallylongvariableorsequence
    .something
    .and_then

bar.foo
   .something

Actual behavior
Errors when you try to set it, even though the Default indentation width is still enforced in some cases.
with configuration
Style/MultilineMethodCallIndentation:
  EnforcedStyle: aligned

Both these are accepted
wegotsomereallylongvariableorsequence
  .something
  .and_then

bar.foo
   .something

But
wegotsomereallylongvariableorsequence
    .something
    .and_then

gives you
Style/MultilineMethodCallIndentation: Use 2 (not 4) spaces for indenting an expression spanning multiple lines.

While the configuration
Style/MultilineMethodCallIndentation:
  IndentationWidth: 4
  EnforcedStyle: aligned

gives you
Error: The `Style/MultilineMethodCallIndentation` cop only accepts an `IndentationWidth` configuration parameter when `EnforcedStyle` is `indented`.

RuboCop version
✗ rubocop -V
0.47.1 (using Parser <IP_ADDRESS>, running on ruby 2.3.3 x86_64-darwin15)

Guys, from what time this indentation is wrong? Two spaces after parent method:
url = params
        .permit(:controller_name, :action_name, :q)
        .merge(searchable_type: searchable_type)

But indentation without assignment is correct.
params
  .permit(:controller_name, :action_name, :q)
  .merge(searchable_type: searchable_type)

Is this bug?

The validation that rejects the IndentationWidth setting was added by @alexdowad here:
https://github.com/bbatsov/rubocop/pull/2602/commits/8e982388dae9b2e4304eb190ee4a9202e6f3ddcb
It seems to me that the cop actually uses its IndentationWidth setting in the EnforcedStyle: aligned case when it falls back on indentation because no suitable base column for alignment was found.

I'm closing this ticket due to no recent activity. Feel free to re-open it if you ever come back to it.


Add KotlinBuiltIns extensions

These would ideally be provided by org.jetbrains.kotlin.types.typeUtil which has wrappers for most KotlinBuiltIns functions. Those that are missing that would be generally useful can be added to detekt's TypeUtils.

Warnings

:warning:
It looks like this PR contains functional changes without a corresponding test.

  Generated by :no_entry_sign: dangerJS against d6ec27853b455300ab5439d921aeb46845fb3b4a

Should we forbid the usages of the KotlinBuildIns? With a message to point to these functions.

+1 to this 👍

@3flex this can be rebase and merged

This PR is stale because it has been open 90 days with no activity. Please comment or this will be closed in 7 days.

This PR was closed because it has been stalled for 7 days with no activity.


draft: m.css light theme

This is a draft PR for everything related to improving the light theme. Note that this PR is extremely volatile.
Signed-off-by: William Roy<EMAIL_ADDRESS>

Closing this should someone wants to take over, I currently lack time for that :)


Add timestamp column

Describe the feature you'd like
Would be good to have a timestamp column and filter files/directories by time/date.

Thanks for the feedback, we have added your request to our backlog.


Date shown in the widget is always showing month + 1

Thank you for this extension. I'm trying to integrate it into my yii2 website. I'm using active data provider like in the code below but each calendar item is showing wrong month. eg item from 19th of May is showing 19th of June in the widget (please see the picture attached). Could you advised please what might be the issue ?
echo ActiveCalendar::widget([
'language' => 'en',

'dataProvider' => new ActiveDataProvider([
    'query' => Event::find()->andWhere(['calendar_id' => $calendar->id])
]),
'options' => [
    // HTML attributes for the container.
    // the `tag` option is specially handled as the HTML tag name
],
'clientOptions' => [
	'enableContextMenu' => true,
	'enableRangeSelection' => true,
	'displayWeekNumber' => false,
	'alwaysHalfDay' =>true,
	'disabledDays'=> [],
	'startYear'=> '2018',
	'minDate'=> new JsExpression('new Date("2018-01-01")'),
	'maxDate'=> new JsExpression('new Date("2018-12-31")'),

    // JS Options to be passed to the `calendar()` plugin.
    // see http://bootstrap-year-calendar.com/#Documentation/Options
	// The `dataSource` property will be overwritten by the dataProvider.
],
'clientEvents' => [
	'mouseOnDay' => '',
    // JS Events for the `calendar()` plugin.
    // see http://bootstrap-year-calendar.com/#Documentation/Events
]
]);

$i = 1;
foreach($calendar->events as $event) {
echo 'Event ' . $i . ' start date: ' . $event->startDate . '- ';
echo 'end date: ' . $event->endDate . '<br/>';
$i++;
}

I think the problem is not even this. I use the following expression:
       /**
	 * @return \yii\web\JsExpression
	 */
	public function getStartDate() {
		return JsExpressionHelper::parse($this->date, 'Y-n-j');
	}

Date format
I get the correct JS line :
"startDate":new Date(2018, 3, 29),
"endDate":new Date(2018, 3, 29)

But, the date still shifts for a month ahead

@s1lver with your approach how does january gets converted? wouldnt it switch to december previous year?
and what happens with dates which are not existent previous year, for example converting march 31 to february 31?


header props is not working

antd list has  header props , but not working with ProList

got it, we will fix it soon.

In , we deprecate the header usage, use headerRender props instead.


Upgrade json-smart from 2.4.2 to 2.4.5

opensearch-security pull request intake form
Please provide as much details as possible to get feedback/acceptance on your PR quickly

Category: (Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation)
Maintenance

Github Issue # or road-map entry, if available:

Description of changes:

Why these changes are required?

What is the old behavior before changes and new behavior after changes? (Please add any example/logs/screen-shot if available)

Testing done: (Please provide details of testing done: Unit testing, integration testing and manual testing)

TO-DOs, if any: (Please describe pending items and provide Github issues# for each of them)

Is it backport from main branch? (If yes, please add backport PR # and commits #)

By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
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.

Codecov Report

Merging #1299 (510c7a5) into main (4abbafc) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main    #1299      +/-   ##
============================================
- Coverage     64.73%   64.71%   -0.02%
  Complexity     3194     3194
============================================
  Files           247      247
  Lines         17230    17230
  Branches       3045     3045
============================================
- Hits          11153    11150       -3
- Misses         4528     4530       +2
- Partials       1549     1550       +1

Impacted Files
Coverage Δ

.../dlic/auth/ldap2/LDAPConnectionFactoryFactory.java
56.48% <0.00%> (-0.77%)
:arrow_down:

...a/org/opensearch/security/tools/SecurityAdmin.java
47.26% <0.00%> (-0.27%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4abbafc...510c7a5. Read the comment docs.


Clone button enabling prematurely

If the prepare is force stopped, clone is enabled even though the status still hasn't changed from 20.

Since clone is now enabled together with prepare, this should the expected behaviour. So closing this in favour of #233


Adjust LOD number of atoms and distances

Use Case
As a user viewing the example cellPACK blood plasma trajectory, I want to see the structures rendered efficiently, smoothly, and clearly.
Acceptance Criteria
In the example cellPACK blood plasma trajectory, LOD transitions do not cause flickering and LODs include enough atoms to be able to appreciate the shapes of the structures.
Details
Currently the LODs decimate atoms at four levels: n, n/8, n/32, n/128 (n = original number of atoms), and the distances at which each LOD applies are 0-40, 40-100, 100-150, and 150-infinity.
Since this model will be our first example trajectory featuring PDBs, it makes sense to adjust these settings to render it nicely. When more PDB trajectories are added we can tackle the larger task of fitting these settings to models in a more general case.

This PR already addresses the atom decimation settings and needs the distance adjustments added.

closed by https://github.com/simularium/simularium-viewer/pull/285


Add sphinx quickstart template

Does it make sense to have a references.bib with Scanpy if it's not used in the template?

it's just meant as an example
On Mon, 2 May 2022 at 12:10, ilia-kats @.***> wrote:

Does it make sense to have a references.bib with Scanpy if it's not used
in the template?
—
Reply to this email directly, view it on GitHub
https://github.com/scverse/cookiecutter-scverse/pull/4#issuecomment-1114690863,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABVZRV5SC3WWCJW5Z45DNTLVH6SZNANCNFSM5U3NY7WQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Disallow issuing certificates from inactive authority

It seems that this was the intent of the 'active' flag on authorities, but never actually implemented?

Coverage increased (+0.02%) to 61.332% when pulling 274d8364bc34e4394f003c9ccd93282fcec1a2c0 on intgr:disallow-inactive-authority into 444be5bb7f0b350b7abaa97c9bd4cadba3fea6ed on Netflix:master.

Coverage increased (+0.02%) to 61.332% when pulling 7a6ed10dd94e38a2fb8169c315a2ed70312a1d57 on intgr:disallow-inactive-authority into c381331c10fc92f4c5968b7e420fbf9a435e7429 on Netflix:master.

lgtm thanks!


Allow for configuring the internal storage

What's the purpose of booting with only the external disk attached?

It's so that it uses the installer migration.

Manual tests:

[] Setting QEMU_INTERNAL_STORAGE as global environment variable allows to run the migrator tests on QEMU
[] By default the behaviour is unchanged - both disks are present and the flasher is used
[] Autokit/testbot devices skip the migrator test

@rcooke-warwick I am still looking into this - the e2e tests still unpack the raw image as opposed to the meta-balena tests and I did not count with that.

@rcooke-warwick I am still looking into this - the e2e tests still unpack the raw image as opposed to the meta-balena tests and I did not count with that.

@alexgg We should be able to remove the unwrapping from the e2e tests.

false positive on aarch64 tests, requesting changes to block an auto merge to be sure there's nothing wrong

Will be addressed on https://github.com/balena-os/leviathan-worker/pull/62. There is also no way I could find to have the workflow fail/exit when just one step fails.


Remove repeated word (Developer Portal)

Submitted via Docs Editor.

Docs Build status updates of commit ee1df3e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit fa7d5c2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Ready for Review

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
99
5
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 6442e38:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Ready for review

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
99
5
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

#sign-off

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
99
5
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 81ffc07:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


fixed issue #24 'Race condition on visibility change and Visibility.stop(timer) call in callback'

Awesome! Thanks. I will try to release it om this week (sorry, have flight tomorrow)

Sorry, I must first put new version to CDNJS before release :(. But I hope I will release it on this week (I will make PR to CDNJS tomorrow)

I sent PR to CDNJS https://github.com/cdnjs/cdnjs/pull/8899


docker-compose

Hello,
is it possible to use "docker-compose up" (docker-compose.yml) with docker-php?
Greetings
Mario

We are looking for the same thing... Any update ?

Not now because docker-compose is only an client program.
https://github.com/docker/compose/issues/1033

Docker compose is not at all related to this, as like said by @boonkerz it's a client program that uses the Docker API to manager containers.
This library will never intend to control docker compose (too much work / pain in the long term).


extracting root.img frozen . Please help me to clean the created partitions

curl https://alx.sh | sh
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100   967  100   967    0     0    548      0  0:00:01  0:00:01 --:--:--   550
Bootstrapping installer:
Checking version...
Version: v0.3.9
Downloading...
Extracting...
Initializing...
The installer needs to run as root.
Please enter your sudo password if prompted.
Password:
Welcome to the Asahi Linux installer!
This installer is in an alpha state, and may not work for everyone.
It is intended for developers and early adopters who are comfortable
debugging issues or providing detailed bug reports.
Please make sure you are familiar with our documentation at:
https://alx.sh/w
Press enter to continue.
By default, this installer will hide certain advanced options that
are only useful for developers. You can enable expert mode to show them.
» Enable expert mode? (y/N): N
Collecting system information...
Product name: MacBook Air (M1, 2020)
SoC: Apple M1
Device class: j313ap
Product type: MacBookAir10,1
Board ID: 0x26
Chip ID: 0x8103
System firmware: iBoot-7459.101.2
Boot UUID: F2577686-35E3-46E4-BBDA-2D744A0E0D20
Boot VGID: F2577686-35E3-46E4-BBDA-2D744A0E0D20
Default boot VGID: F2577686-35E3-46E4-BBDA-2D744A0E0D20
Boot mode: macOS
OS version: 12.3 (21E230)
System rOS version: 12.3 (21E230)
No Fallback rOS
Login user: raghu
Collecting partition information...
System disk: disk0
Collecting OS information...
Partitions in system disk (disk0):
1: APFS [Macintosh HD] (245.11 GB, 6 volumes)
OS: [B*] [Macintosh HD] macOS v12.3 [disk3s1, F2577686-35E3-46E4-BBDA-2D744A0E0D20]
2: APFS (System Recovery) (5.37 GB, 2 volumes)
OS: [  ] recoveryOS v12.3 [Primary recoveryOS]
[B ] = Booted OS, [R ] = Booted recovery, [? ] = Unknown
[ *] = Default boot volume
Using OS 'Macintosh HD' (disk3s1) for machine authentication.
Choose what to do:
r: Resize an existing partition to make space for a new OS
q: Quit without doing anything
» Action (r): r
We're going to resize this partition:
APFS [Macintosh HD] (245.11 GB, 6 volumes)
Total size: 245.11 GB
Free space: 90.43 GB
Minimum free space: 38.00 GB
Minimum total size: 192.68 GB (78.61%)
Enter the new size for your existing partition:
You can enter a size such as '1GB', a fraction such as '50%',
or the word 'min' for the smallest allowable size.
Examples:
30%  - 30% to macOS, 70% to the new OS
80GB - 80GB to macOS, the rest to your new OS
min  - Shrink macOS as much as (safely) possible
» New size (min): 35GB
Size is too small, please enter a value > 192.68 GB (78.61%)
» New size (min): min
Resizing will free up 52.43 GB of space.
Note: your system may appear to freeze during the resize.
This is normal, just wait until the process completes.
» Continue? (y/N): y
Started APFS operation
Aligning shrink delta to 52,429,258,752 bytes and targeting a new physical store size of 192,677,937,152 bytes
Determined the minimum size for the targeted physical store of this APFS Container to be 158,611,800,064 bytes
Resizing APFS Container designated by APFS Container Reference disk3
The specific APFS Physical Store being resized is disk0s2
Verifying storage system
Using live mode
Performing fsck_apfs -n -x -l /dev/disk0s2
Checking the container superblock
Checking the EFI jumpstart record
Checking the space manager
Checking the space manager free queue trees
Checking the object map
Checking the encryption key structures
Checking volume /dev/rdisk3s1
Checking the APFS volume superblock
Checking the object map
Checking the snapshot metadata tree
Checking the snapshot metadata
Checking snapshot 1 of 1 (com.apple.os.update-2289385E1A6FCCF05D444673FB1FEB06DDCF82A4C723EAD53AF1F3E08872CE0F)
Checking the fsroot tree
Checking the file extent tree
Checking the extent ref tree
Verifying volume object map space
The volume /dev/rdisk3s1 appears to be OK
Checking volume /dev/rdisk3s2
Checking the APFS volume superblock
Checking the object map
Checking the snapshot metadata tree
Checking the snapshot metadata
Checking the fsroot tree
Checking the extent ref tree
Verifying volume object map space
The volume /dev/rdisk3s2 appears to be OK
Checking volume /dev/rdisk3s3
Checking the APFS volume superblock
Checking the object map
Checking the snapshot metadata tree
Checking the snapshot metadata
Checking the fsroot tree
Checking the extent ref tree
Verifying volume object map space
The volume /dev/rdisk3s3 appears to be OK
Checking volume /dev/rdisk3s4
Checking the APFS volume superblock
Checking the object map
Checking the snapshot metadata tree
Checking the snapshot metadata
Checking the fsroot tree
Checking the extent ref tree
Verifying volume object map space
The volume /dev/rdisk3s4 appears to be OK
Checking volume /dev/rdisk3s5
Checking the APFS volume superblock
Checking the object map
Checking the snapshot metadata tree
Checking the snapshot metadata
Checking the document ID tree
Checking the fsroot tree
Checking the extent ref tree
Checking the file key rolling tree
Verifying volume object map space
The volume /dev/rdisk3s5 appears to be OK
Checking volume /dev/rdisk3s6
Checking the APFS volume superblock
Checking the object map
Checking the snapshot metadata tree
Checking the snapshot metadata
Checking the fsroot tree
Checking the extent ref tree
Verifying volume object map space
The volume /dev/rdisk3s6 appears to be OK
Verifying allocated space
The container /dev/disk0s2 appears to be OK
Storage system check exit code is 0
Shrinking APFS Physical Store disk0s2 from 245,107,195,904 to 192,677,937,152 bytes
Shrinking APFS data structures
Shrinking partition
Modifying partition map
Finished APFS operation
Resize complete. Press enter to continue.
Collecting partition information...
System disk: disk0
Collecting OS information...
Partitions in system disk (disk0):
1: APFS [Macintosh HD] (192.68 GB, 6 volumes)
OS: [B*] [Macintosh HD] macOS v12.3 [disk3s1, F2577686-35E3-46E4-BBDA-2D744A0E0D20]
2: (free space: 52.43 GB)
3: APFS (System Recovery) (5.37 GB, 2 volumes)
OS: [  ] recoveryOS v12.3 [Primary recoveryOS]
[B ] = Booted OS, [R ] = Booted recovery, [? ] = Unknown
[ *] = Default boot volume
Using OS 'Macintosh HD' (disk3s1) for machine authentication.
Choose what to do:
f: Install an OS into free space
q: Quit without doing anything
» Action (f): f
Choose an OS to install:
1: Asahi Linux Desktop
2: Asahi Linux Minimal (Arch Linux ARM)
3: UEFI environment only (m1n1 + U-Boot + ESP)
» OS: 1
Downloading OS package info...
.
Minimum required space for this OS: 15.00 GB
Available free space: 52.43 GB
How much space should be allocated to the new OS?
You can enter a size such as '1GB', a fraction such as '50%',
the word 'min' for the smallest allowable size, or
the word 'max' to use all available space.
» New OS size (max): 35GB
The new OS will be allocated 35.00 GB of space,
leaving 17.43 GB of free space.
Enter a name for your OS
» OS name (Asahi Linux): LinuxM1
Using macOS 12.3 for OS firmware
Downloading macOS OS package info...
.
Creating new stub macOS named LinuxM1
Installing stub macOS into disk0s5 (LinuxM1)
Preparing target volumes...
Checking volumes...
Beginning stub OS install...
++
Setting up System volume...
Setting up Data volume...
Setting up Preboot volume...
+++++++++
Setting up Recovery volume...
++++Error downloading data (<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1129)>), retrying... (1/5)
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Wrapping up...
Stub OS installation complete.
Adding partition EFI (500.17 MB)...
Formatting as FAT...
Adding partition Root (32.00 GB)...
Collecting firmware...
Installing OS...
Copying from esp into disk0s4 partition...
+
Copying firmware into disk0s4 partition...
Extracting root.img into disk0s7 partition...
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++^C
Interrupted

p.s. a pastebin would have done nicely here

https://github.com/AsahiLinux/asahi-installer/issues/36#issuecomment-1073341875

See here for cleanup instructions. The issue with stuck downloads should also be fixed now, so I think we can close this now.


Check manually-assigned addresses with IPAM to see if they clash

Fixes #687 and #598
One quiet change in this PR:

avoid printing error messages from 'claim' twice in the logs

I could add some more lines to remove this if desired.

yes, please.

Done

I think these are two different operations, rather than a variation on one operation (and perhaps that is why I was confused by "launch").
The first is to tell weave about an IP that had been claimed previously. The second is to ask for a particular IP that has not been handed out previously. It's actually the latter that deserves the name "Claim"; the former is more like, well, "Reclaim" or "Recover".
How this is reflected in the HTTP API, I'm not sure -- PUT to a URL seems a good match for both. So a query arg might be appropriate for discriminating.

I renamed 'launch' to 'reclaim'; rebased and squashed.
Also changed the behaviour to output a message and carry on when IPAM is waiting for quorum, rather than hang the caller.  This is more in line with what #687 asks for.

I decided noErrorOnUnknown described the behaviour best.

I struggle to see how this solves #598. Please explain.

Line 866 in the weave script informs IPAM of a manually-selected address.  If this can be granted, it is, and hence IPAM will not then allocate that address to something else, which I thought was the main issue of #598.

ok

I should perhaps have updated the docs, where it says

make sure they don’t conflict with any IP ranges in use on the hosts (including those delegated to weave’s automatic IP address allocator)

Surely http://docs.weave.works/weave/master/head/ipam.html#manual should be updated.


DebugBreak flag as phase

Add flags -on:debugbreak:1.0 to match more closely how we usually reference functions in flags.
This is something we talked about years ago and I ended up working around that code so I figured I'd fix it while I'm at it.

This change is

@Microsoft/chakra-developers Can someone review this please ? It should be pretty trivial change

:shipit:


[REGRESSION] Parsing timestamps with leap seconds

Describe the bug
https://github.com/apache/arrow-rs/pull/3801 introduced a regression. Prior to arrow 34 the following timestamp could be parsed:
2020-09-08T12:00:60.123Z

However, after the upgrade it will generate a parse error.
To Reproduce
Try to parse this as a timestamp:
2020-09-08T12:00:60.123Z

Expected behavior
It should be parsed correctly
Additional context
Found whilst working on https://github.com/apache/arrow-rs/pull/3860

label_issue.py automatically added labels {'arrow'} from #3862


Set Table Head Class

Solves https://github.com/spatie/vue-table-component/issues/60

Thanks, that was fast!
Can you bring the README.md up to date as well?

Done

Ah, one more thing: settings.js should be updated as well.

Done

Thanks! 👍

Changes have been published as version 1.5.0.


Add local color definitions.

Addresses #855.
This still needs documentation

@banesullivan If you still think is a good idea, feel free to approve it.  Otherwise, we can abandon it.


Enable libffi support on MIPS

https://github.com/vezel-dev/graf/blob/b44ad9cbe9a483b05a592ed8aa8e2fadbdaf38a5/build.zig#L131-L132
Requires:

https://github.com/llvm/llvm-project/issues/58377

This can probably happen in Zig 0.14.0 at worst.


Add zooming support for media

Currently, zooming can be accomplished with the browser's own zoom functionality, which works okay.  However, this does not allow you to just zoom the video while leaving the UI controls around the video such as the timeline, thumbnails, etc. fixed.  It would be great to have support in this card for zooming and digitally panning once zoomed, e.g. using control+mousewheel on desktop browsers and pinch-zoom on mobile/touchscreens.

I just wanted to post to agree to this
Lately frigate and it's plugins/card have come such a long way, the improvements made are extremely impressive and now frigate runs perfectly in my home assistant
What I would like to do though is use homeassistant only and not have to go into the companion app for my cameras and the only reason I have to now is zooming
I use home assistant app on mobile and zooming in cameras really is a must
If this feature could be added it would make it perfect!
Thanks in advance and thanks for all the amazing work so far

+1 but I totally understand the 5.0.0 upgrade is probably a huge undertaking, thank you for this amazing card

The support being added for this issue is really useful in helping me figure out what to work on next -- otherwise it's hard to know, so thank you! As pointed out, getting v5 out the door is the priority, but this is definitely on the todo/to-try list ...

The support being added for this issue is really useful in helping me figure out what to work on next -- otherwise it's hard to know, so thank you! As pointed out, getting v5 out the door is the priority, but this is definitely on the todo/to-try list ...

We are extremely grateful for the work you have done, v5 was huge and a great upgrade, we are excited to see what comes next :-D

I've been thinking and playing around with this and wanted to share an update. I found the following challenges:

[Known] There's no "magic way" to zoom into a video and get higher quality / resolution output, at least not in a HTMLVideoElement, so best we can do is "artifical" zooming. It's not great, but it's definitely better than nothing.
[Minor] People naturally use the mouse wheel for zooming. The mouse wheel is already used in the card to cycle through the main media carousel.
[Major] Android (and possibly iOS -- I don't know) swallow touch events on video players if controls are enabled, i.e. pinching/panning/zooming over an Android video element is extremely annoying since certain (hidden) parts of the video frame will reject touch, and others (where there are no underlying controls) will not -- but yet people use controls all the time, so turning them off is not really an option.

Given 2 & 3 above, I can't think of a way to make this "just work". So instead I propose the following:

Add a 'zoom mode' button that causes the card to (i) only use the mouse wheel for zooming not moving the carousel, (ii) temporarily disables the media controls. These address 2 & 3 above.
Zoom mode automatically disables if you change media.
Mouse cursor is an arrow when in normal mode, or CSS move cursor when in move mode, so there's a visual difference.

I hacked a sample together (not polished code, would need to be re-written entirely) to give you a demo:

Other ideas:

Don't support wheel/panning/pinching and instead have zoom-in/zoom-out/move buttons.

Any thoughts on whether this would be usable, or better ideas?

Awesome to hear that you've already looked into this!  Very excited to try it out.

[Known] There's no "magic way" to zoom into a video and get higher quality / resolution output, at least not in a HTMLVideoElement, so best we can do is "artifical" zooming. It's not great, but it's definitely better than nothing.

Yes, that's to be expected ---- we can wait until 6.0 for the "enhance" command.  In principle the player could automatically switch between a lowres and highres video stream, if both are available, depending on the the effective resolution at which it is being displayed on screen, though.

2. [Minor] People naturally use the mouse wheel for zooming. The mouse wheel is already used in the card to cycle through the main media carousel.

Potentially you could use control+wheel rather than plain wheel --- that would match what browsers do by default.  You could also use control+drag rather than plain drag to pan around, to avoid interfering with clicking to play/pause.

3. [Major] Android (and possibly iOS -- I don't know) swallow touch events on video players if controls are enabled, i.e. pinching/panning/zooming over an Android video element is extremely annoying since certain (hidden) parts of the video frame will reject touch, and others (where there are no underlying controls) will not -- but yet people use controls all the time, so turning them off is not really an option.

I haven't played with this myself, but I think it is likely that there is some workaround available.  For example you may be able to install a capturing event handler on a parent element, create another element on top, etc.  As far as the disabling the controls, I suspect that an overall better user experience would be possible using custom controls rather than the built-in controls, since for example the built-in controls show the progress bar in terms of the particular video clip rather than the overall timeline.  But that is a separate matter.

Potentially you could use control+wheel rather than plain wheel --- that would match what browsers do by default. You could also use control+drag rather than plain drag to pan around, to avoid interfering with clicking to play/pause.

This is likely doable, although there's also benefit in having the experience be somewhat consistent across device types.

I haven't played with this myself, but I think it is likely that there is some workaround available. For example you may be able to install a capturing event handler on a parent element, create another element on top, etc.

The trouble is getting workarounds to "activate". If we imagine two scenarios: (i) user swiping left to right to adjust the current time in video playback, and (ii) user swiping left to right to pan -- how do we know what the intent is, and thus when the workarounds should be used? Ultimately we end up needing some other input (e.g. a button, a menu, a keypress) -- something to cause the card to treat the same literal UI action differently.

As far as the disabling the controls, I suspect that an overall better user experience would be possible using custom controls rather than the built-in controls, since for example the built-in controls show the progress bar in terms of the particular video clip rather than the overall timeline.

As an aside, I'd like the card to continue to support video playback for non-Frigate devices (today this is just used by motionEye cameras, but I'd like to expand it to other camera vendors). Given that constraint, there wouldn't be a world in which we could do away with video controls since the reverse time mapping is only possible using Frigate specific features.
PS: From playing around with it, it actually looks better without the controls! When the controls are on, since the scaling is done at the player level, we end up with a giant pause button, i.e. the player controls scale along with the content. Looks weird.

This is likely doable, although there's also benefit in having the experience be somewhat consistent across device types.

There is necessarily going to be a difference, though, between phone (touch gestures) and desktop (mouse).  While e.g. google maps uses plain mousewheel to zoom, the browser itself uses control+wheel so I think that would be pretty intuitive.

The trouble is getting workarounds to "activate". If we imagine two scenarios: (i) user swiping left to right to adjust the current time in video playback, and (ii) user swiping left to right to pan -- how do we know what the intent is, and thus when the workarounds should be used? Ultimately we end up needing some other input (e.g. a button, a menu, a keypress) -- something to cause the card to treat the same literal UI action differently.

One common solution is to use two fingers vs one finger --- e.g. two fingers to pan, one finger to switch views.

One common solution is to use two fingers vs one finger --- e.g. two fingers to pan, one finger to switch views.

As the video player swallows the touch input, regardless of the number of fingers, this is tricky. Perhaps we could have a transparent covering div that captures the touch events, then selectively routes them to the "underneath" player if only a single finger is used...

Will be in the next build!


KeyError 'qa'

Issue Template
Expected Behavior
I expect gpt-engineer to work
Current Behavior
error when running: gpt-engineer myproject/app
Steps to Reproduce
Please provide detailed steps for reproducing the issue.

pip install gpt-engineer
create prompt file
gpt-engineer myproject/app

Failure Logs
Please include any relevant log snippets or files here.
Traceback (most recent call last):

File "/opt/homebrew/bin/gpt-engineer", line 8, in
sys.exit(app())
^^^^^

File "/opt/homebrew/lib/python3.11/site-packages/gpt_engineer/main.py", line 61, in main
messages = step(ai, dbs)
^^^^^^^^^^^^^

File "/opt/homebrew/lib/python3.11/site-packages/gpt_engineer/steps.py", line 30, in clarify
messages = [ai.fsystem(dbs.identity["qa"])]
~~~~~~~~~~~~^^^^^^

File "/opt/homebrew/lib/python3.11/site-packages/gpt_engineer/db.py", line 18, in getitem
raise KeyError(key)

KeyError: 'qa'

+1

i just ran into this as well. A quick bit of debugging suggests the following:
gpt-engineer tries to access an "identity" dir in the working directory. if not available, it creates it for you. It then fails because this dir is empty and that's not accounted for.
if you installed from source, try running the command from the gpt-engineer project directory. That works for me

You're going to need to tinker on the codes themselves and make the AI identity as you prefer. The code relies on the boiler identity which do not exist when you use pip install.

+1

This only seems to be the case when installing with pip. Seems like we are not packaging the files in identity folder.
Any ideas?

The error was fixed, thank you for all the feedback and responses. I will now close the issue!


Abandoned dependency padraic/phar-updater

Getting this when I install:
Package padraic/phar-updater is abandoned, you should avoid using it. No replacement was suggested.

Thanks for reporting, I'm going to take a look at this.


new site request sproutvideo

Checklist

[X] I'm reporting a new site support request
[X] I've verified that I'm running yt-dlp version 2022.02.04. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that none of provided URLs violate any copyrights or contain any DRM to the best of my knowledge
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and am willing to share it if required

Region
No response
Example URLs
https://videos.sproutvideo.com/embed/069edcb31e1be0c08f/767e75aa22ae215d
Description
linked over from paid patreon page
Verbose log
e@android:/media/e/6TBnew1/dwhelper$ yt-dlp https://maxxed3.vids.io/videos/069edcb31e1be0c08f/p-59-special-new-shein-dress-haul-1-mp4 --referer https://www.patreon.com/posts/51431435 --cookies cookies.txt --verbose
[debug] Command-line config: ['https://maxxed3.vids.io/videos/069edcb31e1be0c08f/p-59-special-new-shein-dress-haul-1-mp4', '--referer', 'https://www.patreon.com/posts/51431435', '--cookies', 'cookies.txt', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.02.04 [c1653e9ef]
[debug] Lazy loading extractors is disabled
[debug] Python version 3.8.10 (CPython 64bit) - Linux-5.9.16-050916-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4, rtmpdump 2.4
[debug] Optional libraries: Cryptodome, secretstorage, mutagen, sqlite, websockets
[debug] Proxy map: {}
[debug] [generic] Extracting URL: https://maxxed3.vids.io/videos/069edcb31e1be0c08f/p-59-special-new-shein-dress-haul-1-mp4
[generic] p-59-special-new-shein-dress-haul-1-mp4: Requesting header
WARNING: [generic] Falling back on generic information extractor.
[generic] p-59-special-new-shein-dress-haul-1-mp4: Downloading webpage
[generic] p-59-special-new-shein-dress-haul-1-mp4: Extracting information
[debug] Looking for video embeds
[debug] Identified a twitter:player iframe
[debug] [generic] Extracting URL: https://videos.sproutvideo.com/embed/069edcb31e1be0c08f/767e75aa22ae215d
[generic] 767e75aa22ae215d: Requesting header
WARNING: [generic] Falling back on generic information extractor.
[generic] 767e75aa22ae215d: Downloading webpage
[generic] 767e75aa22ae215d: Extracting information
[debug] Looking for video embeds
ERROR: Unsupported URL: https://videos.sproutvideo.com/embed/069edcb31e1be0c08f/767e75aa22ae215d
Traceback (most recent call last):
  File "/home/e/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 1381, in wrapper
    return func(self, *args, **kwargs)
  File "/home/e/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 1451, in __extract_info
    ie_result = ie.extract(url)
  File "/home/e/.local/lib/python3.8/site-packages/yt_dlp/extractor/common.py", line 616, in extract
    ie_result = self._real_extract(url)
  File "/home/e/.local/lib/python3.8/site-packages/yt_dlp/extractor/generic.py", line 3978, in _real_extract
    raise UnsupportedError(url)
yt_dlp.utils.UnsupportedError: Unsupported URL: https://videos.sproutvideo.com/embed/069edcb31e1be0c08f/767e75aa22ae215d

I used the following PR a while ago and it worked. Potentially implemented for yt-dlp?
https://github.com/ytdl-org/youtube-dl/pull/27685

@suprapoke

git clone --single-branch --branch sproutvideo https://github.com/TheZ3ro/youtube-dl-1.git
navigate into the cloned folder
run python -m youtube_dl https://videos.sproutvideo.com/embed/XYZ/XYZ

hi @suprapoke, yeah, same error I was getting too. I think the PR has some issues, but the testing run works so I'm not sure.
You could try Jdownloader for the timebeing, but seems you are using android currently?

@sideloading hi, what is the "testing run"?  if there is a test version that works, I will give it a try, thx

@suprapoke it's test-run code, not a 'working' version or whatever. Check the PR I referenced in my very first reply if you want to learn more about it.

The code works at least for links which don't need a password or special referer, so adding it would be great. It's not 100%, but it can download a lot of videos!

I cloned @J0s3f's branch and used it as described by @sideloading. At first I struggled with 403 errors when downlaoding the stream's .key file. But then pip install pycryptodomex solved that problem. I had to set a --referer header. (Homebrew installation on macOS.)

I tried to adapt the youtube-dl pull request to yt-dlp. Here is the result: master...J0s3f:yt-dlp:sproutvideo-yt-dlp

Can I use your code on Windows?

I got it to work.
commands:
git clone --single-branch --branch sproutvideo https://github.com/TheZ3ro/youtube-dl-1.git
pip install pycryptodome
cd youtube-dl-1
python -m youtube_dl --referer "[referer-url]" --add-header "User Agent: [user-agent]" "[sprout-url]"
instructions:
[referer-url]
this is the regular url of the website where your video is embedded
example:
_https://www.patreon.com/posts/38381291_
[user-agent]
this is a description of the type of computer accessing the website

open "developer tools" in chrome ( command + option + I )
click "network" tab
clear network log ( command + k )
play video
click video-related resource from list of resources ( mine was ts file )
scroll down to "request headers" section
copy and paste "user-agent" value into [user-agent] part of command

example:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
[sprout-url]
this is the actual url of the embedded sprout video

copy and paste "referer" value into [sprout-url] part of command

example:
_https://videos.sproutvideo.com/embed/d39ed4ab1415e7s23b/661f827f6gdfb9e7?playerColor=2f3437&playerTheme=dark&type=hd_

@david-littlefield thanks, it still works :)

What am I doing wrong?
I have installed the lasted version of yt-dlp and still getting an error
I did
yt-dlp --referer "referer-url" --user-agent "user-agent"  https://videos.sproutvideo.com/embed/.../OOO
[generic] Extracting URL: https://videos.sproutvideo.com/embed/.../OOO
[generic] OOO: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] ...: Extracting information
ERROR: Unsupported URL: https://videos.sproutvideo.com/embed/.../OOO


Update pubspec.yaml constraints before 0.5.0 release?

I believe we need to update:

[ ] minimum SDK version to 1.20+?  Maybe 1.21 or 1.22?
[ ] minimum coverage revision to 0.9.0+?  Maybe even 0.9.2+?

@nilsdoehring.  Let me know, and then I'm happy to push the publish button to work around https://github.com/dart-lang/pub/issues/1442

Thanks! I have yet to master the art of thinking of everything before pushing / publishing, hehe. Does maintaining 60k LOC layered into a dozen packages count as an excuse?
SDK version: I think we can go lower, can't we? How about using the SDK constraints that coverage has? '>=1.16.0 <2.0.0'
Coverage revision: Going for newest shouldn't hurt, so 0.9.2+

Sounds plausible.  coverage uses 1.16+ too:
https://github.com/dart-lang/coverage/blob/master/pubspec.yaml#L7
On Tue, Feb 28, 2017 at 1:02 PM Nils Döhring<EMAIL_ADDRESS>wrote:

Thanks! I have yet to master the art of thinking of everything before
pushing / publishing, hehe. Does maintaining 60k LOC layered into a dozen
packages count as an excuse?
SDK version: I think we can go lower, can't we? How about using the SDK
constraints that coverage has? '>=1.16.0 <2.0.0'
Coverage revision: Going for newest shouldn't hurt, so 0.9.2+
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/block-forest/dart-coveralls/issues/65#issuecomment-283159158,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALTvixH3yGGf-oyrxblqCzqSu28Vfh3hks5rhItUgaJpZM4MOwAQ
.


19 fetch services

Which issue(s) this PR fixes:

Fixes #19
Additional comments:

Fetch a list of services from tdp-server and display them in a Menu component.
Display a Sidebar component to hold the Menu.
Upgrade Next.js to v13.
Refactor pages to app directory (allowed by v13 which brings nested routes/layouts).
Refactor TdpClientContext: from now services are removed from the context and are defined as simple hooks. Context only hold an instance of the client sdk. This architecture seems much more understandable and expandable.

Agreements

[X] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004.
[X] I hereby agree to grant TOSIT a copyright license to use my contributions.

As mentioned by @gboutry, the first version of this PR wasn't working with next export. This is due to the app directory still being in beta and not supporting next export yet (ref).
As we want to release tdp soon, including tdp-ui in exported mode, it seems wiser to keep using the page directory until the stable release of app.
We can still use app to save layouts and components as shown in this PR. It will made the future migration much more easier.
The layout system that I use along with the page directory is described here. This 2nd version of the PR now work with next export.

Recovery of the list of services, with display in the menu.
Menu opened or hidden by icon
Correct local test.


Mem precision

Coverage increased (+1.9%) to 58.563% when pulling 8d5fda02afaf5078b705e781542bce4c54fbcbaf on mem-precision into 8cb4898381a2bb8af78587eeb7a7fd6be9ec5ba4 on devel.


Add listServer API to director Web UI

As part of the implementation to #265, this PR introduced a new API for director Web UI to get a list of advertised origins and caches:
/api/v1.0/director_ui/servers?server_type=origin or =cache or without query parameter to get all servers advertised to the director.
Response:
[
  {
    "name": "fae8c2865de4",
    "authUrl": "https://fae8c2865de4:8443",
    "url": "https://fae8c2865de4:8443",
    "webUrl": "https://fae8c2865de4:8444",
    "type": "Origin",
    "latitude": 0,
    "longitude": 0
  }
]

@CannonLock here's the API to for querying and get a list of origins and caches registered at the director (which is different from what's showing up in the namespace registry UI)

@haoming29 Should this be added to the openapi spec?

I'm holding off adding new APIs to the spec as @bbockelm mentioned that we want to introduce the automated spec generation with annotations. I'm not sure what's the timeline for that though.

@haoming29 Are the lat lon 0 because I don't have the Maxmind db?

@haoming29 Are the lat lon 0 because I don't have the Maxmind db?

Unfortunately for Pelican Origins, we don't specify Lat/Long when we advertise to the director

@haoming29 Are the lat lon 0 because I don't have the Maxmind db?

Unfortunately for Pelican Origins, we don't specify Lat/Long when we advertise to the director. I believe this field is only populated when we fetch origins from OSDF for now

Is it a new ticket to have unset values come in as null? null is a better proxy for a unset then 0.


dev-cmd/typecheck: Group all automatic updates code into one `--ci` switch

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew tests with your changes locally?

This was suggested in https://github.com/Homebrew/brew/pull/8741#discussion_r490949486.

I changed this to be brew typecheck --update.


updating MXNet version to 1.6.0 in base.h for C APIs

Description
updating MXNet version to 1.6.0 in base.h for C APIs
https://github.com/apache/incubator-mxnet/issues/16904
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] Changes are complete (i.e. I finished coding on this PR)

@lanking520

This is a key problem with the publish, we should bump it once we make the release

yes

@ptrendx

@access2rohit shouldnt we be changing master to 1.7?

?

@samskalicky Sure! I think we should first bump master to 1.6 and then again to 1.7. Does that makes sense ?

@access2rohit Since the 1.6.x branch is already diverged from master, there is no need to do this 1.6 step I think - we should just go directly to 1.7 (which I believe requires changes in more places).

@access2rohit Since the 1.6.x branch is already diverged from master, there is no need to do this 1.6 step I think - we should just go directly to 1.7 (which I believe requires changes in more places).

Yes it requires changes in more places. IMO we should follow proper progression by moving from 1.5->1.6->1.7 to keep the change history in master clean and consistent.
@ptrendx do you agree ?


Example / standard template organization

Hi!
This might seem superficial at first glance, but given that end users may end up using examples / typical module templates the most, it might be worth some extra thought on their organization.
Two initial thoughts:

Consider a separate module folder. Given that many CI/CD solutions like you to dump configuration files in the root of a repo, IMHO it would be a better practice to have an independent YourModuleName folder under the root folder, specifically for module content.
Tests are awesome to have available, but IMHO should not be included with a typical download. It might be handy to leave these outside of the aforementioned YourModuleName subfolder, and have a Tests folder in the root.  This way you could still distribute tests via github, without packaging them up, or having to write logic to avoid packaging them up.

Those are the biggest that stand out - love the idea of the tool, thanks for putting this together!
Cheers!

Hey, thanks for checking out what we've got at this stage with Plaster!  We are still early enough in development (almost prototyping really) that I don't want to focus too much on what this particular example generates.  It is meant just to show what is possible and hopefully a typical use case.  The content of this template will surely change before Plaster is done.
Right now we want to make sure that A) we have a manifest format that will allow you to scaffold what you want (create your own templates) and B) we have a manifest format that is safe from script injection attacks.  After that we will want to make sure we have certain features like "default value" storage so I don't have to keep specifying my "full name" over and over. :-)  Then we will want to think about working with ZIP'd versions of the template (ala nukpkg) and how we might distribute template pkgs.  Then there is integration with VSCode.  And then finally, what do some of the "built-in" template pkgs look like - if we even provide any built-in templates.
WRT test, the size of the test artifacts in this particular example is tiny.  There is only one test to verify the manifest is valid.  So I don't think template pkg size should be an issue.  Also, the user can elect not to have the test scaffolded.  When the template is invoked it prompts you:
15> Invoke-Plaster -TemplatePath . -Destination ..\Out -ModuleName FooUtils -Version 1.1.1
Enter your fullname (): Keith Hill
Select desired options
[P] Pester test support
[S] PSake build script
[G] Git
[?] Help
(default choices are P,S,G)
Choice[0]:
Which editor do you use
[I] ISE  [V] Visual Studio Code  [N] None  [?] Help (default is "N"): V
Select a license for your module
[A] Apache  [M] MIT  [N] None  [?] Help (default is "N"):

You can elect to pick all, some or none of Git, PSake and Pester.  Note: this example is missing the None choice for "options".  :-)

I was working on making a custom template for something other than a module, but it's not really practical until the zip/folder support is added. The one I was working on had likely 50+ individual files I would need to manually add 1 by 1.
II also felt you should give the option to tie the Root directory name to the name of the project. That way you don't have to enter the same name twice.

IMHO it would be a better practice to have an independent YourModuleName folder under the root folder, specifically for module content.

@gerane Can you clarify if this is for the template directory structure or the directory structure that gets created by the invoked template?  If it is the latter you have control over what gets created.  And you can use template's ${PLASTER_PARAM_ModuleName} parameter value to name the subdir.
One thing I have been thinking of providing is pre-defined variable(s) for the DestinationPath the user provides when invoking the template.  Perhaps $PLASTER_DestinationPath and $PLASTER_DestinationName.
In general I've viewed this process as - the user tells the template author under what dir (creating it if necessary) they want the template to scaffold its stuff and then the template is free to create whatever file/folders under this dir that it needs to.

Hi all!
I hear a release or pre-release might be coming!
Just wanted to ping you on this - there's a good chance that the default example used in Plaster will become canon, given that it's from the PowerShell team (and community).
I might be slightly biased, but I think it would be worth re-considering the example template organization.  I tend to lean towards nesting a module outside of all the scaffolding cruft (some details here).
Having a README, LICENSE, gitignore, Tests (this might be okay, some prefer it in the module folder, I do not), build.ps1, psake.ps1, etc. all in the root makes things quite messy and difficult to work with.
I'm not particularly tied to that exact layout, as long as an alternative helps keep things clean and readable.  I can live with it if no changes are made, just figured it would be worth pinging you one more time before this becomes more "official" : )
Cheers!

lean towards nesting a module outside of all the scaffolding cruft

Not sure what you mean by "nesting" here. Are you talking about simply separating the "shipped" module contents from the "infrastructure"?

build.ps1, psake.ps1, etc. all in the root makes things quite messy

I dunno.  I kind of appreciate a Git repo with a build.bat or build.ps1 in its root so I can easily build whatever the repo has to build.  :-)  As for README and LICENSE, I think that is very common on GitHub at least to put in the root folder.
We could stick all the module stuff into a subfolder like <module-name> but a lot of modules are really simple - like foo.psd1 and foo.psm1 and you're done.  A New Module Template for VSCode IMO should cater to the common case and not get too opinionated.    Although I do recognize there is room for encouraging good structure.
BTW there can be other templates e.g. perhaps a New Module Template - Advanced or New PSGallery Module Template.  When I look at Visual Studio there isn't a single New Project Wizard.  You select the type of project first (Console, Library, WPF App, Web App, etc).  This results in a wizard that is much more focused.
In your case, we "could" handle this a single template with lots of options that generates the appropriate artifacts based on how the user responds to template prompts.  That said, if the common case is two files I don't want the user to have to answer a bunch of prompts that don't apply - every single time they use the template.
I think this will be a balancing act but I don't have a good feel yet for when you should create a new template.  I'm spit balling here but I'd say we'd like to keep the template prompts down to <= 6??  If a template needs more than that, perhaps it should be broken up into separate templates.

Hi Keith!
Apologies if it wasn't clear - like you mentioned, a subfolder with the module name.  Even for a simple module, things will start to get confusing for new folks.  Here's a quick example for a PSStackExchange module.  I personally much, much prefer the latter.
Current state:

PSStackExchange (Repo and module root folder)

Tests (folder)
build.ps1
LICENSE
psake.ps1
PSStackExchange.psd1
PSStackExchange.psm1
README.md

Proposed alternative:

PSStackExchange (Repo root folder)

PSStackExchange (Module root folder)

PSStackExchange.psd1
PSStackExchange.psm1

Tests (folder)
build.ps1
LICENSE
psake.ps1
README.md

This makes it abundantly clear that if you are in the module folder, you are working with module-related-files, and if you're in the root folder, you're working with repo-and-related-systems-files.
IMHO if you're going to have any scaffolding (readme, license, build, psake, etc.), the former (current) organization is cluttered, and should never be used.  This could be me being finicky, I just find it difficult to parse through things, vs. having clear cut separation.
Good point on multiple templates.  That would certainly make sense and could address this : )
Cheers!

I'm leaning in this direction.  I could see using a generic Module folder or Src (kind matches nicely with Tests) or <module-name>.  The one advantage of using <module-name> is that you could publish directly from there.  However, I still like the idea of have a Release folder where you can prepare your module for publishing. For instance, if you sign your scripts you want to do that before publishing (not on the original source files).  So with this in mind, I think Src could be just fine.  Thoughts?

Either works for me - personally I stick to ModuleName for simplicity, but I could see how src might clarify content in cases where you also have a release  folder, if that's a common or desirable scenario.
May as well ping some other module authors: cc @dlwyatt @jaykul @proxb @KirkMunro @dfinke @devblackops @gerane
Cheers!

Don't use me as an example.  :P  (See:  https://github.com/dlwyatt/ProtectedData ).  I write build scripts that leave out all the non-essential stuff when it's published, but the repo is just one big folder full of stuff.

What right we currently have is a Build.ps1 script that is a PSake script.  I kind of like your convention of Build.Psake.ps1.  That could leave a Build.ps1 that simply imports Psake and runs it against Build.Psake.ps1.  So for the Psake uninitiated, they could just execute .\Build.ps1 have the module do a basic build (but not publish).

Yep, that's a handy process, use something similar as well, pulling down psake if it doesn't exist.
@dlwyatt: figured I'd ping folks on both sides : )

I agree with @RamblingCookieMonster. Keeping files related to the repository separate from files related to the module makes things easier. Especially as you start authoring more advanced modules. The current project I'm working on Watchmen has 12 files (build.ps1, psake.ps1, README.md, etc) at the repository root that are not directly related to the actual PowerShell module. IMHO having all those files and the PS module itself at the same level is messy.

 I have build.ps1 execute the default psake task unless the user specifies another task to execute via the -Task parameter. This way any action related to the repository (Pester, Script Analyzer, module help generation, module deployment, etc) is executed via build.ps1 and the appropriate task name.

I agree in principle with what devblackops wrote there, except that I generally name the folder "src"

For projects on github, a "Source" or "src" folder is more common, obvious and cross-language
For anything we're cloning from git, it's less recursive, since when people git clone https://github.com/Author/ModuleName.git you're going to end up with a ModuleName\ModuleName (not ModuleNameRoot\ModuleName)

For what it's worth, I always add my "projects" folder to my module path, and I build into folders with version numbers so I can import-module by name the module output:

C:\Users\Joel\Projects

ModuleName git root

1.0.0
1.0.1
...
Tests
src

Private
Public
....

If I have a C# project, then it's there in parallel to the "src" folder.
If I have nuget packages, the packages folder would be there too.
If I have other linked git sub-repos, I put them in a lib folder there too

I think the current NewModule template scaffolds files and folders in a way most folks here can live with.  It keeps the "shipped" module files separate from the infrastructure files for build, test, script analyzer settings, license, etc.


[SMALLFIX] Removed explicit type argument in PermissionCheckerTest

Removed an explicit type argument in the PermissionCheckerTest class.

LGTM

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/9914/Failed Tests: 0
Test FAILed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/9918/
Test PASSed.

LGTM


fix: snyk and LbServicesAuthComponent alias

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Nwang/refactor grouping

Refactor grouping logic from BoltDeclarer functions to classes so that it is easier for them to be reused by Streamlet API, from calling different function
boltDeclarer.XGrouping(parent, streamId, ...);
to:
StreamGrouping grouper = new X(...);
boltDeclarer.grouping(parent, streamId, grouper);

No logic change.
Old functions are still available.

@nwangtw the change looks fine to me. However, I don't quite get the use case?  Why is change needed for the streamlets.  Can you elaborate some more? Thanks

Thanks for reviewing!
Sure thing to explain a bit more:
Firstly, in order to support custom operator, we need to pass in the operator object as well as specifying the grouping strategy.
Currently, the implementation of Streamlet classes are like:
bldr.setBolt(getName(), new FlatMapOperator<R, T>(flatMapFn),
getNumPartitions()).shuffleGrouping(parent.getName());
You can say the grouping is a function call with the parent name. It is ok for predefined operators because the grouping is likely to be decided, but this is tricky for custom operators (and there might be new operators that allow users to specify grouping strategy in future).
One way is to pass an enum, but this is not flexible.

@nwangtw thanks for the explanation. I not sure there will be such a use case.  The concept of of these types of grouping is really for the spout/bolt APIs.  The grouping for a DSL is really coupled with type of the operator.  At a DSL level operators like something "keyBy" is really the only operators that are needed.  I am also not aware of any other DSLs that allow users to have custom groupings.  I think that breaks the DSL abstraction.
I also don't seem any harm with merging this PR.  We can still merge it and see in the future.

Yeah. With the current standard operators, it is not necessary. However,
For the new CustomOperator I am working on, it is needed. Streamlet classes are responsible for creating the operator objects and hook up the grouping. However CustomOperatorStreamlet will be shared by all user defined CustomOperators.
Another case is that in your proposal to change the streamlet style to be like:
reduce(...)
.windowed(...)
.byKey()
...
.build();
then the byKey() implementation will likely to need the grouping strategies to have their own classes.

@nwangtw a KeyBy operator will always be a fieldgrouping

+1

@nwangtw a KeyBy operator will always be a fieldgrouping

Yeah. Very likely.
We dont have a grouping function yet currently. Custom grouping might be a separated function or uses keyBy() interface. We will see.

The refactoring looks fine to me.
As Jerry mentioned, this might break the DSL abstraction. But we can merge it for now and see


image url only

Good Day
Received that feature implemented, but need some help to retrieve url.
My current code:
response = google_images_download.googleimagesdownload()
arguments = {"keywords": str(code),"limit":1,"no_download":True}
paths = response.download(arguments)
print(paths)
how can i add url to a variable?
url = paths
Hope anyone could help as my string give: {'Code': [None]}
Thank You
Albertus Geyser

Could anyone help to inform me how i can only get image url for images?
Thank You
Albertus Geyser

Hey Albertus - I just made a PR to fix this, you should be able to see the link above and monitor the change's status there.

Good Day
Thank you for code.
Is this change? as i change it to do test, but not sure if correct:
Download Images
def download_image(self,image_url,image_format,main_directory,dir_name,count,print_urls,socket_timeout,prefix,print_size,no_numbering,no_download):
    if print_urls or no_download:
        print("Image URL: " + image_url)
    if no_download:
        return "success","Printed url without downloading",None,**image_url**
    try:

Yep, that looks like the change I made. So changing the code to that locally should work until the change is merged in to the master branch. (Just make sure you remove the *s)

closing as the original issue seems to be resolved.


Added shouldShowOfflineIndicator default props

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/20004
PROPOSAL: https://github.com/Expensify/App/issues/20004#issuecomment-1573096862
Tests

Switch to offline
Create new workspace(if not created)
Go to any workspace > bank account
Select Connect online with Plaid option
Notice on native mobile / mWeb should show only one OfflineIndicator

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

Switch to offline
Create new workspace(if not created)
Go to any workspace > bank account
Select Connect online with Plaid option
Notice on native mobile / mWeb should show only one OfflineIndicator

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

I am not sure, maybe not? Maybe ask in Slack? What is causing this different behavior? 😕

Oh, if it's easy to fix it then let's also fix it here please

Your last commit is still not verified 😬

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/flodnv in version: 1.3.30-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.30-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Update nao.rst

This is the right OpenMX (http://www.openmx-square.org/) for nano-scale material simulations based on density functional theories from T. Ozaki (Univ. of Tokyo)

fixed in https://github.com/pyscf/pyscf-doc/commit/ab8e3fbc21cfa6251728865a1c7748883b28c99b