Refreshing VM tutorial

Docs Build status updates of commit b97bb60:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:warning:Warning
View
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.
Line 3, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to create virtual machines (VM) with the Azure CLI by completing this tutorial through Azure Cloud Shell or by installing the CLI locally.' is duplicated in 'docs-ref-conceptual/azure-cli-vm-tutorial-1.md(3,14)', 'docs-ref-conceptual/azure-cli-vm-tutorial-2.md(3,14)'.

docs-ref-conceptual/azure-cli-vm-tutorial-2.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.
Line 3, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to create virtual machines (VM) with the Azure CLI by completing this tutorial through Azure Cloud Shell or by installing the CLI locally.' is duplicated in 'docs-ref-conceptual/azure-cli-vm-tutorial-1.md(3,14)', 'docs-ref-conceptual/azure-cli-vm-tutorial-2.md(3,14)'.

docs-ref-conceptual/azure-cli-vm-tutorial-3.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-4.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-5.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-6.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-7.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.
Line 45, Column 1: [Warning: disallowed-heading - See documentation] Heading 'H3 'Feedback'' matches the text of a disallowed Docs template heading.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 66f7c0b:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:warning:Warning
View
Details

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:warning:Warning
View
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.
Line 3, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to create virtual machines (VM) with the Azure CLI by completing this tutorial through Azure Cloud Shell or by installing the CLI locally.' is duplicated in 'docs-ref-conceptual/azure-cli-vm-tutorial-1.md(3,14)', 'docs-ref-conceptual/azure-cli-vm-tutorial-2.md(3,14)'.

docs-ref-conceptual/azure-cli-vm-tutorial-2.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.
Line 3, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to create virtual machines (VM) with the Azure CLI by completing this tutorial through Azure Cloud Shell or by installing the CLI locally.' is duplicated in 'docs-ref-conceptual/azure-cli-vm-tutorial-1.md(3,14)', 'docs-ref-conceptual/azure-cli-vm-tutorial-2.md(3,14)'.

docs-ref-conceptual/azure-cli-vm-tutorial-3.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-4.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-5.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-6.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

docs-ref-conceptual/azure-cli-vm-tutorial-7.md

Line 11, Column 16: [Warning: ms-prod-technology-invalid - See documentation] Invalid value for 'ms.technology': 'azurecli' is not valid with 'ms.prod' value 'azure'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 360d1f2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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

Docs Build status updates of commit 9b418d8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/TOC.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-variables.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-1.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-2.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-3.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-4.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-5.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-6.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-vm-tutorial-7.md
:white_check_mark:Succeeded
View

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


MGMT: Domains Landing Screen

Add a new screen that lists Domains in a paginated table.  Selecting a Domain will navigate to the Services Screen that will only list the services that are part of that domain.

Added this functionality as a new branch mgmt-domain-screen to keep it separate for now from fixes for other issues.   Take a look and see if you agree with this change.

