Print Statements In Python Lambda Aren't Captured Constantly

SST v3.1.10 with a Python3.11 lambda on Mac M2 Max Running Sonoma 14.2.1
Description of Issue:
When I invoke this function from the sst console, the first instance after the initial build, I will see in the functions tab of my terminal that the function was built. Back in the sst console I will see a blank log. On the second invocation, I will get either: A. a blank response (none of the print statements), B. Just the first print statement, C. All of the print statements. Typically on the third invocation I will then get a blank response, and on the 4th will get one of the options A-C again.
If I invoke the function using Postman and the lambda url, I will see all the logs in my terminal but I will not see consistent logs in the sst console.
Constructor Definition:
const grantAiLambda = new sst.aws.Function("GGGrantAiAssistant", {
      handler: "packages/functions/lambda/grantAi/index.handler",
      runtime: "python3.11",
      timeout: "10 minutes",
      transform: {
        function: {
          name: `GGGrantAiAssistant${$app.stage}`,
        },
      },
      url: true,
    })

packages/functions/grantAi:
 grantAi
├── .python-version
├── README.md
├── index.py
├── pyproject.toml
├── sst_env.pyi
└── uv.lock

Handler Code:
import requests
import boto3
import os

env_vars = os.environ

def handler(event, context):
    print(env_vars)
    print(event)
    print(context)

Is this for sst dev?

Is this for sst dev?

Yeah it is.


Document .count() method

Photon currently exposes count() that you use to perform the count aggregation (https://github.com/prisma/photonjs/issues/252)
This hasn't been documented yet.

Done via: https://github.com/prisma/prisma2/pull/1020


[All hosts] (TOC reorg + new content) Restructure the TOC and add new articles.

@AlexJerabek I welcome any feedback you may have about this PR (including TOC restructuring, etc.) but especially would like you to provide copy edit feedback on the following 3 new articles:

https://review.docs.microsoft.com/en-us/office/dev/add-ins/overview/office-add-ins-fundamentals?branch=kb-guidance-TOC-restructure
https://review.docs.microsoft.com/en-us/office/dev/add-ins/overview/core-concepts-office-add-ins?branch=kb-guidance-TOC-restructure
https://review.docs.microsoft.com/en-us/office/dev/add-ins/develop/develop-overview?branch=kb-guidance-TOC-restructure

Docs Build status updates of commit 3cf7694:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/concepts/add-in-development-lifecycle.md
:white_check_mark:Succeeded

docs/concepts/privacy-and-security.md
:white_check_mark:Succeeded

docs/design/add-in-design.md
:white_check_mark:Succeeded

docs/design/content-add-ins.md
:white_check_mark:Succeeded

docs/design/interface-elements.md
:white_check_mark:Succeeded

docs/develop/add-in-manifests.md
:white_check_mark:Succeeded

docs/develop/develop-overview.md
:white_check_mark:Succeeded

docs/develop/requesting-permissions-for-api-use-in-content-and-task-pane-add-ins.md
:white_check_mark:Succeeded

docs/develop/support-for-task-pane-and-content-add-ins.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-overview.md
:white_check_mark:Succeeded

docs/images/add-in-ui-elements.png
:white_check_mark:Succeeded

docs/images/index-landing-page/i_design.svg
:white_check_mark:Succeeded

docs/images/ref-docs-moniker-selector.png
:white_check_mark:Succeeded

docs/images/top-level-toc.png
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance-note.md
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance.md
:white_check_mark:Succeeded

docs/includes/yeoman-generator-recommendation.md
:white_check_mark:Succeeded

docs/index.md
:white_check_mark:Succeeded

docs/onenote/onenote-add-ins-programming-overview.md
:white_check_mark:Succeeded

docs/overview/core-concepts-office-add-ins.md
:white_check_mark:Succeeded

docs/overview/explore-with-script-lab.md
:white_check_mark:Succeeded

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded

docs/overview/office-add-ins-fundamentals.md
:white_check_mark:Succeeded

docs/overview/office-add-ins.md
:white_check_mark:Succeeded

docs/powerpoint/powerpoint-add-ins.md
:white_check_mark:Succeeded

docs/project/project-add-ins.md
:white_check_mark:Succeeded

docs/publish/publish.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-angular.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-jquery.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-vue.md
:white_check_mark:Succeeded

docs/quickstarts/onenote-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/powerpoint-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/project-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/word-quickstart.md
:white_check_mark:Succeeded

docs/reference/index.md
:white_check_mark:Succeeded

docs/reference/javascript-api-for-office.md
:white_check_mark:Succeeded

docs/reference/manifest/permissions.md
:white_check_mark:Succeeded

docs/reference/overview/excel-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/onenote-add-ins-javascript-reference.md
:white_check_mark:Succeeded

docs/reference/overview/powerpoint-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/project-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/word-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/excel-api-requirement-sets.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/powerpoint-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/word-tutorial.md
:white_check_mark:Succeeded

docs/word/word-add-ins-programming-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

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

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/concepts/add-in-development-lifecycle.md
:white_check_mark:Succeeded

docs/concepts/privacy-and-security.md
:white_check_mark:Succeeded

docs/design/add-in-design.md
:white_check_mark:Succeeded

docs/design/content-add-ins.md
:white_check_mark:Succeeded

docs/design/interface-elements.md
:white_check_mark:Succeeded

docs/develop/add-in-manifests.md
:white_check_mark:Succeeded

docs/develop/develop-overview.md
:white_check_mark:Succeeded

docs/develop/requesting-permissions-for-api-use-in-content-and-task-pane-add-ins.md
:white_check_mark:Succeeded

docs/develop/support-for-task-pane-and-content-add-ins.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-overview.md
:white_check_mark:Succeeded

docs/images/add-in-ui-elements.png
:white_check_mark:Succeeded

docs/images/index-landing-page/i_design.svg
:white_check_mark:Succeeded

docs/images/ref-docs-moniker-selector.png
:white_check_mark:Succeeded

docs/images/top-level-toc.png
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance-note.md
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance.md
:white_check_mark:Succeeded

docs/includes/yeoman-generator-recommendation.md
:white_check_mark:Succeeded

docs/index.md
:white_check_mark:Succeeded

docs/onenote/onenote-add-ins-programming-overview.md
:white_check_mark:Succeeded

docs/overview/core-concepts-office-add-ins.md
:white_check_mark:Succeeded

docs/overview/explore-with-script-lab.md
:white_check_mark:Succeeded

docs/overview/index.md
:white_check_mark:Succeeded

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded

docs/overview/office-add-ins-fundamentals.md
:white_check_mark:Succeeded

docs/overview/office-add-ins.md
:white_check_mark:Succeeded

docs/powerpoint/powerpoint-add-ins.md
:white_check_mark:Succeeded

docs/project/project-add-ins.md
:white_check_mark:Succeeded

docs/publish/publish.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-angular.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-jquery.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-vue.md
:white_check_mark:Succeeded

docs/quickstarts/onenote-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/powerpoint-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/project-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/word-quickstart.md
:white_check_mark:Succeeded

docs/reference/javascript-api-for-office.md
:white_check_mark:Succeeded

docs/reference/manifest/permissions.md
:white_check_mark:Succeeded

docs/reference/overview/excel-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/onenote-add-ins-javascript-reference.md
:white_check_mark:Succeeded

docs/reference/overview/powerpoint-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/project-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/word-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/excel-api-requirement-sets.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/powerpoint-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/word-tutorial.md
:white_check_mark:Succeeded

docs/word/word-add-ins-programming-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@AlexJerabek thanks for responding so quickly, and for all the great feedback! I'll plan to merge this PR next week (when I'm back in the office), pending incorp of any last-minute feedback from others.

Docs Build status updates of commit 3d911a3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/concepts/add-in-development-lifecycle.md
:white_check_mark:Succeeded

docs/concepts/privacy-and-security.md
:white_check_mark:Succeeded

docs/design/add-in-design.md
:white_check_mark:Succeeded

docs/design/content-add-ins.md
:white_check_mark:Succeeded

docs/design/interface-elements.md
:white_check_mark:Succeeded

docs/develop/add-in-manifests.md
:white_check_mark:Succeeded

docs/develop/develop-overview.md
:white_check_mark:Succeeded

docs/develop/requesting-permissions-for-api-use-in-content-and-task-pane-add-ins.md
:white_check_mark:Succeeded

docs/develop/support-for-task-pane-and-content-add-ins.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-overview.md
:white_check_mark:Succeeded

docs/images/add-in-ui-elements.png
:white_check_mark:Succeeded

docs/images/index-landing-page/i_design.svg
:white_check_mark:Succeeded

docs/images/ref-docs-moniker-selector.png
:white_check_mark:Succeeded

docs/images/top-level-toc.png
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance-note.md
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance.md
:white_check_mark:Succeeded

docs/includes/yeoman-generator-recommendation.md
:white_check_mark:Succeeded

docs/index.md
:white_check_mark:Succeeded

docs/onenote/onenote-add-ins-programming-overview.md
:white_check_mark:Succeeded

docs/overview/core-concepts-office-add-ins.md
:white_check_mark:Succeeded

docs/overview/explore-with-script-lab.md
:white_check_mark:Succeeded

docs/overview/index.md
:white_check_mark:Succeeded

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded

docs/overview/office-add-ins-fundamentals.md
:white_check_mark:Succeeded

docs/overview/office-add-ins.md
:white_check_mark:Succeeded

docs/powerpoint/powerpoint-add-ins.md
:white_check_mark:Succeeded

docs/project/project-add-ins.md
:white_check_mark:Succeeded

docs/publish/publish.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-angular.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-jquery.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-vue.md
:white_check_mark:Succeeded

docs/quickstarts/onenote-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/powerpoint-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/project-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/word-quickstart.md
:white_check_mark:Succeeded

docs/reference/javascript-api-for-office.md
:white_check_mark:Succeeded

docs/reference/manifest/permissions.md
:white_check_mark:Succeeded

docs/reference/overview/excel-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/onenote-add-ins-javascript-reference.md
:white_check_mark:Succeeded

docs/reference/overview/powerpoint-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/project-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/word-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/excel-api-requirement-sets.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/powerpoint-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/word-tutorial.md
:white_check_mark:Succeeded

docs/word/word-add-ins-programming-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 6c4f836:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/concepts/add-in-development-lifecycle.md
:white_check_mark:Succeeded

docs/concepts/privacy-and-security.md
:white_check_mark:Succeeded

docs/design/add-in-design.md
:white_check_mark:Succeeded

docs/design/content-add-ins.md
:white_check_mark:Succeeded

docs/design/interface-elements.md
:white_check_mark:Succeeded

docs/develop/add-in-manifests.md
:white_check_mark:Succeeded

docs/develop/develop-overview.md
:white_check_mark:Succeeded

docs/develop/requesting-permissions-for-api-use-in-content-and-task-pane-add-ins.md
:white_check_mark:Succeeded

docs/develop/support-for-task-pane-and-content-add-ins.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-overview.md
:white_check_mark:Succeeded

docs/images/add-in-ui-elements.png
:white_check_mark:Succeeded

docs/images/index-landing-page/i_design.svg
:white_check_mark:Succeeded

docs/images/ref-docs-moniker-selector.png
:white_check_mark:Succeeded

docs/images/top-level-toc.png
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance-note.md
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance.md
:white_check_mark:Succeeded

docs/includes/yeoman-generator-recommendation.md
:white_check_mark:Succeeded

docs/index.md
:white_check_mark:Succeeded

docs/onenote/onenote-add-ins-programming-overview.md
:white_check_mark:Succeeded

docs/overview/core-concepts-office-add-ins.md
:white_check_mark:Succeeded

docs/overview/explore-with-script-lab.md
:white_check_mark:Succeeded

docs/overview/index.md
:white_check_mark:Succeeded

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded

docs/overview/office-add-ins-fundamentals.md
:white_check_mark:Succeeded

docs/overview/office-add-ins.md
:white_check_mark:Succeeded

docs/powerpoint/powerpoint-add-ins.md
:white_check_mark:Succeeded

docs/project/project-add-ins.md
:white_check_mark:Succeeded

docs/publish/publish.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-angular.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-jquery.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-vue.md
:white_check_mark:Succeeded

docs/quickstarts/onenote-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/powerpoint-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/project-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/word-quickstart.md
:white_check_mark:Succeeded

docs/reference/javascript-api-for-office.md
:white_check_mark:Succeeded

docs/reference/manifest/permissions.md
:white_check_mark:Succeeded

docs/reference/overview/excel-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/onenote-add-ins-javascript-reference.md
:white_check_mark:Succeeded

docs/reference/overview/powerpoint-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/project-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/word-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/excel-api-requirement-sets.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/powerpoint-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/word-tutorial.md
:white_check_mark:Succeeded

docs/word/word-add-ins-programming-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 5b56c8e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/concepts/add-in-development-lifecycle.md
:white_check_mark:Succeeded

docs/concepts/privacy-and-security.md
:white_check_mark:Succeeded

docs/design/add-in-design.md
:white_check_mark:Succeeded

docs/design/content-add-ins.md
:white_check_mark:Succeeded

docs/design/interface-elements.md
:white_check_mark:Succeeded

docs/develop/add-in-manifests.md
:white_check_mark:Succeeded

docs/develop/develop-overview.md
:white_check_mark:Succeeded

docs/develop/requesting-permissions-for-api-use-in-content-and-task-pane-add-ins.md
:white_check_mark:Succeeded

docs/develop/support-for-task-pane-and-content-add-ins.md
:white_check_mark:Succeeded

docs/excel/excel-add-ins-overview.md
:white_check_mark:Succeeded

docs/images/add-in-ui-elements.png
:white_check_mark:Succeeded

docs/images/index-landing-page/i_design.svg
:white_check_mark:Succeeded

docs/images/ref-docs-moniker-selector.png
:white_check_mark:Succeeded

docs/images/top-level-toc.png
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance-note.md
:white_check_mark:Succeeded

docs/includes/landing-page-office-addins-guidance.md
:white_check_mark:Succeeded

docs/includes/yeoman-generator-recommendation.md
:white_check_mark:Succeeded

docs/index.md
:white_check_mark:Succeeded

docs/onenote/onenote-add-ins-programming-overview.md
:white_check_mark:Succeeded

docs/overview/core-concepts-office-add-ins.md
:white_check_mark:Succeeded

docs/overview/explore-with-script-lab.md
:white_check_mark:Succeeded

docs/overview/index.md
:white_check_mark:Succeeded

docs/overview/office-add-in-availability.md
:white_check_mark:Succeeded

docs/overview/office-add-ins-fundamentals.md
:white_check_mark:Succeeded

docs/overview/office-add-ins.md
:white_check_mark:Succeeded

docs/powerpoint/powerpoint-add-ins.md
:white_check_mark:Succeeded

docs/project/project-add-ins.md
:white_check_mark:Succeeded

docs/publish/publish.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-angular.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-jquery.md
:white_check_mark:Succeeded

docs/quickstarts/excel-quickstart-vue.md
:white_check_mark:Succeeded

docs/quickstarts/onenote-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/powerpoint-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/project-quickstart.md
:white_check_mark:Succeeded

docs/quickstarts/word-quickstart.md
:white_check_mark:Succeeded

docs/reference/javascript-api-for-office.md
:white_check_mark:Succeeded

docs/reference/manifest/permissions.md
:white_check_mark:Succeeded

docs/reference/overview/excel-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/onenote-add-ins-javascript-reference.md
:white_check_mark:Succeeded

docs/reference/overview/powerpoint-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/project-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/overview/word-add-ins-reference-overview.md
:white_check_mark:Succeeded

docs/reference/requirement-sets/excel-api-requirement-sets.md
:white_check_mark:Succeeded

docs/toc.yml
:white_check_mark:Succeeded

docs/tutorials/excel-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/powerpoint-tutorial.md
:white_check_mark:Succeeded

docs/tutorials/word-tutorial.md
:white_check_mark:Succeeded

docs/word/word-add-ins-programming-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add linter/formatting to CI

pre-commit ci is free for open source repos as a CI system and relies on exactly the same file that you would rely on to orchestrate pre-commit hooks on the dev side if that's how you were thinking of doing it might be worth looking into it: https://pre-commit.ci/ (good thing is that it autofixes if you use formatters)
If you end up going the pre-commit route, let me know if you need a hand, I've set it up a few times in some of my open source work.

Do we have any preference on what formatting we want to use? Standard pylint, or maybe something more heavily opinionated like black?
I am resurrecting this as more of us are contributing to the lib now and unnecessary formatting changes coming from different local setup are starting to creep in.
IMHO the precommit example in #2237 looks good

@m1n0 I personally have been using black in my projects for a very long time and grew used to it and I like the fact that the rules are the rules and we don't have to have debates on it.

IMHO the precommit example in #2237 looks good

I'm biased but I've had that on all my repos (the public ones too) and it's nice. The issue, is that with pre-commit, not all contributors will remember to install it but we can either set up https://pre-commit.ci/ for some fee I believe, or guide them in the PR to install it.
Or implement github actions to check that things are properly formatted and complying.

IMHO requiring pre-commit is raising the contributors entry barrier too much, maybe we could include the setup, but not require it, but then have github actions do at least black formatting for us, but not just checking but pushing the actual changes, wdyt?

@m1n0 Yes, that's what I would do.
That being said. pre-commit.ci is a SaaS that also will run pre-commit on the PR (and make changes like pre-commit does) this means it would not require contributors to install it but also it means we wouldn't have to ask them to reformat their code.
Actually!! since soda-sql is an open source repo, pre-commit.ci is FREE to use for that repo. I forgot about that!
Internally, for closed source repos we can impose that everyone has pre-commit (as I do for my repos here) but for soda-sql we just have to activate pre-commit.ci on the repo and from the pre-commit config file it will take care of updating the PR it's really good. I use it for my Open Source personal repos


Lithuanian holidays provider

Q
A

Bug fix?
no

New feature?
yes

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Added Lithuanian provider containing official holidays.
Will add other holiday types (there is a lot) later this week.

Thanks @lukosius ! I'll have a look at it as soon as possible.


implement pipdeptree

By using pipdeptree it should be easier to determine which packages are the highest level and therefore migrate to pip-tools with much more confidence

switched over to pip-tools with bef1e12.


MyISAM vs InnoDB

This is a question & not an issue --
Is there any specific reason for using the MyISAM storage engine ? If not, can we switch the tables to use InnoDB instead ? The reason being, I would like to enforce f-key restrictions on other tables which reference theid from the users table; like for example a profile table to store user preferences.
Thank you.

Was wondering the same – but I'm wondering if it's because of the locking behavior of MyISAM ?

Thanks!
As for MyISAM/InnoDB, please see https://github.com/delight-im/PHP-Auth/issues/144 and https://github.com/delight-im/PHP-Auth/issues/137.
With regard to internal foreign keys within the scope of this library and its tables, see https://github.com/delight-im/PHP-Auth/issues/86.
And finally, when it comes to custom foreign keys between the tables and columns used by this library and your own tables and columns – absolutely, please go ahead with that.


[wip] Add more updaters

This is a preview of what I've been working on.
@ryantm Does this seem like a good idea to you?

Cool! I'll take a look tonight.

Why did you change master to nixpkgs-unstable in some places?