Are you sure you have pushed the branch? Not seeing it :(

Yeah I pushed to my repo.  It is pushed here now.

I think this is fine. Few minors:

Perhaps "Default" as opposed to "default"?
Do you envision adding other operations to the screen for a domain besides Edit? Because that's an extra click right now.
Links to domains themselves don't actually change the mouse icon? When I over, the mouse icon changes to a text-edit type of cursor.
I might give the "filter domains" search field a little bit more presence by making it larger and wider, but that possibly is just me nitpicking.

Otherwise, very good.

For number 2 above, I had planned to do "Details" option that would expand the row and show all the services under that domain.  Problem is the Data Table doesn't like to handle rows that change height, and it didn't look that good.  I mostly left it because I though the screen seemed sparse without it.  I am willing to get rid of it if that is the consensus

Merged


Add project files

Migrate from non AVI repo

Hi @MaksimR-AVISPL  ,
Made the changes you proposed here. Now using a test class and I have updated the versions and scope to match Symphony.
Please review again and let me know if there are any other improvements/optimisations I can make here.
Thanks!


Investigate a way to init lock with custom options during startup

The default Lock can lead to bug with bad UX, more details in #11
The ideal way is: User can provide option to init the Lock object before the package default initLock be executed.
https://github.com/xcv58/meteor-auth0/blob/c542930e635ee6fe53f9602345f829ad8527ceef/auth0-lock/auth0-lock-client.js#L55
But I suspect whether it's doable.
The alternative solution is:
the package itself doesn't init lock at all, the user has to init their own Lock. And warn user if they don't init lock.
More ideas are very welcome!

Fixed in d40c15eb3a0b38f5539b12b63db4f747fef9ef8d


Add LLM settings to chat stage config

[ ] Create and save LLM Mediator though its options
Mediator ID
model_name (as defined by the API, e.g. "text-bison@001")
LLM API service
prefix
suffix
[ ] scrolling menu to select existing Mediator IDs

FYI, added #51 to set up API connection and updated this issue so it's just for specifically adding the in-chat config.


List all /identities/ and filter by trait

The use case for us is to handle subsets of data differently for a group of identities (e.g. for internal tools) while we're rolling out features. Our current workaround is to create a Segment and assign multiple OR conditions (e.g. id=1 OR id=2), then retrieve that Segment and naively transform it into a list.
Would be open to contributing, any particular reason why the identities doesn't have an option to list all / isn't a ModelViewSet? https://github.com/BulletTrainHQ/bullet-train-api/blob/master/src/environments/views.py#L390. The get_or_create also seems a little unusual.

Hey @wasabigeek. I'm not entirely sure what you mean when you say 'filter by trait_id' do you mean by trait_key?
Regarding why the SDKIdentities view class doesn't use a ModelViewSet, the short answer is that, well, it was unnecessary at the time. It's worth noting that this endpoint is only used by the SDKs, not by the admin interface (where we do have the option to list identities for an environment).
I'd be interested to understand a little more about why the segments functionality doesn't quite handle your use case, have you checked out the regex operator perhaps? In what scenario would you need to return multiple identities?

Thanks for the response @matthewelwell! My bad, not filter by trait key, but by a combination of trait and value.
We want to retrieve the list of users that have a certain trait value from BulletTrain. The internal user_id is a trait which we’ll then retrieve from those users.
Something like this:
enabled_users = # filter users from bullet train that have trait == value
User.objects.filter(id__in=enabled_users)

(I haven’t used Django in a while, hope that was correct)

Interesting, and this list of users, are you trying to obtain that for some processing outside of the bullet train functionality? Or are you trying to show / hide a feature based on this information? If it's the latter, I think segments should work for your use case by just using another trait but perhaps I'm misunderstanding here.
Sorry if I'm asking too many questions, I'm just trying to understand the use case a little more.

are you trying to obtain that for some processing outside of the bullet train functionality?

The former, though I'm not too sure what you mean by "outside of the bullet train functionality".
I'll try to illustrate (not exactly our use case):

each BT user has a trait user_id which maps to a User in our SaaS
we're progressively rolling out an upcoming change that will affect both user-facing features and background processing across users, and were hoping to setup BT as such:

Users that we want to rollout to will have a trait e.g. show_new_changes
These Users will then be in a BT Segment, via a rule show_new_changes == true
we create a BT Feature with the above segment

for user-facing features, we can check do a feature_enabled? check using the User's identifiers against the BT Feature, since it will be a single user anyway
on the backend, there are background batch processes that we want to handle differently for User data with/without the new changes e.g. ignore data from Users with show_new_changes

It seemed like the only way to achieve the last point with our current setup was to run feature_enabled? for every single User in our DB every time the background process is run, which is very wasteful.
Is there another setup you would recommend?

Hi - We'll add this to the backlog - happy to take pull requests too!

Thanks @dabeeeenster, do you have a recommended way of approaching this? In my mind we could do either /identities/?trait_id=1&trait_value=xyz or /identities/?trait=value

Hey @wasabigeek, apologies for the delay in getting back to you and thanks for explaining the use case, it certainly makes sense.
The problem with either of the above is that we would then be returning a different structure of data based on the query parameters provided (e.g. a list / single resource), which I don't particularly like. Now, I'd hasten to add that the above is probably the correct way to do it and the code we have at the moment is probably, well, less correct but it's where we're at and I don't particularly want to go changing the API interface at this stage.
So, based on that, I think we'll need to either:
(a) Develop a totally new endpoint that lists the identities for an environment based on the API key and can be filtered on trait_key and trait_value
(b) Wait until we release the functionality to obtain API keys for the admin API that already has this functionality and we can add the filtering on traits there too. This would, however, mean a separate integration for your Backend application as we don't currently plan on including that functionality in our clients.
Either way, I would suggest that the parameters would need to be trait_key and trait_value to fit the existing interface. And we would want to add some validation to ensure that if trait_value is provided then trait_key is provided as well.
Hopefully that makes sense?


Proof that redirect can be handled. Considering a better approach

Codecov Report

Merging #150 into master will decrease coverage by 0.06%.
The diff coverage is 29.41%.

@@            Coverage Diff             @@
##           master     #150      +/-   ##
==========================================
- Coverage   62.63%   62.57%   -0.07%
==========================================
  Files         100      100
  Lines        9504     9520      +16
==========================================
+ Hits         5953     5957       +4
- Misses       2911     2922      +11
- Partials      640      641       +1

Impacted Files
Coverage Δ

wrp/wrphttp/fanout.go
91.66% <29.41%> (-8.34%)
:arrow_down:

Continue to review full report at Codecov.

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

Closing this PR as it is not an approach we want to take.


AWS App Runner issue due to mismatching arch when building docker image in Apple silicon

When running yarn ops deploy -a all, the App Runner service for the API fails with the following logs:
App Runner event logs
 [AppRunner] Deployment with ID : x started. Triggering event : SERVICE_CREATE
 [AppRunner] Deployment Artifact: [Repo Type: ECR], [Image URL: x.dkr.ecr.us-west-2.amazonaws.com/letsgo-main-api], [Image Tag: 60f617e3ad194880]
 [AppRunner] Pulling image x.dkr.ecr.us-west-2.amazonaws.com/letsgo-main-api from ECR repository.
 [AppRunner] Successfully pulled your application image from ECR.
 [AppRunner] Provisioning instances and deploying image for publicly accessible service.
 [AppRunner] Performing health check on protocol `HTTP` [Path: '/v1/health'], [Port: '8080'].
 [AppRunner] Your application stopped or failed to start. See logs for more information.  Container exit code: 1
 [AppRunner] Deployment with ID : x failed.

Application logs
exec /usr/local/bin/docker-entrypoint.sh: exec format error

I'm running letsgo on an Macbook Pro M3 Max, and according to this SO post, it's related to mismatching architecture used to build the docker image vs the one where the docker image will run. Here's a more in-depth explanation.

Besides changing the FROM in the Dockerfile, it's possible to use a environment variable, export DOCKER_DEFAULT_PLATFORM=linux/amd64.

After changing the first line of api/Dockerfile to FROM --platform=linux/amd64 node:18-alpine AS base, the deployment of the image to App Runner is successful.

The line above should be used in all Dockerfile copies in api, web, and worker.

Good catch, fix coming.


Duet Display Binary Update

Update for http://www.duetdisplay.com/

It seems that your email is not set correctly and doesn't point to your GitHub account (for reference "Setting your email in Git").

Recently configured my git user config and amend my commit with correct email. Thanks.

Thank you for the contribution. It was merged directly as 331e8a8c854a91770a1093ab434b8f476312a95d to keep commit history cleaner. Your contribution is still credited to you.


Can't find "kcInputGroup" classKey, "showPassword"  and "hidePassword" messageKey to implement the password visibility toggle from KC23

Hello, I updated the keycloakify version of my project to the latest version (9.1.8)
In the relase note of the 9.0.0 version,  It is written that the version supports version 23 of keycloak
Should I be able to find the messageKey "showPassword" and "hidePassword" in the keycloakify i18n types
as well as the classKey "kcInputGroup" that keycloak provides in version 23?
Thanks in advance, I may have missed something

I just updated Keycloakify. It now uses the messages from Keycloak 23.0.4.
Thanks for the heads up!

Thanks for this update, what about the ClassKey type? Is it possible to add "kcInputGroup" in the type definition? and to ensure that we can retrieve "kcInputGroup" with the getClassName function of useGetClassName? Thank you for your quick responses.

Keycloakify essentially consists of two main components: the build tool and a library of React components, which is a direct translation of Keycloak's built-in default theme. The React component library serves primarily as a foundation, providing users with a base rather than starting from zero. It's simpler to incrementally modify an existing, functional setup than to develop a theme from scratch.
The point I'm making is that the library's offerings do not limit you. You have the freedom to implement any changes you desire, applying any classes as you see fit.
That said, if you wish to contribute by submitting a pull request for these two files—to add additional default classes that weren't included when I initially began porting the base theme to React—you are more than welcome:
https://github.com/keycloakify/keycloakify/blob/main/src/login/TemplateProps.ts
https://github.com/keycloakify/keycloakify/blob/main/src/login/lib/useGetClassName.ts
I will promptly merge and release a new version.

PR is created, Thank you very much !
https://github.com/keycloakify/keycloakify/pull/495


Dependency vulnerabilites / Lerna / cssnano

There are currently two unfixable vulnerabilities that Dependabot has reported:

Regular expression denial of service in glob-parent

This comes from Lerna. Lerna is unmaintained. It is not clear when or if it will be picked up again. See this thread for details: https://github.com/lerna/lerna/issues/2703

Inefficient Regular Expression Complexity in nth-check

I think this is coming from a combination of outdated cssnano version 4.x which pins itself to postcss 7.x
We should try and upgrade to cssnano 5 in the first instance.

I have updated cssnano in the root to 5.x and had no issues with the build, however there are some things to validate:

Looks like cssnano now orders properties in selectors. This shouldn't cause any issues, unless there are some selectors with duplicate properties. That check could probably be automated.
It also orders selectors themselves by specificity. This has more potential for disruption and will probably need some manual checks.

There is now Lerna-lite. Something to chew on https://github.com/ghiscoding/lerna-lite

@omidantilong this isn't an area I know much about but I've also heard people mention Rush (https://rushjs.io/pages/intro/welcome/) as a monorepos tool, it's backed by Microsoft.
There's also NX and Turborepo but I think they're more just for managing dependencies and concurrent builds/watches, and they don't have the publishing aspect that Lerna had/has.

Interesting! Will take a look at rush. Seems like there's a few options in this space now since people have cottoned onto Lerna being unmaintained. Thanks for the tip :)
I will find some time this week to test the cssnano changes properly.

You were correct Phil, we had a proper look at Nx and its more to do with managing workflows/pipelines inside monorepos, compared to Lerna which handles versioning and publishing :)
But! Things have progressed a fair bit in the last few months -- Nx have taken stewardship of Lerna, which is great to see. Based on this and the various patterns we've seen in IBM's Carbon repo, we think the most sensible option is going to be to stick with Lerna for the foreseeable future. Better the devil you know and all that.
There is a separate conversation to be had about the structure of the repo as a whole. I'll start a new thread for that.


Table search does't work in windows 7

Doesn't work ctrl+f in windows 7, dbeaver 3.5.2.
In linux version when I press ctrl+f I can see a searching input for a table, but in the Windows it doesn't work.

Can't reproduce.
If you are searching in a query results then focus has to be in results grid.

I do it in the window "Database Navigator" when try to find a table by name...

This feature (ctrl+f in table/tree control) is a native feature of Linux windows manager. Windows doesn't have it. In Windows you can start typing table name and it will position to an item with matching name.
Also you can open table list (double click on "Tables" folder") and press ctrl+f there.

Sorry...


 Any plans making it compatible with the 4.0 version of the Bot API or are the changes so minor, that the library doesn't need to be updated?

I've been thinking long and hard about this for a few days. My feeling is that I'd rather move on to other projects than spending more time on telepot. The original intent of telepot was purely educational. Over time, it has grown to greatly exceed classroom needs. I appreciate all the supports, both from the Telegram platform and from the user community. Not talented enough to pursue new interests while maintaining old ones at the same time, I think I have to declare the end of enhancements on telepot. (A notice will be put up on the front page shortly).
For one last time, thanks everyone for using telepot :blush:

@nickoala please let others maintain the project if you are not able to do it since it the library helps alot of users.Thanks!

Dear @nickoala,
I do like telepot, use it with my Raspberry Pis and it would be sad if the project couldn't be carried on. I would like to ask you kindly to consider handing over the project to other ppl and maybe describe roughly what you did when the Bot API changed. Thank you!
In case this helps I would apply for the job as project owner till the community decides otherwise. To give you an idea: I am a senior software developer  with a degree in Computer Science and among my main subjects are Linux/Unix, Perl, PHP, Python, SQL, C, C++, Raspberry Pi, ESP8266.
Regards,
Uwe Herting (Germany)

Thanks to @uherting. I am happy to hand off to anyone who is willing.
For the Github repo, I guess you can just fork it.
For PYPI (you have to be able to upload telepot there for people to download), I need some investigation.
For readthedoc (telepot documentations), I also need some investigation.
I can give you some pointers on how to update telepot for the latest Bot API 4.0. I can also brief you on how to use all the test scripts (those that I run before every release to make sure everything is ok).
I don't have time right now to give all those info at once. I will give them bit by bit, day by day, using this space. Stay tone.
Thanks again :blush:

Let me brief on anyone who wants to make changes to accommodate the latest Bot API (4.0). I start with more trivial ones, then move on to harder ones.

Telegram says:

Added the field thumb to the Audio object to contain the thumbnail of the album cover to which the
music file belongs.

Key phrase is "Added the field thumb to the Audio object". In telepot, the habit is to represent API objects using Python dictionaries, so a new field in an object should not affect us. However, to facilitate accessing a field using . notation, there is a way to convert a dictionary into a namedtuple. As a result, every API object has a corresponding namedtuple. When a field is added to an object, we need to make a corresponding change to that namedtuple. The file is namedtuple.py. The original definition of Audio is:
# incoming
Audio = _create_class('Audio', [
            'file_id',
            'duration',
            'performer',
            'title',
            'mime_type',
            'file_size'
        ])

With the addition of a thumb field of the type PhotoSize, it should be modified as:
# incoming
Audio = _create_class('Audio', [
            'file_id',
            'duration',
            'performer',
            'title',
            'mime_type',
            'file_size',
            _Field('thumb', constructor=PhotoSize),
        ])

The thumb field looks more complicated than others because its type is not primitive (int, float, string, etc) and we need to tell it to interpret the dictionary in that place into another namedtuple. The "constructor" in this case is just the name of the target namedtuple, and can be considered a parsing hint.
Also note the comment above the namedtuple definition. They can be:

incoming: meaning we only receive the object from Telegram servers, but never send it out
outgoing: meaning we only send it out, but never receive it
or both (rarely)

This distinction is important because:

for incoming namedtuples, we must make sure all non-primitive fields be given a "constructor" like above. Otherwise, that field would remain a dictionary, which defeats the purpose of using namedtuples. This is not needed for outgoing namedtuples because fields are supplied by user, so no parsing hint is required,

for outgoing namedtuples, some fields have default values. For example, InlineQueryResultArticle's type field is default to article, as required by Bot API. In contrast, no field of any incoming namedtuples has default values.

Telegram says:

Added the field animation to the Message object. For backward compatibility, when this field is set, the document field will be also set.

Key phrase: Added the field animation to the Message object. Points to consider:

Message is an incoming namedtuple
the field animation is of the type Animation

Changes should be similar. I leave that to the reader as an exercise.

Telegram says:

Added support for Foursquare venues: added the new field foursquare_type to the objects Venue, InlineQueryResultVenue and InputVenueMessageContent, and the parameter foursquare_type to the sendVenue method.

Points to consider:

The field foursquare_type is of the type String. No parsing hint (if incoming) is needed.
Venue is incoming
InlineQueryResultVenue and InputVenueMessageContent are outgoing

I also leave the changes as an exercise.
As for the method sendVenue, I will delay the discussion until later, lumping it together with other method changes.

Telegram says:

Added vCard support when sharing contacts: added the field vcard to the objects Contact, InlineQueryResultContact, InputContactMessageContent and the method sendContact.

The field vcard is of the type String.
Contact is incoming
InlineQueryResultContact and InputContactMessageContent are outgoing

I will delay the discussion of the method sendContact similarly.

Telegram says:

Added support for editing the media content of messages: added the method editMessageMedia and new types InputMediaAnimation, InputMediaAudio, and InputMediaDocument.

Finally, we have to create new types of namedtuple here.

InputMediaAnimation, InputMediaAudio, and InputMediaDocument are all outgoing

Luckily, there are two InputMedia* siblings in existence already: InputMediaPhoto and InputMediaVideo. Find them, and use them as templates for the new members.
I will delay the discussion of the method editMessageMedia similarly.

That's it for today. Good luck.

Hello @nickoala,
thanks a lot for the first hints!
My user name for both sites is uherting like here on github.

Tonight, let's see how to change methods.

Telegram says:

Added support for Foursquare venues: added ... the parameter foursquare_type to the sendVenue method.

Added vCard support when sharing contacts: added the field vcard to ... the method sendContact.

The two methods, sendVenue and sendContact, are adjacent in the file __init__.py, within the Bot class. Let's look at them together. Here are the original:
def sendVenue(self, chat_id, latitude, longitude, title, address,
              foursquare_id=None,
              disable_notification=None,
              reply_to_message_id=None,
              reply_markup=None):
    """ See: https://core.telegram.org/bots/api#sendvenue """
    p = _strip(locals())
    return self._api_request('sendVenue', _rectify(p))

def sendContact(self, chat_id, phone_number, first_name,
                last_name=None,
                disable_notification=None,
                reply_to_message_id=None,
                reply_markup=None):
    """ See: https://core.telegram.org/bots/api#sendcontact """
    p = _strip(locals())
    return self._api_request('sendContact', _rectify(p))

Changes are straight-forward:
def sendVenue(self, chat_id, latitude, longitude, title, address,
              foursquare_id=None,
              foursquare_type=None,
              disable_notification=None,
              reply_to_message_id=None,
              reply_markup=None):
    """ See: https://core.telegram.org/bots/api#sendvenue """
    p = _strip(locals())
    return self._api_request('sendVenue', _rectify(p))

def sendContact(self, chat_id, phone_number, first_name,
                last_name=None,
                vcard=None,
                disable_notification=None,
                reply_to_message_id=None,
                reply_markup=None):
    """ See: https://core.telegram.org/bots/api#sendcontact """
    p = _strip(locals())
    return self._api_request('sendContact', _rectify(p))

Both are optional parameters, so default to None. There's nothing to change in the method body. _strip(locals()) puts all method parameters other than self into a dict. _rectify(p) removes all None values before passing them to self._api_request().

Telegram says:

Added the method sendAnimation, which can be used instead of sendDocument to send animations, specifying their duration, width and height.

Luckily, we have a lot of send* methods to copy from, e.g. sendDocument, sendVideo, sendVoice, etc. I use sendVideo as an example:
def sendVideo(self, chat_id, video,
              duration=None,
              width=None,
              height=None,
              caption=None,
              parse_mode=None,
              supports_streaming=None,
              disable_notification=None,
              reply_to_message_id=None,
              reply_markup=None):
    """
    See: https://core.telegram.org/bots/api#sendvideo

    :param video: Same as ``photo`` in :meth:`telepot.Bot.sendPhoto`
    """
    p = _strip(locals(), more=['video'])
    return self._api_request_with_file('sendVideo', _rectify(p), 'video', video)

Making sendAnimation is just a matter of fixing names and matching method parameters with Telegram docs:
def sendAnimation(self, chat_id, animation,
                  duration=None,
                  width=None,
                  height=None,
                  caption=None,
                  parse_mode=None,
                  disable_notification=None,
                  reply_to_message_id=None,
                  reply_markup=None):
    """
    See: https://core.telegram.org/bots/api#sendanimation

    :param video: Same as ``photo`` in :meth:`telepot.Bot.sendPhoto`
    """
    p = _strip(locals(), more=['animation'])
    return self._api_request_with_file('sendAnimation', _rectify(p), 'animation', animation)

Sending files takes some special handling. That's why I have to _strip the animation and pass it to self._api_request_with_file() outside of the rectified dict.
Unfortunately, I wasn't aware of the "thumb" parameter, which must have been added at some earlier date. To take care of it, we have to modify _api_request_with_file() to handle one more file to be uploaded.

My time is up tonight. I will continue tomorrow, or the day after tomorrow.

@uherting, I have added you as a maintainer at pypi.org and readthedocs.org. We'll see how to go from here.

Let's continue ...
Last night was the first time I am aware of the thumb parameter. Its addition requires me to cram one more file to the call to _api_request_with_file(), whose original version is this:
def _api_request_with_file(self, method, params, file_key, file_value, **kwargs):
    if _isstring(file_value):
        params[file_key] = file_value
        return self._api_request(method, _rectify(params), **kwargs)
    else:
        files = {file_key: file_value}
        return self._api_request(method, _rectify(params), files, **kwargs)

Bot API allows file_value to be either a string (serving as a file id which refers to an existing file on Telegram servers) or a local file to be uploaded. That's why I have to distinguish between file_value being a string or not above. If it is a string, merge it to params. If not a string, I assume it's a file and pass it separately. Note that variable files is a dict.
Now, I want _api_request_with_file() to be able to handle multiple files. I would squeeze file_key and file_value into one parameter of dict:
def _api_request_with_file(self, method, params, files, **kwargs):
    params.update({
        k:v for k,v in files.items() if _isstring(v) })

    files = {
        k:v for k,v in files.items() if v is not None and not _isstring(v) }

    return self._api_request(method, _rectify(params), files, **kwargs)

I hate sprinkling trivial comments among code, so I explain here:

params.update({ k:v for k,v in files.items() if _isstring(v) }) basically extracts all string values from files and merges them with params
files = { k:v for k,v in files.items() if v is not None and not _isstring(v) } basically extracts all non-null non-string values from files and reassigns them to the variable files

With this change to _api_request_with_file() and the addition of the thumb parameter, sendAnimation should looks like this:
def sendAnimation(self, chat_id, animation,
                  duration=None,
                  width=None,
                  height=None,
                  thumb=None,
                  caption=None,
                  parse_mode=None,
                  disable_notification=None,
                  reply_to_message_id=None,
                  reply_markup=None):
    """
    See: https://core.telegram.org/bots/api#sendanimation

    :param video: Same as ``photo`` in :meth:`telepot.Bot.sendPhoto`
    """
    p = _strip(locals(), more=['animation', 'thumb'])
    return self._api_request_with_file('sendAnimation',
                                       _rectify(p),
                                       {'animation': animation, 'thumb': thumb})

If you don't mind being a bit venturesome, let me suggest one more change regarding the function _strip(). Instead of simply removing certain parameters from locals(), I want it to package them into a separate dict, so I can pass it directly.
Originally:
def _strip(params, more=[]):
    return {key: value for key,value in params.items() if key not in ['self']+more}

I would change it to:
def _strip(params, files=[]):
    return (
        { k:v for k,v in params.items() if k not in ['self']+files },
        { k:v for k,v in params.items() if k in files })

Then, sendAnimation becomes:
def sendAnimation(self, chat_id, animation,
                  duration=None,
                  width=None,
                  height=None,
                  thumb=None,
                  caption=None,
                  parse_mode=None,
                  disable_notification=None,
                  reply_to_message_id=None,
                  reply_markup=None):
    """
    See: https://core.telegram.org/bots/api#sendanimation

    :param video: Same as ``photo`` in :meth:`telepot.Bot.sendPhoto`
    """
    p,f = _strip(locals(), files=['animation', 'thumb'])
    return self._api_request_with_file('sendAnimation', _rectify(p), _rectify(f))

Remember to add thumb parameter to all other relevant methods. For example, sendVideo should look like:
def sendVideo(self, chat_id, video,
              duration=None,
              width=None,
              height=None,
              thumb=None,
              caption=None,
              parse_mode=None,
              supports_streaming=None,
              disable_notification=None,
              reply_to_message_id=None,
              reply_markup=None):
    """
    See: https://core.telegram.org/bots/api#sendvideo

    :param video: Same as ``photo`` in :meth:`telepot.Bot.sendPhoto`
    """
    p,f = _strip(locals(), files=['video', 'thumb'])
    return self._api_request_with_file('sendVideo', _rectify(p), _rectify(f))

Because of the change to _strip's return value, all calls to it should be re-examined and changed to:
p,f = _strip(locals())

Please also note that none of the above has been tested, although I am confident that they should not be far off.
There are more changes to be made. Let's continue some time later. Good luck.

After one night of sleeping, I realize some bugs and shortcomings in last night's changes. I am going to fix them today.

The function _rectify(dict) serves two purposes:

If any values is a list, dict, or tuple, _rectify flattens it into a JSON-encoded string.

It filters out null values.

I always use _rectify to clean/normalize a dict before passing it to _api_request_with_file(). However, in last night's changes, I made the mistake of doing _rectify(f), using _rectify to clean the files dict.
The values in f normally are either strings (file id on Telegram servers) or file objects (local files to be uploaded). But they could also be tuples, to include the filename in addition to the file object. When _rectify sees a tuple, it flattens it into a JSON-encoded string, which is wrong in this case. I only want it to filter out nulls.
Those changes I proposed yesterday now become this:
def _split(params, files=[]):
    return (
        { k:v for k,v in params.items() if k not in ['self']+files },
        { k:v for k,v in params.items() if k in files })

def _nonull(params):
    return { k:v for k,v in params.items() if v is not None }

def _rectify(params):
    #
    # no change
    #

class Bot(_BotBase):
    def _api_request(self, method, params=None, files=None, **kwargs):
        #
        # no change
        #

    def _api_request_with_file(self, method, params, files, **kwargs):
        params.update({
            k:v for k,v in files.items() if _isstring(v) })

        files = {
            k:v for k,v in files.items() if not _isstring(v) }

        return self._api_request(method, params, files, **kwargs)

    def sendMessage( ... ):
        p,f = _split(locals())
        return self._api_request('sendMessage', _rectify(p))

    def sendAnimation( ... ):
        p,f = _split(locals(), files=['animation', 'thumb'])
        return self._api_request_with_file('sendAnimation', _rectify(p), _nonull(f))

_strip is renamed to _split, meaning to split parameters into regular ones and file ones.

Add a function _nonull() whose only job is to remove null values from a dict.

_api_request_with_file() assumes the supplied dicts are always cleaned and normalized. No need to worry about null values inside.

sendMessage() demonstrates how to implement a method with no file attached.

sendAnimation() demonstrates how to implement a method with files attached potentially.

With the repeated applications of _rectify() and _nonull(), you may prefer to hide them in one more level of function call, or even hide them in _api_request() and _api_request_with_file(). I think it's just a matter of taste and style. I prefer the transparency, to write and see them explicitly, to remind myself that parameters should be cleaned and normalized before use.

Ok. That's it for today. We still haven't finished the job. I will continue some time later.

@nickoala , after careful consideration I have to step back from taking over the maintance of telepot. I am sorry to say this. Unforseen tasks popped up out of the blue and as my time is limited I had to set priorities,
In my pull request I added files which are a cut&paste from your description here. I also changed namedtuple.py and documented the status in the README files.

@uherting, it's ok. Take it easy. You are always welcome back when you have time. I will leave telepot as it is, because I don't like to introduce untested changes. Whenever you decide to come back, we can do it again.


"Good First Bug" documentation

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[x] New documentation
[ ] Correction or update

Details

Originally, https://bugzilla.mozilla.org/show_bug.cgi?id=1529434
The "good-first-bug" keyword in Bugzilla is intended for bugs which are good first contributions for people, and have support from contributors (and staff).
There's a Mozilla Wiki entry on how to work on a good-first-bug, but not one on what we need to do to have a bug be a good-first-bug.
I don't think we have good documentation for this and the main thing I've seen on this is a post by David Humphrey.
This would be some great content for our Developer Documentation on MDN.
For now I'm going to link the wiki to the keyword description so I have something for people to follow.

Hi @emceeaich ! Eventually we want to get non-web platform docs moved off MDN, but with our current priorities I don't see that happening any time soon. Therefore, I'd recommend that such a piece of documentation get put the Mozilla developer guide somewhere, so at least such docs are kept together.
However, this bug will be given a P5 priority. It is not web platform docs, so our team will not work on it. But we will accept new docs from other contributors.

Closing. We're not planning to work on this.


Error in create-react-app while running nightly versions of Node

I'm running above node version 6, but creating the site fails with error:

You are using Node v10.0.0-nightly201803206a958d2bf8 so the project will be bootstrapped with an old unsupported version of tools.
Please update to Node 6 or higher for a better, fully supported experience.
...
You are running Node v10.0.0-nightly201803206a958d2bf8.
Create React App requires Node >=4 or higher.
Please update your version of Node.

This is probably related to the funny way semver treats comparisons with prerelease versions, but I think the scaffolding should still be supported.

This is definitely a bug. We don't necessarily want to encourage running pre-release versions of node but we also shouldn't block people from testing Create React App with them.
Do you happen to know if there's an issue related to this problem in node-semver?

@iansu I was just surmising the line of code might have something like ^givenVersion or ~givenVersion which in pre-release builds only include 10.0.0-alpha-1 or 2 ... but counts the pre-release lower than any number even when it's higher. so it would be lower than 6.0.0

I'm happy to work on this 😃

For this setup yarn package must be not installed globally, cra uses npm as fallback then.
I have not tested this workaround but it should be possible to pass the version string check with re-formatting by using "split()" with hyphen-minus "-" and then returning only the first array entry.
https://github.com/salincakli/create-react-app/commit/64279c14cd3eb107960ce8d82d659d1db0d65761#diff-f9867c1e09ced1328f2ccdac4afac4a5R555

Hi @nuttt, are you willing to submit a PR?

@Timer Hi, sorry for late reply. I'm kinda busy right now 😢. Please don't wait for me.

I'm also having this bug. In my localhost I have:
<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=8".````

And in my CI:

```error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version "^6.14.0 || ^8.10.0 || >=9.10.0".

Do I have to run yarn --ignore-engines in order to upgrade to v2?

@albert-olive I don't think you specified your Node version. So it's a bit difficult to say.

I was editing my question before your comment @gaearon :D

If it doesn't work with 8.x that sounds like a Yarn bug.

Ok, I'll try and I'll tell you. Thanks Dan.

Hi again @gaearon,
I added the engines in my package.son and now I have the same error but saying that my current project expects that node version.
"engines": {
    "node": ">=10.0.0",
    "npm": ">=6.0.0"
  }

...
<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=10.0.0".
Thanks again.


Add ReSharper 2017.1 support

Hi,
could you please add support for the new ReSharper 2017.1.3?
Thank you!

Thanks for your interest in this plugin :)
It appeared that JetBrains has already fixed that issue (tested with R# 2017.1.3), so you shouldn't suffer from it more. I've just updated the Readme file to indicate that.
If you still observe any issues - please report them to R# team.


Make a PyPI org for attrs

I finally got to testing PyPI orgs and I liked them for grouping things. (When Ee announced them, I applied for a Company-type and that still doesn't work so it blocked me for a while).
I think, attrs needs it's own org too. Here's where to apply: https://pypi.org/manage/organizations/ — just make sure to select the Community type.

jftr


ISPN-7088 Interceptors should not access TransactionManager

https://issues.jboss.org/browse/ISPN-7088
Should fix the PessimisticTxPartitionAndMergeDuringRuntimeTest failures.

Note, it's still there: http://ci.infinispan.org/viewLog.html?buildId=43271&buildTypeId=bt9

@slaskawi I would merge this PR anyway, I've already ran into a failure that is caused by touching TM directly.

@rvansa @danberindei Ok, the code looks fine, so let's give it a go.

Integrated, thanks @danberindei

@slaskawi I haven't seen the failures locally yet, but the stack traces look very similar to https://issues.jboss.org/browse/ISPN-6977. Now I just need to find out what's causing the functional test failures in the #4538 build...


Allow Formating and Mounting ext4/3/2 File System.

Issue ⛔
I wanted to copy and transfer some information to my WSL setup from an external drive, then I realize that I was unable to find the mount point "/dev/sdx", and partitions too from my disk with another filesystem that is not NTFS.
using the command df and sudo fdisk -l
My external drive is absent
df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sdb       263174212  2909868 246826188   2% /
tmpfs            3199680        0   3199680   0% /mnt/wsl
tools          349677564 56094040 293583524  17% /init
none             3197272        0   3197272   0% /dev
none             3199680        8   3199672   1% /run
none             3199680        0   3199680   0% /run/lock
none             3199680        0   3199680   0% /run/shm
none             3199680        0   3199680   0% /run/user
tmpfs            3199680        0   3199680   0% /sys/fs/cgroup
C:\            349677564 56094040 293583524  17% /mnt/c <-- SSD System Boot and Windows Setup Drive
D:\            976758780  7608776 969150004   1% /mnt/d  <-- HDD on NTFS
---------------------------------------------------------------
response from
sudo fdisk -l
# returns 16 ram disk and my internal storage drive, external drive absent
Disk /dev/sda: 256 GiB,<PHONE_NUMBER>44 bytes, 536870912 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/sdb: 256 GiB,<PHONE_NUMBER>44 bytes, 536870912 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Desirable Feature ✔
Allow WSL to display external storage hardware at /dev/
as example  /dev/sda1, /dev/sdc1, /dev/sdb1
Allow to Mount and Format drives using any Linux filesystems.
From my perspective using Linux filesystem makes our software with more performance than using NTFS into WSL,
Thanks so much, team for the effort and developing of marvelous software. 👏
Best regards.
Yitzhak.

/dupe #689


Card component

It will be awesome if a card component could be available.
https://material.io/guidelines/components/cards.html
Cheers

Card component will coming soon in next version. Thx~
#3

Thank you ;) Is it possible to know when it is going to be available? I really would like to try out this framework but I need a card component

Maybe next week. It will be published in v.1.3.0.
Can i know what kinds of card component you prefer to use? Such like Material Card

Yes Material Card would be awesome!


objectnav_hm3d config environment takes forever to load

Habitat-Lab and Habitat-Sim versions
Habitat-Lab: 0.2.3
Habitat-Sim: 0.2.3
Habitat is under active development, and we advise users to restrict themselves to stable releases. Are you using the latest release versions of Habitat-Lab and Habitat-Sim? Your question may already be addressed in the latest versions. We may also not be able to help with problems in earlier versions because they sometimes lack the more verbose logging needed for debugging.
Master branch contains 'bleeding edge' code and should be used at your own risk.
Docs and Tutorials
Did you read the docs? https://aihabitat.org/docs/habitat-lab/ Yes
Did you check out the tutorials? https://aihabitat.org/tutorial/2020/ Yes
Perhaps your question is answered there. If not, carry on!
❓ Questions and Help
When running the following code:
config = habitat.get_config(
    config_path="benchmark/nav/objectnav/objectnav_hm3d.yaml",
    overrides=[
        "habitat.environment.max_episode_steps=10",
        "habitat.environment.iterator_options.shuffle=False",
    ],
)

try:
    env.close()  # type: ignore[has-type]
except NameError:
    pass

env = habitat.Env(config=config)

I see the following 2 messages but after that the program just keeps loading in the colab and nothing happens:
2023-05-16 02:53:26,140 Initializing dataset ObjectNav-v1
2023-05-16 02:55:34,135 initializing sim Sim-v0
What might be causing this issue?

Is this solved?


Port Scanner Form Component in React

As we've built many features to justify the one-liner description of this project i.e. a go-to networking tool, now it's time to revamp the existing UI.
Add a new component PortScannerForm.js which will take inputs for:

host to scan
lower range of ports
upper range of ports

This component should also have a button called SCAN. The scanning for open ports will start on clicking this button. Refer the image attached below for design
As of now, on clicking SCAN button, the values in the input fields should be displayed in console
P.S. : The basic frontend on react is available on feature/react branch in the folder network-scanner. Add your components in the same branch. Do not make any changes in App.js / index.js.

I would like to work on this. Please assign this to me.

can you please assign it to me?

@ishika1727 I have merged the PR. You can assign this issue with a story point of not more than 3 days.

@devRawnie Please go ahead with the issue and create a PR in feature/react branch by Monday EOD.
Feel free to contact me anytime

Sure thing. I am on it

Can I use reactstrap library to style the input fields?

@devRawnie yes, please go ahead, but try to keep it as simple as possible as we will be merging all components together after they have been made.

How do I add reviewers in the pull request, I couldn't figure it out while creating the pull request.

I ll add the reviewers, no issues

@devRawnie Merged your PR into feature/react branch. Amazing work. Please go through the other open issues as well and contribute more to this project


The command bar disappears in the scrapbook after copying longer commands to it

OS: Win 10
Build Version: 20211002.1
Regression: Not a regression
Repro steps:

Create a Mongo DB account -> Create a database.
Create a new Mongo Scrapbook and connect the database.
Copy the following longer commands in the scrapbook.

db.lotsofdata.drop();
db.lotsofdata.insertMany([{"a": "xxxxxxxxxxxxxxxxxxx"},
{"a": "xxxxxxxxxxxxxxxxxxx"},
{"b": "xxxxxxxxxxxxxxxxxxx"},
{"c": "xxxxxxxxxxxxxxxxxxx"},
{"d": "xxxxxxxxxxxxxxxxxxx"},
{"e": "xxxxxxxxxxxxxxxxxxx"},
{"f": "xxxxxxxxxxxxxxxxxxx"},
{"g": "xxxxxxxxxxxxxxxxxxx"},
{"h": "xxxxxxxxxxxxxxxxxxx"},
{"i": "xxxxxxxxxxxxxxxxxxx"},
{"j": "xxxxxxxxxxxxxxxxxxx"},
{"k": "xxxxxxxxxxxxxxxxxxx"},
{"l": "xxxxxxxxxxxxxxxxxxx"},
{"m": "xxxxxxxxxxxxxxxxxxx"},
{"n": "xxxxxxxxxxxxxxxxxxx"},
{"o": "xxxxxxxxxxxxxxxxxxx"},
{"p": "xxxxxxxxxxxxxxxxxxx"},
{"q": "xxxxxxxxxxxxxxxxxxx"},
{"r": "xxxxxxxxxxxxxxxxxxx"},
{"s": "xxxxxxxxxxxxxxxxxxx"},
{"t": "xxxxxxxxxxxxxxxxxxx"},
{"u": "xxxxxxxxxxxxxxxxxxx"},
{"v": "xxxxxxxxxxxxxxxxxxx"},
{"w": "xxxxxxxxxxxxxxxxxxx"},
{"x": "xxxxxxxxxxxxxxxxxxx"},
{"y": "xxxxxxxxxxxxxxxxxxx"},
{"z": "xxxxxxxxxxxxxxxxxxx"}]);
db.lotsofdata.find().pretty();

Check whether the command bar is available or not.

Expect:
The command bar is available.

Actual:
The command bar disappears.

More Info:

The command bar is back after saving this scrapbook.
This issue also reproduces on the previous released Databases extension 0.18.1.

It looks like that "Execute" hint appears after the file is saved.


Update envs.py template in the README

There a few new environment variables that came with the API rewrite and there will be more to come once Google login is merged to main. Would be nice to get the envs.py file updated to reflect those

Done


Find how many HTTP requests it takes to validate a given sub-project.

What type of PR is this?
/kind feature

What this PR does / why we need it:
This PR is a proof-of-concept tool in order to determine how much network usage a given sub-project will demand of the Auditor. It counts all unique image prefixes and manifest lists to determine the total number of HTTP requests required to validate an image originated form the given sub-project.
Which issue(s) this PR fixes:
Part of #392 & #353

Special notes for your reviewer:
Not meant for review or merge.
Does this PR introduce a user-facing change?
NONE

Created a script to find how many HTTP requests it takes to validate a given sub-project.

This script helps us understand the true cost of validating an image from a given sub-project. It turns out that k8s-staging-ci-images is the most costly sub-project requiring 13,651 HTTP request to validate a single image.

Here is a full-list of the network cost of each sub-project within kubernetes/k8s.io:

Sub-Project
Queries

k8s-staging-ci-images
13651

k8s-staging-cluster-api
5661

k8s-staging-kops
4126

k8s-staging-kubernetes
2363

k8s-staging-sig-storage
1460

k8s-staging-cluster-api-aws
1302

k8s-staging-cluster-api-azure
694

k8s-staging-build-image
501

k8s-staging-e2e-test-images
395

k8s-staging-kas-network-proxy
384

k8s-staging-ingress-nginx
327

k8s-staging-provider-aws
325

k8s-staging-capi-openstack
290

k8s-staging-dns
272

k8s-staging-sp-operator
201

k8s-staging-cluster-api-gcp
181

k8s-staging-metrics-server
160

k8s-staging-cri-tools
153

k8s-staging-kube-state-metrics
149

k8s-staging-cluster-api-nested
131

k8s-staging-external-dns
120

k8s-staging-descheduler
86

k8s-staging-scheduler-plugins
83

k8s-staging-cluster-api-do
79

k8s-staging-cloud-provider-gcp
55

k8s-staging-etcd
44

k8s-staging-etcdadm
41

k8s-staging-autoscaling
37

k8s-staging-artifact-promoter
35

k8s-staging-csi-secrets-store
30

k8s-staging-test-infra
27

k8s-staging-networking
14

k8s-staging-prometheus-adapter
14

k8s-staging-cpa
13

k8s-staging-releng
13

k8s-staging-boskos
12

k8s-staging-git-sync
12

k8s-staging-coredns
10

k8s-staging-slack-infra
9

k8s-staging-addon-manager
7

k8s-staging-apisnoop
7

k8s-staging-multitenancy
7

k8s-staging-k8s-gsm-tools
4

k8s-staging-publishing-bot
4

k8s-staging-storage-migrator
4

k8s-staging-infra-tools
3

k8s-staging-nfd
3

k8s-staging-provider-azure
3

k8s-staging-capi-docker
2

k8s-staging-cluster-addons
2

k8s-staging-gateway-api
2

k8s-staging-kustomize
2

k8s-staging-npd
2

k8s-staging-scl-image-builder
2

k8s-staging-txtdirect
2

k8s-staging-capi-vsphere
1

k8s-staging-cluster-api-kubeadm
1

k8s-staging-examples
1

k8s-staging-experimental
1

k8s-staging-ingress-controller-conformance
1

k8s-staging-kind
1

k8s-staging-kubeadm
1

k8s-staging-kubetest2
1

k8s-staging-mirror
1

k8s-staging-sig-docs
1

Thanks!
Remove hold when ready.
/hold
/lgtm
/approve

/test pull-cip-auditor-e2e


Supporting changes for low downtime migrations

This PR finishes the low downtime workflow by adding support to Write the session file to GCS after launching datastream.
This PR also takes care of the following:

Multiplexing the snapshot migration logic correctly for all use cases, non streaming, DynamoDB streaming and MySQL/Oracle Streaming
It also sets the numWorkers parameters now when launching the dataflow job.

Need to support custom DLQs


GEOMESA-1301 Minor docs fixes for 1.2.4.

Update versions in docs build scripts.

Signed-off-by: Matthew Zimmerman<EMAIL_ADDRESS>

This should be added to the 1.2.4 milestone.

Looks good to me.


swift: add unit tests for request builders

Add unit tests for the API request builders that are currently available.

Related: https://github.com/lyft/envoy-mobile/pull/257

Currently blocked on https://github.com/bazelbuild/rules_apple/issues/490

https://github.com/lyft/envoy-mobile/pull/269


feat: cluster federation

Signed-off-by: zhuzhenfan<EMAIL_ADDRESS>
What type of PR is this?
/kind feature

What this PR does / why we need it:
enhancing the capacity of cluster nano-management
Which issue(s) this PR fixes:

Fixes #169
Special notes for reviewers:

Does this PR introduced a user-facing change?

Manage external kubeadm clusters into the platform while injecting more operational features into the platform

Additional documentation, usage docs, etc.:

@x893675 @lixd

Codecov Report

Merging #170 (35bd181) into master (229fee5) will decrease coverage by 0.44%.
The diff coverage is 0.32%.


where to put the config for docker  url (jenkins collelctor)

i want to use dockerLocalHostIP   method provided  inside DefaultHudsonClient  class : this methd  should replace localhost by docker@   the problem is  it's   return always  empty .  could  someone  explain why ?

@samyzemmouri - what does you properties file look like?


MonteFloor：Differentiable polygon rendering method

Hello，do you have any plans to share the implementation of the 2D differentiable polygon rendering method ? Looking forward to your reply, thanks a lot.

Sorry, I completely missed your post.
An example with 2D differentiable polygon rendering method is planned to be released as a part of a student project. Unfortunately, currently I do not know the timeline for the release yet.
However, if you have more specific questions or if you would like to implement  differentiable polygon rendering feel free to write me an email at any time.


Fixed broken SaveSystem!

:white_check_mark: Build TimeHACK AppVeyor-177 completed (commit https://github.com/TimeHACKDevs/TimeHACK/commit/d5caf9dd96 by @Alex-TIMEHACK)


New load commands: LC_DYLD_EXPORTS_TRIE and LC_DYLD_CHAINED_FIXUPS

Apple snuck these in on us at some point. They're 0x33 and 0x34 (masked with LC_REQ_DYLD), respectively, and should be mapped to LinkeditDataCommand
#define LC_DYLD_EXPORTS_TRIE (0x33 | LC_REQ_DYLD) /* used with linkedit_data_command, payload is trie */
#define LC_DYLD_CHAINED_FIXUPS (0x34 | LC_REQ_DYLD) /* used with linkedit_data_command */

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

https://github.com/Homebrew/ruby-macho/pull/264.


Question: Race-Condition Safe?

I'm looking at your ring_buffer implementation and I don't see any sort of multiple access prevention mechanism to save you from race-conditions.
What am I looking into is "ring_buffer_write" and "ring_buffer_read". I know that you are using producer/consumer relationship. So for example lets say that CoreM7 is producer and CoreM4 is consumer. Therefore CoreM7 is only calling "ring_buffer_write" and respectfully CoreM4 is calling only "ring_buffer_read" functions.
Between those two function there is a direct linkage, as they are using the same ring buffer instance. Example given buff->r member.
From ringbuff.c line 186 inside "ringbuff_read()" you change r member:
buff->r += tocopy;

And same member is being evaluated inside "ringbuff_get_free()" and that func is called from "ringbuff_write()" function line 131, 132:
  /* Calculate maximum number of bytes available to write */
  free = ringbuff_get_free(buff);

So what happens when CoreM4 (as consumer) reads buffer right after CoreM7 (provider) execute "ringbuff_get_free()" function inside write function. Meaning that write function is not completed yet but right after evaluation of buff->r there is some code left to be executed. Perhaps this can change write function flow in un-expected manner.
Does it possible have some sort of hidden side-effects?

Getfree/getfull function first copies the r and w values and operates on these 2.

Write function will check for free space (how much is available inside)
Read function will check for full space (how much is inside)

Because it works on copied variables, it can not be affected by another CPU variable modification.
Only problem that may be is if optimizer ignores local variables for getfree and getfull functions and uses global ones from ring buffer directly.
I do not see other problem - but I may be wrong.

OK, I see that now and it makes sense.
Other think I noticed right now is that you are making memcpy first and then manipulate the read/write (Tail/Head) pointers.
Inside "ringbuff_write" lines 139-142:
    tocopy = BUF_MIN(buff->size - buff->w, btw);
    BUF_MEMCPY(&buff->buff[buff->w], d, tocopy);
    buff->w += tocopy;

And similar to read function:
    BUF_MEMCPY(d, &buff->buff[buff->r], tocopy);
    buff->r += tocopy;

That mechanism protects you from race-conditions as well. Would you agree?

Yes - you need to load data first, only then you can modify variable. If it is opposite, another cpu can read non-loaded data.
And write funcrion only modifies w pointer, read only r pointer. Everything else uses read only - local vars.


un-ignore application/Database/Migrations directory from .gitignore

When developer create a migration files, they can commit and share it with other developers. So, I think it should be removed from .gitignore.
Checklist:

[x] Securely signed commits

I think you are correct, but we then need to modify the migration testing so it doesn't generate a ton of migration files there, that remain behind and get propagated to the community. Maye it should be using VFS for the test files.

We'll give it a whirl :)

Won't your change remove al the migrations in application/Database/Migrations?
I thought the purpose of this PR was to prevent that.
Do we not need to use VFS perhaps, for the migration testing, rather than letting them be created in application/,,,? Not sure how easy that is to do.

Yes, the current solutino is run on tearDown() function that executed after each test. I'm not sure if using vps will be easy to do, or something in the service probably can be mocked for create migration file.

@jim-parry I've updated the tests to only remove migration file that created via test so it won't remove another existing migration files if any.

Looks like a good solution for now, thanks.
Long-term, we need to add some flexibility so that migrations for testing don't touch the application folder - but not today :-/

I may have spoken too soon. Looking at the migration docs, migrations are created with a timestamp-based name if the "type" preference is "timestamp". That would create migrations starting with "2", eg. 20181119..., which is the set you git ignore. So we can't git ignore them :-/

If SessionsCommandsTest deletes all the ones that it creates, we are good. Testing here.

Oops - misread your change to .gitignore ... you don't keep them around. All is good :) and it tests fine.


[Feature]: Update Outlines Integration from FSM to Guide

🚀 The feature, motivation and pitch
Recently outlines updated their interface from FSM to Guide to support "acceleration"/"fast-forward" which will output next sets of tokens if they are directly available. For JSON schema, the cases are the keys, the ", and } etc.
This is non-trivial but very useful to improve vLLM for. It should also help other framework like AICI #3714.
Alternatives
No response
Additional context
No response

@simon-mo do you think this is an issue that could be driven by a community contribution? I'd be interested in working on it, but would most probably need a more knowledgeable counterpart to guide me through it.

Yes. Contributions welcomed.

Great.
Here a first conceptual sketch:

introduce a new abstraction (or extend the logits processor interface) that can be implemented with the support of an outlines Guide (https://github.com/outlines-dev/outlines/blob/main/outlines/fsm/guide.py).
In essence there is the need to introduce a new call to the guided generation engine on each LLM generation step to check whether there are ff-tokens and if so, add them to the sequence.
This engine "instance" must be the same that is used in the LogitsProcessor layers in the models when there are no ff-tokens but logit biases.

Would execute_model in model_runner.py be the right place to put this call?
I'm not sure how well this sketch aligns with AICI's protocol (https://github.com/microsoft/aici/blob/main/docs/aicirt-proto.md) – it seems to be a bit more involved, but it might be close enough to count as a first step.
What do you think? Is this the right direction?

I would break this down into two steps. First for compatible we should migrate the interface without considering fast forward. Next when the spec decode framework is merged, we will supply the fast forward token because it becomes easy to add them by then.


Update ESLint and various plugins to v9 ecosystem

We need to update our ESLint setup to v9, which will mean rewriting the config to a flat config, finding out of our plugins still work, etc.

Hello @humphd, I would like to give it a try to work on this issue

I'll look into this.


Pathway: Paper-based app

As a way to test minimally, make a pathway that depicts a paper-based version of our proposed app.

It seems that we've leapfrogged over this. Closing until it comes up again.


Proposed v2

[x] Add linting and unit-testing on PRs
[x] Add context.Context support where possible
[ ] Functional options handling

Release plan
We should either take this PR, and place it into a v2 folder (as per go mod guidelines) in the original repository, or deprecate the existing repository and continue onwards with this repo as the "v2".
Changes
context.Context
All operations that cross the network will now take a context.Context as their first parameter.
Functional options handling
Move away from having a fixed struct and instead use functional options e.g https://github.com/strideynet/spotify-go/pull/1/commits/e381bd7cb91dd28019d1505951f191307071dd92
This is more easily expanded in future and doesn't require odd behaviour from consuming code (e.g creating a integer for limit and immediately indirecting it as a psuedo-optional parameter)
Linting and Testing
Linting and testing are now implemented using Github actions and run on commits to master and pull requests.

@zmb3 I'd be particularly interested in your thoughts on my proposed interface for optional parameters as demonstrated in https://github.com/strideynet/spotify-go/pull/1/commits/e381bd7cb91dd28019d1505951f191307071dd92

@zmb3 I'd be particularly interested in your thoughts on my proposed interface for optional parameters as demonstrated in https://github.com/strideynet/spotify-go/pull/1/commits/e381bd7cb91dd28019d1505951f191307071dd92


Question : Value

What's the best way to get the exact value from QuillEditor then save to firebase or something?
And also, how to display the exact value back from Firebase or some sort of backend?
I am using _controller.document.toPlainText(); and saving only simple string

What do you mean by the exact value from QuillEditor ?
You can get delta of the document.

What do you mean by the exact value from QuillEditor ?
You can get delta of the document.

@singerdmx I used this _controller.document.toDelta().toString();  to only get :
"insert⟨ Thanks for the invite and I ⟩ insert⟨ ⏎ ⟩ + {indent: 1} insert⟨ Thank u for ⟩ insert⟨ ⏎ ⟩ + {indent: 1, list: ordered} insert⟨ Best friend ⟩ insert⟨ ⏎ ⟩ + {indent: 1, list: ordered} insert⟨ Thanks for the invite and I appreciate it and I appreciate it and ⟩ insert⟨ ⏎⏎ ⟩ + {indent: 1}"

@singerdmx I used this _controller.document.toDelta().toString();  to only get :
"insert⟨ Thanks for the invite and I ⟩ insert⟨ ⏎ ⟩ + {indent: 1} insert⟨ Thank u for ⟩ insert⟨ ⏎ ⟩ + {indent: 1, list: ordered} insert⟨ Best friend ⟩ insert⟨ ⏎ ⟩ + {indent: 1, list: ordered} insert⟨ Thanks for the invite and I appreciate it and I appreciate it and ⟩ insert⟨ ⏎⏎ ⟩ + {indent: 1}"

@angwandi

If you want to store the plain text (which mean it will lose all the format info like list, code block and link), you can use  _controller.document.toPlainText()
This library use quill_delta as an internal data type to store all the formatting information as well as the text. Therefore, what you see from the _controller.document.toDelta().toString(); is the representation of the Delta data type.  If you want to store the get the exact value from QuillEditor, you should use _controller.document.toDelta().toJson(). Noted that you will need to use an additional library to show the exact format from Detla to see what you see in the screenshot.

check out https://quilljs.com/docs/delta/ playground section for more information

@angwandi

If you want to store the plain text (which mean it will lose all the format info like list, code block and link), you can use  _controller.document.toPlainText()
This library use quill_delta as an internal data type to store all the formatting information as well as the text. Therefore, what you see from the _controller.document.toDelta().toString(); is the representation of the Delta data type.  If you want to store the get the exact value from QuillEditor, you should use _controller.document.toDelta().toJson(). Noted that you will need to use an additional library to show the exact format from Detla to see what you see in the screenshot.

check out https://quilljs.com/docs/delta/ playground section for more information

@levy0601 thank you so much. any suggestions for library to display in flutter?

@levy0601 thank you so much. any suggestions for library to display in flutter?

@angwandi

Noted that you will need to use an additional library to show the exact format from Detla to see what you see in the screenshot.

What I mean by the additional library is to show the delta in the web browser
If you are talking about display it in Flutter, you can just use our library.
check the following example for display a delta in flutter-quill;
Document _document =Document.fromJson( delta );
QuillController _controller = QuillController(
            document: _document, selection: TextSelection.collapsed(offset: 0));
FocusNode _focusNode = FocusNode();
QuillEditor(
            controller: _controller,
            scrollController: ScrollController(),
            scrollable: true,
            focusNode: _focusNode,
            autoFocus: true,
            readOnly: true,
            enableInteractiveSelection: true,
            expands: false,
            padding: EdgeInsets.zero,
          )

you can also set the QuillEditor as ReadOnly view by passing in readOnly: true,

@angwandi

Noted that you will need to use an additional library to show the exact format from Detla to see what you see in the screenshot.

What I mean by the additional library is to show the delta in the web browser
If you are talking about display it in Flutter, you can just use our library.
check the following example for display a delta in flutter-quill;
Document _document =Document.fromJson( delta );
QuillController _controller = QuillController(
            document: _document, selection: TextSelection.collapsed(offset: 0));
FocusNode _focusNode = FocusNode();
QuillEditor(
            controller: _controller,
            scrollController: ScrollController(),
            scrollable: true,
            focusNode: _focusNode,
            autoFocus: true,
            readOnly: true,
            enableInteractiveSelection: true,
            expands: false,
            padding: EdgeInsets.zero,
          )

you can also set the QuillEditor as ReadOnly view by passing in readOnly: true,

@levy0601 thank you. let me give it a go.

@levy0601 thank you. let me give it a go.

@angwandi let us know if you have any issue. We are happy to resolve it for you.

@angwandi let us know if you have any issue. We are happy to resolve it for you.

@singerdmx
E/flutter (10374): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Invalid argument: Instance of 'Operation' E/flutter (10374): #0      convertPlatformException (package:cloud_firestore_platform_interface/src/method_channel/utils/exception.dart:13:5) E/flutter (10374): #1      MethodChannelDocumentReference.set (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:43:13) E/flutter (10374): <asynchronous suspension> E/flutter (10374): #2      CollectionReference.add (package:cloud_firestore/src/collection_reference.dart:45:5) E/flutter (10374): <asynchronous suspension>
getting this error when trying to save on Firestore using :
data[AppEventFields.longDescription] =                     _longDescriptionQuillController.document.toDelta().toJson();

@singerdmx
E/flutter (10374): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Invalid argument: Instance of 'Operation' E/flutter (10374): #0      convertPlatformException (package:cloud_firestore_platform_interface/src/method_channel/utils/exception.dart:13:5) E/flutter (10374): #1      MethodChannelDocumentReference.set (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:43:13) E/flutter (10374): <asynchronous suspension> E/flutter (10374): #2      CollectionReference.add (package:cloud_firestore/src/collection_reference.dart:45:5) E/flutter (10374): <asynchronous suspension>
getting this error when trying to save on Firestore using :
data[AppEventFields.longDescription] =                     _longDescriptionQuillController.document.toDelta().toJson();

This seems more of Filestore issue, which we are unfamiliar with

This seems more of Filestore issue, which we are unfamiliar with

in example sample_data.json

when i call _controller.document.toDelta().toJson()

How can I get the same format as sample_data.json?

This is more of a question how to prettify json string. You can check out https://pub.dev/packages/pretty_json
Those questions are not related to flutter-quill and please DO NOT ask those here.

thanks for your quick reply.
I think I understand the real problem with @angwandi
we need usejsonEncode to convert Delta to json format and then save to firebase
String jsonString = jsonEncode(_controller.document.toDelta().toJson());

This is more of a question how to prettify json string. You can check out https://pub.dev/packages/pretty_json
Those questions are not related to flutter-quill and please DO NOT ask those here.

@singerdmx I think we should pin the firebase issue as it is pretty common.
Also I think we should create a issue template so that people don't ask unrelated questions.

This is already in README