Why did you change master to nixpkgs-unstable in some places?

That was just for testing... I had "upstream" pointing to https://github.com/nixos/nixpkgs-channels. I just wanted to be able to get everything from the binary cache.

Oh, the idea is you'll get the dependencies from the binary cache? That makes a lot of sense and might speed up my building (with the downside that it wouldn't catch changes on master/staging that break the build, but OfBorg is building it again anyway, so that seems fine).
You've commented out the lines that build the package before making a PR; it does make sense to better separate the updating and the building. I don't particularly like submitting a PR unless it builds, because I'm worried about spamming the nixpkgs GitHub with a lot of potentially low-quality PRs.

Oh, the idea is you'll get the dependencies from the binary cache?

Yeah but it will get issues if someone has just merged something into master. Nixpkgs-unstable is usually the most up-to-date channel but it can still lack up to 5 days at times. I think we can work out an intelligent way to do this (by "merging" into master before creating the PR, which should error if someone has touched the file.

I don't particularly like submitting a PR unless it builds, because I'm worried about spamming the nixpkgs GitHub with a lot of potentially low-quality PRs.

Initially this was just to make my testing easier (I don't want to rebuild every Emacs packages). I'm still undecided on what's the best route here though. Even if the PR fails, I still think it's a good idea to setup the PR as kind of a notification that "this package should be updated" because it has been on Repology. Ideally the 'auto-update/*' branches would be available for maintainers to modify as they fix things.

I want to take the output from repology and turn that into a regular report that pings each maintainer with the packages they maintain that are out of date. I think a report like that once a month wouldn't be too annoying.

I want to take the output from repology and turn that into a regular report that pings each maintainer with the packages they maintain that are out of date

I am not a huge fan of digests in general. When something happens, I want to be notified immediately (I can setup filter, etc. in email). You can actually get this basic functionality directly through repology already:
https://repology.org/maintainers/?search=mjbauer95%40gmail.com
My thinking is "annoying" people isn't that bad especially when it comes to GitHub notifications that people get tons of anyway.

Okay. I think we need some better plan than opening 4000 issues on GitHub.

I think we need some better plan than opening 4000 issues on GitHub.

💯 Definitely! Right now there is a glut of out of date packages and we will run into problems doing too many at once. However, once we get through that glut, I'm hoping we will have much less per day.
Some things that will also help:

ignore language-specific packages (pythonPackages, haskellPackages, etc.) for now
ignore system-specific packages like aarch64-linux-gnu-
have global limit of PRs to open per day

@matthewbauer Some of the PRs you are submitting don't have maintainers CC'd. For example, https://github.com/NixOS/nixpkgs/pull/37238

Okay so finally got this cleaned up. Shouldn't break anything- just adds support for passing 'updateScript' attributes. I'll wait to test this out for real until a little bit.
No hurry to merge for now, especially as you churn through so many PRs today. Ideally, this is what I'm thinking makes this a little bit more versatile.


Dashboard: Fix Detail View Hard Refresh Bug; Improve overall loading performance

Summary
Fixes a bug where refreshing the browser on the template detail view prevents the page from reappearing.
Improves overall loading performance of the template detail view loading the metadata first, then the page cards.
Relevant Technical Choices
Ensures the templates are pre-loaded. Uses a loading flag to prevent multiple requests.
User-facing changes
Hard refreshing the browser on the template detail view should work again.
Testing Instructions

Visit Explore Templates from Dashboard
Click View on any Template
Refresh the Browser and see the page reloads correctly

#4246

@BrittanyIRL @dmmulroy I added error handling via the toast and ensured the page still rendered on a null template. Previously it would just return nothing. I had to make sure the <ToastProvider /> was with our other app-level providers.
To test an error I guess the easiest way is to comment out lines 234-236 in assets/src/dashboard/app/api/useTemplateApi.js


feat: maps induced on the homology of short complexes

This PR also starts the introduction of a comparison map between left and right homology.

bors retry


Factor out resource "ps2"

Boards using it:

[ ] Atlys
[ ] DE0
[ ] DE0-CV
[ ] Mercury
[ ] Nexys4DDR

There is a PR that has been merged, should this issue be closed ?

Fixed in #161.


Grafana dashboard for ICIC build is missing

The lab automation has defined a dashboard for the ICIC build log.  This is missing from the ELAN.

Updated the main build playbook with the code from lab.


Enable noImplicitAny

We still have a fair bit of missing types in this library.  We should go through and add types where needed, and enable noImplicitAny in the tsconfig.

We decided to archive the repo!


Populate Rename Symbol palette with current value

Close #133 🎉
I've made a relevant PR to DefinitelyTyped adding the new API option.
Will need to wait for that to be released, and the dependency updated before this PR can be merged.

This PR will also need to go through https://github.com/DefinitelyTyped/DefinitelyTyped/pull/52560 (it unblocks https://github.com/apexskier/nova-typescript/pull/202)

Also, can you add a note to the changelog?

sure thing, will do along with the dependency update commit


[MNT] Auto tag and label Docker images on release

Closes #100
Fixes #97

Changes proposed in this pull request:

Use Docker Metadata Action to auto-tag images with semver vX.Y.Z and latest, and label them with the source code repo URL, revision ID, and semver
Remove use of variable templating when syncing wf for pushing Docker images on release, which was problematic to keep for several reasons

the template syntax doesn't work well with GH variable expansion in the same wf (see https://github.com/neurobagel/workflows/pull/49), meaning we wouldn't be able to use Docker Metadata Action without additional variable configurations in sync.yml
we've already seen that this introduces problems for Dependabot parsing because it apparently technically allows what is invalid yaml syntax

New repository variable DOCKERHUB_REPO has been added to repos that inherit this wf

Checklist
This section is for the PR reviewer

[x] PR has an interpretable title with a prefix ([ENH], [FIX], [REF], [TST], [CI], [MNT], [INF], [MODEL], [DOC]) (see our Contributing Guidelines for more info)
[x] PR links to GitHub issue with mention Closes #XXXX
[ ] Tests pass
[x] Checks pass

For new features:

[ ] Tests have been added

For bug fixes:

[ ] There is at least one test that would fail under the original bug conditions.

Was the build_on_release workflow the only one with the special sync_wf double-braces syntax that was breaking dependabot? I.e. is the dependabot issue resolved because we no longer use the special double-braces syntax anywhere now?

Yes, that's right - we no longer use {{ }} for variable interpolation. I've added a comment to #97 for clarity.


[SIP] Ability to connect with a second user to run db migrations only

[SIP] Proposal for Ability to connect with a second user to run db migrations only
Motivation
We have internal policy which the flyway or application migrations will run on certain user which has ability to create/delete tables, and another user for runtime which can only write or read from existing tables
Proposed Change
currently I use:
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{env('DB_USER')}:{env('DB_PASS')}@{env('DB_HOST')}:{env('DB_PORT')}/{env('DB_NAME')}"

superset db upgrade

I would like:
superset db upgrade --user flywayuser --password admin

New or Changed Public Interfaces
NONE
New dependencies
NONE
Migration Plan and Compatibility
Add default fallback when the parameter isn't included to use the already connected user, thus existing users doesn't need to do anything
Rejected Alternatives
NONE

@justmike1
I think we can work around this since there is no --user option with superset db upgrade. You can split the export SUPERSET_CONFIG_PATH=/app/superset_config.py and create one for /etc/systemd/system/superset.service setting its Environment=SUPERSET_CONFIG_PATH=/app/superset_config.py.
When you need to run superset db update create another superset_config_upgrade.py with the username replaced in the file and export SUPERSET_CONFIG_PATH.
Please ensure that the user has the necessary privileges to access the database.

I want to highlight that it is not best practice to use a different user as the owner of the table during upgrades. This discrepancy can lead to permission conflicts when the system runs.

@Habeeb556 Thanks!

Taking off the SIP label here to make bookkeeping easier. We won't number this one since it was solved before it began. Thanks @Habeeb556 :)


LDAP integration

This is maybe a long term goal, but it would be nice to have an LDAP connector so you can use it in your existing AD/LDAP infrastructure.

I am also interested in this feature. Helpy is using Omniauth that has LDAP support https://github.com/intridea/omniauth-ldap
I am not an Ruby expert but, I surly can help out writing and testing something with AD and JumpCloud.

+1 on LDAP support

+1

This is now available in our commercial version, so closing it here.

@scott it is possible to use LDAP using a self-hosted open source instance? e.g. perhaps by buying an upgrade or something? thanks!


Client Allocation Request for: Plant Elements

Client Allocation Questions
Core Information

Name: Plant Elements
Website / Social Media: http://vetetable.com
Region: Greater China
DataCap Requested: 10TiB
Addresses to be Notarized: f15d5pxriekd6rcxx2t5xlebbubc5qlqtcuyewxfy
Notary Requested: dannyob

@niutonghz Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Hi! Could you submit this to a notary in your region? You can find them here: https://plus.fil.org/verifiers


Add Searls after Dark to YouTube courses

https://www.youtube.com/watch?v=HU4uBJ3UJPk&list=PLIuJbrOVyGjkRj7UM_whr-CPoqcXTOsZa
This seems more like a Screencast series but I think it can be added to YouTube courses

added https://rubyandrails.info/youtubes/searls-after-dark


optimization #5 - Optimize token transfer delegate.sol

This change actually increase gas usage. We prefer less storage over less computation.


scope tracker: attach scope trackers to Http:Client and PlatformBridgeFilter

Description: scope tracker - attach scope trackers to Http:Client and PlatformBridgeFilter
Risk Level: med - changing crash clean up routine
Testing: example app. Integration test pending.
Signed-off-by: Jose Nino<EMAIL_ADDRESS>

@goaway updated! re: using the ostream arg, I opened https://github.com/envoyproxy/envoy-mobile/issues/1497. I want to land this and then think about that if you are ok with that.

note: this PR depends on https://github.com/envoyproxy/envoy/pull/16709

Overall looks good, just some concerns around threadsafety when accessing the underlying dispatcher.

Nice work!


ProjectsEvaluatedBuildListener creates/configures the artifactoryPublish task too early

The ProjectsEvaluatedBuildListener has an afterEvaluate hook which configures the artifactoryPublish task. This is a problem for Gradle Plugin developers who apply the com.jfrog.artifactory plugin as part of their library which is then used by other projects.
Our library itself does its artifactory configuration within an afterEvaluate block because it needs to read project build information before it can correctly configure the publications needed. The problem I'm having after version 4.4.9 of the plugin is that I have no control over the ordering of afterEvaluate blocks, so the ProjectsEvaluatedBuildListener block is executing before mine, so when the artifactoryPublish task runs there are publications there but the generatePomFileFor... task isn't there as a task dependency, so the consuming application's build fails when running artifactoryPublish.
My code:
project.afterEvaluate { proj ->
  // Artifactory has already been configured on the root project by the com.aig.base plugin
  // Just need to add the main publication
  def configurationsForPom = getConfigurationsForMavenPom()
  def bootJarTask = proj.tasks.findByName 'bootJar'  // Spring boot 2 disables the jar task & instead has its own bootJar task. This is 1 reason why this is in an afterEvaluate block so that the full build file can be evaluated before creating the publication
  def jarTask = bootJarTask?.enabled ? bootJarTask : proj.tasks['jar']

  proj.configure(proj.publishing) {
    publications {
      mainJava(MavenPublication) {
        artifactId "${ -> proj.myExtension.artifactId}"
        // Change due to https://github.com/gradle/gradle/issues/1061
        // from proj.components.java
        artifact jarTask
	artifact proj.tasks[SOURCESJAR_TASK_NAME]
	artifact proj.tasks[JAVADOCJAR_TASK_NAME]

        pom.withXml {
          // Another reason this needs to be in an afterEvaluate block
          PluginHelper.fixMavenPomDependencySection(proj, asNode(), *configurationsForPom)
	}
      }
    }
  }

  // And then configure the artifactoryPublish task to publish the main publication
  proj.configure(proj.tasks['artifactoryPublish']) {
    publications 'mainJava'
  }
}

This is what I'm seeing when my application applies my plugin and then runs artifactoryPublish:
:artifactoryPublish
:artifactoryDeploy FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':artifactoryDeploy'.
> File '/jenkins_home/03/d3445737/workspace/commercial-it-applied-architecture/acid-framework 2.1/acid-framework/acid-cloud/target/publications/mainJava/pom-default.xml' does not exist, and need to be published from publication mainJava

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Also reported as GAP-289

The Gradle team has also weighed in on this & offered help - gradle/gradle#4783

Thank you for reporting this @edeandrea.
We'll soon start looking this. We'll update here.

Thanks @eyalbe4. Until this is resolved we are stuck on version 4.4.9 of the build-info-extractor-gradle plugin. Versions >= 4.4.10 have this behavior.

Hi @edeandrea
Thank you for reporting this, we are working on a fix for this issue. This indeed happens since the evaluate phase is running to early.
We also found another possability that the task can fail with the flag of configure on demand. The scenario is when you have the project.afterEvaluate with publication inside the build.gradle as you mention and run with configure on demand. The flag seems to ignore the creation of the pom file and therefore fails the artifactoryPublish task. More details I've also posted for Gradle team on the gradle/gradle#4783 that you have mentioned.
We are waiting for their suggestion how to proceed before releasing a new version with the fix.

Thanks @AlexeiVainshtein for the update. I'll wait and see what comes from this. Until there is some resolution we are stuck on version 4.4.9 of the plugin.

Note that this issue is unrelated to the problem described in https://github.com/gradle/gradle/issues/4783. Let's focus on that one first and then continue with this one.

Thanks @oehme.
@edeandrea, We have released a new version 4.7.3 that I think resolved this issue. I've created a similar sample project with project.afterEvaluate in my build.gradle. With version 4.7.2 indeed those artifacts were not published and I got an error, however, with version 4.7.3 all worked.  Can you please try 4.7.3 version and let us know if this solved this issue?
Thanks

@AlexeiVainshtein can you point me at the changes you made? I'm curious and I'd be happy to provide code reviews as you fix the issues we were talking about. I'm gonna write an answer on that other thread today.

Sure thing @oehme. Here is the commit: https://github.com/JFrogDev/build-info/commit/9fe409317cb358b72139099af148e82e7620afcb
I would be happy to hear your suggestions and feedback. Thank you

Hi @AlexeiVainshtein I tested with 4.7.3 and it fixes the issues I was experiencing.


API joint for pulsar backend: create,update

this fix #8

What is the status of this PR? @GiorunoGiovanna

What is the status of this PR? @GiorunoGiovanna

Now it can create functions, update functions correctly, and refresh after creation

What is the status of this PR? @GiorunoGiovanna

Now it can create functions, update functions correctly, and refresh after creation


Fix asyncio rawsocket protocol transport details (#1592)

from a quick review, looks good to me! thanks for contributing


Any way to remove the "at"

Using your script my clock says "Sat 28 Nov at 12:06". This "at" is annoying me :) Any way to remove it?  Thanks a lot!

It’s dependent on the Region setting in System Preferences > Language & Region. Having the Region set to France displays the date and time with ‘at’ I believe.


Add option to restart javascript session after each run

Javascript does not allow for multiple const or let declarations.
unlike R and groovy, this makes ride sometimes cumbersome to use .
Add a checkbox to restart the session after each run. Remember the setting in the profile.

Fixed in e2807ac319fb0e96cca0900d1d7293337c833f71


Aphrodisiac Gestation issues

From Discord: @lionheart
When mating using the Aphrodisiac. Sometimes the gestation is hanging  and going past 100%. EG ticking up to 105%. The Dino is not giving birth until after the aphrodisiac wears off resulting is a full normal CD.
This is while staying in render of the dino. The Two dinos ive had issues with are Megatherums and Doeds but these are just the ones im trying to breed atm.
I had used an Aphrodisiac. they all had the buff but ticked up to 104.9% / 105% gestation and gave birth after the Buff has worn off. Leaving a 4 - 8hr CD.

Fixed gestating creatures gestating more than 100%
Adjusted buff to complete gestating 8% before buff ends instead of 5%
Added a check to force the buff to continue working if the gestation gets stuck at 100% or more. (because ARK...)

Tested in live. Issue still persists. Out of 12 Megatheriums mated under aphrodisiac, 3 had a longer cool down than the others. One as long as 7 hours.

This seems to be a replication issue, where the client is not receiving the correct buff timers.
I've added some additional force replication functions to see if this solves the replication issue.


Add tests from #11 to TestRails regression test suite

Work with @gxtchen and see #11

Based on the comments in #11, this is on hold to figure out the stable API and best way to practice testing network failures.
Update: We really want to test if a corrupt file is being caught, so perhaps 'network outage' testing is misleading.


How to convert Patch.toString() to Patch?

Patch.toString() get a String, and store to the database.
i want get the string from database, and convert it to the Patch object and call "DiffUtils.patch(text1, patch);"

You should not use the toString method. You should use the UnifiedDiff methods.

Could we close this?


[CAMEL-13462] - Override blob name using header implementation.

JIRA TASK
Using custom header to override blob name in the producer.
Use lambda expressions in tests where it's possible.

Thanks I have merged your work and improved it with the override header.


PXP-639: [CLI] Ctrl-e stopped working on the latest codebase

Summary

Ticket: PXP-639
What's Changed

Changed

[x] Add an ID to determine whether an API response is outdated or not
For example, the log_entries type is (String, Vec<LogEntry>), the first value is the ID. Every time the state is changed (Namespace, version, time filter, log severity and etc), a new ID will be generated. And if the API ID is not the same with the latest ID, it won't append to the Vec. This prevent the existing outdated API call results pollute the log vector.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: jk-gan
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Fails to format when await used in try block

prettier 2.2.1
sort-imports 1.4.1
node 14.15.4
Archlinux
Input:
try {
    result = await test();
} catch (e) {
  result = false;
}

Without this plugin, the above example formats correctly. With this plugin, we get the following error:
[error] prettiertest.js: SyntaxError: Unexpected token, expected ";" (3:19)
[error]   1 | const result;
[error]   2 | try {
[error]   3 |     result = await test();
[error]   4 | } catch (e) {
[error]   5 |   result = false;
[error]   6 | }
[error]   7 |

The plugin uses babel to parse the provided js/ts files. If your code is invalid then plugin will throw an error.
At line 1:  'const' declarations must be initialized
At line 3: cannot assign to 'result' because it is a constant.
You can use let result; and then give a try.
Please feel free to reopen if the issue persists.


Add testing for runtime in run images

Add testing for Node.js in runtime images versus only testing the runtime in the base image. This was left out of the initial testing since it but that requires us having a working published extension, which in turn requires this stack to be published.

Being addressed in https://github.com/paketo-community/ubi-base-stack/pull/35

Closing since PR to add testing for runtime images landed.


Error running connect-terminal

Hi, Alex!
For me, the connect-terminal emits some errors when run:
kitty @ launch --no-response --type="window" --cwd="/home/gustavo" --match=id:3 sh -c ␊    export KAKOUNE_SESSION=$1␊    export KAKOUNE_CLIENT=$2␊    shift 3␊␊    [ $# = 0 ] && set  $SHELL"
Error: 1:1: '>' 2:3: 'connect' 2:7: 'terminal' 2:5: 'eval' no such command: '$@'

The command works as expected even with the errors.
It happens even with this minimal kakrc:
evaluate-commands %sh{
    kcr init kakoune
}

I've found it a bit weird no one else reported the same issue. Perhaps it's been caused by a very specific combination of program versions...
My setup:

kitty 0.20.3
kakoune v2020.09.01-378-g545db22a
kcr 371f1af

I have no idea.  Can you try with another terminal, such as Alacritty?

It seems to be something kitty-specific. It does work on other terminals (tested on Alacritty, Konsole and Gnome Terminal).
Looking at the error message ('eval' no such command: '$@'), my first guess is that it has something to do with how kitty is invoked from Kakoune:
        kitty @ $listen launch --no-response --type="$kak_opt_kitty_window_type" --cwd="$PWD" $match "$@"

But it's just a guess.


fix monitoring stop in case of connection failure

Which issue this PR addresses:
Fixes https://portal.microsofticm.com/imp/v3/incidents/details/399924373/home
What this PR does / why we need it:
Prevents the monitor for crashing when there is an issue that prevents Hive connection.
The sequence that leads to the error is better illustrated by this example: https://go.dev/play/p/M9i87kL8smm
Test plan for issue:
Give the urgency of the easiest way to test would be to deploy to canary and observe.
Is there any documentation that needs to be updated for this PR?
No

@dem4gus That is a good question. The errors that we saw that eventually lead to monitor failure look something like this:
Get "https://xxxxxxxxxxxxxxxx/api?timeout=32s": http2: client connection lost
This change actually changes the intended behavior of the code. Initially this code was intended to work when no hive connection was present, by doing nothing when there is an error. After a change to the vendored package used for the hive client and due to the very specific go language feature explained in the playground example, it caused the monitor to not work when hive connection is not present, and to stop working if there is any fluke in the connection.
By returning the error we prevent the monitor from emitting metrics when no hive connection is present (but fix the bug for connection flukes). Perhaps a better alternative to this fix would be to modify this if to detect that special nil case that we were missing: https://github.com/Azure/ARO-RP/blob/000562dbd993fa4bae0c4158f3111a0ca78f14fd/pkg/monitor/cluster/hiveregistrationstatus.go#L24 That way we maintain monitoring behavior for specific environments without hive.

To echo Spencer's comments, I'm +1.  The monitor is technically "best-effort" in a sense.  The latter steps are the most unreliable.  I think it would make sense to move any hive steps to the bottom along with the construction of the hive clientset if possible.

hiveclientset will be nil

@AldoFusterTurpin by saying that you are assuming it will be nil. What I am saying is that we should even assume that and discard whatever is returned by a function that gives an error.

hiveclientset will be nil

@AldoFusterTurpin by saying that you are assuming it will be nil. What I am saying is that we should't even assume that and discard whatever is returned by a function that gives an error.

I do not assume anything, the PR I opened does exactly what I was trying to say: don't use the hiveclientset returned by the function client.New() when this returns an error. That is why I also created Unit Tests to reproduce that panic and to ensure the new function I defined does not provoke a panic when we later use mon.hiveclientset.

@bizz001 let's sync later today to just have one PR and merge efforts.
IMHO, the simplest thing would be to put ourselves as co-authors on the other one and close this one as the other contains some unit tests showing the panics/no panics + explanations and a helper function. But we can discuss it later.
😃


Add counter to track number of saved keystrokes

Would be nice to know how much text/time Beeftext is saving. Maybe just subtract the combo length from the variable expanded snippet length as a rough estimate.

Interesting idea. I'm putting it on the todo list.

Closing. I have simply no time to implement this.


Connections show as 'Loading...' for unknown providers

Azure Data Studio Version: master

Steps to Reproduce:

Install Postgres extension or another non-mssql connection provider
Create a saved connection profile
Uninstall the connection provider extension

Expected: Connection from step 2 displays correctly in OE and fails with a sensible error message
Actual: Connection from step 2 displays as 'Loading...' and doesn't fail gracefully when expanded.

Closing older issues with low customer impact.


Different result with RepeatMasker

Hi,
Thanks for your program. I have a question about the result.
This is my command and the result:
perl Parsing-RepeatMasker-Outputs/parseRM.pl -i ../Genome.fasta.out -p
#nt_total_in_genome     nt_masked-minus-double  %_masked        FYI:nt_masked_double
nd      92239330        nd      5466827

As we can see, the total number masked is 92239330 bp ... which is different from Repeatmasker.tbl output:
Total interspersed repeats:    91273809 bp   31.21 %
Why this difference ?

Hi,
Unsure, actually. I never benchmarked against these results, only with test/dummy files I had for .out and .align files.
Could you check if somehow some non TE stuff were kept in my output, even though they should have been filtered out?
The tbl output is for interspersed repeats only, so that could be the issue.

I have very close number between your output and Repeatmasker:
Your output:
#class  nt_masked-minus-double  %_masked        FYI:nt_masked_double
DNA     17808709        6.08979198087849        697761
LINE    6990023 2.3902791612551 294843
SINE    344571  0.117828064496044       8319
Unspecified     30      1.02586750912913e-05    0
RC      891706  0.304924071031832       32742
Retroposon      244     8.34372240758356e-05    41
LTR     12692539        4.34028778948476        450089
Unknown 53511508        18.2985724739011        3650173

RepeatMasker:
               number of      length   percentage
               elements*    occupied  of sequence
--------------------------------------------------
DNA transposons      30220     17833478 bp    6.10 %
   LINEs:             8135      7067944 bp    2.42 %
   SINEs:             1029       345499 bp    0.12 %
Rolling-circles       1224       889779 bp    0.30 %
   LTR elements:     12643     12708059 bp    4.35 %
Unclassified:       163171     53318829 bp   18.23 %

Different things that are not in Repeatmasker are Unspecified and Retroposon: they are very low. What is it ?
These different numbers among the 2 outputs, I am not sure to understand how is it computed too.

My code takes the repeat names tename#class/family to output the class that you show. So it depends on your library. RM probably has some extra parsing.
One thing to keep in mind is that when bases are masked by 2 TEs of the same class, I subtract that amount before reporting the amount for the class (but not if it is by TEs of a different class).
I do not know what goes into the generation of this table output from RM - honestly the differences are not big, the % are so similar, that I wouldn't personally worry about it (it's not like any TE annotation is 'perfect'). Unfortunately I do not work on this anymore so I can't promise to dig into these differences. My guess is that they don't process overlaps in the same way than I do... I get my numbers from the .out here, while they probably get them from the .align files, with some processing.
If you want to dig, you can try to compare on a very small region that you could manually check, and see what's what. If you do that, please post here what you find!


[Question] Benchmarking on Video-QA

Question
Dear LLaVA Developer Team,
I must say the LMM is truly brilliant! 😊 I have a question: is LLaVA capable of performing video-QA? In other words, can the model accept a video or a set of sampled frames as input? We are currently working on creating a video-QA benchmark and are exploring the possibility of using LLaVA as one of our baseline models.
Thank you for your assistance in clarifying this.

@Anthony6197 I think the llava code support input format in image list according to this code.
https://github.com/haotian-liu/LLaVA/blob/main/llava/model/llava_arch.py#L114
what you should do is just modify the data process code.

@Anthony6197 I think the llava code support input format in image list according to this code. https://github.com/haotian-liu/LLaVA/blob/main/llava/model/llava_arch.py#L114 what you should do is just modify the data process code.

But I think the more sever problem is the lack of such data in the training dataset... By the way, I want to inquire whether there are any high-quality interleaved multi-image datasets?

@tingxueronghua
pretrain dataset: webvid-10M(video), blip_laion_cc_sbu_558k(image),Charades_v1(video)
sft dataset: refer to videochat, llava, videollama, mplug, llavar

this maybe help

https://github.com/BradyFU/Awesome-Multimodal-Large-Language-Models#awesome-datasets

@xmy0916 Thanks!

@Anthony6197 I think the llava code support input format in image list according to this code. https://github.com/haotian-liu/LLaVA/blob/main/llava/model/llava_arch.py#L114 what you should do is just modify the data process code.

But I think the more sever problem is the lack of such data in the training dataset... By the way, I want to inquire whether there are any high-quality interleaved multi-image datasets?

Hi @tingxueronghua , have you implemented multiple images input and got some exact results?


Middlewares

Related to the discussion in https://github.com/prisma/prisma-client-js/issues/669
Users of Prisma Client need a way to hook into Prisma Client.
The system that allows this hooking-in needs to allow the following use-cases:

Monitoring, measuring performance, logging
Overwriting args
Validation

When having hooks in a system like Prisma Client, we can differentiate between blocking and non-blocking hooks. Blocking would mean - this function needs to succeed before we continue with executing the Prisma Client query. Non-blocking would be a traditional event emitter, for example used for logging. It will be called async and doesn't have to succeed for the client to continue with its business.
Why am I calling this a middleware instead of a hook?
A middleware clearly states, that it is the "blocking thing" that can impact the control flow of what Prisma Client does.
As a first start, we should think about a simple but effective API, that solves as many use-cases as possible, while minimizing the API surface.
The API I suggest for that looks like this:
prisma.use(async ({ fetchQuery, params }) => {
  console.log('Before')
  const data = await fetchQuery(params)
  console.log('After')
})

This hook or middleware will then be called before every query, for example prisma.user.findMany().
The params include all the relevant information, like the args, the model and the method being used.
Details of the params have to be figured out.
With this approach, we can cover all the above-mentioned use-cases.
Please comment, if this API would be useful for you and if any use-cases are left out by this.

Other usecases:

Caching certain queries
Mocking out parts of the client

What is fetchQuery in this case? Does this API work with creates, updates, and deletes?

We have a similar approach for the Rust Surf HTTP client, which was inspired by koa's middleware approach -- overall this is working out quite well for us and excited for a similar approach here as well.

@matthewmueller fetchQuery is the function that does the execution.
Would execute make more sense?

Yah I think so. I also think next would make it more clear that it's similar to Koa/Express. Do we also need the object syntax?
Express
app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...')
  next() // pass control to the next handler
})

Koa
app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});

Proposal
prisma.use(async (query, next) => {
  console.log('Before')
  const data = await next(query)
  console.log('After')
})

@matthewmueller in the proposal what should be done with data? Should it be returned from the closure so it can be handed to the next middleware?

Great point! What are some use case where you'd want to manipulate the returned data in middleware?
One example is perhaps unnesting the data. Something like:
https://github.com/paularmstrong/normalizr

Great point! What are some use case where you'd want to manipulate the returned data in middleware?

@matthewmueller good question. If we consider prisma-client to effectively be an HTTP client then things like redirects, validation, setting/storing cookies, extracting headers are all valid things to want to do.
Manipulating the actual returned data; I'm not sure. Perhaps there are some interesting analysis we could do (instrument size if tracing enabled). But in a pattern as general as middleware I would generally err on the side of flexibility.

I like the idea of next and the fact that this can be a similar API to Koa.
The next function in Koa indeed returns a Promise of undefined. So you can't change the "return" of the HTTP server like that. However, that also doesn't make sense in Koa's case, due to the nature of HTTP, where you might instead send back a stream. Instead with Koa you use the ctx object to "return something"
@matthewmueller making your proposal even a bit more koa-like, we could also do this:
A: query is required
prisma.use(async (query, next) => {
  query.args.first = 10
  await next(query)
})

B: query can't even be passed into next
prisma.use(async (query, next) => {
  query.args.first = 10
  await next()
})

C: next returns the data, query is required
prisma.use(async (query, next) => {
  query.args.first = 10
  const data = await next(query)
  return data
})

What do you think about that?
It looks like there are trade-offs for the solutions.
A
Pro

Makes it clearer when reading the code, that it is after all passed into the query function

Con

Not minimal

B
Pro

More minimal
Proven in Koa

Con

Potentially unclear

C
Pro

As with Koa, this allows manipulating the response. (which is crucial in Koas case but not in ours)

I don't really have a favorite yet, they all have their tradeoffs.

Thanks organizing this discussion @timsuchanek. I'm slightly in favor of C, but one thing I can't reconcile with is what happens to that return data?
For example,
// called first, then last, koa-style
prisma.use(async (query, next, data) => {
  console.log(data) // undefined
  await next(query)
  console.log(data) // defined
})

prisma.use(async (query, next) => {
  query.args.first = 10
  const data = await next(query)
  return data
})

It's a bit weird. Any ideas?

I'd go with C.
One use case: the middleware uses the updated data (e.g. autogenerated IDs...) to store it in a data warehouse for analytical purpose.

Sounds good! @matthewmueller the return data should stay mandatory, which can be enforced by TypeScript.
Let's think a bit how the API will work:
client.use(async (query, next) => {
  console.log('1')
  query.x = 2
  const data = await next(query)
  console.log('4')
  return data
})

client.use(async (query, next) => {
  console.log('2')
  query.x = 3
  const data = await next(query)
  console.log('3')
  return data
})

This would print
1
2
3
4

And the query object would have x: 3, as the second middleware is called after the first one, basically how the cascading is described here: https://koajs.com/
Here is a prototype implementation: https://gist.github.com/timsuchanek/971d39047348e27190f667b8811f9d52

Ah excellent. That makes sense now. Thanks!

I'm quite confused by having next and return because the Express one doesn't have a return at all. It is used like this:
app.use((req, res, next) => {
  console.log('This is third middleware')
  next()
})

If we want to keep the return data renaming next would be better I think.

True. Something like proceed or execute may sound better, prisma being
pretty different than other libraries mentioned here as a reference for
using next.
Le mer. 15 juil. 2020 à 07:59, Joël Galeran<EMAIL_ADDRESS>a
écrit :

I'm quite confused by having next and return because the Express one
doesn't have a return at all. It is used like this:
app.use((req, res, next) => {
console.log('This is third middleware')
next()
})
If we want to keep the return data then renaming next would be better I
think.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/prisma/prisma-client-js/issues/770#issuecomment-658562791,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADJJGMV2SCF36HZLVLGUTLR3VAUHANCNFSM4OURE2JQ
.

I don't have a huge preference on this. It's an advanced API and I think people will figure it out, but I'm okay to rename it. Of the options provided, I don't think execute is the right word since it's more like passing query forward in the chain.
proceed, forward, etc. are synonyms of next. I think I'd prefer the simplest possible word, but I'm okay with any of these.

@Jolg42 I was also confused a bit and agree in Express terminology it doesn't make too much sense, but from the koa perspective, next is quite natural.
It seems that the main contestants are next and execute, but I agree with @matthewmueller, that execute doesn't denote the "user control" nature of this.
execute would make sense, if there is only one middleware, as what you're then calling is indeed the execution of the Prisma Client query.
But as soon as you have multiple middlewares, you literally call the next one.

The only bit which puts me slightly against next is that it doesn't denote the fact that it actually performs the call on top of passing the ball to the next middleware (if any). That's why I was siding more with something telling that the actual call which is wrapped in the middleware will actually be executed.
I found this middleware approach looking like aspect-oriented programming, where the terminology is more around invoke or proceed. Now that may not resonate with the JS way as much, so I'll leave the group decide.

Middlewares are implemented in 2.3.0-dev.38.
This is how to use them:
import { PrismaClient } from '@prisma/client'

async function main() {
  const client = new PrismaClient()

  client.use(async (params, next) => {
    console.log(params)
    return next(params)
  })

  const data = await client.user.findMany({})
  client.disconnect()
}

main()

This will log the following:
{
  args: {},
  dataPath: [],
  runInTransaction: false,
  action: 'findMany',
  model: 'User'
}

You can check out more examples here and here


Update the update-osp-nightly GH action

The peter-evans/create-pull-request GH action has newer version fixing the "Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20" error.

/test test-pipeline-service-upgrade-ocp-414

The change does not have effect on the pipeline-service functionality and the upgrade test failure is not related.

/hold
holding merge for now to avoid noise to the infra-deployments repo.

/test test-pipeline-service-upgrade-ocp-414

/unhold


GKE resource labels

I have a use-case that requires resource labels on GKE for costing / billing filtering. This PR adds optional resource labels for GKE clusters.
Default behavior is not modified.
My tests passed when I ran go test -v -timeout 60m -run ./gke_cluster_test.go.

Thanks for the quick turnaround @robmorgan. Please let me know if you need anything else.

@jsirianni LGTM!


mapping from the continuous set to the discrete one

Hi! Thank you for sharing the nice work. In the paper, you mentioned that the discrete {0, 1} constraint is relaxed to the continuous range [0, 1] for the Frank-Wolfe purpose. Then how do you map the continuous result back to satisfy the binary constraint?  E.g., by doing row-maxing or something?

Hi! Thank you for sharing the nice work. In the paper, you mentioned that the discrete {0, 1} constraint is relaxed to the continuous range [0, 1] for the Frank-Wolfe purpose. Then how do you map the continuous result back to satisfy the binary constraint? E.g., by doing row-maxing or something?

I have read the Matlab code. They applied the Hungarian algorithm to \hat{P} (the relaxed continuous permutation matrix) to get the binary version. You can find it in ZAC.m


why pyzmq(19.0.2) and c++ zeromq4.1.2 failed to communicate?

Hi,
i want to use pyzmq to transfer message between c++ and python.
when i use python2.7.15(pyzmq '17.1.2') and pyzmq and c++ zeromq 4.1.2, the msg will be ok to pass.
but when i use python3(pyzmq '19.0.2'). it failed.
so, what is the correct version in c++, so i can pass msg with python3? and is it compatiable with python2?

The version of pyzmq isn't generally relevant, but the version of libzmq may be. Check zmq.zmq_version() to see what version of libzmq pyzmq is running with. You can try building pyzmq from source with a shared libzmq if the version is far off, for example, to skip the prebuilt wheels:
pip install --no-binary pyzmq pyzmq


Allow band numbers, not just common names

Issue
The spectral_recovery.io.read_and_stack_tifs method only allows bands to be named by their common names, e.g 'SWIR', 'NIR', 'BLUE' and does not allow names like 'B4', 'B4', 'B1' which are also commonly used. The tool will currently throw an error is anything other than common names are passed. This potentially forces users to rename all their image bands, a frustration if they have many images in their timeseries. For ease-of-use, read_and_stack_tifs method should be able to support a less restrictive set of band names.
Context
The band names were originally restricted to just common names because the tool is designed to be platform independent. Using only common names allowed the tool to not concern itself with band numbers differences between platforms, e.g Landsat ETM B4 = "NIR", Sentinel 2 B4 = "Red" and only compute indices using common names.
Proposed Solution
With incoming changes on the dev branch, the spectral_recovery.io.read_and_stack_tifs method will be using a platform= parameter. This parameter identifies the platform from which the user's images are derived.
In spectral_recovery.io.read_and_stack_tifs, we could use a mapping from band numbers ('B1') to common names, using the platform parameter to accurately map platform-dependent band numbers to common names. This would maintain the use of common names internally but would allow for a more flexible dataset from users.
A bit more thought is needed about how and where to implement the mapping structures. My first thought is to put them in spectral_recovery.utils and import into io from there.

Closing as integration with Spyndex (#40) required users to ID their TIF's band names.


[Bug] PipelineArtifactDownloadException for Container

Describe the bug
Encountered an unexpected error.
ArtifactTool.Commands.PipelineArtifacts.PipelineArtifactDownloadException: Artifact with name 'mymsi' was found, but is of type 'Container'.
To Reproduce
Azure Cli Version: 2.0.63
Azure-Devops extension version:  0.6.0
Steps to reproduce the behavior:

login using az devops login
Run the following command: az pipelines runs artifact download --artifact-name mymsi --path C:\msidownloads --run-id 123456 --org https://dev.azure.com/contoso -p SomeTeam

Expected behavior
The file(s)/folder(s) in the container are downloaded into the C:\msidownloads folder
Stack trace
at ArtifactTool.Commands.PipelineArtifactDownloadCommand.ExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\PipelineArtifacts\PipelineArtifactDownloadCommand.cs:line 41
at ArtifactTool.Commands.CommandBase.OnExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\CommandBase.cs:line 113
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.InvokeAsync(MethodInfo method, Object instance, Object[] arguments) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 77
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 62
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<b__0>d.MoveNext() in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 25
--- End of stack trace from previous location where exception was thrown ---
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass126_0.b__0() in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.cs:line 505
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 31
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 145
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](IConsole console, String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 130
Encountered an unexpected error.
ArtifactTool.Commands.PipelineArtifacts.PipelineArtifactDownloadException: Artifact with name 'mymsi' was found, but is of type 'Container'.
at ArtifactTool.Commands.PipelineArtifactDownloadCommand.ExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\PipelineArtifacts\PipelineArtifactDownloadCommand.cs:line 41
at ArtifactTool.Commands.CommandBase.OnExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\CommandBase.cs:line 113
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.InvokeAsync(MethodInfo method, Object instance, Object[] arguments) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 77
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 62
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<b__0>d.MoveNext() in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 25
--- End of stack trace from previous location where exception was thrown ---
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass126_0.b__0() in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.cs:line 505
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 31
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 145
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](IConsole console, String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 130
Additional context
In AzureDevOps, there's no alternative type of "artifact". I've tried 2 different publish artifact tasks, and the artifacts are always a 'Container'. So, if there's a way artifacts need to be published to allow this command to work, then it should be included in the Docs. If it's an issue with the command usage, I'd suggest a sample/example be added to the docs and/or to the command-line help output.

Sorry for the miss here. Re-assigning to those on the appropriate team.

@owenhuynMSFT @fadnavistanmay who should this be assigned to on your team?

@tekgiant Have you tried using publish pipeline artifact task to publish an artifact? The artifact generated by this task should be a pipeline artifact rather than a "container".

Just to clarify @jahsu-MSFT's comments but "container" refers to build artifacts:
https://docs.microsoft.com/en-us/azure/devops/pipelines/artifacts/build-artifacts?view=azure-devops&tabs=yaml
When using Azure CLI, I believe the command you are using is trying to download a "Build artifact" rather than a "Pipeline artifact". Azure CLI currently doesn't have this functionality to download "Build artifacts" but we intend to release this functionality in the future. If you are trying to download artifacts from older builds, it is currently a blocker and we will be fixing and releasing them. However if you can switch your builds over to Pipeline Artifacts rather than Build Artifacts, Azure CLI has the capability to download those instead.

I know there was an original delay here, and we apologize for that. I'm going to go ahead and close since we haven't seen a response since a couple of ours. Feel free to comment if you disagree!

I think I'm observing the same issue which has been reported originally by @tekgiant with the latest version of cli.
Error:
Encountered an unexpected error.
ArtifactTool.Commands.PipelineArtifacts.PipelineArtifactDownloadException: Artifact with name 'drop' was found, but is of type 'Container'.
Versions:
"azure-cli": "2.10.1",
"azure-cli-command-modules-nspkg": "2.0.3",
"azure-cli-core": "2.10.1",
"azure-cli-nspkg": "3.0.4",
"azure-cli-telemetry": "1.0.4",
"extensions": {
"azure-devops": "0.18.0"
}
To Reproduce:
1: login using az devops login with pat token
2: az pipelines runs artifact download --artifact-name=drop --path=. --run-id=48 --project=projectname
Stack trace:
az pipelines runs artifact download --artifact-name=drop --path=. --run-id=48 --project=projectname
Command group 'pipelines runs artifact' is in preview. It may be changed/removed in a future release.
Encountered an unexpected error.
ArtifactTool.Commands.PipelineArtifacts.PipelineArtifactDownloadException: Artifact with name 'drop' was found, but is of type 'Container'.
at ArtifactTool.Commands.PipelineArtifactDownloadCommand.ExecuteAsync() in d:\a\1\s\src\ArtifactTool\Commands\PipelineArtifacts\PipelineArtifactDownloadCommand.cs:line 44
at ArtifactTool.Commands.CommandBase.OnExecuteAsync() in d:\a\1\s\src\ArtifactTool\Commands\CommandBase.cs:line 105
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.InvokeAsync(MethodInfo method, Object instance, Object[] arguments) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 77
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context) in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 62
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<b__0>d.MoveNext() in C:\projects\commandlineutils\src\CommandLineUtils\Conventions\ExecuteMethodConvention.cs:line 25
--- End of stack trace from previous location where exception was thrown ---
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass126_0.b__0() in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.cs:line 505
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.cs:line 611
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 57
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](CommandLineContext context) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 145
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](IConsole console, String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 130
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](String[] args) in C:\projects\commandlineutils\src\CommandLineUtils\CommandLineApplication.Execute.cs:line 112

Ran up against this problem because the artifact I was trying to download was created using the ##vso[artifact.upload] logging command, which apparently creates a legacy "build" artifact instead of a pipeline artifact...
https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?view=azure-devops&tabs=bash#upload-upload-an-artifact
@elbatk sounds like support for build artifacts was imminent. Did this ever land? If so can you share a pointer to the docs?

I'm seeing the same issue with a build artifact generated with the https://docs.microsoft.com/en-us/azure/devops/pipelines/artifacts/build-artifacts?view=azure-devops&tabs=yaml task. The task stores the output of a dotnet build. When attempting to download via AZ cli, I see the output you can find at this link: https://gist.github.com/jimbo8098/26a72a335f3e75fbdf7e0b83e82007c6
On my desktop, when I az login and check for the pipeline artifacts for the run:
az pipelines runs artifact list --org https://dev.azure.com/<organisation> -p <project> --run-id <runid>
I can see the URLs for each of the runs. If I visit those on my desktop I'm able to retrieve the file via HTTP. The URL provided in each case is similar to:
https://dev.azure.com/<organisation>/<project id?>/_apis/build/builds/<buildid>/artifacts?artifactName=developers_release&api-version=5.0&%24format=zip
I suspect that the format parameter being used during the artifact download on az cli is actually container or something along those lines.

I still see the same behavior as @jimbo8098 . The az pipelines runs artifact download command reports error
Encountered an unexpected error.tooling (ArtifactTool_win10-x64_0.2.267): 99.37% ..
ArtifactTool.Commands.PipelineArtifacts.PipelineArtifactDownloadException: Artifact with name 'drop' was found, but is of type 'Container'.
   at ArtifactTool.Commands.PipelineArtifactDownloadCommand.ExecuteAsync() in D:\a\1\s\src\ArtifactTool\Commands\PipelineArtifacts\PipelineArtifactDownloadCommand.cs:line 43

Are we all doing something wrong?


Azure Defender for SQL on VMs is GA now, but page says FREE DURING Preview

Azure Defender for SQL on VMs is GA now,
https://docs.microsoft.com/en-us/azure/security-center/defender-for-sql-usage
but bullet "2)" on this page has a graphic saying "FREE DURING Preview"
This is very unclear as to its cost.

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

ID: f8e2ed68-8901-d002-a00a-e1d702cc1638
Version Independent ID: 32c32bf8-8492-e8c6-c05f-3b0845b06913
Content: Pricing of Azure Security Center
Content Source: articles/security-center/security-center-pricing.md
Service: security-center
GitHub Login: @memildin
Microsoft Alias: memildin

@stdistef
Thank you for pointing this out! I've assigned this issue to the author who will investigate and update as appropriate.

Hi @stdistef, thanks for the feedback and for taking the time to help us improve the docs.
I've updated both graphics and the changes will go live within 12hrs.
Thanks again!
#please-close


Add Action step to upload code coverage to Codecov

It is required to add code coverage preparation and upload steps into PR verification workflow

Functionality added


feat: zero-based integers in settings

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

This adds a property to integer config manifest entries named zeroBased, which indicates that this is a value that should be stored in the databse as a value starting from 0, but makes more sense to show to the user as a value starting from 1. For example, an ATEM Aux makes more sense to show to the user as AUX 1->X than AUX 0-> Y.

What is the current behavior? (You can also link to an open issue here)

Currently all numerical config values are displayed to the user as whatever is stored in the database, which is usually the value required by the consuming device/blueprint.

What is the new behavior (if this is a feature change)?

Integer config fields for both blueprints and device manifests can be marked as zeroBased, meaning that if the user wants to, for example, map a layer to sisyfos fader 1, they can enter 1 into the UI and the value 0 will be stored in the database. The motivation here is to make the UI match the language used by devices. ie, the ATEM control software uses AUX 1, AUX 2, ME 1, ME 2 etc whereas Sofie currently will display these to the user as AUX 0, AUX 1, ME 0, ME 1.
This is configurable on a per-config basis, so devices like Quantel which use 0-based naming in their 1st-party products/UIs can be presented using the same language in Sofie.

Other information:

This PR also marks the config manifest entry type NUMBER as deprecated in favour of INT and FLOAT. The reason for this is that INT and FLOAT have already been introduced previously, but NUMBER is inconsistently interpreted. If you use a NUMBER in a blueprint manifest, it will be treated as an integer. However, if a NUMBER is used in a device manifest, it will be treated as a float.
Moving to an explicit distinction between INT and FLOAT also means that the zeroBased property can be scoped to just integer values in the future. This would also make merging the various definitions for config manifests easier in the future, once NUMBER is removed. No functionality is changed by marking NUMBER as deprecated.
Status

[X] Code documentation for the relevant parts in the code have been added/updated by the PR author
[X] The functionality has been tested by the PR author
[ ] The functionality has been tested by NRK

Rebased to include this PR against playout gateway https://github.com/nrkno/tv-automation-playout-gateway/pull/75


Changing Orange on Hover Color

Can you please advise how I change the on hover orange over the portfolio images?
Kindest regards
Aaron

The color displayed when hovering over a portfolio image is inherited from the background property of the '.portfolio-box .portfolio-box-caption' class of the css (creative.css). You may wish to become more familiar with your browser's advanced functionality (i.e. Chrome's Dev Tools - https://developer.chrome.com/devtools) to more easily find the css objects being referenced.

Great thankyou havent been using chrome but found where to change the background colour in css thank you.


Bump minimum rust version to 1.43

I'm not sure that it matters?

Note, there's no such thing as a minimum rust version on a cargo toml level. it matters for alacritty, but I'm not sure that it matters for us.

Note, there's no such thing as a minimum rust version on a cargo toml level. it matters for alacritty, but I'm not sure that it matters for us.

It does. Because clients like Alacritty will fail building if the minimum version is bumped without clear communication.

It does. Because clients like Alacritty will fail building if the minimum version is bumped without clear communication.

In which section that change should go?


RFE: way to set up a "install root" within a buildah task

In various contexts, we want to install packages into a sub directory of the root directory, and then use them as the root directory of a subsequent stage. Examples include:

Creating a standard base image from a Containerfile
Creating a bootc base image using rpm-ostree
Creating a Flatpak runtime

In all of these cases, we really don't want to install into a bare directory - this will result in weirdness like redirections to /dev/null going into a actual file. The directory at least needs a skeleton /dev populated and would ideally have /proc and /sys as well.
There are two basic ways that this could be enabled:

Allow running buildah build with --cap-add=all --security-opt=label=disable ; this is sufficient to allow the Containerfile to create its own mount namespace and populate the root directory itself.

Instead specify the install directory as a task parameter, and have the buildah task add something like:
       --device=/dev/null:"$INSTALL_ROOT"/dev/null
       --device=/dev/random:"$INSTALL_ROOT"/dev/random
       --device=/dev/urandom:"$INSTALL_ROOT"/dev/urandom
       --device=/dev/zero:"$INSTALL_ROOT"/dev/zero

The advantage of this is that it is more flexible and satisfies some other needs for nested sandboxing[^1]. It may the only way that actually works for the bootc case [@cgwalters - is that right?]. On the other hand, the second approach is more obviously secure. [^2]
[^1]: To delve some into this, if we were using buildah with user namespaces, then --cap-add=all would not be necessary since the Containerfile could create a nested user namespace where it had the SYS_ADMIN capability, and then create a mount namespace and set things up there. But with --isolation=chroot the run commands are being run in an active chroot, and the Linux kernel disables user namespace creation when a chroot is active, so we have to actually give the SYS_ADMIN capability to the subprocess so it can create a mount namespace
[^2]: --cap-add=all will not compromise overall system security, since we're counting on the pod running the task for that, and buildah --isolation=chroot is already not that strong. And of course, an actual malicious component could specify their own pipeline with its own build steps already. The main weakness it introduces is that it could make it easier for malicious content pulled into the Containerfile during the build process to mess with the build artifacts and build metadata.

Ack, for me that's sufficient evidence that allowing --cap-add=all doesn't make things worse.
From the opposite point of view - have you tested that it does in fact allow you to make flatpak builds work?

From the opposite point of view - have you tested that it does in fact allow you to make flatpak builds work?

Yes, I've tested building a Flatpak runtime with this exact change.

@owtaylor on the Konflux arch call last week, we couldn't reach a conclusion about the security of this proposal.
If you have some more details about how this works, it would be very helpful. Otherwise, we'll need to do more investigation on our side before accepting it.
In particular:

Why does --cap-add=all allow flatpak builds to work? Is it because it allows the buildah container to preserve all the capabilities that the pod had (and nothing more)?
Do you know which specific capabilities are needed?

SYS_ADMIN is the privilege that is needed in particular here. It's needed to create a new mount namespace within the container running the build step.  (I use SYS_ADMIN in my pipeline, all is referenced because the bootc base image creation uses that.
A full security analysis would require an expert. Summarizing what I know:

The primary security boundary is the boundary between the pod running the build step and the system.  This has been advertised since addition of buildah build --isolation=chroot.
As long custom tasks are allowed, the pipeline owner can equally easily set a parameter or use an entirely custom task, so we're not introducing any vulnerability to pipeline owners. The only thing that adding the ability to set this as a parameter does is to make it easier for pipeline owners to create a pipeline that is "vulnerable" to malicious content installed within the container.
If my conclusion about chroot escapes above is accurate, then we have zero protection against malicious content doing arbitrary things within the build step anyways, since it can simply replace a binary that the step uses later (e.g. /usr/bin/cp). I can test this in an actual build pipeline. The eventual improvement is not to use --isolation=chroot
There may be additional defensive steps (make registry credentials unavailable to the build step) that would be useful in any case.

We can add it as a parameter, and then disallow the using of that parameter for all policies, except for those shipping flatpaks. That will let us control the blast radius of improper usage.


[INFINITY-3256] MIT KDC swap in place of Heimdal

This PR replaces the Heimdal implementation of the KDC with the MIT implementation.

[X] Replace KDC server implementation
[ ] Replace client side implementation

The switch doesn't add any benefits as we previously thought it would.


HTTPException always returns 200 [QUESTION]

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/items")
async def read_item(item_id: str):
    if True:
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item": items[item_id]}

Description

Make get request to /items
It returns response data like {detail: str, status_code: 404, headers: null} #currectly
But it's header's status code is 200 WHY NOT 404?
I tried to add an exception handler to HTTPException, but it does not help

Operating System
macOS
Operating System Details
No response
FastAPI Version
latest
Python Version
3.9
Additional Context
No response

I believe  it is working just fine with 404 Not Found in response, please double check this piece of code.
Request (-v for verbose)
curl -v 'http://localhost:8000/items?item_id=123' -H 'accept: application/json'

Response
*   Trying <IP_ADDRESS>:8000...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 8000 (#0)
> GET /items?item_id=123 HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.68.0
> accept: application/json
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< date: Wed, 19 Jan 2022 21:57:17 GMT
< server: uvicorn
< content-length: 27
< content-type: application/json
<
* Connection #0 to host localhost left intact
{"detail":"Item not found"}

@tabekg  did you find the solution? Even I am also face the same issue suddenly. its working till yesterday

What version are you running? It works as expected and gives 404 on version 0.83

Hmm I cannot reproduce (python 3.10.5, fastapi 0.83, uvicorn 18.2)

I am using
fastapi 0.79.0
uvicorn=0.18.3
Python= 3.9.2

I have the same issue (after updating Fastapi today).
fastapi==0.85.1
uvicorn==0.18.3

You returned an HTTPException, rather than raised it.

@JarroVGIT Oh, my bad. I'm removing my comment, since it's not related anymore and was a silly mistake. Thanks for mentioning it.

Thanks @JarroVGIT for the help! 🙇
And thanks for the discussion everyone. ☕


Fatal error message when reactivating plugin

The following fatal error message was thrown when reactivating Git Installer, when a pre-existing configuration was available.
WordPress 6.3 and PHP 8.1.
[16-Aug-2023 13:49:57 UTC] PHP Fatal error: Uncaught TypeError: class@anonymous::fetchFileContent(): Return value must be of type string, null returned in ***WEBROOT***/wp-content/plugins/git-installer/src/Package/provider/Bitbucket.php:195
Stack trace:
#0 ***WEBROOT***/wp-content/plugins/git-installer/src/Package/GitPackages.php(382): class@anonymous->fetchFileContent('https://api.bit...')
#1 ***WEBROOT***/wp-content/plugins/git-installer/src/Package/Updater.php(124): SayHello\GitInstaller\Package\GitPackages->loadNewPackageHeaders('cubetech-wpthem...')
#2 ***WEBROOT***/wp-content/plugins/git-installer/src/Package/Updater.php(180): SayHello\GitInstaller\Package\Updater->getNewPackageHeaders('cubetech-wpthem...')
#3 ***WEBROOT***/wp-includes/class-wp-hook.php(312): SayHello\GitInstaller\Package\Updater->updateThemes(Object(stdClass))
#4 ***WEBROOT***/wp-includes/plugin.php(205): WP_Hook->apply_filters(Object(stdClass), Array)
#5 ***WEBROOT***/wp-includes/option.php(2021): apply_filters('site_transient_...', Object(stdClass), 'update_themes')
#6 ***WEBROOT***/wp-includes/update.php(913): get_site_transient('update_themes')
#7 ***WEBROOT***/wp-admin/menu.php(33): wp_get_update_data()
#8 ***WEBROOT***/wp-admin/admin.php(158): require('/home/tirapapa/...')
#9 ***WEBROOT***/wp-admin/plugins.php(10): require_once('/home/tirapapa/...')
#10 {main}
thrown in ***WEBROOT***/wp-content/plugins/git-installer/src/Package/provider/Bitbucket.php on line 195

The linked repository at Bitbucket, which was set up previously, was renamed and so the URL / slug which is stored in WordPress is no longer current.

Solved with PR #51


New AWS account for RMS

💡 Description

See email from Matt T. (3/4) to create new account for Mia M..

Done, LFT and direct email sent out to Mia.

🎉